@charset "UTF-8";
/* url paths */
/**
 * Font Size Headlines
 */
/**
* Font Size Headlines Mobile
*/
/**
 * Font Size Body
 */
/**
* Font Size Body Mobile
*/
/**
* Font Weights
*/
/* define font-colors */
/**
 * Foundation for Sites
 * Version 6.6.3
 * https://get.foundation
 * Licensed under MIT Open Source
 */
/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
}

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}

pre {
  font-family: monospace, monospace;
  font-size: 1em;
}

a {
  background-color: transparent;
}

abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

b,
strong {
  font-weight: bolder;
}

code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

small {
  font-size: 80%;
}

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

img {
  border-style: none;
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}

progress {
  vertical-align: baseline;
}

textarea {
  overflow: auto;
}

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

details {
  display: block;
}

summary {
  display: list-item;
}

template {
  display: none;
}

[hidden] {
  display: none;
}

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

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

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

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

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

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

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

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

button {
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  border-radius: 1px;
  background: transparent;
  line-height: 1;
  cursor: auto;
}

[data-whatinput='mouse'] button {
  outline: 0;
}

pre {
  overflow: auto;
}

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

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

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

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

.fd-forms [type='text']:focus, .fd-forms [type='password']:focus, .fd-forms [type='date']:focus, .fd-forms [type='datetime']:focus, .fd-forms [type='datetime-local']:focus, .fd-forms [type='month']:focus, .fd-forms [type='week']:focus, .fd-forms [type='email']:focus, .fd-forms [type='number']:focus, .fd-forms [type='search']:focus, .fd-forms [type='tel']:focus, .fd-forms [type='time']:focus, .fd-forms [type='url']:focus, .fd-forms [type='color']:focus,
.fd-forms textarea:focus {
  outline: none;
  border: 1px solid #2A2720;
  background-color: #FDFCFC;
  box-shadow: 0 0 5px #b7b6b6;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

.fd-forms textarea {
  max-width: 100%;
}

.fd-forms textarea[rows] {
  height: auto;
}

.fd-forms input:disabled, .fd-forms input[readonly],
.fd-forms textarea:disabled,
.fd-forms textarea[readonly] {
  background-color: #f1f1f1;
  cursor: not-allowed;
}

.fd-forms [type='submit'],
.fd-forms [type='button'] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border-radius: 1px;
}

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

.fd-forms ::-moz-placeholder {
  color: #b7b6b6;
}

.fd-forms :-ms-input-placeholder {
  color: #b7b6b6;
}

.fd-forms ::placeholder {
  color: #b7b6b6;
}

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

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

.fd-forms [type='checkbox'] + label[for],
.fd-forms [type='radio'] + label[for] {
  cursor: pointer;
}

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

.fd-forms [type='file'] {
  width: 100%;
}

.fd-forms label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #0a0a0a;
}

.fd-forms label.middle {
  margin: 0 0 1rem;
  padding: 0.5625rem 0;
}

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

.fd-forms .input-group {
  display: flex;
  width: 100%;
  margin-bottom: 1rem;
  align-items: stretch;
}

.fd-forms .input-group > :first-child, .fd-forms .input-group > :first-child.input-group-button > * {
  border-radius: 1px 0 0 1px;
}

.fd-forms .input-group > :last-child, .fd-forms .input-group > :last-child.input-group-button > * {
  border-radius: 0 1px 1px 0;
}

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

.fd-forms .input-group-label {
  padding: 0 1rem;
  border: 1px solid #b7b6b6;
  background: #f1f1f1;
  color: #0a0a0a;
  text-align: center;
  white-space: nowrap;
  display: flex;
  flex: 0 0 auto;
  align-items: center;
}

.fd-forms .input-group-label:first-child {
  border-right: 0;
}

.fd-forms .input-group-label:last-child {
  border-left: 0;
}

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

.fd-forms .input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  display: flex;
  flex: 0 0 auto;
}

.fd-forms .input-group-button a,
.fd-forms .input-group-button input,
.fd-forms .input-group-button button,
.fd-forms .input-group-button label {
  align-self: stretch;
  height: auto;
  padding-top: 0;
  padding-bottom: 0;
  font-size: 1rem;
}

.fd-forms fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}

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

.fd-forms .fieldset {
  margin: 1.125rem 0;
  padding: 1.25rem;
  border: 1px solid #b7b6b6;
}

.fd-forms .fieldset legend {
  margin: 0;
  margin-left: -0.1875rem;
  padding: 0 0.1875rem;
}

.fd-forms select {
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid #b7b6b6;
  border-radius: 1px;
  background-color: #FDFCFC;
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%2842, 39, 32%29'></polygon></svg>");
  background-origin: content-box;
  background-position: right -1rem center;
  background-repeat: no-repeat;
  background-size: 9px 6px;
  padding-right: 1.5rem;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

@media screen and (min-width: 0\0) {
  .fd-forms select {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==");
  }
}

.fd-forms select:focus {
  outline: none;
  border: 1px solid #2A2720;
  background-color: #FDFCFC;
  box-shadow: 0 0 5px #b7b6b6;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

.fd-forms select:disabled {
  background-color: #f1f1f1;
  cursor: not-allowed;
}

.fd-forms select::-ms-expand {
  display: none;
}

.fd-forms select[multiple] {
  height: auto;
  background-image: none;
}

.fd-forms select:not([multiple]) {
  padding-top: 0;
  padding-bottom: 0;
}

.fd-forms .is-invalid-input:not(:focus) {
  border-color: #E3162F;
  background-color: #fae5e8;
}

.fd-forms .is-invalid-input:not(:focus)::-moz-placeholder {
  color: #E3162F;
}

.fd-forms .is-invalid-input:not(:focus):-ms-input-placeholder {
  color: #E3162F;
}

.fd-forms .is-invalid-input:not(:focus)::placeholder {
  color: #E3162F;
}

.fd-forms .is-invalid-label {
  color: #E3162F;
}

.fd-forms .form-error {
  display: none;
  margin-top: -0.5rem;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: bold;
  color: #E3162F;
}

.fd-forms .form-error.is-visible {
  display: block;
}

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

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

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

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

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

h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  color: inherit;
  text-rendering: optimizeLegibility;
}

h1 small, .h1 small,
h2 small, .h2 small,
h3 small, .h3 small,
h4 small, .h4 small,
h5 small, .h5 small,
h6 small, .h6 small {
  line-height: 0;
  color: #b7b6b6;
}

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

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

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

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

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

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

@media print, screen and (min-width: 40em) {
  h1, .h1 {
    font-size: 6.875rem;
    line-height: 1;
  }
  h2, .h2 {
    font-size: 4.5rem;
    line-height: 1;
  }
  h3, .h3 {
    font-size: 2.25rem;
  }
  h4, .h4 {
    font-size: 1.5rem;
  }
  h5, .h5 {
    font-size: 1.3125rem;
  }
  h6, .h6 {
    font-size: 1.125rem;
  }
}

a {
  line-height: inherit;
  color: #D5A847;
  text-decoration: none;
  cursor: pointer;
}

a:hover, a:focus {
  color: #c7962d;
}

a img {
  border: 0;
}

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

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

li {
  font-size: inherit;
}

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

ol {
  margin-left: 1.25rem;
}

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

dl {
  margin-bottom: 1rem;
}

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

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #b7b6b6;
}

blockquote, blockquote p {
  line-height: 1.5;
  color: #2A2720;
}

abbr, abbr[title] {
  border-bottom: 1px dotted #0a0a0a;
  cursor: help;
  text-decoration: none;
}

figure {
  margin: 0;
}

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

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

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

.stat {
  font-size: 2.5rem;
  line-height: 1;
}

p + .stat {
  margin-top: -1rem;
}

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

.cite-block, cite {
  display: block;
  color: #2A2720;
  font-size: 0.8125rem;
}

.cite-block:before, cite:before {
  content: "— ";
}

.code-inline, code {
  border: 1px solid #b7b6b6;
  background-color: #f1f1f1;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #0a0a0a;
  display: inline;
  max-width: 100%;
  word-wrap: break-word;
  padding: 0.125rem 0.3125rem 0.0625rem;
}

.code-block {
  border: 1px solid #b7b6b6;
  background-color: #f1f1f1;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #0a0a0a;
  display: block;
  overflow: auto;
  white-space: pre;
  padding: 1rem;
  margin-bottom: 1.5rem;
}

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

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

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

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

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

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

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

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

.button {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1.5rem 0;
  padding: 0.75em 0.75em;
  border: 1px solid transparent;
  border-radius: 1px;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1.5rem;
  font-weight: 600;
  -webkit-appearance: none;
  line-height: 1;
  text-align: center;
  cursor: pointer;
}

[data-whatinput='mouse'] .button {
  outline: 0;
}

.button.tiny {
  font-size: 1rem;
}

.button.small {
  font-size: 1.125rem;
}

.button.large {
  font-size: 1.75rem;
}

.button.expanded {
  display: block;
  width: 100%;
  margin-right: 0;
  margin-left: 0;
}

.button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {
  background-color: #D5A847;
  color: #FDFCFC;
}

.button:hover, .button:focus {
  background-color: #c5942d;
  color: #FDFCFC;
}

.button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {
  background-color: #D5A847;
  color: #FDFCFC;
}

.button.primary:hover, .button.primary:focus {
  background-color: #b98c2a;
  color: #FDFCFC;
}

.button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {
  background-color: #39AED2;
  color: #FDFCFC;
}

.button.secondary:hover, .button.secondary:focus {
  background-color: #288eae;
  color: #FDFCFC;
}

.button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {
  background-color: #00dc80;
  color: #FDFCFC;
}

.button.success:hover, .button.success:focus {
  background-color: #00b066;
  color: #FDFCFC;
}

.button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {
  background-color: #ffae00;
  color: #FDFCFC;
}

.button.warning:hover, .button.warning:focus {
  background-color: #cc8b00;
  color: #FDFCFC;
}

.button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {
  background-color: #E3162F;
  color: #FDFCFC;
}

.button.alert:hover, .button.alert:focus {
  background-color: #b61226;
  color: #FDFCFC;
}

.button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {
  background-color: transparent;
}

.button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {
  border: 1px solid #D5A847;
  color: #D5A847;
}

.button.hollow:hover, .button.hollow:focus {
  border-color: #74571a;
  color: #74571a;
}

.button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {
  border: 1px solid #D5A847;
  color: #D5A847;
}

.button.hollow.primary:hover, .button.hollow.primary:focus {
  border-color: #74571a;
  color: #74571a;
}

.button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {
  border: 1px solid #39AED2;
  color: #39AED2;
}

.button.hollow.secondary:hover, .button.hollow.secondary:focus {
  border-color: #19596d;
  color: #19596d;
}

.button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {
  border: 1px solid #00dc80;
  color: #00dc80;
}

.button.hollow.success:hover, .button.hollow.success:focus {
  border-color: #006e40;
  color: #006e40;
}

.button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {
  border: 1px solid #ffae00;
  color: #ffae00;
}

.button.hollow.warning:hover, .button.hollow.warning:focus {
  border-color: #805700;
  color: #805700;
}

.button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {
  border: 1px solid #E3162F;
  color: #E3162F;
}

.button.hollow.alert:hover, .button.hollow.alert:focus {
  border-color: #720b18;
  color: #720b18;
}

.button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {
  border-color: transparent;
  background-color: transparent;
}

.button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {
  color: #D5A847;
}

.button.clear:hover, .button.clear:focus {
  color: #74571a;
}

.button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {
  color: #D5A847;
}

.button.clear.primary:hover, .button.clear.primary:focus {
  color: #74571a;
}

.button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {
  color: #39AED2;
}

.button.clear.secondary:hover, .button.clear.secondary:focus {
  color: #19596d;
}

.button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {
  color: #00dc80;
}

.button.clear.success:hover, .button.clear.success:focus {
  color: #006e40;
}

.button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {
  color: #ffae00;
}

.button.clear.warning:hover, .button.clear.warning:focus {
  color: #805700;
}

.button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {
  color: #E3162F;
}

.button.clear.alert:hover, .button.clear.alert:focus {
  color: #720b18;
}

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

.button.dropdown::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.4em;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #FDFCFC transparent transparent;
  position: relative;
  top: 0.4em;
  display: inline-block;
  float: right;
  margin-left: 0.75em;
}

.button.dropdown.hollow::after, .button.dropdown.clear::after {
  border-top-color: #D5A847;
}

.button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {
  border-top-color: #D5A847;
}

.button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {
  border-top-color: #39AED2;
}

.button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {
  border-top-color: #00dc80;
}

.button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {
  border-top-color: #ffae00;
}

.button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {
  border-top-color: #E3162F;
}

.button.arrow-only::after {
  top: -0.1em;
  float: none;
  margin-left: 0;
}

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

.button-group {
  margin-bottom: 1rem;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  flex-grow: 1;
}

.button-group::before, .button-group::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.button-group::after {
  clear: both;
}

.button-group::before, .button-group::after {
  display: none;
}

.button-group .button {
  margin: 0;
  margin-right: 1px;
  margin-bottom: 1px;
  font-size: 1.5rem;
  flex: 0 0 auto;
}

.button-group .button:last-child {
  margin-right: 0;
}

.button-group.tiny .button {
  font-size: 1rem;
}

.button-group.small .button {
  font-size: 1.125rem;
}

.button-group.large .button {
  font-size: 1.75rem;
}

.button-group.expanded .button {
  flex: 1 1 0px;
  margin-right: 0;
}

.button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {
  background-color: #D5A847;
  color: #FDFCFC;
}

.button-group.primary .button:hover, .button-group.primary .button:focus {
  background-color: #b98c2a;
  color: #FDFCFC;
}

.button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {
  background-color: #39AED2;
  color: #FDFCFC;
}

.button-group.secondary .button:hover, .button-group.secondary .button:focus {
  background-color: #288eae;
  color: #FDFCFC;
}

.button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {
  background-color: #00dc80;
  color: #FDFCFC;
}

.button-group.success .button:hover, .button-group.success .button:focus {
  background-color: #00b066;
  color: #FDFCFC;
}

.button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {
  background-color: #ffae00;
  color: #FDFCFC;
}

.button-group.warning .button:hover, .button-group.warning .button:focus {
  background-color: #cc8b00;
  color: #FDFCFC;
}

.button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {
  background-color: #E3162F;
  color: #FDFCFC;
}

.button-group.alert .button:hover, .button-group.alert .button:focus {
  background-color: #b61226;
  color: #FDFCFC;
}

.button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {
  background-color: transparent;
}

.button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {
  border: 1px solid #D5A847;
  color: #D5A847;
}

.button-group.hollow .button:hover, .button-group.hollow .button:focus {
  border-color: #74571a;
  color: #74571a;
}

.button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {
  border: 1px solid #D5A847;
  color: #D5A847;
}

.button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {
  border-color: #74571a;
  color: #74571a;
}

.button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {
  border: 1px solid #39AED2;
  color: #39AED2;
}

.button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {
  border-color: #19596d;
  color: #19596d;
}

.button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {
  border: 1px solid #00dc80;
  color: #00dc80;
}

.button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {
  border-color: #006e40;
  color: #006e40;
}

.button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {
  border: 1px solid #ffae00;
  color: #ffae00;
}

.button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {
  border-color: #805700;
  color: #805700;
}

.button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {
  border: 1px solid #E3162F;
  color: #E3162F;
}

.button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {
  border-color: #720b18;
  color: #720b18;
}

.button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {
  border-color: transparent;
  background-color: transparent;
}

.button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {
  color: #D5A847;
}

.button-group.clear .button:hover, .button-group.clear .button:focus {
  color: #74571a;
}

.button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {
  color: #D5A847;
}

.button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {
  color: #74571a;
}

.button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {
  color: #39AED2;
}

.button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {
  color: #19596d;
}

.button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {
  color: #00dc80;
}

.button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {
  color: #006e40;
}

.button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {
  color: #ffae00;
}

.button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {
  color: #805700;
}

.button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {
  color: #E3162F;
}

.button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {
  color: #720b18;
}

.button-group.no-gaps .button {
  margin-right: -0.0625rem;
}

.button-group.no-gaps .button + .button {
  border-left-color: transparent;
}

.button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {
  flex-wrap: wrap;
}

.button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {
  flex: 0 0 100%;
}

.button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {
  margin-bottom: 0;
}

.button-group.stacked.expanded .button, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-medium.expanded .button {
  flex: 1 1 0px;
  margin-right: 0;
}

@media print, screen and (min-width: 40em) {
  .button-group.stacked-for-small .button {
    flex: 0 0 auto;
    margin-bottom: 0;
  }
}

@media print, screen and (min-width: 60.625em) {
  .button-group.stacked-for-medium .button {
    flex: 0 0 auto;
    margin-bottom: 0;
  }
}

@media print, screen and (max-width: 39.99875em) {
  .button-group.stacked-for-small.expanded {
    display: block;
  }
  .button-group.stacked-for-small.expanded .button {
    display: block;
    margin-right: 0;
  }
}

@media print, screen and (max-width: 60.62375em) {
  .button-group.stacked-for-medium.expanded {
    display: block;
  }
  .button-group.stacked-for-medium.expanded .button {
    display: block;
    margin-right: 0;
  }
}

.close-button {
  position: absolute;
  z-index: 10;
  color: #2A2720;
  cursor: pointer;
}

[data-whatinput='mouse'] .close-button {
  outline: 0;
}

.close-button:hover, .close-button:focus {
  color: #0a0a0a;
}

.close-button.small {
  right: 0.66rem;
  top: 0.33em;
  font-size: 1.5em;
  line-height: 1;
}

.close-button.medium, .close-button {
  right: 1rem;
  top: 0.5rem;
  font-size: 2em;
  line-height: 1;
}

.label {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  border-radius: 1px;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  background: #D5A847;
  color: #FDFCFC;
}

.label.primary {
  background: #D5A847;
  color: #0a0a0a;
}

.label.secondary {
  background: #39AED2;
  color: #0a0a0a;
}

.label.success {
  background: #00dc80;
  color: #0a0a0a;
}

.label.warning {
  background: #ffae00;
  color: #0a0a0a;
}

.label.alert {
  background: #E3162F;
  color: #FDFCFC;
}

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

.tooltip {
  position: absolute;
  top: calc(100% + 0.6495rem);
  z-index: 1200;
  max-width: 10rem;
  padding: 0.75rem;
  border-radius: 1px;
  background-color: #0a0a0a;
  font-size: 80%;
  color: #FDFCFC;
}

.tooltip::before {
  position: absolute;
}

.tooltip.bottom::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: '';
  border-top-width: 0;
  border-bottom-style: solid;
  border-color: transparent transparent #0a0a0a;
  bottom: 100%;
}

.tooltip.bottom.align-center::before {
  left: 50%;
  transform: translateX(-50%);
}

.tooltip.top::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #0a0a0a transparent transparent;
  top: 100%;
  bottom: auto;
}

.tooltip.top.align-center::before {
  left: 50%;
  transform: translateX(-50%);
}

.tooltip.left::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #0a0a0a;
  left: 100%;
}

.tooltip.left.align-center::before {
  bottom: auto;
  top: 50%;
  transform: translateY(-50%);
}

.tooltip.right::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #0a0a0a transparent transparent;
  right: 100%;
  left: auto;
}

.tooltip.right.align-center::before {
  bottom: auto;
  top: 50%;
  transform: translateY(-50%);
}

.tooltip.align-top::before {
  bottom: auto;
  top: 10%;
}

.tooltip.align-bottom::before {
  bottom: 10%;
  top: auto;
}

.tooltip.align-left::before {
  left: 10%;
  right: auto;
}

.tooltip.align-right::before {
  left: auto;
  right: 10%;
}

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

.accordion[disabled] .accordion-title {
  cursor: not-allowed;
}

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

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

.accordion-title {
  position: relative;
  display: block;
  padding: 1.25rem 1rem;
  border: 1px solid rgba(183, 182, 182, 0.5);
  border-bottom: 0;
  font-size: 0.75rem;
  line-height: 1;
  color: #D5A847;
}

:last-child:not(.is-active) > .accordion-title {
  border-bottom: 1px solid rgba(183, 182, 182, 0.5);
  border-radius: 0 0 1px 1px;
}

.accordion-title:hover, .accordion-title:focus {
  background-color: #f1f1f1;
}

.accordion-title::before {
  position: absolute;
  top: 50%;
  right: 1rem;
  margin-top: -0.5rem;
  content: "+";
}

.is-active > .accordion-title::before {
  content: "–";
}

.accordion-content {
  display: none;
  padding: 1rem;
  border: 1px solid rgba(183, 182, 182, 0.5);
  border-bottom: 0;
  background-color: #FDFCFC;
  color: #2A2720;
}

:last-child > .accordion-content:last-child {
  border-bottom: 1px solid rgba(183, 182, 182, 0.5);
}

.responsive-embed,
.flex-video {
  position: relative;
  height: 0;
  margin-bottom: 0;
  padding-bottom: 75%;
  overflow: hidden;
}

.responsive-embed iframe,
.responsive-embed object,
.responsive-embed embed,
.responsive-embed video,
.flex-video iframe,
.flex-video object,
.flex-video embed,
.flex-video video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.responsive-embed.widescreen,
.flex-video.widescreen {
  padding-bottom: 46.25%;
}

.menu {
  padding: 0;
  margin: 0;
  list-style: none;
  position: relative;
  display: flex;
  flex-wrap: wrap;
}

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

.menu a,
.menu .button {
  line-height: 1;
  text-decoration: none;
  display: block;
  padding: 0.7rem 1rem;
}

.menu input,
.menu select,
.menu a,
.menu button {
  margin-bottom: 0;
}

.menu input {
  display: inline-block;
}

.menu, .menu.horizontal {
  flex-wrap: wrap;
  flex-direction: row;
}

.menu.vertical {
  flex-wrap: nowrap;
  flex-direction: column;
}

.menu.expanded li {
  flex: 1 1 0px;
}

.menu.simple {
  align-items: center;
}

.menu.simple li + li {
  margin-left: 1rem;
}

.menu.simple a {
  padding: 0;
}

@media print, screen and (min-width: 40em) {
  .menu.medium-horizontal {
    flex-wrap: wrap;
    flex-direction: row;
  }
  .menu.medium-vertical {
    flex-wrap: nowrap;
    flex-direction: column;
  }
  .menu.medium-expanded li {
    flex: 1 1 0px;
  }
  .menu.medium-simple li {
    flex: 1 1 0px;
  }
}

@media print, screen and (min-width: 60.625em) {
  .menu.large-horizontal {
    flex-wrap: wrap;
    flex-direction: row;
  }
  .menu.large-vertical {
    flex-wrap: nowrap;
    flex-direction: column;
  }
  .menu.large-expanded li {
    flex: 1 1 0px;
  }
  .menu.large-simple li {
    flex: 1 1 0px;
  }
}

.menu.nested {
  margin-right: 0;
  margin-left: 1rem;
}

.menu.icons a {
  display: flex;
}

.menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {
  display: flex;
}

.menu.icon-left li a {
  flex-flow: row nowrap;
}

.menu.icon-left li a img,
.menu.icon-left li a i,
.menu.icon-left li a svg {
  margin-right: 0.25rem;
}

.menu.icon-right li a {
  flex-flow: row nowrap;
}

.menu.icon-right li a img,
.menu.icon-right li a i,
.menu.icon-right li a svg {
  margin-left: 0.25rem;
}

.menu.icon-top li a {
  flex-flow: column nowrap;
}

.menu.icon-top li a img,
.menu.icon-top li a i,
.menu.icon-top li a svg {
  align-self: stretch;
  margin-bottom: 0.25rem;
  text-align: center;
}

.menu.icon-bottom li a {
  flex-flow: column nowrap;
}

.menu.icon-bottom li a img,
.menu.icon-bottom li a i,
.menu.icon-bottom li a svg {
  align-self: stretch;
  margin-bottom: 0.25rem;
  text-align: center;
}

.menu .is-active > a {
  background: #D5A847;
  color: #0a0a0a;
}

.menu .active > a {
  background: #D5A847;
  color: #0a0a0a;
}

.menu.align-left {
  justify-content: flex-start;
}

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

.menu.align-right li .submenu li {
  justify-content: flex-start;
}

.menu.align-right.vertical li {
  display: block;
  text-align: right;
}

.menu.align-right.vertical li .submenu li {
  text-align: right;
}

.menu.align-right .nested {
  margin-right: 1rem;
  margin-left: 0;
}

.menu.align-center li {
  display: flex;
  justify-content: center;
}

.menu.align-center li .submenu li {
  justify-content: flex-start;
}

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

.menu-centered > .menu {
  justify-content: center;
}

.menu-centered > .menu li {
  display: flex;
  justify-content: center;
}

.menu-centered > .menu li .submenu li {
  justify-content: flex-start;
}

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

.menu-icon {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer;
}

.menu-icon::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  background: #FDFCFC;
  box-shadow: 0 7px 0 #FDFCFC, 0 14px 0 #FDFCFC;
  content: '';
}

.menu-icon:hover::after {
  background: #b7b6b6;
  box-shadow: 0 7px 0 #b7b6b6, 0 14px 0 #b7b6b6;
}

.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer;
}

.menu-icon.dark::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  background: #0a0a0a;
  box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
  content: '';
}

.menu-icon.dark:hover::after {
  background: #2A2720;
  box-shadow: 0 7px 0 #2A2720, 0 14px 0 #2A2720;
}

.sticky-container {
  position: relative;
}

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

.sticky.is-stuck {
  position: fixed;
  z-index: 5;
  width: 100%;
}

.sticky.is-stuck.is-at-top {
  top: 0;
}

.sticky.is-stuck.is-at-bottom {
  bottom: 0;
}

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

.sticky.is-anchored.is-at-bottom {
  bottom: 0;
}

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

.js-off-canvas-overlay {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 11;
  width: 100%;
  height: 100%;
  transition: opacity 0.5s ease, visibility 0.5s ease;
  background: rgba(10, 10, 10, 0.75);
  opacity: 0;
  visibility: hidden;
  overflow: hidden;
}

.js-off-canvas-overlay.is-visible {
  opacity: 1;
  visibility: visible;
}

.js-off-canvas-overlay.is-closable {
  cursor: pointer;
}

.js-off-canvas-overlay.is-overlay-absolute {
  position: absolute;
}

.js-off-canvas-overlay.is-overlay-fixed {
  position: fixed;
}

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

.off-canvas {
  position: fixed;
  z-index: 12;
  transition: transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #0a0a0a;
}

[data-whatinput='mouse'] .off-canvas {
  outline: 0;
}

.off-canvas.is-transition-push {
  z-index: 12;
}

.off-canvas.is-closed {
  visibility: hidden;
}

.off-canvas.is-transition-overlap {
  z-index: 13;
}

.off-canvas.is-transition-overlap.is-open {
  box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
}

.off-canvas.is-open {
  transform: translate(0, 0);
}

.off-canvas-absolute {
  position: absolute;
  z-index: 12;
  transition: transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #0a0a0a;
}

[data-whatinput='mouse'] .off-canvas-absolute {
  outline: 0;
}

.off-canvas-absolute.is-transition-push {
  z-index: 12;
}

.off-canvas-absolute.is-closed {
  visibility: hidden;
}

.off-canvas-absolute.is-transition-overlap {
  z-index: 13;
}

.off-canvas-absolute.is-transition-overlap.is-open {
  box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
}

.off-canvas-absolute.is-open {
  transform: translate(0, 0);
}

.position-left {
  top: 0;
  left: 0;
  height: 100%;
  overflow-y: auto;
  width: 250px;
  transform: translateX(-250px);
}

.off-canvas-content .off-canvas.position-left {
  transform: translateX(-250px);
}

.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {
  transform: translate(0, 0);
}

.off-canvas-content.is-open-left.has-transition-push {
  transform: translateX(250px);
}

.position-left.is-transition-push {
  box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25);
}

.position-right {
  top: 0;
  right: 0;
  height: 100%;
  overflow-y: auto;
  width: 250px;
  transform: translateX(250px);
}

.off-canvas-content .off-canvas.position-right {
  transform: translateX(250px);
}

.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {
  transform: translate(0, 0);
}

.off-canvas-content.is-open-right.has-transition-push {
  transform: translateX(-250px);
}

.position-right.is-transition-push {
  box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25);
}

.position-top {
  top: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  transform: translateY(-250px);
}

.off-canvas-content .off-canvas.position-top {
  transform: translateY(-250px);
}

.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {
  transform: translate(0, 0);
}

.off-canvas-content.is-open-top.has-transition-push {
  transform: translateY(250px);
}

.position-top.is-transition-push {
  box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25);
}

.position-bottom {
  bottom: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  transform: translateY(250px);
}

.off-canvas-content .off-canvas.position-bottom {
  transform: translateY(250px);
}

.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {
  transform: translate(0, 0);
}

.off-canvas-content.is-open-bottom.has-transition-push {
  transform: translateY(-250px);
}

.position-bottom.is-transition-push {
  box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25);
}

.off-canvas-content {
  transform: none;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {
  transition: transform 0.5s ease;
}

.off-canvas-content.has-transition-push {
  transform: translate(0, 0);
}

.off-canvas-content .off-canvas.is-open {
  transform: translate(0, 0);
}

@media print, screen and (min-width: 40em) {
  .position-left.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-left.reveal-for-medium .close-button {
    display: none;
  }
  .off-canvas-content .position-left.reveal-for-medium {
    transform: none;
  }
  .off-canvas-content.has-reveal-left {
    margin-left: 250px;
  }
  .position-left.reveal-for-medium ~ .off-canvas-content {
    margin-left: 250px;
  }
  .position-right.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-right.reveal-for-medium .close-button {
    display: none;
  }
  .off-canvas-content .position-right.reveal-for-medium {
    transform: none;
  }
  .off-canvas-content.has-reveal-right {
    margin-right: 250px;
  }
  .position-right.reveal-for-medium ~ .off-canvas-content {
    margin-right: 250px;
  }
  .position-top.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-top.reveal-for-medium .close-button {
    display: none;
  }
  .off-canvas-content .position-top.reveal-for-medium {
    transform: none;
  }
  .off-canvas-content.has-reveal-top {
    margin-top: 250px;
  }
  .position-top.reveal-for-medium ~ .off-canvas-content {
    margin-top: 250px;
  }
  .position-bottom.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-bottom.reveal-for-medium .close-button {
    display: none;
  }
  .off-canvas-content .position-bottom.reveal-for-medium {
    transform: none;
  }
  .off-canvas-content.has-reveal-bottom {
    margin-bottom: 250px;
  }
  .position-bottom.reveal-for-medium ~ .off-canvas-content {
    margin-bottom: 250px;
  }
}

@media print, screen and (min-width: 60.625em) {
  .position-left.reveal-for-large {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-left.reveal-for-large .close-button {
    display: none;
  }
  .off-canvas-content .position-left.reveal-for-large {
    transform: none;
  }
  .off-canvas-content.has-reveal-left {
    margin-left: 250px;
  }
  .position-left.reveal-for-large ~ .off-canvas-content {
    margin-left: 250px;
  }
  .position-right.reveal-for-large {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-right.reveal-for-large .close-button {
    display: none;
  }
  .off-canvas-content .position-right.reveal-for-large {
    transform: none;
  }
  .off-canvas-content.has-reveal-right {
    margin-right: 250px;
  }
  .position-right.reveal-for-large ~ .off-canvas-content {
    margin-right: 250px;
  }
  .position-top.reveal-for-large {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-top.reveal-for-large .close-button {
    display: none;
  }
  .off-canvas-content .position-top.reveal-for-large {
    transform: none;
  }
  .off-canvas-content.has-reveal-top {
    margin-top: 250px;
  }
  .position-top.reveal-for-large ~ .off-canvas-content {
    margin-top: 250px;
  }
  .position-bottom.reveal-for-large {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-bottom.reveal-for-large .close-button {
    display: none;
  }
  .off-canvas-content .position-bottom.reveal-for-large {
    transform: none;
  }
  .off-canvas-content.has-reveal-bottom {
    margin-bottom: 250px;
  }
  .position-bottom.reveal-for-large ~ .off-canvas-content {
    margin-bottom: 250px;
  }
}

@media print, screen and (min-width: 40em) {
  .off-canvas.in-canvas-for-medium {
    visibility: visible;
    height: auto;
    position: static;
    background: none;
    width: auto;
    overflow: visible;
    transition: none;
  }
  .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {
    box-shadow: none;
    transform: none;
  }
  .off-canvas.in-canvas-for-medium .close-button {
    display: none;
  }
}

@media print, screen and (min-width: 60.625em) {
  .off-canvas.in-canvas-for-large {
    visibility: visible;
    height: auto;
    position: static;
    background: none;
    width: auto;
    overflow: visible;
    transition: none;
  }
  .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {
    box-shadow: none;
    transform: none;
  }
  .off-canvas.in-canvas-for-large .close-button {
    display: none;
  }
}

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

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

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

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

.clearfix::after {
  clear: both;
}

.text-hide {
  font: 0/0 a !important;
  color: transparent !important;
  text-shadow: none !important;
  background-color: transparent !important;
  border: 0 !important;
}

.text-truncate {
  max-width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis;
  white-space: nowrap !important;
}

.text-nowrap {
  white-space: nowrap !important;
}

.text-wrap {
  word-wrap: break-word !important;
}

.text-lowercase {
  text-transform: lowercase !important;
}

.text-uppercase {
  text-transform: uppercase !important;
}

.text-capitalize {
  text-transform: capitalize !important;
}

.text-overline {
  text-decoration: overline !important;
}

.text-underline {
  text-decoration: underline !important;
}

.text-line-through {
  text-decoration: line-through !important;
}

.font-wide {
  letter-spacing: 0.25rem;
}

.font-normal {
  font-weight: normal;
}

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

.font-italic {
  font-style: italic !important;
}

ul.list-disc {
  list-style-type: disc !important;
}

ul.list-circle {
  list-style-type: circle !important;
}

ul.list-square {
  list-style-type: square !important;
}

ol.list-decimal {
  list-style-type: decimal !important;
}

ol.list-lower-alpha {
  list-style-type: lower-alpha !important;
}

ol.list-lower-latin {
  list-style-type: lower-latin !important;
}

ol.list-lower-roman {
  list-style-type: lower-roman !important;
}

ol.list-upper-alpha {
  list-style-type: upper-alpha !important;
}

ol.list-upper-latin {
  list-style-type: upper-latin !important;
}

ol.list-upper-roman {
  list-style-type: upper-roman !important;
}

.rounded {
  border-radius: 5000px !important;
}

.rounded .switch-paddle {
  border-radius: 5000px !important;
}

.rounded .switch-paddle:after {
  border-radius: 50%;
}

.radius {
  border-radius: 0.1875rem;
}

.bordered {
  border: 0.0625rem solid #b7b6b6;
}

.shadow {
  box-shadow: 2px 2px 0px rgba(0, 0, 0, 0.12);
}

.arrow-down {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.4375rem;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #0a0a0a transparent transparent;
}

.arrow-up {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.4375rem;
  content: '';
  border-top-width: 0;
  border-bottom-style: solid;
  border-color: transparent transparent #0a0a0a;
}

.arrow-right {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.4375rem;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #0a0a0a;
}

.arrow-left {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.4375rem;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #0a0a0a transparent transparent;
}

.separator-center {
  text-align: center !important;
}

.separator-center::before, .separator-center::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.separator-center::after {
  clear: both;
}

.separator-center::after {
  position: relative !important;
  width: 3rem;
  border-bottom: 0.125rem solid #D5A847;
  margin: 1.5rem auto 0;
}

.separator-left {
  text-align: left !important;
}

.separator-left::before, .separator-left::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.separator-left::after {
  clear: both;
}

.separator-left::after {
  position: relative !important;
  width: 3rem;
  border-bottom: 0.125rem solid #D5A847;
  margin: 1.5rem auto 0;
  margin-left: 0 !important;
}

.separator-right {
  text-align: right !important;
}

.separator-right::before, .separator-right::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.separator-right::after {
  clear: both;
}

.separator-right::after {
  position: relative !important;
  width: 3rem;
  border-bottom: 0.125rem solid #D5A847;
  margin: 1.5rem auto 0;
  margin-right: 0 !important;
}

.overflow-visible {
  overflow: visible !important;
}

.overflow-x-visible {
  overflow-x: visible !important;
}

.overflow-y-visible {
  overflow-y: visible !important;
}

.overflow-hidden {
  overflow: hidden !important;
}

.overflow-x-hidden {
  overflow-x: hidden !important;
}

.overflow-y-hidden {
  overflow-y: hidden !important;
}

.overflow-scroll {
  overflow: scroll !important;
}

.overflow-x-scroll {
  overflow-x: scroll !important;
}

.overflow-y-scroll {
  overflow-y: scroll !important;
}

.display-inline {
  display: inline !important;
}

.display-inline-block {
  display: inline-block !important;
}

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

.display-table {
  display: table !important;
}

.display-table-cell {
  display: table-cell !important;
}

.position-static {
  position: static !important;
}

.position-relative {
  position: relative !important;
}

.position-absolute {
  position: absolute !important;
}

.position-fixed {
  position: fixed !important;
}

.position-fixed-top {
  position: fixed !important;
  top: 0rem !important;
  right: 0rem !important;
  left: 0rem !important;
  z-index: 975;
}

.position-fixed-bottom {
  position: fixed !important;
  right: 0rem !important;
  bottom: 0rem !important;
  left: 0rem !important;
  z-index: 975;
}

.border-box {
  box-sizing: border-box !important;
}

.border-none {
  border: none !important;
}

.width-25 {
  width: 25% !important;
}

.width-50 {
  width: 50% !important;
}

.width-75 {
  width: 75% !important;
}

.width-100 {
  width: 100% !important;
}

.height-25 {
  height: 25% !important;
}

.height-50 {
  height: 50% !important;
}

.height-75 {
  height: 75% !important;
}

.height-100 {
  height: 100% !important;
}

.max-width-100 {
  max-width: 100% !important;
}

.max-height-100 {
  max-height: 100% !important;
}

.margin-0 {
  margin: 0rem !important;
}

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

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

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

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

.margin-horizontal-0 {
  margin-right: 0rem !important;
  margin-left: 0rem !important;
}

.margin-vertical-0 {
  margin-top: 0rem !important;
  margin-bottom: 0rem !important;
}

.padding-0 {
  padding: 0rem !important;
}

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

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

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

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

.padding-horizontal-0 {
  padding-right: 0rem !important;
  padding-left: 0rem !important;
}

.padding-vertical-0 {
  padding-top: 0rem !important;
  padding-bottom: 0rem !important;
}

.margin-1 {
  margin: 1.5rem !important;
}

.margin-top-1 {
  margin-top: 1.5rem !important;
}

.margin-right-1 {
  margin-right: 1.5rem !important;
}

.margin-bottom-1 {
  margin-bottom: 1.5rem !important;
}

.margin-left-1 {
  margin-left: 1.5rem !important;
}

.margin-horizontal-1 {
  margin-right: 1.5rem !important;
  margin-left: 1.5rem !important;
}

.margin-vertical-1 {
  margin-top: 1.5rem !important;
  margin-bottom: 1.5rem !important;
}

.padding-1 {
  padding: 1.5rem !important;
}

.padding-top-1 {
  padding-top: 1.5rem !important;
}

.padding-right-1 {
  padding-right: 1.5rem !important;
}

.padding-bottom-1 {
  padding-bottom: 1.5rem !important;
}

.padding-left-1 {
  padding-left: 1.5rem !important;
}

.padding-horizontal-1 {
  padding-right: 1.5rem !important;
  padding-left: 1.5rem !important;
}

.padding-vertical-1 {
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
}

.margin-2 {
  margin: 3rem !important;
}

.margin-top-2 {
  margin-top: 3rem !important;
}

.margin-right-2 {
  margin-right: 3rem !important;
}

.margin-bottom-2 {
  margin-bottom: 3rem !important;
}

.margin-left-2 {
  margin-left: 3rem !important;
}

.margin-horizontal-2 {
  margin-right: 3rem !important;
  margin-left: 3rem !important;
}

.margin-vertical-2 {
  margin-top: 3rem !important;
  margin-bottom: 3rem !important;
}

.padding-2 {
  padding: 3rem !important;
}

.padding-top-2 {
  padding-top: 3rem !important;
}

.padding-right-2 {
  padding-right: 3rem !important;
}

.padding-bottom-2 {
  padding-bottom: 3rem !important;
}

.padding-left-2 {
  padding-left: 3rem !important;
}

.padding-horizontal-2 {
  padding-right: 3rem !important;
  padding-left: 3rem !important;
}

.padding-vertical-2 {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}

.margin-3 {
  margin: 4.5rem !important;
}

.margin-top-3 {
  margin-top: 4.5rem !important;
}

.margin-right-3 {
  margin-right: 4.5rem !important;
}

.margin-bottom-3 {
  margin-bottom: 4.5rem !important;
}

.margin-left-3 {
  margin-left: 4.5rem !important;
}

.margin-horizontal-3 {
  margin-right: 4.5rem !important;
  margin-left: 4.5rem !important;
}

.margin-vertical-3 {
  margin-top: 4.5rem !important;
  margin-bottom: 4.5rem !important;
}

.padding-3 {
  padding: 4.5rem !important;
}

.padding-top-3 {
  padding-top: 4.5rem !important;
}

.padding-right-3 {
  padding-right: 4.5rem !important;
}

.padding-bottom-3 {
  padding-bottom: 4.5rem !important;
}

.padding-left-3 {
  padding-left: 4.5rem !important;
}

.padding-horizontal-3 {
  padding-right: 4.5rem !important;
  padding-left: 4.5rem !important;
}

.padding-vertical-3 {
  padding-top: 4.5rem !important;
  padding-bottom: 4.5rem !important;
}

.hide {
  display: none !important;
}

.invisible {
  visibility: hidden;
}

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

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

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

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

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

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

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

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

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

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

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

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

.show-for-landscape,
.hide-for-portrait {
  display: block !important;
}

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

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

.hide-for-landscape,
.show-for-portrait {
  display: none !important;
}

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

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

/*==================================================
=            Mixin Fullwidth Background            =
==================================================*/
/*=====  End of Mixin Fullwidth Background  ======*/
/*==========================================
=            Generate Font Face            =
==========================================*/
/*=====  End of Generate Font Face  ======*/
/*===========================================
=            Mixin Lists Styling            =
===========================================*/
/**
 * Mixins fuer normale Listen und DL Listen

*/
/*=====  End of Mixin Lists Styling  ======*/
/*=========================================
=            Mixin Paintstroke            =
=========================================*/
/*=====  End of Mixin Paintstroke  ======*/
/**
Module sind 'Bausteine', welche unter anderem in Layouts benutzt werden koennen.
Sie haben keine Positionsangaben, sondern definieren 'nur' das Aussehen,
sprich hier werden die styles wie Farben, Schriften usw, definiert.
 */
/*========================================
=            Module Accordion            =
========================================*/
.module-accordion {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  padding-bottom: 3rem !important;
}

.module-accordion::before, .module-accordion::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.module-accordion::after {
  clear: both;
}

.module-accordion .accordion-header {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  padding-bottom: 1.5rem !important;
}

@media print, screen and (min-width: 40em) {
  .module-accordion .accordion-header {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.module-accordion .accordion-header, .module-accordion .accordion-header:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.module-accordion .accordion-header:last-child:not(:first-child) {
  float: right;
}

.module-accordion .accordion-wrapper {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .module-accordion .accordion-wrapper {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.module-accordion .accordion-wrapper, .module-accordion .accordion-wrapper:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.module-accordion .accordion-wrapper:last-child:not(:first-child) {
  float: right;
}

.module-accordion .accordion-wrapper .accordion-title {
  font-family: "Roboto Slab", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1rem;
  font-weight: 700;
}

@media print, screen and (min-width: 40em) {
  .module-accordion .accordion-wrapper .accordion-title {
    font-size: 1rem;
  }
}

@media print, screen and (min-width: 40em) {
  .module-accordion .accordion-header {
    width: 83.33333%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    margin-right: auto;
    margin-left: auto;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .module-accordion .accordion-header {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .module-accordion .accordion-header, .module-accordion .accordion-header:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  .module-accordion .accordion-header:last-child:not(:first-child) {
    float: right;
  }
  .module-accordion .accordion-header, .module-accordion .accordion-header:last-child:not(:first-child) {
    float: none;
    clear: both;
  }
  .module-accordion .accordion-wrapper {
    width: 83.33333%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    margin-right: auto;
    margin-left: auto;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .module-accordion .accordion-wrapper {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .module-accordion .accordion-wrapper, .module-accordion .accordion-wrapper:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  .module-accordion .accordion-wrapper:last-child:not(:first-child) {
    float: right;
  }
  .module-accordion .accordion-wrapper, .module-accordion .accordion-wrapper:last-child:not(:first-child) {
    float: none;
    clear: both;
  }
}

@media print, screen and (min-width: 60.625em) {
  .module-accordion .accordion-header {
    width: 66.66667%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    margin-right: auto;
    margin-left: auto;
  }
}

@media print, screen and (min-width: 60.625em) and (min-width: 40em) {
  .module-accordion .accordion-header {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 60.625em) {
  .module-accordion .accordion-header, .module-accordion .accordion-header:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  .module-accordion .accordion-header:last-child:not(:first-child) {
    float: right;
  }
  .module-accordion .accordion-header, .module-accordion .accordion-header:last-child:not(:first-child) {
    float: none;
    clear: both;
  }
  .module-accordion .accordion-wrapper {
    width: 66.66667%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    margin-right: auto;
    margin-left: auto;
  }
}

@media print, screen and (min-width: 60.625em) and (min-width: 40em) {
  .module-accordion .accordion-wrapper {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 60.625em) {
  .module-accordion .accordion-wrapper, .module-accordion .accordion-wrapper:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  .module-accordion .accordion-wrapper:last-child:not(:first-child) {
    float: right;
  }
  .module-accordion .accordion-wrapper, .module-accordion .accordion-wrapper:last-child:not(:first-child) {
    float: none;
    clear: both;
  }
}

/*=====  End of Module Accordion  ======*/
/*==========================================
=            Module Header Site            =
==========================================*/
.title-bar.shrink {
  background: #0a0a0a;
  height: 3em;
  margin: 0;
  padding: 0;
  overflow: hidden;
  z-index: 200;
}

.title-bar.shrink #module-banner {
  padding-top: 4px !important;
  padding-bottom: 0 !important;
}

.title-bar.shrink #module-banner #wrapper-book {
  width: 33.33333%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  display: block;
}

@media print, screen and (min-width: 40em) {
  .title-bar.shrink #module-banner #wrapper-book {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.title-bar.shrink #module-banner #wrapper-book, .title-bar.shrink #module-banner #wrapper-book:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.title-bar.shrink #module-banner #wrapper-book:last-child:not(:first-child) {
  float: right;
}

.title-bar.shrink #module-banner #wrapper-book .button {
  float: right;
  height: 36px;
  margin: 2px auto;
  padding: 4px 16px;
}

#module-banner {
  background-color: #0a0a0a;
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
}

#module-banner::before, #module-banner::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

#module-banner::after {
  clear: both;
}

#module-banner .module-navigation-banner {
  width: 66.66667%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  #module-banner .module-navigation-banner {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

#module-banner .module-navigation-banner, #module-banner .module-navigation-banner:last-child:not(:first-child) {
  float: left;
  clear: none;
}

#module-banner .module-navigation-banner:last-child:not(:first-child) {
  float: right;
}

#module-banner #wrapper-book {
  display: none;
}

#module-banner #wrapper-social {
  width: 16.66667%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  justify-content: flex-end;
  align-items: center;
  padding-top: 0.375rem !important;
  display: none;
}

@media print, screen and (min-width: 40em) {
  #module-banner #wrapper-social {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

#module-banner #wrapper-social, #module-banner #wrapper-social:last-child:not(:first-child) {
  float: left;
  clear: none;
}

#module-banner #wrapper-social:last-child:not(:first-child) {
  float: right;
}

#module-banner #wrapper-social ul {
  text-align: right;
  display: table;
}

#module-banner #wrapper-social ul li {
  display: inline;
  padding-left: 0.75rem !important;
}

#module-banner #wrapper-social ul li a {
  color: #FDFCFC;
}

#module-banner #wrapper-social ul li a:visited {
  color: #FDFCFC;
}

#module-banner #wrapper-social ul li a:focus {
  color: #FDFCFC;
}

#module-banner #wrapper-social ul li a:hover {
  color: #D5A847;
}

#module-banner #wrapper-social ul li a:active {
  color: #FDFCFC;
}

#module-banner #wrapper-social ul li a.icon {
  font-family: "Roboto Slab", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
}

@media print, screen and (min-width: 40em) {
  #module-banner #wrapper-social ul li a.icon {
    font-size: 1.3125rem;
  }
}

@media print, screen and (min-width: 60.625em) {
  #module-banner #wrapper-social {
    display: flex;
  }
}

/*=====  End of Module Header Site  ======*/
/*=======================================================
=            Module Carousel Profile Styling            =
=======================================================*/
.module-carousel-profile {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
}

.module-carousel-profile::before, .module-carousel-profile::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.module-carousel-profile::after {
  clear: both;
}

.module-carousel-profile .carousel-profile {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .module-carousel-profile .carousel-profile {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.module-carousel-profile .carousel-profile, .module-carousel-profile .carousel-profile:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.module-carousel-profile .carousel-profile:last-child:not(:first-child) {
  float: right;
}

.module-carousel-profile.-index {
  margin-bottom: 3em;
}

.module-carousel-profile.-index .teaser-image {
  height: 260px;
  margin-bottom: 1em;
}

.module-carousel-profile.-index .teaser-image img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  margin: 0 auto;
}

.module-carousel-profile.-index .typeset-subheading-2 {
  text-align: center;
}

/*=====  End of Module Carousel Profile Styling  ======*/
/*=======================================================
=            Module Carousel Profile Styling            =
=======================================================*/
.module-carousel-van {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
}

.module-carousel-van::before, .module-carousel-van::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.module-carousel-van::after {
  clear: both;
}

.module-carousel-van .carousel-profile {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .module-carousel-van .carousel-profile {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.module-carousel-van .carousel-profile, .module-carousel-van .carousel-profile:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.module-carousel-van .carousel-profile:last-child:not(:first-child) {
  float: right;
}

.module-carousel-van.-index .teaser-image {
  height: 240px;
}

.module-carousel-van.-index .teaser-image img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
  .module-carousel-van.-index .teaser-image {
    height: 480px;
  }
}

@media print, screen and (min-width: 60.625em) {
  .module-carousel-van.-index .teaser-image {
    height: 640px;
  }
}

/*=====  End of Module Carousel Profile Styling  ======*/
/*=============================================
=            Module Call to action            =
=============================================*/
.module-cta {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  padding-top: 3rem !important;
  padding-bottom: 6rem !important;
}

.module-cta::before, .module-cta::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.module-cta::after {
  clear: both;
}

.module-cta.small-margin {
  padding-bottom: 0rem !important;
}

.module-cta .wrapper-button {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  margin-right: auto;
  margin-left: auto;
}

@media print, screen and (min-width: 40em) {
  .module-cta .wrapper-button {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.module-cta .wrapper-button, .module-cta .wrapper-button:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.module-cta .wrapper-button:last-child:not(:first-child) {
  float: right;
}

.module-cta .wrapper-button, .module-cta .wrapper-button:last-child:not(:first-child) {
  float: none;
  clear: both;
}

@media print, screen and (min-width: 40em) {
  .module-cta .wrapper-button {
    width: 50%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    margin-right: auto;
    margin-left: auto;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .module-cta .wrapper-button {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .module-cta .wrapper-button, .module-cta .wrapper-button:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  .module-cta .wrapper-button:last-child:not(:first-child) {
    float: right;
  }
  .module-cta .wrapper-button, .module-cta .wrapper-button:last-child:not(:first-child) {
    float: none;
    clear: both;
  }
}

@media print, screen and (min-width: 60.625em) {
  .module-cta .wrapper-button {
    width: 25%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    margin-right: auto;
    margin-left: auto;
  }
}

@media print, screen and (min-width: 60.625em) and (min-width: 40em) {
  .module-cta .wrapper-button {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 60.625em) {
  .module-cta .wrapper-button, .module-cta .wrapper-button:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  .module-cta .wrapper-button:last-child:not(:first-child) {
    float: right;
  }
  .module-cta .wrapper-button, .module-cta .wrapper-button:last-child:not(:first-child) {
    float: none;
    clear: both;
  }
}

/*=====  End of Module Call to action  ======*/
/*==============================================
=            Module Gallery Masonry            =
==============================================*/
.module-gallery-masonry:after {
  content: '';
  display: block;
  clear: both;
}

/*=====  End of Module Gallery Masonry  ======*/
#module-header-site {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  padding-top: 1.5rem !important;
}

#module-header-site::before, #module-header-site::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

#module-header-site::after {
  clear: both;
}

#module-header-site #wrapper-header-logo {
  width: 33.33333%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  #module-header-site #wrapper-header-logo {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

#module-header-site #wrapper-header-logo, #module-header-site #wrapper-header-logo:last-child:not(:first-child) {
  float: left;
  clear: none;
}

#module-header-site #wrapper-header-logo:last-child:not(:first-child) {
  float: right;
}

#module-header-site .module-navigation-main {
  width: 66.66667%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  #module-header-site .module-navigation-main {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

#module-header-site .module-navigation-main, #module-header-site .module-navigation-main:last-child:not(:first-child) {
  float: left;
  clear: none;
}

#module-header-site .module-navigation-main:last-child:not(:first-child) {
  float: right;
}

@media print, screen and (min-width: 40em) {
  #module-header-site #wrapper-header-logo {
    width: 25%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  #module-header-site #wrapper-header-logo {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  #module-header-site #wrapper-header-logo, #module-header-site #wrapper-header-logo:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  #module-header-site #wrapper-header-logo:last-child:not(:first-child) {
    float: right;
  }
  #module-header-site .module-navigation-main {
    width: 75%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  #module-header-site .module-navigation-main {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  #module-header-site .module-navigation-main, #module-header-site .module-navigation-main:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  #module-header-site .module-navigation-main:last-child:not(:first-child) {
    float: right;
  }
}

/*=====================================================
=            Module Header Article styling            =
=====================================================*/
.module-header-article {
  padding-bottom: 1.5rem !important;
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  margin-right: auto;
  margin-left: auto;
  text-align: center;
}

@media print, screen and (min-width: 40em) {
  .module-header-article {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.module-header-article, .module-header-article:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.module-header-article:last-child:not(:first-child) {
  float: right;
}

.module-header-article, .module-header-article:last-child:not(:first-child) {
  float: none;
  clear: both;
}

.module-header-article.--no-padding {
  padding-bottom: 0 !important;
}

.module-header-article .title {
  padding-bottom: 1.5rem !important;
}

.module-header-article .icon-stern {
  padding-bottom: 2.25rem !important;
}

.module-header-article .subtitle {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  margin-right: auto;
  margin-left: auto;
}

@media print, screen and (min-width: 40em) {
  .module-header-article .subtitle {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.module-header-article .subtitle, .module-header-article .subtitle:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.module-header-article .subtitle:last-child:not(:first-child) {
  float: right;
}

.module-header-article .subtitle, .module-header-article .subtitle:last-child:not(:first-child) {
  float: none;
  clear: both;
}

@media print, screen and (min-width: 40em) {
  .module-header-article {
    padding-bottom: 3rem !important;
  }
  .module-header-article .subtitle {
    width: 83.33333%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    margin-right: auto;
    margin-left: auto;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .module-header-article .subtitle {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .module-header-article .subtitle, .module-header-article .subtitle:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  .module-header-article .subtitle:last-child:not(:first-child) {
    float: right;
  }
  .module-header-article .subtitle, .module-header-article .subtitle:last-child:not(:first-child) {
    float: none;
    clear: both;
  }
}

@media print, screen and (min-width: 60.625em) {
  .module-header-article .subtitle {
    width: 66.66667%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    margin-right: auto;
    margin-left: auto;
  }
}

@media print, screen and (min-width: 60.625em) and (min-width: 40em) {
  .module-header-article .subtitle {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 60.625em) {
  .module-header-article .subtitle, .module-header-article .subtitle:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  .module-header-article .subtitle:last-child:not(:first-child) {
    float: right;
  }
  .module-header-article .subtitle, .module-header-article .subtitle:last-child:not(:first-child) {
    float: none;
    clear: both;
  }
}

/*=====  End of Module Header Article styling  ======*/
/*===================================
=            Module Logo            =
===================================*/
.module-logo a {
  height: 6.125rem;
  display: block;
  background-image: url("/assets/img/logo.svg");
  background-position: 50% 15%;
  background-repeat: no-repeat;
  background-size: contain;
  text-indent: -9999px;
}

.module-logo.-invert a {
  background-image: url("/assets/img/logo-invert.svg");
}

.module-logo.-left a {
  background-position: 0% 15%;
}

/*=====  End of Module Logo  ======*/
/*======================================================
=            Module Loading Spinner Styling            =
======================================================*/
.module-loading-spinner {
  background: rgba(213, 168, 71, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
}

.module-loading-spinner .loading-icon {
  background: url("/assets/img/sk-loading.svg") 50% 50% no-repeat;
  height: 32px;
}

.module-loading-spinner .wrapper-loading {
  margin: 0 auto;
  width: 134px;
}

.module-loading-spinner .dot-animation {
  margin: 0 auto;
  padding-top: 0.375rem !important;
  display: flex;
  justify-content: center;
  align-items: center;
}

.module-loading-spinner .dot-animation .dot {
  margin: 6px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #FDFCFC;
  -webkit-animation-name: pulse;
          animation-name: pulse;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-direction: alternate;
          animation-direction: alternate;
}

.module-loading-spinner .dot-animation .dot:nth-child(1) {
  -webkit-animation-delay: 0.6s;
          animation-delay: 0.6s;
  margin-left: 0;
}

.module-loading-spinner .dot-animation .dot:nth-child(2) {
  -webkit-animation-delay: 0.5s;
          animation-delay: 0.5s;
}

.module-loading-spinner .dot-animation .dot:nth-child(3) {
  -webkit-animation-delay: 0.4s;
          animation-delay: 0.4s;
}

.module-loading-spinner .dot-animation .dot:nth-child(4) {
  -webkit-animation-delay: 0.3s;
          animation-delay: 0.3s;
}

.module-loading-spinner .dot-animation .dot:nth-child(5) {
  -webkit-animation-delay: 0.2s;
          animation-delay: 0.2s;
}

.module-loading-spinner .dot-animation .dot:nth-child(6) {
  -webkit-animation-delay: 0.1s;
          animation-delay: 0.1s;
  margin-right: 0;
}

@-webkit-keyframes pulse {
  from,
  0% {
    opacity: 0.1;
  }
  50% {
    opacity: 0.5;
  }
  100%,
  to {
    opacity: 1;
  }
}

@keyframes pulse {
  from,
  0% {
    opacity: 0.1;
  }
  50% {
    opacity: 0.5;
  }
  100%,
  to {
    opacity: 1;
  }
}

/*=====  End of Module Loading Spinner Styling  ======*/
/*================================================
=            Module navigation banner            =
================================================*/
.module-navigation-banner ul {
  text-align: right;
  display: table;
}

.module-navigation-banner ul li {
  display: inline;
  padding-bottom: 0.375rem !important;
  margin-right: 0.75rem !important;
}

.module-navigation-banner ul li a {
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1.5rem;
  font-weight: 600;
  text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.12);
}

@media print, screen and (min-width: 40em) {
  .module-navigation-banner ul li a {
    font-size: 1.5rem;
  }
}

.module-navigation-banner ul li a .icon-menu-svg {
  text-shadow: none;
  font-size: 36px;
  display: block;
  float: left;
  line-height: 1em;
  margin-top: 4px;
  background-image: url("../iconfont/menu.svg") !important;
  width: 36px;
  height: 36px;
}

.module-navigation-banner #navigation-mobile {
  display: block;
}

.module-navigation-banner #navigation-desktop {
  display: none;
}

.module-navigation-banner #navigation-desktop a {
  color: #fdfcfc;
}

.module-navigation-banner #navigation-desktop a:hover {
  color: #D5A847;
}

@media screen and (min-width: 63.9375em) {
  .module-navigation-banner #navigation-mobile {
    display: none;
  }
  .module-navigation-banner #navigation-desktop {
    display: block;
  }
}

/*=====  End of Module navigation banner  ======*/
/*========================================================
=            Module Navigation footer styling            =
========================================================*/
#module-navigation-footer {
  display: flex;
  flex-flow: row wrap;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

#module-navigation-footer .nav-column {
  flex: 0 0 auto;
  width: calc(100% - 1.25rem);
  margin-left: 0.625rem;
  margin-right: 0.625rem;
  padding-bottom: 4.5rem !important;
}

#module-navigation-footer .nav-column:last-child {
  padding-bottom: 0rem !important;
}

#module-navigation-footer .nav-column .nav-title {
  padding-bottom: 1.5rem !important;
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1.5rem;
  font-weight: 600;
  text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.12);
}

@media print, screen and (min-width: 40em) {
  #module-navigation-footer .nav-column .nav-title {
    font-size: 1.5rem;
  }
}

#module-navigation-footer .nav-column li {
  padding-bottom: 0.375rem !important;
}

#module-navigation-footer .nav-column li a {
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1.125rem;
  font-weight: 600;
}

@media print, screen and (min-width: 40em) {
  #module-navigation-footer .nav-column li a {
    font-size: 1.125rem;
  }
}

@media print, screen and (min-width: 40em) {
  #module-navigation-footer .nav-column {
    flex: 0 0 auto;
    width: calc(25% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}

@media print, screen and (min-width: 60.625em) {
  #module-navigation-footer .nav-column {
    flex: 0 0 auto;
    width: calc(16.66667% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}

/*=====  End of Module Navigation footer styling  ======*/
/*======================================================
=            Module Navigation main styling            =
======================================================*/
.module-navigation-main {
  padding-top: 1.5rem !important;
}

.module-navigation-main ul {
  float: right;
  display: inline-table;
  position: relative;
}

.module-navigation-main ul li {
  display: inline;
  padding-left: 1.5rem !important;
}

.module-navigation-main ul li a {
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1.5rem;
  font-weight: 600;
  text-transform: uppercase;
}

@media print, screen and (min-width: 40em) {
  .module-navigation-main ul li a {
    font-size: 1.5rem;
  }
}

.module-navigation-main ul li a.button {
  margin-bottom: 0.6rem !important;
  padding-top: 0.6rem !important;
  padding-bottom: 0.6rem !important;
}

.module-navigation-main #navigation-mobile {
  display: block;
}

.module-navigation-main #navigation-desktop {
  display: none;
}

@media screen and (min-width: 63.9375em) {
  .module-navigation-main #navigation-mobile {
    display: none;
  }
  .module-navigation-main #navigation-desktop {
    display: block;
  }
}

/*=====  End of Module Navigation main styling  ======*/
/*====================================================
=            Module Navigation Off-Canvas            =
====================================================*/
#module-navigation-offcanvas nav ul {
  padding: 15px;
  padding-top: 4.5rem !important;
  text-align: left;
}

#module-navigation-offcanvas nav ul li {
  padding-top: 0.75rem !important;
  padding-bottom: 0.75rem !important;
  border-bottom: 1px solid rgba(253, 252, 252, 0.25);
}

#module-navigation-offcanvas nav ul li:first-child {
  border-bottom: 1px solid rgba(253, 252, 252, 0.25);
}

#module-navigation-offcanvas nav ul li a {
  color: #FDFCFC;
  line-height: 1em;
  display: block;
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1.5rem;
  font-weight: 600;
  text-transform: uppercase;
  outline: none;
}

@media print, screen and (min-width: 40em) {
  #module-navigation-offcanvas nav ul li a {
    font-size: 1.5rem;
  }
}

#module-navigation-offcanvas nav ul li a:hover {
  color: #D5A847;
}

/*=====  End of Module Navigation Off-Canvas  ======*/
/*=====================================
=            module-social            =
=====================================*/
.module-social ul {
  text-align: center;
}

.module-social ul li {
  display: inline-block;
  margin-right: 0.3rem !important;
  margin-left: 0.3rem !important;
}

.module-social ul li i {
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1.5rem;
  font-weight: 600;
  text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.12);
}

@media print, screen and (min-width: 40em) {
  .module-social ul li i {
    font-size: 1.5rem;
  }
}

/*=====  End of module-social  ======*/
/*=====================================
=            Module Teaser            =
=====================================*/
/* ---- grid ---- */
/* ---- grid-item ---- */
.grid-sizer,
.grid-item {
  width: 25%;
}

.teaser-overlay {
  position: absolute;
  height: calc(100% - 10px);
  width: calc(100% - 10px);
  content: '';
  background: rgba(42, 39, 32, 0.5);
  padding: 0;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #FDFCFC;
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 2rem;
  font-weight: 600;
  text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.12);
}

@media print, screen and (min-width: 40em) {
  .teaser-overlay {
    font-size: 4.5rem;
  }
}

.teaser-overlay:hover {
  color: #D5A847;
}

.teaser-hidden {
  display: none;
}

.module-teaser.masonry-item {
  height: 120px;
  float: left;
  width: 25%;
  padding: 5px;
}

.module-teaser.masonry-item .image {
  background-size: cover;
  height: 100%;
  background-repeat: no-repeat;
  background-position: 50% 50%;
}

.module-teaser.masonry-item.--width-1 {
  width: 100%;
}

@media print, screen and (min-width: 40em) {
  .module-teaser.masonry-item.--width-1 {
    width: 25%;
  }
}

.module-teaser.masonry-item.--width-2 {
  width: 100%;
}

@media print, screen and (min-width: 40em) {
  .module-teaser.masonry-item.--width-2 {
    width: 50%;
  }
}

.module-teaser.masonry-item.--width-3 {
  width: 100%;
}

.module-teaser.masonry-item.--height-1 {
  height: 205px;
}

.module-teaser.masonry-item.--height-2 {
  height: 305px;
}

.module-teaser.masonry-item.--height-3 {
  height: 410px;
}

.module-teaser.masonry-item.--height-4 {
  height: 610px;
}

/*=====  End of Module Teaser  ======*/
.module-teaser-ausstattung {
  padding-bottom: 3rem !important;
}

.module-teaser-ausstattung ul {
  padding-top: 0.75rem !important;
}

/*===========================================
=            Module Text Styling            =
===========================================*/
.module-text {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  padding-bottom: 1.5rem !important;
}

.module-text::before, .module-text::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.module-text::after {
  clear: both;
}

.module-text .text-header {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  padding-bottom: 0.75rem !important;
}

@media print, screen and (min-width: 40em) {
  .module-text .text-header {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.module-text .text-header, .module-text .text-header:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.module-text .text-header:last-child:not(:first-child) {
  float: right;
}

.module-text img {
  padding-bottom: 3rem !important;
}

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

.module-text.-single .text-column {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .module-text.-single .text-column {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.module-text.-single .text-column, .module-text.-single .text-column:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.module-text.-single .text-column:last-child:not(:first-child) {
  float: right;
}

.module-text.-split .text-column {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .module-text.-split .text-column {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.module-text.-split .text-column, .module-text.-split .text-column:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.module-text.-split .text-column:last-child:not(:first-child) {
  float: right;
}

@media print, screen and (min-width: 40em) {
  .module-text.-single .text-content-wrapper {
    padding-bottom: 1.5rem !important;
  }
  .module-text.-single .text-header {
    width: 83.33333%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    margin-right: auto;
    margin-left: auto;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .module-text.-single .text-header {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .module-text.-single .text-header, .module-text.-single .text-header:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  .module-text.-single .text-header:last-child:not(:first-child) {
    float: right;
  }
  .module-text.-single .text-header, .module-text.-single .text-header:last-child:not(:first-child) {
    float: none;
    clear: both;
  }
  .module-text.-single .text-column {
    width: 83.33333%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    margin-right: auto;
    margin-left: auto;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .module-text.-single .text-column {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .module-text.-single .text-column, .module-text.-single .text-column:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  .module-text.-single .text-column:last-child:not(:first-child) {
    float: right;
  }
  .module-text.-single .text-column, .module-text.-single .text-column:last-child:not(:first-child) {
    float: none;
    clear: both;
  }
  .module-text.-split .text-column {
    width: 50%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .module-text.-split .text-column {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .module-text.-split .text-column, .module-text.-split .text-column:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  .module-text.-split .text-column:last-child:not(:first-child) {
    float: right;
  }
}

/*=====  End of Module Text Styling  ======*/
/**
Layouts beschreiben einfach gesagt die Positionen und Groessen von Modulen.
Hier wird hauptsaechlich mit dem Foundation Framework gearbeitet und keine
expliziten Style-Angaben zu Modulen gemacht.
 */
@font-face {
  font-family: "Barlow Condensed";
  src: local("☺"), url("/assets/fonts/BarlowCondensed-Thin.eot") format("eot"), url("/assets/fonts/BarlowCondensed-Thin.woff") format("woff"), url("/assets/fonts/BarlowCondensed-Thin.svg") format("svg"), url("/assets/fonts/BarlowCondensed-Thin.ttf") format("ttf");
  font-weight: 100;
  font-style: normal;
}

@font-face {
  font-family: "Barlow Condensed";
  src: local("☺"), url("/assets/fonts/BarlowCondensed-ExtraLight.eot") format("eot"), url("/assets/fonts/BarlowCondensed-ExtraLight.woff") format("woff"), url("/assets/fonts/BarlowCondensed-ExtraLight.svg") format("svg"), url("/assets/fonts/BarlowCondensed-ExtraLight.ttf") format("ttf");
  font-weight: 200;
  font-style: normal;
}

@font-face {
  font-family: "Barlow Condensed";
  src: local("☺"), url("/assets/fonts/BarlowCondensed-Light.eot") format("eot"), url("/assets/fonts/BarlowCondensed-Light.woff") format("woff"), url("/assets/fonts/BarlowCondensed-Light.svg") format("svg"), url("/assets/fonts/BarlowCondensed-Light.ttf") format("ttf");
  font-weight: 300;
  font-style: normal;
}

@font-face {
  font-family: "Barlow Condensed";
  src: local("☺"), url("/assets/fonts/BarlowCondensed-Regular.eot") format("eot"), url("/assets/fonts/BarlowCondensed-Regular.woff") format("woff"), url("/assets/fonts/BarlowCondensed-Regular.svg") format("svg"), url("/assets/fonts/BarlowCondensed-Regular.ttf") format("ttf");
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: "Barlow Condensed";
  src: local("☺"), url("/assets/fonts/BarlowCondensed-Medium.eot") format("eot"), url("/assets/fonts/BarlowCondensed-Medium.woff") format("woff"), url("/assets/fonts/BarlowCondensed-Medium.svg") format("svg"), url("/assets/fonts/BarlowCondensed-Medium.ttf") format("ttf");
  font-weight: 500;
  font-style: normal;
}

@font-face {
  font-family: "Barlow Condensed";
  src: local("☺"), url("/assets/fonts/BarlowCondensed-SemiBold.eot") format("eot"), url("/assets/fonts/BarlowCondensed-SemiBold.woff") format("woff"), url("/assets/fonts/BarlowCondensed-SemiBold.svg") format("svg"), url("/assets/fonts/BarlowCondensed-SemiBold.ttf") format("ttf");
  font-weight: 600;
  font-style: normal;
}

@font-face {
  font-family: "Barlow Condensed";
  src: local("☺"), url("/assets/fonts/BarlowCondensed-Bold.eot") format("eot"), url("/assets/fonts/BarlowCondensed-Bold.woff") format("woff"), url("/assets/fonts/BarlowCondensed-Bold.svg") format("svg"), url("/assets/fonts/BarlowCondensed-Bold.ttf") format("ttf");
  font-weight: 700;
  font-style: normal;
}

@font-face {
  font-family: "Barlow Condensed";
  src: local("☺"), url("/assets/fonts/BarlowCondensed-ExtraBold.eot") format("eot"), url("/assets/fonts/BarlowCondensed-ExtraBold.woff") format("woff"), url("/assets/fonts/BarlowCondensed-ExtraBold.svg") format("svg"), url("/assets/fonts/BarlowCondensed-ExtraBold.ttf") format("ttf");
  font-weight: 800;
  font-style: normal;
}

@font-face {
  font-family: "Barlow Condensed";
  src: local("☺"), url("/assets/fonts/BarlowCondensed-Black.eot") format("eot"), url("/assets/fonts/BarlowCondensed-Black.woff") format("woff"), url("/assets/fonts/BarlowCondensed-Black.svg") format("svg"), url("/assets/fonts/BarlowCondensed-Black.ttf") format("ttf");
  font-weight: 900;
  font-style: normal;
}

@font-face {
  font-family: "Roboto Slab";
  src: local("☺"), url("/assets/fonts/RobotoSlab-Thin.eot") format("eot"), url("/assets/fonts/RobotoSlab-Thin.woff") format("woff"), url("/assets/fonts/RobotoSlab-Thin.svg") format("svg"), url("/assets/fonts/RobotoSlab-Thin.ttf") format("ttf");
  font-weight: 100;
  font-style: normal;
}

@font-face {
  font-family: "Roboto Slab";
  src: local("☺"), url("/assets/fonts/RobotoSlab-ExtraLight.eot") format("eot"), url("/assets/fonts/RobotoSlab-ExtraLight.woff") format("woff"), url("/assets/fonts/RobotoSlab-ExtraLight.svg") format("svg"), url("/assets/fonts/RobotoSlab-ExtraLight.ttf") format("ttf");
  font-weight: 200;
  font-style: normal;
}

@font-face {
  font-family: "Roboto Slab";
  src: local("☺"), url("/assets/fonts/RobotoSlab-Light.eot") format("eot"), url("/assets/fonts/RobotoSlab-Light.woff") format("woff"), url("/assets/fonts/RobotoSlab-Light.svg") format("svg"), url("/assets/fonts/RobotoSlab-Light.ttf") format("ttf");
  font-weight: 300;
  font-style: normal;
}

@font-face {
  font-family: "Roboto Slab";
  src: local("☺"), url("/assets/fonts/RobotoSlab-Regular.eot") format("eot"), url("/assets/fonts/RobotoSlab-Regular.woff") format("woff"), url("/assets/fonts/RobotoSlab-Regular.svg") format("svg"), url("/assets/fonts/RobotoSlab-Regular.ttf") format("ttf");
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: "Roboto Slab";
  src: local("☺"), url("/assets/fonts/RobotoSlab-Medium.eot") format("eot"), url("/assets/fonts/RobotoSlab-Medium.woff") format("woff"), url("/assets/fonts/RobotoSlab-Medium.svg") format("svg"), url("/assets/fonts/RobotoSlab-Medium.ttf") format("ttf");
  font-weight: 500;
  font-style: normal;
}

@font-face {
  font-family: "Roboto Slab";
  src: local("☺"), url("/assets/fonts/RobotoSlab-SemiBold.eot") format("eot"), url("/assets/fonts/RobotoSlab-SemiBold.woff") format("woff"), url("/assets/fonts/RobotoSlab-SemiBold.svg") format("svg"), url("/assets/fonts/RobotoSlab-SemiBold.ttf") format("ttf");
  font-weight: 600;
  font-style: normal;
}

@font-face {
  font-family: "Roboto Slab";
  src: local("☺"), url("/assets/fonts/RobotoSlab-Bold.eot") format("eot"), url("/assets/fonts/RobotoSlab-Bold.woff") format("woff"), url("/assets/fonts/RobotoSlab-Bold.svg") format("svg"), url("/assets/fonts/RobotoSlab-Bold.ttf") format("ttf");
  font-weight: 700;
  font-style: normal;
}

@font-face {
  font-family: "Roboto Slab";
  src: local("☺"), url("/assets/fonts/RobotoSlab-ExtraBold.eot") format("eot"), url("/assets/fonts/RobotoSlab-ExtraBold.woff") format("woff"), url("/assets/fonts/RobotoSlab-ExtraBold.svg") format("svg"), url("/assets/fonts/RobotoSlab-ExtraBold.ttf") format("ttf");
  font-weight: 800;
  font-style: normal;
}

@font-face {
  font-family: "Roboto Slab";
  src: local("☺"), url("/assets/fonts/RobotoSlab-Black.eot") format("eot"), url("/assets/fonts/RobotoSlab-Black.woff") format("woff"), url("/assets/fonts/RobotoSlab-Black.svg") format("svg"), url("/assets/fonts/RobotoSlab-Black.ttf") format("ttf");
  font-weight: 900;
  font-style: normal;
}

/*====================================
=            main styling            =
====================================*/
html, body {
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
}

* {
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: "Roboto Slab", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  overflow-x: hidden;
  background-color: #FDFCFC;
}

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

p.emailadress-mailto {
  display: inline-block;
  margin: 0;
  cursor: pointer;
}

ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

ul li {
  margin: 0;
  padding: 0;
}

.datenschutz ul, .agb ul {
  margin-left: 1.25rem;
  list-style-type: disc;
}

.agb li {
  padding-bottom: 12px;
}

.list-dl-icon {
  padding-left: 45px;
  padding-bottom: 3rem !important;
  background-size: 31px;
  background-position: 0 5px;
  background-repeat: no-repeat;
}

.list-dl-icon dt {
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1.5rem;
  font-weight: 600;
  text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.12);
}

@media print, screen and (min-width: 40em) {
  .list-dl-icon dt {
    font-size: 1.5rem;
  }
}

.list-icon-star li {
  padding-bottom: 0.75rem !important;
  padding-left: 25px;
  font-family: "Roboto Slab", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 0.875rem;
  position: relative;
}

@media print, screen and (min-width: 40em) {
  .list-icon-star li {
    font-size: 0.875rem;
  }
}

.list-icon-star li:before {
  position: absolute;
  margin-right: 0px;
  top: 1px;
  left: 0px;
  content: '';
  display: block;
  height: 19px;
  width: 19px;
  background: url("/assets/img/icons/icon_stern.svg") 0 0 no-repeat;
  background-size: 100%;
}

*:focus {
  outline: none;
}

b,
strong {
  font-weight: 600;
}

a {
  color: #2A2720;
}

a:visited {
  color: #2A2720;
}

a:focus {
  color: #2A2720;
}

a:hover {
  color: #D5A847;
}

a:active {
  color: #2A2720;
}

a.invert {
  color: #FDFCFC;
}

a.invert:visited {
  color: #FDFCFC;
}

a.invert:focus {
  color: #FDFCFC;
}

a.invert:hover {
  color: #D5A847;
}

a.invert:active {
  color: #FDFCFC;
}

h1, h2, h3, h4, h5, h6, .icon {
  text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.12);
}

.typeset-display-4 {
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 2rem;
  font-weight: 600;
  text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.12);
}

@media print, screen and (min-width: 40em) {
  .typeset-display-4 {
    font-size: 4.5rem;
  }
}

.typeset-display-3 {
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1.75rem;
  font-weight: 600;
  text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.12);
}

@media print, screen and (min-width: 40em) {
  .typeset-display-3 {
    font-size: 2.25rem;
  }
}

.typeset-display-2 {
  font-family: "Roboto Slab", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.12);
}

@media print, screen and (min-width: 40em) {
  .typeset-display-2 {
    font-size: 0.875rem;
  }
}

.typeset-display-1 {
  text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.12);
}

.typeset-headline {
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 3rem;
  font-weight: 600;
  text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.12);
}

@media print, screen and (min-width: 40em) {
  .typeset-headline {
    font-size: 6.875rem;
  }
}

.typeset-headline.rent-caravan {
  font-size: 2.5rem;
  text-shadow: none;
  font-weight: 750;
  letter-spacing: 10px;
  text-align: center;
}

.typeset-title {
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 2rem;
  font-weight: 600;
  text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.12);
}

@media print, screen and (min-width: 40em) {
  .typeset-title {
    font-size: 4.5rem;
  }
}

.typeset-subheading-2 {
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1.5rem;
  font-weight: 600;
  text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.12);
}

@media print, screen and (min-width: 40em) {
  .typeset-subheading-2 {
    font-size: 1.5rem;
  }
}

.typeset-subheading-2-large {
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1.75rem;
  font-weight: 600;
  text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.12);
}

@media print, screen and (min-width: 40em) {
  .typeset-subheading-2-large {
    font-size: 2.25rem;
  }
}

.typeset-subheading-1 {
  font-family: "Roboto Slab", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
}

@media print, screen and (min-width: 40em) {
  .typeset-subheading-1 {
    font-size: 1.3125rem;
  }
}

.typeset-body-1 {
  font-family: "Roboto Slab", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1rem;
}

@media print, screen and (min-width: 40em) {
  .typeset-body-1 {
    font-size: 1rem;
  }
}

.typeset-body-2 {
  font-family: "Roboto Slab", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1rem;
  font-weight: 700;
}

@media print, screen and (min-width: 40em) {
  .typeset-body-2 {
    font-size: 1rem;
  }
}

.typeset-caption {
  font-family: "Roboto Slab", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 0.75rem;
  font-weight: 400;
}

@media print, screen and (min-width: 40em) {
  .typeset-caption {
    font-size: 0.75rem;
  }
}

.typeset-button {
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1.5rem;
  font-weight: 600;
}

@media print, screen and (min-width: 40em) {
  .typeset-button {
    font-size: 1.5rem;
  }
}

.typeset-footnote {
  font-family: "Roboto Slab", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 0.875rem;
}

@media print, screen and (min-width: 40em) {
  .typeset-footnote {
    font-size: 0.875rem;
  }
}

.typeset-link-secondary {
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1.125rem;
  font-weight: 600;
}

@media print, screen and (min-width: 40em) {
  .typeset-link-secondary {
    font-size: 1.125rem;
  }
}

.invert {
  color: #FDFCFC;
}

.icon-stern {
  color: #D5A847;
  font-size: 32px;
}

/* Hintergrundfarben */
.background-black {
  width: 100%;
  background-color: #0a0a0a;
}

/* Strich */
.paintstroke-medium {
  background: url("/assets/img/pinselstrich.png") 0 100% no-repeat;
  background-size: 35%;
  padding-bottom: 1.5rem !important;
}

/* Full Width Video */
.layout-section-buchungssystem {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}

.layout-section-buchungssystem h1 {
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 2rem;
  font-weight: 600;
  text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.12);
  padding-bottom: 6rem !important;
}

@media print, screen and (min-width: 40em) {
  .layout-section-buchungssystem h1 {
    font-size: 4.5rem;
  }
}

.layout-section-buchungssystem h2 {
  font-family: "Barlow Condensed", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 2rem;
  font-weight: 600;
  text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.12);
  font-family: "Roboto Slab", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
}

@media print, screen and (min-width: 40em) {
  .layout-section-buchungssystem h2 {
    font-size: 4.5rem;
  }
}

@media print, screen and (min-width: 40em) {
  .layout-section-buchungssystem h2 {
    font-size: 1.3125rem;
  }
}

.layout-section-buchungssystem .camper-description div {
  margin-top: 18px;
}

/*==============================================
=            Layout Content styling            =
==============================================*/
.layout-section-content .article-outer-wrapper {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}

.layout-section-content .article-outer-wrapper::before, .layout-section-content .article-outer-wrapper::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.layout-section-content .article-outer-wrapper::after {
  clear: both;
}

.layout-section-content .article-outer-wrapper .styleguide-wrapper {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .layout-section-content .article-outer-wrapper .styleguide-wrapper {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.layout-section-content .article-outer-wrapper .styleguide-wrapper, .layout-section-content .article-outer-wrapper .styleguide-wrapper:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.layout-section-content .article-outer-wrapper .styleguide-wrapper:last-child:not(:first-child) {
  float: right;
}

.layout-section-content .article-outer-wrapper .module-header-article {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .layout-section-content .article-outer-wrapper .module-header-article {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.layout-section-content .article-outer-wrapper .module-header-article, .layout-section-content .article-outer-wrapper .module-header-article:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.layout-section-content .article-outer-wrapper .module-header-article:last-child:not(:first-child) {
  float: right;
}

.layout-section-content .article-outer-wrapper .module-text {
  width: 100%;
  float: left;
  padding-right: 0;
  padding-left: 0;
}

.layout-section-content .article-outer-wrapper .module-text, .layout-section-content .article-outer-wrapper .module-text:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.layout-section-content .article-outer-wrapper .module-text:last-child:not(:first-child) {
  float: right;
}

.layout-section-content .article-outer-wrapper .module-cta {
  width: 100%;
  float: left;
  padding-right: 0;
  padding-left: 0;
}

.layout-section-content .article-outer-wrapper .module-cta, .layout-section-content .article-outer-wrapper .module-cta:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.layout-section-content .article-outer-wrapper .module-cta:last-child:not(:first-child) {
  float: right;
}

.layout-section-content .article-outer-wrapper .module-carousel-profile {
  width: 100%;
  float: left;
  padding-right: 0;
  padding-left: 0;
}

.layout-section-content .article-outer-wrapper .module-carousel-profile, .layout-section-content .article-outer-wrapper .module-carousel-profile:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.layout-section-content .article-outer-wrapper .module-carousel-profile:last-child:not(:first-child) {
  float: right;
}

.layout-section-content .article-outer-wrapper .module-gallery-masonry {
  width: 100%;
  float: left;
  padding-right: 0;
  padding-left: 0;
}

.layout-section-content .article-outer-wrapper .module-gallery-masonry, .layout-section-content .article-outer-wrapper .module-gallery-masonry:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.layout-section-content .article-outer-wrapper .module-gallery-masonry:last-child:not(:first-child) {
  float: right;
}

@media print, screen and (min-width: 40em) {
  .layout-section-content .article-outer-wrapper .module-text {
    width: 83.33333%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    margin-right: auto;
    margin-left: auto;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .layout-section-content .article-outer-wrapper .module-text {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .layout-section-content .article-outer-wrapper .module-text, .layout-section-content .article-outer-wrapper .module-text:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  .layout-section-content .article-outer-wrapper .module-text:last-child:not(:first-child) {
    float: right;
  }
  .layout-section-content .article-outer-wrapper .module-text, .layout-section-content .article-outer-wrapper .module-text:last-child:not(:first-child) {
    float: none;
    clear: both;
  }
}

/*=====  End of Layout Content styling  ======*/
/*=============================================
=        Layout Section Call to Action        =
=============================================*/
.layout-section-cta {
  padding-top: 6rem !important;
  padding-bottom: 10.5rem !important;
  background: url("/assets/img/bg_reisen.jpg") 50% 50% no-repeat;
  background-size: contain;
  background-color: #211c17;
}

.layout-section-cta .wrapper-content {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
}

.layout-section-cta .wrapper-content::before, .layout-section-cta .wrapper-content::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.layout-section-cta .wrapper-content::after {
  clear: both;
}

.layout-section-cta .wrapper-content .wrapper-headline {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  margin-right: auto;
  margin-left: auto;
}

@media print, screen and (min-width: 40em) {
  .layout-section-cta .wrapper-content .wrapper-headline {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.layout-section-cta .wrapper-content .wrapper-headline, .layout-section-cta .wrapper-content .wrapper-headline:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.layout-section-cta .wrapper-content .wrapper-headline:last-child:not(:first-child) {
  float: right;
}

.layout-section-cta .wrapper-content .wrapper-headline, .layout-section-cta .wrapper-content .wrapper-headline:last-child:not(:first-child) {
  float: none;
  clear: both;
}

@media print, screen and (min-width: 40em) {
  .layout-section-cta {
    padding-top: 10.5rem !important;
    padding-bottom: 15rem !important;
  }
  .layout-section-cta .wrapper-content .wrapper-headline {
    width: 83.33333%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    margin-right: auto;
    margin-left: auto;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .layout-section-cta .wrapper-content .wrapper-headline {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .layout-section-cta .wrapper-content .wrapper-headline, .layout-section-cta .wrapper-content .wrapper-headline:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  .layout-section-cta .wrapper-content .wrapper-headline:last-child:not(:first-child) {
    float: right;
  }
  .layout-section-cta .wrapper-content .wrapper-headline, .layout-section-cta .wrapper-content .wrapper-headline:last-child:not(:first-child) {
    float: none;
    clear: both;
  }
}

@media print, screen and (min-width: 60.625em) {
  .layout-section-cta {
    padding-top: 10.5rem !important;
    padding-bottom: 30rem !important;
  }
}

/*=====  End of Layout Section Call to Action  ======*/
/*=============================================
=            Layout Section Footer            =
=============================================*/
#layout-section-footer {
  background: #0a0a0a;
  color: #FDFCFC;
  padding-top: 6rem !important;
  padding-bottom: 6rem !important;
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
}

#layout-section-footer::before, #layout-section-footer::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

#layout-section-footer::after {
  clear: both;
}

#layout-section-footer .wrapper-logo {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  margin-right: auto;
  margin-left: auto;
  padding-bottom: 6rem !important;
}

@media print, screen and (min-width: 40em) {
  #layout-section-footer .wrapper-logo {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

#layout-section-footer .wrapper-logo, #layout-section-footer .wrapper-logo:last-child:not(:first-child) {
  float: left;
  clear: none;
}

#layout-section-footer .wrapper-logo:last-child:not(:first-child) {
  float: right;
}

#layout-section-footer .wrapper-logo, #layout-section-footer .wrapper-logo:last-child:not(:first-child) {
  float: none;
  clear: both;
}

#layout-section-footer #wrapper-navigation #module-navigation-footer {
  width: 66.66667%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  margin-right: auto;
  margin-left: auto;
  padding-bottom: 6rem !important;
}

@media print, screen and (min-width: 40em) {
  #layout-section-footer #wrapper-navigation #module-navigation-footer {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

#layout-section-footer #wrapper-navigation #module-navigation-footer, #layout-section-footer #wrapper-navigation #module-navigation-footer:last-child:not(:first-child) {
  float: left;
  clear: none;
}

#layout-section-footer #wrapper-navigation #module-navigation-footer:last-child:not(:first-child) {
  float: right;
}

#layout-section-footer #wrapper-navigation #module-navigation-footer, #layout-section-footer #wrapper-navigation #module-navigation-footer:last-child:not(:first-child) {
  float: none;
  clear: both;
}

#layout-section-footer .module-social {
  padding-bottom: 3rem !important;
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  #layout-section-footer .module-social {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

#layout-section-footer .module-social, #layout-section-footer .module-social:last-child:not(:first-child) {
  float: left;
  clear: none;
}

#layout-section-footer .module-social:last-child:not(:first-child) {
  float: right;
}

#layout-section-footer #wrapper-contact {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  text-align: center;
  margin-bottom: 1.5rem !important;
}

@media print, screen and (min-width: 40em) {
  #layout-section-footer #wrapper-contact {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

#layout-section-footer #wrapper-contact, #layout-section-footer #wrapper-contact:last-child:not(:first-child) {
  float: left;
  clear: none;
}

#layout-section-footer #wrapper-contact:last-child:not(:first-child) {
  float: right;
}

#layout-section-footer #wrapper-legal {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  text-align: center;
}

@media print, screen and (min-width: 40em) {
  #layout-section-footer #wrapper-legal {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

#layout-section-footer #wrapper-legal, #layout-section-footer #wrapper-legal:last-child:not(:first-child) {
  float: left;
  clear: none;
}

#layout-section-footer #wrapper-legal:last-child:not(:first-child) {
  float: right;
}

@media print, screen and (min-width: 40em) {
  #layout-section-footer #wrapper-navigation #module-navigation-footer {
    width: 100%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    margin-right: auto;
    margin-left: auto;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  #layout-section-footer #wrapper-navigation #module-navigation-footer {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  #layout-section-footer #wrapper-navigation #module-navigation-footer, #layout-section-footer #wrapper-navigation #module-navigation-footer:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  #layout-section-footer #wrapper-navigation #module-navigation-footer:last-child:not(:first-child) {
    float: right;
  }
  #layout-section-footer #wrapper-navigation #module-navigation-footer, #layout-section-footer #wrapper-navigation #module-navigation-footer:last-child:not(:first-child) {
    float: none;
    clear: both;
  }
}

/*=====  End of Layout Section Footer  ======*/
.wrapper-hero {
  max-width: 1800px;
  margin-right: auto;
  margin-left: auto;
  margin-bottom: -170px;
}

.wrapper-hero::before, .wrapper-hero::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.wrapper-hero::after {
  clear: both;
}

.wrapper-hero .hero-slider-wrapper {
  width: 100%;
  overflow: hidden;
  position: relative;
  top: -170px;
  z-index: 1;
}

.wrapper-hero .video-wrapper video {
  max-height: 90vh;
  width: 100%;
}

.wrapper-hero .video-wrapper .wrapper-claim {
  display: none;
}

@media print, screen and (min-width: 60.625em) {
  .wrapper-hero .video-wrapper .wrapper-claim {
    display: block;
  }
}

.wrapper-hero .carousel-header {
  width: 100%;
}

.wrapper-hero .carousel-header .slide-image-wrapper {
  position: relative;
  background-size: cover;
  height: 35vh;
  width: 100%;
  background-position: 50% 100%;
  background-repeat: no-repeat;
}

.wrapper-hero .carousel-header .slide-image-wrapper .slick-arrow {
  z-index: 9000;
}

.wrapper-hero .carousel-header .slide-image-wrapper img {
  height: 35vh;
  width: 100%;
}

@media print, screen and (min-width: 40em) {
  .wrapper-hero .carousel-header .slide-image-wrapper {
    height: 45vh;
  }
}

@media print, screen and (min-width: 60.625em) {
  .wrapper-hero .carousel-header .slide-image-wrapper {
    height: 65vh;
  }
}

.wrapper-hero #module-header-site {
  padding-bottom: 3rem !important;
  position: relative;
  z-index: 100;
}

.wrapper-hero .wrapper-claim {
  position: absolute;
  top: 35%;
  left: 0;
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  padding-bottom: 10.5rem !important;
}

.wrapper-hero .wrapper-claim::before, .wrapper-hero .wrapper-claim::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.wrapper-hero .wrapper-claim::after {
  clear: both;
}

@media print, screen and (min-width: 40em) {
  .wrapper-hero .wrapper-claim {
    top: 50%;
    left: 10%;
  }
  .wrapper-hero .wrapper-claim.claim-secondary {
    top: 40%;
  }
  .wrapper-hero .wrapper-claim.claim-secondary h2 {
    font-size: 6.25rem;
  }
}

.wrapper-hero .wrapper-claim .claim {
  width: 83.33333%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  margin-right: auto;
  margin-left: auto;
  padding-bottom: 3rem !important;
  background: url("/assets/img/pinselstrich.png") 0 100% no-repeat;
  background-size: 50%;
  z-index: 100;
  position: relative;
}

@media print, screen and (min-width: 40em) {
  .wrapper-hero .wrapper-claim .claim {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.wrapper-hero .wrapper-claim .claim, .wrapper-hero .wrapper-claim .claim:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.wrapper-hero .wrapper-claim .claim:last-child:not(:first-child) {
  float: right;
}

.wrapper-hero .wrapper-claim .claim, .wrapper-hero .wrapper-claim .claim:last-child:not(:first-child) {
  float: none;
  clear: both;
}

/*=================================================
=            Layout Steckbrief styling            =
=================================================*/
.layout-section-steckbrief .article-outer-wrapper {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}

.layout-section-steckbrief .article-outer-wrapper::before, .layout-section-steckbrief .article-outer-wrapper::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.layout-section-steckbrief .article-outer-wrapper::after {
  clear: both;
}

.layout-section-steckbrief .article-outer-wrapper .module-header-article {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .layout-section-steckbrief .article-outer-wrapper .module-header-article {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.layout-section-steckbrief .article-outer-wrapper .module-header-article, .layout-section-steckbrief .article-outer-wrapper .module-header-article:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.layout-section-steckbrief .article-outer-wrapper .module-header-article:last-child:not(:first-child) {
  float: right;
}

.layout-section-steckbrief .article-outer-wrapper .module-text {
  width: 100%;
  float: left;
  padding-right: 0;
  padding-left: 0;
}

.layout-section-steckbrief .article-outer-wrapper .module-text, .layout-section-steckbrief .article-outer-wrapper .module-text:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.layout-section-steckbrief .article-outer-wrapper .module-text:last-child:not(:first-child) {
  float: right;
}

.layout-section-steckbrief .article-outer-wrapper .gallery-wrapper {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
}

.layout-section-steckbrief .article-outer-wrapper .gallery-wrapper::before, .layout-section-steckbrief .article-outer-wrapper .gallery-wrapper::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.layout-section-steckbrief .article-outer-wrapper .gallery-wrapper::after {
  clear: both;
}

.layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry, .layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry:last-child:not(:first-child) {
  float: right;
}

.layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry .masonry-item {
  width: 99%;
}

@media print, screen and (min-width: 40em) {
  .layout-section-steckbrief .article-outer-wrapper .module-text {
    width: 66.66667%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    margin-right: auto;
    margin-left: auto;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .layout-section-steckbrief .article-outer-wrapper .module-text {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .layout-section-steckbrief .article-outer-wrapper .module-text, .layout-section-steckbrief .article-outer-wrapper .module-text:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  .layout-section-steckbrief .article-outer-wrapper .module-text:last-child:not(:first-child) {
    float: right;
  }
  .layout-section-steckbrief .article-outer-wrapper .module-text, .layout-section-steckbrief .article-outer-wrapper .module-text:last-child:not(:first-child) {
    float: none;
    clear: both;
  }
  .layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry {
    width: 83.33333%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    margin-right: auto;
    margin-left: auto;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry, .layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  .layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry:last-child:not(:first-child) {
    float: right;
  }
  .layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry, .layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry:last-child:not(:first-child) {
    float: none;
    clear: both;
  }
  .layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry .masonry-item {
    width: 45%;
  }
}

@media print, screen and (min-width: 60.625em) {
  .layout-section-steckbrief .article-outer-wrapper .module-text {
    width: 50%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    margin-right: auto;
    margin-left: auto;
  }
}

@media print, screen and (min-width: 60.625em) and (min-width: 40em) {
  .layout-section-steckbrief .article-outer-wrapper .module-text {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 60.625em) {
  .layout-section-steckbrief .article-outer-wrapper .module-text, .layout-section-steckbrief .article-outer-wrapper .module-text:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  .layout-section-steckbrief .article-outer-wrapper .module-text:last-child:not(:first-child) {
    float: right;
  }
  .layout-section-steckbrief .article-outer-wrapper .module-text, .layout-section-steckbrief .article-outer-wrapper .module-text:last-child:not(:first-child) {
    float: none;
    clear: both;
  }
  .layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry {
    width: 66.66667%;
    float: left;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    margin-right: auto;
    margin-left: auto;
  }
}

@media print, screen and (min-width: 60.625em) and (min-width: 40em) {
  .layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 60.625em) {
  .layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry, .layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  .layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry:last-child:not(:first-child) {
    float: right;
  }
  .layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry, .layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry:last-child:not(:first-child) {
    float: none;
    clear: both;
  }
  .layout-section-steckbrief .article-outer-wrapper .gallery-wrapper .module-gallery-masonry .masonry-item {
    width: 46%;
  }
}

/*============================================
=            Layout Section Video            =
============================================*/
.layout-section-video {
  padding-bottom: 3rem !important;
}

.layout-section-video .wrapper-content {
  max-width: 1500px;
  margin-right: auto;
  margin-left: auto;
}

.layout-section-video .wrapper-content::before, .layout-section-video .wrapper-content::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.layout-section-video .wrapper-content::after {
  clear: both;
}

/*=====  End of Layout Section Video  ======*/
@font-face {
  font-family: "sk-iconfont";
  src: url("../fonts/sk-iconfont.eot");
  src: url("../fonts/sk-iconfont.eot?#iefix") format("eot"), url("../fonts/sk-iconfont.woff2") format("woff2"), url("../fonts/sk-iconfont.woff") format("woff"), url("../fonts/sk-iconfont.ttf") format("truetype"), url("../fonts/sk-iconfont.svg#sk-iconfont") format("svg");
}

.icon:before {
  font-family: "sk-iconfont";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-style: normal;
  font-variant: normal;
  font-weight: normal;
  /* speak: none; only necessary if not using the private unicode range (firstGlyph option) */
  text-decoration: none;
  text-transform: none;
}

.icon-facebook:before {
  content: "\E001";
}

.icon-instagram:before {
  content: "\E002";
}

.icon-menu:before {
  content: "\E003";
}

.icon-pfeil-links:before {
  content: "\E004";
}

.icon-pfeil-rechts:before {
  content: "\E005";
}

.icon-punkt:before {
  content: "\E006";
}

.icon-stern:before {
  content: "\E007";
}

.icon-twitter:before {
  content: "\E008";
}

.icon-youtube:before {
  content: "\E009";
}

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

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}

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

.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

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

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}

.slick-track:after {
  clear: both;
}

.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none;
}

[dir="rtl"] .slick-slide {
  float: right;
}

.slick-slide img {
  display: block;
}

.slick-slide.slick-loading img {
  display: none;
}

.slick-slide.dragging img {
  pointer-events: none;
}

.slick-initialized .slick-slide {
  display: block;
}

.slick-loading .slick-slide {
  visibility: hidden;
}

.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

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

/* Slider */
.slick-loading .slick-list {
  background: #fff "assets/img/ajax-loader.gif" center center no-repeat;
}

/* Arrows */
.slick-prev,
.slick-next {
  position: absolute;
  display: block;
  height: 20px;
  width: 20px;
  line-height: 0px;
  font-size: 0px;
  cursor: pointer;
  background: transparent;
  color: transparent;
  top: 50%;
  transform: translate(0, -50%);
  padding: 0;
  border: none;
  outline: none;
  z-index: 3000;
}

.slick-prev:hover, .slick-prev:focus,
.slick-next:hover,
.slick-next:focus {
  outline: none;
  background: transparent;
  color: transparent;
}

.slick-prev:hover:before, .slick-prev:focus:before,
.slick-next:hover:before,
.slick-next:focus:before {
  opacity: 1;
}

.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before {
  opacity: 0.25;
}

.slick-prev:before,
.slick-next:before {
  font-family: "sk-iconfont";
  font-size: 20px;
  line-height: 1;
  color: #D5A847;
  opacity: 0.75;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.slick-prev {
  left: 0px;
}

[dir="rtl"] .slick-prev {
  left: auto;
  right: -25px;
}

.slick-prev:before {
  content: "";
}

[dir="rtl"] .slick-prev:before {
  content: "";
}

.slick-next {
  right: 0px;
}

[dir="rtl"] .slick-next {
  left: -25px;
  right: auto;
}

.slick-next:before {
  content: "";
}

[dir="rtl"] .slick-next:before {
  content: "";
}

/* Dots */
.slick-dotted.slick-slider {
  margin-bottom: 30px;
}

.slick-dots {
  position: absolute;
  bottom: -25px;
  list-style: none;
  display: block;
  text-align: center;
  padding: 0;
  margin: 0;
  width: 100%;
}

.slick-dots li {
  position: relative;
  display: inline-block;
  height: 20px;
  width: 20px;
  margin: 0 5px;
  padding: 0;
  cursor: pointer;
}

.slick-dots li button {
  border: 0;
  background: transparent;
  display: block;
  height: 20px;
  width: 20px;
  outline: none;
  line-height: 0px;
  font-size: 0px;
  color: transparent;
  padding: 5px;
  cursor: pointer;
}

.slick-dots li button:hover, .slick-dots li button:focus {
  outline: none;
}

.slick-dots li button:hover:before, .slick-dots li button:focus:before {
  opacity: 1;
}

.slick-dots li button:before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  width: 20px;
  height: 20px;
  font-family: "sk-iconfont";
  font-size: 6px;
  line-height: 20px;
  text-align: center;
  color: #2A2720;
  opacity: 0.25;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.slick-dots li.slick-active button:before {
  color: #2A2720;
  opacity: 0.75;
}

body.lb-disable-scrolling {
  overflow: hidden;
}

.lightboxOverlay {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 9999;
  background-color: black;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
  opacity: 0.8;
  display: none;
}

.lightbox {
  position: absolute;
  left: 0;
  width: 100%;
  z-index: 10000;
  text-align: center;
  line-height: 0;
  font-weight: normal;
  outline: none;
}

.lightbox .lb-image {
  display: block;
  height: auto;
  max-width: inherit;
  max-height: none;
  border-radius: 3px;
  /* Image border */
  border: 4px solid white;
}

.lightbox a img {
  border: none;
}

.lb-outerContainer {
  position: relative;
  *zoom: 1;
  width: 250px;
  height: 250px;
  margin: 0 auto;
  border-radius: 4px;
  /* Background color behind image.
     This is visible during transitions. */
  background-color: white;
}

.lb-outerContainer:after {
  content: "";
  display: table;
  clear: both;
}

.lb-loader {
  position: absolute;
  top: 43%;
  left: 0;
  height: 25%;
  width: 100%;
  text-align: center;
  line-height: 0;
}

.lb-cancel {
  display: block;
  width: 32px;
  height: 32px;
  margin: 0 auto;
  background: url(../img/loading.gif) no-repeat;
}

.lb-nav {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 10;
}

.lb-container > .nav {
  left: 0;
}

.lb-nav a {
  outline: none;
  background-image: url("data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==");
}

.lb-prev, .lb-next {
  height: 100%;
  cursor: pointer;
  display: block;
}

.lb-nav a.lb-prev {
  width: 34%;
  left: 0;
  float: left;
  background: url(../img/prev.png) left 48% no-repeat;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
  opacity: 0;
  transition: opacity 0.6s;
}

.lb-nav a.lb-prev:hover {
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
  opacity: 1;
}

.lb-nav a.lb-next {
  width: 64%;
  right: 0;
  float: right;
  background: url(../img/next.png) right 48% no-repeat;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
  opacity: 0;
  transition: opacity 0.6s;
}

.lb-nav a.lb-next:hover {
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
  opacity: 1;
}

.lb-dataContainer {
  margin: 0 auto;
  padding-top: 5px;
  *zoom: 1;
  width: 100%;
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
}

.lb-dataContainer:after {
  content: "";
  display: table;
  clear: both;
}

.lb-data {
  padding: 0 4px;
  color: #ccc;
}

.lb-data .lb-details {
  width: 85%;
  float: left;
  text-align: left;
  line-height: 1.1em;
}

.lb-data .lb-caption {
  font-size: 13px;
  font-weight: bold;
  line-height: 1em;
}

.lb-data .lb-caption a {
  color: #4ae;
}

.lb-data .lb-number {
  display: block;
  clear: left;
  padding-bottom: 1em;
  font-size: 12px;
  color: #999999;
}

.lb-data .lb-close {
  display: block;
  float: right;
  width: 30px;
  height: 30px;
  background: url(../img/close.png) top right no-repeat;
  text-align: right;
  outline: none;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
  opacity: 0.7;
  transition: opacity 0.2s;
}

.lb-data .lb-close:hover {
  cursor: pointer;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
  opacity: 1;
}

div[data-service] *,
div[data-service] :before,
div[data-service] :after {
  box-sizing: border-box;
  float: none;
  font-style: inherit;
  font-variant: normal;
  font-weight: inherit;
  font-family: "Roboto Slab", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  line-height: 1.2;
  font-size: 1em;
  margin: 0;
  padding: 0;
  text-transform: none;
  letter-spacing: unset;
  color: inherit;
  background: none;
  border: none;
  box-shadow: none;
  text-decoration: none;
  text-align: left;
}

div[data-service] .c-ld {
  bottom: 2em;
  right: 2.5em;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity .3s ease, visibility .3s ease, transform .3s ease;
}

div[data-service] .c-ld,
div[data-service] .c-ld:after {
  position: absolute;
  z-index: 1;
  border-radius: 100%;
  width: 20px;
  height: 20px;
}

div[data-service] .c-ld::after {
  content: '';
  border: 4px solid white;
  border-top: 4px solid transparent;
  -webkit-animation: spin 1s linear infinite;
          animation: spin 1s linear infinite;
}

div[data-service].c-h-n .c-ld {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

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

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

div[data-service] {
  display: inline-block;
  max-width: 100%;
  min-height: 150px;
  min-width: 300px;
  font-family: "Roboto Slab", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  position: relative;
  background-color: #0b1016;
}

div[data-service] button,
div[data-service] label,
div[data-service] input,
div[data-service] h1,
div[data-service] h2,
div[data-service] h3 {
  transition: none;
  -webkit-animation: none;
          animation: none;
}

div[data-service]::before {
  padding-top: 56.25%;
  display: block;
  content: "";
}

div[data-autoscale] {
  height: auto;
  width: 100%;
}

div[data-service] .c-nt {
  color: #fff;
  max-width: 100%;
  height: 100%;
  width: 100%;
  transition: opacity .3s ease, visibility .3s ease;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  z-index: 2;
}

div[data-service] .c-bg {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  opacity: .5;
  z-index: 1;
  transition: opacity .3s ease, visibility .3s ease, transform .3s ease;
}

div[data-service] .c-bg::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  transition: opacity .3s ease, visibility .3s ease;
  background: #1e3861;
  background: linear-gradient(14deg, #0c0f00 10%, black 100%, rgba(68, 77, 125, 0.108298) 0%);
  background: linear-gradient(14deg, #1e3861 0%, rgba(206, 220, 233, 0.118102) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#1e3861",endColorstr="#cedce9",GradientType=1);
}

div[data-service] .c-bg-i {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0;
  transition: opacity .5s ease, transform .5s ease;
}

div[data-service] .c-bg-i.loaded {
  opacity: 1;
}

div[data-service] .c-tl {
  display: block;
  margin-bottom: 10px;
  font-size: 1.2em;
  font-weight: bold;
  text-align: center;
}

div[data-service].c-h-n .c-bg {
  opacity: 1;
  transform: scale(1);
}

div[data-service].c-h-n .c-nt {
  opacity: 0;
  visibility: hidden;
}

div[data-service] .c-n-c {
  display: table;
  height: 100%;
  width: 100%;
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: .9em;
  transition: background-color .3s ease, opacity .3s ease;
}

div[data-service] .c-n-t {
  display: block;
  font-size: .95em;
  position: relative;
  z-index: 1;
  line-height: 1.4em;
  color: #fff;
  max-width: 420px;
  margin: 0 auto;
  margin-bottom: 20px;
}

div[data-service] .c-n-t,
div[data-service] .c-n-a {
  text-align: center;
}

div[data-service] .c-t-cn {
  display: table-cell;
  vertical-align: middle;
  padding: 0 12px;
  transition: opacity .3s ease, transform .3s ease, visibility .3s ease;
}

div[data-service] .c-n-c .c-la-b,
div[data-service] .c-n-c .c-l-b {
  display: inline-block;
  position: relative;
  padding: 1em;
  vertical-align: middle;
  background: rgba(0, 102, 219, 0.84);
  border: none;
  border-radius: .25em;
  font-size: .85em;
  padding-left: 2.8em;
  color: #ffffff;
  margin: 0 auto;
  font-weight: bold;
  cursor: pointer;
  transition: opacity 0.3s ease, transform 0.3s cubic-bezier(0.25, 1, 0.5, 1), visibility 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
  box-shadow: rgba(0, 0, 0, 0.19) 0px 4px 12px;
}

/* Play icon */
div[data-service] .c-n-c .c-l-b::before {
  content: '';
  display: block;
  position: absolute;
  top: 12px;
  left: 1.1em;
  z-index: 2;
  height: 0;
  border-left: 12px solid white;
  border-top: 7.5px solid transparent;
  border-bottom: 7.5px solid transparent;
}

div[data-service] .c-n-c .c-la-b {
  margin-left: 1em;
  padding: 1em;
  background: rgba(225, 239, 255, 0.8);
  color: #0d1f34;
}

div[data-service] .c-n-c .c-la-b:hover {
  background: rgba(225, 239, 255, 0.95);
}

div[data-service] .c-n-c .c-l-b:hover {
  background: rgba(9, 80, 161, 0.89);
}

div[data-service] .c-n-c .c-la-b:active {
  transition: none;
  background: rgba(225, 239, 255, 0.6);
}

div[data-service] .c-n-c .c-l-b:active {
  transition: none;
  box-shadow: 0 0 0 4px rgba(24, 104, 250, 0.24);
}

div[data-service].c-h-n .c-t-cn {
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
}

div[data-service] iframe {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  height: 100%;
  border: none;
  max-width: 100%;
  width: 100%;
  background: #000000;
  display: block;
  visibility: hidden;
  opacity: 0;
  z-index: 1;
  transition: opacity .5s ease;
}

div[data-service].c-h-b iframe {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
  transition-delay: .1s;
}

div[data-service] .c-n-t a {
  color: #5fb3fb;
  text-decoration: none;
  border-bottom: 1px solid #5fb3fb;
}

div[data-service] .c-n-t a:hover {
  border-color: transparent;
}

/* fallback */
@font-face {
  font-family: 'Material Icons';
  font-style: normal;
  font-weight: 400;
  src: url(../fonts/material.woff2) format("woff2");
}

.material-icons {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uY3NzIiwic2V0dGluZ3MvX3NldHRpbmdzLXNrLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21peGlucy5zY3NzIiwiX2Jhc2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3RleHQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdW5pdC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fY2hlY2tib3guc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2xhYmVsLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19oZWxwLXRleHQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2lucHV0LWdyb3VwLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19maWVsZHNldC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fc2VsZWN0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19lcnJvci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2JyZWFrcG9pbnQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi1ncm91cC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jbG9zZS1idXR0b24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbGFiZWwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9vbHRpcC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcmVzcG9uc2l2ZS1lbWJlZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19tYXRoLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVudS1pY29uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N0aWNreS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vZmYtY2FudmFzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Zsb2F0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fdGV4dC11dGlsaXRpZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL190ZXh0LXRyYW5zZm9ybWF0aW9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fdGV4dC1kZWNvcmF0aW9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fZm9udC1zdHlsaW5nLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fbGlzdC1zdHlsZS10eXBlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fcm91bmRlZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2JvcmRlcmVkLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fc2hhZG93LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fYXJyb3cuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19zZXBhcmF0b3Iuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX292ZXJmbG93LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fZGlzcGxheS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2JvcmRlci1ib3guc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19ib3JkZXItbm9uZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3NpemluZy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3NwYWNpbmcuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzIiwibWl4aW5zL19taXhpbi1iYWNrZ3JvdW5kLWNvbG9yLnNjc3MiLCJtaXhpbnMvX21peGluLWZvbnQtZmFjZS5zY3NzIiwibWl4aW5zL19taXhpbi1saXN0cy5zY3NzIiwibWl4aW5zL19taXhpbi1wYWludHN0cm9rZS5zY3NzIiwibGF5b3V0cy9tb2R1bGVzL196cm9vdC5zY3NzIiwibGF5b3V0cy9tb2R1bGVzL2FjY29yZGlvbi9fbW9kdWxlLWFjY29yZGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19yb3cuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fc2l6ZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19jb2x1bW4uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZ3V0dGVyLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Bvc2l0aW9uLnNjc3MiLCJtaXhpbnMvX21peGluLXR5cG9ncmFwaHkuc2NzcyIsImxheW91dHMvbW9kdWxlcy9iYW5uZXIvX21vZHVsZS1iYW5uZXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fZmxleC5zY3NzIiwibWl4aW5zL19taXhpbi1saW5rLWNvbG9ycy5zY3NzIiwibGF5b3V0cy9tb2R1bGVzL2Nhcm91c2VsL19tb2R1bGUtY2Fyb3VzZWwtcHJvZmlsZS5zY3NzIiwibGF5b3V0cy9tb2R1bGVzL2Nhcm91c2VsL19tb2R1bGUtY2Fyb3VzZWwtdmFuLnNjc3MiLCJsYXlvdXRzL21vZHVsZXMvY3RhL19tb2R1bGUtY3RhLnNjc3MiLCJsYXlvdXRzL21vZHVsZXMvZ2FsbGVyeS9fbW9kdWxlLWdhbGxlcnktbWFzb25yeS5zY3NzIiwibGF5b3V0cy9tb2R1bGVzL2hlYWRlci9fbW9kdWxlLWhlYWRlci1zaXRlLnNjc3MiLCJsYXlvdXRzL21vZHVsZXMvaGVhZGVyL19tb2R1bGUtaGVhZGVyLWFydGljbGUuc2NzcyIsImxheW91dHMvbW9kdWxlcy9sb2dvL19tb2R1bGUtbG9nby5zY3NzIiwibGF5b3V0cy9tb2R1bGVzL2xvYWRpbmctc3Bpbm5lci9fbW9kdWxlLWxvYWRpbmctc3Bpbm5lci5zY3NzIiwibGF5b3V0cy9tb2R1bGVzL25hdmlnYXRpb24vX21vZHVsZS1uYXZpZ2F0aW9uLWJhbm5lci5zY3NzIiwibWl4aW5zL19taXhpbi1zaGFkb3cuc2NzcyIsImxheW91dHMvbW9kdWxlcy9uYXZpZ2F0aW9uL19tb2R1bGUtbmF2aWdhdGlvbi1mb290ZXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fZ3JpZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jZWxsLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2d1dHRlcnMuc2NzcyIsImxheW91dHMvbW9kdWxlcy9uYXZpZ2F0aW9uL19tb2R1bGUtbmF2aWdhdGlvbi1tYWluLnNjc3MiLCJsYXlvdXRzL21vZHVsZXMvbmF2aWdhdGlvbi9fbW9kdWxlLW5hdmlnYXRpb24tb2ZmY2FudmFzLnNjc3MiLCJsYXlvdXRzL21vZHVsZXMvc29jaWFsL19tb2R1bGUtc29jaWFsLnNjc3MiLCJsYXlvdXRzL21vZHVsZXMvdGVhc2VyL19tb2R1bGUtdGVhc2VyLnNjc3MiLCJsYXlvdXRzL21vZHVsZXMvdGVhc2VyL19tb2R1bGUtdGVhc2VyLWF1c3N0YXR0dW5nLnNjc3MiLCJsYXlvdXRzL21vZHVsZXMvdGV4dC9fbW9kdWxlLXRleHQuc2NzcyIsImxheW91dHMvX3pyb290LnNjc3MiLCJsYXlvdXRzL19sYXlvdXQtZ2VuZXJhbC5zY3NzIiwibGF5b3V0cy9fbGF5b3V0LXNlY3Rpb24tYnVjaHVuZ3NzeXN0ZW0uc2NzcyIsImxheW91dHMvX2xheW91dC1zZWN0aW9uLWNvbnRlbnQuc2NzcyIsImxheW91dHMvX2xheW91dC1zZWN0aW9uLWN0YS5zY3NzIiwibGF5b3V0cy9fbGF5b3V0LXNlY3Rpb24tZm9vdGVyLnNjc3MiLCJsYXlvdXRzL19sYXlvdXQtc2VjdGlvbi1oZXJvLnNjc3MiLCJsYXlvdXRzL19sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmLnNjc3MiLCJsYXlvdXRzL19sYXlvdXQtc2VjdGlvbi12aWRlby5zY3NzIiwiZ2VuZXJhdGVkL19pY29uZm9udC5zY3NzIiwidmVuZG9ycy9fc2xpY2tzbGlkZXIuc2NzcyIsInZlbmRvcnMvX2xpZ2h0Ym94LnNjc3MiLCJ2ZW5kb3JzL19pZnJhbWVtYW5hZ2VyLnNjc3MiLCJ2ZW5kb3JzL19tYXRlcmlhbC1mb250LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDRWhCLGNBQUE7QUEwREE7O0VEeERFO0FDb0VGOztDRGpFQztBQzZFRDs7RUQxRUU7QUNrRkY7O0NEL0VDO0FDdUZEOztDRHBGQztBQ2dMRCx1QkFBQTtBQ2hNQTs7Ozs7RUZ1QkU7QUd0QkEsMkVBQUE7QUFRQTtFQUNFLGlCQUFpQjtFQUNqQiw4QkFBOEI7QUhpQmxDOztBR1RFO0VBQ0UsU0FBUztBSFliOztBR05FO0VBQ0UsY0FBYztFQUNkLGdCQUFnQjtBSFNwQjs7QUdBRTtFQUNFLHVCQUF1QjtFQUN2QixTQUFTO0VBQ1QsaUJBQWlCO0FIR3JCOztBR0dFO0VBQ0UsaUNBQWlDO0VBQ2pDLGNBQWM7QUhBbEI7O0FHUUU7RUFDRSw2QkFBNkI7QUhMakM7O0FHV0U7RUFDRSxtQkFBbUI7RUFDbkIsMEJBQTBCO0VBQzFCLHlDQUFpQztVQUFqQyxpQ0FBaUM7QUhSckM7O0FHYUU7O0VBRUUsbUJBQW1CO0FIVnZCOztBR2dCRTs7O0VBR0UsaUNBQWlDO0VBQ2pDLGNBQWM7QUhibEI7O0FHa0JFO0VBQ0UsY0FBYztBSGZsQjs7QUdxQkU7O0VBRUUsY0FBYztFQUNkLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsd0JBQXdCO0FIbEI1Qjs7QUdxQkU7RUFDRSxlQUFlO0FIbEJuQjs7QUdxQkU7RUFDRSxXQUFXO0FIbEJmOztBRzBCRTtFQUNFLGtCQUFrQjtBSHZCdEI7O0FHZ0NFOzs7OztFQUtFLG9CQUFvQjtFQUNwQixlQUFlO0VBQ2YsaUJBQWlCO0VBQ2pCLFNBQVM7QUg3QmI7O0FHbUNFOztFQUVFLGlCQUFpQjtBSGhDckI7O0FHc0NFOztFQUVFLG9CQUFvQjtBSG5DeEI7O0FHd0NFOzs7O0VBSUUsMEJBQTBCO0FIckM5Qjs7QUcwQ0U7Ozs7RUFJRSxrQkFBa0I7RUFDbEIsVUFBVTtBSHZDZDs7QUc0Q0U7Ozs7RUFJRSw4QkFBOEI7QUh6Q2xDOztBRzhDRTtFQUNFLDhCQUE4QjtBSDNDbEM7O0FHbURFO0VBQ0Usc0JBQXNCO0VBQ3RCLGNBQWM7RUFDZCxjQUFjO0VBQ2QsZUFBZTtFQUNmLFVBQVU7RUFDVixtQkFBbUI7QUhoRHZCOztBR3FERTtFQUNFLHdCQUF3QjtBSGxENUI7O0FHdURFO0VBQ0UsY0FBYztBSHBEbEI7O0FBRUE7O0VHMERJLHNCQUFzQjtFQUN0QixVQUFVO0FIdkRkOztBQUVBOztFRzRESSxZQUFZO0FIekRoQjs7QUFFQTtFRzhESSw2QkFBNkI7RUFDN0Isb0JBQW9CO0FINUR4Qjs7QUFFQTtFR2dFSSx3QkFBd0I7QUg5RDVCOztBR29FRTtFQUNFLDBCQUEwQjtFQUMxQixhQUFhO0FIakVqQjs7QUd5RUU7RUFDRSxjQUFjO0FIdEVsQjs7QUcyRUU7RUFDRSxrQkFBa0I7QUh4RXRCOztBR2dGRTtFQUNFLGFBQWE7QUg3RWpCOztBQUVBO0VHaUZJLGFBQWE7QUgvRWpCOztBSTVERTtFQUNFLDRFQUFnRDtBSitEcEQ7O0FHbE1FO0VDdUlFLHNCQUFzQjtFQUN0QixlSG5JbUI7QURrTXZCOztBSTNERTs7O0VBR0UsbUJBQW1CO0FKOER2Qjs7QUduTUU7RUMwSUUsU0FBUztFQUNULFVBQVU7RUFFVixtQkhhVztFR1hYLGtGSDNJb0Y7RUc0SXBGLG1CQS9FeUI7RUFnRnpCLGdCSHBKbUI7RUdxSm5CLGNITWU7RUdIYixtQ0FBbUM7RUFDbkMsa0NBQWtDO0FKeUR4Qzs7QUc5R0U7RUMyREUscUJBQXFCO0VBQ3JCLHNCQUFzQjtFQUd0QixlQUFlO0VBQ2YsWUFBWTtFQUNaLCtCQUErQjtBSnFEbkM7O0FHekJFO0VDdkJFLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIsa0JIeEtlO0FENE5uQjs7QUloREU7RUFDRSxzQkFBc0I7RUFDdEIsV0FBVztFQUNYLGtCSC9LZTtBRGtPbkI7O0FJOUNFOzs7Ozs7RUFLSSwwQkFBMEI7QUprRGhDOztBSTdDRTtFQUVFLFVBQVU7RUFDVix3QkFBZ0I7S0FBaEIscUJBQWdCO1VBQWhCLGdCQUFnQjtFQUNoQixTQUFTO0VBQ1Qsa0JIbk1lO0VHb01mLHVCQUF1QjtFQUN2QixjQUFjO0VBQ2QsWUF2R3VCO0FKc0ozQjs7QUFFQTtFS2pFSSxVQUFVO0FMbUVkOztBRy9ORTtFQ2lMRSxjQUFjO0FKa0RsQjs7QUduSkU7Ozs7O0VDMEdFLG9CQUFvQjtBSmlEeEI7O0FJN0NFO0VBQ0UseUJBQXlCO0FKZ0Q3Qjs7QUk3Q0U7RUFDRSx3QkFBd0I7QUpnRDVCOztBTXZSQTs7RUM2RUUsY0FBYztFQUNkLHNCQUFzQjtFQUN0QixXQUFXO0VBQ1gsaUJBTHNKO0VBTXRKLGdCQ0h1RDtFREl2RCxlQXRDK0I7RUF3Qy9CLHlCTjRFbUI7RU0zRW5CLGtCTjNFaUI7RU00RWpCLHlCTjZFYTtFTTVFYixpRE4yRWE7RU16RWIsb0JBakZ5QjtFQWtGekIsZUNadUQ7RURhdkQsbUJIakIyQjtFR2tCM0IsZ0JOdEZxQjtFTXVGckIsY05xRWE7RU1sRVgsMkRBcEM4RDtFQXlEOUQsd0JBQWdCO0tBQWhCLHFCQUFnQjtVQUFoQixnQkFBZ0I7QVB1THBCOztBTTVTQTs7RUNxR0ksYUFBYTtFQUNiLHlCTjJEZTtFTTFEZix5Qk40RFc7RU0zRFgsMkJOd0RpQjtFTXJEZiwyREEvQzREO0FQeVBsRTs7QU1yVEE7RUMwSEksZUFBZTtBUCtMbkI7O0FNelRBO0VDNkhNLFlBQVk7QVBnTWxCOztBTTdUQTs7O0VDc0lNLHlCTnlCYztFTXhCZCxtQkEvRTZCO0FQNFFuQzs7QU1wVUE7O0VDOElJLHdCQUFnQjtLQUFoQixxQkFBZ0I7VUFBaEIsZ0JBQWdCO0VBQ2hCLGtCTnJJZTtBRGdVbkI7O0FNMVVBO0VDb0pJLHNCQUFzQjtBUDBMMUI7O0FNOVVBO0VDc0tJLGNOTmlCO0FEa0xyQjs7QU1sVkE7RUNzS0ksY05OaUI7QURrTHJCOztBTWxWQTtFQ3NLSSxjTk5pQjtBRGtMckI7O0FNbFZBOzs7RUdFSSxnQkQ0RXFEO0FSMFF6RDs7QU14VkE7O0VHUUkscUJBQXFCO0VBQ3JCLHdCQUF3QjtFQUV4QixtQkFBa0Q7RUFDbEQsa0JEa0VxRDtFQ2pFckQsZ0JBQWdCO0FUb1ZwQjs7QU1qV0E7O0VHZ0JNLGVBQWU7QVRzVnJCOztBTXRXQTs7RUd1Qkksb0JBQW1EO0FUb1Z2RDs7QU0zV0E7RUc0QkksV0FBVztBVG1WZjs7QU0vV0E7RUllRSxjQUFjO0VBQ2QsU0FBUztFQUVULG1CRjREdUQ7RUUzRHZELG1CTnVEMkI7RU10RDNCLGdCQVIwQjtFQVMxQixjVDZJYTtBRHNOZjs7QU14WEE7RUkyQkUsZ0JGbUR1RDtFRWxEdkQsb0JBQThEO0FWaVdoRTs7QU03WEE7RUtjSSxtQkFGdUM7RUFHdkMsb0JIK0RxRDtFRzlEckQsa0JBUndCO0VBU3hCLGNWaUpXO0FEa09mOztBTXBZQTtFTWlCSSxhQUFpQztFQUNqQyxXQUFXO0VBQ1gsbUJKMkRxRDtFSXhEbkQsb0JBQW9CO0FacVgxQjs7QU0zWUE7RU0yQlEsMEJYakJXO0FEcVluQjs7QU0vWUE7RU1pQ1EsMEJBQWlIO0Faa1h6SDs7QU1uWkE7Ozs7RU11Q0ksU0FBUztFQUNULG1CQUFtQjtBWm1YdkI7O0FNM1pBO0VNa0RJLGVBdkN1QjtFQXdDdkIseUJYNkdpQjtFVzVHakIsbUJYMkdnQjtFV3pHaEIsY1g0R1c7RVczR1gsa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUdqQixhQUFhO0VBQ2IsY0FBYztFQUNkLG1CQUFtQjtBWjBXekI7O0FNdmFBO0VNc0VRLGVBQWlDO0FacVd6Qzs7QU0zYUE7RU0wRVEsY0FBZ0M7QVpxV3hDOztBTS9hQTtFTWlGSSxnQkFBZ0I7RUFHZCxhQUFhO0VBQ2IsWUFBWTtBWmdXbEI7O0FNcmJBO0VNMkZJLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsa0JBQWtCO0VBR2hCLGFBQWE7RUFDYixjQUFjO0FaNFZwQjs7QU03YkE7Ozs7RU0rR1EsbUJBQW1CO0VBQ25CLFlBQVk7RUFLZCxjQUFjO0VBQ2QsaUJBQWlCO0VBQ2pCLGVKekNtRDtBUjBYekQ7O0FNeGNBO0VPNkJJLFNBQVM7RUFDVCxVQUFVO0VBQ1YsU0FBUztBYithYjs7QU05Y0E7RU9tQ0ksZUFBZTtFQUNmLHFCQUFrQztBYithdEM7O0FNbmRBO0VPZUUsa0JMb0VXO0VLbkVYLGdCTDhEdUQ7RUs3RHZELHlCWitJbUI7QUR5VHJCOztBTXpkQTtFT3FCSSxTQUFTO0VBQ1QsdUJMd0RxRDtFS3ZEckQsb0JMdURxRDtBUmlaekQ7O0FNL2RBO0VRYUUsaUJBRnNKO0VBR3RKLGdCTmdFdUQ7RU0vRHZELGVQNkIrQjtFTzNCL0Isd0JBQWdCO0tBQWhCLHFCQUFnQjtVQUFoQixnQkFBZ0I7RUFDaEIseUJiOEltQjtFYTdJbkIsa0JiVGlCO0VhVWpCLHlCYitJYTtFYTdJYixvQlBkeUI7RU9lekIsZU51RHVEO0VNdER2RCxtQlZrRDJCO0VVakQzQixnQmJuQnFCO0Vhb0JyQixjYndJYTtFSXRCYixxT0FBeU47RVM5R3ZOLDhCQUE4QjtFQUM5Qix1Q0FBMEQ7RUFDMUQsNEJBQTRCO0VBQzVCLHdCQUF3QjtFQUV4QixxQkFBdUQ7RUFJdkQsMkRQcUI4RDtBUHlibEU7O0FLdldFO0VDOUlGO0lEaUpNLHVXQUF1VztFTHlXM1c7QUFDRjs7QU0zZkE7RVE0Q0ksYUFBYTtFQUNiLHlCYm9IZTtFYW5IZix5QmJxSFc7RWFwSFgsMkJiaUhpQjtFYTlHZiwyRFBVNEQ7QVB1Y2xFOztBTW5nQkE7RVF3REkseUJidUdnQjtFYXRHaEIsbUJQRCtCO0FQZ2RuQzs7QU14Z0JBO0VROERJLGFBQWE7QWQ4Y2pCOztBTTVnQkE7RVFrRUksWUFBWTtFQUNaLHNCQUFzQjtBZDhjMUI7O0FNamhCQTtFUXNFSSxjQUFjO0VBQ2QsaUJBQWlCO0FkK2NyQjs7QU10aEJBO0VTbUNJLHFCZCtHa0I7RWM5R2xCLHlCQUErRDtBZnVmbkU7O0FNM2hCQTtFU3VDTSxjZDJHZ0I7QUQ2WXRCOztBTS9oQkE7RVN1Q00sY2QyR2dCO0FENll0Qjs7QU0vaEJBO0VTdUNNLGNkMkdnQjtBRDZZdEI7O0FNL2hCQTtFU2tFTSxjZGdGZ0I7QURpWnRCOztBTW5pQkE7RVM4Q0UsYUFBYTtFQUNiLG1CQUFnQztFQUNoQyxtQlA4QnVEO0VPNUJ2RCxrQlA0QnVEO0VPM0J2RCxpQlgyQnVCO0VXMUJ2QixjZDhGb0I7QUQwWnRCOztBTTVpQkE7RVMyRU0sY0FBYztBZnFlcEI7O0FnQnZWRTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1CRSxTQUFTO0VBQ1QsVUFBVTtBaEIwVmQ7O0FnQnRWRTtFQUNFLG1CQTdJMEI7RUErSTFCLGtCQUFrQjtFQUNsQixnQmYvT21CO0VlZ1BuQixrQ0E3SXlDO0FoQnFlN0M7O0FnQnBWRTs7RUFFRSxrQkFBa0I7RUFDbEIsb0JBQW9CO0FoQnVWeEI7O0FnQm5WRTs7RUFFRSxpQlpyTHFCO0VZc0xyQixvQkFBb0I7QWhCc1Z4Qjs7QUc1Z0JFO0VhMkxFLGNBaExpQjtFQWlMakIsb0JBQW9CO0FoQnFWeEI7O0FnQmpWRTs7Ozs7O0VBTUUsdUZmeFEyRjtFZXlRM0Ysa0JBN1BzQjtFQThQdEIsbUJaNU15QjtFWTZNekIsY0F2UGtCO0VBd1BsQixrQ0FuTXNDO0FoQnVoQjFDOztBZ0I5VkU7Ozs7OztFQWFJLGNBQWM7RUFDZCxjZjVIZTtBRHNkckI7O0FnQmpWUTtFQUlJLGVSM042QztFUW1PN0MsY2Z0TXVFO0Vla052RSxhQUFhO0VBT2IscUJBNVJpQjtBaEJxbEI3Qjs7QWdCeFZRO0VBSUksZVIzTjZDO0VRbU83QyxjZnJNdUU7RWVpTnZFLGFBQWE7RUFPYixxQkE1UmlCO0FoQjRsQjdCOztBZ0IvVlE7RUFJSSxrQlIzTjZDO0VRdU83QyxnQkFqUlc7RUF5UlgsYUFBYTtFQU9iLHFCQTVSaUI7QWhCbW1CN0I7O0FnQnRXUTtFQUlJLGlCUjNONkM7RVF1TzdDLGdCQWpSVztFQXlSWCxhQUFhO0VBT2IscUJBNVJpQjtBaEIwbUI3Qjs7QWdCN1dRO0VBSUksbUJSM042QztFUXVPN0MsZ0JBalJXO0VBeVJYLGFBQWE7RUFPYixxQkE1UmlCO0FoQmluQjdCOztBZ0JwWFE7RUFJSSxtQlIzTjZDO0VRdU83QyxnQkFqUlc7RUF5UlgsYUFBYTtFQU9iLHFCQTVSaUI7QWhCd25CN0I7O0FpQjFmUTtFRCtIQTtJQUlJLG1CUjNONkM7SVFtTzdDLGNmOUxnRTtFRG1qQjFFO0VnQmpZTTtJQUlJLGlCUjNONkM7SVFtTzdDLGNmN0xnRTtFRHNqQjFFO0VnQnJZTTtJQUlJLGtCUjNONkM7RVIrbEJ2RDtFZ0J4WU07SUFJSSxpQlIzTjZDO0VSa21CdkQ7RWdCM1lNO0lBSUksb0JSM042QztFUnFtQnZEO0VnQjlZTTtJQUlJLG1CUjNONkM7RVJ3bUJ2RDtBQUNGOztBR3pvQkU7RWErUkUsb0JBQW9CO0VBQ3BCLGNmaE1vQjtFZWlNcEIscUJBdE55QjtFQXdOekIsZUFBZTtBaEI2V25COztBZ0JsWEU7RUFTSSxjQWhPMkQ7QWhCNmtCakU7O0FnQnRYRTtFQWdCSSxTQUFTO0FoQjBXZjs7QUczcUJFO0VhdVVFLFdBQVc7RUFFWCxnQlJ0UnFEO0VRdVJyRCxTQUFTO0VBQ1Qsb0JBN055QjtFQStOekIsYUFBYTtFQUNiLGVBQWU7RUFDZixnQ2YxTWlCO0VlMk1qQixjQUFjO0FoQnNXbEI7O0FnQmxXRTs7O0VBR0UsbUJBN1EwQjtFQThRMUIsNEJBMU55QjtFQTJOekIsZ0JmOVdtQjtBRG10QnZCOztBZ0JqV0U7RUFDRSxrQkFBa0I7QWhCb1d0Qjs7QWdCaFdFO0VBQ0Usb0JBak9zQjtFQWtPdEIscUJBMU9rQjtBaEI2a0J0Qjs7QWdCL1ZFO0VBQ0Usb0JBdk9zQjtBaEJ5a0IxQjs7QWdCOVZFO0VBRUksb0JBek8yQjtFQTBPM0IsZ0JBQWdCO0FoQmdXdEI7O0FnQjNWRTtFQUNFLG1CQTVPeUI7QWhCMGtCN0I7O0FnQi9WRTtFQUlJLHFCQXZPOEI7RUF3TzlCLGlCWnZVbUI7QUpzcUJ6Qjs7QWdCMVZFO0VBQ0UsZ0JBdFQwQjtFQXVUMUIsc0NSOVVxRDtFUStVckQsOEJmN1BpQjtBRDBsQnJCOztBZ0JoV0U7RUFNSSxnQmYxWmlCO0VlMlpqQixjZmhRYTtBRDhsQm5COztBZ0JoVkU7RUFDRSxpQ2Y5UVc7RWUrUVgsWUFBWTtFQUNaLHFCQUFxQjtBaEJtVnpCOztBZ0IvVUU7RUFDRSxTQUFTO0FoQmtWYjs7QWdCdlVFO0VBQ0UsU0FBUztFQUNULDJCUmpYUztFUW1YVCx5QmZ2U2dCO0VleVNoQiw0REE1YW1FO0VBNmFuRSxjZnZTVztFZTBTVCxrQmZsY2E7QUR3d0JuQjs7QWtCdnBCRTtFQUNFLGtCQXhHeUI7RUF5R3pCLHFCQXJHNEI7RUF1RzVCLG1CZHJEeUI7RWNzRHpCLGdCQXhIc0I7RUF5SHRCLGNqQmdDZTtBRHluQm5COztBa0JycEJFO0VBQ0UsZUF0SXFDO0VBdUlyQyxnQkFuSWlCO0FsQjJ4QnJCOztBa0JwcEJFO0VBQ0UsaUJBaEhtQjtFQWlIbkIsY0FBYztBbEJ1cEJsQjs7QWtCcnBCSTtFQUNFLGlCQUFpQjtBbEJ3cEJ2Qjs7QWtCcHBCRTtFQUdJLGNBQWdDO0VBQ2hDLGdCQUFnQjtBbEJxcEJ0Qjs7QWtCanBCRTtFQWpGQSxjQUFjO0VBQ2QsY2pCcUZpQjtFaUJwRmpCLG9CVkN1RDtBUnF1QnpEOztBa0JwdUJFO0VBQ0UsYUF4Q2tCO0FsQit3QnRCOztBa0J2cEJFO0VBekVBLHlCakJ5RW1CO0VpQnhFbkIseUJqQnVFa0I7RWlCckVsQiw0REY5RHFFO0VFK0RyRSxtQmRqQjJCO0Vja0IzQixjakJzRWE7RWlCaEViLGVBQWU7RUFDZixlQUFlO0VBQ2YscUJBQXFCO0VBRXJCLHFDVnhCdUQ7QVJxdkJ6RDs7QWtCOXBCRTtFQTlFQSx5QmpCeUVtQjtFaUJ4RW5CLHlCakJ1RWtCO0VpQnJFbEIsNERGOURxRTtFRStEckUsbUJkakIyQjtFY2tCM0IsY2pCc0VhO0VpQnREYixjQUFjO0VBQ2QsY0FBYztFQUNkLGdCQUFnQjtFQUVoQixhQTVDdUI7RUE2Q3ZCLHFCQXpDK0I7QWxCd3dCakM7O0FtQjUwQlU7RUFDRSxnQkFSZTtBbkJ1MUIzQjs7QW1CaDFCVTtFQUNFLGlCQVJzQjtBbkIyMUJsQzs7QW1CcDFCVTtFQUNFLGtCQVI4QjtBbkIrMUIxQzs7QW1CeDFCVTtFQUNFLG1CQVJ1QztBbkJtMkJuRDs7QWlCMXJCUTtFRXZLRTtJQUNFLGdCQUhlO0VuQncyQnpCO0VtQnQyQlE7SUFDRSxpQkFIc0I7RW5CMjJCaEM7RW1CejJCUTtJQUNFLGtCQUg4QjtFbkI4MkJ4QztFbUI1MkJRO0lBQ0UsbUJBSHVDO0VuQmkzQmpEO0FBQ0Y7O0FpQnpzQlE7RUV2S0U7SUFDRSxnQkFIZTtFbkJ1M0J6QjtFbUJyM0JRO0lBQ0UsaUJBSHNCO0VuQjAzQmhDO0VtQngzQlE7SUFDRSxrQkFIOEI7RW5CNjNCeEM7RW1CMzNCUTtJQUNFLG1CQUh1QztFbkJnNEJqRDtBQUNGOztBb0J2M0JFO0VBQWtCLHdCQUF3QjtBcEIyM0I1Qzs7QW9CejNCRTtFQUNFO0lBSUksa0NBQWtDO0lBQ2xDLHVCQUF1QjtJQUN2QixtQ0FBcUI7WUFBckIscUJBQXFCO0lBT3ZCLDJCQUEyQjtJQUMzQiw0QkFBNEI7RXBCbTNCaEM7RW9CcDRCQTtJQW9Cb0IseUJBQXlCO0VwQm0zQjdDO0VvQmwzQkU7SUFBa0Isd0JBQXdCO0VwQnEzQjVDO0VvQm4zQkU7SUFBdUIseUJBQXlCO0VwQnMzQmxEO0VvQnIzQkU7SUFBdUIsc0NBQXNDO0VwQnczQi9EO0VvQnYzQkU7SUFBdUIsbUNBQW1DO0VwQjAzQjVEO0VvQnozQkU7SUFBb0IsNkJBQTZCO0VwQjQzQm5EO0VvQjMzQkU7SUFBb0IsOEJBQThCO0VwQjgzQnBEO0VvQjczQkU7SUFBb0IsOEJBQThCO0VwQmc0QnBEO0VvQjczQkU7O0lBQ1ksMEJBQTBCO0VwQmc0QnhDO0VvQjkzQkk7SUFBZ0IsNEJBQTRCO0VwQmk0QmhEO0VvQjczQkU7OztJQUVxQixXQUFXO0VwQmc0QmxDO0VvQjczQkU7SUFBb0IsNkJBQTZCO0VwQmc0Qm5EO0VvQjczQkU7O0lBRUUseUJuQjBHYTtJbUJ6R2Isd0JBQXdCO0VwQiszQjVCO0VvQjMzQkU7SUFBUSwyQkFBMkI7RXBCODNCckM7RW9CNTNCRTs7SUFDTSx3QkFBd0I7RXBCKzNCaEM7RUdwMUJBO0lpQnpDUSwwQkFBMEI7RXBCZzRCbEM7RW9COTNCRTtJQUFRLGFBQWE7RXBCaTRCdkI7RW9CLzNCRTs7O0lBR0UsVUFBVTtJQUNWLFNBQVM7RXBCaTRCYjtFb0I3M0JFOztJQUNLLHVCQUF1QjtFcEJnNEI5QjtFb0I3M0JFO0lBQ0UsdUJBQXVCO0VwQiszQjNCO0FBQ0Y7O0FxQmhwQkU7RUExT0EscUJBQXFCO0VBQ3JCLHNCQUFzQjtFQUN0QixvQkE3RWtDO0VBdUZoQyxzQnBCOEgwQjtFb0IzSDVCLDZCQTlEbUM7RUErRG5DLGtCcEI5RmlCO0VvQitGakIsaUVBMUJ1RTtFQTJCdkUsdUZwQjlGNkY7RW9CK0Y3RixpQmI3QnVEO0VhOEJ2RCxnQnBCWDZCO0VvQlk3Qix3QkFBd0I7RUFDeEIsY0FBYztFQUNkLGtCQUFrQjtFQUNsQixlQUFlO0FyQm0zQmpCOztBQUVBO0VLcnlCSSxVQUFVO0FMdXlCZDs7QXFCcnFCRTtFQU1NLGViMVBpRDtBUjY1QnpEOztBcUJ6cUJFO0VBTU0sbUJiMVBpRDtBUmk2QnpEOztBcUI3cUJFO0VBTU0sa0JiMVBpRDtBUnE2QnpEOztBcUJqckJFO0VBM01FLGNBQWM7RUFDZCxXQUFXO0VBQ1gsZUFBZTtFQUNmLGNBQWM7QXJCZzRCbEI7O0FxQi96QkU7RUFJRSx5QnBCakRvQjtFb0JrRHBCLGNwQjdCVztBRDQxQmY7O0FxQjV6QkU7RUFDRSx5QkEzS3VFO0VBNEt2RSxjcEJsQ1c7QURpMkJmOztBcUJ6MEJFO0VBSUUseUJwQmpEb0I7RW9Ca0RwQixjcEI3Qlc7QURzMkJmOztBcUJ0MEJFO0VBQ0UseUJBYm9GO0VBY3BGLGNwQmxDVztBRDIyQmY7O0FxQm4xQkU7RUFJRSx5QnBCaERzQjtFb0JpRHRCLGNwQjdCVztBRGczQmY7O0FxQmgxQkU7RUFDRSx5QkFib0Y7RUFjcEYsY3BCbENXO0FEcTNCZjs7QXFCNzFCRTtFQUlFLHlCcEIvQ29CO0VvQmdEcEIsY3BCN0JXO0FEMDNCZjs7QXFCMTFCRTtFQUNFLHlCQWJvRjtFQWNwRixjcEJsQ1c7QUQrM0JmOztBcUJ2MkJFO0VBSUUseUJwQjlDb0I7RW9CK0NwQixjcEI3Qlc7QURvNEJmOztBcUJwMkJFO0VBQ0UseUJBYm9GO0VBY3BGLGNwQmxDVztBRHk0QmY7O0FxQmozQkU7RUFJRSx5QnBCN0NrQjtFb0I4Q2xCLGNwQjdCVztBRDg0QmY7O0FxQjkyQkU7RUFDRSx5QkFib0Y7RUFjcEYsY3BCbENXO0FEbTVCZjs7QXFCejJCSTtFQUNFLDZCQUE2QjtBckI0MkJuQzs7QXFCMzFCRTtFQUlFLHlCcEJyRm9CO0VvQnNGcEIsY3BCdEZvQjtBRGk3QnhCOztBcUJ4MUJFO0VBQ0UscUJBWjZEO0VBYTdELGNBYjZEO0FyQncyQmpFOztBcUJyMkJFO0VBSUUseUJwQnJGb0I7RW9Cc0ZwQixjcEJ0Rm9CO0FEMjdCeEI7O0FxQmwyQkU7RUFDRSxxQkFaNkQ7RUFhN0QsY0FiNkQ7QXJCazNCakU7O0FxQi8yQkU7RUFJRSx5QnBCcEZzQjtFb0JxRnRCLGNwQnJGc0I7QURvOEIxQjs7QXFCNTJCRTtFQUNFLHFCQVo2RDtFQWE3RCxjQWI2RDtBckI0M0JqRTs7QXFCejNCRTtFQUlFLHlCcEJuRm9CO0VvQm9GcEIsY3BCcEZvQjtBRDY4QnhCOztBcUJ0M0JFO0VBQ0UscUJBWjZEO0VBYTdELGNBYjZEO0FyQnM0QmpFOztBcUJuNEJFO0VBSUUseUJwQmxGb0I7RW9CbUZwQixjcEJuRm9CO0FEczlCeEI7O0FxQmg0QkU7RUFDRSxxQkFaNkQ7RUFhN0QsY0FiNkQ7QXJCZzVCakU7O0FxQjc0QkU7RUFJRSx5QnBCakZrQjtFb0JrRmxCLGNwQmxGa0I7QUQrOUJ0Qjs7QXFCMTRCRTtFQUNFLHFCQVo2RDtFQWE3RCxjQWI2RDtBckIwNUJqRTs7QXFCcjRCSTtFQUNFLHlCQUF5QjtFQUN6Qiw2QkFBNkI7QXJCdzRCbkM7O0FxQnozQkU7RUFJRSxjcEJ4SG9CO0FEaS9CeEI7O0FxQnQzQkU7RUFDRSxjQVg2RDtBckJvNEJqRTs7QXFCajRCRTtFQUlFLGNwQnhIb0I7QUR5L0J4Qjs7QXFCOTNCRTtFQUNFLGNBWDZEO0FyQjQ0QmpFOztBcUJ6NEJFO0VBSUUsY3BCdkhzQjtBRGdnQzFCOztBcUJ0NEJFO0VBQ0UsY0FYNkQ7QXJCbzVCakU7O0FxQmo1QkU7RUFJRSxjcEJ0SG9CO0FEdWdDeEI7O0FxQjk0QkU7RUFDRSxjQVg2RDtBckI0NUJqRTs7QXFCejVCRTtFQUlFLGNwQnJIb0I7QUQ4Z0N4Qjs7QXFCdDVCRTtFQUNFLGNBWDZEO0FyQm82QmpFOztBcUJqNkJFO0VBSUUsY3BCcEhrQjtBRHFoQ3RCOztBcUI5NUJFO0VBQ0UsY0FYNkQ7QXJCNDZCakU7O0FxQnoyQkU7RUEvQ0EsYUFyTjRCO0VBc041QixtQkFBbUI7QXJCNDVCckI7O0FxQmg1QkU7RWhCaFFBLGNBQWM7RUFDZCxRQUFRO0VBQ1IsU0FBUztFQUVULG1CZ0J3UFk7RWhCdFBaLFdBQVc7RUFHVCxzQkFBc0I7RUFDdEIsdUJBQXVCO0VBQ3ZCLDZDQUFxRDtFZ0J1UHJELGtCQUFrQjtFQUNsQixVQUFVO0VBRVYscUJBQXFCO0VBQ3JCLFlBQU87RUFDUCxtQnBCckUwQjtBRDg5QjlCOztBcUI5M0JFO0VBb0VRLHlCcEJ4UGM7QURzakN4Qjs7QXFCbDRCRTtFQTBFWSx5QnBCOVBVO0FEMGpDeEI7O0FxQnQ0QkU7RUEwRVkseUJwQjdQWTtBRDZqQzFCOztBcUIxNEJFO0VBMEVZLHlCcEI1UFU7QURna0N4Qjs7QXFCOTRCRTtFQTBFWSx5QnBCM1BVO0FEbWtDeEI7O0FxQmw1QkU7RUEwRVkseUJwQjFQUTtBRHNrQ3RCOztBcUJ0NUJFO0VBbUZJLFdBQVc7RUFDWCxXQUFXO0VBQ1gsY0FBZ0M7QXJCdTBCdEM7O0FxQm4wQkU7RUFHSSxxQkFBcUI7QXJCbzBCM0I7O0FzQnBoQ0U7RUFwTEEsbUJBMUJ1QjtFQTZCckIsYUFBYTtFQUNiLGVBQWU7RUFDZixvQkFBb0I7RUFDcEIsWUFBWTtBdEIwc0NoQjs7QUsza0NFO0VBRUUsY0FBYztFQUNkLFlBQVk7RUFHVixhQUFhO0VBQ2IsUUFBUTtBTDJrQ2Q7O0FLdmtDRTtFQUNFLFdBQVc7QUwwa0NmOztBS3RsQ0U7RWlCM0hJLGFBQWE7QXRCcXRDbkI7O0FzQjlzQ0U7RUFDRSxTQUFTO0VBQ1QsaUJBekNxQjtFQTBDckIsa0JBMUNxQjtFQTJDckIsaUJkK0JxRDtFYzVCbkQsY0FBYztBdEIrc0NwQjs7QXNCNXNDSTtFQUNFLGVBQWlDO0F0QitzQ3ZDOztBc0J2akNFO0VBTU0sZWR0SWlEO0FSMnJDekQ7O0FzQjNqQ0U7RUFNTSxtQmR0SWlEO0FSK3JDekQ7O0FzQi9qQ0U7RUFNTSxrQmR0SWlEO0FSbXNDekQ7O0FzQnhxQ0U7RUFFSSxhQUFhO0VBQ2IsZUFBZTtBdEIwcUNyQjs7QXFCM2xDRTtFQUlFLHlCcEJqRG9CO0VvQmtEcEIsY3BCN0JXO0FEd25DZjs7QXFCeGxDRTtFQUNFLHlCQWJvRjtFQWNwRixjcEJsQ1c7QUQ2bkNmOztBcUJybUNFO0VBSUUseUJwQmhEc0I7RW9CaUR0QixjcEI3Qlc7QURrb0NmOztBcUJsbUNFO0VBQ0UseUJBYm9GO0VBY3BGLGNwQmxDVztBRHVvQ2Y7O0FxQi9tQ0U7RUFJRSx5QnBCL0NvQjtFb0JnRHBCLGNwQjdCVztBRDRvQ2Y7O0FxQjVtQ0U7RUFDRSx5QkFib0Y7RUFjcEYsY3BCbENXO0FEaXBDZjs7QXFCem5DRTtFQUlFLHlCcEI5Q29CO0VvQitDcEIsY3BCN0JXO0FEc3BDZjs7QXFCdG5DRTtFQUNFLHlCQWJvRjtFQWNwRixjcEJsQ1c7QUQycENmOztBcUJub0NFO0VBSUUseUJwQjdDa0I7RW9COENsQixjcEI3Qlc7QURncUNmOztBcUJob0NFO0VBQ0UseUJBYm9GO0VBY3BGLGNwQmxDVztBRHFxQ2Y7O0FxQjNuQ0k7RUFDRSw2QkFBNkI7QXJCOG5DbkM7O0FxQjdtQ0U7RUFJRSx5QnBCckZvQjtFb0JzRnBCLGNwQnRGb0I7QURtc0N4Qjs7QXFCMW1DRTtFQUNFLHFCQVo2RDtFQWE3RCxjQWI2RDtBckIwbkNqRTs7QXFCdm5DRTtFQUlFLHlCcEJyRm9CO0VvQnNGcEIsY3BCdEZvQjtBRDZzQ3hCOztBcUJwbkNFO0VBQ0UscUJBWjZEO0VBYTdELGNBYjZEO0FyQm9vQ2pFOztBcUJqb0NFO0VBSUUseUJwQnBGc0I7RW9CcUZ0QixjcEJyRnNCO0FEc3RDMUI7O0FxQjluQ0U7RUFDRSxxQkFaNkQ7RUFhN0QsY0FiNkQ7QXJCOG9DakU7O0FxQjNvQ0U7RUFJRSx5QnBCbkZvQjtFb0JvRnBCLGNwQnBGb0I7QUQrdEN4Qjs7QXFCeG9DRTtFQUNFLHFCQVo2RDtFQWE3RCxjQWI2RDtBckJ3cENqRTs7QXFCcnBDRTtFQUlFLHlCcEJsRm9CO0VvQm1GcEIsY3BCbkZvQjtBRHd1Q3hCOztBcUJscENFO0VBQ0UscUJBWjZEO0VBYTdELGNBYjZEO0FyQmtxQ2pFOztBcUIvcENFO0VBSUUseUJwQmpGa0I7RW9Ca0ZsQixjcEJsRmtCO0FEaXZDdEI7O0FxQjVwQ0U7RUFDRSxxQkFaNkQ7RUFhN0QsY0FiNkQ7QXJCNHFDakU7O0FxQnZwQ0k7RUFDRSx5QkFBeUI7RUFDekIsNkJBQTZCO0FyQjBwQ25DOztBcUIzb0NFO0VBSUUsY3BCeEhvQjtBRG13Q3hCOztBcUJ4b0NFO0VBQ0UsY0FYNkQ7QXJCc3BDakU7O0FxQm5wQ0U7RUFJRSxjcEJ4SG9CO0FEMndDeEI7O0FxQmhwQ0U7RUFDRSxjQVg2RDtBckI4cENqRTs7QXFCM3BDRTtFQUlFLGNwQnZIc0I7QURreEMxQjs7QXFCeHBDRTtFQUNFLGNBWDZEO0FyQnNxQ2pFOztBcUJucUNFO0VBSUUsY3BCdEhvQjtBRHl4Q3hCOztBcUJocUNFO0VBQ0UsY0FYNkQ7QXJCOHFDakU7O0FxQjNxQ0U7RUFJRSxjcEJySG9CO0FEZ3lDeEI7O0FxQnhxQ0U7RUFDRSxjQVg2RDtBckJzckNqRTs7QXFCbnJDRTtFQUlFLGNwQnBIa0I7QUR1eUN0Qjs7QXFCaHJDRTtFQUNFLGNBWDZEO0FyQjhyQ2pFOztBc0I5MkNFO0VBQ0Usd0JkRnFEO0FSbTNDekQ7O0FzQi8yQ0k7RUFDRSw4QkFBc0Q7QXRCazNDNUQ7O0FzQnZ2Q0U7RUFoRUUsZUFBZTtBdEIyekNuQjs7QXNCeHpDRTtFQUVJLGNBQWM7QXRCMHpDcEI7O0FzQnB6Q0k7RUFDRSxnQkFBZ0I7QXRCdXpDdEI7O0FzQngyQ0U7RUFFSSxhQUFhO0VBQ2IsZUFBZTtBdEIwMkNyQjs7QWlCaHpDUTtFS2FOO0lBRUksY0FBYztJQUtoQixnQkFBZ0I7RXRCa3lDbEI7QUFDRjs7QWlCdnpDUTtFS2FOO0lBRUksY0FBYztJQUtoQixnQkFBZ0I7RXRCeXlDbEI7QUFDRjs7QWlCOXpDUTtFS3dDTjtJQW1FTSxjQUFjO0V0Qnd0Q3BCO0VzQjN4Q0E7SUFzRVEsY0FBYztJQUNkLGVBQWlDO0V0Qnd0Q3pDO0FBQ0Y7O0FpQngwQ1E7RUt3Q047SUE4RU0sY0FBYztFdEJ1dENwQjtFc0JyeUNBO0lBaUZRLGNBQWM7SUFDZCxlQUFpQztFdEJ1dEN6QztBQUNGOztBdUJ2NUNFO0VBWkEsa0JBQWtCO0VBQ2xCLFdBbEZzQjtFQW1GdEIsY3RCMEVpQjtFc0J6RWpCLGVBQWU7QXZCdTZDakI7O0FBRUE7RUtqMENJLFVBQVU7QUxtMENkOztBdUJ6NkNFO0VBRUUsY3RCc0VXO0FEcTJDZjs7QXVCdDZDRTtFQXhCQSxjQXpEYztFQTBEZCxXQW5EYTtFQW9EYixnQkE3Q1k7RUE4Q1osY0F4Q3dCO0F2QjArQzFCOztBdUI3NkNFO0VBeEJBLFdBeERZO0VBeURaLFdBbERjO0VBbURkLGNBNUNXO0VBNkNYLGNBeEN3QjtBdkJpL0MxQjs7QXdCNytDRTtFQVpBLHFCQUFxQjtFQUNyQiwwQkFUK0I7RUFXL0Isa0J2QnJCaUI7RXVCdUJqQixpQkFqQnNCO0VBa0J0QixjQUFjO0VBQ2QsbUJBQW1CO0VBQ25CLGVBQWU7RUFPYixtQnZCbUdvQjtFdUJsR3BCLGN2QnVIVztBRDgzQ2Y7O0F3QnovQ0U7RUFRTSxtQnZCOEZnQjtFdUI3RmhCLGN2QmlITztBRG80Q2Y7O0F3QjkvQ0U7RUFRTSxtQnZCK0ZrQjtFdUI5RmxCLGN2QmlITztBRHk0Q2Y7O0F3Qm5nREU7RUFRTSxtQnZCZ0dnQjtFdUIvRmhCLGN2QmlITztBRDg0Q2Y7O0F3QnhnREU7RUFRTSxtQnZCaUdnQjtFdUJoR2hCLGN2QmlITztBRG01Q2Y7O0F3QjdnREU7RUFRTSxtQnZCa0djO0V1QmpHZCxjdkJrSE87QUR1NUNmOztBeUI1NkNFO0VBbkdBLGtCQUFrQjtFQUNsQixxQkFBcUI7RUFFckIsaUN4Qm1IaUI7RXdCbEhqQixpQnJCK0J1QjtFcUI5QnZCLFlBaERtQjtBekJra0RyQjs7QXlCaDdDRTtFQTlGQSxrQkFBa0I7RUFDbEIsMkJBQXdDO0VBQ3hDLGFBQWE7RUFFYixnQkFoQ3VCO0VBaUN2QixnQkFyQ3VCO0VBdUN2QixrQnhCakRpQjtFd0JrRGpCLHlCeEJzR2E7RXdCckdiLGNUNEJtQjtFUzNCbkIsY3hCcUdhO0FEMjZDZjs7QXlCOWdERTtFQUNFLGtCQUFrQjtBekJpaER0Qjs7QXlCN2dESTtFcEJyQ0YsY0FBYztFQUNkLFFBQVE7RUFDUixTQUFTO0VBRVQscUJvQkp5QjtFcEJNekIsV0FBVztFQVFULG1CQUFtQjtFQUNuQiwwQkFBMEI7RUFDMUIsNkNKa0hXO0V3QjNGVCxZQUFZO0F6QnVoRGxCOztBeUJwaERJO0VBQ0UsU0FBUztFQUNULDJCQUEyQjtBekJ1aERqQzs7QXlCbGhESTtFcEJqREYsY0FBYztFQUNkLFFBQVE7RUFDUixTQUFTO0VBRVQscUJvQkp5QjtFcEJNekIsV0FBVztFQUdULHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsNkNBQXFEO0VvQndDbkQsU0FBUztFQUNULFlBQVk7QXpCNGhEbEI7O0F5QnpoREk7RUFDRSxTQUFTO0VBQ1QsMkJBQTJCO0F6QjRoRGpDOztBeUJ2aERJO0VwQjlERixjQUFjO0VBQ2QsUUFBUTtFQUNSLFNBQVM7RUFFVCxxQm9CSnlCO0VwQk16QixXQUFXO0VBYVQscUJBQXFCO0VBQ3JCLHdCQUF3QjtFQUN4Qix5REo2R1c7RXdCbEVULFVBQVU7QXpCaWlEaEI7O0F5QjloREk7RUFDRSxZQUFZO0VBQ1osUUFBUTtFQUNSLDJCQUEyQjtBekJpaURqQzs7QXlCNWhESTtFcEIzRUYsY0FBYztFQUNkLFFBQVE7RUFDUixTQUFTO0VBRVQscUJvQkp5QjtFcEJNekIsV0FBVztFQWtCVCxvQkFBb0I7RUFDcEIseUJBQXlCO0VBQ3pCLHlEQUFpRTtFb0JtRC9ELFdBQVc7RUFDWCxVQUFVO0F6QnNpRGhCOztBeUJuaURJO0VBQ0UsWUFBWTtFQUNaLFFBQVE7RUFDUiwyQkFBMkI7QXpCc2lEakM7O0F5QmxpREU7RUFDRSxZQUFZO0VBQ1osUUFBUTtBekJxaURaOztBeUJsaURFO0VBQ0UsV0FBVztFQUNYLFNBQVM7QXpCcWlEYjs7QXlCbGlERTtFQUNFLFNBQVM7RUFDVCxXQUFXO0F6QnFpRGY7O0F5QmxpREU7RUFDRSxVQUFVO0VBQ1YsVUFBVTtBekJxaURkOztBMEJwaURFO0VBeEZBLGNBQWdDO0VBQ2hDLG1CekJnSGE7RXlCL0diLHFCQUFxQjtBMUJnb0R2Qjs7QTBCN25ESTtFQUNFLG1CQUFtQjtBMUJnb0R6Qjs7QTBCem5ERTtFQUNFLDBCQUFnRDtBMUI0bkRwRDs7QTBCem5ERTtFQUNFLDBCekIxRGU7QURzckRuQjs7QTBCOWlERTtFQWxFQSxrQkFBa0I7RUFDbEIsY0FBYztFQUNkLHFCQXREbUM7RUF3RG5DLDBDekI0RW1CO0V5QjNFbkIsZ0JBQWdCO0VBRWhCLGtCbEJUdUQ7RWtCVXZELGNBQWM7RUFDZCxjekJxRHNCO0FENmpEeEI7O0EwQmhuREU7RUFDRSxpRHpCb0VpQjtFeUJuRWpCLDBCekJuRmU7QURzc0RuQjs7QTBCaG5ERTtFQUVFLHlCekI2RGdCO0FEcWpEcEI7O0EwQjltREk7RUFDRSxrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLFdBQXNCO0VBQ3RCLG1CQUFtQjtFQUNuQixZQW5HMEI7QTFCb3REaEM7O0EwQjltREk7RUFDRSxZQW5Hb0I7QTFCb3REMUI7O0EwQjFrREU7RUEzQkEsYUFBYTtFQUNiLGFBaEY4QjtFQWtGOUIsMEN6QmtDbUI7RXlCakNuQixnQkFBZ0I7RUFDaEIseUJ6Qm1DYTtFeUJqQ2IsY3pCK0JpQjtBRHdrRG5COztBMEJybURFO0VBQ0UsaUR6QjJCaUI7QUQ2a0RyQjs7QTJCM3NERTs7RUFuQkEsa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxnQm5Ca0VXO0VtQmpFWCxtQkMwQ3NCO0VEekN0QixnQkFBZ0I7QTNCbXVEbEI7O0EyQmp1REU7Ozs7Ozs7O0VBSUUsa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFrQjtFQUNsQixXQUFXO0VBQ1gsWUFBWTtBM0J3dURoQjs7QTJCbnVERTs7RUFRTSxzQkNrQmdCO0E1QjhzRHhCOztBNkI1NkNFO0VBL1NBLFVBQVU7RUFDVixTQUFTO0VBQ1QsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUdoQixhQUFhO0VBQ2IsZUFBZTtBN0I2dERuQjs7QUFFQTtFS3JsREksVUFBVTtBTHVsRGQ7O0E2QjF0REU7O0VBRUUsY0FBYztFQUNkLHFCQUFxQjtFQUNyQixjQUFjO0VBQ2Qsb0J6Qm9CNkI7QUp5c0RqQzs7QTZCenRERTs7OztFQUlFLGdCQUFnQjtBN0I0dERwQjs7QTZCenRERTtFQUNFLHFCQUFxQjtBN0I0dER6Qjs7QTZCNThDRTtFQXBMSSxlQUFlO0VBQ2YsbUJBQW1CO0E3Qm9vRHpCOztBNkJqOUNFO0VBektJLGlCQUFpQjtFQUNqQixzQkFBc0I7QTdCOG5ENUI7O0E2Qi90REk7RUFDRSxhQUFhO0E3Qmt1RG5COztBNkIxOUNFO0VBdEpFLG1CQUFtQjtBN0JvbkR2Qjs7QTZCam5ERTtFQUNFLGlCQWhNcUI7QTdCb3pEekI7O0E2QmpuREU7RUFDRSxVQUFVO0E3Qm9uRGQ7O0FpQjlwRFE7RVl3TE47SUFwTEksZUFBZTtJQUNmLG1CQUFtQjtFN0IrcER2QjtFNkI1K0NBO0lBektJLGlCQUFpQjtJQUNqQixzQkFBc0I7RTdCd3BEMUI7RTZCenZERTtJQUNFLGFBQWE7RTdCMnZEakI7RTZCNXZERTtJQUNFLGFBQWE7RTdCOHZEakI7QUFDRjs7QWlCL3FEUTtFWXdMTjtJQXBMSSxlQUFlO0lBQ2YsbUJBQW1CO0U3QmdyRHZCO0U2QjcvQ0E7SUF6S0ksaUJBQWlCO0lBQ2pCLHNCQUFzQjtFN0J5cUQxQjtFNkIxd0RFO0lBQ0UsYUFBYTtFN0I0d0RqQjtFNkI3d0RFO0lBQ0UsYUFBYTtFN0Ird0RqQjtBQUNGOztBNkJ4Z0RFO0VBOUhFLGVBQWlDO0VBQ2pDLGlCekJ4STRCO0FKa3hEaEM7O0E2QmxvREk7RUFDRSxhQUFhO0E3QnFvRG5COztBNkJ0b0RJO0VBQ0UsYUFBYTtBN0J5b0RuQjs7QTZCdG5ESTtFQUVJLHFCQUFxQjtBN0J3bkQ3Qjs7QTZCcm5ETTs7O0VBR0UscUJBek9tQjtBN0JpMkQzQjs7QTZCL21ESTtFQUVJLHFCQUFxQjtBN0JpbkQ3Qjs7QTZCOW1ETTs7O0VBR0Usb0JBMVBtQjtBN0IyMkQzQjs7QTZCeG1ESTtFQUVJLHdCQUF3QjtBN0IwbURoQzs7QTZCcG1ETTs7O0VBUUksbUJBQW1CO0VBQ25CLHNCQXBSaUI7RUFxUmpCLGtCQUFrQjtBN0JrbUQ1Qjs7QTZCNWxESTtFQUVJLHdCQUF3QjtBN0I4bERoQzs7QTZCeGxETTs7O0VBUUksbUJBQW1CO0VBQ25CLHNCQTVTaUI7RUE2U2pCLGtCQUFrQjtBN0JzbEQ1Qjs7QTZCamtERTtFQUxBLG1CNUIzTXNCO0U0QjRNdEIsYzVCeExhO0FEa3dEZjs7QTZCdGtERTtFQUxBLG1CNUIzTXNCO0U0QjRNdEIsYzVCeExhO0FEdXdEZjs7QTZCM2tERTtFQXRQSSwyQkFBMkI7QTdCcTBEakM7O0E2Qjd6RE07RUFDRSxhQUFhO0VBQ2IseUJBQXlCO0E3QmcwRGpDOztBNkI5ekRRO0VBQ0UsMkJBQTJCO0E3QmkwRHJDOztBNkI3ekRNO0VBQ0UsY0FBYztFQUNkLGlCekJWb0Q7QUowMEQ1RDs7QTZCOXpEUTtFQUNFLGlCekJia0Q7QUo4MEQ1RDs7QTZCam1ERTtFQWxJRSxrQnpCbkk0QjtFeUJvSTVCLGNBQWdDO0E3QnV1RHBDOztBNkJsekRNO0VBQ0UsYUFBYTtFQUNiLHVCQUF1QjtBN0JxekQvQjs7QTZCbnpEUTtFQUNFLDJCQUEyQjtBN0JzekRyQzs7QTZCL21ERTtFQWJBLG9CekIzUCtCO0V5QjZQL0IsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxjQUFjO0E3QituRGhCOztBNkIvL0NJO0VBR00sdUJBQXVCO0E3QmdnRGpDOztBNkJ0MERNO0VBQ0UsYUFBYTtFQUNiLHVCQUF1QjtBN0J5MEQvQjs7QTZCdjBEUTtFQUNFLDJCQUEyQjtBN0IwMERyQzs7QTZCaGdERTtFQUNFLGFBQWE7QTdCbWdEakI7O0E4QjkrREU7RXpCd0dBLGtCQUFrQjtFQUNsQixxQkFBcUI7RUFDckIsc0JBQXNCO0VBQ3RCLFdBekJZO0VBMEJaLFlBekJhO0VBMEJiLGVBQWU7QUwwNERqQjs7QUt2NERFO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBRVAsY0FBYztFQUNkLFdBQVc7RUFDWCxXQW5DVTtFQXFDVixtQkptRFc7RUlsRFgsNkNKa0RXO0VJaERYLFdBQVc7QUx1NERmOztBSzUzREk7RUFDRSxtQkppQ2U7RUloQ2YsNkNKZ0NlO0FEKzFEckI7O0E4QnBnRUU7RXpCb0dBLGtCQUFrQjtFQUNsQixxQkFBcUI7RUFDckIsc0JBQXNCO0VBQ3RCLFdBekJZO0VBMEJaLFlBekJhO0VBMEJiLGVBQWU7QUxvNkRqQjs7QUtqNkRFO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBRVAsY0FBYztFQUNkLFdBQVc7RUFDWCxXQW5DVTtFQXFDVixtQkprRFc7RUlqRFgsNkNKaURXO0VJL0NYLFdBQVc7QUxpNkRmOztBS3Q1REk7RUFDRSxtQkprQ2E7RUlqQ2IsNkNKaUNhO0FEdzNEbkI7O0ErQjloRUU7RUFDRSxrQkFBa0I7QS9CaWlFdEI7O0ErQjloRUU7RUFDRSxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLCtCQUErQjtBL0JpaUVuQzs7QStCOWhFRTtFQUNFLGVBQWU7RUFDZixVQUFVO0VBQ1YsV0FBVztBL0JpaUVmOztBK0JwaUVFO0VBTUksTUFBTTtBL0JraUVaOztBK0J4aUVFO0VBVUksU0FBUztBL0JraUVmOztBK0I5aEVFO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxVQUFVO0EvQmlpRWQ7O0ErQnBpRUU7RUFNSSxTQUFTO0EvQmtpRWY7O0FnQzErREU7RUFDRSxnQkFBZ0I7QWhDNitEcEI7O0FnQ3orREU7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxXL0IwSnlCO0UrQnhKekIsV0FBVztFQUNYLFlBQVk7RUFFWixtRC9CMEo4QjtFK0J4SjlCLGtDL0JpRVc7RStCL0RYLFVBQVU7RUFDVixrQkFBa0I7RUFFbEIsZ0JBQWdCO0FoQ3UrRHBCOztBZ0N2L0RFO0VBbUJJLFVBQVU7RUFDVixtQkFBbUI7QWhDdytEekI7O0FnQzUvREU7RUF3QkksZUFBZTtBaEN3K0RyQjs7QWdDaGdFRTtFQTRCSSxrQkFBa0I7QWhDdytEeEI7O0FnQ3BnRUU7RUFnQ0ksZUFBZTtBaEN3K0RyQjs7QWdDMXFERTtFQXZUQSxrQkFBa0I7RUFDbEIsZ0JBQWdCO0FoQ3ErRGxCOztBZ0MxcURFO0VBL1NFLGVBQWU7RUFPakIsVy9Cb0d3QjtFK0I3RnhCLCtCL0JpR2dDO0UrQmhHaEMsbUNBQTJCO1VBQTNCLDJCQUEyQjtFQUUzQixtQi9CT2E7QUR5OERmOztBQUVBO0VLNzZESSxVQUFVO0FMKzZEZDs7QWdDMzlERTtFQUNFLFcvQmdHc0I7QUQ4M0QxQjs7QWdDcjlERTtFQUNFLGtCQUFrQjtBaEN3OUR0Qjs7QWdDcDlERTtFQUNFLFcvQmtGeUI7QURxNEQ3Qjs7QWdDcjlESTtFQUNFLDBDL0JMUztBRDY5RGY7O0FnQ245REU7RUFDRSwwQkFBMEI7QWhDczlEOUI7O0FnQy9yREU7RUF2VEUsa0JBQWtCO0VBSXBCLFcvQm9Hd0I7RStCN0Z4QiwrQi9CaUdnQztFK0JoR2hDLG1DQUEyQjtVQUEzQiwyQkFBMkI7RUFFM0IsbUIvQk9hO0FEeStEZjs7QUFFQTtFSzc4REksVUFBVTtBTCs4RGQ7O0FnQzMvREU7RUFDRSxXL0JnR3NCO0FEODVEMUI7O0FnQ3IvREU7RUFDRSxrQkFBa0I7QWhDdy9EdEI7O0FnQ3AvREU7RUFDRSxXL0JrRnlCO0FEcTZEN0I7O0FnQ3IvREk7RUFDRSwwQy9CTFM7QUQ2L0RmOztBZ0NuL0RFO0VBQ0UsMEJBQTBCO0FoQ3MvRDlCOztBZ0MxdERFO0VBalJFLE1BQU07RUFDTixPQUFPO0VBQ1AsWUFBWTtFQUNaLGdCQUFnQjtFQUlaLFlBOUxNO0VBK0xOLDZCQUE2QjtBaEM0K0RyQzs7QWdDditEWTtFQUlGLDZCQUE2QjtBaEN1K0R2Qzs7QWdDMytEWTtFQVFKLDBCQUEwQjtBaEN1K0RsQzs7QWdDbCtEWTtFQUlBLDRCQUE0QjtBaENrK0R4Qzs7QWdDMzJESTtFM0I3VEEsMkRKa0pXO0FEMGhFZjs7QWdDbHZERTtFQTdPRSxNQUFNO0VBQ04sUUFBUTtFQUNSLFlBQVk7RUFDWixnQkFBZ0I7RUFJWixZQW5PTTtFQW9PTiw0QkFBNEI7QWhDZytEcEM7O0FnQzM5RFk7RUFJRiw0QkFBNEI7QWhDMjlEdEM7O0FnQy85RFk7RUFRSiwwQkFBMEI7QWhDMjlEbEM7O0FnQ3Q5RFk7RUFJQSw2QkFBNkI7QWhDczlEekM7O0FnQ3A0REk7RTNCL1RBLDBESm9KVztBRG1qRWY7O0FnQzF3REU7RUF6TUUsTUFBTTtFQUNOLE9BQU87RUFDUCxXQUFXO0VBQ1gsZ0JBQWdCO0VBSVosYUFsUU07RUFtUU4sNkJBQTZCO0FoQ285RHJDOztBZ0MvOERZO0VBR0YsNkJBQTZCO0FoQ2c5RHZDOztBZ0NuOURZO0VBT0osMEJBQTBCO0FoQ2c5RGxDOztBZ0MzOERZO0VBSUEsNEJBQTRCO0FoQzI4RHhDOztBZ0M3NURJO0UzQjNUQSwyREpnSlc7QUQ0a0VmOztBZ0NseURFO0VBdEtFLFNBQVM7RUFDVCxPQUFPO0VBQ1AsV0FBVztFQUNYLGdCQUFnQjtFQUlaLGFBdFNNO0VBdVNOLDRCQUE0QjtBaEN5OERwQzs7QWdDcDhEWTtFQUdGLDRCQUE0QjtBaENxOER0Qzs7QWdDeDhEWTtFQU9KLDBCQUEwQjtBaENxOERsQzs7QWdDaDhEWTtFQUlBLDZCQUE2QjtBaENnOER6Qzs7QWdDdDdESTtFM0JqVUEsMERKc0pXO0FEcW1FZjs7QWdDenpERTtFQTdHQSxlQUFlO0VBQ2YsbUNBQTJCO1VBQTNCLDJCQUEyQjtBaEMwNkQ3Qjs7QWdDdjZERTtFQUVFLCtCL0I5RzhCO0FEdWhFbEM7O0FnQ3I2REU7RUFDRSwwQkFBMEI7QWhDdzZEOUI7O0FnQ3A2REU7RUFDRSwwQkFBMEI7QWhDdTZEOUI7O0FpQmxuRVE7RWVnVEE7SUExRk4sZUFBZTtJQUNmLFcvQnRJMEI7SStCdUkxQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0VoQ2k2RG5CO0VnQzM1REE7SUFDRSxhQUFhO0VoQzY1RGY7RWdDejVEQTtJQUNFLGVBQWU7RWhDMjVEakI7RWdDeDVEUTtJQUNOLGtCQTlZVTtFaEN3eUVaO0VnQ3Q1REE7SUFDRSxrQkFuWlU7RWhDMnlFWjtFZ0NsMURNO0lBOUZOLGVBQWU7SUFDZixXL0J0STBCO0krQnVJMUIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtFaENtN0RuQjtFZ0M3NkRBO0lBQ0UsYUFBYTtFaEMrNkRmO0VnQzM2REE7SUFDRSxlQUFlO0VoQzY2RGpCO0VnQzE2RFE7SUFDTixtQkE5WVU7RWhDMHpFWjtFZ0N4NkRBO0lBQ0UsbUJBblpVO0VoQzZ6RVo7RWdDaDJETTtJQWxHTixlQUFlO0lBQ2YsVy9CdEkwQjtJK0J1STFCLGdCQUFnQjtJQUNoQixtQkFBbUI7RWhDcThEbkI7RWdDLzdEQTtJQUNFLGFBQWE7RWhDaThEZjtFZ0M3N0RBO0lBQ0UsZUFBZTtFaEMrN0RqQjtFZ0M1N0RRO0lBQ04saUJBOVlVO0VoQzQwRVo7RWdDMTdEQTtJQUNFLGlCQW5aVTtFaEMrMEVaO0VnQzkyRE07SUF0R04sZUFBZTtJQUNmLFcvQnRJMEI7SStCdUkxQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0VoQ3U5RG5CO0VnQ2o5REE7SUFDRSxhQUFhO0VoQ205RGY7RWdDLzhEQTtJQUNFLGVBQWU7RWhDaTlEakI7RWdDOThEUTtJQUNOLG9CQTlZVTtFaEM4MUVaO0VnQzU4REE7SUFDRSxvQkFuWlU7RWhDaTJFWjtBQUNGOztBaUI3ckVRO0VlZ1RBO0lBMUZOLGVBQWU7SUFDZixXL0J0STBCO0krQnVJMUIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtFaEM0K0RuQjtFZ0N0K0RBO0lBQ0UsYUFBYTtFaEN3K0RmO0VnQ3ArREE7SUFDRSxlQUFlO0VoQ3MrRGpCO0VnQ24rRFE7SUFDTixrQkE5WVU7RWhDbTNFWjtFZ0NqK0RBO0lBQ0Usa0JBblpVO0VoQ3MzRVo7RWdDNzVETTtJQTlGTixlQUFlO0lBQ2YsVy9CdEkwQjtJK0J1STFCLGdCQUFnQjtJQUNoQixtQkFBbUI7RWhDOC9EbkI7RWdDeC9EQTtJQUNFLGFBQWE7RWhDMC9EZjtFZ0N0L0RBO0lBQ0UsZUFBZTtFaEN3L0RqQjtFZ0NyL0RRO0lBQ04sbUJBOVlVO0VoQ3E0RVo7RWdDbi9EQTtJQUNFLG1CQW5aVTtFaEN3NEVaO0VnQzM2RE07SUFsR04sZUFBZTtJQUNmLFcvQnRJMEI7SStCdUkxQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0VoQ2doRW5CO0VnQzFnRUE7SUFDRSxhQUFhO0VoQzRnRWY7RWdDeGdFQTtJQUNFLGVBQWU7RWhDMGdFakI7RWdDdmdFUTtJQUNOLGlCQTlZVTtFaEN1NUVaO0VnQ3JnRUE7SUFDRSxpQkFuWlU7RWhDMDVFWjtFZ0N6N0RNO0lBdEdOLGVBQWU7SUFDZixXL0J0STBCO0krQnVJMUIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtFaENraUVuQjtFZ0M1aEVBO0lBQ0UsYUFBYTtFaEM4aEVmO0VnQzFoRUE7SUFDRSxlQUFlO0VoQzRoRWpCO0VnQ3poRVE7SUFDTixvQkE5WVU7RWhDeTZFWjtFZ0N2aEVBO0lBQ0Usb0JBblpVO0VoQzQ2RVo7QUFDRjs7QWlCeHdFUTtFZXVVQTtJQW5GTixtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLGlCQUFpQjtJQUNqQixnQkFBZ0I7RWhDeWhFaEI7RWdDdGhFQTtJQUlFLGdCQUFnQjtJQUNoQixlQUFlO0VoQ3FoRWpCO0VnQ2xoRUE7SUFDRSxhQUFhO0VoQ29oRWY7QUFDRjs7QWlCM3hFUTtFZXVVQTtJQW5GTixtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLGlCQUFpQjtJQUNqQixnQkFBZ0I7RWhDNGlFaEI7RWdDemlFQTtJQUlFLGdCQUFnQjtJQUNoQixlQUFlO0VoQ3dpRWpCO0VnQ3JpRUE7SUFDRSxhQUFhO0VoQ3VpRWY7QUFDRjs7QWlDcjlFRTtFQUNFLHNCQUFzQjtBakN3OUUxQjs7QWlDcjlFRTtFQUNFLHVCQUF1QjtBakN3OUUzQjs7QWlDcjlFRTtFQUNFLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsaUJBQWlCO0FqQ3c5RXJCOztBS24wRUU7RUFFRSxjQUFjO0VBQ2QsWUFBWTtFQUdWLGFBQWE7RUFDYixRQUFRO0FMbTBFZDs7QUsvekVFO0VBQ0UsV0FBVztBTGswRWY7O0FrQ3g4RUU7RUE3QkEsc0JBQXNCO0VBQ3RCLDZCQUE2QjtFQUM3Qiw0QkFBNEI7RUFDNUIsd0NBQXdDO0VBQ3hDLG9CQUFvQjtBbEN5K0V0Qjs7QWtDNThFRTtFQXJCQSwwQkFBMEI7RUFDMUIsMkJBQTJCO0VBQzNCLHVCQWxCZ0M7RUFtQmhDLDhCQUE4QjtBbENxK0VoQzs7QWtDLzhFRTtFQWpCQSw4QkFBOEI7QWxDbytFaEM7O0FrQy84RUU7RUFoQkEsZ0NBQWdDO0FsQ20rRWxDOztBbUNsL0VJO0VBTEYsb0NBQTBDO0FuQzIvRTVDOztBbUN0L0VJO0VBTEYsb0NBQTBDO0FuQysvRTVDOztBbUMxL0VJO0VBTEYscUNBQTBDO0FuQ21nRjVDOztBb0M5L0VJO0VBTEYsb0NBQXVDO0FwQ3VnRnpDOztBb0NsZ0ZJO0VBTEYscUNBQXVDO0FwQzJnRnpDOztBb0N0Z0ZJO0VBTEYsd0NBQXVDO0FwQytnRnpDOztBcUNoL0VFO0VBekJBLHVCN0IyRHVEO0FSazlFekQ7O0FxQ2gvRUU7RUFyQkEsbUJqQytDMkI7QUowOUU3Qjs7QXFDaC9FRTtFQWpCQSxpQmpDMkN1QjtBSjA5RXpCOztBcUNoL0VFO0VBaEJBLDZCQUE2QjtBckNvZ0YvQjs7QXNDdmdGSTtFQVhGLGdDQUFpRDtBdENzaEZuRDs7QXNDM2dGSTtFQVhGLGtDQUFpRDtBdEMwaEZuRDs7QXNDL2dGSTtFQVhGLGtDQUFpRDtBdEM4aEZuRDs7QXNDNS9FSTtFQTVCRixtQ0FBK0M7QXRDNGhGakQ7O0FzQ2hnRkk7RUE1QkYsdUNBQStDO0F0Q2dpRmpEOztBc0NwZ0ZJO0VBNUJGLHVDQUErQztBdENvaUZqRDs7QXNDeGdGSTtFQTVCRix1Q0FBK0M7QXRDd2lGakQ7O0FzQzVnRkk7RUE1QkYsdUNBQStDO0F0QzRpRmpEOztBc0NoaEZJO0VBNUJGLHVDQUErQztBdENnakZqRDs7QXNDcGhGSTtFQTVCRix1Q0FBK0M7QXRDb2pGakQ7O0F1Q2hrRkU7RUFKQSxnQ0FBZ0M7QXZDd2tGbEM7O0F1Q3BrRkU7RUFKQSxnQ0FBZ0M7QXZDNGtGbEM7O0F1Q3hrRkU7RUFNTSxrQkFBa0I7QXZDc2tGMUI7O0F1Q2prRkU7RUFwQkEsd0IvQm1FdUQ7QVJzaEZ6RDs7QXdDemtGRTtFQUpBLCtCdkN5SW1CO0FEdzhFckI7O0F5Q3hsRkU7RUFKQSwyQ3hDNk5rRDtBRG00RXBEOztBMEMzbEZJO0VyQ2VGLGNBQWM7RUFDZCxRQUFRO0VBQ1IsU0FBUztFQUVULHVCcUMzQjhCO0VyQzZCOUIsV0FBVztFQUdULHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsNkNBQXFEO0FMNGtGekQ7O0EwQ3RtRkk7RXJDZUYsY0FBYztFQUNkLFFBQVE7RUFDUixTQUFTO0VBRVQsdUJxQzNCOEI7RXJDNkI5QixXQUFXO0VBUVQsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMxQiw2Q0prSFc7QURnK0VmOztBMENqbkZJO0VyQ2VGLGNBQWM7RUFDZCxRQUFRO0VBQ1IsU0FBUztFQUVULHVCcUMzQjhCO0VyQzZCOUIsV0FBVztFQWFULHFCQUFxQjtFQUNyQix3QkFBd0I7RUFDeEIseURKNkdXO0FEMitFZjs7QTBDNW5GSTtFckNlRixjQUFjO0VBQ2QsUUFBUTtFQUNSLFNBQVM7RUFFVCx1QnFDM0I4QjtFckM2QjlCLFdBQVc7RUFrQlQsb0JBQW9CO0VBQ3BCLHlCQUF5QjtFQUN6Qix5REFBaUU7QUw4bEZyRTs7QTJDam1GQztFQXBCQyw2QkFBNkI7QTNDeW5GL0I7O0FLNy9FRTtFQUVFLGNBQWM7RUFDZCxZQUFZO0VBR1YsYUFBYTtFQUNiLFFBQVE7QUw2L0VkOztBS3ovRUU7RUFDRSxXQUFXO0FMNC9FZjs7QUs3L0VFO0V1QzlJQSw2QkFBOEI7RURZNUIsV0E1QjRCO0VBNkI1QixxQzFDcUdvQjtFMENwR3BCLHFCQUFtQjtBM0Nvb0Z2Qjs7QTJDbm5GRTtFQXhCQSwyQkFBNkI7QTNDK29GL0I7O0FLbmhGRTtFQUVFLGNBQWM7RUFDZCxZQUFZO0VBR1YsYUFBYTtFQUNiLFFBQVE7QUxtaEZkOztBSy9nRkU7RUFDRSxXQUFXO0FMa2hGZjs7QUtuaEZFO0V1QzlJQSw2QkFBOEI7RURZNUIsV0E1QjRCO0VBNkI1QixxQzFDcUdvQjtFMENwR3BCLHFCQUFtQjtFQUdqQix5QkFBeUI7QTNDd3BGL0I7O0EyQ3RvRkU7RUE1QkEsNEJBQTZCO0EzQ3NxRi9COztBSzFpRkU7RUFFRSxjQUFjO0VBQ2QsWUFBWTtFQUdWLGFBQWE7RUFDYixRQUFRO0FMMGlGZDs7QUt0aUZFO0VBQ0UsV0FBVztBTHlpRmY7O0FLMWlGRTtFdUM5SUEsNkJBQThCO0VEWTVCLFdBNUI0QjtFQTZCNUIscUMxQ3FHb0I7RTBDcEdwQixxQkFBbUI7RUFPakIsMEJBQTBCO0EzQzJxRmhDOztBNkM5ckZJO0VBakJGLDRCQUE4QjtBN0NtdEZoQzs7QTZDL3JGSTtFQWRGLDhCQUFnQztBN0NpdEZsQzs7QTZDaHNGSTtFQVhGLDhCQUFnQztBN0Mrc0ZsQzs7QTZDMXNGSTtFQWpCRiwyQkFBOEI7QTdDK3RGaEM7O0E2QzNzRkk7RUFkRiw2QkFBZ0M7QTdDNnRGbEM7O0E2QzVzRkk7RUFYRiw2QkFBZ0M7QTdDMnRGbEM7O0E2Q3R0Rkk7RUFqQkYsMkJBQThCO0E3QzJ1RmhDOztBNkN2dEZJO0VBZEYsNkJBQWdDO0E3Q3l1RmxDOztBNkN4dEZJO0VBWEYsNkJBQWdDO0E3Q3V1RmxDOztBOEM1dUZJO0VBTEYsMEJBQTRCO0E5Q3F2RjlCOztBOENodkZJO0VBTEYsZ0NBQTRCO0E5Q3l2RjlCOztBOENwdkZJO0VBTEYseUJBQTRCO0E5QzZ2RjlCOztBOEN4dkZJO0VBTEYseUJBQTRCO0E5Q2l3RjlCOztBOEM1dkZJO0VBTEYsOEJBQTRCO0E5Q3F3RjlCOztBNENwdEZJO0VBcENGLDJCQUE4QjtBNUM0dkZoQzs7QTRDeHRGSTtFQXBDRiw2QkFBOEI7QTVDZ3dGaEM7O0E0QzV0Rkk7RUFwQ0YsNkJBQThCO0E1Q293RmhDOztBNENodUZJO0VBcENGLDBCQUE4QjtBNUN3d0ZoQzs7QTRDOXRGRTtFQTFDQSwwQkFBOEI7RUFFNUIsb0JBQXVDO0VBR3ZDLHNCQUEyQztFQU0zQyxxQkFBeUM7RUFVM0MsWUFwQzhCO0E1Qyt4RmhDOztBNENudUZFO0VBN0NBLDBCQUE4QjtFQUs1QixzQkFBMkM7RUFHM0MsdUJBQTZDO0VBRzdDLHFCQUF5QztFQW1CM0MsWUE3QzhCO0E1Q3V5RmhDOztBK0M1eUZFO0VBSkEsaUNBQWlDO0EvQ296Rm5DOztBZ0RoekZFO0VBSkEsdUJBQXVCO0FoRHd6RnpCOztBaUQ1eEZNO0VBQ0UscUJBQWtDO0FqRCt4RjFDOztBaURoeUZNO0VBQ0UscUJBQWtDO0FqRG15RjFDOztBaURweUZNO0VBQ0UscUJBQWtDO0FqRHV5RjFDOztBaUR4eUZNO0VBQ0Usc0JBQWtDO0FqRDJ5RjFDOztBaUQ1eUZNO0VBQ0Usc0JBQWtDO0FqRCt5RjFDOztBaURoekZNO0VBQ0Usc0JBQWtDO0FqRG16RjFDOztBaURwekZNO0VBQ0Usc0JBQWtDO0FqRHV6RjFDOztBaUR4ekZNO0VBQ0UsdUJBQWtDO0FqRDJ6RjFDOztBaURyekZFO0VBbkJBLDBCQUEwQjtBakQ0MEY1Qjs7QWlEdHpGRTtFQWpCQSwyQkFBMkI7QWpEMjBGN0I7O0FrRHZ2Rk07RUFFSSx1QkFBMkM7QWxEeXZGckQ7O0FrRGh2RlE7RUF0R0osMkJBQTRDO0FsRDAxRmhEOztBa0RwdkZRO0VBbkdKLDZCQUFnRDtBbEQyMUZwRDs7QWtEeHZGUTtFQWhHSiw4QkFBa0Q7QWxENDFGdEQ7O0FrRDV2RlE7RUE3RkosNEJBQThDO0FsRDYxRmxEOztBa0Rod0ZRO0VBbkdKLDZCQUFnRDtFQU1oRCw0QkFBOEM7QWxEazJGbEQ7O0FrRHJ3RlE7RUF0R0osMkJBQTRDO0VBTTVDLDhCQUFrRDtBbEQwMkZ0RDs7QWtEcnhGTTtFQUtJLHdCQUE2QztBbERveEZ2RDs7QWtEOXdGUTtFQTdFSiw0QkFBOEM7QWxEKzFGbEQ7O0FrRGx4RlE7RUExRUosOEJBQWtEO0FsRGcyRnREOztBa0R0eEZRO0VBdkVKLCtCQUFvRDtBbERpMkZ4RDs7QWtEMXhGUTtFQXBFSiw2QkFBZ0Q7QWxEazJGcEQ7O0FrRDl4RlE7RUExRUosOEJBQWtEO0VBTWxELDZCQUFnRDtBbER1MkZwRDs7QWtEbnlGUTtFQTdFSiw0QkFBOEM7RUFNOUMsK0JBQW9EO0FsRCsyRnhEOztBa0RuekZNO0VBRUkseUJBQTJDO0FsRHF6RnJEOztBa0Q1eUZRO0VBdEdKLDZCQUE0QztBbERzNUZoRDs7QWtEaHpGUTtFQW5HSiwrQkFBZ0Q7QWxEdTVGcEQ7O0FrRHB6RlE7RUFoR0osZ0NBQWtEO0FsRHc1RnREOztBa0R4ekZRO0VBN0ZKLDhCQUE4QztBbER5NUZsRDs7QWtENXpGUTtFQW5HSiwrQkFBZ0Q7RUFNaEQsOEJBQThDO0FsRDg1RmxEOztBa0RqMEZRO0VBdEdKLDZCQUE0QztFQU01QyxnQ0FBa0Q7QWxEczZGdEQ7O0FrRGoxRk07RUFLSSwwQkFBNkM7QWxEZzFGdkQ7O0FrRDEwRlE7RUE3RUosOEJBQThDO0FsRDI1RmxEOztBa0Q5MEZRO0VBMUVKLGdDQUFrRDtBbEQ0NUZ0RDs7QWtEbDFGUTtFQXZFSixpQ0FBb0Q7QWxENjVGeEQ7O0FrRHQxRlE7RUFwRUosK0JBQWdEO0FsRDg1RnBEOztBa0QxMUZRO0VBMUVKLGdDQUFrRDtFQU1sRCwrQkFBZ0Q7QWxEbTZGcEQ7O0FrRC8xRlE7RUE3RUosOEJBQThDO0VBTTlDLGlDQUFvRDtBbEQyNkZ4RDs7QWtELzJGTTtFQUVJLHVCQUEyQztBbERpM0ZyRDs7QWtEeDJGUTtFQXRHSiwyQkFBNEM7QWxEazlGaEQ7O0FrRDUyRlE7RUFuR0osNkJBQWdEO0FsRG05RnBEOztBa0RoM0ZRO0VBaEdKLDhCQUFrRDtBbERvOUZ0RDs7QWtEcDNGUTtFQTdGSiw0QkFBOEM7QWxEcTlGbEQ7O0FrRHgzRlE7RUFuR0osNkJBQWdEO0VBTWhELDRCQUE4QztBbEQwOUZsRDs7QWtENzNGUTtFQXRHSiwyQkFBNEM7RUFNNUMsOEJBQWtEO0FsRGsrRnREOztBa0Q3NEZNO0VBS0ksd0JBQTZDO0FsRDQ0RnZEOztBa0R0NEZRO0VBN0VKLDRCQUE4QztBbER1OUZsRDs7QWtEMTRGUTtFQTFFSiw4QkFBa0Q7QWxEdzlGdEQ7O0FrRDk0RlE7RUF2RUosK0JBQW9EO0FsRHk5RnhEOztBa0RsNUZRO0VBcEVKLDZCQUFnRDtBbEQwOUZwRDs7QWtEdDVGUTtFQTFFSiw4QkFBa0Q7RUFNbEQsNkJBQWdEO0FsRCs5RnBEOztBa0QzNUZRO0VBN0VKLDRCQUE4QztFQU05QywrQkFBb0Q7QWxEdStGeEQ7O0FrRDM2Rk07RUFFSSx5QkFBMkM7QWxENjZGckQ7O0FrRHA2RlE7RUF0R0osNkJBQTRDO0FsRDhnR2hEOztBa0R4NkZRO0VBbkdKLCtCQUFnRDtBbEQrZ0dwRDs7QWtENTZGUTtFQWhHSixnQ0FBa0Q7QWxEZ2hHdEQ7O0FrRGg3RlE7RUE3RkosOEJBQThDO0FsRGloR2xEOztBa0RwN0ZRO0VBbkdKLCtCQUFnRDtFQU1oRCw4QkFBOEM7QWxEc2hHbEQ7O0FrRHo3RlE7RUF0R0osNkJBQTRDO0VBTTVDLGdDQUFrRDtBbEQ4aEd0RDs7QWtEejhGTTtFQUtJLDBCQUE2QztBbER3OEZ2RDs7QWtEbDhGUTtFQTdFSiw4QkFBOEM7QWxEbWhHbEQ7O0FrRHQ4RlE7RUExRUosZ0NBQWtEO0FsRG9oR3REOztBa0QxOEZRO0VBdkVKLGlDQUFvRDtBbERxaEd4RDs7QWtEOThGUTtFQXBFSiwrQkFBZ0Q7QWxEc2hHcEQ7O0FrRGw5RlE7RUExRUosZ0NBQWtEO0VBTWxELCtCQUFnRDtBbEQyaEdwRDs7QWtEdjlGUTtFQTdFSiw4QkFBOEM7RUFNOUMsaUNBQW9EO0FsRG1pR3hEOztBbUQ5aEdFO0VBQ0Usd0JBQXdCO0FuRGlpRzVCOztBbUQ5aEdFO0VBQ0Usa0JBQWtCO0FuRGlpR3RCOztBaUJ0N0ZRO0VrQzVGSjtJQTFCQSx3QkFBd0I7RW5EaWpHMUI7QUFDRjs7QW1EcmtHSTtFQWlEQTtJQWhERSx3QkFBd0I7RW5EeWtHNUI7QUFDRjs7QWlCbDhGUTtFa0NyR0Y7SUF6QkYsd0JBQXdCO0VuRHFrRzFCO0FBQ0Y7O0FpQm44RlE7RWtDdEdGO0lBakVGLHdCQUF3QjtFbkQrbUcxQjtBQUNGOztBaUI5OEZRO0VrQzVGSjtJQTFCQSx3QkFBd0I7RW5EeWtHMUI7QUFDRjs7QW1EN2xHSTtFQWlEQTtJQWhERSx3QkFBd0I7RW5EaW1HNUI7QUFDRjs7QWlCMTlGUTtFa0NyR0Y7SUF6QkYsd0JBQXdCO0VuRDZsRzFCO0FBQ0Y7O0FpQjM5RlE7RWtDdEdGO0lBakVGLHdCQUF3QjtFbkR1b0cxQjtBQUNGOztBaUJ0K0ZRO0VrQzVGSjtJQTFCQSx3QkFBd0I7RW5EaW1HMUI7QUFDRjs7QW1Ecm5HSTtFQWlEQTtJQWhERSx3QkFBd0I7RW5EeW5HNUI7QUFDRjs7QW1EbmtHRTs7RTlDeUhBLDZCQUFnQztFQUNoQyxxQkFBd0I7RUFDeEIsc0JBQXlCO0VBQ3pCLHFCQUF3QjtFQUN4QiwyQkFBOEI7RUFDOUIsaUNBQWlDO0VBQ2pDLDhCQUFpQztFQUNqQyxvQkFBdUI7QUwrOEZ6Qjs7QW1EemtHRTtFOUNvSUEsMkJBQThCO0VBQzlCLHNCQUF5QjtFQUN6Qix1QkFBMEI7RUFDMUIsNEJBQStCO0VBQy9CLHFCQUF3QjtFQUN4Qiw4QkFBaUM7QUx5OEZuQzs7QW1EMWtHRTs7RUFFRSx5QkFBeUI7QW5ENmtHN0I7O0FpQnZnR1E7RWtDeEVOOztJQUtJLHlCQUF5QjtFbkRnbEc3QjtBQUNGOztBaUI5Z0dRO0VrQ3hFTjs7SUFTSSx3QkFBd0I7RW5EbWxHNUI7QUFDRjs7QW1EaGxHRTs7RUFFRSx3QkFBd0I7QW5EbWxHNUI7O0FpQjFoR1E7RWtDM0ROOztJQUtJLHdCQUF3QjtFbkRzbEc1QjtBQUNGOztBaUJqaUdRO0VrQzNETjs7SUFTSSx5QkFBeUI7RW5EeWxHN0I7QUFDRjs7QW9EN3RHQTs7bURwRGl1R21EO0FvRHh0R25ELG1EQUFBO0FDVEE7OzJDckRxdUcyQztBcUR2cUczQywyQ0FBQTtBQzlEQTs7NEN0RHl1RzRDO0FzRHR1RzVDOzs7Q3REMHVHQztBc0Ruc0dELDRDQUFBO0FDMUNBOzswQ3ZEaXZHMEM7QXVEdnVHMUMsMENBQUE7QUNWQTs7OztFeER1dkdFO0F5RHZ2R0Y7O3lDekQwdkd5QztBeUR0dkd6QztFQzZGRSxnQmxEVHVEO0VrRDFCckQsa0JBQWtCO0VBQ2xCLGlCQUFpQjtFUkpqQiwrQkFBb0Q7QWxEcXNHeEQ7O0FLdmxHRTtFQUVFLGNBQWM7RUFDZCxZQUFZO0VBR1YsYUFBYTtFQUNiLFFBQVE7QUx1bEdkOztBS25sR0U7RUFDRSxXQUFXO0FMc2xHZjs7QXlEdndHQTtFRVVFLFcvQm1JMkQ7RWdDbkgzRCxXeEQ0RnlEO0V5RHBHdkQsdUJBRnFDO0VBR3JDLHNCQUhxQztFWHVDckMsaUNBQW9EO0FsRHd0R3hEOztBaUJubUdRO0V3QzVLUjtJSWtCSSx3QkFGcUM7SUFHckMsdUJBSHFDO0U3RHF3R3ZDO0FBQ0Y7O0E4RHZ3R0k7RUFDRSxXMURzR3FEO0UwRHJHckQsV0FBVztBOUQwd0dqQjs7QThEcndHTTtFQUNFLFkxRGdHb0Q7QUp3cUc1RDs7QXlEL3hHQTtFRVVFLFcvQm1JMkQ7RWdDbkgzRCxXeEQ0RnlEO0V5RHBHdkQsdUJBRnFDO0VBR3JDLHNCQUhxQztBN0RzeEd6Qzs7QWlCMW5HUTtFd0M1S1I7SUlrQkksd0JBRnFDO0lBR3JDLHVCQUhxQztFN0Q0eEd2QztBQUNGOztBOEQ5eEdJO0VBQ0UsVzFEc0dxRDtFMERyR3JELFdBQVc7QTlEaXlHakI7O0E4RDV4R007RUFDRSxZMURnR29EO0FKK3JHNUQ7O0F5RHR6R0E7RU1ERSxrRjlEb0JzRjtFOERuQnRGLGV2RG9GdUQ7RXVERnZELGdCOURvQjZCO0FEc3RHL0I7O0FpQmhwR1E7RXdDNUtSO0lNRUksZXZEa0ZxRDtFUjZ1R3ZEO0FBQ0Y7O0FpQnRwR1E7RXdDNUtSO0lFVUUsZ0IvQm1JMkQ7SWdDbkgzRCxXeEQ0RnlEO0l5RHBHdkQsdUJBRnFDO0lBR3JDLHNCQUhxQztJQzBCckMsa0JBQWtCO0lBQ2xCLGlCQUFpQjtFOURpeUduQjtBQUNGOztBaUJqcUdRO0V3QzVLUjtJSWtCSSx3QkFGcUM7SUFHckMsdUJBSHFDO0U3RG0wR3ZDO0FBQ0Y7O0FpQnhxR1E7RTZDN0pKO0lBQ0UsVzFEc0dxRDtJMERyR3JELFdBQVc7RTlEeTBHZjtFOERwMEdJO0lBQ0UsWTFEZ0dvRDtFSnN1RzFEO0U4RDkwR0U7SUF3QkUsV0FBVztJQUNYLFdBQVc7RTlEeXpHZjtFeURqMkdGO0lFVUUsZ0IvQm1JMkQ7SWdDbkgzRCxXeEQ0RnlEO0l5RHBHdkQsdUJBRnFDO0lBR3JDLHNCQUhxQztJQzBCckMsa0JBQWtCO0lBQ2xCLGlCQUFpQjtFOUQ4ekduQjtBQUNGOztBaUI5ckdRO0V3QzVLUjtJSWtCSSx3QkFGcUM7SUFHckMsdUJBSHFDO0U3RGcyR3ZDO0FBQ0Y7O0FpQnJzR1E7RTZDN0pKO0lBQ0UsVzFEc0dxRDtJMERyR3JELFdBQVc7RTlEczJHZjtFOERqMkdJO0lBQ0UsWTFEZ0dvRDtFSm13RzFEO0U4RDMyR0U7SUF3QkUsV0FBVztJQUNYLFdBQVc7RTlEczFHZjtBQUNGOztBaUJudEdRO0V3QzVLUjtJRVVFLGdCL0JtSTJEO0lnQ25IM0QsV3hENEZ5RDtJeURwR3ZELHVCQUZxQztJQUdyQyxzQkFIcUM7SUMwQnJDLGtCQUFrQjtJQUNsQixpQkFBaUI7RTlEODFHbkI7QUFDRjs7QWlCOXRHUTtFd0M1S1I7SUlrQkksd0JBRnFDO0lBR3JDLHVCQUhxQztFN0RnNEd2QztBQUNGOztBaUJydUdRO0U2QzdKSjtJQUNFLFcxRHNHcUQ7STBEckdyRCxXQUFXO0U5RHM0R2Y7RThEajRHSTtJQUNFLFkxRGdHb0Q7RUpteUcxRDtFOEQzNEdFO0lBd0JFLFdBQVc7SUFDWCxXQUFXO0U5RHMzR2Y7RXlEOTVHRjtJRVVFLGdCL0JtSTJEO0lnQ25IM0QsV3hENEZ5RDtJeURwR3ZELHVCQUZxQztJQUdyQyxzQkFIcUM7SUMwQnJDLGtCQUFrQjtJQUNsQixpQkFBaUI7RTlEMjNHbkI7QUFDRjs7QWlCM3ZHUTtFd0M1S1I7SUlrQkksd0JBRnFDO0lBR3JDLHVCQUhxQztFN0Q2NUd2QztBQUNGOztBaUJsd0dRO0U2QzdKSjtJQUNFLFcxRHNHcUQ7STBEckdyRCxXQUFXO0U5RG02R2Y7RThEOTVHSTtJQUNFLFkxRGdHb0Q7RUpnMEcxRDtFOER4NkdFO0lBd0JFLFdBQVc7SUFDWCxXQUFXO0U5RG01R2Y7QUFDRjs7QXlEdDRHQSx5Q0FBQTtBTzFEQTs7MkNoRXE4RzJDO0FnRWw4RzNDO0VBRUksbUJBQW1CO0VBQ25CLFdBQVc7RUFDWCxTQUFTO0VBQ1QsVUFBVTtFQUNWLGdCQUFnQjtFQUNoQixZQUFZO0FoRW04R2hCOztBZ0UxOEdBO0VBVU0sMkJBQTJCO0VBQzNCLDRCQUE0QjtBaEVvOEdsQzs7QWdFLzhHQTtFTFdFLGdCL0JtSTJEO0VnQ25IM0QsV3hENEZ5RDtFeURwR3ZELHVCQUZxQztFQUdyQyxzQkFIcUM7RUlTdkMsYUFBYTtFQTBCYix5QkFwRDBEO0VBcUQxRCxtQkF4Q2dCO0VESVYsY0FBYztBaEV5OEd0Qjs7QWlCN3lHUTtFK0M3S1I7SUhtQkksd0JBRnFDO0lBR3JDLHVCQUhxQztFN0QrOEd2QztBQUNGOztBOERqOUdJO0VBQ0UsVzFEc0dxRDtFMERyR3JELFdBQVc7QTlEbzlHakI7O0E4RC84R007RUFDRSxZMURnR29EO0FKazNHNUQ7O0FnRTErR0E7RUFvQlUsWUFBWTtFQUNaLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIsaUJBQWlCO0FoRTA5RzNCOztBZ0VuOUdBO0VBQ0UseUIvRDBJYTtFeUQzRWIsZ0JsRFR1RDtFa0QxQnJELGtCQUFrQjtFQUNsQixpQkFBaUI7RVJWakIsOEJBQThDO0VBTTlDLGlDQUFvRDtBbERrOEd4RDs7QUtwMUdFO0VBRUUsY0FBYztFQUNkLFlBQVk7RUFHVixhQUFhO0VBQ2IsUUFBUTtBTG8xR2Q7O0FLaDFHRTtFQUNFLFdBQVc7QUxtMUdmOztBZ0V2K0dBO0VMbkJFLGdCL0JtSTJEO0VnQ25IM0QsV3hENEZ5RDtFeURwR3ZELHVCQUZxQztFQUdyQyxzQkFIcUM7QTdEMi9HekM7O0FpQi8xR1E7RStDL0lSO0lIWEksd0JBRnFDO0lBR3JDLHVCQUhxQztFN0RpZ0h2QztBQUNGOztBOERuZ0hJO0VBQ0UsVzFEc0dxRDtFMERyR3JELFdBQVc7QTlEc2dIakI7O0E4RGpnSE07RUFDRSxZMURnR29EO0FKbzZHNUQ7O0FnRTkvR0E7RUFrQkksYUFBYTtBaEVnL0dqQjs7QWdFbGdIQTtFTG5CRSxnQi9CbUkyRDtFZ0NuSDNELFd4RDRGeUQ7RXlEcEd2RCx1QkFGcUM7RUFHckMsc0JBSHFDO0VJbUN2Qyx5QkFwRDBEO0VBcUQxRCxtQkF4Q2dCO0VmcUNkLGdDQUE4QztFY0s5QyxhQUFhO0FoRW8vR2pCOztBaUI5M0dRO0UrQy9JUjtJSFhJLHdCQUZxQztJQUdyQyx1QkFIcUM7RTdEZ2lIdkM7QUFDRjs7QThEbGlISTtFQUNFLFcxRHNHcUQ7RTBEckdyRCxXQUFXO0E5RHFpSGpCOztBOERoaUhNO0VBQ0UsWTFEZ0dvRDtBSm04RzVEOztBZ0U3aEhBO0VBNkJNLGlCQUFpQjtFQUNqQixjQUFjO0FoRW9nSHBCOztBZ0VsaUhBO0VBZ0NRLGVBQWU7RWRIbkIsZ0NBQWdEO0FsRDBnSHBEOztBZ0V2aUhBO0VFakJFLGNqRTZKYTtBRCs1R2Y7O0FrRTFqSEk7RUFDRSxjakUwSlM7QURtNkdmOztBa0UzakhJO0VBQ0UsY2pFdUpTO0FEdTZHZjs7QWtFNWpISTtFQUNFLGNqRStIa0I7QURnOEd4Qjs7QWtFN2pISTtFQUNFLGNqRWlKUztBRCs2R2Y7O0FnRTNqSEE7RUQ5QkUsa0Y5RG9Cc0Y7RThEbkJ0RixtQnZEb0Z1RDtFdURidkQsZ0I5RGlDNkI7QURzL0cvQjs7QWlCbDdHUTtFK0MvSVI7SUQzQkksb0J2RGtGcUQ7RVIrZ0h2RDtBQUNGOztBaUJ4N0dRO0UrQy9JUjtJQ0pFLGFBQWE7RWpFZ2xIYjtBQUNGOztBZ0U1aEhBLDJDQUFBO0FHbEZBOzt3RG5FbW5Id0Q7QW1FL21IeEQ7RVQ2RkUsZ0JsRFR1RDtFa0QxQnJELGtCQUFrQjtFQUNsQixpQkFBaUI7QTFEeWpIckI7O0FLLzhHRTtFQUVFLGNBQWM7RUFDZCxZQUFZO0VBR1YsYUFBYTtFQUNiLFFBQVE7QUwrOEdkOztBSzM4R0U7RUFDRSxXQUFXO0FMODhHZjs7QW1FL25IQTtFUlVFLFcvQm1JMkQ7RWdDbkgzRCxXeEQ0RnlEO0V5RHBHdkQsdUJBRnFDO0VBR3JDLHNCQUhxQztBN0Rzbkh6Qzs7QWlCMTlHUTtFa0Q1S1I7SU5rQkksd0JBRnFDO0lBR3JDLHVCQUhxQztFN0Q0bkh2QztBQUNGOztBOEQ5bkhJO0VBQ0UsVzFEc0dxRDtFMERyR3JELFdBQVc7QTlEaW9IakI7O0E4RDVuSE07RUFDRSxZMURnR29EO0FKK2hINUQ7O0FtRXRwSEE7RUFPSSxrQkFBa0I7QW5FbXBIdEI7O0FtRTFwSEE7RUFVTSxhQUFhO0VBUWIsa0JBQWtCO0FuRTZvSHhCOztBbUUvcEhBO0VBYVEsWUFBWTtFQUNaLG9CQUFpQjtLQUFqQixpQkFBaUI7RUFDakIsY0FBYztBbkVzcEh0Qjs7QW1FcnFIQTtFQXNCTSxrQkFBa0I7QW5FbXBIeEI7O0FtRTlvSEEsd0RBQUE7QUMvQkE7O3dEcEVrckh3RDtBb0U5cUh4RDtFVjZGRSxnQmxEVHVEO0VrRDFCckQsa0JBQWtCO0VBQ2xCLGlCQUFpQjtBMUR3bkhyQjs7QUs5Z0hFO0VBRUUsY0FBYztFQUNkLFlBQVk7RUFHVixhQUFhO0VBQ2IsUUFBUTtBTDhnSGQ7O0FLMWdIRTtFQUNFLFdBQVc7QUw2Z0hmOztBb0U5ckhBO0VUVUUsVy9CbUkyRDtFZ0NuSDNELFd4RDRGeUQ7RXlEcEd2RCx1QkFGcUM7RUFHckMsc0JBSHFDO0E3RHFySHpDOztBaUJ6aEhRO0VtRDVLUjtJUGtCSSx3QkFGcUM7SUFHckMsdUJBSHFDO0U3RDJySHZDO0FBQ0Y7O0E4RDdySEk7RUFDRSxXMURzR3FEO0UwRHJHckQsV0FBVztBOURnc0hqQjs7QThEM3JITTtFQUNFLFkxRGdHb0Q7QUo4bEg1RDs7QW9FcnRIQTtFQVFNLGFBQWE7QXBFaXRIbkI7O0FvRXp0SEE7RUFXUSxZQUFZO0VBQ1osb0JBQWlCO0tBQWpCLGlCQUFpQjtFQUNqQixjQUFjO0FwRWt0SHRCOztBaUJuakhRO0VtRDVLUjtJQXFCUSxhQUFhO0VwRStzSG5CO0FBQ0Y7O0FpQnpqSFE7RW1ENUtSO0lBNEJRLGFBQWE7RXBFOHNIbkI7QUFDRjs7QW9FenNIQSx3REFBQTtBQ3RDQTs7OENyRW92SDhDO0FxRWh2SDlDO0VYNkZFLGdCbERUdUQ7RWtEMUJyRCxrQkFBa0I7RUFDbEIsaUJBQWlCO0VSVmpCLDRCQUE4QztFQU05QywrQkFBb0Q7QWxEZ3NIeEQ7O0FLbGxIRTtFQUVFLGNBQWM7RUFDZCxZQUFZO0VBR1YsYUFBYTtFQUNiLFFBQVE7QUxrbEhkOztBSzlrSEU7RUFDRSxXQUFXO0FMaWxIZjs7QXFFbHdIQTtFbkJ1REksK0JBQW9EO0FsRCtzSHhEOztBcUV0d0hBO0VWVUUsVy9CbUkyRDtFZ0NuSDNELFd4RDRGeUQ7RXlEcEd2RCx1QkFGcUM7RUFHckMsc0JBSHFDO0VDMEJyQyxrQkFBa0I7RUFDbEIsaUJBQWlCO0E5RG91SHJCOztBaUJubUhRO0VvRDVLUjtJUmtCSSx3QkFGcUM7SUFHckMsdUJBSHFDO0U3RHF3SHZDO0FBQ0Y7O0E4RHZ3SEk7RUFDRSxXMURzR3FEO0UwRHJHckQsV0FBVztBOUQwd0hqQjs7QThEcndITTtFQUNFLFkxRGdHb0Q7QUp3cUg1RDs7QThEaHhISTtFQXdCRSxXQUFXO0VBQ1gsV0FBVztBOUQ0dkhqQjs7QWlCeG5IUTtFb0Q1S1I7SVZVRSxVL0JtSTJEO0lnQ25IM0QsV3hENEZ5RDtJeURwR3ZELHVCQUZxQztJQUdyQyxzQkFIcUM7SUMwQnJDLGtCQUFrQjtJQUNsQixpQkFBaUI7RTlEbXdIbkI7QUFDRjs7QWlCbm9IUTtFb0Q1S1I7SVJrQkksd0JBRnFDO0lBR3JDLHVCQUhxQztFN0RxeUh2QztBQUNGOztBaUIxb0hRO0U2QzdKSjtJQUNFLFcxRHNHcUQ7STBEckdyRCxXQUFXO0U5RDJ5SGY7RThEdHlISTtJQUNFLFkxRGdHb0Q7RUp3c0gxRDtFOERoekhFO0lBd0JFLFdBQVc7SUFDWCxXQUFXO0U5RDJ4SGY7QUFDRjs7QWlCeHBIUTtFb0Q1S1I7SVZVRSxVL0JtSTJEO0lnQ25IM0QsV3hENEZ5RDtJeURwR3ZELHVCQUZxQztJQUdyQyxzQkFIcUM7SUMwQnJDLGtCQUFrQjtJQUNsQixpQkFBaUI7RTlEbXlIbkI7QUFDRjs7QWlCbnFIUTtFb0Q1S1I7SVJrQkksd0JBRnFDO0lBR3JDLHVCQUhxQztFN0RxMEh2QztBQUNGOztBaUIxcUhRO0U2QzdKSjtJQUNFLFcxRHNHcUQ7STBEckdyRCxXQUFXO0U5RDIwSGY7RThEdDBISTtJQUNFLFkxRGdHb0Q7RUp3dUgxRDtFOERoMUhFO0lBd0JFLFdBQVc7SUFDWCxXQUFXO0U5RDJ6SGY7QUFDRjs7QXFFcjBIQSw4Q0FBQTtBQ25DQTs7K0N0RTYySCtDO0FzRXoySC9DO0VBRVEsV0FBVztFQUNYLGNBQWM7RUFDZCxXQUFXO0F0RTAySG5COztBc0V0MkhBLCtDQUFBO0FDWEE7RWJnR0UsZ0JsRFR1RDtFa0QxQnJELGtCQUFrQjtFQUNsQixpQkFBaUI7RVJWakIsOEJBQThDO0FsRHEwSGxEOztBS2p0SEU7RUFFRSxjQUFjO0VBQ2QsWUFBWTtFQUdWLGFBQWE7RUFDYixRQUFRO0FMaXRIZDs7QUs3c0hFO0VBQ0UsV0FBVztBTGd0SGY7O0F1RXA0SEE7RVphRSxnQi9CbUkyRDtFZ0NuSDNELFd4RDRGeUQ7RXlEcEd2RCx1QkFGcUM7RUFHckMsc0JBSHFDO0E3RHczSHpDOztBaUI1dEhRO0VzRC9LUjtJVnFCSSx3QkFGcUM7SUFHckMsdUJBSHFDO0U3RDgzSHZDO0FBQ0Y7O0E4RGg0SEk7RUFDRSxXMURzR3FEO0UwRHJHckQsV0FBVztBOURtNEhqQjs7QThEOTNITTtFQUNFLFkxRGdHb0Q7QUppeUg1RDs7QXVFMzVIQTtFWmFFLGdCL0JtSTJEO0VnQ25IM0QsV3hENEZ5RDtFeURwR3ZELHVCQUZxQztFQUdyQyxzQkFIcUM7QTdEKzRIekM7O0FpQm52SFE7RXNEL0tSO0lWcUJJLHdCQUZxQztJQUdyQyx1QkFIcUM7RTdEcTVIdkM7QUFDRjs7QThEdjVISTtFQUNFLFcxRHNHcUQ7RTBEckdyRCxXQUFXO0E5RDA1SGpCOztBOERyNUhNO0VBQ0UsWTFEZ0dvRDtBSnd6SDVEOztBaUJud0hRO0VzRC9LUjtJWmFFLFUvQm1JMkQ7SWdDbkgzRCxXeEQ0RnlEO0l5RHBHdkQsdUJBRnFDO0lBR3JDLHNCQUhxQztFN0R1Nkh2QztBQUNGOztBaUI1d0hRO0VzRC9LUjtJVnFCSSx3QkFGcUM7SUFHckMsdUJBSHFDO0U3RDg2SHZDO0FBQ0Y7O0FpQm54SFE7RTZDN0pKO0lBQ0UsVzFEc0dxRDtJMERyR3JELFdBQVc7RTlEbzdIZjtFOEQvNkhJO0lBQ0UsWTFEZ0dvRDtFSmkxSDFEO0V1RTM4SEY7SVphRSxVL0JtSTJEO0lnQ25IM0QsV3hENEZ5RDtJeURwR3ZELHVCQUZxQztJQUdyQyxzQkFIcUM7RTdEODdIdkM7QUFDRjs7QWlCbnlIUTtFc0QvS1I7SVZxQkksd0JBRnFDO0lBR3JDLHVCQUhxQztFN0RxOEh2QztBQUNGOztBaUIxeUhRO0U2QzdKSjtJQUNFLFcxRHNHcUQ7STBEckdyRCxXQUFXO0U5RDI4SGY7RThEdDhISTtJQUNFLFkxRGdHb0Q7RUp3MkgxRDtBQUNGOztBd0VwK0hBOztzRHhFdytIc0Q7QXdFcCtIdEQ7RXRCdURJLGlDQUFvRDtFUzdDdEQsVy9CbUkyRDtFZ0NuSDNELFd4RDRGeUQ7RXlEcEd2RCx1QkFGcUM7RUFHckMsc0JBSHFDO0VDMEJyQyxrQkFBa0I7RUFDbEIsaUJBQWlCO0VVdkNuQixrQkFBa0I7QXhFMCtIcEI7O0FpQmwwSFE7RXVENUtSO0lYa0JJLHdCQUZxQztJQUdyQyx1QkFIcUM7RTdEbytIdkM7QUFDRjs7QThEdCtISTtFQUNFLFcxRHNHcUQ7RTBEckdyRCxXQUFXO0E5RHkrSGpCOztBOERwK0hNO0VBQ0UsWTFEZ0dvRDtBSnU0SDVEOztBOEQvK0hJO0VBd0JFLFdBQVc7RUFDWCxXQUFXO0E5RDI5SGpCOztBd0VuZ0lBO0VBT0ksNEJBQTRCO0F4RWdnSWhDOztBd0V2Z0lBO0V0QnVESSxpQ0FBb0Q7QWxEbzlIeEQ7O0F3RTNnSUE7RXRCdURJLGtDQUFvRDtBbER3OUh4RDs7QXdFL2dJQTtFYlVFLFcvQm1JMkQ7RWdDbkgzRCxXeEQ0RnlEO0V5RHBHdkQsdUJBRnFDO0VBR3JDLHNCQUhxQztFQzBCckMsa0JBQWtCO0VBQ2xCLGlCQUFpQjtBOUQ2K0hyQjs7QWlCNTJIUTtFdUQ1S1I7SVhrQkksd0JBRnFDO0lBR3JDLHVCQUhxQztFN0Q4Z0l2QztBQUNGOztBOERoaElJO0VBQ0UsVzFEc0dxRDtFMERyR3JELFdBQVc7QTlEbWhJakI7O0E4RDlnSU07RUFDRSxZMURnR29EO0FKaTdINUQ7O0E4RHpoSUk7RUF3QkUsV0FBVztFQUNYLFdBQVc7QTlEcWdJakI7O0FpQmo0SFE7RXVENUtSO0l0QnVESSwrQkFBb0Q7RWxEMi9IdEQ7RXdFbGpJRjtJYlVFLGdCL0JtSTJEO0lnQ25IM0QsV3hENEZ5RDtJeURwR3ZELHVCQUZxQztJQUdyQyxzQkFIcUM7SUMwQnJDLGtCQUFrQjtJQUNsQixpQkFBaUI7RTlEK2dJbkI7QUFDRjs7QWlCLzRIUTtFdUQ1S1I7SVhrQkksd0JBRnFDO0lBR3JDLHVCQUhxQztFN0Rpakl2QztBQUNGOztBaUJ0NUhRO0U2QzdKSjtJQUNFLFcxRHNHcUQ7STBEckdyRCxXQUFXO0U5RHVqSWY7RThEbGpJSTtJQUNFLFkxRGdHb0Q7RUpvOUgxRDtFOEQ1aklFO0lBd0JFLFdBQVc7SUFDWCxXQUFXO0U5RHVpSWY7QUFDRjs7QWlCcDZIUTtFdUQ1S1I7SWJVRSxnQi9CbUkyRDtJZ0NuSDNELFd4RDRGeUQ7SXlEcEd2RCx1QkFGcUM7SUFHckMsc0JBSHFDO0lDMEJyQyxrQkFBa0I7SUFDbEIsaUJBQWlCO0U5RCtpSW5CO0FBQ0Y7O0FpQi82SFE7RXVENUtSO0lYa0JJLHdCQUZxQztJQUdyQyx1QkFIcUM7RTdEaWxJdkM7QUFDRjs7QWlCdDdIUTtFNkM3Sko7SUFDRSxXMURzR3FEO0kwRHJHckQsV0FBVztFOUR1bElmO0U4RGxsSUk7SUFDRSxZMURnR29EO0VKby9IMUQ7RThENWxJRTtJQXdCRSxXQUFXO0lBQ1gsV0FBVztFOUR1a0lmO0FBQ0Y7O0F3RXJrSUEsc0RBQUE7QUMvQ0E7O29DekV5bklvQztBeUVwbklwQztFQUVJLGdCakVpRnFEO0VpRWhGckQsY0FBYztFQUNkLDZDQUFvRDtFQUNwRCw0QkFBNEI7RUFDNUIsNEJBQTRCO0VBQzVCLHdCQUF3QjtFQUN4QixvQkFBb0I7QXpFcW5JeEI7O0F5RTduSUE7RUFZTSxvREFBMkQ7QXpFcW5JakU7O0F5RWpvSUE7RUFpQk0sMkJBQTJCO0F6RW9uSWpDOztBeUU3bUlBLG9DQUFBO0FDN0JBOzt1RDFFK29JdUQ7QTBFdm9JdkQ7RUFDRSxtQ3pFK0lzQjtFZ0UzSHRCLGFBQWE7RUEwQmIsdUJBbkRrQjtFQW9EbEIsbUJBeENnQjtFU0ZoQixhQUFhO0ExRXdvSWY7O0EwRTlvSUE7RUFTSSwrREFBc0U7RUFDdEUsWUFBWTtBMUV5b0loQjs7QTBFbnBJQTtFQWNJLGNBQWM7RUFDZCxZQUFZO0ExRXlvSWhCOztBMEV4cElBO0VBbUJJLGNBQWM7RXhCMEJkLGdDQUE4QztFZXhCaEQsYUFBYTtFQTBCYix1QkFuRGtCO0VBb0RsQixtQkF4Q2dCO0FqRXdwSWxCOztBMEVocUlBO0VBMkJNLFdBL0JVO0VBZ0NWLFdBakNVO0VBa0NWLFlBbENVO0VBbUNWLGtCQWpDaUI7RUFrQ2pCLG1CekVzSVM7RXlFcklULDZCQUFxQjtVQUFyQixxQkFBcUI7RUFDckIsOEJBQXNCO1VBQXRCLHNCQUFzQjtFQUN0QiwyQ0FBbUM7VUFBbkMsbUNBQW1DO0VBQ25DLHNDQUE4QjtVQUE5Qiw4QkFBOEI7QTFFeW9JcEM7O0EwRTVxSUE7RUFxQ1EsNkJBQXFDO1VBQXJDLHFCQUFxQztFQUNyQyxjQUFhO0ExRTJvSXJCOztBMEVqcklBO0VBeUNRLDZCQUFxQztVQUFyQyxxQkFBcUM7QTFFNG9JN0M7O0EwRXJySUE7RUE0Q1EsNkJBQXFDO1VBQXJDLHFCQUFxQztBMUU2b0k3Qzs7QTBFenJJQTtFQStDUSw2QkFBcUM7VUFBckMscUJBQXFDO0ExRThvSTdDOztBMEU3cklBO0VBa0RRLDZCQUFxQztVQUFyQyxxQkFBcUM7QTFFK29JN0M7O0EwRWpzSUE7RUFxRFEsNkJBQXFDO1VBQXJDLHFCQUFxQztFQUNyQyxlQUFlO0ExRWdwSXZCOztBMEV6b0lBO0VBQ0U7O0lBRUUsWUFBWTtFMUU0b0lkO0UwRTFvSUE7SUFFRSxZQUFZO0UxRTJvSWQ7RTBFem9JQTs7SUFFRSxVQUFVO0UxRTJvSVo7QUFDRjs7QTBFdnBJQTtFQUNFOztJQUVFLFlBQVk7RTFFNG9JZDtFMEUxb0lBO0lBRUUsWUFBWTtFMUUyb0lkO0UwRXpvSUE7O0lBRUUsVUFBVTtFMUUyb0laO0FBQ0Y7O0EwRXZvSUEsdURBQUE7QUNyRkE7O2lEM0VpdUlpRDtBMkU3dElqRDtFQUVJLGlCQUFpQjtFQUNqQixjQUFjO0EzRTh0SWxCOztBMkVqdUlBO0VBS00sZUFBZTtFekJrRGpCLG1DQUFvRDtFQTVCcEQsZ0NBQWdEO0FsRDRzSXBEOztBMkV2dUlBO0VaREUsdUY5RG1CNkY7RThEbEI3RixpQnZEb0Z1RDtFdUQxQnZELGdCOUQ2QzZCO0UyRXpHN0IsNEMzRTRPNEI7QURvZ0k5Qjs7QWlCbGtJUTtFMEQ1S1I7SVpFSSxpQnZEa0ZxRDtFUitwSXZEO0FBQ0Y7O0EyRXB2SUE7RUFXVSxpQkFBaUI7RUFDakIsZUFBZTtFQUNmLGNBQWM7RUFDZCxXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZix3REFBd0Q7RUFDeEQsV0FBVztFQUNYLFlBQVk7QTNFNnVJdEI7O0EyRWh3SUE7RUEwQkksY0FBYztBM0UwdUlsQjs7QTJFcHdJQTtFQThCSSxhQUFhO0EzRTB1SWpCOztBMkV4d0lBO0VBaUNNLGNBQWM7QTNFMnVJcEI7O0EyRTV3SUE7RUFtQ1EsYzFFaUhnQjtBRDRuSXhCOztBaUIvbElRO0UwRGpMUjtJQThDTSxhQUFhO0UzRXV1SWpCO0UyRXJ4SUY7SUFpRE0sY0FBYztFM0V1dUlsQjtBQUNGOztBMkVudUlBLGlEQUFBO0FFMURBOzt5RDdFa3lJeUQ7QTZFOXhJekQ7RUM4QkUsYUFBYTtFQUNiLG1CQUhxQjtFYkhyQixhQUFhO0VBMEJiLDhCQWxEMEI7RUFtRDFCLHVCQTFDaUI7QWpFMnhJbkI7O0E2RXJ5SUE7RUVxSEUsY0FBTTtFQTJDSiwyQkF0RDhGO0VDckU1RixxQkFBNkQ7RUFBN0Qsc0JBQTZEO0U5QmtCL0QsaUNBQW9EO0FsRHN2SXhEOztBNkU3eUlBO0UzQnVESSwrQkFBb0Q7QWxEMHZJeEQ7O0E2RWp6SUE7RTNCdURJLGlDQUFvRDtFYXhEdEQsdUY5RG1CNkY7RThEbEI3RixpQnZEb0Z1RDtFdUQxQnZELGdCOUQ2QzZCO0UyRXpHN0IsNEMzRTRPNEI7QUQra0k5Qjs7QWlCN29JUTtFNEQ1S1I7SWRFSSxpQnZEa0ZxRDtFUjB1SXZEO0FBQ0Y7O0E2RS96SUE7RTNCdURJLG1DQUFvRDtBbEQ0d0l4RDs7QTZFbjBJQTtFZERFLHVGOURtQjZGO0U4RGxCN0YsbUJ2RG9GdUQ7RXVEb0J2RCxnQjlERDZCO0FEa3VJL0I7O0FpQjdwSVE7RTRENUtSO0lkRUksbUJ2RGtGcUQ7RVIwdkl2RDtBQUNGOztBaUJucUlRO0U0RDVLUjtJRXFIRSxjQUFNO0lBMkNKLDJCQXREOEY7SUNyRTVGLHNCQUE2RDtJQUE3RCx1QkFBNkQ7RWhGa3pJakU7QUFDRjs7QWlCNXFJUTtFNEQ1S1I7SUVxSEUsY0FBTTtJQTJDSixpQ0F0RDhGO0lDckU1RixzQkFBNkQ7SUFBN0QsdUJBQTZEO0VoRjJ6SWpFO0FBQ0Y7O0E2RWp6SUEseURBQUE7QUlwREE7O3VEakYwMkl1RDtBaUZ0Mkl2RDtFL0JpREksOEJBQThDO0FsRHd6SWxEOztBaUZ6MklBO0VBR0ksWUFBWTtFQUNaLHFCQUFxQjtFQUNyQixrQkFBa0I7QWpGMDJJdEI7O0FpRi8ySUE7RUFPTSxlQUFlO0UvQm1EakIsK0JBQWdEO0FsRDB6SXBEOztBaUZwM0lBO0VsQkRFLHVGOURtQjZGO0U4RGxCN0YsaUJ2RG9GdUQ7RXVEVXZELGdCOURTNkI7RWdGNUZ2Qix5QkFBeUI7QWpGZzNJakM7O0FpQi9zSVE7RWdFNUtSO0lsQkVJLGlCdkRrRnFEO0VSNHlJdkQ7QUFDRjs7QWlGajRJQTtFL0I4QkksZ0NBQWtEO0VBbUJsRCw4QkFBOEM7RUFNOUMsaUNBQW9EO0FsRGcxSXhEOztBaUZ2NElBO0VBcUJJLGNBQWM7QWpGczNJbEI7O0FpRjM0SUE7RUF5QkksYUFBYTtBakZzM0lqQjs7QWlCOXRJUTtFZ0VqTFI7SUFrQ00sYUFBYTtFakZrM0lqQjtFaUZwNUlGO0lBcUNNLGNBQWM7RWpGazNJbEI7QUFDRjs7QWlGOTJJQSx1REFBQTtBQzlDQTs7cURsRmk2SXFEO0FrRjc1SXJEO0VBR00sYUFBYTtFaEM4Q2YsOEJBQThDO0VnQzVDNUMsZ0JBQWdCO0FsRjY1SXRCOztBa0ZsNklBO0VoQ2lESSwrQkFBOEM7RUFNOUMsa0NBQW9EO0VnQzlDaEQsa0RqRmdLTztBRCt2SWY7O0FrRng2SUE7RUFXVSxrRGpGOEpLO0FEbXdJZjs7QWtGNTZJQTtFQWNVLGNqRjJKSztFaUYxSkwsZ0JBQWdCO0VBQ2hCLGNBQWM7RW5CakJ0Qix1RjlEbUI2RjtFOERsQjdGLGlCdkRvRnVEO0V1RFV2RCxnQjlEUzZCO0VpRnJGckIseUJBQXlCO0VBQ3pCLGFBQWE7QWxGbzZJdkI7O0FpQjN3SVE7RWlFNUtSO0luQkVJLGlCdkRrRnFEO0VSdzJJdkQ7QUFDRjs7QWtGNzdJQTtFQXFCWSxjakYrSFk7QUQ2eUl4Qjs7QWtGcDZJQSxxREFBQTtBQ2pDQTs7c0NuRjA4SXNDO0FtRnQ4SXRDO0VBRUksa0JBQWtCO0FuRnU4SXRCOztBbUZ6OElBO0VBSU0scUJBQXFCO0VqQ3VCdkIsK0JBQWdEO0VBTWhELDhCQUE4QztBbEQ4NklsRDs7QW1GLzhJQTtFcEJERSx1RjlEbUI2RjtFOERsQjdGLGlCdkRvRnVEO0V1RDFCdkQsZ0I5RDZDNkI7RTJFekc3Qiw0QzNFNE80QjtBRDR1STlCOztBaUIxeUlRO0VrRTVLUjtJcEJFSSxpQnZEa0ZxRDtFUnU0SXZEO0FBQ0Y7O0FtRjk4SUEsc0NBQUE7QUNsQkE7O3NDcEZxK0lzQztBb0ZqK0l0QyxtQkFBQTtBQUtBLHdCQUFBO0FBRUE7O0VBRUUsVUFBVTtBcEY4OUlaOztBb0YzOUlBO0VBQ0Usa0JBQWtCO0VBQ2xCLHlCQUF5QjtFQUN6Qix3QkFBd0I7RUFDeEIsV0FBVztFQUNYLGlDbkZzSmlCO0VtRm5KakIsVUFBVTtFQUNWLFNBQVM7RUFDVCxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixrQkFBa0I7RUFDbEIsY25GK0lhO0U4RDFLYix1RjlEbUI2RjtFOERsQjdGLGV2RG9GdUQ7RXVEMUV2RCxnQjlENkY2QjtFMkV6RzdCLDRDM0U0TzRCO0FEZ3hJOUI7O0FpQjkwSVE7RW1FaEtSO0lyQlZJLGlCdkRrRnFEO0VSMjZJdkQ7QUFDRjs7QW9GcC9JQTtFQWtCSSxjbkZzSG9CO0FEZzNJeEI7O0FvRmwrSUE7RUFDRSxhQUFhO0FwRnErSWY7O0FvRmwrSUE7RUFJSSxhQUFhO0VBQ2IsV0FBVztFQUNYLFVBQVU7RUFDVixZQUFXO0FwRmsrSWY7O0FvRnorSUE7RUFTTSxzQkFBc0I7RUFDdEIsWUFBWTtFQUNaLDRCQUE0QjtFQUM1Qiw0QkFBNEI7QXBGbytJbEM7O0FvRmgvSUE7RUFnQk0sV0FBVztBcEZvK0lqQjs7QWlCOTJJUTtFbUV0SVI7SUFrQlEsVUFBVTtFcEZ1K0loQjtBQUNGOztBb0YxL0lBO0VBdUJNLFdBQVc7QXBGdStJakI7O0FpQngzSVE7RW1FdElSO0lBeUJRLFVBQ0Y7RXBGeStJSjtBQUNGOztBb0ZwZ0pBO0VBOEJNLFdBQVc7QXBGMCtJakI7O0FvRnhnSkE7RUFrQ00sYUFBYTtBcEYwK0luQjs7QW9GNWdKQTtFQXNDTSxhQUFhO0FwRjArSW5COztBb0ZoaEpBO0VBMENNLGFBQWE7QXBGMCtJbkI7O0FvRnBoSkE7RUE4Q00sYUFBYTtBcEYwK0luQjs7QW9GcCtJQSxzQ0FBQTtBQzlGQTtFbkMyREksK0JBQW9EO0FsRDRnSnhEOztBcUZ2a0pBO0VuQ3FESSwrQkFBOEM7QWxEc2hKbEQ7O0FzRjNrSkE7OzRDdEYra0o0QztBc0Yza0o1QztFNUI2RkUsZ0JsRFR1RDtFa0QxQnJELGtCQUFrQjtFQUNsQixpQkFBaUI7RVJKakIsaUNBQW9EO0FsRDBoSnhEOztBSzU2SUU7RUFFRSxjQUFjO0VBQ2QsWUFBWTtFQUdWLGFBQWE7RUFDYixRQUFRO0FMNDZJZDs7QUt4NklFO0VBQ0UsV0FBVztBTDI2SWY7O0FzRjVsSkE7RTNCVUUsVy9CbUkyRDtFZ0NuSDNELFd4RDRGeUQ7RXlEcEd2RCx1QkFGcUM7RUFHckMsc0JBSHFDO0VYdUNyQyxrQ0FBb0Q7QWxENmlKeEQ7O0FpQng3SVE7RXFFNUtSO0l6QmtCSSx3QkFGcUM7SUFHckMsdUJBSHFDO0U3RDBsSnZDO0FBQ0Y7O0E4RDVsSkk7RUFDRSxXMURzR3FEO0UwRHJHckQsV0FBVztBOUQrbEpqQjs7QThEMWxKTTtFQUNFLFkxRGdHb0Q7QUo2L0k1RDs7QXNGcG5KQTtFcEN1REksK0JBQW9EO0FsRGlrSnhEOztBc0Z4bkpBO0VBaUJJLG1CQUFtQjtBdEYybUp2Qjs7QXNGNW5KQTtFM0JVRSxXL0JtSTJEO0VnQ25IM0QsV3hENEZ5RDtFeURwR3ZELHVCQUZxQztFQUdyQyxzQkFIcUM7QTdEbW5KekM7O0FpQnY5SVE7RXFFNUtSO0l6QmtCSSx3QkFGcUM7SUFHckMsdUJBSHFDO0U3RHluSnZDO0FBQ0Y7O0E4RDNuSkk7RUFDRSxXMURzR3FEO0UwRHJHckQsV0FBVztBOUQ4bkpqQjs7QThEem5KTTtFQUNFLFkxRGdHb0Q7QUo0aEo1RDs7QXNGbnBKQTtFM0JVRSxXL0JtSTJEO0VnQ25IM0QsV3hENEZ5RDtFeURwR3ZELHVCQUZxQztFQUdyQyxzQkFIcUM7QTdEMG9KekM7O0FpQjkrSVE7RXFFNUtSO0l6QmtCSSx3QkFGcUM7SUFHckMsdUJBSHFDO0U3RGdwSnZDO0FBQ0Y7O0E4RGxwSkk7RUFDRSxXMURzR3FEO0UwRHJHckQsV0FBVztBOURxcEpqQjs7QThEaHBKTTtFQUNFLFkxRGdHb0Q7QUptako1RDs7QWlCOS9JUTtFcUUxSU47SXBDcUJFLGlDQUFvRDtFbER3bkp0RDtFc0Y3b0pBO0kzQnhCQSxnQi9CbUkyRDtJZ0NuSDNELFd4RDRGeUQ7SXlEcEd2RCx1QkFGcUM7SUFHckMsc0JBSHFDO0lDMEJyQyxrQkFBa0I7SUFDbEIsaUJBQWlCO0U5RDRvSm5CO0FBQ0Y7O0FpQjVnSlE7RXFFMUlOO0l6QmhCRSx3QkFGcUM7SUFHckMsdUJBSHFDO0U3RDhxSnZDO0FBQ0Y7O0FpQm5oSlE7RTZDN0pKO0lBQ0UsVzFEc0dxRDtJMERyR3JELFdBQVc7RTlEb3JKZjtFOEQvcUpJO0lBQ0UsWTFEZ0dvRDtFSmlsSjFEO0U4RHpySkU7SUF3QkUsV0FBVztJQUNYLFdBQVc7RTlEb3FKZjtFc0Y1c0pGO0kzQlVFLGdCL0JtSTJEO0lnQ25IM0QsV3hENEZ5RDtJeURwR3ZELHVCQUZxQztJQUdyQyxzQkFIcUM7SUMwQnJDLGtCQUFrQjtJQUNsQixpQkFBaUI7RTlEeXFKbkI7QUFDRjs7QWlCemlKUTtFcUU1S1I7SXpCa0JJLHdCQUZxQztJQUdyQyx1QkFIcUM7RTdEMnNKdkM7QUFDRjs7QWlCaGpKUTtFNkM3Sko7SUFDRSxXMURzR3FEO0kwRHJHckQsV0FBVztFOURpdEpmO0U4RDVzSkk7SUFDRSxZMURnR29EO0VKOG1KMUQ7RThEdHRKRTtJQXdCRSxXQUFXO0lBQ1gsV0FBVztFOURpc0pmO0VzRnp1SkY7STNCVUUsVS9CbUkyRDtJZ0NuSDNELFd4RDRGeUQ7SXlEcEd2RCx1QkFGcUM7SUFHckMsc0JBSHFDO0U3RCt0SnZDO0FBQ0Y7O0FpQnBrSlE7RXFFNUtSO0l6QmtCSSx3QkFGcUM7SUFHckMsdUJBSHFDO0U3RHN1SnZDO0FBQ0Y7O0FpQjNrSlE7RTZDN0pKO0lBQ0UsVzFEc0dxRDtJMERyR3JELFdBQVc7RTlENHVKZjtFOER2dUpJO0lBQ0UsWTFEZ0dvRDtFSnlvSjFEO0FBQ0Y7O0FzRmxzSkEsNENBQUE7QUNuRUE7Ozs7RXZGNHdKRTtBcUR0dkpBO0VBQ0UsK0JBQW1DO0VBQ25DLHFRQVl1RTtFQVh2RSxnQnBEdUYyQjtFb0R0RjNCLGtCQUwyRTtBckQ2dkovRTs7QXFENXZKRTtFQUNFLCtCQUFtQztFQUNuQyw2UkFZdUU7RUFYdkUsZ0JwRHNGMkI7RW9EckYzQixrQkFMMkU7QXJEb3dKL0U7O0FxRG53SkU7RUFDRSwrQkFBbUM7RUFDbkMseVFBWXVFO0VBWHZFLGdCcERxRjJCO0VvRHBGM0Isa0JBTDJFO0FyRDJ3Si9FOztBcUQxd0pFO0VBQ0UsK0JBQW1DO0VBQ25DLGlSQVl1RTtFQVh2RSxnQnBEb0YyQjtFb0RuRjNCLGtCQUwyRTtBckRreEovRTs7QXFEanhKRTtFQUNFLCtCQUFtQztFQUNuQyw2UUFZdUU7RUFYdkUsZ0JwRG1GMkI7RW9EbEYzQixrQkFMMkU7QXJEeXhKL0U7O0FxRHh4SkU7RUFDRSwrQkFBbUM7RUFDbkMscVJBWXVFO0VBWHZFLGdCcERrRjJCO0VvRGpGM0Isa0JBTDJFO0FyRGd5Si9FOztBcUQveEpFO0VBQ0UsK0JBQW1DO0VBQ25DLHFRQVl1RTtFQVh2RSxnQnBEaUYyQjtFb0RoRjNCLGtCQUwyRTtBckR1eUovRTs7QXFEdHlKRTtFQUNFLCtCQUFtQztFQUNuQyx5UkFZdUU7RUFYdkUsZ0JwRGdGMkI7RW9EL0UzQixrQkFMMkU7QXJEOHlKL0U7O0FxRDd5SkU7RUFDRSwrQkFBbUM7RUFDbkMseVFBWXVFO0VBWHZFLGdCcEQrRTJCO0VvRDlFM0Isa0JBTDJFO0FyRHF6Si9FOztBcURwekpFO0VBQ0UsMEJBQW1DO0VBQ25DLGlQQVl1RTtFQVh2RSxnQnBEdUYyQjtFb0R0RjNCLGtCQUwyRTtBckQ0ekovRTs7QXFEM3pKRTtFQUNFLDBCQUFtQztFQUNuQyx5UUFZdUU7RUFYdkUsZ0JwRHNGMkI7RW9EckYzQixrQkFMMkU7QXJEbTBKL0U7O0FxRGwwSkU7RUFDRSwwQkFBbUM7RUFDbkMscVBBWXVFO0VBWHZFLGdCcERxRjJCO0VvRHBGM0Isa0JBTDJFO0FyRDAwSi9FOztBcUR6MEpFO0VBQ0UsMEJBQW1DO0VBQ25DLDZQQVl1RTtFQVh2RSxnQnBEb0YyQjtFb0RuRjNCLGtCQUwyRTtBckRpMUovRTs7QXFEaDFKRTtFQUNFLDBCQUFtQztFQUNuQyx5UEFZdUU7RUFYdkUsZ0JwRG1GMkI7RW9EbEYzQixrQkFMMkU7QXJEdzFKL0U7O0FxRHYxSkU7RUFDRSwwQkFBbUM7RUFDbkMsaVFBWXVFO0VBWHZFLGdCcERrRjJCO0VvRGpGM0Isa0JBTDJFO0FyRCsxSi9FOztBcUQ5MUpFO0VBQ0UsMEJBQW1DO0VBQ25DLGlQQVl1RTtFQVh2RSxnQnBEaUYyQjtFb0RoRjNCLGtCQUwyRTtBckRzMkovRTs7QXFEcjJKRTtFQUNFLDBCQUFtQztFQUNuQyxxUUFZdUU7RUFYdkUsZ0JwRGdGMkI7RW9EL0UzQixrQkFMMkU7QXJENjJKL0U7O0FxRDUySkU7RUFDRSwwQkFBbUM7RUFDbkMscVBBWXVFO0VBWHZFLGdCcEQrRTJCO0VvRDlFM0Isa0JBTDJFO0FyRG8zSi9FOztBd0Z6NEpBOztxQ3hGNjRKcUM7QXdGejRKckM7RUFDRSxTQUFTO0VBQ1QsVUFBVTtFQUNWLG1DQUFtQztBeEYyNEpyQzs7QW9COTNKSTtFb0VSRixzQkFBc0I7RUFDdEIsbUNBQW1DO0VBQ25DLGtDQUFrQztBeEYwNEpwQzs7QUdyNEpFO0VxRkRBLGtGdkZLc0Y7RXVGSnRGLGtCQUFrQjtFQUNsQix5QnZGeUphO0FEaXZKZjs7QXdGcjRKQTtFQUNFLFNBQVM7RUFDVCxVQUFVO0F4Rnc0Slo7O0F3RnI0SkE7RUFFSSxxQkFBcUI7RUFDckIsU0FBUztFQUNULGVBQWU7QXhGdTRKbkI7O0FnQmxpSkU7RXdFOVZBLFNBQVM7RUFDVCxVQUFVO0VBQ1YsZ0JBQWdCO0F4Rm80SmxCOztBd0Z2NEpBO0VBS0ksU0FBUztFQUNULFVBQVU7QXhGczRKZDs7QXdGbDRKQTtFQUVJLG9CQUFvQjtFQUNwQixxQkFBcUI7QXhGbzRKekI7O0F3Rmg0SkE7RUFFSSxvQkFBb0I7QXhGazRKeEI7O0F3RjkzSkE7RWxDckRFLGtCQUFrQjtFSmlEaEIsK0JBQW9EO0VJL0N0RCxxQkFBcUI7RUFDckIsMEJBQTBCO0VBQzFCLDRCQUE0QjtBdER1N0o5Qjs7QXNEdDdKRTtFU1pBLHVGOURtQjZGO0U4RGxCN0YsaUJ2RG9GdUQ7RXVEMUJ2RCxnQjlENkM2QjtFMkV6RzdCLDRDM0U0TzRCO0FEOHRKOUI7O0FpQjV4SlE7RXFDaktOO0lTVEUsaUJ2RGtGcUQ7RVJ5M0p2RDtBQUNGOztBc0Q1N0pFO0VKcUNFLGtDQUFvRDtFSW5DcEQsa0JBQWtCO0VTckJwQixrRjlEb0JzRjtFOERuQnRGLG1CdkRvRnVEO0U4QzlEckQsa0JBQWtCO0F0RGc4SnRCOztBaUIxeUpRO0VxQzFKTjtJU2hCRSxtQnZEa0ZxRDtFUnU0SnZEO0FBQ0Y7O0FzRHI4Skk7RUFDRSxrQkFBa0I7RUFDbEIsaUJBQWlCO0VBQ2pCLFFBQVE7RUFDUixTQUFTO0VBQ1QsV0FBVztFQUNYLGNBQWM7RUFDZCxZQUFZO0VBQ1osV0FBVztFQUNYLGlFQUF1RDtFQUN2RCxxQkFBcUI7QXREdzhKM0I7O0F3RnQ2SkE7RUFDRSxhQUFhO0F4Rnk2SmY7O0FHMTZKRTs7RXFGUUEsZ0J2RjRCNkI7QUQyNEovQjs7QUc5N0pFO0UrRHhDQSxjakUySmlCO0FEKzBKbkI7O0FrRXgrSkk7RUFDRSxjakV3SmE7QURtMUpuQjs7QWtFeitKSTtFQUNFLGNqRXFKYTtBRHUxSm5COztBa0UxK0pJO0VBQ0UsY2pFK0hrQjtBRDgySnhCOztBa0UzK0pJO0VBQ0UsY2pFK0lhO0FEKzFKbkI7O0F3RnA3SkE7RXRCdEVFLGNqRTZKYTtBRGkySmY7O0FrRTUvSkk7RUFDRSxjakUwSlM7QURxMkpmOztBa0U3L0pJO0VBQ0UsY2pFdUpTO0FEeTJKZjs7QWtFOS9KSTtFQUNFLGNqRStIa0I7QURrNEp4Qjs7QWtFLy9KSTtFQUNFLGNqRWlKUztBRGkzSmY7O0F3Rmw4SkE7RVoxRkUsNEMzRTRPNEI7QURveko5Qjs7QXdGaDhKQTtFekIvRkUsdUY5RG1CNkY7RThEbEI3RixldkRvRnVEO0V1RDFFdkQsZ0I5RDZGNkI7RTJFekc3Qiw0QzNFNE80QjtBRDJ6SjlCOztBaUJ6M0pRO0V1RTlFUjtJekI1RkksaUJ2RGtGcUQ7RVJzOUp2RDtBQUNGOztBd0Z6OEpBO0V6Qm5HRSx1RjlEbUI2RjtFOERsQjdGLGtCdkRvRnVEO0V1RG5FdkQsZ0I5RHNGNkI7RTJFekc3Qiw0QzNFNE80QjtBRHcwSjlCOztBaUJ0NEpRO0V1RTFFUjtJekJoR0ksa0J2RGtGcUQ7RVJtK0p2RDtBQUNGOztBd0ZsOUpBO0V6QnZHRSxrRjlEb0JzRjtFOERuQnRGLG1CdkRvRnVEO0V1RDVEdkQsZ0I5RCtFNkI7RTJFekc3Qiw0QzNFNE80QjtBRHExSjlCOztBaUJuNUpRO0V1RXRFUjtJekJwR0ksbUJ2RGtGcUQ7RVJnL0p2RDtBQUNGOztBd0YzOUpBO0VaNUdFLDRDM0U0TzRCO0FEKzFKOUI7O0F3RjM5SkE7RXpCL0dFLHVGOURtQjZGO0U4RGxCN0YsZXZEb0Z1RDtFdURoRHZELGdCOURtRTZCO0UyRXpHN0IsNEMzRTRPNEI7QURzMko5Qjs7QWlCcDZKUTtFdUU5RFI7SXpCNUdJLG1CdkRrRnFEO0VSaWdLdkQ7QUFDRjs7QXdGeCtKQTtFekJyRUUsaUJBQWlCO0VBQ2pCLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsb0JBQW9CO0VBQ3BCLGtCQUFrQjtBL0RpaktwQjs7QXdGeCtKQTtFekJ2SEUsdUY5RG1CNkY7RThEbEI3RixldkRvRnVEO0V1RGpDdkQsZ0I5RG9ENkI7RTJFekc3Qiw0QzNFNE80QjtBRDIzSjlCOztBaUJ6N0pRO0V1RXREUjtJekJwSEksaUJ2RGtGcUQ7RVJzaEt2RDtBQUNGOztBd0ZqL0pBO0V6QjNIRSx1RjlEbUI2RjtFOERsQjdGLGlCdkRvRnVEO0V1RDFCdkQsZ0I5RDZDNkI7RTJFekc3Qiw0QzNFNE80QjtBRHc0SjlCOztBaUJ0OEpRO0V1RWxEUjtJekJ4SEksaUJ2RGtGcUQ7RVJtaUt2RDtBQUNGOztBd0YxL0pBO0V6Qi9IRSx1RjlEbUI2RjtFOERsQjdGLGtCdkRvRnVEO0V1RHBCdkQsZ0I5RHVDNkI7RTJFekc3Qiw0QzNFNE80QjtBRHE1SjlCOztBaUJuOUpRO0V1RTlDUjtJekI1SEksa0J2RGtGcUQ7RVJnakt2RDtBQUNGOztBd0ZuZ0tBO0V6Qm5JRSxrRjlEb0JzRjtFOERuQnRGLG1CdkRvRnVEO0V1RGJ2RCxnQjlEaUM2QjtBRG1pSy9COztBaUIvOUpRO0V1RTFDUjtJekJoSUksb0J2RGtGcUQ7RVI0akt2RDtBQUNGOztBd0YzZ0tBO0V6QnZJRSxrRjlEb0JzRjtFOERuQnRGLGV2RG9GdUQ7QVJra0t6RDs7QWlCMStKUTtFdUV0Q1I7SXpCcElJLGV2RGtGcUQ7RVJ1a0t2RDtBQUNGOztBd0ZsaEtBO0V6QjNJRSxrRjlEb0JzRjtFOERuQnRGLGV2RG9GdUQ7RXVERnZELGdCOURvQjZCO0FENGpLL0I7O0FpQnQvSlE7RXVFbENSO0l6QnhJSSxldkRrRnFEO0VSbWxLdkQ7QUFDRjs7QXdGMWhLQTtFekIvSUUsa0Y5RG9Cc0Y7RThEbkJ0RixrQnZEb0Z1RDtFdURJdkQsZ0I5RGlCNkI7QURxa0svQjs7QWlCbGdLUTtFdUU5QlI7SXpCNUlJLGtCdkRrRnFEO0VSK2xLdkQ7QUFDRjs7QXdGbGlLQTtFekJuSkUsdUY5RG1CNkY7RThEbEI3RixpQnZEb0Z1RDtFdURVdkQsZ0I5RFM2QjtBRG1sSy9COztBaUI5Z0tRO0V1RTFCUjtJekJoSkksaUJ2RGtGcUQ7RVIybUt2RDtBQUNGOztBd0YxaUtBO0V6QnZKRSxrRjlEb0JzRjtFOERuQnRGLG1CdkRvRnVEO0FSaW5LekQ7O0FpQnpoS1E7RXVFdEJSO0l6QnBKSSxtQnZEa0ZxRDtFUnNuS3ZEO0FBQ0Y7O0F3RmpqS0E7RXpCM0pFLHVGOURtQjZGO0U4RGxCN0YsbUJ2RG9GdUQ7RXVEb0J2RCxnQjlERDZCO0FEMG1LL0I7O0FpQnJpS1E7RXVFbEJSO0l6QnhKSSxtQnZEa0ZxRDtFUmtvS3ZEO0FBQ0Y7O0F3RnhqS0E7RUFDRSxjdkZTYTtBRGtqS2Y7O0F3RnhqS0E7RUFDRSxjdkZoQnNCO0V1RmlCdEIsZUFBZTtBeEYyaktqQjs7QXdGeGpLQSxzQkFBQTtBQUNBO0VwQ3hLRSxXQUFXO0VBQ1gseUJuRHNLYTtBRDhqS2Y7O0F3RnpqS0EsV0FBQTtBQUVBO0VqQzdLRSxnRUFBdUU7RUFDdkUsb0JpQzZLMkI7RXRDekh6QixpQ0FBb0Q7QWxEc3JLeEQ7O0F3RnhqS0EscUJBQUE7QUN6TEE7RXZDcURJLDRCQUE4QztFQU05QywrQkFBb0Q7QWxENHJLeEQ7O0F5RnZ2S0E7RTFCR0UsdUY5RG1CNkY7RThEbEI3RixldkRvRnVEO0V1RGpDdkQsZ0I5RG9ENkI7RTJFekc3Qiw0QzNFNE80QjtFaURuTDFCLCtCQUFvRDtBbERvc0t4RDs7QWlCL2tLUTtFd0VoTFI7STFCTUksaUJ2RGtGcUQ7RVI0cUt2RDtBQUNGOztBeUZyd0tBO0UxQkdFLHVGOURtQjZGO0U4RGxCN0YsZXZEb0Z1RDtFdURqQ3ZELGdCOURvRDZCO0UyRXpHN0IsNEMzRTRPNEI7RThEM081QixrRjlEb0JzRjtFOERuQnRGLG1CdkRvRnVEO0V1RGJ2RCxnQjlEaUM2QjtBRG1xSy9COztBaUIvbEtRO0V3RWhMUjtJMUJNSSxpQnZEa0ZxRDtFUjRyS3ZEO0FBQ0Y7O0FpQnJtS1E7RXdFaExSO0kxQk1JLG9CdkRrRnFEO0VSa3NLdkQ7QUFDRjs7QXlGM3hLQTtFQWlCTSxnQkFBZ0I7QXpGOHdLdEI7O0EwRi94S0E7OytDMUZteUsrQztBMEYveEsvQztFaEM2RkUsZ0JsRFR1RDtFa0QxQnJELGtCQUFrQjtFQUNsQixpQkFBaUI7RVJWakIsNEJBQThDO0VBTTlDLCtCQUFvRDtBbEQrdUt4RDs7QUtqb0tFO0VBRUUsY0FBYztFQUNkLFlBQVk7RUFHVixhQUFhO0VBQ2IsUUFBUTtBTGlvS2Q7O0FLN25LRTtFQUNFLFdBQVc7QUxnb0tmOztBMEZqektBO0UvQlVFLFcvQm1JMkQ7RWdDbkgzRCxXeEQ0RnlEO0V5RHBHdkQsdUJBRnFDO0VBR3JDLHNCQUhxQztBN0R3eUt6Qzs7QWlCNW9LUTtFeUU1S1I7STdCa0JJLHdCQUZxQztJQUdyQyx1QkFIcUM7RTdEOHlLdkM7QUFDRjs7QThEaHpLSTtFQUNFLFcxRHNHcUQ7RTBEckdyRCxXQUFXO0E5RG16S2pCOztBOEQ5eUtNO0VBQ0UsWTFEZ0dvRDtBSml0SzVEOztBMEZ4MEtBO0UvQlVFLFcvQm1JMkQ7RWdDbkgzRCxXeEQ0RnlEO0V5RHBHdkQsdUJBRnFDO0VBR3JDLHNCQUhxQztBN0Qrekt6Qzs7QWlCbnFLUTtFeUU1S1I7STdCa0JJLHdCQUZxQztJQUdyQyx1QkFIcUM7RTdEcTBLdkM7QUFDRjs7QThEdjBLSTtFQUNFLFcxRHNHcUQ7RTBEckdyRCxXQUFXO0E5RDAwS2pCOztBOERyMEtNO0VBQ0UsWTFEZ0dvRDtBSnd1SzVEOztBMEYvMUtBO0UvQlVFLFcvQm1JMkQ7RWdDbkgzRCxXeEQ0RnlEO0V5RHBHdkQsZ0JyRHVFUztFcUR0RVQsZXJEc0VTO0FSNndLYjs7QThEdjFLSTtFQUNFLFcxRHNHcUQ7RTBEckdyRCxXQUFXO0E5RDAxS2pCOztBOERyMUtNO0VBQ0UsWTFEZ0dvRDtBSnd2SzVEOztBMEYvMktBO0UvQlVFLFcvQm1JMkQ7RWdDbkgzRCxXeEQ0RnlEO0V5RHBHdkQsZ0JyRHVFUztFcUR0RVQsZXJEc0VTO0FSNnhLYjs7QThEdjJLSTtFQUNFLFcxRHNHcUQ7RTBEckdyRCxXQUFXO0E5RDAyS2pCOztBOERyMktNO0VBQ0UsWTFEZ0dvRDtBSnd3SzVEOztBMEYvM0tBO0UvQlVFLFcvQm1JMkQ7RWdDbkgzRCxXeEQ0RnlEO0V5RHBHdkQsZ0JyRHVFUztFcUR0RVQsZXJEc0VTO0FSNnlLYjs7QThEdjNLSTtFQUNFLFcxRHNHcUQ7RTBEckdyRCxXQUFXO0E5RDAzS2pCOztBOERyM0tNO0VBQ0UsWTFEZ0dvRDtBSnd4SzVEOztBMEYvNEtBO0UvQlVFLFcvQm1JMkQ7RWdDbkgzRCxXeEQ0RnlEO0V5RHBHdkQsZ0JyRHVFUztFcUR0RVQsZXJEc0VTO0FSNnpLYjs7QThEdjRLSTtFQUNFLFcxRHNHcUQ7RTBEckdyRCxXQUFXO0E5RDA0S2pCOztBOERyNEtNO0VBQ0UsWTFEZ0dvRDtBSnd5SzVEOztBaUJudktRO0V5RTVLUjtJL0JVRSxnQi9CbUkyRDtJZ0NuSDNELFd4RDRGeUQ7SXlEcEd2RCx1QkFGcUM7SUFHckMsc0JBSHFDO0lDMEJyQyxrQkFBa0I7SUFDbEIsaUJBQWlCO0U5RDgzS25CO0FBQ0Y7O0FpQjl2S1E7RXlFNUtSO0k3QmtCSSx3QkFGcUM7SUFHckMsdUJBSHFDO0U3RGc2S3ZDO0FBQ0Y7O0FpQnJ3S1E7RTZDN0pKO0lBQ0UsVzFEc0dxRDtJMERyR3JELFdBQVc7RTlEczZLZjtFOERqNktJO0lBQ0UsWTFEZ0dvRDtFSm0wSzFEO0U4RDM2S0U7SUF3QkUsV0FBVztJQUNYLFdBQVc7RTlEczVLZjtBQUNGOztBMEZuNUtBLCtDQUFBO0FDaERBOzs4QzNGdzhLOEM7QTJGcDhLOUM7RXpDaURJLDRCQUE4QztFQU05QyxrQ0FBb0Q7RXlDakR0RCw4REFBcUU7RUFDckUsd0JBQXdCO0VBQ3hCLHlCQUF5QjtBM0ZtOEszQjs7QTJGMzhLQTtFakM2RkUsZ0JsRFR1RDtFa0QxQnJELGtCQUFrQjtFQUNsQixpQkFBaUI7QTFEczVLckI7O0FLNXlLRTtFQUVFLGNBQWM7RUFDZCxZQUFZO0VBR1YsYUFBYTtFQUNiLFFBQVE7QUw0eUtkOztBS3h5S0U7RUFDRSxXQUFXO0FMMnlLZjs7QTJGNTlLQTtFaENVRSxXL0JtSTJEO0VnQ25IM0QsV3hENEZ5RDtFeURwR3ZELHVCQUZxQztFQUdyQyxzQkFIcUM7RUMwQnJDLGtCQUFrQjtFQUNsQixpQkFBaUI7QTlEMDdLckI7O0FpQnp6S1E7RTBFNUtSO0k5QmtCSSx3QkFGcUM7SUFHckMsdUJBSHFDO0U3RDI5S3ZDO0FBQ0Y7O0E4RDc5S0k7RUFDRSxXMURzR3FEO0UwRHJHckQsV0FBVztBOURnK0tqQjs7QThEMzlLTTtFQUNFLFkxRGdHb0Q7QUo4M0s1RDs7QThEdCtLSTtFQXdCRSxXQUFXO0VBQ1gsV0FBVztBOURrOUtqQjs7QWlCOTBLUTtFMEU1S1I7SXpDaURJLCtCQUE4QztJQU05QyxnQ0FBb0Q7RWxEeThLdEQ7RTJGaGdMRjtJaENVRSxnQi9CbUkyRDtJZ0NuSDNELFd4RDRGeUQ7SXlEcEd2RCx1QkFGcUM7SUFHckMsc0JBSHFDO0lDMEJyQyxrQkFBa0I7SUFDbEIsaUJBQWlCO0U5RDY5S25CO0FBQ0Y7O0FpQjcxS1E7RTBFNUtSO0k5QmtCSSx3QkFGcUM7SUFHckMsdUJBSHFDO0U3RCsvS3ZDO0FBQ0Y7O0FpQnAyS1E7RTZDN0pKO0lBQ0UsVzFEc0dxRDtJMERyR3JELFdBQVc7RTlEcWdMZjtFOERoZ0xJO0lBQ0UsWTFEZ0dvRDtFSms2SzFEO0U4RDFnTEU7SUF3QkUsV0FBVztJQUNYLFdBQVc7RTlEcS9LZjtBQUNGOztBaUJsM0tRO0UwRTVLUjtJekNpREksK0JBQThDO0lBTTlDLGdDQUFvRDtFbEQ2K0t0RDtBQUNGOztBMkZ6L0tBLHNEQUFBO0FDaERBOzs4QzVGOGlMOEM7QTRGemlMOUM7RUFDRSxtQjNGc0thO0UyRnJLYixjM0ZzS2E7RWlEeEhYLDRCQUE4QztFQU05QywrQkFBb0Q7RVFzQ3RELGdCbERUdUQ7RWtEMUJyRCxrQkFBa0I7RUFDbEIsaUJBQWlCO0ExRHcvS3JCOztBSzk0S0U7RUFFRSxjQUFjO0VBQ2QsWUFBWTtFQUdWLGFBQWE7RUFDYixRQUFRO0FMODRLZDs7QUsxNEtFO0VBQ0UsV0FBVztBTDY0S2Y7O0E0RjdqTEE7RWpDU0UsVy9CbUkyRDtFZ0NuSDNELFd4RDRGeUQ7RXlEcEd2RCx1QkFGcUM7RUFHckMsc0JBSHFDO0VDMEJyQyxrQkFBa0I7RUFDbEIsaUJBQWlCO0VaWWpCLCtCQUFvRDtBbERpaEx4RDs7QWlCNTVLUTtFMkUzS1I7SS9CaUJJLHdCQUZxQztJQUdyQyx1QkFIcUM7RTdEOGpMdkM7QUFDRjs7QThEaGtMSTtFQUNFLFcxRHNHcUQ7RTBEckdyRCxXQUFXO0E5RG1rTGpCOztBOEQ5akxNO0VBQ0UsWTFEZ0dvRDtBSmkrSzVEOztBOER6a0xJO0VBd0JFLFdBQVc7RUFDWCxXQUFXO0E5RHFqTGpCOztBNEY1bExBO0VqQ1NFLGdCL0JtSTJEO0VnQ25IM0QsV3hENEZ5RDtFeURwR3ZELHVCQUZxQztFQUdyQyxzQkFIcUM7RUMwQnJDLGtCQUFrQjtFQUNsQixpQkFBaUI7RVpZakIsK0JBQW9EO0FsRGdqTHhEOztBaUIzN0tRO0UyRTNLUjtJL0JpQkksd0JBRnFDO0lBR3JDLHVCQUhxQztFN0Q2bEx2QztBQUNGOztBOEQvbExJO0VBQ0UsVzFEc0dxRDtFMERyR3JELFdBQVc7QTlEa21MakI7O0E4RDdsTE07RUFDRSxZMURnR29EO0FKZ2dMNUQ7O0E4RHhtTEk7RUF3QkUsV0FBVztFQUNYLFdBQVc7QTlEb2xMakI7O0E0RjNuTEE7RTFDc0RJLCtCQUFvRDtFUzdDdEQsVy9CbUkyRDtFZ0NuSDNELFd4RDRGeUQ7RXlEcEd2RCx1QkFGcUM7RUFHckMsc0JBSHFDO0E3RG9uTHpDOztBaUJ4OUtRO0UyRTNLUjtJL0JpQkksd0JBRnFDO0lBR3JDLHVCQUhxQztFN0Qwbkx2QztBQUNGOztBOEQ1bkxJO0VBQ0UsVzFEc0dxRDtFMERyR3JELFdBQVc7QTlEK25MakI7O0E4RDFuTE07RUFDRSxZMURnR29EO0FKNmhMNUQ7O0E0Rm5wTEE7RWpDU0UsVy9CbUkyRDtFZ0NuSDNELFd4RDRGeUQ7RXlEcEd2RCx1QkFGcUM7RUFHckMsc0JBSHFDO0UrQmVyQyxrQkFBa0I7RTFDRGxCLGdDQUFrRDtBbEQrbkx0RDs7QWlCai9LUTtFMkUzS1I7SS9CaUJJLHdCQUZxQztJQUdyQyx1QkFIcUM7RTdEbXBMdkM7QUFDRjs7QThEcnBMSTtFQUNFLFcxRHNHcUQ7RTBEckdyRCxXQUFXO0E5RHdwTGpCOztBOERucExNO0VBQ0UsWTFEZ0dvRDtBSnNqTDVEOztBNEY1cUxBO0VqQ1NFLFcvQm1JMkQ7RWdDbkgzRCxXeEQ0RnlEO0V5RHBHdkQsdUJBRnFDO0VBR3JDLHNCQUhxQztFK0JxQnJDLGtCQUFrQjtBNUZncEx0Qjs7QWlCemdMUTtFMkUzS1I7SS9CaUJJLHdCQUZxQztJQUdyQyx1QkFIcUM7RTdEMnFMdkM7QUFDRjs7QThEN3FMSTtFQUNFLFcxRHNHcUQ7RTBEckdyRCxXQUFXO0E5RGdyTGpCOztBOEQzcUxNO0VBQ0UsWTFEZ0dvRDtBSjhrTDVEOztBaUJ6aExRO0UyRTNLUjtJakNTRSxXL0JtSTJEO0lnQ25IM0QsV3hENEZ5RDtJeURwR3ZELHVCQUZxQztJQUdyQyxzQkFIcUM7SUMwQnJDLGtCQUFrQjtJQUNsQixpQkFBaUI7RTlEb3FMbkI7QUFDRjs7QWlCcGlMUTtFMkUzS1I7SS9CaUJJLHdCQUZxQztJQUdyQyx1QkFIcUM7RTdEc3NMdkM7QUFDRjs7QWlCM2lMUTtFNkM3Sko7SUFDRSxXMURzR3FEO0kwRHJHckQsV0FBVztFOUQ0c0xmO0U4RHZzTEk7SUFDRSxZMURnR29EO0VKeW1MMUQ7RThEanRMRTtJQXdCRSxXQUFXO0lBQ1gsV0FBVztFOUQ0ckxmO0FBQ0Y7O0E0RmhyTEEsOENBQUE7QUN2REE7RW5DK0ZFLGlCbUM5RitCO0VuQzJEN0Isa0JBQWtCO0VBQ2xCLGlCQUFpQjtFbUMzRG5CLHFCQUptQjtBN0ZpdkxyQjs7QUt4a0xFO0VBRUUsY0FBYztFQUNkLFlBQVk7RUFHVixhQUFhO0VBQ2IsUUFBUTtBTHdrTGQ7O0FLcGtMRTtFQUNFLFdBQVc7QUx1a0xmOztBNkYxdkxBO0VBS0ksV0FBVztFQUNYLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsV0FWaUI7RUFXakIsVUFBVTtBN0Z5dkxkOztBNkZsd0xBO0VBZ0JNLGdCQUFnQjtFQUNoQixXQUFXO0E3RnN2TGpCOztBNkZ2d0xBO0VBcUJNLGFBQWE7QTdGc3ZMbkI7O0FpQjdsTFE7RTRFOUtSO0lBd0JRLGNBQWM7RTdGd3ZMcEI7QUFDRjs7QTZGanhMQTtFQStCSSxXQUFXO0E3RnN2TGY7O0E2RnJ4TEE7RUFzQ00sa0JBQWtCO0VBS2xCLHNCQUFzQjtFQUN0QixZQUFZO0VBQ1osV0FBVztFQUNYLDZCQUE2QjtFQUM3Qiw0QkFBNEI7QTdGK3VMbEM7O0E2Rjl4TEE7RUF5Q1EsYUFBYTtBN0Z5dkxyQjs7QTZGbHlMQTtFQWlEUSxZQUFZO0VBQ1osV0FBVztBN0ZxdkxuQjs7QWlCem5MUTtFNEU5S1I7SUF1RFEsWUFBWTtFN0ZxdkxsQjtBQUNGOztBaUIvbkxRO0U0RTlLUjtJQThEUSxZQUFZO0U3Rm92TGxCO0FBQ0Y7O0E2Rm56TEE7RTNDeURJLCtCQUFvRDtFMkN3QnBELGtCQUFrQjtFQUNsQixZQUFZO0E3RnV1TGhCOztBNkZ6ekxBO0VBc0ZJLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsT0FBTztFbkNPVCxnQmxEVHVEO0VrRDFCckQsa0JBQWtCO0VBQ2xCLGlCQUFpQjtFUkpqQixrQ0FBb0Q7QWxEMHdMeEQ7O0FLNXBMRTtFQUVFLGNBQWM7RUFDZCxZQUFZO0VBR1YsYUFBYTtFQUNiLFFBQVE7QUw0cExkOztBS3hwTEU7RUFDRSxXQUFXO0FMMnBMZjs7QWlCaHFMUTtFNEU5S1I7SUE4Rk0sUUFBUTtJQUNSLFNBQVM7RTdGcXZMYjtFNkZwMUxGO0lBa0dRLFFBQVE7RTdGcXZMZDtFNkZ2MUxGO0lBcUdVLGtCQUFrQjtFN0ZxdkwxQjtBQUNGOztBNkYzMUxBO0VsQ1lFLGdCL0JtSTJEO0VnQ25IM0QsV3hENEZ5RDtFeURwR3ZELHVCQUZxQztFQUdyQyxzQkFIcUM7RUMwQnJDLGtCQUFrQjtFQUNsQixpQkFBaUI7RVpZakIsK0JBQW9EO0VLckR0RCxnRUFBdUU7RUFDdkUsb0JzQ3lHK0I7RUFDM0IsWUFBWTtFQUNaLGtCQUFrQjtBN0Z5dkx4Qjs7QWlCM3JMUTtFNEU5S1I7SWhDb0JJLHdCQUZxQztJQUdyQyx1QkFIcUM7RTdENjFMdkM7QUFDRjs7QThELzFMSTtFQUNFLFcxRHNHcUQ7RTBEckdyRCxXQUFXO0E5RGsyTGpCOztBOEQ3MUxNO0VBQ0UsWTFEZ0dvRDtBSmd3TDVEOztBOER4MkxJO0VBd0JFLFdBQVc7RUFDWCxXQUFXO0E5RG8xTGpCOztBOEZoNExBOztrRDlGbzRMa0Q7QThGaDRMbEQ7RXBDNkZFLGdCbERUdUQ7RWtEMUJyRCxrQkFBa0I7RUFDbEIsaUJBQWlCO0VSVmpCLDRCQUE4QztFQU05QywrQkFBb0Q7QWxEZzFMeEQ7O0FLbHVMRTtFQUVFLGNBQWM7RUFDZCxZQUFZO0VBR1YsYUFBYTtFQUNiLFFBQVE7QUxrdUxkOztBSzl0TEU7RUFDRSxXQUFXO0FMaXVMZjs7QThGbDVMQTtFbkNVRSxXL0JtSTJEO0VnQ25IM0QsV3hENEZ5RDtFeURwR3ZELHVCQUZxQztFQUdyQyxzQkFIcUM7QTdEeTRMekM7O0FpQjd1TFE7RTZFNUtSO0lqQ2tCSSx3QkFGcUM7SUFHckMsdUJBSHFDO0U3RCs0THZDO0FBQ0Y7O0E4RGo1TEk7RUFDRSxXMURzR3FEO0UwRHJHckQsV0FBVztBOURvNUxqQjs7QThELzRMTTtFQUNFLFkxRGdHb0Q7QUprekw1RDs7QThGejZMQTtFbkNVRSxXL0JtSTJEO0VnQ25IM0QsV3hENEZ5RDtFeURwR3ZELGdCckR1RVM7RXFEdEVULGVyRHNFUztBUnUxTGI7O0E4RGo2TEk7RUFDRSxXMURzR3FEO0UwRHJHckQsV0FBVztBOURvNkxqQjs7QThELzVMTTtFQUNFLFkxRGdHb0Q7QUprMEw1RDs7QThGejdMQTtFcEM2RkUsZ0JsRFR1RDtFa0QxQnJELGtCQUFrQjtFQUNsQixpQkFBaUI7QTFEbzRMckI7O0FLMXhMRTtFQUVFLGNBQWM7RUFDZCxZQUFZO0VBR1YsYUFBYTtFQUNiLFFBQVE7QUwweExkOztBS3R4TEU7RUFDRSxXQUFXO0FMeXhMZjs7QThGMThMQTtFbkNVRSxXL0JtSTJEO0VnQ25IM0QsV3hENEZ5RDtFeURwR3ZELHVCQUZxQztFQUdyQyxzQkFIcUM7QTdEaThMekM7O0FpQnJ5TFE7RTZFNUtSO0lqQ2tCSSx3QkFGcUM7SUFHckMsdUJBSHFDO0U3RHU4THZDO0FBQ0Y7O0E4RHo4TEk7RUFDRSxXMURzR3FEO0UwRHJHckQsV0FBVztBOUQ0OExqQjs7QThEdjhMTTtFQUNFLFkxRGdHb0Q7QUowMkw1RDs7QThGaitMQTtFQW1CVSxVQUFVO0E5Rms5THBCOztBaUJ6ekxRO0U2RTVLUjtJbkNVRSxnQi9CbUkyRDtJZ0NuSDNELFd4RDRGeUQ7SXlEcEd2RCx1QkFGcUM7SUFHckMsc0JBSHFDO0lDMEJyQyxrQkFBa0I7SUFDbEIsaUJBQWlCO0U5RG84TG5CO0FBQ0Y7O0FpQnAwTFE7RTZFNUtSO0lqQ2tCSSx3QkFGcUM7SUFHckMsdUJBSHFDO0U3RHMrTHZDO0FBQ0Y7O0FpQjMwTFE7RTZDN0pKO0lBQ0UsVzFEc0dxRDtJMERyR3JELFdBQVc7RTlENCtMZjtFOER2K0xJO0lBQ0UsWTFEZ0dvRDtFSnk0TDFEO0U4RGovTEU7SUF3QkUsV0FBVztJQUNYLFdBQVc7RTlENDlMZjtFOEZwZ01GO0luQ1VFLGdCL0JtSTJEO0lnQ25IM0QsV3hENEZ5RDtJeURwR3ZELHVCQUZxQztJQUdyQyxzQkFIcUM7SUMwQnJDLGtCQUFrQjtJQUNsQixpQkFBaUI7RTlEaStMbkI7QUFDRjs7QWlCajJMUTtFNkU1S1I7SWpDa0JJLHdCQUZxQztJQUdyQyx1QkFIcUM7RTdEbWdNdkM7QUFDRjs7QWlCeDJMUTtFNkM3Sko7SUFDRSxXMURzR3FEO0kwRHJHckQsV0FBVztFOUR5Z01mO0U4RHBnTUk7SUFDRSxZMURnR29EO0VKczZMMUQ7RThEOWdNRTtJQXdCRSxXQUFXO0lBQ1gsV0FBVztFOUR5L0xmO0U4RmppTUY7SUF1Q1ksVUFBVTtFOUY2L0xwQjtBQUNGOztBaUJ6M0xRO0U2RTVLUjtJbkNVRSxVL0JtSTJEO0lnQ25IM0QsV3hENEZ5RDtJeURwR3ZELHVCQUZxQztJQUdyQyxzQkFIcUM7SUMwQnJDLGtCQUFrQjtJQUNsQixpQkFBaUI7RTlEb2dNbkI7QUFDRjs7QWlCcDRMUTtFNkU1S1I7SWpDa0JJLHdCQUZxQztJQUdyQyx1QkFIcUM7RTdEc2lNdkM7QUFDRjs7QWlCMzRMUTtFNkM3Sko7SUFDRSxXMURzR3FEO0kwRHJHckQsV0FBVztFOUQ0aU1mO0U4RHZpTUk7SUFDRSxZMURnR29EO0VKeThMMUQ7RThEampNRTtJQXdCRSxXQUFXO0lBQ1gsV0FBVztFOUQ0aE1mO0U4RnBrTUY7SW5DVUUsZ0IvQm1JMkQ7SWdDbkgzRCxXeEQ0RnlEO0l5RHBHdkQsdUJBRnFDO0lBR3JDLHNCQUhxQztJQzBCckMsa0JBQWtCO0lBQ2xCLGlCQUFpQjtFOURpaU1uQjtBQUNGOztBaUJqNkxRO0U2RTVLUjtJakNrQkksd0JBRnFDO0lBR3JDLHVCQUhxQztFN0Rta012QztBQUNGOztBaUJ4NkxRO0U2QzdKSjtJQUNFLFcxRHNHcUQ7STBEckdyRCxXQUFXO0U5RHlrTWY7RThEcGtNSTtJQUNFLFkxRGdHb0Q7RUpzK0wxRDtFOEQ5a01FO0lBd0JFLFdBQVc7SUFDWCxXQUFXO0U5RHlqTWY7RThGam1NRjtJQTJEWSxVQUFVO0U5RnlpTXBCO0FBQ0Y7O0ErRnptTUE7OzZDL0Y2bU02QztBK0Z6bU03QztFN0N1REksK0JBQW9EO0FsRHFqTXhEOztBK0Y1bU1BO0VyQzZGRSxpQnFDekZpQztFckNzRC9CLGtCQUFrQjtFQUNsQixpQkFBaUI7QTFEdWpNckI7O0FLNzhMRTtFQUVFLGNBQWM7RUFDZCxZQUFZO0VBR1YsYUFBYTtFQUNiLFFBQVE7QUw2OExkOztBS3o4TEU7RUFDRSxXQUFXO0FMNDhMZjs7QStGcm5NQSw2Q0FBQTtBQ1pBO0VBQ0MsMEJBQTBCO0VBQzFCLG9DQUFvQztFQUNwQyw0UUFJMEQ7QWhHaW9NM0Q7O0FnRzluTUE7RUFDQywwQkFBMEI7RUFDekIsbUNBQW1DO0VBQ25DLGtDQUFrQztFQUNuQyxrQkFBa0I7RUFDbEIsb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQiwyRkFBQTtFQUNBLHFCQUFxQjtFQUNyQixvQkFBb0I7QWhHaW9NckI7O0FnRzduTUE7RUFDQyxnQkFBZ0I7QWhHZ29NakI7O0FnRzduTUE7RUFDQyxnQkFBZ0I7QWhHZ29NakI7O0FnRzduTUE7RUFDQyxnQkFBZ0I7QWhHZ29NakI7O0FnRzduTUE7RUFDQyxnQkFBZ0I7QWhHZ29NakI7O0FnRzduTUE7RUFDQyxnQkFBZ0I7QWhHZ29NakI7O0FnRzduTUE7RUFDQyxnQkFBZ0I7QWhHZ29NakI7O0FnRzduTUE7RUFDQyxnQkFBZ0I7QWhHZ29NakI7O0FnRzduTUE7RUFDQyxnQkFBZ0I7QWhHZ29NakI7O0FnRzduTUE7RUFDQyxnQkFBZ0I7QWhHZ29NakI7O0FpR3hyTUEsV0FBQTtBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxzQkFBc0I7RUFDdEIsMkJBQTJCO0VBQzNCLHlCQUF5QjtFQUV6QixzQkFBc0I7RUFDdEIscUJBQXFCO0VBQ3JCLGlCQUFpQjtFQUVqQixtQkFBbUI7RUFDbkIsd0NBQXdDO0FqRzByTTFDOztBaUd4ck1BO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixjQUFjO0VBQ2QsU0FBUztFQUNULFVBQVU7QWpHMnJNWjs7QWlHaHNNQTtFQVFJLGFBQWE7QWpHNHJNakI7O0FpR3BzTUE7RUFZSSxlQUFlO0VBQ2YsWUFBWTtBakc0ck1oQjs7QWlHenJNQTs7RUFNRSwrQkFBK0I7QWpHNHJNakM7O0FpR3pyTUE7RUFDRSxrQkFBa0I7RUFDbEIsT0FBTztFQUNQLE1BQU07RUFDTixjQUFjO0VBQ2QsaUJBQWlCO0VBQ2pCLGtCQUFrQjtBakc0ck1wQjs7QWlHbHNNQTtFQVVJLFdBQVc7RUFDWCxjQUFjO0FqRzRyTWxCOztBaUd2c01BO0VBZUksV0FBVztBakc0ck1mOztBaUd6ck1FO0VBQ0Usa0JBQWtCO0FqRzRyTXRCOztBaUd6ck1BO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWixlQUFlO0VBV2YsYUFBYTtBakdrck1mOztBQUVBO0VpRzdyTUksWUFBWTtBakcrck1oQjs7QWlHcHNNQTtFQVFJLGNBQWM7QWpHZ3NNbEI7O0FpR3hzTUE7RUFXSSxhQUFhO0FqR2lzTWpCOztBaUc1c01BO0VBaUJJLG9CQUFvQjtBakcrck14Qjs7QWlHNXJNRTtFQUNFLGNBQWM7QWpHK3JNbEI7O0FpRzVyTUU7RUFDRSxrQkFBa0I7QWpHK3JNdEI7O0FpRzVyTUU7RUFDRSxjQUFjO0VBQ2QsWUFBWTtFQUNaLDZCQUE2QjtBakcrck1qQzs7QWlHNXJNQTtFQUNFLGFBQWE7QWpHK3JNZjs7QWlHdnBNQSxXQUFBO0FBR0U7RUFDRSxxRUFBdUU7QWpHd3BNM0U7O0FpR3BwTUEsV0FBQTtBQUVBOztFQUVFLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2QsWUFBWTtFQUNaLFdBQVc7RUFDWCxnQkFBZ0I7RUFDaEIsY0FBYztFQUNkLGVBQWU7RUFDZix1QkFBdUI7RUFDdkIsa0JBQWtCO0VBQ2xCLFFBQVE7RUFHUiw2QkFBNkI7RUFDN0IsVUFBVTtFQUNWLFlBQVk7RUFDWixhQUFhO0VBQ2IsYUFBYTtBakdzcE1mOztBaUd4cU1BOzs7RUFvQkksYUFBYTtFQUNiLHVCQUF1QjtFQUN2QixrQkFBa0I7QWpHMHBNdEI7O0FpR2hyTUE7OztFQXdCTSxVQXZEb0I7QWpHcXRNMUI7O0FpR3RyTUE7O0VBNEJJLGFBMUQyQjtBakd5dE0vQjs7QWlHM3JNQTs7RUErQkksMEJBdEU2QjtFQXVFN0IsZUFBZTtFQUNmLGNBQWM7RUFDZCxjaEc5Qm9CO0VnRytCcEIsYUFuRXdCO0VBb0V4QixtQ0FBbUM7RUFDbkMsa0NBQWtDO0FqR2lxTXRDOztBaUc3cE1BO0VBQ0UsU0FBUztBakdncU1YOztBQUVBO0VpR2hxTUksVUFBVTtFQUNWLFlBQVk7QWpHa3FNaEI7O0FpR3RxTUE7RUFPSSxZQXBGbUI7QWpHdXZNdkI7O0FBRUE7RWlHbnFNTSxZQXJGaUI7QWpHMHZNdkI7O0FpR2hxTUE7RUFDRSxVQUFVO0FqR21xTVo7O0FBRUE7RWlHbnFNSSxXQUFXO0VBQ1gsV0FBVztBakdxcU1mOztBaUd6cU1BO0VBT0ksWUFqR21CO0FqR3V3TXZCOztBQUVBO0VpR3RxTU0sWUFwR2lCO0FqRzR3TXZCOztBaUducU1BLFNBQUE7QUFFQTtFQUNFLG1CQUFtQjtBakdxcU1yQjs7QWlHbHFNQTtFQUNFLGtCQUFrQjtFQUNsQixhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLFNBQVM7RUFDVCxXQUFXO0FqR3FxTWI7O0FpRzdxTUE7RUFVSSxrQkFBa0I7RUFDbEIscUJBQXFCO0VBQ3JCLFlBQVk7RUFDWixXQUFXO0VBQ1gsYUFBYTtFQUNiLFVBQVU7RUFDVixlQUFlO0FqR3VxTW5COztBaUd2ck1BO0VBa0JNLFNBQVM7RUFDVCx1QkFBdUI7RUFDdkIsY0FBYztFQUNkLFlBQVk7RUFDWixXQUFXO0VBQ1gsYUFBYTtFQUNiLGdCQUFnQjtFQUNoQixjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixlQUFlO0FqR3lxTXJCOztBaUdyc01BO0VBOEJRLGFBQWE7QWpHMnFNckI7O0FpR3pzTUE7RUFnQ1UsVUExSWdCO0FqR3V6TTFCOztBaUc3c01BO0VBb0NRLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sT0FBTztFQUNQLFlBcEpjO0VBcUpkLFdBQVc7RUFDWCxZQUFZO0VBQ1osMEJBNUp5QjtFQTZKekIsY0F2Slk7RUF3SlosaUJBQWlCO0VBQ2pCLGtCQUFrQjtFQUNsQixjaEdsR1c7RWdHbUdYLGFBeEp1QjtFQXlKdkIsbUNBQW1DO0VBQ25DLGtDQUFrQztBakc2cU0xQzs7QWlHOXRNQTtFQXFETSxjaEd6R2E7RWdHMEdiLGFBaktzQjtBakc4ME01Qjs7QWtHbDhNQTtFQUNFLGdCQUFnQjtBbEdxOE1sQjs7QWtHbDhNQTtFQUNFLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sT0FBTztFQUNQLGFBQWE7RUFDYix1QkFBdUI7RUFDdkIsMkRBQTJEO0VBQzNELFlBQVk7RUFDWixhQUFhO0FsR3E4TWY7O0FrR2w4TUE7RUFDRSxrQkFBa0I7RUFDbEIsT0FBTztFQUNQLFdBQVc7RUFDWCxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxtQkFBbUI7RUFDbkIsYUFBYTtBbEdxOE1mOztBa0dsOE1BO0VBQ0UsY0FBYztFQUNkLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUVsQixpQkFBQTtFQUNBLHVCQUF1QjtBbEdvOE16Qjs7QWtHajhNQTtFQUNFLFlBQVk7QWxHbzhNZDs7QWtHajhNQTtFQUNFLGtCQUFrQjtHQUNsQixPQUFRO0VBQ1IsWUFBWTtFQUNaLGFBQWE7RUFDYixjQUFjO0VBQ2Qsa0JBQWtCO0VBRWxCOzBDbEdtOE13QztFa0dqOE14Qyx1QkFBdUI7QWxHbThNekI7O0FrR2g4TUE7RUFDRSxXQUFXO0VBQ1gsY0FBYztFQUNkLFdBQVc7QWxHbThNYjs7QWtHaDhNQTtFQUNFLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsT0FBTztFQUNQLFdBQVc7RUFDWCxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLGNBQWM7QWxHbThNaEI7O0FrR2g4TUE7RUFDRSxjQUFjO0VBQ2QsV0FBVztFQUNYLFlBQVk7RUFDWixjQUFjO0VBQ2QsNkNBQTZDO0FsR204TS9DOztBa0doOE1BO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsWUFBWTtFQUNaLFdBQVc7RUFDWCxXQUFXO0FsR204TWI7O0FrR2g4TUE7RUFDRSxPQUFPO0FsR204TVQ7O0FrR2g4TUE7RUFDRSxhQUFhO0VBQ2IsMkdBQTJHO0FsR204TTdHOztBa0doOE1BO0VBQ0UsWUFBWTtFQUNaLGVBQWU7RUFDZixjQUFjO0FsR204TWhCOztBa0doOE1BO0VBQ0UsVUFBVTtFQUNWLE9BQU87RUFDUCxXQUFXO0VBQ1gsbURBQW1EO0VBQ25ELDBEQUEwRDtFQUMxRCxVQUFVO0VBSVYsd0JBQXdCO0FsR204TTFCOztBa0doOE1BO0VBQ0UsNERBQTREO0VBQzVELFVBQVU7QWxHbThNWjs7QWtHaDhNQTtFQUNFLFVBQVU7RUFDVixRQUFRO0VBQ1IsWUFBWTtFQUNaLG9EQUFvRDtFQUNwRCwwREFBMEQ7RUFDMUQsVUFBVTtFQUlWLHdCQUF3QjtBbEdtOE0xQjs7QWtHaDhNQTtFQUNFLDREQUE0RDtFQUM1RCxVQUFVO0FsR204TVo7O0FrR2g4TUE7RUFDRSxjQUFjO0VBQ2QsZ0JBQWdCO0dBQ2hCLE9BQVE7RUFDUixXQUFXO0VBQ1gsOEJBQThCO0VBQzlCLCtCQUErQjtBbEdtOE1qQzs7QWtHaDhNQTtFQUNFLFdBQVc7RUFDWCxjQUFjO0VBQ2QsV0FBVztBbEdtOE1iOztBa0doOE1BO0VBQ0UsY0FBYztFQUNkLFdBQVc7QWxHbThNYjs7QWtHaDhNQTtFQUNFLFVBQVU7RUFDVixXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtBbEdtOE1wQjs7QWtHaDhNQTtFQUNFLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsZ0JBQWdCO0FsR204TWxCOztBa0doOE1BO0VBQ0UsV0FBVztBbEdtOE1iOztBa0doOE1BO0VBQ0UsY0FBYztFQUNkLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLGNBQWM7QWxHbThNaEI7O0FrR2g4TUE7RUFDRSxjQUFjO0VBQ2QsWUFBWTtFQUNaLFdBQVc7RUFDWCxZQUFZO0VBQ1oscURBQXFEO0VBQ3JELGlCQUFpQjtFQUNqQixhQUFhO0VBQ2IsMkRBQTJEO0VBQzNELFlBQVk7RUFJWix3QkFBd0I7QWxHbThNMUI7O0FrR2g4TUE7RUFDRSxlQUFlO0VBQ2YsNERBQTREO0VBQzVELFVBQVU7QWxHbThNWjs7QW1HN29OQTs7O0VBSUUsc0JBQXNCO0VBQ3RCLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsb0JBQW9CO0VBQ3BCLG9CQUFvQjtFQUNwQixrRmxHY3NGO0VrR2J0RixnQkFBZ0I7RUFDaEIsY0FBYztFQUNkLFNBQVM7RUFDVCxVQUFVO0VBQ1Ysb0JBQW9CO0VBQ3BCLHFCQUFxQjtFQUNyQixjQUFjO0VBQ2QsZ0JBQWdCO0VBQ2hCLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIscUJBQXFCO0VBQ3JCLGdCQUFnQjtBbkdncE5sQjs7QW1HN29OQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0VBQ1osVUFBVTtFQUNWLGtCQUFrQjtFQUNsQiwyQkFBMkI7RUFDM0IscUVBQXFFO0FuR2dwTnZFOztBbUc3b05BOztFQUVFLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsbUJBQW1CO0VBQ25CLFdBQVc7RUFDWCxZQUFZO0FuR2dwTmQ7O0FtRzdvTkE7RUFDRSxXQUFXO0VBQ1gsdUJBQXVCO0VBQ3ZCLGlDQUFpQztFQUNqQywwQ0FBa0M7VUFBbEMsa0NBQWtDO0FuR2dwTnBDOztBbUc3b05BO0VBQ0UsVUFBVTtFQUNWLG1CQUFtQjtFQUNuQix3QkFBd0I7QW5HZ3BOMUI7O0FtRzdvTkE7RUFDRTtJQUFLLHVCQUF1QjtFbkdpcE41QjtFbUdocE5BO0lBQU8seUJBQXlCO0VuR21wTmhDO0FBQ0Y7O0FtR3RwTkE7RUFDRTtJQUFLLHVCQUF1QjtFbkdpcE41QjtFbUdocE5BO0lBQU8seUJBQXlCO0VuR21wTmhDO0FBQ0Y7O0FtR2pwTkE7RUFDRSxxQkFBcUI7RUFDckIsZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsa0ZsRzFDc0Y7RWtHMkN0RixrQkFBa0I7RUFDbEIseUJBQXlCO0FuR29wTjNCOztBbUdqcE5BOzs7Ozs7RUFNRSxnQkFBZ0I7RUFDaEIsdUJBQWU7VUFBZixlQUFlO0FuR29wTmpCOztBbUdqcE5BO0VBQ0UsbUJBQW1CO0VBQ25CLGNBQWM7RUFDZCxXQUFXO0FuR29wTmI7O0FtR2pwTkE7RUFDRSxZQUFZO0VBQ1osV0FBVztBbkdvcE5iOztBbUdqcE5BO0VBQ0UsV0FBVztFQUNYLGVBQWU7RUFDZixZQUFZO0VBQ1osV0FBVztFQUNYLGlEQUFpRDtFQUNqRCxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxTQUFTO0VBQ1QsUUFBUTtFQUNSLFVBQVU7QW5Hb3BOWjs7QW1HanBOQTtFQUNFLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sUUFBUTtFQUNSLFNBQVM7RUFDVCxPQUFPO0VBQ1AsV0FBVztFQUNYLFVBQVU7RUFDVixxRUFBcUU7QW5Hb3BOdkU7O0FtR2pwTkE7RUFDRSxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsUUFBUTtFQUNSLFNBQVM7RUFDVCxVQUFVO0VBQ1YsaURBQWlEO0VBQ2pELG1CQUF5QjtFQUN6QiwyRkFBOEg7RUFHOUgsa0ZBQWtHO0VBQ2xHLGdIQUFnSDtBbkdvcE5sSDs7QW1HanBOQTtFQUNFLHNCQUFzQjtFQUN0QiwyQkFBMkI7RUFDM0IsNEJBQTRCO0VBQzVCLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sT0FBTztFQUNQLFFBQVE7RUFDUixTQUFTO0VBQ1QsVUFBVTtFQUNWLGdEQUFnRDtBbkdvcE5sRDs7QW1HanBOQTtFQUNFLFVBQVU7QW5Hb3BOWjs7QW1HanBOQTtFQUNFLGNBQWM7RUFDZCxtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixrQkFBa0I7QW5Hb3BOcEI7O0FtR2pwTkE7RUFDRSxVQUFVO0VBQ1YsbUJBQW1CO0FuR29wTnJCOztBbUdqcE5BO0VBQ0UsVUFBVTtFQUNWLGtCQUFrQjtBbkdvcE5wQjs7QW1HanBOQTtFQUNFLGNBQWM7RUFDZCxZQUFZO0VBQ1osV0FBVztFQUNYLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsU0FBUztFQUNULGVBQWU7RUFDZix1REFBdUQ7QW5Hb3BOekQ7O0FtR2pwTkE7RUFDRSxjQUFjO0VBQ2QsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1Ysa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxnQkFBZ0I7RUFDaEIsY0FBYztFQUNkLG1CQUFtQjtBbkdvcE5yQjs7QW1HanBOQTs7RUFFRSxrQkFBa0I7QW5Hb3BOcEI7O0FtR2pwTkE7RUFDRSxtQkFBbUI7RUFDbkIsc0JBQXNCO0VBQ3RCLGVBQWU7RUFDZixxRUFBcUU7QW5Hb3BOdkU7O0FtR2pwTkE7O0VBRUUscUJBQXFCO0VBQ3JCLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osc0JBQXNCO0VBQ3RCLG1DQUFtQztFQUNuQyxZQUFZO0VBQ1osb0JBQW9CO0VBQ3BCLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsY0FBYztFQUNkLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsZUFBZTtFQUNmLG1KQUE4STtFQUM5SSw0Q0FBNEM7QW5Hb3BOOUM7O0FtR2xwTkEsY0FBQTtBQUNBO0VBQ0UsV0FBVztFQUNYLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsU0FBUztFQUNULFdBQVc7RUFDWCxVQUFVO0VBQ1YsU0FBUztFQUNULDZCQUE2QjtFQUM3QixtQ0FBbUM7RUFDbkMsc0NBQXNDO0FuR3FwTnhDOztBbUdscE5BO0VBQ0UsZ0JBQWdCO0VBQ2hCLFlBQVk7RUFDWixvQ0FBbUM7RUFDbkMsY0FBYztBbkdxcE5oQjs7QW1HbHBOQTtFQUNFLHFDQUFvQztBbkdxcE50Qzs7QW1HbHBOQTtFQUNFLGtDQUFrQztBbkdxcE5wQzs7QW1HbHBOQTtFQUNFLGdCQUFnQjtFQUNoQixvQ0FBbUM7QW5HcXBOckM7O0FtR2xwTkE7RUFDRSxnQkFBZ0I7RUFDaEIsOENBQTZDO0FuR3FwTi9DOztBbUdscE5BO0VBQ0UsVUFBVTtFQUNWLGtCQUFrQjtFQUNsQiw0QkFBNEI7QW5HcXBOOUI7O0FtR2xwTkE7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxRQUFRO0VBQ1IsU0FBUztFQUNULFlBQVk7RUFDWixZQUFZO0VBQ1osZUFBZTtFQUNmLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsY0FBYztFQUNkLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsVUFBVTtFQUNWLDRCQUE0QjtBbkdxcE45Qjs7QW1HbHBOQTtFQUNFLFVBQVU7RUFDVixtQkFBbUI7RUFDbkIsbUJBQW1CO0VBQ25CLHFCQUFxQjtBbkdxcE52Qjs7QW1HbHBOQTtFQUNFLGNBQWM7RUFDZCxxQkFBcUI7RUFDckIsZ0NBQWdDO0FuR3FwTmxDOztBbUdscE5BO0VBQ0UseUJBQXlCO0FuR3FwTjNCOztBb0cvN05BLGFBQUE7QUFDQTtFQUNFLDZCQUE2QjtFQUM3QixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBRWhCLGlEQUFpRDtBcEdpOE5uRDs7QW9HOTdOQTtFQUNFLDZCQUE2QjtFQUM3QixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLGVBQWU7RUFDZixjQUFjO0VBQ2Qsc0JBQXNCO0VBQ3RCLG9CQUFvQjtFQUNwQixxQkFBcUI7RUFDckIsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQixjQUFjO0VBQ2QscUNBQXFDO0VBQ3JDLG1DQUFtQztBcEdpOE5yQyIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qIHVybCBwYXRocyAqL1xuLyoqXHJcbiAqIEZvbnQgU2l6ZSBIZWFkbGluZXNcclxuICovXG4vKipcclxuKiBGb250IFNpemUgSGVhZGxpbmVzIE1vYmlsZVxyXG4qL1xuLyoqXHJcbiAqIEZvbnQgU2l6ZSBCb2R5XHJcbiAqL1xuLyoqXHJcbiogRm9udCBTaXplIEJvZHkgTW9iaWxlXHJcbiovXG4vKipcclxuKiBGb250IFdlaWdodHNcclxuKi9cbi8qIGRlZmluZSBmb250LWNvbG9ycyAqL1xuLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlc1xuICogVmVyc2lvbiA2LjYuM1xuICogaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cbi8qISBub3JtYWxpemUuY3NzIHY4LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbn1cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgbWFyZ2luOiAwO1xufVxuXG5idXR0b24sXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7XG59XG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICBmb250OiBpbmhlcml0O1xufVxuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZm91bmRhdGlvbi1tcSB7XG4gIGZvbnQtZmFtaWx5OiBcInNtYWxsPTBlbSZtZWRpdW09NDBlbSZsYXJnZT02MC42MjVlbSZ4bGFyZ2U9NzVlbSZ4eGxhcmdlPTkwZW1cIjtcbn1cblxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbn1cblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogI0ZERkNGQztcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvIFNsYWJcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMkEyNzIwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbn1cblxudGV4dGFyZWEge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbn1cblxuc2VsZWN0IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbn1cblxuLm1hcF9jYW52YXMgaW1nLFxuLm1hcF9jYW52YXMgZW1iZWQsXG4ubWFwX2NhbnZhcyBvYmplY3QsXG4ubXFhLWRpc3BsYXkgaW1nLFxuLm1xYS1kaXNwbGF5IGVtYmVkLFxuLm1xYS1kaXNwbGF5IG9iamVjdCB7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5idXR0b24ge1xuICBwYWRkaW5nOiAwO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IGF1dG87XG59XG5cbltkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSBidXR0b24ge1xuICBvdXRsaW5lOiAwO1xufVxuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG5cbi5pcy12aXNpYmxlIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cblxuLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmZkLWZvcm1zIFt0eXBlPSd0ZXh0J10sIC5mZC1mb3JtcyBbdHlwZT0ncGFzc3dvcmQnXSwgLmZkLWZvcm1zIFt0eXBlPSdkYXRlJ10sIC5mZC1mb3JtcyBbdHlwZT0nZGF0ZXRpbWUnXSwgLmZkLWZvcm1zIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLCAuZmQtZm9ybXMgW3R5cGU9J21vbnRoJ10sIC5mZC1mb3JtcyBbdHlwZT0nd2VlayddLCAuZmQtZm9ybXMgW3R5cGU9J2VtYWlsJ10sIC5mZC1mb3JtcyBbdHlwZT0nbnVtYmVyJ10sIC5mZC1mb3JtcyBbdHlwZT0nc2VhcmNoJ10sIC5mZC1mb3JtcyBbdHlwZT0ndGVsJ10sIC5mZC1mb3JtcyBbdHlwZT0ndGltZSddLCAuZmQtZm9ybXMgW3R5cGU9J3VybCddLCAuZmQtZm9ybXMgW3R5cGU9J2NvbG9yJ10sXG4uZmQtZm9ybXMgdGV4dGFyZWEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMi40Mzc1cmVtO1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiN2I2YjY7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZERkNGQztcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMTAsIDEwLCAxMCwgMC4xKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4uZmQtZm9ybXMgW3R5cGU9J3RleHQnXTpmb2N1cywgLmZkLWZvcm1zIFt0eXBlPSdwYXNzd29yZCddOmZvY3VzLCAuZmQtZm9ybXMgW3R5cGU9J2RhdGUnXTpmb2N1cywgLmZkLWZvcm1zIFt0eXBlPSdkYXRldGltZSddOmZvY3VzLCAuZmQtZm9ybXMgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ106Zm9jdXMsIC5mZC1mb3JtcyBbdHlwZT0nbW9udGgnXTpmb2N1cywgLmZkLWZvcm1zIFt0eXBlPSd3ZWVrJ106Zm9jdXMsIC5mZC1mb3JtcyBbdHlwZT0nZW1haWwnXTpmb2N1cywgLmZkLWZvcm1zIFt0eXBlPSdudW1iZXInXTpmb2N1cywgLmZkLWZvcm1zIFt0eXBlPSdzZWFyY2gnXTpmb2N1cywgLmZkLWZvcm1zIFt0eXBlPSd0ZWwnXTpmb2N1cywgLmZkLWZvcm1zIFt0eXBlPSd0aW1lJ106Zm9jdXMsIC5mZC1mb3JtcyBbdHlwZT0ndXJsJ106Zm9jdXMsIC5mZC1mb3JtcyBbdHlwZT0nY29sb3InXTpmb2N1cyxcbi5mZC1mb3JtcyB0ZXh0YXJlYTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyQTI3MjA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGREZDRkM7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggI2I3YjZiNjtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG59XG5cbi5mZC1mb3JtcyB0ZXh0YXJlYSB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLmZkLWZvcm1zIHRleHRhcmVhW3Jvd3NdIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uZmQtZm9ybXMgaW5wdXQ6ZGlzYWJsZWQsIC5mZC1mb3JtcyBpbnB1dFtyZWFkb25seV0sXG4uZmQtZm9ybXMgdGV4dGFyZWE6ZGlzYWJsZWQsXG4uZmQtZm9ybXMgdGV4dGFyZWFbcmVhZG9ubHldIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmZkLWZvcm1zIFt0eXBlPSdzdWJtaXQnXSxcbi5mZC1mb3JtcyBbdHlwZT0nYnV0dG9uJ10ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAxcHg7XG59XG5cbi5mZC1mb3JtcyBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5mZC1mb3JtcyA6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNiN2I2YjY7XG59XG5cbi5mZC1mb3JtcyBbdHlwZT0nZmlsZSddLFxuLmZkLWZvcm1zIFt0eXBlPSdjaGVja2JveCddLFxuLmZkLWZvcm1zIFt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbn1cblxuLmZkLWZvcm1zIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG4uZmQtZm9ybXMgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5mZC1mb3JtcyBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsW2Zvcl0sXG4uZmQtZm9ybXMgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbFtmb3JdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZmQtZm9ybXMgbGFiZWwgPiBbdHlwZT0nY2hlY2tib3gnXSxcbi5mZC1mb3JtcyBsYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG59XG5cbi5mZC1mb3JtcyBbdHlwZT0nZmlsZSddIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5mZC1mb3JtcyBsYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjg7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuXG4uZmQtZm9ybXMgbGFiZWwubWlkZGxlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41NjI1cmVtIDA7XG59XG5cbi5mZC1mb3JtcyAuaGVscC10ZXh0IHtcbiAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgY29sb3I6ICMwYTBhMGE7XG59XG5cbi5mZC1mb3JtcyAuaW5wdXQtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG5cbi5mZC1mb3JtcyAuaW5wdXQtZ3JvdXAgPiA6Zmlyc3QtY2hpbGQsIC5mZC1mb3JtcyAuaW5wdXQtZ3JvdXAgPiA6Zmlyc3QtY2hpbGQuaW5wdXQtZ3JvdXAtYnV0dG9uID4gKiB7XG4gIGJvcmRlci1yYWRpdXM6IDFweCAwIDAgMXB4O1xufVxuXG4uZmQtZm9ybXMgLmlucHV0LWdyb3VwID4gOmxhc3QtY2hpbGQsIC5mZC1mb3JtcyAuaW5wdXQtZ3JvdXAgPiA6bGFzdC1jaGlsZC5pbnB1dC1ncm91cC1idXR0b24gPiAqIHtcbiAgYm9yZGVyLXJhZGl1czogMCAxcHggMXB4IDA7XG59XG5cbi5mZC1mb3JtcyAuaW5wdXQtZ3JvdXAtbGFiZWwsIC5mZC1mb3JtcyAuaW5wdXQtZ3JvdXAtZmllbGQsIC5mZC1mb3JtcyAuaW5wdXQtZ3JvdXAtYnV0dG9uLCAuZmQtZm9ybXMgLmlucHV0LWdyb3VwLWJ1dHRvbiBhLFxuLmZkLWZvcm1zIC5pbnB1dC1ncm91cC1idXR0b24gaW5wdXQsXG4uZmQtZm9ybXMgLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4uZmQtZm9ybXMgLmlucHV0LWdyb3VwLWJ1dHRvbiBsYWJlbCB7XG4gIG1hcmdpbjogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmZkLWZvcm1zIC5pbnB1dC1ncm91cC1sYWJlbCB7XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2I3YjZiNjtcbiAgYmFja2dyb3VuZDogI2YxZjFmMTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAwIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5mZC1mb3JtcyAuaW5wdXQtZ3JvdXAtbGFiZWw6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IDA7XG59XG5cbi5mZC1mb3JtcyAuaW5wdXQtZ3JvdXAtbGFiZWw6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuXG4uZmQtZm9ybXMgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZmxleDogMSAxIDBweDtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uZmQtZm9ybXMgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAwIDAgYXV0bztcbn1cblxuLmZkLWZvcm1zIC5pbnB1dC1ncm91cC1idXR0b24gYSxcbi5mZC1mb3JtcyAuaW5wdXQtZ3JvdXAtYnV0dG9uIGlucHV0LFxuLmZkLWZvcm1zIC5pbnB1dC1ncm91cC1idXR0b24gYnV0dG9uLFxuLmZkLWZvcm1zIC5pbnB1dC1ncm91cC1idXR0b24gbGFiZWwge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG4uZmQtZm9ybXMgZmllbGRzZXQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbn1cblxuLmZkLWZvcm1zIGxlZ2VuZCB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4uZmQtZm9ybXMgLmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAxLjEyNXJlbSAwO1xuICBwYWRkaW5nOiAxLjI1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYjdiNmI2O1xufVxuXG4uZmQtZm9ybXMgLmZpZWxkc2V0IGxlZ2VuZCB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWxlZnQ6IC0wLjE4NzVyZW07XG4gIHBhZGRpbmc6IDAgMC4xODc1cmVtO1xufVxuXG4uZmQtZm9ybXMgc2VsZWN0IHtcbiAgaGVpZ2h0OiAyLjQzNzVyZW07XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2I3YjZiNjtcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkRGQ0ZDO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzBhMGEwYTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiByZ2IlMjg0MiwgMzksIDMyJTI5Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IC0xcmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwXFwwKSB7XG4gIC5mZC1mb3JtcyBzZWxlY3Qge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT1cIik7XG4gIH1cbn1cblxuLmZkLWZvcm1zIHNlbGVjdDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyQTI3MjA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGREZDRkM7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggI2I3YjZiNjtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG59XG5cbi5mZC1mb3JtcyBzZWxlY3Q6ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uZmQtZm9ybXMgc2VsZWN0OjotbXMtZXhwYW5kIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZkLWZvcm1zIHNlbGVjdFttdWx0aXBsZV0ge1xuICBoZWlnaHQ6IGF1dG87XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cbi5mZC1mb3JtcyBzZWxlY3Q6bm90KFttdWx0aXBsZV0pIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmQtZm9ybXMgLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cykge1xuICBib3JkZXItY29sb3I6ICNFMzE2MkY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWU1ZTg7XG59XG5cbi5mZC1mb3JtcyAuaXMtaW52YWxpZC1pbnB1dDpub3QoOmZvY3VzKTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI0UzMTYyRjtcbn1cblxuLmZkLWZvcm1zIC5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgY29sb3I6ICNFMzE2MkY7XG59XG5cbi5mZC1mb3JtcyAuZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjRTMxNjJGO1xufVxuXG4uZmQtZm9ybXMgLmZvcm0tZXJyb3IuaXMtdmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5kaXYsXG5kbCxcbmR0LFxuZGQsXG51bCxcbm9sLFxubGksXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wcmUsXG5mb3JtLFxucCxcbmJsb2NrcXVvdGUsXG50aCxcbnRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5wIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMS41O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuXG5lbSxcbmkge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5zdHJvbmcsXG5iIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuaDEsIC5oMSxcbmgyLCAuaDIsXG5oMywgLmgzLFxuaDQsIC5oNCxcbmg1LCAuaDUsXG5oNiwgLmg2IHtcbiAgZm9udC1mYW1pbHk6IFwiQmFybG93IENvbmRlbnNlZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbn1cblxuaDEgc21hbGwsIC5oMSBzbWFsbCxcbmgyIHNtYWxsLCAuaDIgc21hbGwsXG5oMyBzbWFsbCwgLmgzIHNtYWxsLFxuaDQgc21hbGwsIC5oNCBzbWFsbCxcbmg1IHNtYWxsLCAuaDUgc21hbGwsXG5oNiBzbWFsbCwgLmg2IHNtYWxsIHtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGNvbG9yOiAjYjdiNmI2O1xufVxuXG5oMSwgLmgxIHtcbiAgZm9udC1zaXplOiAzcmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG5oMiwgLmgyIHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG5oMywgLmgzIHtcbiAgZm9udC1zaXplOiAxLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG5cbmg0LCAuaDQge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG5oNSwgLmg1IHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG5oNiwgLmg2IHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBoMSwgLmgxIHtcbiAgICBmb250LXNpemU6IDYuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG4gIGgyLCAuaDIge1xuICAgIGZvbnQtc2l6ZTogNC41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG4gIGgzLCAuaDMge1xuICAgIGZvbnQtc2l6ZTogMi4yNXJlbTtcbiAgfVxuICBoNCwgLmg0IHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxuICBoNSwgLmg1IHtcbiAgICBmb250LXNpemU6IDEuMzEyNXJlbTtcbiAgfVxuICBoNiwgLmg2IHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICB9XG59XG5cbmEge1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6ICNENUE4NDc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5hOmhvdmVyLCBhOmZvY3VzIHtcbiAgY29sb3I6ICNjNzk2MmQ7XG59XG5cbmEgaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG5ociB7XG4gIGNsZWFyOiBib3RoO1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogMS4yNXJlbSBhdXRvO1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYjdiNmI2O1xuICBib3JkZXItbGVmdDogMDtcbn1cblxudWwsXG5vbCxcbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxubGkge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG59XG5cbnVsIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbn1cblxub2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbn1cblxudWwgdWwsIG9sIHVsLCB1bCBvbCwgb2wgb2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuZGwge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG5kbCBkdCB7XG4gIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjU2MjVyZW0gMS4yNXJlbSAwIDEuMTg3NXJlbTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjYjdiNmI2O1xufVxuXG5ibG9ja3F1b3RlLCBibG9ja3F1b3RlIHAge1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzJBMjcyMDtcbn1cblxuYWJiciwgYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwYTBhMGE7XG4gIGN1cnNvcjogaGVscDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cbmtiZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4yNXJlbSAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbn1cblxuLnN1YmhlYWRlciB7XG4gIG1hcmdpbi10b3A6IDAuMnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogIzJBMjcyMDtcbn1cblxuLmxlYWQge1xuICBmb250LXNpemU6IDEyNSU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbi5zdGF0IHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG5wICsgLnN0YXQge1xuICBtYXJnaW4tdG9wOiAtMXJlbTtcbn1cblxudWwubm8tYnVsbGV0LCBvbC5uby1idWxsZXQge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLmNpdGUtYmxvY2ssIGNpdGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICMyQTI3MjA7XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xufVxuXG4uY2l0ZS1ibG9jazpiZWZvcmUsIGNpdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCLigJQgXCI7XG59XG5cbi5jb2RlLWlubGluZSwgY29kZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiN2I2YjY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzBhMGEwYTtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4zMTI1cmVtIDAuMDYyNXJlbTtcbn1cblxuLmNvZGUtYmxvY2sge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYjdiNmI2O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogYXV0bztcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgcGFkZGluZzogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuXG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLnRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4udGV4dC1qdXN0aWZ5IHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbiAgLm1lZGl1bS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuICAubWVkaXVtLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLm1lZGl1bS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwLjYyNWVtKSB7XG4gIC5sYXJnZS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbiAgLmxhcmdlLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG4gIC5sYXJnZS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5sYXJnZS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gIH1cbn1cblxuLnNob3ctZm9yLXByaW50IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgcHJpbnQge1xuICAqIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuICAgIGNvbG9yLWFkanVzdDogZWNvbm9teTtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmhpZGUtZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGFibGUuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGhlYWQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50O1xuICB9XG4gIHRib2R5LnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDtcbiAgfVxuICB0ci5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxuICB0aC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG4gIGEsXG4gIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbiAgYVtocmVmXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7XG4gIH1cbiAgLmlyIGE6YWZ0ZXIsXG4gIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gIGFbaHJlZl49JyMnXTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gIH1cbiAgYWJiclt0aXRsZV06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjtcbiAgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMyQTI3MjA7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7XG4gIH1cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgQHBhZ2Uge1xuICAgIG1hcmdpbjogMC41Y207XG4gIH1cbiAgcCxcbiAgaDIsXG4gIGgzIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMztcbiAgfVxuICBoMixcbiAgaDMge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xuICB9XG4gIC5wcmludC1icmVhay1pbnNpZGUge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvO1xuICB9XG59XG5cbi5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogMCAwIDEuNXJlbSAwO1xuICBwYWRkaW5nOiAwLjc1ZW0gMC43NWVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcbiAgZm9udC1mYW1pbHk6IFwiQmFybG93IENvbmRlbnNlZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5bZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmJ1dHRvbiB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5idXR0b24udGlueSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLmJ1dHRvbi5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG59XG5cbi5idXR0b24ubGFyZ2Uge1xuICBmb250LXNpemU6IDEuNzVyZW07XG59XG5cbi5idXR0b24uZXhwYW5kZWQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5idXR0b24sIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDVBODQ3O1xuICBjb2xvcjogI0ZERkNGQztcbn1cblxuLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjNTk0MmQ7XG4gIGNvbG9yOiAjRkRGQ0ZDO1xufVxuXG4uYnV0dG9uLnByaW1hcnksIC5idXR0b24ucHJpbWFyeS5kaXNhYmxlZCwgLmJ1dHRvbi5wcmltYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi5wcmltYXJ5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLnByaW1hcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24ucHJpbWFyeVtkaXNhYmxlZF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDVBODQ3O1xuICBjb2xvcjogI0ZERkNGQztcbn1cblxuLmJ1dHRvbi5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLnByaW1hcnk6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjk4YzJhO1xuICBjb2xvcjogI0ZERkNGQztcbn1cblxuLmJ1dHRvbi5zZWNvbmRhcnksIC5idXR0b24uc2Vjb25kYXJ5LmRpc2FibGVkLCAuYnV0dG9uLnNlY29uZGFyeVtkaXNhYmxlZF0sIC5idXR0b24uc2Vjb25kYXJ5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLnNlY29uZGFyeVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uc2Vjb25kYXJ5LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLnNlY29uZGFyeVtkaXNhYmxlZF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzlBRUQyO1xuICBjb2xvcjogI0ZERkNGQztcbn1cblxuLmJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uc2Vjb25kYXJ5OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI4OGVhZTtcbiAgY29sb3I6ICNGREZDRkM7XG59XG5cbi5idXR0b24uc3VjY2VzcywgLmJ1dHRvbi5zdWNjZXNzLmRpc2FibGVkLCAuYnV0dG9uLnN1Y2Nlc3NbZGlzYWJsZWRdLCAuYnV0dG9uLnN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uc3VjY2Vzc1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGRjODA7XG4gIGNvbG9yOiAjRkRGQ0ZDO1xufVxuXG4uYnV0dG9uLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uc3VjY2Vzczpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGIwNjY7XG4gIGNvbG9yOiAjRkRGQ0ZDO1xufVxuXG4uYnV0dG9uLndhcm5pbmcsIC5idXR0b24ud2FybmluZy5kaXNhYmxlZCwgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXSwgLmJ1dHRvbi53YXJuaW5nLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLndhcm5pbmdbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLndhcm5pbmcuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24ud2FybmluZ1tkaXNhYmxlZF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICBjb2xvcjogI0ZERkNGQztcbn1cblxuLmJ1dHRvbi53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLndhcm5pbmc6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M4YjAwO1xuICBjb2xvcjogI0ZERkNGQztcbn1cblxuLmJ1dHRvbi5hbGVydCwgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZCwgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF0sIC5idXR0b24uYWxlcnQuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uYWxlcnRbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmFsZXJ0LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmFsZXJ0W2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMzE2MkY7XG4gIGNvbG9yOiAjRkRGQ0ZDO1xufVxuXG4uYnV0dG9uLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmFsZXJ0OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I2MTIyNjtcbiAgY29sb3I6ICNGREZDRkM7XG59XG5cbi5idXR0b24uaG9sbG93LCAuYnV0dG9uLmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMsIC5idXR0b24uaG9sbG93LmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93W2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmhvbGxvd1tkaXNhYmxlZF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmJ1dHRvbi5ob2xsb3csIC5idXR0b24uaG9sbG93LmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvd1tkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmhvbGxvd1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uaG9sbG93LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmhvbGxvd1tkaXNhYmxlZF06Zm9jdXMge1xuICBib3JkZXI6IDFweCBzb2xpZCAjRDVBODQ3O1xuICBjb2xvcjogI0Q1QTg0Nztcbn1cblxuLmJ1dHRvbi5ob2xsb3c6aG92ZXIsIC5idXR0b24uaG9sbG93OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjNzQ1NzFhO1xuICBjb2xvcjogIzc0NTcxYTtcbn1cblxuLmJ1dHRvbi5ob2xsb3cucHJpbWFyeSwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeS5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeVtkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LnByaW1hcnkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uaG9sbG93LnByaW1hcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNENUE4NDc7XG4gIGNvbG9yOiAjRDVBODQ3O1xufVxuXG4uYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjNzQ1NzFhO1xuICBjb2xvcjogIzc0NTcxYTtcbn1cblxuLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5LCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnkuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LnNlY29uZGFyeVtkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LnNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzM5QUVEMjtcbiAgY29sb3I6ICMzOUFFRDI7XG59XG5cbi5idXR0b24uaG9sbG93LnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjMTk1OTZkO1xuICBjb2xvcjogIzE5NTk2ZDtcbn1cblxuLmJ1dHRvbi5ob2xsb3cuc3VjY2VzcywgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzcy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzc1tkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LnN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3NbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMGRjODA7XG4gIGNvbG9yOiAjMDBkYzgwO1xufVxuXG4uYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDA2ZTQwO1xuICBjb2xvcjogIzAwNmU0MDtcbn1cblxuLmJ1dHRvbi5ob2xsb3cud2FybmluZywgLmJ1dHRvbi5ob2xsb3cud2FybmluZy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cud2FybmluZ1tkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93Lndhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uaG9sbG93Lndhcm5pbmdbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmFlMDA7XG4gIGNvbG9yOiAjZmZhZTAwO1xufVxuXG4uYnV0dG9uLmhvbGxvdy53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjODA1NzAwO1xuICBjb2xvcjogIzgwNTcwMDtcbn1cblxuLmJ1dHRvbi5ob2xsb3cuYWxlcnQsIC5idXR0b24uaG9sbG93LmFsZXJ0LmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5hbGVydFtkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LmFsZXJ0LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5hbGVydFtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uaG9sbG93LmFsZXJ0LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmhvbGxvdy5hbGVydFtkaXNhYmxlZF06Zm9jdXMge1xuICBib3JkZXI6IDFweCBzb2xpZCAjRTMxNjJGO1xuICBjb2xvcjogI0UzMTYyRjtcbn1cblxuLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6aG92ZXIsIC5idXR0b24uaG9sbG93LmFsZXJ0OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjNzIwYjE4O1xuICBjb2xvcjogIzcyMGIxODtcbn1cblxuLmJ1dHRvbi5jbGVhciwgLmJ1dHRvbi5jbGVhcjpob3ZlciwgLmJ1dHRvbi5jbGVhcjpmb2N1cywgLmJ1dHRvbi5jbGVhci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5jbGVhci5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uYnV0dG9uLmNsZWFyLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5jbGVhcltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uY2xlYXIuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdOmZvY3VzIHtcbiAgY29sb3I6ICNENUE4NDc7XG59XG5cbi5idXR0b24uY2xlYXI6aG92ZXIsIC5idXR0b24uY2xlYXI6Zm9jdXMge1xuICBjb2xvcjogIzc0NTcxYTtcbn1cblxuLmJ1dHRvbi5jbGVhci5wcmltYXJ5LCAuYnV0dG9uLmNsZWFyLnByaW1hcnkuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIucHJpbWFyeVtkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIucHJpbWFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmNsZWFyLnByaW1hcnlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgY29sb3I6ICNENUE4NDc7XG59XG5cbi5idXR0b24uY2xlYXIucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmZvY3VzIHtcbiAgY29sb3I6ICM3NDU3MWE7XG59XG5cbi5idXR0b24uY2xlYXIuc2Vjb25kYXJ5LCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeS5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnlbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgY29sb3I6ICMzOUFFRDI7XG59XG5cbi5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpmb2N1cyB7XG4gIGNvbG9yOiAjMTk1OTZkO1xufVxuXG4uYnV0dG9uLmNsZWFyLnN1Y2Nlc3MsIC5idXR0b24uY2xlYXIuc3VjY2Vzcy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3NbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3MuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uY2xlYXIuc3VjY2Vzc1tkaXNhYmxlZF06Zm9jdXMge1xuICBjb2xvcjogIzAwZGM4MDtcbn1cblxuLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMge1xuICBjb2xvcjogIzAwNmU0MDtcbn1cblxuLmJ1dHRvbi5jbGVhci53YXJuaW5nLCAuYnV0dG9uLmNsZWFyLndhcm5pbmcuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIud2FybmluZ1tkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIud2FybmluZy5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5jbGVhci53YXJuaW5nW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5jbGVhci53YXJuaW5nLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmNsZWFyLndhcm5pbmdbZGlzYWJsZWRdOmZvY3VzIHtcbiAgY29sb3I6ICNmZmFlMDA7XG59XG5cbi5idXR0b24uY2xlYXIud2FybmluZzpob3ZlciwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzIHtcbiAgY29sb3I6ICM4MDU3MDA7XG59XG5cbi5idXR0b24uY2xlYXIuYWxlcnQsIC5idXR0b24uY2xlYXIuYWxlcnQuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuYWxlcnRbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLmFsZXJ0LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmNsZWFyLmFsZXJ0W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5jbGVhci5hbGVydC5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhci5hbGVydFtkaXNhYmxlZF06Zm9jdXMge1xuICBjb2xvcjogI0UzMTYyRjtcbn1cblxuLmJ1dHRvbi5jbGVhci5hbGVydDpob3ZlciwgLmJ1dHRvbi5jbGVhci5hbGVydDpmb2N1cyB7XG4gIGNvbG9yOiAjNzIwYjE4O1xufVxuXG4uYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uW2Rpc2FibGVkXSB7XG4gIG9wYWNpdHk6IDAuMjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5idXR0b24uZHJvcGRvd246OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgMC40ZW07XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjRkRGQ0ZDIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMC40ZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tbGVmdDogMC43NWVtO1xufVxuXG4uYnV0dG9uLmRyb3Bkb3duLmhvbGxvdzo6YWZ0ZXIsIC5idXR0b24uZHJvcGRvd24uY2xlYXI6OmFmdGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI0Q1QTg0Nztcbn1cblxuLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cucHJpbWFyeTo6YWZ0ZXIsIC5idXR0b24uZHJvcGRvd24uY2xlYXIucHJpbWFyeTo6YWZ0ZXIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjRDVBODQ3O1xufVxuXG4uYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5zZWNvbmRhcnk6OmFmdGVyLCAuYnV0dG9uLmRyb3Bkb3duLmNsZWFyLnNlY29uZGFyeTo6YWZ0ZXIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjMzlBRUQyO1xufVxuXG4uYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5zdWNjZXNzOjphZnRlciwgLmJ1dHRvbi5kcm9wZG93bi5jbGVhci5zdWNjZXNzOjphZnRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6ICMwMGRjODA7XG59XG5cbi5idXR0b24uZHJvcGRvd24uaG9sbG93Lndhcm5pbmc6OmFmdGVyLCAuYnV0dG9uLmRyb3Bkb3duLmNsZWFyLndhcm5pbmc6OmFmdGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmYWUwMDtcbn1cblxuLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cuYWxlcnQ6OmFmdGVyLCAuYnV0dG9uLmRyb3Bkb3duLmNsZWFyLmFsZXJ0OjphZnRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNFMzE2MkY7XG59XG5cbi5idXR0b24uYXJyb3ctb25seTo6YWZ0ZXIge1xuICB0b3A6IC0wLjFlbTtcbiAgZmxvYXQ6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG5hLmJ1dHRvbjpob3ZlciwgYS5idXR0b246Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5idXR0b24tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBmbGV4LWdyb3c6IDE7XG59XG5cbi5idXR0b24tZ3JvdXA6OmJlZm9yZSwgLmJ1dHRvbi1ncm91cDo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyAnO1xuICBmbGV4LWJhc2lzOiAwO1xuICBvcmRlcjogMTtcbn1cblxuLmJ1dHRvbi1ncm91cDo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLmJ1dHRvbi1ncm91cDo6YmVmb3JlLCAuYnV0dG9uLWdyb3VwOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5idXR0b24tZ3JvdXAgLmJ1dHRvbiB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLXJpZ2h0OiAxcHg7XG4gIG1hcmdpbi1ib3R0b206IDFweDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4uYnV0dG9uLWdyb3VwIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLmJ1dHRvbi1ncm91cC50aW55IC5idXR0b24ge1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbi5idXR0b24tZ3JvdXAuc21hbGwgLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG59XG5cbi5idXR0b24tZ3JvdXAubGFyZ2UgLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMS43NXJlbTtcbn1cblxuLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uIHtcbiAgZmxleDogMSAxIDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4uYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNENUE4NDc7XG4gIGNvbG9yOiAjRkRGQ0ZDO1xufVxuXG4uYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjk4YzJhO1xuICBjb2xvcjogI0ZERkNGQztcbn1cblxuLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzOUFFRDI7XG4gIGNvbG9yOiAjRkRGQ0ZDO1xufVxuXG4uYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI4OGVhZTtcbiAgY29sb3I6ICNGREZDRkM7XG59XG5cbi5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZGM4MDtcbiAgY29sb3I6ICNGREZDRkM7XG59XG5cbi5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGIwNjY7XG4gIGNvbG9yOiAjRkRGQ0ZDO1xufVxuXG4uYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmFlMDA7XG4gIGNvbG9yOiAjRkRGQ0ZDO1xufVxuXG4uYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M4YjAwO1xuICBjb2xvcjogI0ZERkNGQztcbn1cblxuLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UzMTYyRjtcbiAgY29sb3I6ICNGREZDRkM7XG59XG5cbi5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I2MTIyNjtcbiAgY29sb3I6ICNGREZDRkM7XG59XG5cbi5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24sIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNENUE4NDc7XG4gIGNvbG9yOiAjRDVBODQ3O1xufVxuXG4uYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjNzQ1NzFhO1xuICBjb2xvcjogIzc0NTcxYTtcbn1cblxuLmJ1dHRvbi1ncm91cC5ob2xsb3cucHJpbWFyeSAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cucHJpbWFyeSAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cucHJpbWFyeSAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnByaW1hcnksIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5wcmltYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5wcmltYXJ5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnByaW1hcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeVtkaXNhYmxlZF06Zm9jdXMge1xuICBib3JkZXI6IDFweCBzb2xpZCAjRDVBODQ3O1xuICBjb2xvcjogI0Q1QTg0Nztcbn1cblxuLmJ1dHRvbi1ncm91cC5ob2xsb3cucHJpbWFyeSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5IC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5wcmltYXJ5OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjNzQ1NzFhO1xuICBjb2xvcjogIzc0NTcxYTtcbn1cblxuLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5IC5idXR0b24sIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zZWNvbmRhcnkgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zZWNvbmRhcnkgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zZWNvbmRhcnkgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc2Vjb25kYXJ5LCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnNlY29uZGFyeS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zZWNvbmRhcnlbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zZWNvbmRhcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnNlY29uZGFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zZWNvbmRhcnlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzM5QUVEMjtcbiAgY29sb3I6ICMzOUFFRDI7XG59XG5cbi5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zZWNvbmRhcnkgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc2Vjb25kYXJ5OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjMTk1OTZkO1xuICBjb2xvcjogIzE5NTk2ZDtcbn1cblxuLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zdWNjZXNzIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93LnN1Y2Nlc3MgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93LnN1Y2Nlc3MgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zdWNjZXNzIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnN1Y2Nlc3MsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc3VjY2Vzcy5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zdWNjZXNzLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnN1Y2Nlc3NbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnN1Y2Nlc3MuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc3VjY2Vzc1tkaXNhYmxlZF06Zm9jdXMge1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDBkYzgwO1xuICBjb2xvcjogIzAwZGM4MDtcbn1cblxuLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zdWNjZXNzIC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zdWNjZXNzOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDA2ZTQwO1xuICBjb2xvcjogIzAwNmU0MDtcbn1cblxuLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93Lndhcm5pbmcgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93Lndhcm5pbmcgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndhcm5pbmcsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ud2FybmluZy5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi53YXJuaW5nLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndhcm5pbmdbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndhcm5pbmcuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ud2FybmluZ1tkaXNhYmxlZF06Zm9jdXMge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZhZTAwO1xuICBjb2xvcjogI2ZmYWUwMDtcbn1cblxuLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nIC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ud2FybmluZzpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi53YXJuaW5nOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjODA1NzAwO1xuICBjb2xvcjogIzgwNTcwMDtcbn1cblxuLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93LmFsZXJ0IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LmFsZXJ0IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5hbGVydCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uYWxlcnQuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uYWxlcnRbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmFsZXJ0LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmFsZXJ0W2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFMzE2MkY7XG4gIGNvbG9yOiAjRTMxNjJGO1xufVxuXG4uYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmFsZXJ0OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjNzIwYjE4O1xuICBjb2xvcjogIzcyMGIxODtcbn1cblxuLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24sIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMge1xuICBjb2xvcjogI0Q1QTg0Nztcbn1cblxuLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b246Zm9jdXMge1xuICBjb2xvcjogIzc0NTcxYTtcbn1cblxuLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b24sIC5idXR0b24tZ3JvdXAuY2xlYXIucHJpbWFyeSAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIucHJpbWFyeSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIucHJpbWFyeSAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5wcmltYXJ5LCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ucHJpbWFyeS5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnlbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ucHJpbWFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ucHJpbWFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgY29sb3I6ICNENUE4NDc7XG59XG5cbi5idXR0b24tZ3JvdXAuY2xlYXIucHJpbWFyeSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnk6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5wcmltYXJ5OmZvY3VzIHtcbiAgY29sb3I6ICM3NDU3MWE7XG59XG5cbi5idXR0b24tZ3JvdXAuY2xlYXIuc2Vjb25kYXJ5IC5idXR0b24sIC5idXR0b24tZ3JvdXAuY2xlYXIuc2Vjb25kYXJ5IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIuc2Vjb25kYXJ5IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnNlY29uZGFyeSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnNlY29uZGFyeSAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zZWNvbmRhcnksIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zZWNvbmRhcnkuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zZWNvbmRhcnlbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc2Vjb25kYXJ5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc2Vjb25kYXJ5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnNlY29uZGFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnNlY29uZGFyeVtkaXNhYmxlZF06Zm9jdXMge1xuICBjb2xvcjogIzM5QUVEMjtcbn1cblxuLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnNlY29uZGFyeTpmb2N1cyB7XG4gIGNvbG9yOiAjMTk1OTZkO1xufVxuXG4uYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnN1Y2Nlc3MsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc3VjY2Vzc1tkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc3VjY2Vzc1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc3VjY2Vzc1tkaXNhYmxlZF06Zm9jdXMge1xuICBjb2xvcjogIzAwZGM4MDtcbn1cblxuLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnN1Y2Nlc3M6Zm9jdXMge1xuICBjb2xvcjogIzAwNmU0MDtcbn1cblxuLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nIC5idXR0b24sIC5idXR0b24tZ3JvdXAuY2xlYXIud2FybmluZyAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIud2FybmluZyAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIud2FybmluZyAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ud2FybmluZy5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLndhcm5pbmdbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ud2FybmluZy5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLndhcm5pbmdbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ud2FybmluZy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLndhcm5pbmdbZGlzYWJsZWRdOmZvY3VzIHtcbiAgY29sb3I6ICNmZmFlMDA7XG59XG5cbi5idXR0b24tZ3JvdXAuY2xlYXIud2FybmluZyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLndhcm5pbmc6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nOmZvY3VzIHtcbiAgY29sb3I6ICM4MDU3MDA7XG59XG5cbi5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5jbGVhci5hbGVydCAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyLmFsZXJ0IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyLmFsZXJ0IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5hbGVydCAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmFsZXJ0LCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uYWxlcnQuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmFsZXJ0W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmFsZXJ0LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uYWxlcnRbZGlzYWJsZWRdOmZvY3VzIHtcbiAgY29sb3I6ICNFMzE2MkY7XG59XG5cbi5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5hbGVydCAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uYWxlcnQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydDpmb2N1cyB7XG4gIGNvbG9yOiAjNzIwYjE4O1xufVxuXG4uYnV0dG9uLWdyb3VwLm5vLWdhcHMgLmJ1dHRvbiB7XG4gIG1hcmdpbi1yaWdodDogLTAuMDYyNXJlbTtcbn1cblxuLmJ1dHRvbi1ncm91cC5uby1nYXBzIC5idXR0b24gKyAuYnV0dG9uIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uYnV0dG9uLWdyb3VwLnN0YWNrZWQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uYnV0dG9uLWdyb3VwLnN0YWNrZWQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uIHtcbiAgZmxleDogMCAwIDEwMCU7XG59XG5cbi5idXR0b24tZ3JvdXAuc3RhY2tlZCAuYnV0dG9uOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbjpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYnV0dG9uLWdyb3VwLnN0YWNrZWQuZXhwYW5kZWQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bS5leHBhbmRlZCAuYnV0dG9uIHtcbiAgZmxleDogMSAxIDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5idXR0b24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwLjYyNWVtKSB7XG4gIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5idXR0b24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCAuYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwLjYyMzc1ZW0pIHtcbiAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0uZXhwYW5kZWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtLmV4cGFuZGVkIC5idXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuXG4uY2xvc2UtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcbiAgY29sb3I6ICMyQTI3MjA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5jbG9zZS1idXR0b24ge1xuICBvdXRsaW5lOiAwO1xufVxuXG4uY2xvc2UtYnV0dG9uOmhvdmVyLCAuY2xvc2UtYnV0dG9uOmZvY3VzIHtcbiAgY29sb3I6ICMwYTBhMGE7XG59XG5cbi5jbG9zZS1idXR0b24uc21hbGwge1xuICByaWdodDogMC42NnJlbTtcbiAgdG9wOiAwLjMzZW07XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uY2xvc2UtYnV0dG9uLm1lZGl1bSwgLmNsb3NlLWJ1dHRvbiB7XG4gIHJpZ2h0OiAxcmVtO1xuICB0b3A6IDAuNXJlbTtcbiAgZm9udC1zaXplOiAyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4ubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiAxcHg7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBiYWNrZ3JvdW5kOiAjRDVBODQ3O1xuICBjb2xvcjogI0ZERkNGQztcbn1cblxuLmxhYmVsLnByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjRDVBODQ3O1xuICBjb2xvcjogIzBhMGEwYTtcbn1cblxuLmxhYmVsLnNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQ6ICMzOUFFRDI7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuXG4ubGFiZWwuc3VjY2VzcyB7XG4gIGJhY2tncm91bmQ6ICMwMGRjODA7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuXG4ubGFiZWwud2FybmluZyB7XG4gIGJhY2tncm91bmQ6ICNmZmFlMDA7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuXG4ubGFiZWwuYWxlcnQge1xuICBiYWNrZ3JvdW5kOiAjRTMxNjJGO1xuICBjb2xvcjogI0ZERkNGQztcbn1cblxuLmhhcy10aXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAjMkEyNzIwO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY3Vyc29yOiBoZWxwO1xufVxuXG4udG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyAwLjY0OTVyZW0pO1xuICB6LWluZGV4OiAxMjAwO1xuICBtYXgtd2lkdGg6IDEwcmVtO1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICBib3JkZXItcmFkaXVzOiAxcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwYTBhMGE7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBjb2xvcjogI0ZERkNGQztcbn1cblxuLnRvb2x0aXA6OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLnRvb2x0aXAuYm90dG9tOjpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzBhMGEwYTtcbiAgYm90dG9tOiAxMDAlO1xufVxuXG4udG9vbHRpcC5ib3R0b20uYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuLnRvb2x0aXAudG9wOjpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogIzBhMGEwYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgdG9wOiAxMDAlO1xuICBib3R0b206IGF1dG87XG59XG5cbi50b29sdGlwLnRvcC5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4udG9vbHRpcC5sZWZ0OjpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzBhMGEwYTtcbiAgbGVmdDogMTAwJTtcbn1cblxuLnRvb2x0aXAubGVmdC5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gIGJvdHRvbTogYXV0bztcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLnRvb2x0aXAucmlnaHQ6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDAuNzVyZW07XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMGEwYTBhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICByaWdodDogMTAwJTtcbiAgbGVmdDogYXV0bztcbn1cblxuLnRvb2x0aXAucmlnaHQuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICBib3R0b206IGF1dG87XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi50b29sdGlwLmFsaWduLXRvcDo6YmVmb3JlIHtcbiAgYm90dG9tOiBhdXRvO1xuICB0b3A6IDEwJTtcbn1cblxuLnRvb2x0aXAuYWxpZ24tYm90dG9tOjpiZWZvcmUge1xuICBib3R0b206IDEwJTtcbiAgdG9wOiBhdXRvO1xufVxuXG4udG9vbHRpcC5hbGlnbi1sZWZ0OjpiZWZvcmUge1xuICBsZWZ0OiAxMCU7XG4gIHJpZ2h0OiBhdXRvO1xufVxuXG4udG9vbHRpcC5hbGlnbi1yaWdodDo6YmVmb3JlIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDEwJTtcbn1cblxuLmFjY29yZGlvbiB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBiYWNrZ3JvdW5kOiAjRkRGQ0ZDO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi5hY2NvcmRpb25bZGlzYWJsZWRdIC5hY2NvcmRpb24tdGl0bGUge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uYWNjb3JkaW9uLWl0ZW06Zmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAxcHggMXB4IDAgMDtcbn1cblxuLmFjY29yZGlvbi1pdGVtOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAxcHggMXB4O1xufVxuXG4uYWNjb3JkaW9uLXRpdGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMS4yNXJlbSAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE4MywgMTgyLCAxODIsIDAuNSk7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjRDVBODQ3O1xufVxuXG46bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkgPiAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMTgzLCAxODIsIDE4MiwgMC41KTtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDFweCAxcHg7XG59XG5cbi5hY2NvcmRpb24tdGl0bGU6aG92ZXIsIC5hY2NvcmRpb24tdGl0bGU6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xufVxuXG4uYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICByaWdodDogMXJlbTtcbiAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgY29udGVudDogXCIrXCI7XG59XG5cbi5pcy1hY3RpdmUgPiAuYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIuKAk1wiO1xufVxuXG4uYWNjb3JkaW9uLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE4MywgMTgyLCAxODIsIDAuNSk7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGREZDRkM7XG4gIGNvbG9yOiAjMkEyNzIwO1xufVxuXG46bGFzdC1jaGlsZCA+IC5hY2NvcmRpb24tY29udGVudDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMTgzLCAxODIsIDE4MiwgMC41KTtcbn1cblxuLnJlc3BvbnNpdmUtZW1iZWQsXG4uZmxleC12aWRlbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogNzUlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucmVzcG9uc2l2ZS1lbWJlZCBpZnJhbWUsXG4ucmVzcG9uc2l2ZS1lbWJlZCBvYmplY3QsXG4ucmVzcG9uc2l2ZS1lbWJlZCBlbWJlZCxcbi5yZXNwb25zaXZlLWVtYmVkIHZpZGVvLFxuLmZsZXgtdmlkZW8gaWZyYW1lLFxuLmZsZXgtdmlkZW8gb2JqZWN0LFxuLmZsZXgtdmlkZW8gZW1iZWQsXG4uZmxleC12aWRlbyB2aWRlbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ucmVzcG9uc2l2ZS1lbWJlZC53aWRlc2NyZWVuLFxuLmZsZXgtdmlkZW8ud2lkZXNjcmVlbiB7XG4gIHBhZGRpbmctYm90dG9tOiA0Ni4yNSU7XG59XG5cbi5tZW51IHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5tZW51IGxpIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLm1lbnUgYSxcbi5tZW51IC5idXR0b24ge1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMC43cmVtIDFyZW07XG59XG5cbi5tZW51IGlucHV0LFxuLm1lbnUgc2VsZWN0LFxuLm1lbnUgYSxcbi5tZW51IGJ1dHRvbiB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5tZW51IGlucHV0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubWVudSwgLm1lbnUuaG9yaXpvbnRhbCB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cblxuLm1lbnUudmVydGljYWwge1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm1lbnUuZXhwYW5kZWQgbGkge1xuICBmbGV4OiAxIDEgMHB4O1xufVxuXG4ubWVudS5zaW1wbGUge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubWVudS5zaW1wbGUgbGkgKyBsaSB7XG4gIG1hcmdpbi1sZWZ0OiAxcmVtO1xufVxuXG4ubWVudS5zaW1wbGUgYSB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZW51Lm1lZGl1bS1ob3Jpem9udGFsIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAubWVudS5tZWRpdW0tdmVydGljYWwge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLm1lbnUubWVkaXVtLWV4cGFuZGVkIGxpIHtcbiAgICBmbGV4OiAxIDEgMHB4O1xuICB9XG4gIC5tZW51Lm1lZGl1bS1zaW1wbGUgbGkge1xuICAgIGZsZXg6IDEgMSAwcHg7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwLjYyNWVtKSB7XG4gIC5tZW51LmxhcmdlLWhvcml6b250YWwge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB9XG4gIC5tZW51LmxhcmdlLXZlcnRpY2FsIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC5tZW51LmxhcmdlLWV4cGFuZGVkIGxpIHtcbiAgICBmbGV4OiAxIDEgMHB4O1xuICB9XG4gIC5tZW51LmxhcmdlLXNpbXBsZSBsaSB7XG4gICAgZmxleDogMSAxIDBweDtcbiAgfVxufVxuXG4ubWVudS5uZXN0ZWQge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAxcmVtO1xufVxuXG4ubWVudS5pY29ucyBhIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLm1lbnUuaWNvbi10b3AgYSwgLm1lbnUuaWNvbi1yaWdodCBhLCAubWVudS5pY29uLWJvdHRvbSBhLCAubWVudS5pY29uLWxlZnQgYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5tZW51Lmljb24tbGVmdCBsaSBhIHtcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xufVxuXG4ubWVudS5pY29uLWxlZnQgbGkgYSBpbWcsXG4ubWVudS5pY29uLWxlZnQgbGkgYSBpLFxuLm1lbnUuaWNvbi1sZWZ0IGxpIGEgc3ZnIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xufVxuXG4ubWVudS5pY29uLXJpZ2h0IGxpIGEge1xuICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG59XG5cbi5tZW51Lmljb24tcmlnaHQgbGkgYSBpbWcsXG4ubWVudS5pY29uLXJpZ2h0IGxpIGEgaSxcbi5tZW51Lmljb24tcmlnaHQgbGkgYSBzdmcge1xuICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbn1cblxuLm1lbnUuaWNvbi10b3AgbGkgYSB7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbn1cblxuLm1lbnUuaWNvbi10b3AgbGkgYSBpbWcsXG4ubWVudS5pY29uLXRvcCBsaSBhIGksXG4ubWVudS5pY29uLXRvcCBsaSBhIHN2ZyB7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1lbnUuaWNvbi1ib3R0b20gbGkgYSB7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbn1cblxuLm1lbnUuaWNvbi1ib3R0b20gbGkgYSBpbWcsXG4ubWVudS5pY29uLWJvdHRvbSBsaSBhIGksXG4ubWVudS5pY29uLWJvdHRvbSBsaSBhIHN2ZyB7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1lbnUgLmlzLWFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kOiAjRDVBODQ3O1xuICBjb2xvcjogIzBhMGEwYTtcbn1cblxuLm1lbnUgLmFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kOiAjRDVBODQ3O1xuICBjb2xvcjogIzBhMGEwYTtcbn1cblxuLm1lbnUuYWxpZ24tbGVmdCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLm1lbnUuYWxpZ24tcmlnaHQgbGkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4ubWVudS5hbGlnbi1yaWdodCBsaSAuc3VibWVudSBsaSB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLm1lbnUuYWxpZ24tcmlnaHQudmVydGljYWwgbGkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5tZW51LmFsaWduLXJpZ2h0LnZlcnRpY2FsIGxpIC5zdWJtZW51IGxpIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5tZW51LmFsaWduLXJpZ2h0IC5uZXN0ZWQge1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4ubWVudS5hbGlnbi1jZW50ZXIgbGkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm1lbnUuYWxpZ24tY2VudGVyIGxpIC5zdWJtZW51IGxpIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG4ubWVudSAubWVudS10ZXh0IHtcbiAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5tZW51LWNlbnRlcmVkID4gLm1lbnUge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm1lbnUtY2VudGVyZWQgPiAubWVudSBsaSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ubWVudS1jZW50ZXJlZCA+IC5tZW51IGxpIC5zdWJtZW51IGxpIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG4ubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tZW51LWljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubWVudS1pY29uOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiAjRkRGQ0ZDO1xuICBib3gtc2hhZG93OiAwIDdweCAwICNGREZDRkMsIDAgMTRweCAwICNGREZDRkM7XG4gIGNvbnRlbnQ6ICcnO1xufVxuXG4ubWVudS1pY29uOmhvdmVyOjphZnRlciB7XG4gIGJhY2tncm91bmQ6ICNiN2I2YjY7XG4gIGJveC1zaGFkb3c6IDAgN3B4IDAgI2I3YjZiNiwgMCAxNHB4IDAgI2I3YjZiNjtcbn1cblxuLm1lbnUtaWNvbi5kYXJrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm1lbnUtaWNvbi5kYXJrOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xuICBib3gtc2hhZG93OiAwIDdweCAwICMwYTBhMGEsIDAgMTRweCAwICMwYTBhMGE7XG4gIGNvbnRlbnQ6ICcnO1xufVxuXG4ubWVudS1pY29uLmRhcms6aG92ZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogIzJBMjcyMDtcbiAgYm94LXNoYWRvdzogMCA3cHggMCAjMkEyNzIwLCAwIDE0cHggMCAjMkEyNzIwO1xufVxuXG4uc3RpY2t5LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnN0aWNreSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLnN0aWNreS5pcy1zdHVjayB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogNTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5zdGlja3kuaXMtc3R1Y2suaXMtYXQtdG9wIHtcbiAgdG9wOiAwO1xufVxuXG4uc3RpY2t5LmlzLXN0dWNrLmlzLWF0LWJvdHRvbSB7XG4gIGJvdHRvbTogMDtcbn1cblxuLnN0aWNreS5pcy1hbmNob3JlZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG59XG5cbi5zdGlja3kuaXMtYW5jaG9yZWQuaXMtYXQtYm90dG9tIHtcbiAgYm90dG9tOiAwO1xufVxuXG4uaXMtb2ZmLWNhbnZhcy1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmpzLW9mZi1jYW52YXMtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UsIHZpc2liaWxpdHkgMC41cyBlYXNlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEwLCAxMCwgMTAsIDAuNzUpO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtdmlzaWJsZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtY2xvc2FibGUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtb3ZlcmxheS1hYnNvbHV0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLmpzLW9mZi1jYW52YXMtb3ZlcmxheS5pcy1vdmVybGF5LWZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuXG4ub2ZmLWNhbnZhcy13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ub2ZmLWNhbnZhcyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMTI7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogIzBhMGEwYTtcbn1cblxuW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vZmYtY2FudmFzIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLm9mZi1jYW52YXMuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgei1pbmRleDogMTI7XG59XG5cbi5vZmYtY2FudmFzLmlzLWNsb3NlZCB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLm9mZi1jYW52YXMuaXMtdHJhbnNpdGlvbi1vdmVybGFwIHtcbiAgei1pbmRleDogMTM7XG59XG5cbi5vZmYtY2FudmFzLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgxMCwgMTAsIDEwLCAwLjcpO1xufVxuXG4ub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG59XG5cbi5vZmYtY2FudmFzLWFic29sdXRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xufVxuXG5bZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9mZi1jYW52YXMtYWJzb2x1dGUge1xuICBvdXRsaW5lOiAwO1xufVxuXG4ub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy10cmFuc2l0aW9uLXB1c2gge1xuICB6LWluZGV4OiAxMjtcbn1cblxuLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtY2xvc2VkIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4ub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xuICB6LWluZGV4OiAxMztcbn1cblxuLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDEwLCAxMCwgMTAsIDAuNyk7XG59XG5cbi5vZmYtY2FudmFzLWFic29sdXRlLmlzLW9wZW4ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbn1cblxuLnBvc2l0aW9uLWxlZnQge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgd2lkdGg6IDI1MHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1MHB4KTtcbn1cblxuLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1sZWZ0IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNTBweCk7XG59XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tbGVmdC5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xufVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tbGVmdC5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI1MHB4KTtcbn1cblxuLnBvc2l0aW9uLWxlZnQuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgLTEzcHggMCAyMHB4IC0xM3B4IHJnYmEoMTAsIDEwLCAxMCwgMC4yNSk7XG59XG5cbi5wb3NpdGlvbi1yaWdodCB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgd2lkdGg6IDI1MHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjUwcHgpO1xufVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI1MHB4KTtcbn1cblxuLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1yaWdodC5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xufVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tcmlnaHQuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjUwcHgpO1xufVxuXG4ucG9zaXRpb24tcmlnaHQuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMTNweCAwIDIwcHggLTEzcHggcmdiYSgxMCwgMTAsIDEwLCAwLjI1KTtcbn1cblxuLnBvc2l0aW9uLXRvcCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIGhlaWdodDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpO1xufVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXRvcCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpO1xufVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXRvcC5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xufVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tdG9wLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjUwcHgpO1xufVxuXG4ucG9zaXRpb24tdG9wLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTEzcHggMjBweCAtMTNweCByZ2JhKDEwLCAxMCwgMTAsIDAuMjUpO1xufVxuXG4ucG9zaXRpb24tYm90dG9tIHtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgaGVpZ2h0OiAyNTBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI1MHB4KTtcbn1cblxuLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1ib3R0b20ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjUwcHgpO1xufVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLWJvdHRvbS5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xufVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tYm90dG9tLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1MHB4KTtcbn1cblxuLnBvc2l0aW9uLWJvdHRvbS5pcy10cmFuc2l0aW9uLXB1c2gge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDEzcHggMjBweCAtMTNweCByZ2JhKDEwLCAxMCwgMTAsIDAuMjUpO1xufVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXRyYW5zaXRpb24tb3ZlcmxhcCwgLm9mZi1jYW52YXMtY29udGVudC5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTtcbn1cblxuLm9mZi1jYW52YXMtY29udGVudC5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG59XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtbGVmdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1MHB4O1xuICB9XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1MHB4O1xuICB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1yaWdodCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAyNTBweDtcbiAgfVxuICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1tZWRpdW0gfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4O1xuICB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbiAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLW1lZGl1bSAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC10b3Age1xuICAgIG1hcmdpbi10b3A6IDI1MHB4O1xuICB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0gfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICBtYXJnaW4tdG9wOiAyNTBweDtcbiAgfVxuICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtYm90dG9tIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNTBweDtcbiAgfVxuICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjUwcHg7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwLjYyNWVtKSB7XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1sZWZ0IHtcbiAgICBtYXJnaW4tbGVmdDogMjUwcHg7XG4gIH1cbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIG1hcmdpbi1sZWZ0OiAyNTBweDtcbiAgfVxuICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtcmlnaHQge1xuICAgIG1hcmdpbi1yaWdodDogMjUwcHg7XG4gIH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4O1xuICB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC10b3Age1xuICAgIG1hcmdpbi10b3A6IDI1MHB4O1xuICB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1sYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6IDI1MHB4O1xuICB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1ib3R0b20ge1xuICAgIG1hcmdpbi1ib3R0b206IDI1MHB4O1xuICB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDI1MHB4O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bS5wb3NpdGlvbi1sZWZ0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bS5wb3NpdGlvbi1yaWdodCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1tZWRpdW0ucG9zaXRpb24tdG9wLCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bS5wb3NpdGlvbi1ib3R0b20ge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwLjYyNWVtKSB7XG4gIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2Uge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UucG9zaXRpb24tbGVmdCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZS5wb3NpdGlvbi1yaWdodCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZS5wb3NpdGlvbi10b3AsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UucG9zaXRpb24tYm90dG9tIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmZsb2F0LWxlZnQge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xufVxuXG4uZmxvYXQtcmlnaHQge1xuICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbn1cblxuLmZsb2F0LWNlbnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4uY2xlYXJmaXg6OmJlZm9yZSwgLmNsZWFyZml4OjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnICc7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG9yZGVyOiAxO1xufVxuXG4uY2xlYXJmaXg6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi50ZXh0LWhpZGUge1xuICBmb250OiAwLzAgYSAhaW1wb3J0YW50O1xuICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LXRydW5jYXRlIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbn1cblxuLnRleHQtbm93cmFwIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xufVxuXG4udGV4dC13cmFwIHtcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWxvd2VyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2UgIWltcG9ydGFudDtcbn1cblxuLnRleHQtdXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1jYXBpdGFsaXplIHtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemUgIWltcG9ydGFudDtcbn1cblxuLnRleHQtb3ZlcmxpbmUge1xuICB0ZXh0LWRlY29yYXRpb246IG92ZXJsaW5lICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LXVuZGVybGluZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWxpbmUtdGhyb3VnaCB7XG4gIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoICFpbXBvcnRhbnQ7XG59XG5cbi5mb250LXdpZGUge1xuICBsZXR0ZXItc3BhY2luZzogMC4yNXJlbTtcbn1cblxuLmZvbnQtbm9ybWFsIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLmZvbnQtYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZm9udC1pdGFsaWMge1xuICBmb250LXN0eWxlOiBpdGFsaWMgIWltcG9ydGFudDtcbn1cblxudWwubGlzdC1kaXNjIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjICFpbXBvcnRhbnQ7XG59XG5cbnVsLmxpc3QtY2lyY2xlIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBjaXJjbGUgIWltcG9ydGFudDtcbn1cblxudWwubGlzdC1zcXVhcmUge1xuICBsaXN0LXN0eWxlLXR5cGU6IHNxdWFyZSAhaW1wb3J0YW50O1xufVxuXG5vbC5saXN0LWRlY2ltYWwge1xuICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWwgIWltcG9ydGFudDtcbn1cblxub2wubGlzdC1sb3dlci1hbHBoYSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItYWxwaGEgIWltcG9ydGFudDtcbn1cblxub2wubGlzdC1sb3dlci1sYXRpbiB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItbGF0aW4gIWltcG9ydGFudDtcbn1cblxub2wubGlzdC1sb3dlci1yb21hbiB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItcm9tYW4gIWltcG9ydGFudDtcbn1cblxub2wubGlzdC11cHBlci1hbHBoYSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogdXBwZXItYWxwaGEgIWltcG9ydGFudDtcbn1cblxub2wubGlzdC11cHBlci1sYXRpbiB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogdXBwZXItbGF0aW4gIWltcG9ydGFudDtcbn1cblxub2wubGlzdC11cHBlci1yb21hbiB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogdXBwZXItcm9tYW4gIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiA1MDAwcHggIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQgLnN3aXRjaC1wYWRkbGUge1xuICBib3JkZXItcmFkaXVzOiA1MDAwcHggIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQgLnN3aXRjaC1wYWRkbGU6YWZ0ZXIge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbi5yYWRpdXMge1xuICBib3JkZXItcmFkaXVzOiAwLjE4NzVyZW07XG59XG5cbi5ib3JkZXJlZCB7XG4gIGJvcmRlcjogMC4wNjI1cmVtIHNvbGlkICNiN2I2YjY7XG59XG5cbi5zaGFkb3cge1xuICBib3gtc2hhZG93OiAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4uYXJyb3ctZG93biB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDAuNDM3NXJlbTtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICMwYTBhMGEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG59XG5cbi5hcnJvdy11cCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDAuNDM3NXJlbTtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwYTBhMGE7XG59XG5cbi5hcnJvdy1yaWdodCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDAuNDM3NXJlbTtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwYTBhMGE7XG59XG5cbi5hcnJvdy1sZWZ0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgMC40Mzc1cmVtO1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzBhMGEwYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbn1cblxuLnNlcGFyYXRvci1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLnNlcGFyYXRvci1jZW50ZXI6OmJlZm9yZSwgLnNlcGFyYXRvci1jZW50ZXI6OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6ICcgJztcbiAgZmxleC1iYXNpczogMDtcbiAgb3JkZXI6IDE7XG59XG5cbi5zZXBhcmF0b3ItY2VudGVyOjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4uc2VwYXJhdG9yLWNlbnRlcjo6YWZ0ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDNyZW07XG4gIGJvcmRlci1ib3R0b206IDAuMTI1cmVtIHNvbGlkICNENUE4NDc7XG4gIG1hcmdpbjogMS41cmVtIGF1dG8gMDtcbn1cblxuLnNlcGFyYXRvci1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xufVxuXG4uc2VwYXJhdG9yLWxlZnQ6OmJlZm9yZSwgLnNlcGFyYXRvci1sZWZ0OjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnICc7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG9yZGVyOiAxO1xufVxuXG4uc2VwYXJhdG9yLWxlZnQ6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5zZXBhcmF0b3ItbGVmdDo6YWZ0ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDNyZW07XG4gIGJvcmRlci1ib3R0b206IDAuMTI1cmVtIHNvbGlkICNENUE4NDc7XG4gIG1hcmdpbjogMS41cmVtIGF1dG8gMDtcbiAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbn1cblxuLnNlcGFyYXRvci1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG5cbi5zZXBhcmF0b3ItcmlnaHQ6OmJlZm9yZSwgLnNlcGFyYXRvci1yaWdodDo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyAnO1xuICBmbGV4LWJhc2lzOiAwO1xuICBvcmRlcjogMTtcbn1cblxuLnNlcGFyYXRvci1yaWdodDo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLnNlcGFyYXRvci1yaWdodDo6YWZ0ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDNyZW07XG4gIGJvcmRlci1ib3R0b206IDAuMTI1cmVtIHNvbGlkICNENUE4NDc7XG4gIG1hcmdpbjogMS41cmVtIGF1dG8gMDtcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5vdmVyZmxvdy12aXNpYmxlIHtcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLm92ZXJmbG93LXgtdmlzaWJsZSB7XG4gIG92ZXJmbG93LXg6IHZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLm92ZXJmbG93LXktdmlzaWJsZSB7XG4gIG92ZXJmbG93LXk6IHZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLm92ZXJmbG93LWhpZGRlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLm92ZXJmbG93LXgtaGlkZGVuIHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi5vdmVyZmxvdy15LWhpZGRlbiB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4ub3ZlcmZsb3ctc2Nyb2xsIHtcbiAgb3ZlcmZsb3c6IHNjcm9sbCAhaW1wb3J0YW50O1xufVxuXG4ub3ZlcmZsb3cteC1zY3JvbGwge1xuICBvdmVyZmxvdy14OiBzY3JvbGwgIWltcG9ydGFudDtcbn1cblxuLm92ZXJmbG93LXktc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsICFpbXBvcnRhbnQ7XG59XG5cbi5kaXNwbGF5LWlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xufVxuXG4uZGlzcGxheS1pbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbn1cblxuLmRpc3BsYXktYmxvY2sge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG4uZGlzcGxheS10YWJsZSB7XG4gIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG59XG5cbi5kaXNwbGF5LXRhYmxlLWNlbGwge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG59XG5cbi5wb3NpdGlvbi1zdGF0aWMge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG59XG5cbi5wb3NpdGlvbi1yZWxhdGl2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xufVxuXG4ucG9zaXRpb24tYWJzb2x1dGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbn1cblxuLnBvc2l0aW9uLWZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG59XG5cbi5wb3NpdGlvbi1maXhlZC10b3Age1xuICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbiAgdG9wOiAwcmVtICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAwcmVtICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDByZW0gIWltcG9ydGFudDtcbiAgei1pbmRleDogOTc1O1xufVxuXG4ucG9zaXRpb24tZml4ZWQtYm90dG9tIHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAwcmVtICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogMHJlbSAhaW1wb3J0YW50O1xuICBsZWZ0OiAwcmVtICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDk3NTtcbn1cblxuLmJvcmRlci1ib3gge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItbm9uZSB7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4ud2lkdGgtMjUge1xuICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG59XG5cbi53aWR0aC01MCB7XG4gIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbn1cblxuLndpZHRoLTc1IHtcbiAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xufVxuXG4ud2lkdGgtMTAwIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLmhlaWdodC0yNSB7XG4gIGhlaWdodDogMjUlICFpbXBvcnRhbnQ7XG59XG5cbi5oZWlnaHQtNTAge1xuICBoZWlnaHQ6IDUwJSAhaW1wb3J0YW50O1xufVxuXG4uaGVpZ2h0LTc1IHtcbiAgaGVpZ2h0OiA3NSUgIWltcG9ydGFudDtcbn1cblxuLmhlaWdodC0xMDAge1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLm1heC13aWR0aC0xMDAge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLm1heC1oZWlnaHQtMTAwIHtcbiAgbWF4LWhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4ubWFyZ2luLTAge1xuICBtYXJnaW46IDByZW0gIWltcG9ydGFudDtcbn1cblxuLm1hcmdpbi10b3AtMCB7XG4gIG1hcmdpbi10b3A6IDByZW0gIWltcG9ydGFudDtcbn1cblxuLm1hcmdpbi1yaWdodC0wIHtcbiAgbWFyZ2luLXJpZ2h0OiAwcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJnaW4tYm90dG9tLTAge1xuICBtYXJnaW4tYm90dG9tOiAwcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJnaW4tbGVmdC0wIHtcbiAgbWFyZ2luLWxlZnQ6IDByZW0gIWltcG9ydGFudDtcbn1cblxuLm1hcmdpbi1ob3Jpem9udGFsLTAge1xuICBtYXJnaW4tcmlnaHQ6IDByZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDByZW0gIWltcG9ydGFudDtcbn1cblxuLm1hcmdpbi12ZXJ0aWNhbC0wIHtcbiAgbWFyZ2luLXRvcDogMHJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wYWRkaW5nLTAge1xuICBwYWRkaW5nOiAwcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wYWRkaW5nLXRvcC0wIHtcbiAgcGFkZGluZy10b3A6IDByZW0gIWltcG9ydGFudDtcbn1cblxuLnBhZGRpbmctcmlnaHQtMCB7XG4gIHBhZGRpbmctcmlnaHQ6IDByZW0gIWltcG9ydGFudDtcbn1cblxuLnBhZGRpbmctYm90dG9tLTAge1xuICBwYWRkaW5nLWJvdHRvbTogMHJlbSAhaW1wb3J0YW50O1xufVxuXG4ucGFkZGluZy1sZWZ0LTAge1xuICBwYWRkaW5nLWxlZnQ6IDByZW0gIWltcG9ydGFudDtcbn1cblxuLnBhZGRpbmctaG9yaXpvbnRhbC0wIHtcbiAgcGFkZGluZy1yaWdodDogMHJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDByZW0gIWltcG9ydGFudDtcbn1cblxuLnBhZGRpbmctdmVydGljYWwtMCB7XG4gIHBhZGRpbmctdG9wOiAwcmVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAwcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJnaW4tMSB7XG4gIG1hcmdpbjogMS41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJnaW4tdG9wLTEge1xuICBtYXJnaW4tdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1hcmdpbi1yaWdodC0xIHtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1hcmdpbi1ib3R0b20tMSB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubWFyZ2luLWxlZnQtMSB7XG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1hcmdpbi1ob3Jpem9udGFsLTEge1xuICBtYXJnaW4tcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJnaW4tdmVydGljYWwtMSB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnBhZGRpbmctMSB7XG4gIHBhZGRpbmc6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucGFkZGluZy10b3AtMSB7XG4gIHBhZGRpbmctdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnBhZGRpbmctcmlnaHQtMSB7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucGFkZGluZy1ib3R0b20tMSB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnBhZGRpbmctbGVmdC0xIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnBhZGRpbmctaG9yaXpvbnRhbC0xIHtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wYWRkaW5nLXZlcnRpY2FsLTEge1xuICBwYWRkaW5nLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1hcmdpbi0yIHtcbiAgbWFyZ2luOiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJnaW4tdG9wLTIge1xuICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJnaW4tcmlnaHQtMiB7XG4gIG1hcmdpbi1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xufVxuXG4ubWFyZ2luLWJvdHRvbS0yIHtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xufVxuXG4ubWFyZ2luLWxlZnQtMiB7XG4gIG1hcmdpbi1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJnaW4taG9yaXpvbnRhbC0yIHtcbiAgbWFyZ2luLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJnaW4tdmVydGljYWwtMiB7XG4gIG1hcmdpbi10b3A6IDNyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xufVxuXG4ucGFkZGluZy0yIHtcbiAgcGFkZGluZzogM3JlbSAhaW1wb3J0YW50O1xufVxuXG4ucGFkZGluZy10b3AtMiB7XG4gIHBhZGRpbmctdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wYWRkaW5nLXJpZ2h0LTIge1xuICBwYWRkaW5nLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wYWRkaW5nLWJvdHRvbS0yIHtcbiAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLnBhZGRpbmctbGVmdC0yIHtcbiAgcGFkZGluZy1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wYWRkaW5nLWhvcml6b250YWwtMiB7XG4gIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wYWRkaW5nLXZlcnRpY2FsLTIge1xuICBwYWRkaW5nLXRvcDogM3JlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xufVxuXG4ubWFyZ2luLTMge1xuICBtYXJnaW46IDQuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubWFyZ2luLXRvcC0zIHtcbiAgbWFyZ2luLXRvcDogNC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJnaW4tcmlnaHQtMyB7XG4gIG1hcmdpbi1yaWdodDogNC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJnaW4tYm90dG9tLTMge1xuICBtYXJnaW4tYm90dG9tOiA0LjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1hcmdpbi1sZWZ0LTMge1xuICBtYXJnaW4tbGVmdDogNC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJnaW4taG9yaXpvbnRhbC0zIHtcbiAgbWFyZ2luLXJpZ2h0OiA0LjVyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDQuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubWFyZ2luLXZlcnRpY2FsLTMge1xuICBtYXJnaW4tdG9wOiA0LjVyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogNC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wYWRkaW5nLTMge1xuICBwYWRkaW5nOiA0LjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnBhZGRpbmctdG9wLTMge1xuICBwYWRkaW5nLXRvcDogNC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wYWRkaW5nLXJpZ2h0LTMge1xuICBwYWRkaW5nLXJpZ2h0OiA0LjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnBhZGRpbmctYm90dG9tLTMge1xuICBwYWRkaW5nLWJvdHRvbTogNC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wYWRkaW5nLWxlZnQtMyB7XG4gIHBhZGRpbmctbGVmdDogNC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wYWRkaW5nLWhvcml6b250YWwtMyB7XG4gIHBhZGRpbmctcmlnaHQ6IDQuNXJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDQuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucGFkZGluZy12ZXJ0aWNhbC0zIHtcbiAgcGFkZGluZy10b3A6IDQuNXJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogNC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAuaGlkZS1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDBlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuc2hvdy1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5oaWRlLWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC5zaG93LWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYwLjYyMzc1ZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAuNjI1ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwLjYyNWVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwLjYyMzc1ZW0pIHtcbiAgLnNob3ctZm9yLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwLjYyNWVtKSBhbmQgKG1heC13aWR0aDogNzQuOTk4NzVlbSkge1xuICAuaGlkZS1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwLjYyMzc1ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnNob3ctZm9yLWxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uc2hvdy1mb3Itc3IsXG4uc2hvdy1vbi1mb2N1cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMXB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5zaG93LW9uLWZvY3VzOmFjdGl2ZSwgLnNob3ctb24tZm9jdXM6Zm9jdXMge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbn1cblxuLnNob3ctZm9yLWxhbmRzY2FwZSxcbi5oaWRlLWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5oaWRlLWZvci1sYW5kc2NhcGUsXG4uc2hvdy1mb3ItcG9ydHJhaXQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuPSAgICAgICAgICAgIE1peGluIEZ1bGx3aWR0aCBCYWNrZ3JvdW5kICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKj09PT09ICBFbmQgb2YgTWl4aW4gRnVsbHdpZHRoIEJhY2tncm91bmQgID09PT09PSovXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgR2VuZXJhdGUgRm9udCBGYWNlICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyo9PT09PSAgRW5kIG9mIEdlbmVyYXRlIEZvbnQgRmFjZSAgPT09PT09Ki9cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgTWl4aW4gTGlzdHMgU3R5bGluZyAgICAgICAgICAgID1cclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKipcclxuICogTWl4aW5zIGZ1ZXIgbm9ybWFsZSBMaXN0ZW4gdW5kIERMIExpc3RlblxyXG5cclxuKi9cbi8qPT09PT0gIEVuZCBvZiBNaXhpbiBMaXN0cyBTdHlsaW5nICA9PT09PT0qL1xuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgTWl4aW4gUGFpbnRzdHJva2UgICAgICAgICAgICA9XHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qPT09PT0gIEVuZCBvZiBNaXhpbiBQYWludHN0cm9rZSAgPT09PT09Ki9cbi8qKlxyXG5Nb2R1bGUgc2luZCAnQmF1c3RlaW5lJywgd2VsY2hlIHVudGVyIGFuZGVyZW0gaW4gTGF5b3V0cyBiZW51dHp0IHdlcmRlbiBrb2VubmVuLlxyXG5TaWUgaGFiZW4ga2VpbmUgUG9zaXRpb25zYW5nYWJlbiwgc29uZGVybiBkZWZpbmllcmVuICdudXInIGRhcyBBdXNzZWhlbixcclxuc3ByaWNoIGhpZXIgd2VyZGVuIGRpZSBzdHlsZXMgd2llIEZhcmJlbiwgU2NocmlmdGVuIHVzdywgZGVmaW5pZXJ0LlxyXG4gKi9cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgTW9kdWxlIEFjY29yZGlvbiAgICAgICAgICAgID1cclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4ubW9kdWxlLWFjY29yZGlvbiB7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tb2R1bGUtYWNjb3JkaW9uOjpiZWZvcmUsIC5tb2R1bGUtYWNjb3JkaW9uOjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnICc7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG9yZGVyOiAxO1xufVxuXG4ubW9kdWxlLWFjY29yZGlvbjo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLm1vZHVsZS1hY2NvcmRpb24gLmFjY29yZGlvbi1oZWFkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24taGVhZGVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuLm1vZHVsZS1hY2NvcmRpb24gLmFjY29yZGlvbi1oZWFkZXIsIC5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24taGVhZGVyOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG59XG5cbi5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24taGVhZGVyOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24td3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24td3JhcHBlciB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24td3JhcHBlciwgLm1vZHVsZS1hY2NvcmRpb24gLmFjY29yZGlvbi13cmFwcGVyOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG59XG5cbi5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24td3JhcHBlcjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ubW9kdWxlLWFjY29yZGlvbiAuYWNjb3JkaW9uLXdyYXBwZXIgLmFjY29yZGlvbi10aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90byBTbGFiXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24td3JhcHBlciAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1vZHVsZS1hY2NvcmRpb24gLmFjY29yZGlvbi1oZWFkZXIge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24taGVhZGVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1vZHVsZS1hY2NvcmRpb24gLmFjY29yZGlvbi1oZWFkZXIsIC5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24taGVhZGVyOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBub25lO1xuICB9XG4gIC5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24taGVhZGVyOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxuICAubW9kdWxlLWFjY29yZGlvbiAuYWNjb3JkaW9uLWhlYWRlciwgLm1vZHVsZS1hY2NvcmRpb24gLmFjY29yZGlvbi1oZWFkZXI6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbiAgLm1vZHVsZS1hY2NvcmRpb24gLmFjY29yZGlvbi13cmFwcGVyIHtcbiAgICB3aWR0aDogODMuMzMzMzMlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubW9kdWxlLWFjY29yZGlvbiAuYWNjb3JkaW9uLXdyYXBwZXIge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubW9kdWxlLWFjY29yZGlvbiAuYWNjb3JkaW9uLXdyYXBwZXIsIC5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24td3JhcHBlcjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjbGVhcjogbm9uZTtcbiAgfVxuICAubW9kdWxlLWFjY29yZGlvbiAuYWNjb3JkaW9uLXdyYXBwZXI6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG4gIC5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24td3JhcHBlciwgLm1vZHVsZS1hY2NvcmRpb24gLmFjY29yZGlvbi13cmFwcGVyOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MC42MjVlbSkge1xuICAubW9kdWxlLWFjY29yZGlvbiAuYWNjb3JkaW9uLWhlYWRlciB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAuNjI1ZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24taGVhZGVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwLjYyNWVtKSB7XG4gIC5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24taGVhZGVyLCAubW9kdWxlLWFjY29yZGlvbiAuYWNjb3JkaW9uLWhlYWRlcjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjbGVhcjogbm9uZTtcbiAgfVxuICAubW9kdWxlLWFjY29yZGlvbiAuYWNjb3JkaW9uLWhlYWRlcjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgLm1vZHVsZS1hY2NvcmRpb24gLmFjY29yZGlvbi1oZWFkZXIsIC5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24taGVhZGVyOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG4gIC5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24td3JhcHBlciB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAuNjI1ZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24td3JhcHBlciB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MC42MjVlbSkge1xuICAubW9kdWxlLWFjY29yZGlvbiAuYWNjb3JkaW9uLXdyYXBwZXIsIC5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24td3JhcHBlcjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjbGVhcjogbm9uZTtcbiAgfVxuICAubW9kdWxlLWFjY29yZGlvbiAuYWNjb3JkaW9uLXdyYXBwZXI6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG4gIC5tb2R1bGUtYWNjb3JkaW9uIC5hY2NvcmRpb24td3JhcHBlciwgLm1vZHVsZS1hY2NvcmRpb24gLmFjY29yZGlvbi13cmFwcGVyOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8qPT09PT0gIEVuZCBvZiBNb2R1bGUgQWNjb3JkaW9uICA9PT09PT0qL1xuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuPSAgICAgICAgICAgIE1vZHVsZSBIZWFkZXIgU2l0ZSAgICAgICAgICAgID1cclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi50aXRsZS1iYXIuc2hyaW5rIHtcbiAgYmFja2dyb3VuZDogIzBhMGEwYTtcbiAgaGVpZ2h0OiAzZW07XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgei1pbmRleDogMjAwO1xufVxuXG4udGl0bGUtYmFyLnNocmluayAjbW9kdWxlLWJhbm5lciB7XG4gIHBhZGRpbmctdG9wOiA0cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLnRpdGxlLWJhci5zaHJpbmsgI21vZHVsZS1iYW5uZXIgI3dyYXBwZXItYm9vayB7XG4gIHdpZHRoOiAzMy4zMzMzMyU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC50aXRsZS1iYXIuc2hyaW5rICNtb2R1bGUtYmFubmVyICN3cmFwcGVyLWJvb2sge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4udGl0bGUtYmFyLnNocmluayAjbW9kdWxlLWJhbm5lciAjd3JhcHBlci1ib29rLCAudGl0bGUtYmFyLnNocmluayAjbW9kdWxlLWJhbm5lciAjd3JhcHBlci1ib29rOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG59XG5cbi50aXRsZS1iYXIuc2hyaW5rICNtb2R1bGUtYmFubmVyICN3cmFwcGVyLWJvb2s6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLnRpdGxlLWJhci5zaHJpbmsgI21vZHVsZS1iYW5uZXIgI3dyYXBwZXItYm9vayAuYnV0dG9uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBoZWlnaHQ6IDM2cHg7XG4gIG1hcmdpbjogMnB4IGF1dG87XG4gIHBhZGRpbmc6IDRweCAxNnB4O1xufVxuXG4jbW9kdWxlLWJhbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwYTBhMGE7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4jbW9kdWxlLWJhbm5lcjo6YmVmb3JlLCAjbW9kdWxlLWJhbm5lcjo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyAnO1xuICBmbGV4LWJhc2lzOiAwO1xuICBvcmRlcjogMTtcbn1cblxuI21vZHVsZS1iYW5uZXI6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbiNtb2R1bGUtYmFubmVyIC5tb2R1bGUtbmF2aWdhdGlvbi1iYW5uZXIge1xuICB3aWR0aDogNjYuNjY2NjclO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICNtb2R1bGUtYmFubmVyIC5tb2R1bGUtbmF2aWdhdGlvbi1iYW5uZXIge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4jbW9kdWxlLWJhbm5lciAubW9kdWxlLW5hdmlnYXRpb24tYmFubmVyLCAjbW9kdWxlLWJhbm5lciAubW9kdWxlLW5hdmlnYXRpb24tYmFubmVyOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG59XG5cbiNtb2R1bGUtYmFubmVyIC5tb2R1bGUtbmF2aWdhdGlvbi1iYW5uZXI6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuI21vZHVsZS1iYW5uZXIgI3dyYXBwZXItYm9vayB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNtb2R1bGUtYmFubmVyICN3cmFwcGVyLXNvY2lhbCB7XG4gIHdpZHRoOiAxNi42NjY2NyU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZy10b3A6IDAuMzc1cmVtICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICNtb2R1bGUtYmFubmVyICN3cmFwcGVyLXNvY2lhbCB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbiNtb2R1bGUtYmFubmVyICN3cmFwcGVyLXNvY2lhbCwgI21vZHVsZS1iYW5uZXIgI3dyYXBwZXItc29jaWFsOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG59XG5cbiNtb2R1bGUtYmFubmVyICN3cmFwcGVyLXNvY2lhbDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4jbW9kdWxlLWJhbm5lciAjd3JhcHBlci1zb2NpYWwgdWwge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbiNtb2R1bGUtYmFubmVyICN3cmFwcGVyLXNvY2lhbCB1bCBsaSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZy1sZWZ0OiAwLjc1cmVtICFpbXBvcnRhbnQ7XG59XG5cbiNtb2R1bGUtYmFubmVyICN3cmFwcGVyLXNvY2lhbCB1bCBsaSBhIHtcbiAgY29sb3I6ICNGREZDRkM7XG59XG5cbiNtb2R1bGUtYmFubmVyICN3cmFwcGVyLXNvY2lhbCB1bCBsaSBhOnZpc2l0ZWQge1xuICBjb2xvcjogI0ZERkNGQztcbn1cblxuI21vZHVsZS1iYW5uZXIgI3dyYXBwZXItc29jaWFsIHVsIGxpIGE6Zm9jdXMge1xuICBjb2xvcjogI0ZERkNGQztcbn1cblxuI21vZHVsZS1iYW5uZXIgI3dyYXBwZXItc29jaWFsIHVsIGxpIGE6aG92ZXIge1xuICBjb2xvcjogI0Q1QTg0Nztcbn1cblxuI21vZHVsZS1iYW5uZXIgI3dyYXBwZXItc29jaWFsIHVsIGxpIGE6YWN0aXZlIHtcbiAgY29sb3I6ICNGREZDRkM7XG59XG5cbiNtb2R1bGUtYmFubmVyICN3cmFwcGVyLXNvY2lhbCB1bCBsaSBhLmljb24ge1xuICBmb250LWZhbWlseTogXCJSb2JvdG8gU2xhYlwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgI21vZHVsZS1iYW5uZXIgI3dyYXBwZXItc29jaWFsIHVsIGxpIGEuaWNvbiB7XG4gICAgZm9udC1zaXplOiAxLjMxMjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwLjYyNWVtKSB7XG4gICNtb2R1bGUtYmFubmVyICN3cmFwcGVyLXNvY2lhbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufVxuXG4vKj09PT09ICBFbmQgb2YgTW9kdWxlIEhlYWRlciBTaXRlICA9PT09PT0qL1xuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbj0gICAgICAgICAgICBNb2R1bGUgQ2Fyb3VzZWwgUHJvZmlsZSBTdHlsaW5nICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi5tb2R1bGUtY2Fyb3VzZWwtcHJvZmlsZSB7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5tb2R1bGUtY2Fyb3VzZWwtcHJvZmlsZTo6YmVmb3JlLCAubW9kdWxlLWNhcm91c2VsLXByb2ZpbGU6OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6ICcgJztcbiAgZmxleC1iYXNpczogMDtcbiAgb3JkZXI6IDE7XG59XG5cbi5tb2R1bGUtY2Fyb3VzZWwtcHJvZmlsZTo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLm1vZHVsZS1jYXJvdXNlbC1wcm9maWxlIC5jYXJvdXNlbC1wcm9maWxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1vZHVsZS1jYXJvdXNlbC1wcm9maWxlIC5jYXJvdXNlbC1wcm9maWxlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuLm1vZHVsZS1jYXJvdXNlbC1wcm9maWxlIC5jYXJvdXNlbC1wcm9maWxlLCAubW9kdWxlLWNhcm91c2VsLXByb2ZpbGUgLmNhcm91c2VsLXByb2ZpbGU6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBjbGVhcjogbm9uZTtcbn1cblxuLm1vZHVsZS1jYXJvdXNlbC1wcm9maWxlIC5jYXJvdXNlbC1wcm9maWxlOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5tb2R1bGUtY2Fyb3VzZWwtcHJvZmlsZS4taW5kZXgge1xuICBtYXJnaW4tYm90dG9tOiAzZW07XG59XG5cbi5tb2R1bGUtY2Fyb3VzZWwtcHJvZmlsZS4taW5kZXggLnRlYXNlci1pbWFnZSB7XG4gIGhlaWdodDogMjYwcHg7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cblxuLm1vZHVsZS1jYXJvdXNlbC1wcm9maWxlLi1pbmRleCAudGVhc2VyLWltYWdlIGltZyB7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4ubW9kdWxlLWNhcm91c2VsLXByb2ZpbGUuLWluZGV4IC50eXBlc2V0LXN1YmhlYWRpbmctMiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyo9PT09PSAgRW5kIG9mIE1vZHVsZSBDYXJvdXNlbCBQcm9maWxlIFN0eWxpbmcgID09PT09PSovXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuPSAgICAgICAgICAgIE1vZHVsZSBDYXJvdXNlbCBQcm9maWxlIFN0eWxpbmcgICAgICAgICAgICA9XHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLm1vZHVsZS1jYXJvdXNlbC12YW4ge1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ubW9kdWxlLWNhcm91c2VsLXZhbjo6YmVmb3JlLCAubW9kdWxlLWNhcm91c2VsLXZhbjo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyAnO1xuICBmbGV4LWJhc2lzOiAwO1xuICBvcmRlcjogMTtcbn1cblxuLm1vZHVsZS1jYXJvdXNlbC12YW46OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5tb2R1bGUtY2Fyb3VzZWwtdmFuIC5jYXJvdXNlbC1wcm9maWxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1vZHVsZS1jYXJvdXNlbC12YW4gLmNhcm91c2VsLXByb2ZpbGUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4ubW9kdWxlLWNhcm91c2VsLXZhbiAuY2Fyb3VzZWwtcHJvZmlsZSwgLm1vZHVsZS1jYXJvdXNlbC12YW4gLmNhcm91c2VsLXByb2ZpbGU6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBjbGVhcjogbm9uZTtcbn1cblxuLm1vZHVsZS1jYXJvdXNlbC12YW4gLmNhcm91c2VsLXByb2ZpbGU6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLm1vZHVsZS1jYXJvdXNlbC12YW4uLWluZGV4IC50ZWFzZXItaW1hZ2Uge1xuICBoZWlnaHQ6IDI0MHB4O1xufVxuXG4ubW9kdWxlLWNhcm91c2VsLXZhbi4taW5kZXggLnRlYXNlci1pbWFnZSBpbWcge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1vZHVsZS1jYXJvdXNlbC12YW4uLWluZGV4IC50ZWFzZXItaW1hZ2Uge1xuICAgIGhlaWdodDogNDgwcHg7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwLjYyNWVtKSB7XG4gIC5tb2R1bGUtY2Fyb3VzZWwtdmFuLi1pbmRleCAudGVhc2VyLWltYWdlIHtcbiAgICBoZWlnaHQ6IDY0MHB4O1xuICB9XG59XG5cbi8qPT09PT0gIEVuZCBvZiBNb2R1bGUgQ2Fyb3VzZWwgUHJvZmlsZSBTdHlsaW5nICA9PT09PT0qL1xuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuPSAgICAgICAgICAgIE1vZHVsZSBDYWxsIHRvIGFjdGlvbiAgICAgICAgICAgID1cclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi5tb2R1bGUtY3RhIHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy10b3A6IDNyZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDZyZW0gIWltcG9ydGFudDtcbn1cblxuLm1vZHVsZS1jdGE6OmJlZm9yZSwgLm1vZHVsZS1jdGE6OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6ICcgJztcbiAgZmxleC1iYXNpczogMDtcbiAgb3JkZXI6IDE7XG59XG5cbi5tb2R1bGUtY3RhOjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4ubW9kdWxlLWN0YS5zbWFsbC1tYXJnaW4ge1xuICBwYWRkaW5nLWJvdHRvbTogMHJlbSAhaW1wb3J0YW50O1xufVxuXG4ubW9kdWxlLWN0YSAud3JhcHBlci1idXR0b24ge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubW9kdWxlLWN0YSAud3JhcHBlci1idXR0b24ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4ubW9kdWxlLWN0YSAud3JhcHBlci1idXR0b24sIC5tb2R1bGUtY3RhIC53cmFwcGVyLWJ1dHRvbjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGNsZWFyOiBub25lO1xufVxuXG4ubW9kdWxlLWN0YSAud3JhcHBlci1idXR0b246bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLm1vZHVsZS1jdGEgLndyYXBwZXItYnV0dG9uLCAubW9kdWxlLWN0YSAud3JhcHBlci1idXR0b246bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiBub25lO1xuICBjbGVhcjogYm90aDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1vZHVsZS1jdGEgLndyYXBwZXItYnV0dG9uIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubW9kdWxlLWN0YSAud3JhcHBlci1idXR0b24ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubW9kdWxlLWN0YSAud3JhcHBlci1idXR0b24sIC5tb2R1bGUtY3RhIC53cmFwcGVyLWJ1dHRvbjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjbGVhcjogbm9uZTtcbiAgfVxuICAubW9kdWxlLWN0YSAud3JhcHBlci1idXR0b246bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG4gIC5tb2R1bGUtY3RhIC53cmFwcGVyLWJ1dHRvbiwgLm1vZHVsZS1jdGEgLndyYXBwZXItYnV0dG9uOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MC42MjVlbSkge1xuICAubW9kdWxlLWN0YSAud3JhcHBlci1idXR0b24ge1xuICAgIHdpZHRoOiAyNSU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwLjYyNWVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubW9kdWxlLWN0YSAud3JhcHBlci1idXR0b24ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAuNjI1ZW0pIHtcbiAgLm1vZHVsZS1jdGEgLndyYXBwZXItYnV0dG9uLCAubW9kdWxlLWN0YSAud3JhcHBlci1idXR0b246bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbiAgLm1vZHVsZS1jdGEgLndyYXBwZXItYnV0dG9uOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxuICAubW9kdWxlLWN0YSAud3JhcHBlci1idXR0b24sIC5tb2R1bGUtY3RhIC53cmFwcGVyLWJ1dHRvbjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vKj09PT09ICBFbmQgb2YgTW9kdWxlIENhbGwgdG8gYWN0aW9uICA9PT09PT0qL1xuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbj0gICAgICAgICAgICBNb2R1bGUgR2FsbGVyeSBNYXNvbnJ5ICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi5tb2R1bGUtZ2FsbGVyeS1tYXNvbnJ5OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjbGVhcjogYm90aDtcbn1cblxuLyo9PT09PSAgRW5kIG9mIE1vZHVsZSBHYWxsZXJ5IE1hc29ucnkgID09PT09PSovXG4jbW9kdWxlLWhlYWRlci1zaXRlIHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4jbW9kdWxlLWhlYWRlci1zaXRlOjpiZWZvcmUsICNtb2R1bGUtaGVhZGVyLXNpdGU6OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6ICcgJztcbiAgZmxleC1iYXNpczogMDtcbiAgb3JkZXI6IDE7XG59XG5cbiNtb2R1bGUtaGVhZGVyLXNpdGU6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbiNtb2R1bGUtaGVhZGVyLXNpdGUgI3dyYXBwZXItaGVhZGVyLWxvZ28ge1xuICB3aWR0aDogMzMuMzMzMzMlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICNtb2R1bGUtaGVhZGVyLXNpdGUgI3dyYXBwZXItaGVhZGVyLWxvZ28ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4jbW9kdWxlLWhlYWRlci1zaXRlICN3cmFwcGVyLWhlYWRlci1sb2dvLCAjbW9kdWxlLWhlYWRlci1zaXRlICN3cmFwcGVyLWhlYWRlci1sb2dvOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG59XG5cbiNtb2R1bGUtaGVhZGVyLXNpdGUgI3dyYXBwZXItaGVhZGVyLWxvZ286bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuI21vZHVsZS1oZWFkZXItc2l0ZSAubW9kdWxlLW5hdmlnYXRpb24tbWFpbiB7XG4gIHdpZHRoOiA2Ni42NjY2NyU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgI21vZHVsZS1oZWFkZXItc2l0ZSAubW9kdWxlLW5hdmlnYXRpb24tbWFpbiB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbiNtb2R1bGUtaGVhZGVyLXNpdGUgLm1vZHVsZS1uYXZpZ2F0aW9uLW1haW4sICNtb2R1bGUtaGVhZGVyLXNpdGUgLm1vZHVsZS1uYXZpZ2F0aW9uLW1haW46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBjbGVhcjogbm9uZTtcbn1cblxuI21vZHVsZS1oZWFkZXItc2l0ZSAubW9kdWxlLW5hdmlnYXRpb24tbWFpbjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAjbW9kdWxlLWhlYWRlci1zaXRlICN3cmFwcGVyLWhlYWRlci1sb2dvIHtcbiAgICB3aWR0aDogMjUlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICNtb2R1bGUtaGVhZGVyLXNpdGUgI3dyYXBwZXItaGVhZGVyLWxvZ28ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAjbW9kdWxlLWhlYWRlci1zaXRlICN3cmFwcGVyLWhlYWRlci1sb2dvLCAjbW9kdWxlLWhlYWRlci1zaXRlICN3cmFwcGVyLWhlYWRlci1sb2dvOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBub25lO1xuICB9XG4gICNtb2R1bGUtaGVhZGVyLXNpdGUgI3dyYXBwZXItaGVhZGVyLWxvZ286bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG4gICNtb2R1bGUtaGVhZGVyLXNpdGUgLm1vZHVsZS1uYXZpZ2F0aW9uLW1haW4ge1xuICAgIHdpZHRoOiA3NSU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgI21vZHVsZS1oZWFkZXItc2l0ZSAubW9kdWxlLW5hdmlnYXRpb24tbWFpbiB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICNtb2R1bGUtaGVhZGVyLXNpdGUgLm1vZHVsZS1uYXZpZ2F0aW9uLW1haW4sICNtb2R1bGUtaGVhZGVyLXNpdGUgLm1vZHVsZS1uYXZpZ2F0aW9uLW1haW46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbiAgI21vZHVsZS1oZWFkZXItc2l0ZSAubW9kdWxlLW5hdmlnYXRpb24tbWFpbjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbn1cblxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgTW9kdWxlIEhlYWRlciBBcnRpY2xlIHN0eWxpbmcgICAgICAgICAgICA9XHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi5tb2R1bGUtaGVhZGVyLWFydGljbGUge1xuICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1vZHVsZS1oZWFkZXItYXJ0aWNsZSB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5tb2R1bGUtaGVhZGVyLWFydGljbGUsIC5tb2R1bGUtaGVhZGVyLWFydGljbGU6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBjbGVhcjogbm9uZTtcbn1cblxuLm1vZHVsZS1oZWFkZXItYXJ0aWNsZTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ubW9kdWxlLWhlYWRlci1hcnRpY2xlLCAubW9kdWxlLWhlYWRlci1hcnRpY2xlOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogbm9uZTtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5tb2R1bGUtaGVhZGVyLWFydGljbGUuLS1uby1wYWRkaW5nIHtcbiAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLm1vZHVsZS1oZWFkZXItYXJ0aWNsZSAudGl0bGUge1xuICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tb2R1bGUtaGVhZGVyLWFydGljbGUgLmljb24tc3Rlcm4ge1xuICBwYWRkaW5nLWJvdHRvbTogMi4yNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubW9kdWxlLWhlYWRlci1hcnRpY2xlIC5zdWJ0aXRsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2R1bGUtaGVhZGVyLWFydGljbGUgLnN1YnRpdGxlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuLm1vZHVsZS1oZWFkZXItYXJ0aWNsZSAuc3VidGl0bGUsIC5tb2R1bGUtaGVhZGVyLWFydGljbGUgLnN1YnRpdGxlOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG59XG5cbi5tb2R1bGUtaGVhZGVyLWFydGljbGUgLnN1YnRpdGxlOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5tb2R1bGUtaGVhZGVyLWFydGljbGUgLnN1YnRpdGxlLCAubW9kdWxlLWhlYWRlci1hcnRpY2xlIC5zdWJ0aXRsZTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGNsZWFyOiBib3RoO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubW9kdWxlLWhlYWRlci1hcnRpY2xlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tb2R1bGUtaGVhZGVyLWFydGljbGUgLnN1YnRpdGxlIHtcbiAgICB3aWR0aDogODMuMzMzMzMlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubW9kdWxlLWhlYWRlci1hcnRpY2xlIC5zdWJ0aXRsZSB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2R1bGUtaGVhZGVyLWFydGljbGUgLnN1YnRpdGxlLCAubW9kdWxlLWhlYWRlci1hcnRpY2xlIC5zdWJ0aXRsZTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjbGVhcjogbm9uZTtcbiAgfVxuICAubW9kdWxlLWhlYWRlci1hcnRpY2xlIC5zdWJ0aXRsZTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgLm1vZHVsZS1oZWFkZXItYXJ0aWNsZSAuc3VidGl0bGUsIC5tb2R1bGUtaGVhZGVyLWFydGljbGUgLnN1YnRpdGxlOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MC42MjVlbSkge1xuICAubW9kdWxlLWhlYWRlci1hcnRpY2xlIC5zdWJ0aXRsZSB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAuNjI1ZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2R1bGUtaGVhZGVyLWFydGljbGUgLnN1YnRpdGxlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwLjYyNWVtKSB7XG4gIC5tb2R1bGUtaGVhZGVyLWFydGljbGUgLnN1YnRpdGxlLCAubW9kdWxlLWhlYWRlci1hcnRpY2xlIC5zdWJ0aXRsZTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjbGVhcjogbm9uZTtcbiAgfVxuICAubW9kdWxlLWhlYWRlci1hcnRpY2xlIC5zdWJ0aXRsZTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgLm1vZHVsZS1oZWFkZXItYXJ0aWNsZSAuc3VidGl0bGUsIC5tb2R1bGUtaGVhZGVyLWFydGljbGUgLnN1YnRpdGxlOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8qPT09PT0gIEVuZCBvZiBNb2R1bGUgSGVhZGVyIEFydGljbGUgc3R5bGluZyAgPT09PT09Ki9cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuPSAgICAgICAgICAgIE1vZHVsZSBMb2dvICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4ubW9kdWxlLWxvZ28gYSB7XG4gIGhlaWdodDogNi4xMjVyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvYXNzZXRzL2ltZy9sb2dvLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDE1JTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICB0ZXh0LWluZGVudDogLTk5OTlweDtcbn1cblxuLm1vZHVsZS1sb2dvLi1pbnZlcnQgYSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9hc3NldHMvaW1nL2xvZ28taW52ZXJ0LnN2Z1wiKTtcbn1cblxuLm1vZHVsZS1sb2dvLi1sZWZ0IGEge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSAxNSU7XG59XG5cbi8qPT09PT0gIEVuZCBvZiBNb2R1bGUgTG9nbyAgPT09PT09Ki9cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbj0gICAgICAgICAgICBNb2R1bGUgTG9hZGluZyBTcGlubmVyIFN0eWxpbmcgICAgICAgICAgICA9XHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4ubW9kdWxlLWxvYWRpbmctc3Bpbm5lciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjEzLCAxNjgsIDcxLCAwLjUpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDB2aDtcbn1cblxuLm1vZHVsZS1sb2FkaW5nLXNwaW5uZXIgLmxvYWRpbmctaWNvbiB7XG4gIGJhY2tncm91bmQ6IHVybChcIi9hc3NldHMvaW1nL3NrLWxvYWRpbmcuc3ZnXCIpIDUwJSA1MCUgbm8tcmVwZWF0O1xuICBoZWlnaHQ6IDMycHg7XG59XG5cbi5tb2R1bGUtbG9hZGluZy1zcGlubmVyIC53cmFwcGVyLWxvYWRpbmcge1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDEzNHB4O1xufVxuXG4ubW9kdWxlLWxvYWRpbmctc3Bpbm5lciAuZG90LWFuaW1hdGlvbiB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nLXRvcDogMC4zNzVyZW0gIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5tb2R1bGUtbG9hZGluZy1zcGlubmVyIC5kb3QtYW5pbWF0aW9uIC5kb3Qge1xuICBtYXJnaW46IDZweDtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiAjRkRGQ0ZDO1xuICBhbmltYXRpb24tbmFtZTogcHVsc2U7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBhbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7XG59XG5cbi5tb2R1bGUtbG9hZGluZy1zcGlubmVyIC5kb3QtYW5pbWF0aW9uIC5kb3Q6bnRoLWNoaWxkKDEpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjZzO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm1vZHVsZS1sb2FkaW5nLXNwaW5uZXIgLmRvdC1hbmltYXRpb24gLmRvdDpudGgtY2hpbGQoMikge1xuICBhbmltYXRpb24tZGVsYXk6IDAuNXM7XG59XG5cbi5tb2R1bGUtbG9hZGluZy1zcGlubmVyIC5kb3QtYW5pbWF0aW9uIC5kb3Q6bnRoLWNoaWxkKDMpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjRzO1xufVxuXG4ubW9kdWxlLWxvYWRpbmctc3Bpbm5lciAuZG90LWFuaW1hdGlvbiAuZG90Om50aC1jaGlsZCg0KSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMC4zcztcbn1cblxuLm1vZHVsZS1sb2FkaW5nLXNwaW5uZXIgLmRvdC1hbmltYXRpb24gLmRvdDpudGgtY2hpbGQoNSkge1xuICBhbmltYXRpb24tZGVsYXk6IDAuMnM7XG59XG5cbi5tb2R1bGUtbG9hZGluZy1zcGlubmVyIC5kb3QtYW5pbWF0aW9uIC5kb3Q6bnRoLWNoaWxkKDYpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjFzO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICBmcm9tLFxuICAwJSB7XG4gICAgb3BhY2l0eTogMC4xO1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG4gIDEwMCUsXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi8qPT09PT0gIEVuZCBvZiBNb2R1bGUgTG9hZGluZyBTcGlubmVyIFN0eWxpbmcgID09PT09PSovXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgTW9kdWxlIG5hdmlnYXRpb24gYmFubmVyICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLm1vZHVsZS1uYXZpZ2F0aW9uLWJhbm5lciB1bCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLm1vZHVsZS1uYXZpZ2F0aW9uLWJhbm5lciB1bCBsaSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZy1ib3R0b206IDAuMzc1cmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMC43NXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubW9kdWxlLW5hdmlnYXRpb24tYmFubmVyIHVsIGxpIGEge1xuICBmb250LWZhbWlseTogXCJCYXJsb3cgQ29uZGVuc2VkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC1zaGFkb3c6IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2R1bGUtbmF2aWdhdGlvbi1iYW5uZXIgdWwgbGkgYSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cblxuLm1vZHVsZS1uYXZpZ2F0aW9uLWJhbm5lciB1bCBsaSBhIC5pY29uLW1lbnUtc3ZnIHtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMzZweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICBsaW5lLWhlaWdodDogMWVtO1xuICBtYXJnaW4tdG9wOiA0cHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ljb25mb250L21lbnUuc3ZnXCIpICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG59XG5cbi5tb2R1bGUtbmF2aWdhdGlvbi1iYW5uZXIgI25hdmlnYXRpb24tbW9iaWxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5tb2R1bGUtbmF2aWdhdGlvbi1iYW5uZXIgI25hdmlnYXRpb24tZGVza3RvcCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tb2R1bGUtbmF2aWdhdGlvbi1iYW5uZXIgI25hdmlnYXRpb24tZGVza3RvcCBhIHtcbiAgY29sb3I6ICNmZGZjZmM7XG59XG5cbi5tb2R1bGUtbmF2aWdhdGlvbi1iYW5uZXIgI25hdmlnYXRpb24tZGVza3RvcCBhOmhvdmVyIHtcbiAgY29sb3I6ICNENUE4NDc7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYzLjkzNzVlbSkge1xuICAubW9kdWxlLW5hdmlnYXRpb24tYmFubmVyICNuYXZpZ2F0aW9uLW1vYmlsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAubW9kdWxlLW5hdmlnYXRpb24tYmFubmVyICNuYXZpZ2F0aW9uLWRlc2t0b3Age1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi8qPT09PT0gIEVuZCBvZiBNb2R1bGUgbmF2aWdhdGlvbiBiYW5uZXIgID09PT09PSovXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbj0gICAgICAgICAgICBNb2R1bGUgTmF2aWdhdGlvbiBmb290ZXIgc3R5bGluZyAgICAgICAgICAgID1cclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuI21vZHVsZS1uYXZpZ2F0aW9uLWZvb3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbiNtb2R1bGUtbmF2aWdhdGlvbi1mb290ZXIgLm5hdi1jb2x1bW4ge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuMjVyZW0pO1xuICBtYXJnaW4tbGVmdDogMC42MjVyZW07XG4gIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiA0LjVyZW0gIWltcG9ydGFudDtcbn1cblxuI21vZHVsZS1uYXZpZ2F0aW9uLWZvb3RlciAubmF2LWNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy1ib3R0b206IDByZW0gIWltcG9ydGFudDtcbn1cblxuI21vZHVsZS1uYXZpZ2F0aW9uLWZvb3RlciAubmF2LWNvbHVtbiAubmF2LXRpdGxlIHtcbiAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJCYXJsb3cgQ29uZGVuc2VkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC1zaGFkb3c6IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICNtb2R1bGUtbmF2aWdhdGlvbi1mb290ZXIgLm5hdi1jb2x1bW4gLm5hdi10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cblxuI21vZHVsZS1uYXZpZ2F0aW9uLWZvb3RlciAubmF2LWNvbHVtbiBsaSB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjM3NXJlbSAhaW1wb3J0YW50O1xufVxuXG4jbW9kdWxlLW5hdmlnYXRpb24tZm9vdGVyIC5uYXYtY29sdW1uIGxpIGEge1xuICBmb250LWZhbWlseTogXCJCYXJsb3cgQ29uZGVuc2VkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAjbW9kdWxlLW5hdmlnYXRpb24tZm9vdGVyIC5uYXYtY29sdW1uIGxpIGEge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgI21vZHVsZS1uYXZpZ2F0aW9uLWZvb3RlciAubmF2LWNvbHVtbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwLjYyNWVtKSB7XG4gICNtb2R1bGUtbmF2aWdhdGlvbi1mb290ZXIgLm5hdi1jb2x1bW4ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBjYWxjKDE2LjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi8qPT09PT0gIEVuZCBvZiBNb2R1bGUgTmF2aWdhdGlvbiBmb290ZXIgc3R5bGluZyAgPT09PT09Ki9cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbj0gICAgICAgICAgICBNb2R1bGUgTmF2aWdhdGlvbiBtYWluIHN0eWxpbmcgICAgICAgICAgICA9XHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4ubW9kdWxlLW5hdmlnYXRpb24tbWFpbiB7XG4gIHBhZGRpbmctdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1vZHVsZS1uYXZpZ2F0aW9uLW1haW4gdWwge1xuICBmbG9hdDogcmlnaHQ7XG4gIGRpc3BsYXk6IGlubGluZS10YWJsZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubW9kdWxlLW5hdmlnYXRpb24tbWFpbiB1bCBsaSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1vZHVsZS1uYXZpZ2F0aW9uLW1haW4gdWwgbGkgYSB7XG4gIGZvbnQtZmFtaWx5OiBcIkJhcmxvdyBDb25kZW5zZWRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubW9kdWxlLW5hdmlnYXRpb24tbWFpbiB1bCBsaSBhIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuXG4ubW9kdWxlLW5hdmlnYXRpb24tbWFpbiB1bCBsaSBhLmJ1dHRvbiB7XG4gIG1hcmdpbi1ib3R0b206IDAuNnJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXRvcDogMC42cmVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAwLjZyZW0gIWltcG9ydGFudDtcbn1cblxuLm1vZHVsZS1uYXZpZ2F0aW9uLW1haW4gI25hdmlnYXRpb24tbW9iaWxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5tb2R1bGUtbmF2aWdhdGlvbi1tYWluICNuYXZpZ2F0aW9uLWRlc2t0b3Age1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgLm1vZHVsZS1uYXZpZ2F0aW9uLW1haW4gI25hdmlnYXRpb24tbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5tb2R1bGUtbmF2aWdhdGlvbi1tYWluICNuYXZpZ2F0aW9uLWRlc2t0b3Age1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi8qPT09PT0gIEVuZCBvZiBNb2R1bGUgTmF2aWdhdGlvbiBtYWluIHN0eWxpbmcgID09PT09PSovXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuPSAgICAgICAgICAgIE1vZHVsZSBOYXZpZ2F0aW9uIE9mZi1DYW52YXMgICAgICAgICAgICA9XHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuI21vZHVsZS1uYXZpZ2F0aW9uLW9mZmNhbnZhcyBuYXYgdWwge1xuICBwYWRkaW5nOiAxNXB4O1xuICBwYWRkaW5nLXRvcDogNC41cmVtICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbiNtb2R1bGUtbmF2aWdhdGlvbi1vZmZjYW52YXMgbmF2IHVsIGxpIHtcbiAgcGFkZGluZy10b3A6IDAuNzVyZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDAuNzVyZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjUzLCAyNTIsIDI1MiwgMC4yNSk7XG59XG5cbiNtb2R1bGUtbmF2aWdhdGlvbi1vZmZjYW52YXMgbmF2IHVsIGxpOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjUzLCAyNTIsIDI1MiwgMC4yNSk7XG59XG5cbiNtb2R1bGUtbmF2aWdhdGlvbi1vZmZjYW52YXMgbmF2IHVsIGxpIGEge1xuICBjb2xvcjogI0ZERkNGQztcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcIkJhcmxvdyBDb25kZW5zZWRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBvdXRsaW5lOiBub25lO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAjbW9kdWxlLW5hdmlnYXRpb24tb2ZmY2FudmFzIG5hdiB1bCBsaSBhIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuXG4jbW9kdWxlLW5hdmlnYXRpb24tb2ZmY2FudmFzIG5hdiB1bCBsaSBhOmhvdmVyIHtcbiAgY29sb3I6ICNENUE4NDc7XG59XG5cbi8qPT09PT0gIEVuZCBvZiBNb2R1bGUgTmF2aWdhdGlvbiBPZmYtQ2FudmFzICA9PT09PT0qL1xuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbj0gICAgICAgICAgICBtb2R1bGUtc29jaWFsICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi5tb2R1bGUtc29jaWFsIHVsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubW9kdWxlLXNvY2lhbCB1bCBsaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAwLjNyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDAuM3JlbSAhaW1wb3J0YW50O1xufVxuXG4ubW9kdWxlLXNvY2lhbCB1bCBsaSBpIHtcbiAgZm9udC1mYW1pbHk6IFwiQmFybG93IENvbmRlbnNlZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtc2hhZG93OiAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubW9kdWxlLXNvY2lhbCB1bCBsaSBpIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuXG4vKj09PT09ICBFbmQgb2YgbW9kdWxlLXNvY2lhbCAgPT09PT09Ki9cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgTW9kdWxlIFRlYXNlciAgICAgICAgICAgID1cclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAtLS0tIGdyaWQgLS0tLSAqL1xuLyogLS0tLSBncmlkLWl0ZW0gLS0tLSAqL1xuLmdyaWQtc2l6ZXIsXG4uZ3JpZC1pdGVtIHtcbiAgd2lkdGg6IDI1JTtcbn1cblxuLnRlYXNlci1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwcHgpO1xuICB3aWR0aDogY2FsYygxMDAlIC0gMTBweCk7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDQyLCAzOSwgMzIsIDAuNSk7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNGREZDRkM7XG4gIGZvbnQtZmFtaWx5OiBcIkJhcmxvdyBDb25kZW5zZWRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC1zaGFkb3c6IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC50ZWFzZXItb3ZlcmxheSB7XG4gICAgZm9udC1zaXplOiA0LjVyZW07XG4gIH1cbn1cblxuLnRlYXNlci1vdmVybGF5OmhvdmVyIHtcbiAgY29sb3I6ICNENUE4NDc7XG59XG5cbi50ZWFzZXItaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1vZHVsZS10ZWFzZXIubWFzb25yeS1pdGVtIHtcbiAgaGVpZ2h0OiAxMjBweDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAyNSU7XG4gIHBhZGRpbmc6IDVweDtcbn1cblxuLm1vZHVsZS10ZWFzZXIubWFzb25yeS1pdGVtIC5pbWFnZSB7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbn1cblxuLm1vZHVsZS10ZWFzZXIubWFzb25yeS1pdGVtLi0td2lkdGgtMSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubW9kdWxlLXRlYXNlci5tYXNvbnJ5LWl0ZW0uLS13aWR0aC0xIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG59XG5cbi5tb2R1bGUtdGVhc2VyLm1hc29ucnktaXRlbS4tLXdpZHRoLTIge1xuICB3aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1vZHVsZS10ZWFzZXIubWFzb25yeS1pdGVtLi0td2lkdGgtMiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxufVxuXG4ubW9kdWxlLXRlYXNlci5tYXNvbnJ5LWl0ZW0uLS13aWR0aC0zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5tb2R1bGUtdGVhc2VyLm1hc29ucnktaXRlbS4tLWhlaWdodC0xIHtcbiAgaGVpZ2h0OiAyMDVweDtcbn1cblxuLm1vZHVsZS10ZWFzZXIubWFzb25yeS1pdGVtLi0taGVpZ2h0LTIge1xuICBoZWlnaHQ6IDMwNXB4O1xufVxuXG4ubW9kdWxlLXRlYXNlci5tYXNvbnJ5LWl0ZW0uLS1oZWlnaHQtMyB7XG4gIGhlaWdodDogNDEwcHg7XG59XG5cbi5tb2R1bGUtdGVhc2VyLm1hc29ucnktaXRlbS4tLWhlaWdodC00IHtcbiAgaGVpZ2h0OiA2MTBweDtcbn1cblxuLyo9PT09PSAgRW5kIG9mIE1vZHVsZSBUZWFzZXIgID09PT09PSovXG4ubW9kdWxlLXRlYXNlci1hdXNzdGF0dHVuZyB7XG4gIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tb2R1bGUtdGVhc2VyLWF1c3N0YXR0dW5nIHVsIHtcbiAgcGFkZGluZy10b3A6IDAuNzVyZW0gIWltcG9ydGFudDtcbn1cblxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbj0gICAgICAgICAgICBNb2R1bGUgVGV4dCBTdHlsaW5nICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi5tb2R1bGUtdGV4dCB7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1vZHVsZS10ZXh0OjpiZWZvcmUsIC5tb2R1bGUtdGV4dDo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyAnO1xuICBmbGV4LWJhc2lzOiAwO1xuICBvcmRlcjogMTtcbn1cblxuLm1vZHVsZS10ZXh0OjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4ubW9kdWxlLXRleHQgLnRleHQtaGVhZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNzVyZW0gIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1vZHVsZS10ZXh0IC50ZXh0LWhlYWRlciB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5tb2R1bGUtdGV4dCAudGV4dC1oZWFkZXIsIC5tb2R1bGUtdGV4dCAudGV4dC1oZWFkZXI6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBjbGVhcjogbm9uZTtcbn1cblxuLm1vZHVsZS10ZXh0IC50ZXh0LWhlYWRlcjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ubW9kdWxlLXRleHQgaW1nIHtcbiAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLm1vZHVsZS10ZXh0IC50ZXh0LWNvbHVtbiB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG59XG5cbi5tb2R1bGUtdGV4dC4tc2luZ2xlIC50ZXh0LWNvbHVtbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2R1bGUtdGV4dC4tc2luZ2xlIC50ZXh0LWNvbHVtbiB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5tb2R1bGUtdGV4dC4tc2luZ2xlIC50ZXh0LWNvbHVtbiwgLm1vZHVsZS10ZXh0Li1zaW5nbGUgLnRleHQtY29sdW1uOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG59XG5cbi5tb2R1bGUtdGV4dC4tc2luZ2xlIC50ZXh0LWNvbHVtbjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ubW9kdWxlLXRleHQuLXNwbGl0IC50ZXh0LWNvbHVtbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2R1bGUtdGV4dC4tc3BsaXQgLnRleHQtY29sdW1uIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuLm1vZHVsZS10ZXh0Li1zcGxpdCAudGV4dC1jb2x1bW4sIC5tb2R1bGUtdGV4dC4tc3BsaXQgLnRleHQtY29sdW1uOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG59XG5cbi5tb2R1bGUtdGV4dC4tc3BsaXQgLnRleHQtY29sdW1uOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2R1bGUtdGV4dC4tc2luZ2xlIC50ZXh0LWNvbnRlbnQtd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tb2R1bGUtdGV4dC4tc2luZ2xlIC50ZXh0LWhlYWRlciB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1vZHVsZS10ZXh0Li1zaW5nbGUgLnRleHQtaGVhZGVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1vZHVsZS10ZXh0Li1zaW5nbGUgLnRleHQtaGVhZGVyLCAubW9kdWxlLXRleHQuLXNpbmdsZSAudGV4dC1oZWFkZXI6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbiAgLm1vZHVsZS10ZXh0Li1zaW5nbGUgLnRleHQtaGVhZGVyOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxuICAubW9kdWxlLXRleHQuLXNpbmdsZSAudGV4dC1oZWFkZXIsIC5tb2R1bGUtdGV4dC4tc2luZ2xlIC50ZXh0LWhlYWRlcjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuICAubW9kdWxlLXRleHQuLXNpbmdsZSAudGV4dC1jb2x1bW4ge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2R1bGUtdGV4dC4tc2luZ2xlIC50ZXh0LWNvbHVtbiB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2R1bGUtdGV4dC4tc2luZ2xlIC50ZXh0LWNvbHVtbiwgLm1vZHVsZS10ZXh0Li1zaW5nbGUgLnRleHQtY29sdW1uOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBub25lO1xuICB9XG4gIC5tb2R1bGUtdGV4dC4tc2luZ2xlIC50ZXh0LWNvbHVtbjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgLm1vZHVsZS10ZXh0Li1zaW5nbGUgLnRleHQtY29sdW1uLCAubW9kdWxlLXRleHQuLXNpbmdsZSAudGV4dC1jb2x1bW46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbiAgLm1vZHVsZS10ZXh0Li1zcGxpdCAudGV4dC1jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1vZHVsZS10ZXh0Li1zcGxpdCAudGV4dC1jb2x1bW4ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubW9kdWxlLXRleHQuLXNwbGl0IC50ZXh0LWNvbHVtbiwgLm1vZHVsZS10ZXh0Li1zcGxpdCAudGV4dC1jb2x1bW46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbiAgLm1vZHVsZS10ZXh0Li1zcGxpdCAudGV4dC1jb2x1bW46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG59XG5cbi8qPT09PT0gIEVuZCBvZiBNb2R1bGUgVGV4dCBTdHlsaW5nICA9PT09PT0qL1xuLyoqXHJcbkxheW91dHMgYmVzY2hyZWliZW4gZWluZmFjaCBnZXNhZ3QgZGllIFBvc2l0aW9uZW4gdW5kIEdyb2Vzc2VuIHZvbiBNb2R1bGVuLlxyXG5IaWVyIHdpcmQgaGF1cHRzYWVjaGxpY2ggbWl0IGRlbSBGb3VuZGF0aW9uIEZyYW1ld29yayBnZWFyYmVpdGV0IHVuZCBrZWluZVxyXG5leHBsaXppdGVuIFN0eWxlLUFuZ2FiZW4genUgTW9kdWxlbiBnZW1hY2h0LlxyXG4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJCYXJsb3cgQ29uZGVuc2VkXCI7XG4gIHNyYzogbG9jYWwoXCLimLpcIiksIHVybChcIi9hc3NldHMvZm9udHMvQmFybG93Q29uZGVuc2VkLVRoaW4uZW90XCIpIGZvcm1hdChcImVvdFwiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9CYXJsb3dDb25kZW5zZWQtVGhpbi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi9hc3NldHMvZm9udHMvQmFybG93Q29uZGVuc2VkLVRoaW4uc3ZnXCIpIGZvcm1hdChcInN2Z1wiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9CYXJsb3dDb25kZW5zZWQtVGhpbi50dGZcIikgZm9ybWF0KFwidHRmXCIpO1xuICBmb250LXdlaWdodDogMTAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJCYXJsb3cgQ29uZGVuc2VkXCI7XG4gIHNyYzogbG9jYWwoXCLimLpcIiksIHVybChcIi9hc3NldHMvZm9udHMvQmFybG93Q29uZGVuc2VkLUV4dHJhTGlnaHQuZW90XCIpIGZvcm1hdChcImVvdFwiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9CYXJsb3dDb25kZW5zZWQtRXh0cmFMaWdodC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi9hc3NldHMvZm9udHMvQmFybG93Q29uZGVuc2VkLUV4dHJhTGlnaHQuc3ZnXCIpIGZvcm1hdChcInN2Z1wiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9CYXJsb3dDb25kZW5zZWQtRXh0cmFMaWdodC50dGZcIikgZm9ybWF0KFwidHRmXCIpO1xuICBmb250LXdlaWdodDogMjAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJCYXJsb3cgQ29uZGVuc2VkXCI7XG4gIHNyYzogbG9jYWwoXCLimLpcIiksIHVybChcIi9hc3NldHMvZm9udHMvQmFybG93Q29uZGVuc2VkLUxpZ2h0LmVvdFwiKSBmb3JtYXQoXCJlb3RcIiksIHVybChcIi9hc3NldHMvZm9udHMvQmFybG93Q29uZGVuc2VkLUxpZ2h0LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9CYXJsb3dDb25kZW5zZWQtTGlnaHQuc3ZnXCIpIGZvcm1hdChcInN2Z1wiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9CYXJsb3dDb25kZW5zZWQtTGlnaHQudHRmXCIpIGZvcm1hdChcInR0ZlwiKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiQmFybG93IENvbmRlbnNlZFwiO1xuICBzcmM6IGxvY2FsKFwi4pi6XCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL0Jhcmxvd0NvbmRlbnNlZC1SZWd1bGFyLmVvdFwiKSBmb3JtYXQoXCJlb3RcIiksIHVybChcIi9hc3NldHMvZm9udHMvQmFybG93Q29uZGVuc2VkLVJlZ3VsYXIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL0Jhcmxvd0NvbmRlbnNlZC1SZWd1bGFyLnN2Z1wiKSBmb3JtYXQoXCJzdmdcIiksIHVybChcIi9hc3NldHMvZm9udHMvQmFybG93Q29uZGVuc2VkLVJlZ3VsYXIudHRmXCIpIGZvcm1hdChcInR0ZlwiKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiQmFybG93IENvbmRlbnNlZFwiO1xuICBzcmM6IGxvY2FsKFwi4pi6XCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL0Jhcmxvd0NvbmRlbnNlZC1NZWRpdW0uZW90XCIpIGZvcm1hdChcImVvdFwiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9CYXJsb3dDb25kZW5zZWQtTWVkaXVtLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9CYXJsb3dDb25kZW5zZWQtTWVkaXVtLnN2Z1wiKSBmb3JtYXQoXCJzdmdcIiksIHVybChcIi9hc3NldHMvZm9udHMvQmFybG93Q29uZGVuc2VkLU1lZGl1bS50dGZcIikgZm9ybWF0KFwidHRmXCIpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJCYXJsb3cgQ29uZGVuc2VkXCI7XG4gIHNyYzogbG9jYWwoXCLimLpcIiksIHVybChcIi9hc3NldHMvZm9udHMvQmFybG93Q29uZGVuc2VkLVNlbWlCb2xkLmVvdFwiKSBmb3JtYXQoXCJlb3RcIiksIHVybChcIi9hc3NldHMvZm9udHMvQmFybG93Q29uZGVuc2VkLVNlbWlCb2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9CYXJsb3dDb25kZW5zZWQtU2VtaUJvbGQuc3ZnXCIpIGZvcm1hdChcInN2Z1wiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9CYXJsb3dDb25kZW5zZWQtU2VtaUJvbGQudHRmXCIpIGZvcm1hdChcInR0ZlwiKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiQmFybG93IENvbmRlbnNlZFwiO1xuICBzcmM6IGxvY2FsKFwi4pi6XCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL0Jhcmxvd0NvbmRlbnNlZC1Cb2xkLmVvdFwiKSBmb3JtYXQoXCJlb3RcIiksIHVybChcIi9hc3NldHMvZm9udHMvQmFybG93Q29uZGVuc2VkLUJvbGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL0Jhcmxvd0NvbmRlbnNlZC1Cb2xkLnN2Z1wiKSBmb3JtYXQoXCJzdmdcIiksIHVybChcIi9hc3NldHMvZm9udHMvQmFybG93Q29uZGVuc2VkLUJvbGQudHRmXCIpIGZvcm1hdChcInR0ZlwiKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiQmFybG93IENvbmRlbnNlZFwiO1xuICBzcmM6IGxvY2FsKFwi4pi6XCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL0Jhcmxvd0NvbmRlbnNlZC1FeHRyYUJvbGQuZW90XCIpIGZvcm1hdChcImVvdFwiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9CYXJsb3dDb25kZW5zZWQtRXh0cmFCb2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9CYXJsb3dDb25kZW5zZWQtRXh0cmFCb2xkLnN2Z1wiKSBmb3JtYXQoXCJzdmdcIiksIHVybChcIi9hc3NldHMvZm9udHMvQmFybG93Q29uZGVuc2VkLUV4dHJhQm9sZC50dGZcIikgZm9ybWF0KFwidHRmXCIpO1xuICBmb250LXdlaWdodDogODAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJCYXJsb3cgQ29uZGVuc2VkXCI7XG4gIHNyYzogbG9jYWwoXCLimLpcIiksIHVybChcIi9hc3NldHMvZm9udHMvQmFybG93Q29uZGVuc2VkLUJsYWNrLmVvdFwiKSBmb3JtYXQoXCJlb3RcIiksIHVybChcIi9hc3NldHMvZm9udHMvQmFybG93Q29uZGVuc2VkLUJsYWNrLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9CYXJsb3dDb25kZW5zZWQtQmxhY2suc3ZnXCIpIGZvcm1hdChcInN2Z1wiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9CYXJsb3dDb25kZW5zZWQtQmxhY2sudHRmXCIpIGZvcm1hdChcInR0ZlwiKTtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvIFNsYWJcIjtcbiAgc3JjOiBsb2NhbChcIuKYulwiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9Sb2JvdG9TbGFiLVRoaW4uZW90XCIpIGZvcm1hdChcImVvdFwiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9Sb2JvdG9TbGFiLVRoaW4ud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL1JvYm90b1NsYWItVGhpbi5zdmdcIikgZm9ybWF0KFwic3ZnXCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL1JvYm90b1NsYWItVGhpbi50dGZcIikgZm9ybWF0KFwidHRmXCIpO1xuICBmb250LXdlaWdodDogMTAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJSb2JvdG8gU2xhYlwiO1xuICBzcmM6IGxvY2FsKFwi4pi6XCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL1JvYm90b1NsYWItRXh0cmFMaWdodC5lb3RcIikgZm9ybWF0KFwiZW90XCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL1JvYm90b1NsYWItRXh0cmFMaWdodC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi9hc3NldHMvZm9udHMvUm9ib3RvU2xhYi1FeHRyYUxpZ2h0LnN2Z1wiKSBmb3JtYXQoXCJzdmdcIiksIHVybChcIi9hc3NldHMvZm9udHMvUm9ib3RvU2xhYi1FeHRyYUxpZ2h0LnR0ZlwiKSBmb3JtYXQoXCJ0dGZcIik7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90byBTbGFiXCI7XG4gIHNyYzogbG9jYWwoXCLimLpcIiksIHVybChcIi9hc3NldHMvZm9udHMvUm9ib3RvU2xhYi1MaWdodC5lb3RcIikgZm9ybWF0KFwiZW90XCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL1JvYm90b1NsYWItTGlnaHQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL1JvYm90b1NsYWItTGlnaHQuc3ZnXCIpIGZvcm1hdChcInN2Z1wiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9Sb2JvdG9TbGFiLUxpZ2h0LnR0ZlwiKSBmb3JtYXQoXCJ0dGZcIik7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90byBTbGFiXCI7XG4gIHNyYzogbG9jYWwoXCLimLpcIiksIHVybChcIi9hc3NldHMvZm9udHMvUm9ib3RvU2xhYi1SZWd1bGFyLmVvdFwiKSBmb3JtYXQoXCJlb3RcIiksIHVybChcIi9hc3NldHMvZm9udHMvUm9ib3RvU2xhYi1SZWd1bGFyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9Sb2JvdG9TbGFiLVJlZ3VsYXIuc3ZnXCIpIGZvcm1hdChcInN2Z1wiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9Sb2JvdG9TbGFiLVJlZ3VsYXIudHRmXCIpIGZvcm1hdChcInR0ZlwiKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvIFNsYWJcIjtcbiAgc3JjOiBsb2NhbChcIuKYulwiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9Sb2JvdG9TbGFiLU1lZGl1bS5lb3RcIikgZm9ybWF0KFwiZW90XCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL1JvYm90b1NsYWItTWVkaXVtLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9Sb2JvdG9TbGFiLU1lZGl1bS5zdmdcIikgZm9ybWF0KFwic3ZnXCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL1JvYm90b1NsYWItTWVkaXVtLnR0ZlwiKSBmb3JtYXQoXCJ0dGZcIik7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90byBTbGFiXCI7XG4gIHNyYzogbG9jYWwoXCLimLpcIiksIHVybChcIi9hc3NldHMvZm9udHMvUm9ib3RvU2xhYi1TZW1pQm9sZC5lb3RcIikgZm9ybWF0KFwiZW90XCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL1JvYm90b1NsYWItU2VtaUJvbGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL1JvYm90b1NsYWItU2VtaUJvbGQuc3ZnXCIpIGZvcm1hdChcInN2Z1wiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9Sb2JvdG9TbGFiLVNlbWlCb2xkLnR0ZlwiKSBmb3JtYXQoXCJ0dGZcIik7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90byBTbGFiXCI7XG4gIHNyYzogbG9jYWwoXCLimLpcIiksIHVybChcIi9hc3NldHMvZm9udHMvUm9ib3RvU2xhYi1Cb2xkLmVvdFwiKSBmb3JtYXQoXCJlb3RcIiksIHVybChcIi9hc3NldHMvZm9udHMvUm9ib3RvU2xhYi1Cb2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9Sb2JvdG9TbGFiLUJvbGQuc3ZnXCIpIGZvcm1hdChcInN2Z1wiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9Sb2JvdG9TbGFiLUJvbGQudHRmXCIpIGZvcm1hdChcInR0ZlwiKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvIFNsYWJcIjtcbiAgc3JjOiBsb2NhbChcIuKYulwiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9Sb2JvdG9TbGFiLUV4dHJhQm9sZC5lb3RcIikgZm9ybWF0KFwiZW90XCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL1JvYm90b1NsYWItRXh0cmFCb2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9Sb2JvdG9TbGFiLUV4dHJhQm9sZC5zdmdcIikgZm9ybWF0KFwic3ZnXCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL1JvYm90b1NsYWItRXh0cmFCb2xkLnR0ZlwiKSBmb3JtYXQoXCJ0dGZcIik7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90byBTbGFiXCI7XG4gIHNyYzogbG9jYWwoXCLimLpcIiksIHVybChcIi9hc3NldHMvZm9udHMvUm9ib3RvU2xhYi1CbGFjay5lb3RcIikgZm9ybWF0KFwiZW90XCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL1JvYm90b1NsYWItQmxhY2sud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL1JvYm90b1NsYWItQmxhY2suc3ZnXCIpIGZvcm1hdChcInN2Z1wiKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9Sb2JvdG9TbGFiLUJsYWNrLnR0ZlwiKSBmb3JtYXQoXCJ0dGZcIik7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuPSAgICAgICAgICAgIG1haW4gc3R5bGluZyAgICAgICAgICAgID1cclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbmh0bWwsIGJvZHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xufVxuXG4qIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogXCJSb2JvdG8gU2xhYlwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkRGQ0ZDO1xufVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5wLmVtYWlsYWRyZXNzLW1haWx0byB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbnVsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG51bCBsaSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLmRhdGVuc2NodXR6IHVsLCAuYWdiIHVsIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbn1cblxuLmFnYiBsaSB7XG4gIHBhZGRpbmctYm90dG9tOiAxMnB4O1xufVxuXG4ubGlzdC1kbC1pY29uIHtcbiAgcGFkZGluZy1sZWZ0OiA0NXB4O1xuICBwYWRkaW5nLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLXNpemU6IDMxcHg7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgNXB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG4ubGlzdC1kbC1pY29uIGR0IHtcbiAgZm9udC1mYW1pbHk6IFwiQmFybG93IENvbmRlbnNlZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtc2hhZG93OiAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubGlzdC1kbC1pY29uIGR0IHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuXG4ubGlzdC1pY29uLXN0YXIgbGkge1xuICBwYWRkaW5nLWJvdHRvbTogMC43NXJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90byBTbGFiXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5saXN0LWljb24tc3RhciBsaSB7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgfVxufVxuXG4ubGlzdC1pY29uLXN0YXIgbGk6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tcmlnaHQ6IDBweDtcbiAgdG9wOiAxcHg7XG4gIGxlZnQ6IDBweDtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDE5cHg7XG4gIHdpZHRoOiAxOXB4O1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIvYXNzZXRzL2ltZy9pY29ucy9pY29uX3N0ZXJuLnN2Z1wiKSAwIDAgbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG59XG5cbio6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuYSB7XG4gIGNvbG9yOiAjMkEyNzIwO1xufVxuXG5hOnZpc2l0ZWQge1xuICBjb2xvcjogIzJBMjcyMDtcbn1cblxuYTpmb2N1cyB7XG4gIGNvbG9yOiAjMkEyNzIwO1xufVxuXG5hOmhvdmVyIHtcbiAgY29sb3I6ICNENUE4NDc7XG59XG5cbmE6YWN0aXZlIHtcbiAgY29sb3I6ICMyQTI3MjA7XG59XG5cbmEuaW52ZXJ0IHtcbiAgY29sb3I6ICNGREZDRkM7XG59XG5cbmEuaW52ZXJ0OnZpc2l0ZWQge1xuICBjb2xvcjogI0ZERkNGQztcbn1cblxuYS5pbnZlcnQ6Zm9jdXMge1xuICBjb2xvcjogI0ZERkNGQztcbn1cblxuYS5pbnZlcnQ6aG92ZXIge1xuICBjb2xvcjogI0Q1QTg0Nztcbn1cblxuYS5pbnZlcnQ6YWN0aXZlIHtcbiAgY29sb3I6ICNGREZDRkM7XG59XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIC5pY29uIHtcbiAgdGV4dC1zaGFkb3c6IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi50eXBlc2V0LWRpc3BsYXktNCB7XG4gIGZvbnQtZmFtaWx5OiBcIkJhcmxvdyBDb25kZW5zZWRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC1zaGFkb3c6IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC50eXBlc2V0LWRpc3BsYXktNCB7XG4gICAgZm9udC1zaXplOiA0LjVyZW07XG4gIH1cbn1cblxuLnR5cGVzZXQtZGlzcGxheS0zIHtcbiAgZm9udC1mYW1pbHk6IFwiQmFybG93IENvbmRlbnNlZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjc1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXNoYWRvdzogMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnR5cGVzZXQtZGlzcGxheS0zIHtcbiAgICBmb250LXNpemU6IDIuMjVyZW07XG4gIH1cbn1cblxuLnR5cGVzZXQtZGlzcGxheS0yIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvIFNsYWJcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtc2hhZG93OiAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAudHlwZXNldC1kaXNwbGF5LTIge1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIH1cbn1cblxuLnR5cGVzZXQtZGlzcGxheS0xIHtcbiAgdGV4dC1zaGFkb3c6IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi50eXBlc2V0LWhlYWRsaW5lIHtcbiAgZm9udC1mYW1pbHk6IFwiQmFybG93IENvbmRlbnNlZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAzcmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXNoYWRvdzogMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnR5cGVzZXQtaGVhZGxpbmUge1xuICAgIGZvbnQtc2l6ZTogNi44NzVyZW07XG4gIH1cbn1cblxuLnR5cGVzZXQtaGVhZGxpbmUucmVudC1jYXJhdmFuIHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBmb250LXdlaWdodDogNzUwO1xuICBsZXR0ZXItc3BhY2luZzogMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4udHlwZXNldC10aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkJhcmxvdyBDb25kZW5zZWRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC1zaGFkb3c6IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC50eXBlc2V0LXRpdGxlIHtcbiAgICBmb250LXNpemU6IDQuNXJlbTtcbiAgfVxufVxuXG4udHlwZXNldC1zdWJoZWFkaW5nLTIge1xuICBmb250LWZhbWlseTogXCJCYXJsb3cgQ29uZGVuc2VkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC1zaGFkb3c6IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC50eXBlc2V0LXN1YmhlYWRpbmctMiB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cblxuLnR5cGVzZXQtc3ViaGVhZGluZy0yLWxhcmdlIHtcbiAgZm9udC1mYW1pbHk6IFwiQmFybG93IENvbmRlbnNlZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjc1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXNoYWRvdzogMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnR5cGVzZXQtc3ViaGVhZGluZy0yLWxhcmdlIHtcbiAgICBmb250LXNpemU6IDIuMjVyZW07XG4gIH1cbn1cblxuLnR5cGVzZXQtc3ViaGVhZGluZy0xIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvIFNsYWJcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC50eXBlc2V0LXN1YmhlYWRpbmctMSB7XG4gICAgZm9udC1zaXplOiAxLjMxMjVyZW07XG4gIH1cbn1cblxuLnR5cGVzZXQtYm9keS0xIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvIFNsYWJcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnR5cGVzZXQtYm9keS0xIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cbn1cblxuLnR5cGVzZXQtYm9keS0yIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvIFNsYWJcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnR5cGVzZXQtYm9keS0yIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cbn1cblxuLnR5cGVzZXQtY2FwdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90byBTbGFiXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC50eXBlc2V0LWNhcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgfVxufVxuXG4udHlwZXNldC1idXR0b24ge1xuICBmb250LWZhbWlseTogXCJCYXJsb3cgQ29uZGVuc2VkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnR5cGVzZXQtYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuXG4udHlwZXNldC1mb290bm90ZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90byBTbGFiXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAudHlwZXNldC1mb290bm90ZSB7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgfVxufVxuXG4udHlwZXNldC1saW5rLXNlY29uZGFyeSB7XG4gIGZvbnQtZmFtaWx5OiBcIkJhcmxvdyBDb25kZW5zZWRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC50eXBlc2V0LWxpbmstc2Vjb25kYXJ5IHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICB9XG59XG5cbi5pbnZlcnQge1xuICBjb2xvcjogI0ZERkNGQztcbn1cblxuLmljb24tc3Rlcm4ge1xuICBjb2xvcjogI0Q1QTg0NztcbiAgZm9udC1zaXplOiAzMnB4O1xufVxuXG4vKiBIaW50ZXJncnVuZGZhcmJlbiAqL1xuLmJhY2tncm91bmQtYmxhY2sge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBhMGEwYTtcbn1cblxuLyogU3RyaWNoICovXG4ucGFpbnRzdHJva2UtbWVkaXVtIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiL2Fzc2V0cy9pbWcvcGluc2Vsc3RyaWNoLnBuZ1wiKSAwIDEwMCUgbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDM1JTtcbiAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4vKiBGdWxsIFdpZHRoIFZpZGVvICovXG4ubGF5b3V0LXNlY3Rpb24tYnVjaHVuZ3NzeXN0ZW0ge1xuICBwYWRkaW5nLXRvcDogM3JlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xufVxuXG4ubGF5b3V0LXNlY3Rpb24tYnVjaHVuZ3NzeXN0ZW0gaDEge1xuICBmb250LWZhbWlseTogXCJCYXJsb3cgQ29uZGVuc2VkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDJyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtc2hhZG93OiAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBwYWRkaW5nLWJvdHRvbTogNnJlbSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubGF5b3V0LXNlY3Rpb24tYnVjaHVuZ3NzeXN0ZW0gaDEge1xuICAgIGZvbnQtc2l6ZTogNC41cmVtO1xuICB9XG59XG5cbi5sYXlvdXQtc2VjdGlvbi1idWNodW5nc3N5c3RlbSBoMiB7XG4gIGZvbnQtZmFtaWx5OiBcIkJhcmxvdyBDb25kZW5zZWRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC1zaGFkb3c6IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90byBTbGFiXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubGF5b3V0LXNlY3Rpb24tYnVjaHVuZ3NzeXN0ZW0gaDIge1xuICAgIGZvbnQtc2l6ZTogNC41cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5sYXlvdXQtc2VjdGlvbi1idWNodW5nc3N5c3RlbSBoMiB7XG4gICAgZm9udC1zaXplOiAxLjMxMjVyZW07XG4gIH1cbn1cblxuLmxheW91dC1zZWN0aW9uLWJ1Y2h1bmdzc3lzdGVtIC5jYW1wZXItZGVzY3JpcHRpb24gZGl2IHtcbiAgbWFyZ2luLXRvcDogMThweDtcbn1cblxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbj0gICAgICAgICAgICBMYXlvdXQgQ29udGVudCBzdHlsaW5nICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi5sYXlvdXQtc2VjdGlvbi1jb250ZW50IC5hcnRpY2xlLW91dGVyLXdyYXBwZXIge1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLXRvcDogM3JlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xufVxuXG4ubGF5b3V0LXNlY3Rpb24tY29udGVudCAuYXJ0aWNsZS1vdXRlci13cmFwcGVyOjpiZWZvcmUsIC5sYXlvdXQtc2VjdGlvbi1jb250ZW50IC5hcnRpY2xlLW91dGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6ICcgJztcbiAgZmxleC1iYXNpczogMDtcbiAgb3JkZXI6IDE7XG59XG5cbi5sYXlvdXQtc2VjdGlvbi1jb250ZW50IC5hcnRpY2xlLW91dGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5sYXlvdXQtc2VjdGlvbi1jb250ZW50IC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLnN0eWxlZ3VpZGUtd3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5sYXlvdXQtc2VjdGlvbi1jb250ZW50IC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLnN0eWxlZ3VpZGUtd3JhcHBlciB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5sYXlvdXQtc2VjdGlvbi1jb250ZW50IC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLnN0eWxlZ3VpZGUtd3JhcHBlciwgLmxheW91dC1zZWN0aW9uLWNvbnRlbnQgLmFydGljbGUtb3V0ZXItd3JhcHBlciAuc3R5bGVndWlkZS13cmFwcGVyOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG59XG5cbi5sYXlvdXQtc2VjdGlvbi1jb250ZW50IC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLnN0eWxlZ3VpZGUtd3JhcHBlcjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ubGF5b3V0LXNlY3Rpb24tY29udGVudCAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5tb2R1bGUtaGVhZGVyLWFydGljbGUge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubGF5b3V0LXNlY3Rpb24tY29udGVudCAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5tb2R1bGUtaGVhZGVyLWFydGljbGUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4ubGF5b3V0LXNlY3Rpb24tY29udGVudCAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5tb2R1bGUtaGVhZGVyLWFydGljbGUsIC5sYXlvdXQtc2VjdGlvbi1jb250ZW50IC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLm1vZHVsZS1oZWFkZXItYXJ0aWNsZTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGNsZWFyOiBub25lO1xufVxuXG4ubGF5b3V0LXNlY3Rpb24tY29udGVudCAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5tb2R1bGUtaGVhZGVyLWFydGljbGU6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLmxheW91dC1zZWN0aW9uLWNvbnRlbnQgLmFydGljbGUtb3V0ZXItd3JhcHBlciAubW9kdWxlLXRleHQge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmxheW91dC1zZWN0aW9uLWNvbnRlbnQgLmFydGljbGUtb3V0ZXItd3JhcHBlciAubW9kdWxlLXRleHQsIC5sYXlvdXQtc2VjdGlvbi1jb250ZW50IC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLm1vZHVsZS10ZXh0Omxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG59XG5cbi5sYXlvdXQtc2VjdGlvbi1jb250ZW50IC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLm1vZHVsZS10ZXh0Omxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5sYXlvdXQtc2VjdGlvbi1jb250ZW50IC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLm1vZHVsZS1jdGEge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmxheW91dC1zZWN0aW9uLWNvbnRlbnQgLmFydGljbGUtb3V0ZXItd3JhcHBlciAubW9kdWxlLWN0YSwgLmxheW91dC1zZWN0aW9uLWNvbnRlbnQgLmFydGljbGUtb3V0ZXItd3JhcHBlciAubW9kdWxlLWN0YTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGNsZWFyOiBub25lO1xufVxuXG4ubGF5b3V0LXNlY3Rpb24tY29udGVudCAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5tb2R1bGUtY3RhOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5sYXlvdXQtc2VjdGlvbi1jb250ZW50IC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLm1vZHVsZS1jYXJvdXNlbC1wcm9maWxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5sYXlvdXQtc2VjdGlvbi1jb250ZW50IC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLm1vZHVsZS1jYXJvdXNlbC1wcm9maWxlLCAubGF5b3V0LXNlY3Rpb24tY29udGVudCAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5tb2R1bGUtY2Fyb3VzZWwtcHJvZmlsZTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGNsZWFyOiBub25lO1xufVxuXG4ubGF5b3V0LXNlY3Rpb24tY29udGVudCAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5tb2R1bGUtY2Fyb3VzZWwtcHJvZmlsZTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ubGF5b3V0LXNlY3Rpb24tY29udGVudCAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5tb2R1bGUtZ2FsbGVyeS1tYXNvbnJ5IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5sYXlvdXQtc2VjdGlvbi1jb250ZW50IC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLm1vZHVsZS1nYWxsZXJ5LW1hc29ucnksIC5sYXlvdXQtc2VjdGlvbi1jb250ZW50IC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLm1vZHVsZS1nYWxsZXJ5LW1hc29ucnk6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBjbGVhcjogbm9uZTtcbn1cblxuLmxheW91dC1zZWN0aW9uLWNvbnRlbnQgLmFydGljbGUtb3V0ZXItd3JhcHBlciAubW9kdWxlLWdhbGxlcnktbWFzb25yeTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubGF5b3V0LXNlY3Rpb24tY29udGVudCAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5tb2R1bGUtdGV4dCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmxheW91dC1zZWN0aW9uLWNvbnRlbnQgLmFydGljbGUtb3V0ZXItd3JhcHBlciAubW9kdWxlLXRleHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubGF5b3V0LXNlY3Rpb24tY29udGVudCAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5tb2R1bGUtdGV4dCwgLmxheW91dC1zZWN0aW9uLWNvbnRlbnQgLmFydGljbGUtb3V0ZXItd3JhcHBlciAubW9kdWxlLXRleHQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbiAgLmxheW91dC1zZWN0aW9uLWNvbnRlbnQgLmFydGljbGUtb3V0ZXItd3JhcHBlciAubW9kdWxlLXRleHQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG4gIC5sYXlvdXQtc2VjdGlvbi1jb250ZW50IC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLm1vZHVsZS10ZXh0LCAubGF5b3V0LXNlY3Rpb24tY29udGVudCAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5tb2R1bGUtdGV4dDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vKj09PT09ICBFbmQgb2YgTGF5b3V0IENvbnRlbnQgc3R5bGluZyAgPT09PT09Ki9cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbj0gICAgICAgIExheW91dCBTZWN0aW9uIENhbGwgdG8gQWN0aW9uICAgICAgICA9XHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4ubGF5b3V0LXNlY3Rpb24tY3RhIHtcbiAgcGFkZGluZy10b3A6IDZyZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDEwLjVyZW0gIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdXJsKFwiL2Fzc2V0cy9pbWcvYmdfcmVpc2VuLmpwZ1wiKSA1MCUgNTAlIG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjExYzE3O1xufVxuXG4ubGF5b3V0LXNlY3Rpb24tY3RhIC53cmFwcGVyLWNvbnRlbnQge1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ubGF5b3V0LXNlY3Rpb24tY3RhIC53cmFwcGVyLWNvbnRlbnQ6OmJlZm9yZSwgLmxheW91dC1zZWN0aW9uLWN0YSAud3JhcHBlci1jb250ZW50OjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnICc7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG9yZGVyOiAxO1xufVxuXG4ubGF5b3V0LXNlY3Rpb24tY3RhIC53cmFwcGVyLWNvbnRlbnQ6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5sYXlvdXQtc2VjdGlvbi1jdGEgLndyYXBwZXItY29udGVudCAud3JhcHBlci1oZWFkbGluZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5sYXlvdXQtc2VjdGlvbi1jdGEgLndyYXBwZXItY29udGVudCAud3JhcHBlci1oZWFkbGluZSB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5sYXlvdXQtc2VjdGlvbi1jdGEgLndyYXBwZXItY29udGVudCAud3JhcHBlci1oZWFkbGluZSwgLmxheW91dC1zZWN0aW9uLWN0YSAud3JhcHBlci1jb250ZW50IC53cmFwcGVyLWhlYWRsaW5lOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG59XG5cbi5sYXlvdXQtc2VjdGlvbi1jdGEgLndyYXBwZXItY29udGVudCAud3JhcHBlci1oZWFkbGluZTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ubGF5b3V0LXNlY3Rpb24tY3RhIC53cmFwcGVyLWNvbnRlbnQgLndyYXBwZXItaGVhZGxpbmUsIC5sYXlvdXQtc2VjdGlvbi1jdGEgLndyYXBwZXItY29udGVudCAud3JhcHBlci1oZWFkbGluZTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGNsZWFyOiBib3RoO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubGF5b3V0LXNlY3Rpb24tY3RhIHtcbiAgICBwYWRkaW5nLXRvcDogMTAuNXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAxNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5sYXlvdXQtc2VjdGlvbi1jdGEgLndyYXBwZXItY29udGVudCAud3JhcHBlci1oZWFkbGluZSB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmxheW91dC1zZWN0aW9uLWN0YSAud3JhcHBlci1jb250ZW50IC53cmFwcGVyLWhlYWRsaW5lIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmxheW91dC1zZWN0aW9uLWN0YSAud3JhcHBlci1jb250ZW50IC53cmFwcGVyLWhlYWRsaW5lLCAubGF5b3V0LXNlY3Rpb24tY3RhIC53cmFwcGVyLWNvbnRlbnQgLndyYXBwZXItaGVhZGxpbmU6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbiAgLmxheW91dC1zZWN0aW9uLWN0YSAud3JhcHBlci1jb250ZW50IC53cmFwcGVyLWhlYWRsaW5lOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxuICAubGF5b3V0LXNlY3Rpb24tY3RhIC53cmFwcGVyLWNvbnRlbnQgLndyYXBwZXItaGVhZGxpbmUsIC5sYXlvdXQtc2VjdGlvbi1jdGEgLndyYXBwZXItY29udGVudCAud3JhcHBlci1oZWFkbGluZTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAuNjI1ZW0pIHtcbiAgLmxheW91dC1zZWN0aW9uLWN0YSB7XG4gICAgcGFkZGluZy10b3A6IDEwLjVyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzByZW0gIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKj09PT09ICBFbmQgb2YgTGF5b3V0IFNlY3Rpb24gQ2FsbCB0byBBY3Rpb24gID09PT09PSovXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgTGF5b3V0IFNlY3Rpb24gRm9vdGVyICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuI2xheW91dC1zZWN0aW9uLWZvb3RlciB7XG4gIGJhY2tncm91bmQ6ICMwYTBhMGE7XG4gIGNvbG9yOiAjRkRGQ0ZDO1xuICBwYWRkaW5nLXRvcDogNnJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogNnJlbSAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4jbGF5b3V0LXNlY3Rpb24tZm9vdGVyOjpiZWZvcmUsICNsYXlvdXQtc2VjdGlvbi1mb290ZXI6OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6ICcgJztcbiAgZmxleC1iYXNpczogMDtcbiAgb3JkZXI6IDE7XG59XG5cbiNsYXlvdXQtc2VjdGlvbi1mb290ZXI6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbiNsYXlvdXQtc2VjdGlvbi1mb290ZXIgLndyYXBwZXItbG9nbyB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctYm90dG9tOiA2cmVtICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICNsYXlvdXQtc2VjdGlvbi1mb290ZXIgLndyYXBwZXItbG9nbyB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbiNsYXlvdXQtc2VjdGlvbi1mb290ZXIgLndyYXBwZXItbG9nbywgI2xheW91dC1zZWN0aW9uLWZvb3RlciAud3JhcHBlci1sb2dvOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG59XG5cbiNsYXlvdXQtc2VjdGlvbi1mb290ZXIgLndyYXBwZXItbG9nbzpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4jbGF5b3V0LXNlY3Rpb24tZm9vdGVyIC53cmFwcGVyLWxvZ28sICNsYXlvdXQtc2VjdGlvbi1mb290ZXIgLndyYXBwZXItbG9nbzpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4jbGF5b3V0LXNlY3Rpb24tZm9vdGVyICN3cmFwcGVyLW5hdmlnYXRpb24gI21vZHVsZS1uYXZpZ2F0aW9uLWZvb3RlciB7XG4gIHdpZHRoOiA2Ni42NjY2NyU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1ib3R0b206IDZyZW0gIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgI2xheW91dC1zZWN0aW9uLWZvb3RlciAjd3JhcHBlci1uYXZpZ2F0aW9uICNtb2R1bGUtbmF2aWdhdGlvbi1mb290ZXIge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4jbGF5b3V0LXNlY3Rpb24tZm9vdGVyICN3cmFwcGVyLW5hdmlnYXRpb24gI21vZHVsZS1uYXZpZ2F0aW9uLWZvb3RlciwgI2xheW91dC1zZWN0aW9uLWZvb3RlciAjd3JhcHBlci1uYXZpZ2F0aW9uICNtb2R1bGUtbmF2aWdhdGlvbi1mb290ZXI6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBjbGVhcjogbm9uZTtcbn1cblxuI2xheW91dC1zZWN0aW9uLWZvb3RlciAjd3JhcHBlci1uYXZpZ2F0aW9uICNtb2R1bGUtbmF2aWdhdGlvbi1mb290ZXI6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuI2xheW91dC1zZWN0aW9uLWZvb3RlciAjd3JhcHBlci1uYXZpZ2F0aW9uICNtb2R1bGUtbmF2aWdhdGlvbi1mb290ZXIsICNsYXlvdXQtc2VjdGlvbi1mb290ZXIgI3dyYXBwZXItbmF2aWdhdGlvbiAjbW9kdWxlLW5hdmlnYXRpb24tZm9vdGVyOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogbm9uZTtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbiNsYXlvdXQtc2VjdGlvbi1mb290ZXIgLm1vZHVsZS1zb2NpYWwge1xuICBwYWRkaW5nLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAjbGF5b3V0LXNlY3Rpb24tZm9vdGVyIC5tb2R1bGUtc29jaWFsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuI2xheW91dC1zZWN0aW9uLWZvb3RlciAubW9kdWxlLXNvY2lhbCwgI2xheW91dC1zZWN0aW9uLWZvb3RlciAubW9kdWxlLXNvY2lhbDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGNsZWFyOiBub25lO1xufVxuXG4jbGF5b3V0LXNlY3Rpb24tZm9vdGVyIC5tb2R1bGUtc29jaWFsOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbiNsYXlvdXQtc2VjdGlvbi1mb290ZXIgI3dyYXBwZXItY29udGFjdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICNsYXlvdXQtc2VjdGlvbi1mb290ZXIgI3dyYXBwZXItY29udGFjdCB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbiNsYXlvdXQtc2VjdGlvbi1mb290ZXIgI3dyYXBwZXItY29udGFjdCwgI2xheW91dC1zZWN0aW9uLWZvb3RlciAjd3JhcHBlci1jb250YWN0Omxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG59XG5cbiNsYXlvdXQtc2VjdGlvbi1mb290ZXIgI3dyYXBwZXItY29udGFjdDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4jbGF5b3V0LXNlY3Rpb24tZm9vdGVyICN3cmFwcGVyLWxlZ2FsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAjbGF5b3V0LXNlY3Rpb24tZm9vdGVyICN3cmFwcGVyLWxlZ2FsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuI2xheW91dC1zZWN0aW9uLWZvb3RlciAjd3JhcHBlci1sZWdhbCwgI2xheW91dC1zZWN0aW9uLWZvb3RlciAjd3JhcHBlci1sZWdhbDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGNsZWFyOiBub25lO1xufVxuXG4jbGF5b3V0LXNlY3Rpb24tZm9vdGVyICN3cmFwcGVyLWxlZ2FsOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICNsYXlvdXQtc2VjdGlvbi1mb290ZXIgI3dyYXBwZXItbmF2aWdhdGlvbiAjbW9kdWxlLW5hdmlnYXRpb24tZm9vdGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgI2xheW91dC1zZWN0aW9uLWZvb3RlciAjd3JhcHBlci1uYXZpZ2F0aW9uICNtb2R1bGUtbmF2aWdhdGlvbi1mb290ZXIge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAjbGF5b3V0LXNlY3Rpb24tZm9vdGVyICN3cmFwcGVyLW5hdmlnYXRpb24gI21vZHVsZS1uYXZpZ2F0aW9uLWZvb3RlciwgI2xheW91dC1zZWN0aW9uLWZvb3RlciAjd3JhcHBlci1uYXZpZ2F0aW9uICNtb2R1bGUtbmF2aWdhdGlvbi1mb290ZXI6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbiAgI2xheW91dC1zZWN0aW9uLWZvb3RlciAjd3JhcHBlci1uYXZpZ2F0aW9uICNtb2R1bGUtbmF2aWdhdGlvbi1mb290ZXI6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG4gICNsYXlvdXQtc2VjdGlvbi1mb290ZXIgI3dyYXBwZXItbmF2aWdhdGlvbiAjbW9kdWxlLW5hdmlnYXRpb24tZm9vdGVyLCAjbGF5b3V0LXNlY3Rpb24tZm9vdGVyICN3cmFwcGVyLW5hdmlnYXRpb24gI21vZHVsZS1uYXZpZ2F0aW9uLWZvb3RlcjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vKj09PT09ICBFbmQgb2YgTGF5b3V0IFNlY3Rpb24gRm9vdGVyICA9PT09PT0qL1xuLndyYXBwZXItaGVybyB7XG4gIG1heC13aWR0aDogMTgwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiAtMTcwcHg7XG59XG5cbi53cmFwcGVyLWhlcm86OmJlZm9yZSwgLndyYXBwZXItaGVybzo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyAnO1xuICBmbGV4LWJhc2lzOiAwO1xuICBvcmRlcjogMTtcbn1cblxuLndyYXBwZXItaGVybzo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLndyYXBwZXItaGVybyAuaGVyby1zbGlkZXItd3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTE3MHB4O1xuICB6LWluZGV4OiAxO1xufVxuXG4ud3JhcHBlci1oZXJvIC52aWRlby13cmFwcGVyIHZpZGVvIHtcbiAgbWF4LWhlaWdodDogOTB2aDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi53cmFwcGVyLWhlcm8gLnZpZGVvLXdyYXBwZXIgLndyYXBwZXItY2xhaW0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAuNjI1ZW0pIHtcbiAgLndyYXBwZXItaGVybyAudmlkZW8td3JhcHBlciAud3JhcHBlci1jbGFpbSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLndyYXBwZXItaGVybyAuY2Fyb3VzZWwtaGVhZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi53cmFwcGVyLWhlcm8gLmNhcm91c2VsLWhlYWRlciAuc2xpZGUtaW1hZ2Utd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgaGVpZ2h0OiAzNXZoO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi53cmFwcGVyLWhlcm8gLmNhcm91c2VsLWhlYWRlciAuc2xpZGUtaW1hZ2Utd3JhcHBlciAuc2xpY2stYXJyb3cge1xuICB6LWluZGV4OiA5MDAwO1xufVxuXG4ud3JhcHBlci1oZXJvIC5jYXJvdXNlbC1oZWFkZXIgLnNsaWRlLWltYWdlLXdyYXBwZXIgaW1nIHtcbiAgaGVpZ2h0OiAzNXZoO1xuICB3aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLndyYXBwZXItaGVybyAuY2Fyb3VzZWwtaGVhZGVyIC5zbGlkZS1pbWFnZS13cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDQ1dmg7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwLjYyNWVtKSB7XG4gIC53cmFwcGVyLWhlcm8gLmNhcm91c2VsLWhlYWRlciAuc2xpZGUtaW1hZ2Utd3JhcHBlciB7XG4gICAgaGVpZ2h0OiA2NXZoO1xuICB9XG59XG5cbi53cmFwcGVyLWhlcm8gI21vZHVsZS1oZWFkZXItc2l0ZSB7XG4gIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTAwO1xufVxuXG4ud3JhcHBlci1oZXJvIC53cmFwcGVyLWNsYWltIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDM1JTtcbiAgbGVmdDogMDtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1ib3R0b206IDEwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLndyYXBwZXItaGVybyAud3JhcHBlci1jbGFpbTo6YmVmb3JlLCAud3JhcHBlci1oZXJvIC53cmFwcGVyLWNsYWltOjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnICc7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG9yZGVyOiAxO1xufVxuXG4ud3JhcHBlci1oZXJvIC53cmFwcGVyLWNsYWltOjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAud3JhcHBlci1oZXJvIC53cmFwcGVyLWNsYWltIHtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiAxMCU7XG4gIH1cbiAgLndyYXBwZXItaGVybyAud3JhcHBlci1jbGFpbS5jbGFpbS1zZWNvbmRhcnkge1xuICAgIHRvcDogNDAlO1xuICB9XG4gIC53cmFwcGVyLWhlcm8gLndyYXBwZXItY2xhaW0uY2xhaW0tc2Vjb25kYXJ5IGgyIHtcbiAgICBmb250LXNpemU6IDYuMjVyZW07XG4gIH1cbn1cblxuLndyYXBwZXItaGVybyAud3JhcHBlci1jbGFpbSAuY2xhaW0ge1xuICB3aWR0aDogODMuMzMzMzMlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHVybChcIi9hc3NldHMvaW1nL3BpbnNlbHN0cmljaC5wbmdcIikgMCAxMDAlIG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiA1MCU7XG4gIHotaW5kZXg6IDEwMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAud3JhcHBlci1oZXJvIC53cmFwcGVyLWNsYWltIC5jbGFpbSB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi53cmFwcGVyLWhlcm8gLndyYXBwZXItY2xhaW0gLmNsYWltLCAud3JhcHBlci1oZXJvIC53cmFwcGVyLWNsYWltIC5jbGFpbTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGNsZWFyOiBub25lO1xufVxuXG4ud3JhcHBlci1oZXJvIC53cmFwcGVyLWNsYWltIC5jbGFpbTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ud3JhcHBlci1oZXJvIC53cmFwcGVyLWNsYWltIC5jbGFpbSwgLndyYXBwZXItaGVybyAud3JhcHBlci1jbGFpbSAuY2xhaW06bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiBub25lO1xuICBjbGVhcjogYm90aDtcbn1cblxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbj0gICAgICAgICAgICBMYXlvdXQgU3RlY2ticmllZiBzdHlsaW5nICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmIC5hcnRpY2xlLW91dGVyLXdyYXBwZXIge1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLXRvcDogM3JlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xufVxuXG4ubGF5b3V0LXNlY3Rpb24tc3RlY2ticmllZiAuYXJ0aWNsZS1vdXRlci13cmFwcGVyOjpiZWZvcmUsIC5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmIC5hcnRpY2xlLW91dGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6ICcgJztcbiAgZmxleC1iYXNpczogMDtcbiAgb3JkZXI6IDE7XG59XG5cbi5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmIC5hcnRpY2xlLW91dGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmIC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLm1vZHVsZS1oZWFkZXItYXJ0aWNsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmIC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLm1vZHVsZS1oZWFkZXItYXJ0aWNsZSB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmIC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLm1vZHVsZS1oZWFkZXItYXJ0aWNsZSwgLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAubW9kdWxlLWhlYWRlci1hcnRpY2xlOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG59XG5cbi5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmIC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLm1vZHVsZS1oZWFkZXItYXJ0aWNsZTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ubGF5b3V0LXNlY3Rpb24tc3RlY2ticmllZiAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5tb2R1bGUtdGV4dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4ubGF5b3V0LXNlY3Rpb24tc3RlY2ticmllZiAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5tb2R1bGUtdGV4dCwgLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAubW9kdWxlLXRleHQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBjbGVhcjogbm9uZTtcbn1cblxuLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAubW9kdWxlLXRleHQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAuZ2FsbGVyeS13cmFwcGVyIHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAuZ2FsbGVyeS13cmFwcGVyOjpiZWZvcmUsIC5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmIC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLmdhbGxlcnktd3JhcHBlcjo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyAnO1xuICBmbGV4LWJhc2lzOiAwO1xuICBvcmRlcjogMTtcbn1cblxuLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAuZ2FsbGVyeS13cmFwcGVyOjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4ubGF5b3V0LXNlY3Rpb24tc3RlY2ticmllZiAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5nYWxsZXJ5LXdyYXBwZXIgLm1vZHVsZS1nYWxsZXJ5LW1hc29ucnkge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubGF5b3V0LXNlY3Rpb24tc3RlY2ticmllZiAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5nYWxsZXJ5LXdyYXBwZXIgLm1vZHVsZS1nYWxsZXJ5LW1hc29ucnkge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4ubGF5b3V0LXNlY3Rpb24tc3RlY2ticmllZiAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5nYWxsZXJ5LXdyYXBwZXIgLm1vZHVsZS1nYWxsZXJ5LW1hc29ucnksIC5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmIC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLmdhbGxlcnktd3JhcHBlciAubW9kdWxlLWdhbGxlcnktbWFzb25yeTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGNsZWFyOiBub25lO1xufVxuXG4ubGF5b3V0LXNlY3Rpb24tc3RlY2ticmllZiAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5nYWxsZXJ5LXdyYXBwZXIgLm1vZHVsZS1nYWxsZXJ5LW1hc29ucnk6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAuZ2FsbGVyeS13cmFwcGVyIC5tb2R1bGUtZ2FsbGVyeS1tYXNvbnJ5IC5tYXNvbnJ5LWl0ZW0ge1xuICB3aWR0aDogOTklO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubGF5b3V0LXNlY3Rpb24tc3RlY2ticmllZiAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5tb2R1bGUtdGV4dCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAubW9kdWxlLXRleHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubGF5b3V0LXNlY3Rpb24tc3RlY2ticmllZiAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5tb2R1bGUtdGV4dCwgLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAubW9kdWxlLXRleHQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbiAgLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAubW9kdWxlLXRleHQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG4gIC5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmIC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLm1vZHVsZS10ZXh0LCAubGF5b3V0LXNlY3Rpb24tc3RlY2ticmllZiAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5tb2R1bGUtdGV4dDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuICAubGF5b3V0LXNlY3Rpb24tc3RlY2ticmllZiAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5nYWxsZXJ5LXdyYXBwZXIgLm1vZHVsZS1nYWxsZXJ5LW1hc29ucnkge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmIC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLmdhbGxlcnktd3JhcHBlciAubW9kdWxlLWdhbGxlcnktbWFzb25yeSB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmIC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLmdhbGxlcnktd3JhcHBlciAubW9kdWxlLWdhbGxlcnktbWFzb25yeSwgLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAuZ2FsbGVyeS13cmFwcGVyIC5tb2R1bGUtZ2FsbGVyeS1tYXNvbnJ5Omxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBub25lO1xuICB9XG4gIC5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmIC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLmdhbGxlcnktd3JhcHBlciAubW9kdWxlLWdhbGxlcnktbWFzb25yeTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAuZ2FsbGVyeS13cmFwcGVyIC5tb2R1bGUtZ2FsbGVyeS1tYXNvbnJ5LCAubGF5b3V0LXNlY3Rpb24tc3RlY2ticmllZiAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5nYWxsZXJ5LXdyYXBwZXIgLm1vZHVsZS1nYWxsZXJ5LW1hc29ucnk6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbiAgLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAuZ2FsbGVyeS13cmFwcGVyIC5tb2R1bGUtZ2FsbGVyeS1tYXNvbnJ5IC5tYXNvbnJ5LWl0ZW0ge1xuICAgIHdpZHRoOiA0NSU7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwLjYyNWVtKSB7XG4gIC5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmIC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLm1vZHVsZS10ZXh0IHtcbiAgICB3aWR0aDogNTAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MC42MjVlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAubW9kdWxlLXRleHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAuNjI1ZW0pIHtcbiAgLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAubW9kdWxlLXRleHQsIC5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmIC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLm1vZHVsZS10ZXh0Omxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBub25lO1xuICB9XG4gIC5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmIC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLm1vZHVsZS10ZXh0Omxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxuICAubGF5b3V0LXNlY3Rpb24tc3RlY2ticmllZiAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5tb2R1bGUtdGV4dCwgLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAubW9kdWxlLXRleHQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbiAgLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAuZ2FsbGVyeS13cmFwcGVyIC5tb2R1bGUtZ2FsbGVyeS1tYXNvbnJ5IHtcbiAgICB3aWR0aDogNjYuNjY2NjclO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MC42MjVlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAuZ2FsbGVyeS13cmFwcGVyIC5tb2R1bGUtZ2FsbGVyeS1tYXNvbnJ5IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwLjYyNWVtKSB7XG4gIC5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmIC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLmdhbGxlcnktd3JhcHBlciAubW9kdWxlLWdhbGxlcnktbWFzb25yeSwgLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAuZ2FsbGVyeS13cmFwcGVyIC5tb2R1bGUtZ2FsbGVyeS1tYXNvbnJ5Omxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBub25lO1xuICB9XG4gIC5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmIC5hcnRpY2xlLW91dGVyLXdyYXBwZXIgLmdhbGxlcnktd3JhcHBlciAubW9kdWxlLWdhbGxlcnktbWFzb25yeTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAuZ2FsbGVyeS13cmFwcGVyIC5tb2R1bGUtZ2FsbGVyeS1tYXNvbnJ5LCAubGF5b3V0LXNlY3Rpb24tc3RlY2ticmllZiAuYXJ0aWNsZS1vdXRlci13cmFwcGVyIC5nYWxsZXJ5LXdyYXBwZXIgLm1vZHVsZS1nYWxsZXJ5LW1hc29ucnk6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbiAgLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWYgLmFydGljbGUtb3V0ZXItd3JhcHBlciAuZ2FsbGVyeS13cmFwcGVyIC5tb2R1bGUtZ2FsbGVyeS1tYXNvbnJ5IC5tYXNvbnJ5LWl0ZW0ge1xuICAgIHdpZHRoOiA0NiU7XG4gIH1cbn1cblxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgTGF5b3V0IFNlY3Rpb24gVmlkZW8gICAgICAgICAgICA9XHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi5sYXlvdXQtc2VjdGlvbi12aWRlbyB7XG4gIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5sYXlvdXQtc2VjdGlvbi12aWRlbyAud3JhcHBlci1jb250ZW50IHtcbiAgbWF4LXdpZHRoOiAxNTAwcHg7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5sYXlvdXQtc2VjdGlvbi12aWRlbyAud3JhcHBlci1jb250ZW50OjpiZWZvcmUsIC5sYXlvdXQtc2VjdGlvbi12aWRlbyAud3JhcHBlci1jb250ZW50OjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnICc7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG9yZGVyOiAxO1xufVxuXG4ubGF5b3V0LXNlY3Rpb24tdmlkZW8gLndyYXBwZXItY29udGVudDo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLyo9PT09PSAgRW5kIG9mIExheW91dCBTZWN0aW9uIFZpZGVvICA9PT09PT0qL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcInNrLWljb25mb250XCI7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvc2staWNvbmZvbnQuZW90XCIpO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3NrLWljb25mb250LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW90XCIpLCB1cmwoXCIuLi9mb250cy9zay1pY29uZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvc2staWNvbmZvbnQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9zay1pY29uZm9udC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcIi4uL2ZvbnRzL3NrLWljb25mb250LnN2ZyNzay1pY29uZm9udFwiKSBmb3JtYXQoXCJzdmdcIik7XG59XG5cbi5pY29uOmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBcInNrLWljb25mb250XCI7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICAvKiBzcGVhazogbm9uZTsgb25seSBuZWNlc3NhcnkgaWYgbm90IHVzaW5nIHRoZSBwcml2YXRlIHVuaWNvZGUgcmFuZ2UgKGZpcnN0R2x5cGggb3B0aW9uKSAqL1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4uaWNvbi1mYWNlYm9vazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRTAwMVwiO1xufVxuXG4uaWNvbi1pbnN0YWdyYW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEUwMDJcIjtcbn1cblxuLmljb24tbWVudTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRTAwM1wiO1xufVxuXG4uaWNvbi1wZmVpbC1saW5rczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRTAwNFwiO1xufVxuXG4uaWNvbi1wZmVpbC1yZWNodHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEUwMDVcIjtcbn1cblxuLmljb24tcHVua3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEUwMDZcIjtcbn1cblxuLmljb24tc3Rlcm46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEUwMDdcIjtcbn1cblxuLmljb24tdHdpdHRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRTAwOFwiO1xufVxuXG4uaWNvbi15b3V0dWJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxFMDA5XCI7XG59XG5cbi8qIFNsaWRlciAqL1xuLnNsaWNrLXNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnNsaWNrLWxpc3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5zbGljay1saXN0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnNsaWNrLWxpc3QuZHJhZ2dpbmcge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGN1cnNvcjogaGFuZDtcbn1cblxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uc2xpY2stdHJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5zbGljay10cmFjazpiZWZvcmUsIC5zbGljay10cmFjazphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uc2xpY2stdHJhY2s6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXRyYWNrIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uc2xpY2stc2xpZGUge1xuICBmbG9hdDogbGVmdDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbltkaXI9XCJydGxcIl0gLnNsaWNrLXNsaWRlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4uc2xpY2stc2xpZGUgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5zbGljay1zbGlkZS5zbGljay1sb2FkaW5nIGltZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zbGljay1zbGlkZS5kcmFnZ2luZyBpbWcge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnNsaWNrLWluaXRpYWxpemVkIC5zbGljay1zbGlkZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uc2xpY2stbG9hZGluZyAuc2xpY2stc2xpZGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5zbGljay12ZXJ0aWNhbCAuc2xpY2stc2xpZGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiBhdXRvO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIFNsaWRlciAqL1xuLnNsaWNrLWxvYWRpbmcgLnNsaWNrLWxpc3Qge1xuICBiYWNrZ3JvdW5kOiAjZmZmIFwiYXNzZXRzL2ltZy9hamF4LWxvYWRlci5naWZcIiBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbn1cblxuLyogQXJyb3dzICovXG4uc2xpY2stcHJldixcbi5zbGljay1uZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDBweDtcbiAgZm9udC1zaXplOiAwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdG9wOiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgei1pbmRleDogMzAwMDtcbn1cblxuLnNsaWNrLXByZXY6aG92ZXIsIC5zbGljay1wcmV2OmZvY3VzLFxuLnNsaWNrLW5leHQ6aG92ZXIsXG4uc2xpY2stbmV4dDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5zbGljay1wcmV2OmhvdmVyOmJlZm9yZSwgLnNsaWNrLXByZXY6Zm9jdXM6YmVmb3JlLFxuLnNsaWNrLW5leHQ6aG92ZXI6YmVmb3JlLFxuLnNsaWNrLW5leHQ6Zm9jdXM6YmVmb3JlIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLnNsaWNrLXByZXYuc2xpY2stZGlzYWJsZWQ6YmVmb3JlLFxuLnNsaWNrLW5leHQuc2xpY2stZGlzYWJsZWQ6YmVmb3JlIHtcbiAgb3BhY2l0eTogMC4yNTtcbn1cblxuLnNsaWNrLXByZXY6YmVmb3JlLFxuLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IFwic2staWNvbmZvbnRcIjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICNENUE4NDc7XG4gIG9wYWNpdHk6IDAuNzU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4uc2xpY2stcHJldiB7XG4gIGxlZnQ6IDBweDtcbn1cblxuW2Rpcj1cInJ0bFwiXSAuc2xpY2stcHJldiB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMjVweDtcbn1cblxuLnNsaWNrLXByZXY6YmVmb3JlIHtcbiAgY29udGVudDogXCLugIRcIjtcbn1cblxuW2Rpcj1cInJ0bFwiXSAuc2xpY2stcHJldjpiZWZvcmUge1xuICBjb250ZW50OiBcIu6AhVwiO1xufVxuXG4uc2xpY2stbmV4dCB7XG4gIHJpZ2h0OiAwcHg7XG59XG5cbltkaXI9XCJydGxcIl0gLnNsaWNrLW5leHQge1xuICBsZWZ0OiAtMjVweDtcbiAgcmlnaHQ6IGF1dG87XG59XG5cbi5zbGljay1uZXh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7oCFXCI7XG59XG5cbltkaXI9XCJydGxcIl0gLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCLugIRcIjtcbn1cblxuLyogRG90cyAqL1xuLnNsaWNrLWRvdHRlZC5zbGljay1zbGlkZXIge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuXG4uc2xpY2stZG90cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtMjVweDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnNsaWNrLWRvdHMgbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgbWFyZ2luOiAwIDVweDtcbiAgcGFkZGluZzogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uc2xpY2stZG90cyBsaSBidXR0b24ge1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgb3V0bGluZTogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDBweDtcbiAgZm9udC1zaXplOiAwcHg7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5zbGljay1kb3RzIGxpIGJ1dHRvbjpob3ZlciwgLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmhvdmVyOmJlZm9yZSwgLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmZvY3VzOmJlZm9yZSB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5zbGljay1kb3RzIGxpIGJ1dHRvbjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgY29udGVudDogXCLugIVcIjtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgZm9udC1mYW1pbHk6IFwic2staWNvbmZvbnRcIjtcbiAgZm9udC1zaXplOiA2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjMkEyNzIwO1xuICBvcGFjaXR5OiAwLjI1O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLnNsaWNrLWRvdHMgbGkuc2xpY2stYWN0aXZlIGJ1dHRvbjpiZWZvcmUge1xuICBjb2xvcjogIzJBMjcyMDtcbiAgb3BhY2l0eTogMC43NTtcbn1cblxuYm9keS5sYi1kaXNhYmxlLXNjcm9sbGluZyB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5saWdodGJveE92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogOTk5OTtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9ODApO1xuICBvcGFjaXR5OiAwLjg7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5saWdodGJveCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDEwMDAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4ubGlnaHRib3ggLmxiLWltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogYXV0bztcbiAgbWF4LXdpZHRoOiBpbmhlcml0O1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIC8qIEltYWdlIGJvcmRlciAqL1xuICBib3JkZXI6IDRweCBzb2xpZCB3aGl0ZTtcbn1cblxuLmxpZ2h0Ym94IGEgaW1nIHtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4ubGItb3V0ZXJDb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICp6b29tOiAxO1xuICB3aWR0aDogMjUwcHg7XG4gIGhlaWdodDogMjUwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC8qIEJhY2tncm91bmQgY29sb3IgYmVoaW5kIGltYWdlLlxyXG4gICAgIFRoaXMgaXMgdmlzaWJsZSBkdXJpbmcgdHJhbnNpdGlvbnMuICovXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuXG4ubGItb3V0ZXJDb250YWluZXI6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5sYi1sb2FkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNDMlO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDI1JTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDA7XG59XG5cbi5sYi1jYW5jZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGJhY2tncm91bmQ6IHVybCguLi9pbWcvbG9hZGluZy5naWYpIG5vLXJlcGVhdDtcbn1cblxuLmxiLW5hdiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAxMDtcbn1cblxuLmxiLWNvbnRhaW5lciA+IC5uYXYge1xuICBsZWZ0OiAwO1xufVxuXG4ubGItbmF2IGEge1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQVBBQUFQLy8vd0FBQUNINUJBRUFBQUFBTEFBQUFBQUJBQUVBQUFJQ1JBRUFPdz09XCIpO1xufVxuXG4ubGItcHJldiwgLmxiLW5leHQge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5sYi1uYXYgYS5sYi1wcmV2IHtcbiAgd2lkdGg6IDM0JTtcbiAgbGVmdDogMDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGJhY2tncm91bmQ6IHVybCguLi9pbWcvcHJldi5wbmcpIGxlZnQgNDglIG5vLXJlcGVhdDtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0wKTtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnM7XG4gIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzO1xuICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnM7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC42cztcbn1cblxuLmxiLW5hdiBhLmxiLXByZXY6aG92ZXIge1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5sYi1uYXYgYS5sYi1uZXh0IHtcbiAgd2lkdGg6IDY0JTtcbiAgcmlnaHQ6IDA7XG4gIGZsb2F0OiByaWdodDtcbiAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9uZXh0LnBuZykgcmlnaHQgNDglIG5vLXJlcGVhdDtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0wKTtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnM7XG4gIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzO1xuICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnM7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC42cztcbn1cblxuLmxiLW5hdiBhLmxiLW5leHQ6aG92ZXIge1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5sYi1kYXRhQ29udGFpbmVyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmctdG9wOiA1cHg7XG4gICp6b29tOiAxO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xufVxuXG4ubGItZGF0YUNvbnRhaW5lcjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDtcbn1cblxuLmxiLWRhdGEge1xuICBwYWRkaW5nOiAwIDRweDtcbiAgY29sb3I6ICNjY2M7XG59XG5cbi5sYi1kYXRhIC5sYi1kZXRhaWxzIHtcbiAgd2lkdGg6IDg1JTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjFlbTtcbn1cblxuLmxiLWRhdGEgLmxiLWNhcHRpb24ge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMWVtO1xufVxuXG4ubGItZGF0YSAubGItY2FwdGlvbiBhIHtcbiAgY29sb3I6ICM0YWU7XG59XG5cbi5sYi1kYXRhIC5sYi1udW1iZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY2xlYXI6IGxlZnQ7XG4gIHBhZGRpbmctYm90dG9tOiAxZW07XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM5OTk5OTk7XG59XG5cbi5sYi1kYXRhIC5sYi1jbG9zZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGJhY2tncm91bmQ6IHVybCguLi9pbWcvY2xvc2UucG5nKSB0b3AgcmlnaHQgbm8tcmVwZWF0O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgb3V0bGluZTogbm9uZTtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT03MCk7XG4gIG9wYWNpdHk6IDAuNztcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG4gIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xuICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbn1cblxuLmxiLWRhdGEgLmxiLWNsb3NlOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbmRpdltkYXRhLXNlcnZpY2VdICosXG5kaXZbZGF0YS1zZXJ2aWNlXSA6YmVmb3JlLFxuZGl2W2RhdGEtc2VydmljZV0gOmFmdGVyIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmbG9hdDogbm9uZTtcbiAgZm9udC1zdHlsZTogaW5oZXJpdDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBmb250LWZhbWlseTogXCJSb2JvdG8gU2xhYlwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgZm9udC1zaXplOiAxZW07XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiB1bnNldDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG5kaXZbZGF0YS1zZXJ2aWNlXSAuYy1sZCB7XG4gIGJvdHRvbTogMmVtO1xuICByaWdodDogMi41ZW07XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlLCB2aXNpYmlsaXR5IC4zcyBlYXNlLCB0cmFuc2Zvcm0gLjNzIGVhc2U7XG59XG5cbmRpdltkYXRhLXNlcnZpY2VdIC5jLWxkLFxuZGl2W2RhdGEtc2VydmljZV0gLmMtbGQ6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbmRpdltkYXRhLXNlcnZpY2VdIC5jLWxkOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXI6IDRweCBzb2xpZCB3aGl0ZTtcbiAgYm9yZGVyLXRvcDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlO1xufVxuXG5kaXZbZGF0YS1zZXJ2aWNlXS5jLWgtbiAuYy1sZCB7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbn1cblxuQGtleWZyYW1lcyBzcGluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cblxuZGl2W2RhdGEtc2VydmljZV0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTUwcHg7XG4gIG1pbi13aWR0aDogMzAwcHg7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90byBTbGFiXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwYjEwMTY7XG59XG5cbmRpdltkYXRhLXNlcnZpY2VdIGJ1dHRvbixcbmRpdltkYXRhLXNlcnZpY2VdIGxhYmVsLFxuZGl2W2RhdGEtc2VydmljZV0gaW5wdXQsXG5kaXZbZGF0YS1zZXJ2aWNlXSBoMSxcbmRpdltkYXRhLXNlcnZpY2VdIGgyLFxuZGl2W2RhdGEtc2VydmljZV0gaDMge1xuICB0cmFuc2l0aW9uOiBub25lO1xuICBhbmltYXRpb246IG5vbmU7XG59XG5cbmRpdltkYXRhLXNlcnZpY2VdOjpiZWZvcmUge1xuICBwYWRkaW5nLXRvcDogNTYuMjUlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogXCJcIjtcbn1cblxuZGl2W2RhdGEtYXV0b3NjYWxlXSB7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbmRpdltkYXRhLXNlcnZpY2VdIC5jLW50IHtcbiAgY29sb3I6ICNmZmY7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZSwgdmlzaWJpbGl0eSAuM3MgZWFzZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDI7XG59XG5cbmRpdltkYXRhLXNlcnZpY2VdIC5jLWJnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIG9wYWNpdHk6IC41O1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlLCB2aXNpYmlsaXR5IC4zcyBlYXNlLCB0cmFuc2Zvcm0gLjNzIGVhc2U7XG59XG5cbmRpdltkYXRhLXNlcnZpY2VdIC5jLWJnOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGVhc2UsIHZpc2liaWxpdHkgLjNzIGVhc2U7XG4gIGJhY2tncm91bmQ6ICMxZTM4NjE7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNGRlZywgIzBjMGYwMCAxMCUsIGJsYWNrIDEwMCUsIHJnYmEoNjgsIDc3LCAxMjUsIDAuMTA4Mjk4KSAwJSk7XG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KDE0ZGVnLCAjMWUzODYxIDAlLCByZ2JhKDIwNiwgMjIwLCAyMzMsIDAuMTE4MTAyKSAxMDAlKTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoMTRkZWcsICMxZTM4NjEgMCUsIHJnYmEoMjA2LCAyMjAsIDIzMywgMC4xMTgxMDIpIDEwMCUpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTRkZWcsICMxZTM4NjEgMCUsIHJnYmEoMjA2LCAyMjAsIDIzMywgMC4xMTgxMDIpIDEwMCUpO1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPVwiIzFlMzg2MVwiLGVuZENvbG9yc3RyPVwiI2NlZGNlOVwiLEdyYWRpZW50VHlwZT0xKTtcbn1cblxuZGl2W2RhdGEtc2VydmljZV0gLmMtYmctaSB7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjVzIGVhc2UsIHRyYW5zZm9ybSAuNXMgZWFzZTtcbn1cblxuZGl2W2RhdGEtc2VydmljZV0gLmMtYmctaS5sb2FkZWQge1xuICBvcGFjaXR5OiAxO1xufVxuXG5kaXZbZGF0YS1zZXJ2aWNlXSAuYy10bCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBmb250LXNpemU6IDEuMmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5kaXZbZGF0YS1zZXJ2aWNlXS5jLWgtbiAuYy1iZyB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG5cbmRpdltkYXRhLXNlcnZpY2VdLmMtaC1uIC5jLW50IHtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG5kaXZbZGF0YS1zZXJ2aWNlXSAuYy1uLWMge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogLjllbTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZSwgb3BhY2l0eSAuM3MgZWFzZTtcbn1cblxuZGl2W2RhdGEtc2VydmljZV0gLmMtbi10IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogLjk1ZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgbGluZS1oZWlnaHQ6IDEuNGVtO1xuICBjb2xvcjogI2ZmZjtcbiAgbWF4LXdpZHRoOiA0MjBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbmRpdltkYXRhLXNlcnZpY2VdIC5jLW4tdCxcbmRpdltkYXRhLXNlcnZpY2VdIC5jLW4tYSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuZGl2W2RhdGEtc2VydmljZV0gLmMtdC1jbiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHBhZGRpbmc6IDAgMTJweDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZSwgdHJhbnNmb3JtIC4zcyBlYXNlLCB2aXNpYmlsaXR5IC4zcyBlYXNlO1xufVxuXG5kaXZbZGF0YS1zZXJ2aWNlXSAuYy1uLWMgLmMtbGEtYixcbmRpdltkYXRhLXNlcnZpY2VdIC5jLW4tYyAuYy1sLWIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwMiwgMjE5LCAwLjg0KTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAuMjVlbTtcbiAgZm9udC1zaXplOiAuODVlbTtcbiAgcGFkZGluZy1sZWZ0OiAyLjhlbTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDEsIDAuNSwgMSksIHZpc2liaWxpdHkgMC4zcyBlYXNlLCBib3gtc2hhZG93IDAuM3MgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2U7XG4gIGJveC1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC4xOSkgMHB4IDRweCAxMnB4O1xufVxuXG4vKiBQbGF5IGljb24gKi9cbmRpdltkYXRhLXNlcnZpY2VdIC5jLW4tYyAuYy1sLWI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEycHg7XG4gIGxlZnQ6IDEuMWVtO1xuICB6LWluZGV4OiAyO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1sZWZ0OiAxMnB4IHNvbGlkIHdoaXRlO1xuICBib3JkZXItdG9wOiA3LjVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogNy41cHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbmRpdltkYXRhLXNlcnZpY2VdIC5jLW4tYyAuYy1sYS1iIHtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgcGFkZGluZzogMWVtO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIyNSwgMjM5LCAyNTUsIDAuOCk7XG4gIGNvbG9yOiAjMGQxZjM0O1xufVxuXG5kaXZbZGF0YS1zZXJ2aWNlXSAuYy1uLWMgLmMtbGEtYjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjI1LCAyMzksIDI1NSwgMC45NSk7XG59XG5cbmRpdltkYXRhLXNlcnZpY2VdIC5jLW4tYyAuYy1sLWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDksIDgwLCAxNjEsIDAuODkpO1xufVxuXG5kaXZbZGF0YS1zZXJ2aWNlXSAuYy1uLWMgLmMtbGEtYjphY3RpdmUge1xuICB0cmFuc2l0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIyNSwgMjM5LCAyNTUsIDAuNik7XG59XG5cbmRpdltkYXRhLXNlcnZpY2VdIC5jLW4tYyAuYy1sLWI6YWN0aXZlIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMjQsIDEwNCwgMjUwLCAwLjI0KTtcbn1cblxuZGl2W2RhdGEtc2VydmljZV0uYy1oLW4gLmMtdC1jbiB7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcbn1cblxuZGl2W2RhdGEtc2VydmljZV0gaWZyYW1lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyOiBub25lO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC41cyBlYXNlO1xufVxuXG5kaXZbZGF0YS1zZXJ2aWNlXS5jLWgtYiBpZnJhbWUge1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAuMXM7XG59XG5cbmRpdltkYXRhLXNlcnZpY2VdIC5jLW4tdCBhIHtcbiAgY29sb3I6ICM1ZmIzZmI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM1ZmIzZmI7XG59XG5cbmRpdltkYXRhLXNlcnZpY2VdIC5jLW4tdCBhOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyogZmFsbGJhY2sgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9tYXRlcmlhbC53b2ZmMikgZm9ybWF0KFwid29mZjJcIik7XG59XG5cbi5tYXRlcmlhbC1pY29ucyB7XG4gIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xuICBkaXJlY3Rpb246IGx0cjtcbiAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG4iLCJAaW1wb3J0ICcuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvdXRpbCc7XHJcblxyXG4vKiB1cmwgcGF0aHMgKi9cclxuXHJcbiRQQVRILUFTU0VUUzogXCIvYXNzZXRzL1wiO1xyXG4kUEFUSC1BU1NFVFMtSU1HOiAkUEFUSC1BU1NFVFMgKyBcImltZy9cIjtcclxuJFBBVEgtQVNTRVRTLUZPTlRTOiAkUEFUSC1BU1NFVFMgKyBcImZvbnRzL1wiO1xyXG4kUEFUSC1BU1NFVFMtTE9HTzogJFBBVEgtQVNTRVRTLUlNRyArIFwibG9nby9cIjtcclxuJFBBVEgtQVNTRVQtSUNPTjogJFBBVEgtQVNTRVRTLUlNRyArIFwiaWNvbnMvXCI7XHJcblxyXG5cclxuLy8gR2xvYmFsXHJcbi8vIC0tLS0tLS0tLVxyXG5cclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCU7XHJcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDEyMDBweCk7XHJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41O1xyXG4kZ2xvYmFsLXBhZGRpbmc6IDEuNXJlbTtcclxuJGdsb2JhbC1tYXJnaW46IDEuNXJlbTtcclxuXHJcbiRnbG9iYWwtcmFkaXVzOiAxcHg7XHJcblxyXG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAnQmFybG93IENvbmRlbnNlZCcsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcclxuJGJvZHktZm9udC1mYW1pbHk6ICdSb2JvdG8gU2xhYicsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQ7XHJcbiRtYXgtd2lkdGg6IHJlbS1jYWxjKDE0NDBweCk7XHJcblxyXG4vLyBkaXNhYmxlIGNvbnRyYXN0IHdhcm5pbmdzXHJcbiRjb250cmFzdC13YXJuaW5nczogZmFsc2U7XHJcblxyXG4vLyBCcmVha3BvaW50c1xyXG4vLyAtLS0tLS0tLS0tLS0tLVxyXG5cclxuJGJyZWFrcG9pbnRzOiAoXHJcbiAgICAgICAgc21hbGw6IDAsXHJcbiAgICAgICAgbWVkaXVtOiA2NDBweCxcclxuICAgICAgICBsYXJnZTogOTcwcHgsXHJcbiAgICAgICAgeGxhcmdlOiAxMjAwcHgsXHJcbiAgICAgICAgeHhsYXJnZTogMTQ0MHB4LFxyXG4pO1xyXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2U7XHJcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpO1xyXG5cclxuLy8gVGhlIEdyaWRcclxuLy8gLS0tLS0tLS0tLS1cclxuXHJcbiRncmlkLXJvdy13aWR0aDogJGdsb2JhbC13aWR0aDtcclxuJGdyaWQtY29sdW1uLWNvdW50OiAxMjtcclxuJGdyaWQtY29sdW1uLWd1dHRlcjogKFxyXG4gICAgICAgIHNtYWxsOiAyMHB4LFxyXG4gICAgICAgIG1lZGl1bTogMzBweCxcclxuKTtcclxuJGdyaWQtY29sdW1uLWFsaWduLWVkZ2U6IHRydWU7XHJcbiRncmlkLWNvbHVtbi1hbGlhczogJ2NvbHVtbnMnO1xyXG4kYmxvY2stZ3JpZC1tYXg6IDg7XHJcblxyXG5cclxuLy8gQmFzZSBUeXBvZ3JhcGh5XHJcbi8vIC0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLyoqXHJcbiAqIEZvbnQgU2l6ZSBIZWFkbGluZXNcclxuICovXHJcblxyXG4kZm9udC1zaXplLWhlYWRsaW5lLWgxOiAxMTBweDtcclxuJGZvbnQtc2l6ZS1oZWFkbGluZS1oMjogNzJweDtcclxuJGZvbnQtc2l6ZS1oZWFkbGluZS1oMzogMzZweDtcclxuJGZvbnQtc2l6ZS1oZWFkbGluZS1oNDogMjRweDtcclxuJGZvbnQtc2l6ZS1oZWFkbGluZS1oNTogMjFweDtcclxuJGZvbnQtc2l6ZS1oZWFkbGluZS1oNjogMThweDtcclxuXHJcblxyXG4vKipcclxuKiBGb250IFNpemUgSGVhZGxpbmVzIE1vYmlsZVxyXG4qL1xyXG5cclxuJGZvbnQtc2l6ZS1oZWFkbGluZS1oMS1tb2JpbGU6IDQ4cHg7XHJcbiRmb250LXNpemUtaGVhZGxpbmUtaDItbW9iaWxlOiAzMnB4O1xyXG4kZm9udC1zaXplLWhlYWRsaW5lLWgzLW1vYmlsZTogMjhweDtcclxuJGZvbnQtc2l6ZS1oZWFkbGluZS1oNC1tb2JpbGU6IDI0cHg7XHJcbiRmb250LXNpemUtaGVhZGxpbmUtaDUtbW9iaWxlOiAxOHB4O1xyXG4kZm9udC1zaXplLWhlYWRsaW5lLWg2LW1vYmlsZTogMThweDtcclxuXHJcblxyXG4vKipcclxuICogRm9udCBTaXplIEJvZHlcclxuICovXHJcblxyXG4kZm9udC1zaXplLWJvZHkxOiAxNnB4O1xyXG4kZm9udC1zaXplLWJvZHkyOiAxNHB4O1xyXG4kZm9udC1zaXplLWJvZHkzOiAxMnB4O1xyXG5cclxuLyoqXHJcbiogRm9udCBTaXplIEJvZHkgTW9iaWxlXHJcbiovXHJcblxyXG4kZm9udC1zaXplLWJvZHkxLW1vYmlsZTogMTZweDtcclxuJGZvbnQtc2l6ZS1ib2R5Mi1tb2JpbGU6IDE0cHg7XHJcbiRmb250LXNpemUtYm9keTMtbW9iaWxlOiAxMnB4O1xyXG5cclxuLyoqXHJcbiogRm9udCBXZWlnaHRzXHJcbiovXHJcblxyXG4kZm9udC13ZWlnaHQtYmxhY2s6ICAgICAgICAgOTAwO1xyXG4kZm9udC13ZWlnaHQtZXh0cmFib2xkOiAgICAgODAwO1xyXG4kZm9udC13ZWlnaHQtYm9sZDogICAgICAgICAgNzAwO1xyXG4kZm9udC13ZWlnaHQtc2VtaWJvbGQ6ICAgICAgNjAwO1xyXG4kZm9udC13ZWlnaHQtbWVkaXVtOiAgICAgICAgNTAwO1xyXG4kZm9udC13ZWlnaHQtcmVndWxhcjogICAgICAgNDAwO1xyXG4kZm9udC13ZWlnaHQtbGlnaHQ6ICAgICAgICAgMzAwO1xyXG4kZm9udC13ZWlnaHQtZXh0cmFsaWdodDogICAgMjAwO1xyXG4kZm9udC13ZWlnaHQtdGhpbjogICAgICAgICAgMTAwO1xyXG5cclxuXHJcbiRoZWFkZXItc3R5bGVzOiAoXHJcbiAgICAgICAgc21hbGw6IChcclxuICAgICAgICAgICAgICAgICdoMSc6ICgnZm9udC1zaXplJzogJGZvbnQtc2l6ZS1oZWFkbGluZS1oMS1tb2JpbGUsICdsaW5lLWhlaWdodCc6IDEpLFxyXG4gICAgICAgICAgICAgICAgJ2gyJzogKCdmb250LXNpemUnOiAkZm9udC1zaXplLWhlYWRsaW5lLWgyLW1vYmlsZSwgJ2xpbmUtaGVpZ2h0JzogMSksXHJcbiAgICAgICAgICAgICAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUtaGVhZGxpbmUtaDMtbW9iaWxlKSxcclxuICAgICAgICAgICAgICAgICdoNCc6ICgnZm9udC1zaXplJzogJGZvbnQtc2l6ZS1oZWFkbGluZS1oNC1tb2JpbGUpLFxyXG4gICAgICAgICAgICAgICAgJ2g1JzogKCdmb250LXNpemUnOiAkZm9udC1zaXplLWhlYWRsaW5lLWg1LW1vYmlsZSksXHJcbiAgICAgICAgICAgICAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUtaGVhZGxpbmUtaDYtbW9iaWxlKSxcclxuICAgICAgICApLFxyXG4gICAgICAgIG1lZGl1bTooXHJcbiAgICAgICAgICAgICAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUtaGVhZGxpbmUtaDEsICdsaW5lLWhlaWdodCc6IDEpLFxyXG4gICAgICAgICAgICAgICAgJ2gyJzogKCdmb250LXNpemUnOiAkZm9udC1zaXplLWhlYWRsaW5lLWgyLCAnbGluZS1oZWlnaHQnOiAxKSxcclxuICAgICAgICAgICAgICAgICdoMyc6ICgnZm9udC1zaXplJzogJGZvbnQtc2l6ZS1oZWFkbGluZS1oMyksXHJcbiAgICAgICAgICAgICAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUtaGVhZGxpbmUtaDQpLFxyXG4gICAgICAgICAgICAgICAgJ2g1JzogKCdmb250LXNpemUnOiAkZm9udC1zaXplLWhlYWRsaW5lLWg1KSxcclxuICAgICAgICAgICAgICAgICdoNic6ICgnZm9udC1zaXplJzogJGZvbnQtc2l6ZS1oZWFkbGluZS1oNiksXHJcbiAgICAgICAgKVxyXG4pO1xyXG5cclxuJGJvZHktc3R5bGVzOiAoXHJcbiAgICAgICAgc21hbGw6IChcclxuICAgICAgICAgICAgICAgICdib2R5MScgICAgICA6ICgnZm9udC1zaXplJzogJGZvbnQtc2l6ZS1ib2R5MS1tb2JpbGUpLFxyXG4gICAgICAgICAgICAgICAgJ2JvZHkyJyAgICAgIDogKCdmb250LXNpemUnOiAkZm9udC1zaXplLWJvZHkyLW1vYmlsZSksXHJcbiAgICAgICAgICAgICAgICAnYm9keTMnICAgICAgOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUtYm9keTMtbW9iaWxlKSxcclxuXHJcbiAgICAgICAgKSxcclxuICAgICAgICBtZWRpdW06KFxyXG4gICAgICAgICAgICAgICAgJ2JvZHkxJyAgICAgIDogKCdmb250LXNpemUnOiAkZm9udC1zaXplLWJvZHkxKSxcclxuICAgICAgICAgICAgICAgICdib2R5MicgICAgICA6ICgnZm9udC1zaXplJzogJGZvbnQtc2l6ZS1ib2R5MiksXHJcbiAgICAgICAgICAgICAgICAnYm9keTMnICAgICAgOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUtYm9keTMpLFxyXG4gICAgICAgICksXHJcbik7XHJcblxyXG4vLyBDb2xvciBTZXR0aW5nc1xyXG4vLyAtLS0tLS0tLS0tLS0tLVxyXG5cclxuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxyXG4gICAgICAgIHByaW1hcnk6ICNENUE4NDcsXHJcbiAgICAgICAgc2Vjb25kYXJ5OiAjMzlBRUQyLFxyXG4gICAgICAgIHN1Y2Nlc3M6ICMwMGRjODAsXHJcbiAgICAgICAgd2FybmluZzogI2ZmYWUwMCxcclxuICAgICAgICBhbGVydDogI0UzMTYyRixcclxuKTtcclxuXHJcbi8vIERlZmluZSBGb3VuZGF0aW9uIFByaW1hcnkgQ29sb3IgU2V0dGluZ3NcclxuXHJcbiRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIFwicHJpbWFyeVwiKTtcclxuJHNlY29uZGFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBcInNlY29uZGFyeVwiKTtcclxuJHN1Y2Nlc3MtY29sb3I6IG1hcF9nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgXCJzdWNjZXNzXCIpO1xyXG4kd2FybmluZy1jb2xvcjogbWFwX2dldCgkZm91bmRhdGlvbi1wYWxldHRlLCBcIndhcm5pbmdcIik7XHJcbiRhbGVydC1jb2xvcjogbWFwX2dldCgkZm91bmRhdGlvbi1wYWxldHRlLCBcImFsZXJ0XCIpO1xyXG5cclxuLy8gRGVmaW5lIEZvdW5kYXRpb24gU2hhZGVzIENvbG9yIFNldHRpbmdzXHJcblxyXG4kbGlnaHQtZ3JheTogI2YxZjFmMTtcclxuJG1lZGl1bS1ncmF5OiAjYjdiNmI2O1xyXG4kZGFyay1ncmF5OiAjMkEyNzIwO1xyXG4kYmxhY2s6ICMwYTBhMGE7XHJcbiR3aGl0ZTogI0ZERkNGQztcclxuXHJcblxyXG4vLyByZW5hbWUgZm91bmRhdGlvbiBjb2xvciBzZXR0aW5ncyB0byB4Y29udHJvbCBzZXR0aW5nc1xyXG5cclxuJGNvbG9yLXByaW1hcnk6ICRwcmltYXJ5LWNvbG9yO1xyXG4kY29sb3Itc2Vjb25kYXJ5OiAkc2Vjb25kYXJ5LWNvbG9yO1xyXG4kY29sb3ItYW5hbG9nb3VzOiBsaWdodGVuKCRjb2xvci1wcmltYXJ5LCAyMCUpO1xyXG4kY29sb3Itc3VjY2VzczogJHN1Y2Nlc3MtY29sb3I7XHJcbiRjb2xvci13YXJuaW5nOiAkd2FybmluZy1jb2xvcjtcclxuJGNvbG9yLWFsZXJ0OiAkYWxlcnQtY29sb3I7XHJcblxyXG4kY29sb3ItZ3JleS1saWdodDogJGxpZ2h0LWdyYXk7XHJcbiRjb2xvci1ncmV5LW1lZGl1bTogJG1lZGl1bS1ncmF5O1xyXG4kY29sb3ItZ3JleS1kYXJrOiAkZGFyay1ncmF5O1xyXG4kY29sb3ItYmxhY2s6ICRibGFjaztcclxuJGNvbG9yLXdoaXRlOiAkd2hpdGU7XHJcblxyXG5cclxuLyogZGVmaW5lIGZvbnQtY29sb3JzICovXHJcblxyXG4kaGVhZGVyLWZvbnQtY29sb3I6ICRjb2xvci1wcmltYXJ5O1xyXG4kYm9keS1mb250LWNvbG9yOiAkY29sb3ItZ3JleS1kYXJrO1xyXG4kZm9udC1jb2xvci1pbnZlcnQ6ICRjb2xvci13aGl0ZTtcclxuXHJcbi8vIGRlZmluZSBsaW5rIGNvbG9yc1xyXG4kbGluay1jb2xvci1ub3JtYWw6ICRjb2xvci1wcmltYXJ5O1xyXG4kbGluay1jb2xvci1ob3ZlcjogJGNvbG9yLXNlY29uZGFyeTtcclxuJGxpbmstY29sb3ItYWN0aXZlOiBsaWdodGVuKCRjb2xvci1wcmltYXJ5LCAzMCUpO1xyXG4kbGluay1jb2xvci12aXNpdGVkOiAkY29sb3ItcHJpbWFyeTtcclxuJGxpbmstY29sb3ItZm9jdXM6IGxpZ2h0ZW4oJGNvbG9yLXByaW1hcnksIDIwJSk7XHJcblxyXG5cclxuLy8gQnV0dG9uIFNldHRpbmdzXHJcbi8vIC0tLS0tLS0tLS0tLS0tLVxyXG4kYnV0dG9uLWZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xyXG4kYnV0dG9uLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtc2VtaWJvbGQ7XHJcbiRidXR0b24tY29sb3I6ICRjb2xvci13aGl0ZTtcclxuJGJ1dHRvbi1zaXplczogKFxyXG4gICAgICAgICAgICAgICAgdGlueTogcmVtLWNhbGMoMTZweCksXHJcbiAgICAgICAgICAgICAgICBzbWFsbDogcmVtLWNhbGMoMThweCksXHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiByZW0tY2FsYygyNHB4KSxcclxuICAgICAgICAgICAgICAgIGxhcmdlOiByZW0tY2FsYygyOHB4KVxyXG4pO1xyXG5cclxuXHJcblxyXG5cclxuLy8gUmVzcG9uc2l2ZSBFbWJlZFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMCk7XHJcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvczogKFxyXG4gICAgICAgIGRlZmF1bHQ6IDQgYnkgMyxcclxuICAgICAgICB3aWRlc2NyZWVuOiAxNiBieSA3LjQsXHJcbik7XHJcblxyXG5cclxuLy8vIEB0eXBlIE1hcFxyXG5cclxuXHJcbi8vIEFsdGVybmF0aXZlIFNjaHJpZnRmYXJiZSBiZWkgaGVsbGVtIEhpbnRlcmdydW5kLlxyXG4kYnV0dG9uLWNvbG9yLWFsdDogJGNvbG9yLXdoaXRlO1xyXG4kYnV0dG9uLXBhZGRpbmc6IDAuNzVlbSAwLjc1ZW07XHJcblxyXG4kc2hhZG93LWNvbG9yOiByZ2JhKDAsMCwwLC4xMik7XHJcblxyXG4vLyAgUHJvdG90eXBlIFNoYWRvd1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb3RvdHlwZS1ib3gtc2hhZG93OiAgMnB4IDJweCAwcHggIHJnYmEoMCwwLDAsLjEyKTtcclxuXHJcblxyXG5cclxuLy8gb2ZmLWNhbnZhcy1zZXR0aW5nc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRjb2xvci1ibGFjaztcclxuJG9mZmNhbnZhcy1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjcpO1xyXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplOiAyMHB4O1xyXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpO1xyXG4kb2ZmY2FudmFzLW92ZXJsYXktemluZGV4OiAxMTtcclxuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMTI7XHJcbiRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6IDEzO1xyXG4kb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6IDEyO1xyXG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoOiAwLjVzO1xyXG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlO1xyXG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZTtcclxuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJGNvbG9yLWJsYWNrLCAwLjc1KTtcclxuJG1haW5jb250ZW50LWNsYXNzOiBcIm9mZi1jYW52YXMtY29udGVudFwiO1xyXG5cclxuLy8gQWNjb3JkaW9uIFNldHRpbmdzXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxyXG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkY29sb3ItZ3JleS1tZWRpdW0sIDAuNSk7XHJcblxyXG5cclxuLy8gTW9kdWxlIFRlYXNlciBTZXR0aW5nc1xyXG5cclxuJG1vZHVsZS10ZWFzZXItaGVhZGVyLWNvbG9yOiAkY29sb3ItcHJpbWFyeTtcclxuXHJcblxyXG4vLyBTbGljayBTZXR0aW5nc1xyXG4kc2xpY2stYXJyb3ctY29sb3I6ICRjb2xvci1wcmltYXJ5O1xyXG4kc2xpY2stZG90LWNvbG9yOiAkY29sb3ItZ3JleS1kYXJrICFkZWZhdWx0O1xyXG4kc2xpY2stZG90LWNvbG9yLWFjdGl2ZTogJHNsaWNrLWRvdC1jb2xvciAhZGVmYXVsdDtcclxuIiwiLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlc1xuICogVmVyc2lvbiA2LjYuM1xuICogaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cblxuLy8gLS0tIERlcGVuZGVuY2llcyAtLS1cbkBpbXBvcnQgJ3ZlbmRvci9ub3JtYWxpemUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL21pc3NpbmctZGVwZW5kZW5jaWVzJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy90cnVlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL2NvbnRhaW4nO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcHVyZ2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVtb3ZlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlcGxhY2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvdG8tbGlzdCc7XG5cbi8vIC0tLSBTZXR0aW5ncyAtLS1cbi8vIGltcG9ydCB5b3VyIG93biBgc2V0dGluZ3NgIGhlcmUgb3Jcbi8vIGltcG9ydCBhbmQgbW9kaWZ5IHRoZSBkZWZhdWx0IHNldHRpbmdzIHRocm91Z2hcbi8vIEBpbXBvcnQgJ3NldHRpbmdzL3NldHRpbmdzJztcblxuLy8gLS0tIENvbXBvbmVudHMgLS0tXG4vLyBVdGlsaXRpZXNcbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG4vLyBHbG9iYWwgc3R5bGVzXG5AaW1wb3J0ICdnbG9iYWwnO1xuQGltcG9ydCAnZm9ybXMvZm9ybXMnO1xuQGltcG9ydCAndHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcblxuLy8gR3JpZHNcbkBpbXBvcnQgJ2dyaWQvZ3JpZCc7XG5AaW1wb3J0ICd4eS1ncmlkL3h5LWdyaWQnO1xuLy8gR2VuZXJpYyBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Nsb3NlLWJ1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xhYmVsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2xpZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3dpdGNoJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUnO1xuLy8gQmFzaWMgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhcmQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sdGlwJztcblxuLy8gQ29udGFpbmVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZWRpYS1vYmplY3QnO1xuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Jlc3BvbnNpdmUtZW1iZWQnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGh1bWJuYWlsJztcbi8vIE1lbnUtYmFzZWQgY29udGFpbmVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudS1pY29uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcmlsbGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcblxuLy8gTGF5b3V0IGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb2ZmLWNhbnZhcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3JldmVhbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N0aWNreSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RpdGxlLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RvcC1iYXInO1xuXG4vLyBIZWxwZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL2Zsb2F0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Zpc2liaWxpdHknO1xuQGltcG9ydCAncHJvdG90eXBlL3Byb3RvdHlwZSc7XG5cblxuQG1peGluIGZvdW5kYXRpb24tZXZlcnl0aGluZyhcbiAgJGZsZXg6IHRydWUsXG4gICRwcm90b3R5cGU6IGZhbHNlLFxuICAkeHktZ3JpZDogJHh5LWdyaWRcbikge1xuICBAaWYgJGZsZXgge1xuICAgICRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgQGlmICR4eS1ncmlkIHtcbiAgICAkeHktZ3JpZDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgLy8gR2xvYmFsIHN0eWxlc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcblxuICAvLyBHcmlkc1xuICBAaWYgbm90ICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdyaWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkeHktZ3JpZCB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLXh5LWdyaWQtY2xhc3NlcztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gR2VuZXJpYyBjb21wb25lbnRzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFibGU7XG4gIC8vIEJhc2ljIGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhcmQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuXG4gIC8vIENvbnRhaW5lcnNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG4gIC8vIE1lbnUtYmFzZWQgY29udGFpbmVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudS1pY29uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnU7XG5cbiAgLy8gTGF5b3V0IGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJldmVhbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG5cbiAgLy8gSGVscGVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG4gIEBpZiAkZmxleCB7IEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzOyB9XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuICBAaWYgJHByb3RvdHlwZSB7IEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWNsYXNzZXM7IH1cbn1cbiIsIkBtaXhpbiBmb3VuZGF0aW9uLW5vcm1hbGl6ZSgpIHtcbiAgLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4gIC8vIERvY3VtZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cblxuICBodG1sIHtcbiAgICBsaW5lLWhlaWdodDogMS4xNTsgLy8gMVxuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLy8gMlxuICB9XG5cbiAgLy8gU2VjdGlvbnNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICAvLyBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuXG4gIGgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xuICB9XG5cbiAgLy8gR3JvdXBpbmcgY29udGVudFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gIC8vIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuXG4gIGhyIHtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLy8gMVxuICAgIGhlaWdodDogMDsgLy8gMVxuICAgIG92ZXJmbG93OiB2aXNpYmxlOyAvLyAyXG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgcHJlIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8vIDFcbiAgICBmb250LXNpemU6IDFlbTsgLy8gMlxuICB9XG5cbiAgLy8gVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG5cbiAgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAvLyAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICAvLyAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuXG4gIGFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lOyAvLyAxXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8vIDJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8vIDJcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG5cbiAgYixcbiAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGNvZGUsXG4gIGtiZCxcbiAgc2FtcCB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvLyAxXG4gICAgZm9udC1zaXplOiAxZW07IC8vIDJcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgfVxuXG4gIC8vIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAvLyBhbGwgYnJvd3NlcnMuXG5cbiAgc3ViLFxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICBzdWIge1xuICAgIGJvdHRvbTogLTAuMjVlbTtcbiAgfVxuXG4gIHN1cCB7XG4gICAgdG9wOiAtMC41ZW07XG4gIH1cblxuICAvLyBFbWJlZGRlZCBjb250ZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cblxuICBpbWcge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgfVxuXG4gIC8vIEZvcm1zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cblxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8vIDFcbiAgICBmb250LXNpemU6IDEwMCU7IC8vIDFcbiAgICBsaW5lLWhlaWdodDogMS4xNTsgLy8gMVxuICAgIG1hcmdpbjogMDsgLy8gMlxuICB9XG5cbiAgLy8gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gIC8vIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG5cbiAgYnV0dG9uLFxuICBpbnB1dCB7IC8vIDFcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAvLyAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG5cbiAgYnV0dG9uLFxuICBzZWxlY3QgeyAvLyAxXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuXG4gIGJ1dHRvbixcbiAgW3R5cGU9XCJidXR0b25cIl0sXG4gIFt0eXBlPVwicmVzZXRcIl0sXG4gIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG5cbiAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuXG4gIGJ1dHRvbjotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG5cbiAgZmllbGRzZXQge1xuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gIC8vIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgLy8gMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAvLyAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cblxuICBsZWdlbmQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDFcbiAgICBjb2xvcjogaW5oZXJpdDsgLy8gMlxuICAgIGRpc3BsYXk6IHRhYmxlOyAvLyAxXG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvLyAxXG4gICAgcGFkZGluZzogMDsgLy8gM1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8vIDFcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG5cbiAgcHJvZ3Jlc3Mge1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuXG4gIHRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICAvLyAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG5cbiAgW3R5cGU9XCJjaGVja2JveFwiXSxcbiAgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICAgIHBhZGRpbmc6IDA7IC8vIDJcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cblxuICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cblxuICBbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIDFcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLy8gMlxuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuXG4gIFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAvLyAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG5cbiAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8vIDFcbiAgICBmb250OiBpbmhlcml0OyAvLyAyXG4gIH1cblxuICAvLyBJbnRlcmFjdGl2ZVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG5cbiAgZGV0YWlscyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgc3VtbWFyeSB7XG4gICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICB9XG5cbiAgLy8gTWlzY1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cblxuICB0ZW1wbGF0ZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuXG4gIFtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIG5vLWNvbG9yLWxpdGVyYWxzLCBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4vLy8vXG5cbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG5cbi8vLyBGb250IHNpemUgYXR0cmlidXRlIGFwcGxpZWQgdG8gYDxodG1sPmAgYW5kIGA8Ym9keT5gLiBXZSB1c2UgMTAwJSBieSBkZWZhdWx0IHNvIHRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgdXNlcidzIGJyb3dzZXIgc2V0dGluZ3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB3aWR0aCBvZiB5b3VyIHNpdGUuIFVzZWQgYnkgdGhlIGdyaWQgdG8gZGV0ZXJtaW5lIHJvdyB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDEyMDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgYWxsIHR5cGUuIGAkZ2xvYmFsLWxpbmVoZWlnaHRgIGlzIDI0cHggd2hpbGUgYCRnbG9iYWwtZm9udC1zaXplYCBpcyAxNnB4XG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNSAhZGVmYXVsdDtcblxuLy8vIENvbG9ycyB1c2VkIGZvciBidXR0b25zLCBjYWxsb3V0cywgbGlua3MsIGV0Yy4gVGhlcmUgbXVzdCBhbHdheXMgYmUgYSBjb2xvciBjYWxsZWQgYHByaW1hcnlgLlxuLy8vIEB0eXBlIE1hcFxuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxuICBwcmltYXJ5OiAjMTc3OWJhLFxuICBzZWNvbmRhcnk6ICM3Njc2NzYsXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXG4gIHdhcm5pbmc6ICNmZmFlMDAsXG4gIGFsZXJ0OiAjY2M0YjM3LFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGxpZ2h0IGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsaWdodC1ncmF5OiAjZTZlNmU2ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbWVkaXVtIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRtZWRpdW0tZ3JheTogI2NhY2FjYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGRhcmsgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRhcmstZ3JheTogIzhhOGE4YSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGJsYWNrIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxhY2s6ICMwYTBhMGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciB3aGl0ZSB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHdoaXRlOiAjZmVmZWZlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBMaXN0XG4kYm9keS1mb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLy8gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgYW50aWFsaWFzZWQgdHlwZSwgdXNpbmcgdGhlIGAtd2Via2l0LWZvbnQtc21vb3RoaW5nYCBhbmQgYC1tb3otb3N4LWZvbnQtc21vb3RoaW5nYCBDU1MgcHJvcGVydGllcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBtYXJnaW4gb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBhZGRpbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwb3NpdGlvbmluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wb3NpdGlvbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBub3JtYWwgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBib2xkIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIGEgYm9yZGVyIHJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcmFkaXVzOiAwICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gQ2FuIGJlIG92ZXJ3cml0dGVuIGF0IGluZGl2aWR1YWwgbWVudSBjb21wb25lbnQgbGV2ZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1lbnUtcGFkZGluZzogMC43cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBOZXN0ZWQgbWFyZ2luIGZvciBzdWJtZW51LlxuJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgQ1NTLiBDYW4gYmUgZWl0aGVyIGBsdHJgIG9yIGBydGxgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBmb3IgY29tcG9uZW50cyB0aGF0IHN1cHBvcnQgaXQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlZCByZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBwcm90b3R5cGVzIGlmIGFwcGxpY2FibGVcbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50czogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBCdXR0b24gY3Vyc29yJ3MgdmFsdWUsIGBhdXRvYCBieSBkZWZhdWx0XG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC1idXR0b24tY3Vyc29yOiBhdXRvICFkZWZhdWx0O1xuXG5AaWYgbm90IG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgQGVycm9yICdJbiAkZm91bmRhdGlvbi1wYWxldHRlLCB5b3UgbXVzdCBoYXZlIGEgY29sb3IgbmFtZWQgXCJwcmltYXJ5XCIuJztcbn1cblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIHRleHQgZGlyZWN0aW9uXG4kZ2xvYmFsLWxlZnQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCByaWdodCwgbGVmdCk7XG4kZ2xvYmFsLXJpZ2h0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgbGVmdCwgcmlnaHQpO1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZSB0aGF0IGNvbnRhaW5zIHRoZSBmbGV4IGp1c3RpZnlpbmcgb3B0aW9uc1xuJC16Zi1mbGV4LWp1c3RpZnk6IC16Zi1mbGV4LWp1c3RpZnkoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbik7XG5cbi8vLyBHbG9iYWwgdG9sZXJhbmNlIGZvciBjb2xvciBwaWNrIGNvbnRyYXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMCAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIGNvbG9yc1xuQGluY2x1ZGUgYWRkLWZvdW5kYXRpb24tY29sb3JzO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzIHtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1ub3JtYWxpemU7XG5cbiAgLy8gVGhlc2Ugc3R5bGVzIGFyZSBhcHBsaWVkIHRvIGEgPG1ldGE+IHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0XG4gIC5mb3VuZGF0aW9uLW1xIHtcbiAgICBmb250LWZhbWlseTogJyN7LXpmLWJwLXNlcmlhbGl6ZSgkYnJlYWtwb2ludHMpfSc7XG4gIH1cblxuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gIHNlbGVjdCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIFN0eWxlcyBHb29nbGUgTWFwcyBhbmQgTWFwUXVlc3QgZW1iZWRzIHByb3Blcmx5XG4gIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8taWRzXG4gIC5tYXBfY2FudmFzLFxuICAubXFhLWRpc3BsYXkge1xuICAgIGltZyxcbiAgICBlbWJlZCxcbiAgICBvYmplY3Qge1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGN1cnNvcjogJGdsb2JhbC1idXR0b24tY3Vyc29yO1xuICB9XG5cbiAgLy8gUHJldmVudCB0ZXh0IG92ZXJmbG93IG9uIHByZVxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gTWFrZSByZXNldCBpbmhlcml0IGZvbnQtZmFtaWx5IGluc3RlYWQgb2Ygc2V0dGluZ3Mgc2Fucy1zZXJpZlxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBJbnRlcm5hbCBjbGFzc2VzIHRvIHNob3cvaGlkZSBlbGVtZW50cyBpbiBKYXZhU2NyaXB0XG4gIC5pcy12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmlzLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGFuIGlubmVyIGJveC1zaGFkb3cgZm9yIG9ubHkgb25lIHNpZGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpZGUgLSBTaWRlIHRoZSBzaGFkb3cgaXMgc3VwcG9zZWQgdG8gYXBwZWFyLiBDYW4gYmUgYHRvcGAsIGBsZWZ0YCwgYHJpZ2h0YCBvciBgYm90dG9tYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgLSBXaWR0aCBmb3IgdGhlIHRhcmdldCBzaWRlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIG9mIHRoZSBzaGFkb3cuXG5AbWl4aW4gaW5uZXItc2lkZS1zaGFkb3coXG4gICRzaWRlOiBib3R0b20sXG4gICRzaXplOiAyMHB4LFxuICAkY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KVxuKSB7XG5cbiAgJGhlbHBlcjogcm91bmQoJHNpemUgKiAwLjY1KTtcblxuICBAaWYgKCRzaWRlID09IHRvcCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBsZWZ0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IHJpZ2h0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgKC0xKSokaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gYm90dG9tKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAoLTEpKiRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIENTUyB0cmlhbmdsZSwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRyb3Bkb3duIGFycm93cywgZHJvcGRvd24gcGlwcywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoXG4gICR0cmlhbmdsZS1zaXplLFxuICAkdHJpYW5nbGUtY29sb3IsXG4gICR0cmlhbmdsZS1kaXJlY3Rpb25cbikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcblxuICBib3JkZXI6IGluc2V0ICR0cmlhbmdsZS1zaXplO1xuXG4gIGNvbnRlbnQ6ICcnO1xuXG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBkb3duKSB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdXApIHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgbWVudSBpY29uIHdpdGggYSBzZXQgd2lkdGgsIGhlaWdodCwgbnVtYmVyIG9mIGJhcnMsIGFuZCBjb2xvcnMuIFRoZSBtaXhpbiB1c2VzIHRoZSBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgdGhlIGJhcnMgdG8gZGV0ZXJtaW5lIHNwYWNpbmcuIDxkaXYgY2xhc3M9XCJkb2NzLWV4YW1wbGUtYnVyZ2VyXCI+PC9kaXY+XG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvci1ob3ZlciBbJGRhcmstZ3JheV0gLSBDb2xvciB0byB1c2Ugd2hlbiB0aGUgaWNvbiBpcyBob3ZlcmVkIG92ZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMjBweF0gLSBXaWR0aCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbMTZweF0gLSBIZWlnaHQgb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWzJweF0gLSBIZWlnaHQgb2YgaW5kaXZpZHVhbCBiYXJzIGluIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFycyBbM10gLSBOdW1iZXIgb2YgYmFycyBpbiB0aGUgaWNvbi5cbkBtaXhpbiBoYW1idXJnZXIoXG4gICRjb2xvcjogJGJsYWNrLFxuICAkY29sb3ItaG92ZXI6ICRkYXJrLWdyYXksXG4gICR3aWR0aDogMjBweCxcbiAgJGhlaWdodDogMTZweCxcbiAgJHdlaWdodDogMnB4LFxuICAkYmFyczogM1xuKSB7XG4gIC8vIGJveC1zaGFkb3cgQ1NTIG91dHB1dFxuICAkc2hhZG93OiAoKTtcbiAgJGhvdmVyLXNoYWRvdzogKCk7XG5cbiAgLy8gU3BhY2luZyBiZXR3ZWVuIGJhcnMgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIGVhY2ggYmFyXG4gICRzcGFjaW5nOiAoJGhlaWdodCAtICgkd2VpZ2h0ICogJGJhcnMpKSAvICgkYmFycyAtIDEpO1xuXG4gIEBpZiB1bml0KCRzcGFjaW5nKSA9PSAncHgnIHtcbiAgICAkc3BhY2luZzogZmxvb3IoJHNwYWNpbmcpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAkc2hhZG93OiBhcHBlbmQoJHNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLCBjb21tYSk7XG4gIH1cblxuICAvLyBJY29uIGNvbnRhaW5lclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gSWNvbiBiYXJzXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcblxuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgQGlmICRjb2xvci1ob3ZlciB7XG4gICAgLy8gR2VuZXJhdGUgQ1NTXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICAgJGhvdmVyLXNoYWRvdzogYXBwZW5kKCRob3Zlci1zaGFkb3csIDAgJG9mZnNldCAwICRjb2xvci1ob3ZlciwgY29tbWEpO1xuICAgIH1cblxuICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ob3ZlcjtcbiAgICAgIGJveC1zaGFkb3c6ICRob3Zlci1zaGFkb3c7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGEgZG93bndhcmQtZmFjaW5nIHRyaWFuZ2xlIGFzIGEgYmFja2dyb3VuZCBpbWFnZSB0byBhbiBlbGVtZW50LiBUaGUgaW1hZ2UgaXMgZm9ybWF0dGVkIGFzIGFuIFNWRywgbWFraW5nIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSBjb2xvci4gQmVjYXVzZSBJbnRlcm5ldCBFeHBsb3JlciBkb2Vzbid0IHN1cHBvcnQgZW5jb2RlZCBTVkdzIGFzIGJhY2tncm91bmQgaW1hZ2VzLCBhIFBORyBmYWxsYmFjayBpcyBhbHNvIGluY2x1ZGVkLlxuLy8vIFRoZXJlIGFyZSB0d28gUE5HIGZhbGxiYWNrczogYSBibGFjayB0cmlhbmdsZSBhbmQgYSB3aGl0ZSB0cmlhbmdsZS4gVGhlIG9uZSB1c2VkIGRlcGVuZHMgb24gdGhlIGxpZ2h0bmVzcyBvZiB0aGUgaW5wdXQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSB0cmlhbmdsZS5cbkBtaXhpbiBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRjb2xvcjogJGJsYWNrKSB7XG4gICRyZ2I6ICdyZ2IlMjgje3JvdW5kKHJlZCgkY29sb3IpKX0sICN7cm91bmQoZ3JlZW4oJGNvbG9yKSl9LCAje3JvdW5kKGJsdWUoJGNvbG9yKSl9JTI5JztcblxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6ICN7JHJnYn0nPjwvcG9seWdvbj48L3N2Zz5cIik7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDowXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIC8vIFdoaXRlIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gVGhlIGNsZWFyZml4IGlzIGF1Z21lbnRlZCB3aXRoIHNwZWNpZmljIHN0eWxlcyB0byBwcmV2ZW50IGJvcmRlcnMgaW4gZmxleGJveCBlbnZpcm9ubWVudHNcbi8vLyBAbGluayBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay8gTWljcm8gQ2xlYXJmaXggSGFja1xuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8vIEFkZHMgQ1NTIGZvciBhIFwicXVhbnRpdHkgcXVlcnlcIiBzZWxlY3RvciB0aGF0IGF1dG9tYXRpY2FsbHkgc2l6ZXMgZWxlbWVudHMgYmFzZWQgb24gaG93IG1hbnkgdGhlcmUgYXJlIGluc2lkZSBhIGNvbnRhaW5lci5cbi8vLyBAbGluayBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9xdWFudGl0eS1xdWVyaWVzLWZvci1jc3MgUXVhbnRpdHkgUXVlcmllcyBmb3IgQ1NTXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRldGVjdC4gVGhlIGhpZ2hlciB0aGlzIG51bWJlciBpcywgdGhlIG1vcmUgQ1NTIHRoYXQncyByZXF1aXJlZCB0byBjb3ZlciBlYWNoIG51bWJlciBvZiBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIFtsaV0gLSBUYWcgdG8gdXNlIGZvciBzaWJsaW5nIHNlbGVjdG9ycy5cbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMSAvICRpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgdGhlIGZvY3VzIHJpbmcgYXJvdW5kIGFuIGVsZW1lbnQgd2hlbiBhIG1vdXNlIGlucHV0IGlzIGRldGVjdGVkLlxuQG1peGluIGRpc2FibGUtbW91c2Utb3V0bGluZSB7XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAmIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IHN0aWxsIGFjY2Vzc2libGUgdG8ga2V5Ym9hcmRzIGFuZCBhc3Npc3RpdmUgZGV2aWNlcy5cbi8vLyBAbGluayBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5IEhpZGluZyBDb250ZW50IGZvciBBY2Nlc3NpYmlsaXR5XG4vLy8gQGxpbmsgaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxNi8xMC8xMy9jc3MtaGlkZS1hbmQtc2Vlay9cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGVuZm9yY2UgLSBJZiBgdHJ1ZWAsIHVzZSBgIWltcG9ydGFudGAgb24gYXBwbGllZCBwcm9wZXJ0aWVzXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUoXG4gICRlbmZvcmNlOiB0cnVlXG4pIHtcbiAgJGltcG9ydGFudDogaWYoJGVuZm9yY2UsICchaW1wb3J0YW50JywgbnVsbCk7XG5cbiAgcG9zaXRpb246IGFic29sdXRlICN7JGltcG9ydGFudH07XG4gIHdpZHRoOiAxcHggI3skaW1wb3J0YW50fTtcbiAgaGVpZ2h0OiAxcHggI3skaW1wb3J0YW50fTtcbiAgcGFkZGluZzogMCAjeyRpbXBvcnRhbnR9O1xuICBvdmVyZmxvdzogaGlkZGVuICN7JGltcG9ydGFudH07XG4gIGNsaXA6IHJlY3QoMCwwLDAsMCkgI3skaW1wb3J0YW50fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAjeyRpbXBvcnRhbnR9O1xuICBib3JkZXI6IDAgI3skaW1wb3J0YW50fTtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRlbmZvcmNlIC0gSWYgYHRydWVgLCB1c2UgYCFpbXBvcnRhbnRgIG9uIGFwcGxpZWQgcHJvcGVydGllc1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZihcbiAgJGVuZm9yY2U6IHRydWVcbikge1xuICAkaW1wb3J0YW50OiBpZigkZW5mb3JjZSwgJyFpbXBvcnRhbnQnLCBudWxsKTtcblxuICBwb3NpdGlvbjogc3RhdGljICN7JGltcG9ydGFudH07XG4gIHdpZHRoOiBhdXRvICN7JGltcG9ydGFudH07XG4gIGhlaWdodDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICBvdmVyZmxvdzogdmlzaWJsZSAjeyRpbXBvcnRhbnR9O1xuICBjbGlwOiBhdXRvICN7JGltcG9ydGFudH07XG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgI3skaW1wb3J0YW50fTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gdmVydGljYWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGhvcml6b250YWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuLy8vIEFic29sdXRlbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gYWJzb2x1dGUtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLy8vIEl0ZXJhdGVzIHRocm91Z2ggYnJlYWtwb2ludHMgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnQtY2xhc3Nlc2AgYW5kIHByaW50cyB0aGUgQ1NTIGluc2lkZSB0aGUgbWl4aW4gYXQgZWFjaCBicmVha3BvaW50J3MgbWVkaWEgcXVlcnkuIFVzZSB0aGlzIHdpdGggdGhlIGdyaWQsIG9yIGFueSBvdGhlciBjb21wb25lbnQgdGhhdCBoYXMgcmVzcG9uc2l2ZSBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkc21hbGwgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgc2tpcCB0aGUgYHNtYWxsYCBicmVha3BvaW50LiBVc2UgdGhpcyB3aXRoIGNvbXBvbmVudHMgdGhhdCBkb24ndCBwcmVmaXggY2xhc3NlcyB3aXRoIGBzbWFsbC1gLCBvbmx5IGBtZWRpdW0tYCBhbmQgdXAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgaXRlcmF0ZSBvdmVyIGJyZWFrcG9pbnRzIHdpdGhvdXQgZG9pbmcgdGhlIG1lZGlhIHF1ZXJ5IGl0c2VsZi4gVXNlZnVsIGZvciBtb3JlIGNvbXBsZXggbWVkaWEgcXVlcnkgZ2VuZXJhdGlvbiBhcyBpbiB0aGUgbWFyZ2luIGdyaWQuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludChcbiAgJHNtYWxsOiB0cnVlLFxuICAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHM6IHRydWVcbikge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50LWluKGF1dG8sIC16Zi1ib29sKCRzbWFsbCksIC16Zi1ib29sKCRhdXRvLWluc2VydC1icmVha3BvaW50cykpIHtcbiAgICBAY29udGVudFxuICB9O1xufVxuXG4vLy8gSXRlcmF0ZXMgd2l0aCBgQGNvbnRlbnRgIHRocm91Z2ggdGhlIGdpdmVuIGxpc3Qgb2YgYnJlYWtwb2ludHMgYCRicmVha3BvaW50c2AuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYnJlYWtwb2ludHMgW2F1dG9dIC0gQnJlYWtwb2ludHMgdG8gaXRlcmF0ZXMgb24uIEl0IGNhbiBiZSBhIGJyZWFrcG9pbnQgbmFtZSwgbGlzdCBvZiBicmVha3BvaW50cyBvciBgYXV0b2AgZm9yIGFsbCBicmVha3BvaW50cy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW58TnVsbH0gJHplcm8tYnJlYWtwb2ludCBbbnVsbF0gLSBXaGV0aGVyIHRoZSB6ZXJvLWJyZWFrcG9pbnQgKG9mdGVuIGBzbWFsbGApIG11c3QgYmUgaW5jbHVkZWQuIElmIGB0cnVlYCwgaXQgd2lsbCBhbHdheXMgYmUgYWRkZWQgdG8gdGhlIGxpc3QgaWYgbm90IGFscmVhZHkgdGhlcmUuIElmIGBmYWxzZWAsIGl0IHdpbGwgYWx3YXlzIGJlIHJlbW92ZWQuIERvZXMgbm90aGluZyBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbnxLZXl3b3JkfSAkbWVkaWEtcXVlcmllcyBbdHJ1ZV0gLSBXaGV0aGVyIG1lZGlhLXF1ZXJpZXMgbXVzdCBiZSBnZW5lcmF0ZWQuIElmIGBmb3ItbGlzdHNgLCBvbmx5IGdlbmVyYXRlIG1lZGlhLXF1ZXJpZXMgd2hlbiBgJGJyZWFrcG9pbnRzYCBpcyBhIGxpc3QuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludC1pbihcbiAgJGJyZWFrcG9pbnRzOiBhdXRvLFxuICAkemVyby1icmVha3BvaW50OiBudWxsLFxuICAkbWVkaWEtcXVlcmllczogdHJ1ZVxuKSB7XG4gICQtbGlzdDogKCk7XG4gICQtYnJlYWtwb2ludHMtaXMtYS1saXN0OiB0cnVlO1xuXG4gIC8vIFJldHJpZXZlIHRoZSBsaXN0IG9mIGJyZWFrcG9pbnQocykgdG8gaXRlcmF0ZSBvbi5cbiAgQGlmICRicmVha3BvaW50cyA9PSBhdXRvIHtcbiAgICAkLWxpc3Q6ICRicmVha3BvaW50LWNsYXNzZXM7XG4gIH1cbiAgQGVsc2UgaWYgdHlwZS1vZigkYnJlYWtwb2ludHMpID09ICdsaXN0JyB7XG4gICAgJC1saXN0OiAkYnJlYWtwb2ludHM7XG4gIH1cbiAgQGVsc2UgaWYgdHlwZS1vZigkYnJlYWtwb2ludHMpID09ICdzdHJpbmcnIHtcbiAgICAkLWxpc3Q6ICgkYnJlYWtwb2ludHMpO1xuICAgICQtYnJlYWtwb2ludHMtaXMtYS1saXN0OiBmYWxzZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIFwiJGJyZWFrcG9pbnRzXCIgaW4gXCItemYtZWFjaC1icmVha3BvaW50LWluKClcIi4gR290IFwiI3skYnJlYWtwb2ludHN9XCIgKCN7dHlwZS1vZigkYnJlYWtwb2ludHMpfSkuIEV4cGVjdGVkIGEgYnJlYWtwb2ludCBuYW1lLCBhIGxpc3Qgb2YgYnJlYWtwb2ludHMgb3IgXCJhdXRvXCInO1xuICB9XG5cbiAgLy8gQWRkIG9yIHJlbW92ZSB0aGUgemVybyBicmVha3BvaW50IGFjY29yZGluZyB0byBgJHplcm8tYnJlYWtwb2ludGBcbiAgQGlmICR6ZXJvLWJyZWFrcG9pbnQgPT0gdHJ1ZSB7XG4gICAgJC1saXN0OiBqb2luKCgkLXpmLXplcm8tYnJlYWtwb2ludCksIHNsLXJlbW92ZSgkLWxpc3QsICQtemYtemVyby1icmVha3BvaW50KSk7XG4gIH1cbiAgQGVsc2UgaWYgJHplcm8tYnJlYWtwb2ludCA9PSBmYWxzZSB7XG4gICAgJC1saXN0OiBzbC1yZW1vdmUoJC1saXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCk7XG4gIH1cblxuICAvLyBJdGVyYXRlIG9uIGJyZWFrcG9pbnQocylcbiAgQGVhY2ggJGJwIGluICQtbGlzdCB7XG4gICAgJG9sZC16Zi1zaXplOiBudWxsO1xuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSB7XG4gICAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgICB9XG4gICAgJC16Zi1zaXplOiAkYnAgIWdsb2JhbDtcblxuICAgIEBpZiAoJG1lZGlhLXF1ZXJpZXMgPT0gdHJ1ZVxuICAgICAgb3IgKCRtZWRpYS1xdWVyaWVzID09ICdmb3ItbGlzdHMnIGFuZCAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdCkpIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAkLXpmLXNpemU6ICRvbGQtemYtc2l6ZSAhZ2xvYmFsO1xuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSB0aGUgYEBjb250ZW50YCBwYXNzZWQgdG8gdGhlIG1peGluIHdpdGggYSB2YWx1ZSBgJC16Zi1icC12YWx1ZWAgcmVsYXRlZCB0byBhIGJyZWFrcG9pbnQsIGRlcGVuZGluZyBvbiB0aGUgYCRuYW1lYCBwYXJhbWV0ZXI6XG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxuLy8vIC0gRm9yIGEgYnJlYWtwb2ludCBuYW1lLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAuXG4vLy8gLSBGb3IgXCJhdXRvXCIsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYCBhbmQgaXMgcGFzc2VkIHRvIGBAY29udGVudGAsIHdoaWNoIGlzIG1hZGUgcmVzcG9uc2l2ZSBmb3IgZWFjaCBicmVha3BvaW50IG9mIGAkbWFwYC5cbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUsIGJyZWFrcG9pbnQgbmFtZSwgb3IgbGlzdCBvZiBicmVha3BvaW50IG5hbWVzIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBNYXAgb2YgYnJlYWtwb2ludHMgYW5kIHZhbHVlcyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLlxuQG1peGluIC16Zi1icmVha3BvaW50LXZhbHVlKFxuICAkbmFtZTogYXV0byxcbiAgJG1hcDogbnVsbFxuKSB7XG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAvLyBcImF1dG9cIlxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJHYsICRtYXApIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gYnJlYWtwb2ludCBuYW1lXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcbiAgICAgICRicC12YWx1ZTogLXpmLWdldC1icC12YWwoJG1hcCwgJG5hbWUpO1xuICAgICAgQGlmICRicC12YWx1ZSAhPSBudWxsIHtcbiAgICAgICAgJG5hbWU6ICRicC12YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBicmVha3BvaW50IHZhbHVlXG4gICAgJC16Zi1icC12YWx1ZTogJG5hbWUgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8gaW1wb3J0IHByb2plY3Qgc2V0dGluZ3NcclxuQGltcG9ydCBcInNldHRpbmdzL3NldHRpbmdzLXNrXCI7XHJcblxyXG4vLyBpbXBvcnQgZm91bmRhdGlvblxyXG5AaW1wb3J0ICcuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uc2Nzcyc7XHJcblxyXG4vLyBGb3VuZGF0aW9uIEdsb2JhbCBjb21wb25lbnRzXHJcbi8vIFRPRE86IHVybCBtaXQgZm91bmRhdGlvbiBpbmNsdWRlcyBlaW5mdWVnZW5cclxuQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xyXG5cclxuLmZkLWZvcm1ze1xyXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XHJcbn1cclxuXHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcclxuXHJcblxyXG4vLyBHcmlkcyAoY2hvb3NlIG9uZSlcclxuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLWdyaWQ7IC8vbnVyIHp1IGRlYnVnIHp3ZWNrZW5cclxuXHJcbi8vIEZvdW5kYXRpb24gR2VuZXJpYyBjb21wb25lbnRzXHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cDtcclxuQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XHJcblxyXG4vLyBGb3VuZGF0aW9uIGJhc2ljIGNvbXBvbmVudHNcclxuQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xyXG5cclxuLy8gQ29udGFpbmVyc1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcclxuQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xyXG5cclxuLy8gTWVudS1CYXNlZCBDb250YWluZXJzXHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcclxuQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tc3RpY2t5O1xyXG5cclxuLy8gRm91bmRhdGlvbiBMYXlvdXQgY29tcG9uZW50c1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XHJcblxyXG4vLyBGb3VuZGF0aW9uIEhlbHBlcnNcclxuQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1jbGFzc2VzO1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcclxuXHJcblxyXG4vLyBpbmNsdWRlIGN1c3RvbSBmb2xkZXJzXHJcbkBpbXBvcnQgXCJtaXhpbnMvenJvb3RcIjtcclxuQGltcG9ydCBcImxheW91dHMvbW9kdWxlcy96cm9vdFwiO1xyXG5AaW1wb3J0IFwibGF5b3V0cy96cm9vdFwiO1xyXG5AaW1wb3J0IFwiZ2VuZXJhdGVkL3pyb290XCI7XHJcbkBpbXBvcnQgXCJ2ZW5kb3JzL3pyb290XCI7XHJcblxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEZvbnQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBvZiBwbGFjZWhvbGRlciB0ZXh0IHdpdGhpbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBGb250XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZm9jdXNlZCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZGlzYWJsZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBmb2N1c2VkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMiAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgaW5zaWRlIHRleHQgaW5wdXRzIHdoZW4gbm90IGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IG91dHNpZGUgdGV4dCBpbnB1dHMgd2hlbiBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDdXJzb3IgdG8gdXNlIHdoZW4gaG92ZXJpbmcgb3ZlciBhIGRpc2FibGVkIHRleHQgaW5wdXQuXG4vLy8gQHR5cGUgQ3Vyc29yXG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZCAhZGVmYXVsdDtcblxuLy8vIFByb3BlcnRpZXMgdG8gdHJhbnNpdGlvbiBvbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIHRoZSB1cC9kb3duIGJ1dHRvbnMgdGhhdCBDaHJvbWUgYW5kIEZpcmVmb3ggYWRkIHRvIGA8aW5wdXQgdHlwZT0nbnVtYmVyJz5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBSYWRpdXMgZm9yIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBmb3JtIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWVsZW1lbnQge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqIHVuaXRsZXNzLWNhbGMoJGlucHV0LWxpbmUtaGVpZ2h0KSkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGlucHV0LXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3c7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS10ZXh0IHtcbiAgLy8gVGV4dCBpbnB1dHNcbiAgI3t0ZXh0LWlucHV0cygpfSxcbiAgdGV4dGFyZWEge1xuICAgIEBpbmNsdWRlIGZvcm0tZWxlbWVudDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLy8gVGV4dCBhcmVhc1xuICB0ZXh0YXJlYSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgJltyb3dzXSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgaW5wdXQsXG4gIHRleHRhcmVhIHtcbiAgICAvLyBEaXNhYmxlZC9yZWFkb25seSBzdGF0ZVxuICAgICY6ZGlzYWJsZWQsXG4gICAgJltyZWFkb25seV0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9uIGJ1dHRvbi1saWtlIGlucHV0c1xuICBbdHlwZT0nc3VibWl0J10sXG4gIFt0eXBlPSdidXR0b24nXSB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1idXR0b24tcmFkaXVzO1xuICB9XG5cbiAgLy8gUmVzZXQgTm9ybWFsaXplIHNldHRpbmcgY29udGVudC1ib3ggdG8gc2VhcmNoIGVsZW1lbnRzXG4gIGlucHV0W3R5cGU9J3NlYXJjaCddIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC8vIE51bWJlciBpbnB1dCBzdHlsZXNcbiAgW3R5cGU9J251bWJlciddIHtcbiAgICBAaWYgbm90ICRpbnB1dC1udW1iZXItc3Bpbm5lcnMge1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG5cbiAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUGxhY2Vob2xkZXIgdGV4dFxuICA6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIFRoZSBiYXNlIHZhbHVlIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBgcmVtYC4gSWYgeW91J3JlIHVzaW5nIEZvdW5kYXRpb24gb3V0IG9mIHRoZSBib3gsIHRoaXMgaXMgMTZweC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgYG51bGxgLCB0aGUgZnVuY3Rpb24gd2lsbCByZWZlcmVuY2UgdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUgYXMgdGhlIGJhc2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gQSBsaXN0IG9mIGNvbnZlcnRlZCB2YWx1ZXMuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2U6IG51bGwpIHtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgLy8gVGhpcyBpcyBiZWNhdXNlIDEwMCUgZm9udCBzaXplID0gMTZweCBpbiBtb3N0IGFsbCBicm93c2Vyc1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gVXNpbmcgcmVtIGFzIGJhc2UgYWxsb3dzIGNvcnJlY3Qgc2NhbGluZ1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgJGNvdW50ID09IDEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVtLXZhbHVlcztcbn1cblxuLy8gQ29udmVydHMgYSB1bml0bGVzcywgcGl4ZWwsIG9yIHJlbSB2YWx1ZSB0byBlbSwgZm9yIHVzZSBpbiBicmVha3BvaW50cy5cbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XG4gIC8vIFBpeGVsIGFuZCB1bml0bGVzcyB2YWx1ZXMgYXJlIGNvbnZlcnRlZCB0byByZW1zXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG5cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9ICdudW1iZXInIHtcbiAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkgKyAnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gZW0gaW50byByZW0gaWYgc29tZW9uZSBoYW5kcyBvdmVyICdlbSdzXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2VtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW0gb3IgZW1cbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XG4gIH1cblxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWUgPT0gMHJlbSB7XG4gICAgJHZhbHVlOiAwO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsLCBwZXJjZW50YWdlLCByZW0gb3IgZW0gdmFsdWUgdG8gYSB1bml0bGVzcyB2YWx1ZSBiYXNlZCBvbiBhIGdpdmVuIGZvbnQgc2l6ZS4gSWRlYWwgZm9yIHdvcmtpbmcgb3V0IHVuaXRsZXNzIGxpbmUgaGVpZ2h0cy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBjb252ZXJ0IHRvIGEgdW5pdGxlc3MgbGluZSBoZWlnaHRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgZm9udCBzaXplIHRvIHVzZSB0byB3b3JrIG91dCB0aGUgbGluZSBoZWlnaHQgLSBkZWZhdWx0cyB0byAkZ2xvYmFsLWZvbnQtc2l6ZVxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIFVuaXRsZXNzIG51bWJlclxuQGZ1bmN0aW9uIHVuaXRsZXNzLWNhbGMoJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIEZpcnN0LCBsZXRzIGNvbnZlcnQgb3VyICRiYXNlIHRvIHBpeGVsc1xuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBOb3cgbGV0J3MgY29udmVydCBvdXIgdmFsdWUgdG8gcGl4ZWxzIHRvb1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICclJyB7XG4gICAgJHZhbHVlOiAoJHZhbHVlIC8gMTAwJSkgKiAkYmFzZTtcbiAgfVxuXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICAvLyAncHgnXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyB7XG4gICAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIC8vIGFzc3VtZSB0aGF0IGxpbmUtaGVpZ2h0cyBncmVhdGVyIHRoYW4gMTAgYXJlIG1lYW50IHRvIGJlIGFic29sdXRlIGluICdweCdcbiAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICgkdmFsdWUgPiAxMCkge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWNoZWNrYm94IHtcbiAgW3R5cGU9J2ZpbGUnXSxcbiAgW3R5cGU9J2NoZWNrYm94J10sXG4gIFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dC9sYWJlbCBzaWJsaW5nc1xuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgJltmb3JdIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0cyBpbnNpZGUgbGFiZWxzXG4gIGxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGhcbiAgW3R5cGU9J2ZpbGUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3IgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgZm9ybSBsYWJlbHMuIFRoZSBoaWdoZXIgdGhlIG51bWJlciwgdGhlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGl0cyBpbnB1dCBmaWVsZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjggIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcblxuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvcjtcbn1cblxuQG1peGluIGZvcm0tbGFiZWwtbWlkZGxlIHtcbiAgJGlucHV0LWJvcmRlci13aWR0aDogZ2V0LWJvcmRlci12YWx1ZSgkaW5wdXQtYm9yZGVyLCB3aWR0aCk7XG5cbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyICsgcmVtLWNhbGMoJGlucHV0LWJvcmRlci13aWR0aCkpIDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tbGFiZWwge1xuICBsYWJlbCB7XG4gICAgQGluY2x1ZGUgZm9ybS1sYWJlbDtcblxuICAgICYubWlkZGxlIHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tbGFiZWwtbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWxwdGV4dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzdHlsZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0taGVscHRleHQge1xuICAuaGVscC10ZXh0IHtcbiAgICAkbWFyZ2luLXRvcDogKCRmb3JtLXNwYWNpbmcgKiAwLjUpICogLTE7XG5cbiAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXRvcDtcbiAgICBmb250LXNpemU6ICRoZWxwdGV4dC1mb250LXNpemU7XG4gICAgZm9udC1zdHlsZTogJGhlbHB0ZXh0LWZvbnQtc3R5bGU7XG4gICAgY29sb3I6ICRoZWxwdGV4dC1jb2xvcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExlZnQvcmlnaHQgcGFkZGluZyBvZiBhbiBwcmUvcG9zdGZpeGVkIGlucHV0IGxhYmVsXG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tcHJlcG9zdGZpeCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogJGlucHV0LWxpbmUtaGVpZ2h0KSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgdGFibGUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgICYsICYuaW5wdXQtZ3JvdXAtYnV0dG9uID4gKiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAwICRpbnB1dC1yYWRpdXMgJGlucHV0LXJhZGl1cyAwLCAkaW5wdXQtcmFkaXVzIDAgMCAkaW5wdXQtcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICYsICYuaW5wdXQtZ3JvdXAtYnV0dG9uID4gKiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAkaW5wdXQtcmFkaXVzIDAgMCAkaW5wdXQtcmFkaXVzLCAwICRpbnB1dC1yYWRpdXMgJGlucHV0LXJhZGl1cyAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAlaW5wdXQtZ3JvdXAtY2hpbGQge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nOiAwICRpbnB1dC1wcmVmaXgtcGFkZGluZztcbiAgICBib3JkZXI6ICRpbnB1dC1wcmVmaXgtYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDtcblxuICAgIGNvbG9yOiAkaW5wdXQtcHJlZml4LWNvbG9yO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtcHJlZml4LWJvcmRlcikge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIGEsXG4gICAgaW5wdXQsXG4gICAgYnV0dG9uLFxuICAgIGxhYmVsIHtcbiAgICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuXG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICB9XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNwZWNpZmljaXR5IGJ1bXAgbmVlZGVkIHRvIHByZXZlbnQgb3ZlcnJpZGUgYnkgYnV0dG9uc1xuICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgLmlucHV0LWdyb3VwIHtcbiAgICAgIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBiZXR3ZWVuIHRoZSBsZWdlbmQgdGV4dCBhbmQgZmllbGRzZXQgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpICFkZWZhdWx0O1xuXG5AbWl4aW4gZmllbGRzZXQge1xuICBtYXJnaW46ICRmaWVsZHNldC1tYXJnaW47XG4gIHBhZGRpbmc6ICRmaWVsZHNldC1wYWRkaW5nO1xuICBib3JkZXI6ICRmaWVsZHNldC1ib3JkZXI7XG5cbiAgbGVnZW5kIHtcbiAgICAvLyBDb3ZlcnMgdXAgdGhlIGZpZWxkc2V0J3MgYm9yZGVyIHRvIGNyZWF0ZSBhcnRpZmljaWFsIHBhZGRpbmdcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogcmVtLWNhbGMoLTMpO1xuICAgIHBhZGRpbmc6ICRsZWdlbmQtcGFkZGluZztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcbiAgZmllbGRzZXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAuZmllbGRzZXQge1xuICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZHJvcGRvd24gdHJpYW5nbGUgaW5zaWRlIHNlbGVjdCBtZW51cy4gU2V0IHRvIGB0cmFuc3BhcmVudGAgdG8gcmVtb3ZlIGl0IGVudGlyZWx5LlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXRyaWFuZ2xlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1zZWxlY3Qge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqIHVuaXRsZXNzLWNhbGMoJGlucHV0LWxpbmUtaGVpZ2h0KSkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcblxuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJhY2tncm91bmQ7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiAkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yICE9IHRyYW5zcGFyZW50IHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRzZWxlY3QtdHJpYW5nbGUtY29sb3IpO1xuICAgIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkZ2xvYmFsLXJpZ2h0ICgtJGZvcm0tc3BhY2luZykgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuXG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAoJGZvcm0tc3BhY2luZyAqIDEuNSk7XG4gIH1cblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gSGlkZSB0aGUgZHJvcGRvd24gYXJyb3cgc2hvd24gaW4gbmV3ZXIgSUUgdmVyc2lvbnNcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICZbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxuICAmOm5vdChbbXVsdGlwbGVdKSB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1zZWxlY3Qge1xuICBzZWxlY3Qge1xuICAgIEBpbmNsdWRlIGZvcm0tc2VsZWN0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWJpZGVcbi8vLy9cblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBpbnB1dHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWlucHV0czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBsYWJlbHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWxhYmVsczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgdG8gdXNlIGZvciBpbnZhbGlkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gdXNlIGZvciBsYWJlbHMgb2YgaW52YWxpZCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBvZiBhbiBpbnB1dCBmaWVsZCB0byBoYXZlIGFuIGVycm9yIHN0YXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRhbGVydC1jb2xvcl0gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYWNrZ3JvdW5kLWxpZ2h0ZW4gWzEwJV0gLSBMaWdodG5lc3MgbGV2ZWwgb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcbiAgJGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQsXG4gICRiYWNrZ3JvdW5kLWxpZ2h0ZW46IDEwJVxuKSB7XG4gICY6bm90KDpmb2N1cykge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWl4KCRiYWNrZ3JvdW5kLCAkd2hpdGUsICRiYWNrZ3JvdW5kLWxpZ2h0ZW4pO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBlcnJvciBzdHlsZXMgdG8gYSBmb3JtIGVsZW1lbnQsIHVzaW5nIHRoZSB2YWx1ZXMgaW4gdGhlIHNldHRpbmdzIGZpbGUuXG5AbWl4aW4gZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6ICRmb3JtLXNwYWNpbmcgKiAtMC41O1xuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gIGZvbnQtc2l6ZTogJGlucHV0LWVycm9yLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1mb250LXdlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1lcnJvci1jb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1lcnJvciB7XG4gIEBpZiAkYWJpZGUtaW5wdXRzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgaW52YWxpZCBpbnB1dHNcbiAgICAuaXMtaW52YWxpZC1pbnB1dCB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWlucHV0LWVycm9yO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkYWJpZGUtbGFiZWxzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgbGFiZWxzIG9mIGludmFsaWQgb3V0cHV0c1xuICAgIC5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZvcm0gZXJyb3IgZWxlbWVudFxuICAuZm9ybS1lcnJvciB7XG4gICAgQGluY2x1ZGUgZm9ybS1lcnJvcjtcblxuICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWJhc2Vcbi8vLy9cblxuLy8gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuLy8gVGhlc2UgYXJlIHN0eWxlcyBhcHBsaWVkIHRvIGJhc2ljIEhUTUwgdGFncywgaW5jbHVkaW5nOlxuLy8gICAtIFBhcmFncmFwaHMgPHA+XG4vLyAgIC0gQm9sZC9pdGFsaWNzIDxiPiA8c3Ryb25nPiA8aT4gPGVtPlxuLy8gICAtIFNtYWxsIHRleHQgPHNtYWxsPlxuLy8gICAtIEhlYWRpbmdzIDxoMT4tPGg2PlxuLy8gICAtIEFuY2hvcnMgPGE+XG4vLyAgIC0gRGl2aWRlcnMgPGhyPlxuLy8gICAtIExpc3RzIDx1bD4gPG9sPiA8ZGw+XG4vLyAgIC0gQmxvY2txdW90ZXMgPGJsb2NrcXVvdGU+XG4vLyAgIC0gQ29kZSBibG9ja3MgPGNvZGU+XG4vLyAgIC0gQWJicmV2aWF0aW9ucyA8YWJicj5cbi8vICAgLSBDaXRhdGlvbnMgPGNpdGU+XG4vLyAgIC0gS2V5c3Ryb2tlcyA8a2JkPlxuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGhlYWRlciBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0eWxlIChlLmcuIGl0YWxpY2l6ZWQpIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgdXNlZCBmb3IgZWxlbWVudHMgdGhhdCB1c2UgbW9ub3NwYWNlZCB0eXBlLCBzdWNoIGFzIGNvZGUgc2FtcGxlc1xuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIGZvciBoZWFkaW5ncyBhdCB2YXJpb3VzIHNjcmVlbiBzaXplcy4gRWFjaCBrZXkgaXMgYSBicmVha3BvaW50LCBhbmQgZWFjaCB2YWx1ZSBpcyBhIG1hcCBvZiBoZWFkaW5nIHN0eWxlcy5cbi8vLyBAdHlwZSBNYXBcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAyNCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogNDApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzEpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjUpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuKSAhZGVmYXVsdDtcblxuLy8gJGhlYWRlci1zdHlsZXMgbWFwIGlzIGJ1aWx0IGZyb20gJGhlYWRlci1zaXplcyBpbiBvcmRlciB0byBlbnN1cmUgZG93bndhcmQgY29tcGF0aWJpbGl0eVxuLy8gd2hlbiAkaGVhZGVyLXNpemVzIGlzIGRlcHJlY2lhdGVkLCAkaGVhZGVyLXN0eWxlcyBuZWVkcyB0byBnZXQgIWRlZmF1bHQgdmFsdWVzIGxpa2Ugc2V0dGluZ3Muc2Nzc1xuQGZ1bmN0aW9uIGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpIHtcbiAgQHdhcm4gJ05vdGUsIHRoYXQgJGhlYWRlci1zaXplcyBoYXMgYmVlbiByZXBsYWNlZCB3aXRoICRoZWFkZXItc3R5bGVzLiAkaGVhZGVyLXNpemVzIHN0aWxsIHdvcmtzLCBidXQgaXQgaXMgZ29pbmcgdG8gYmUgZGVwcmVjaWF0ZWQuJztcbiAgJGhlYWRlci1zdHlsZXM6ICgpO1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zaXplcyB7XG4gICAgJGhlYWRlci1tYXA6ICgpO1xuICAgIEBlYWNoICRoZWFkZXIsICRmb250LXNpemUgaW4gJGhlYWRlcnMge1xuICAgICAgJGhlYWRlci1tYXA6IG1hcC1tZXJnZSgkaGVhZGVyLW1hcCwgKCRoZWFkZXI6ICgnZm9udC1zaXplJzogJGZvbnQtc2l6ZSkpKTtcbiAgICB9XG4gICAgJGhlYWRlci1zdHlsZXM6IG1hcC1tZXJnZSgkaGVhZGVyLXN0eWxlcywgKCRzaXplOiAkaGVhZGVyLW1hcCkpO1xuICB9XG4gIEByZXR1cm4gJGhlYWRlci1zdHlsZXM7XG59XG5cbi8vIElmIGl0IGV4aXN0cyAkaGVhZGVycy1zaXplcyBpcyB1c2VkIHRvIGJ1aWxkICRoZWFkZXItc3R5bGVzLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGhlYWRlci1zaXplcykge1xuICAkaGVhZGVyLXN0eWxlczogYnVpbGRfZnJvbV9oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcyk7XG59XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2Qgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBgPHNtYWxsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc21hbGwtZm9udC1zaXplOiA4MCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBgPHNtYWxsPmAgZWxlbWVudHMgd2hlbiBwbGFjZWQgaW5zaWRlIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnNpZGUgYDxwPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBmb3IgcGFyYWdyYXBoIHRleHQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBVc2UgdGhlIGAuY29kZS1pbmxpbmVgIGNvbXBvbmVudCBhcyBkZWZhdWx0IGZvciBgPGNvZGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZW5hYmxlLWNvZGUtaW5saW5lOiB0cnVlO1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBMaXN0XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0byAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XG5cbi8vLyBCdWxsZXQgdHlwZSB0byB1c2UgZm9yIHVub3JkZXJlZCBsaXN0cyAoZS5nLiwgYHNxdWFyZWAsIGBjaXJjbGVgLCBgZGlzY2ApLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYyAhZGVmYXVsdDtcblxuLy8vIFBvc2l0aW9uaW5nIGZvciBidWxsZXRzIG9uIHVub3JkZXJlZCBsaXN0IGl0ZW1zLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBsaXN0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgYSBsaXN0IGluc2lkZSBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBgPGRsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBgPGR0PmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYDxkdD5gIGFuZCBgPGRkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgYDxibG9ja3F1b3RlPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpICFkZWZhdWx0O1xuXG4vLy8gU2lkZSBib3JkZXIgZm9yIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFVzZSB0aGUgYC5jaXRlLWJsb2NrYCBjb21wb25lbnQgYXMgZGVmYXVsdCBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGVuYWJsZS1jaXRlLWJsb2NrOiB0cnVlO1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBib3JkZXIgc3R5bGUgZm9yIGA8YWJicj5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2sgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktYmFzZSB7XG4gIC8vIFR5cG9ncmFwaHkgcmVzZXRzXG4gIGRpdixcbiAgZGwsXG4gIGR0LFxuICBkZCxcbiAgdWwsXG4gIG9sLFxuICBsaSxcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNixcbiAgcHJlLFxuICBmb3JtLFxuICBwLFxuICBibG9ja3F1b3RlLFxuICB0aCxcbiAgdGQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUGFyYWdyYXBoc1xuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcbiAgfVxuXG4gIC8vIEVtcGhhc2l6ZWQgdGV4dFxuICBlbSxcbiAgaSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU3Ryb25nIHRleHRcbiAgc3Ryb25nLFxuICBiIHtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFNtYWxsIHRleHRcbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEhlYWRpbmdzXG4gIGgxLCAuaDEsXG4gIGgyLCAuaDIsXG4gIGgzLCAuaDMsXG4gIGg0LCAuaDQsXG4gIGg1LCAuaDUsXG4gIGg2LCAuaDYge1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcbiAgICBmb250LXdlaWdodDogJGhlYWRlci1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGhlYWRlci1jb2xvcjtcbiAgICB0ZXh0LXJlbmRlcmluZzogJGhlYWRlci10ZXh0LXJlbmRlcmluZztcblxuICAgIHNtYWxsIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgY29sb3I6ICRoZWFkZXItc21hbGwtZm9udC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBIZWFkaW5nIHN0eWxlc1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zdHlsZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRoZWFkZXIsICRoZWFkZXItZGVmcyBpbiAkaGVhZGVycyB7XG4gICAgICAgICRmb250LXNpemUtdGVtcDogMXJlbTtcbiAgICAgICAgI3skaGVhZGVyfSwgLiN7JGhlYWRlcn0ge1xuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmb250LXNpemUpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmcykge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZnMpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxoKSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKCRoZWFkZXItbGluZWhlaWdodCwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtdCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG10KSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1iKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkaGVhZGVyLW1hcmdpbi1ib3R0b20pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIExpbmtzXG4gIGEge1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb247XG5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRhbmNob3ItY29sb3ItaG92ZXI7XG4gICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSG9yaXpvbnRhbCBydWxlXG4gIGhyIHtcbiAgICBjbGVhcjogYm90aDtcblxuICAgIG1heC13aWR0aDogJGhyLXdpZHRoO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46ICRoci1tYXJnaW47XG5cbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBib3JkZXItYm90dG9tOiAkaHItYm9yZGVyO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG5cbiAgLy8gTGlzdHNcbiAgdWwsXG4gIG9sLFxuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGxpc3QtbWFyZ2luLWJvdHRvbTtcbiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcbiAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIExpc3QgaXRlbXNcbiAgbGkge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFVub3JkZXJlZCBsaXN0c1xuICB1bCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gICAgbGlzdC1zdHlsZS10eXBlOiAkbGlzdC1zdHlsZS10eXBlO1xuICB9XG5cbiAgLy8gT3JkZXJlZCBsaXN0c1xuICBvbCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gIH1cblxuICAvLyBOZXN0ZWQgdW5vcmRlcmVkL29yZGVyZWQgbGlzdHNcbiAgdWwsIG9sIHtcbiAgICAmICYge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBEZWZpbml0aW9uIGxpc3RzXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTtcblxuICAgIGR0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b207XG4gICAgICBmb250LXdlaWdodDogJGRlZm5saXN0LXRlcm0td2VpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC8vIEJsb2NrcXVvdGVzXG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcblxuICAgICYsIHAge1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJbmxpbmUgQ2l0YXRpb25zXG4gIEBpZiAoJGVuYWJsZS1jaXRlLWJsb2NrID09IHRydWUpIHtcbiAgICBjaXRlIHtcbiAgICAgIC8vIEV4dGVuZGluZyBhIGNsYXNzIGlzIG5vdCByZWNvbW1lbmRlZC5cbiAgICAgIC8vIFRPRE86IEJyZWFrIHRoZSB0eXBvZ3JhcGh5LWJhc2UvdHlwb2dyYXBoeS1oZWxwZXJzIHNlcGFyYXRpb25cbiAgICAgIEBleHRlbmQgLmNpdGUtYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLy8gQWJicmV2aWF0aW9uc1xuICBhYmJyLCBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFiYnItdW5kZXJsaW5lO1xuICAgIGN1cnNvcjogaGVscDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBGaWd1cmVzXG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gQ29kZVxuICBAaWYgKCRlbmFibGUtY29kZS1pbmxpbmUgPT0gdHJ1ZSkge1xuICAgIGNvZGUge1xuICAgICAgQGV4dGVuZCAuY29kZS1pbmxpbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gS2V5c3Ryb2tlc1xuICBrYmQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAka2V5c3Ryb2tlLXBhZGRpbmc7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka2V5c3Ryb2tlLWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGtleXN0cm9rZS1mb250O1xuICAgIGNvbG9yOiAka2V5c3Ryb2tlLWNvbG9yO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgka2V5c3Ryb2tlLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJGtleXN0cm9rZS1yYWRpdXM7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWtwb2ludHNcbi8vLy9cblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcy5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgSGlEUEkgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMgZm9yIHJlc29sdXRpb25zLlxuLy8vIFZhbHVlcyBtdXN0IHJlcHJlc2VudCB0aGUgZGV2aWNlIHBpeGVscyAvIHdlYiBwaXhlbHMgcmF0aW9uIGFuZCBiZSB1bml0bGVzcyBvciBpbiBEUFBYLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzLWhpZHBpOiAoXG4gIGhpZHBpLTE6IDEsXG4gIGhpZHBpLTEtNTogMS41LFxuICBoaWRwaS0yOiAyLFxuICByZXRpbmE6IDIsXG4gIGhpZHBpLTM6IDNcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGFyZ2VzdCBuYW1lZCBicmVha3BvaW50IGluIHdoaWNoIHRvIGluY2x1ZGUgcHJpbnQgYXMgYSBtZWRpYSB0eXBlXG4vLy8gQHR5cGUgS2V5d29yZFxuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlICFkZWZhdWx0O1xuXG4kLXpmLXplcm8tYnJlYWtwb2ludDogc21hbGwgIWRlZmF1bHQ7XG5cbiQtemYtYnJlYWtwb2ludHMta2V5czogbWFwLXRvLWxpc3QoJGJyZWFrcG9pbnRzLCAna2V5cycpO1xuXG5AaWYgbnRoKG1hcC12YWx1ZXMoJGJyZWFrcG9pbnRzKSwgMSkgIT0gMCB7XG4gIEBlcnJvciAnVGhlIGZpcnN0IGtleSBpbiB0aGUgJGJyZWFrcG9pbnRzIG1hcCBtdXN0IGhhdmUgYSB2YWx1ZSBvZiBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gV2ViIHN0YW5kYXJkIFBpeGVscyBwZXIgaW5jaC4gKDFkZHB4IC8gJHN0ZC13ZWItZHBpKSA9IDFkcGlcbiAgLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtdmFsdWVzLTMvI2Fic29sdXRlLWxlbmd0aHNcbiAgJHN0ZC13ZWItZHBpOiA5NjtcblxuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIG9mIHRoZSBmb2xsb3dpbmcgYnJlYWtwb2ludFxuICAkYnAtbmV4dDogbnVsbDtcbiAgLy8gVmFsdWUgZm9yIG1heC13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1taW46IG51bGw7XG4gIC8vIFZhbHVlIGZvciBtaW4td2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWF4OiBudWxsO1xuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcbiAgLy8gSWYgbmFtZWQsIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnRcbiAgJG5hbWU6IG51bGw7XG4gIC8vIElmIHRoZSBicmVha3BvaW50IGlzIGEgSGlEUEkgYnJlYWtwb2ludFxuICAkaGlkcGk6IGZhbHNlO1xuXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcbiAgfVxuXG4gIC8vIElmIGEgYnJlYWtwb2ludCBuYW1lIGlzIGdpdmVuLCBnZXQgaXRzIHZhbHVlIGZyb20gdGhlICRicmVha3BvaW50cy8kYnJlYWtwb2ludHMtaGlkcGkgbWFwLlxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcbiAgICAgICRuYW1lOiAkYnA7XG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgICAkYnAtbmV4dDogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICAgIH1cbiAgICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMtaGlkcGksICRicCkge1xuICAgICAgJG5hbWU6ICRicDtcbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMtaGlkcGksICRuYW1lKTtcbiAgICAgICRicC1uZXh0OiAtemYtbWFwLW5leHQtbnVtYmVyKCRicmVha3BvaW50cy1oaWRwaSwgJGJwKTtcbiAgICAgICRoaWRwaTogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGJwOiAwO1xuICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogXCIjeyR2YWx9XCIgaXMgbm90IGRlZmluZWQgaW4geW91ciBgJGJyZWFrcG9pbnRzYCBvciBgJGJyZWFrcG9pbnRzLWhpZHBpYCBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgQGlmIG5vdCAkbmFtZSBhbmQgJGRpciA9PSAnb25seScge1xuICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBPbmx5ICdvbmx5JyBhbmQgJ3VwJyBoYXZlIGEgbWluIGxpbWl0LlxuICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAndXAnIHtcbiAgICAkYnAtbWluOiBpZigkaGlkcGksIHN0cmlwLXVuaXQoJGJwKSwgLXpmLWJwLXRvLWVtKCRicCkpO1xuICB9XG4gIC8vIE9ubHkgJ29ubHknIGFuZCAnZG93bicgaGF2ZSBhIG1heCBsaW1pdC5cbiAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBhIHZhbHVlLCB1c2UgaXQgYXMgbWF4IGxpbWl0LlxuICAgIEBpZiBub3QgJG5hbWUge1xuICAgICAgJGJwLW1heDogaWYoJGhpZHBpLCBzdHJpcC11bml0KCRicCksIC16Zi1icC10by1lbSgkYnApKTtcbiAgICB9XG4gICAgLy8gSWYgdGhlIGJyZWFrcG9pbnQgaXMgbmFtZWQsIHRoZSBtYXggbGltaXQgaXMgdGhlIGZvbGxvd2luZyBicmVha3BvaW50IC0gMXB4LlxuICAgIEBlbHNlIGlmICRicC1uZXh0IHtcbiAgICAgIC8vIE1heCB2YWx1ZSBpcyAwLjJweCB1bmRlciB0aGUgbmV4dCBicmVha3BvaW50ICgwLjAyIC8gMTYgPSAwLjAwMTI1KS5cbiAgICAgIC8vIFVzZSBhIHByZWNpc2lvbiB1bmRlciAxcHggdG8gc3VwcG9ydCBicm93c2VyIHpvb20sIGJ1dCBub3QgdG8gbG93IHRvIGF2b2lkIHJvdW5kaW5nLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzExMzEzXG4gICAgICAkYnAtbWF4OiBpZigkaGlkcGksICRicC1uZXh0IC0gKDEvJHN0ZC13ZWItZHBpKSwgLXpmLWJwLXRvLWVtKCRicC1uZXh0KSAtIDAuMDAxMjUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEdlbmVyYXRlIHRoZSBtZWRpYSBxdWVyeSBzdHJpbmcgZnJvbSBtaW4gYW5kIG1heCBsaW1pdHMuXG4gIEBpZiAkaGlkcGkge1xuICAgIC8vIEdlbmVyYXRlIHZhbHVlcyBpbiBEUEkgaW5zdGVhZCBvZiBEUFBYIGZvciBhbiBJRTktMTEvT3BlcmEgbWluaSBjb21wYXRpYmlsaXR5LlxuICAgIC8vIFNlZSBodHRwczovL2Nhbml1c2UuY29tLyNmZWF0PWNzcy1tZWRpYS1yZXNvbHV0aW9uXG4gICAgJGJwLW1pbi1kcGk6IGlmKCRicC1taW4sICRicC1taW4gKiAkc3RkLXdlYi1kcGkgKiAxZHBpLCAkYnAtbWluKTtcbiAgICAkYnAtbWF4LWRwaTogaWYoJGJwLW1heCwgJGJwLW1heCAqICRzdGQtd2ViLWRwaSAqIDFkcGksICRicC1tYXgpO1xuICAgIEByZXR1cm4gemYtc3RyLWpvaW4oXG4gICAgICAtemYtYnAtam9pbigkYnAtbWluLCAkYnAtbWF4LCAnLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvJywgJy13ZWJraXQtbWF4LWRldmljZS1waXhlbC1yYXRpbycpLFxuICAgICAgLXpmLWJwLWpvaW4oJGJwLW1pbi1kcGksICRicC1tYXgtZHBpLCAnbWluLXJlc29sdXRpb24nLCAnbWF4LXJlc29sdXRpb24nKSxcbiAgICAgICcsICcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIC16Zi1icC1qb2luKCRicC1taW4sICRicC1tYXgpO1xuICB9XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgYW5kIGAkYnJlYWtwb2ludHMtaGlkcGlgIG1hcHMsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBJZiBtdWx0aXBsZSB2YWx1ZXMgYXJlIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgZ2VuZXJhdGUgYSBtZWRpYSBxdWVyeSBmb3IgZWFjaCBvZiB0aGVtIGFzIGRlc2NyaWJlZCBhYm92ZS5cbi8vLyBTaW5jZSB0aGUgY29udGVudCBpcyBkdXBsaWNhdGVkIGZvciBlYWNoIGJyZWFrcG9pbnQsIHRoaXMgbWl4aW4gc2hvdWxkIG9ubHkgYmUgdXNlZCB3aXRoIHByb3BlcnRpZXMgdGhhdFxuLy8vIGNoYW5nZSBhY3Jvc3MgYnJlYWtwb2ludHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWVzLi4uIC0gQnJlYWtwb2ludCBuYW1lIG9yIHB4L3JlbS9lbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWVzLi4uKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZXMpIHtcbiAgICAkdmFsdWU6IG50aCgkdmFsdWVzLCAkaSk7XG4gICAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuICAgICRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCBudGgoJHZhbHVlLCAxKSk7XG4gICAgJHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XG4gICAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgICAkZGlyOiBpZihsZW5ndGgoJHZhbHVlKSA+IDEsIG50aCgkdmFsdWUsIDIpLCB1cCk7XG5cbiAgICAkb2xkLXpmLXNpemU6IG51bGw7XG5cbiAgICAvLyBNYWtlIGJyZWFrcG9pbnQgc2l6ZSBhdmFpbGFibGUgYXMgYSB2YXJpYWJsZVxuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSB7XG4gICAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgICB9XG4gICAgJC16Zi1zaXplOiBudGgoJHZhbHVlLCAxKSAhZ2xvYmFsOyAvLyBnZXQgdGhlIGZpcnN0IHZhbHVlIHRvIGFjY291bnQgZm9yIGBvbmx5YCBhbmQgYGRvd25gIGtleXdvcmRzXG5cbiAgICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gICAgQGlmICRzdHIgPT0gJycge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlLCB3cmFwIHRoZSBjb250ZW50IGluIGEgbWVkaWEgcXVlcnlcbiAgICBAZWxzZSB7XG4gICAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICRwcmludC1icmVha3BvaW50LCBhZGQgcHJpbnQgdG8gdGhlIG1lZGlhIHR5cGVzXG4gICAgICAvLyBnZW5lcmF0ZSBwcmludCBpZiB0aGUgYnJlYWtwb2ludCBhZmZlY3RzIHRoZSBwcmludC1icmVha3BvaW50IChvciBzbWFsbGVyKS5cbiAgICAgIC8vIFRoaXMgbWVhbnMgdGhlIGN1cnJlbnQgY29uZGl0aW9uIG9ubHkgbmVlZHMgdG8gYmUgZXh0ZW5kZWQgc28gJ2Rvd24nIGFsd2F5cyBnZW5lcmF0ZXMgcHJpbnQuXG4gICAgICBAaWYgJGJwICE9IG51bGwgYW5kICgkYnAgPD0gJHBicCBvciAkZGlyID09IGRvd24pIHtcbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJC16Zi1zaXplOiAkb2xkLXpmLXNpemUgIWdsb2JhbDtcbiAgfVxufVxuXG4vLy8gQ29udmVydHMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC1zZXJpYWxpemUoJG1hcCkge1xuICAkc3RyOiAnJztcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgLXpmLWJwLXRvLWVtKCR2YWx1ZSkgKyAnJic7XG4gIH1cbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IGtleSBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBhZnRlciBgJGtleWAsIGlmIGAka2V5YCB3YXMgZm91bmQuIElmIGAka2V5YCB3YXMgbm90IGZvdW5kLCBvciBgJGtleWAgd2FzIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XG5cbiAgLy8gU3RvcmUgdGhlIGtleXMgb2YgdGhlIG1hcCBhcyBhIGxpc3RcbiAgJHZhbHVlczogbWFwLWtleXMoJG1hcCk7XG5cbiAgJGk6IDA7XG5cbiAgLy8gSWYgdGhlIEtleSBFeGlzdHMsIEdldCB0aGUgaW5kZXggb2YgdGhlIGtleSB3aXRoaW4gdGhlIG1hcCBhbmQgYWRkIDEgdG8gaXQgZm9yIHRoZSBuZXh0IGJyZWFrcG9pbnQgaW4gdGhlIG1hcFxuICBAaWYgKG1hcC1oYXMta2V5KCRtYXAsICRrZXkpKSB7XG4gICAgJGk6IGluZGV4KCR2YWx1ZXMsICRrZXkpICsgMTtcbiAgfVxuXG4gIC8vIElmIHRoZSBrZXkgZG9lc24ndCBleGlzdCwgb3IgaXQncyB0aGUgbGFzdCBrZXkgaW4gdGhlIG1hcCwgcmV0dXJuIG51bGxcbiAgQGlmICgkaSA+IGxlbmd0aCgkbWFwKSBvciAkaSA9PSAwKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsIG50aCgkdmFsdWVzLCAkaSkpO1xuICB9XG5cbn1cblxuLy8vIEZpbmQgdGhlIG5leHQgbnVtYmVyIGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJG51bWJlciAtIE51bWJlciB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIG51bWJlciBmb2xsb3dpbmcgYCRudW1iZXJgLCBpZiBgJG51bWJlcmAgd2FzIGZvdW5kLiBJZiBgJG51bWJlcmAgd2FzIG5vdCBmb3VuZCwgb3IgYCRudW1iZXJgIHdhcyB0aGUgYmlnZ2VzdCBudW1iZXIgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0LW51bWJlcigkbWFwLCAkbnVtYmVyKSB7XG5cbiAgJG5leHRfbnVtYmVyOiBudWxsO1xuXG4gIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICBAaWYgdHlwZS1vZigkdikgPT0gJ251bWJlcicgYW5kICR2ID4gJG51bWJlciBhbmQgKCRuZXh0X251bWJlciA9PSBudWxsIG9yICR2IDwgJG5leHRfbnVtYmVyKSB7XG4gICAgICAkbmV4dF9udW1iZXI6ICR2O1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG5leHRfbnVtYmVyO1xufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBsYXN0IGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigka2V5KSB7XG4gICRsaXN0OiAoKTtcbiAgJGZvdW5kX2tleTogZmFsc2U7XG5cbiAgQGVhY2ggJG5hbWUgaW4gJC16Zi1icmVha3BvaW50cy1rZXlzIHtcbiAgICBAaWYgKCRuYW1lID09ICRrZXkpIHtcbiAgICAgICRmb3VuZF9rZXk6IHRydWU7XG4gICAgfVxuICAgIEBpZiBub3QgJGZvdW5kX2tleSB7XG4gICAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkbmFtZSk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGxpc3Q7XG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IC0gYSBuYW1lZCBvciBub24tbmFtZWQgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICRsYXN0OiAkLXpmLXplcm8tYnJlYWtwb2ludDtcbiAgJGZvdW5kOiBmYWxzZTtcblxuICAkdmFsdWU6IHVuaXRsZXNzLWNhbGMoJGJyZWFrcG9pbnQsIDFweCk7XG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICBAaWYgdW5pdGxlc3MtY2FsYygkdmFsKSA+ICR2YWx1ZSB7XG4gICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkbGFzdDogJGtleTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRsYXN0O1xufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdCByZWdhcmRsZXNzIG9mIGAkdmFsdWVgLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgaGFzIHRoZSBrZXkgYCR2YWx1ZWAsIHRoZSBleGFjdCBicmVha3BvaW50IHZhbHVlIGlzIHJldHVybmVkLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBSZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBJZiB0aGUgZ2l2ZW4gbWFwIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXRcbiAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJG1hcDtcbiAgfVxuXG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgZ2xvYmFsbHlcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCR2YWx1ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbi8vLyBSZXR1cm4gdGhlIGJlc3QgYnJlYWtwb2ludCB0byB1c2UgYWNjb3JkaW5nIHRvIHRoZSBjYWxsaW5nIGNvbnRleHQuIEl0IHJldHVybnMgaW4gb3JkZXI6XG4vLy8gMS4gdGhlIGdpdmVuIGAkdmFsdWVgIGFyZ3VtZW50IGlmIGl0IGlzIG5vdCBudWxsLlxuLy8vIDIuIHRoZSBnbG9iYWwgYnJlYWtwb2ludCBjb250ZXh0IGAkLXpmLXNpemVgIGlmIGl0IGlzIG5vdCBudWxsIChsaWtlIGlmIGNhbGxlZCBpbnNpZGUgdGhlbiBgYnJlYWtwb2ludCgpYCBtaXhpbilcbi8vLyAzLiB0aGUgZ2l2ZW4gYCRkZWZhdWx0YCBhcmd1bWVudC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIFtudWxsXSAtIEJyZWFrcG9pbnQgdG8gdXNlIGluIHByaW9yaXR5IGlmIG5vbi1udWxsLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRlZmF1bHQgW251bGxdIC0gQnJlYWtwb2ludCB0byB1c2UgYnkgZGVmYXVsdCBpZiBubyBvdGhlciB2YWx1ZSBjYW4gYmUgdXNlZC5cbi8vL1xuLy8vIEByZXR1cm4ge0tleXdvcmR9IFRoZSByZXNvbHZlZCBicmVha3BvaW50LlxuQGZ1bmN0aW9uIC16Zi1jdXJyZW50LWJyZWFrcG9pbnQoJHZhbHVlOiBudWxsLCAkZGVmYXVsdDogbnVsbCkge1xuICBAaWYgKCR2YWx1ZSAhPSBudWxsKSB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgQGVsc2UgaWYgKHZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkgYW5kIHR5cGUtb2YoJC16Zi1zaXplKSAhPSAnbnVtYmVyJykgYW5kICQtemYtc2l6ZSAhPSBudWxsIHtcbiAgICBAcmV0dXJuICQtemYtc2l6ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkZGVmYXVsdDtcbiAgfVxufVxuXG4vLy8gUmV0dXJuIG1lZGlhIHF1ZXJ5IHN0cmluZyBmcm9tIHRoZSBnaXZlbiBtaW4gYW5kL29yIG1heCBsaW1pdHMuXG4vLy8gSWYgYSBsaW1pdCBpcyBlcXVhbCB0byBgbnVsbGAgb3IgYDBgLCBpdCBpcyBpZ25vcmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtaW4gWzBdIC0gTWluIG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IFswXSAtIE1heCBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1pbi1uYW1lIFsnbWluLXdpZHRoJ10gLSBOYW1lIG9mIHRoZSBtaW4gbWVkaWEgcXVlcnkgbGltaXQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkZWxpbWl0ZXIgWydtYXgtd2lkdGgnXSAtIE5hbWUgb2YgdGhlIG1heCBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IE1lZGlhIFF1ZXJ5IHN0cmluZy5cbkBmdW5jdGlvbiAtemYtYnAtam9pbihcbiAgJG1pbjogMCxcbiAgJG1heDogMCxcbiAgJG1pbi1uYW1lOiAnbWluLXdpZHRoJyxcbiAgJG1heC1uYW1lOiAnbWF4LXdpZHRoJ1xuKSB7XG4gIEByZXR1cm4gemYtc3RyLWpvaW4oXG4gICAgaWYoJG1pbiBhbmQgJG1pbiA+IDAsICcoI3skbWluLW5hbWV9OiAjeyRtaW59KScsIG51bGwpLFxuICAgIGlmKCRtYXggYW5kICRtYXggPiAwLCAnKCN7JG1heC1uYW1lfTogI3skbWF4fSknLCBudWxsKSxcbiAgICAnIGFuZCAnKTtcbn1cblxuJHNtYWxsLXVwOiAnJztcbiRzbWFsbC1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuJG1lZGl1bS11cDogJyc7XG4kbWVkaXVtLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBtZWRpdW0pIHtcbiAgJG1lZGl1bS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtKX0nKTtcbiAgJG1lZGl1bS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0gb25seSl9Jyk7XG59XG5cbiRsYXJnZS11cDogJyc7XG4kbGFyZ2Utb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIGxhcmdlKSB7XG4gICRsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2UpfScpO1xuICAkbGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2Ugb25seSl9Jyk7XG59XG5cbiR4bGFyZ2UtdXA6ICcnO1xuJHhsYXJnZS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG4keHhsYXJnZS11cDogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3Igc3RhdGlzdGljIG51bWJlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgYC5jaXRlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIFBzZXVkbyBjb250ZW50IGZvciBgLmNpdGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjaXRlLXBzZXVkby1jb250ZW50OiAnXFwyMDE0IFxcMDAyMCcgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiB0aGUgYC5jb2RlLWlubGluZWAgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgdGhlIGAuY29kZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLWJsb2NrLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gdW5kZXIgdGhlIGAuY29kZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlclxuJGNvZGUtYmxvY2stbWFyZ2luLWJvdHRvbTogMS41cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gY2l0ZS1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogJGNpdGUtY29sb3I7XG4gIGZvbnQtc2l6ZTogJGNpdGUtZm9udC1zaXplO1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkY2l0ZS1wc2V1ZG8tY29udGVudDtcbiAgfVxufVxuXG4vLy8gQWRkIGJhc2ljIHN0eWxlcyBmb3IgYSBjb2RlIGhlbHBlci5cbi8vLyBTZWUgYGNvZGUtaW5saW5lYCBhbmQgYGNvZGUtYmxvY2tgIG1peGlucy5cbkBtaXhpbiBjb2RlLXN0eWxlIHtcbiAgYm9yZGVyOiAkY29kZS1ib3JkZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQ7XG5cbiAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xuICBmb250LXdlaWdodDogJGNvZGUtZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkY29kZS1jb2xvcjtcbn1cblxuLy8vIE1ha2UgY29kZSBoZWxwZXIgZnJvbSB0aGUgYGNvZGUtc3R5bGVgIG1peGluIGlubGluZS5cbi8vLyBVc2VkIHRvIGdlbmVyYXRlIGAuY29kZS1pbmxpbmVgXG5AbWl4aW4gY29kZS1pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuXG4gIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG59XG5cbi8vLyBNYWtlIGNvZGUgaGVscGVyIGZyb20gdGhlIGBjb2RlLXN0eWxlYCBtaXhpbiBhIGJsb2NrLlxuLy8vIFVzZWQgdG8gZ2VuZXJhdGUgYC5jb2RlLWJsb2NrYFxuQG1peGluIGNvZGUtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG5cbiAgcGFkZGluZzogJGNvZGUtYmxvY2stcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogJGNvZGUtYmxvY2stbWFyZ2luLWJvdHRvbTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxuICAvLyBNYWtlIHN1cmUgeW91IHBhaXIgdGhlIHR3byBlbGVtZW50cyBpbiBhIDxoZWFkZXI+IGVsZW1lbnQsIGxpa2UgdGhpczpcbiAgLy8gPGhlYWRlcj5cbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XG4gIC8vICAgPGgyPlN1YmhlYWRpbmc8L2gyPlxuICAvLyA8L2hlYWRlcj5cbiAgLnN1YmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci1tYXJnaW4tdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRzdWJoZWFkZXItY29sb3I7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYW4gaW50cm9kdWN0b3J5IGxlYWQsIGRlY2ssIGJsdXJiLCBldGMuXG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGxlYWQtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhIGxhcmdlIG51bWJlciB0byBkaXNwbGF5IGEgc3RhdGlzdGljXG4gIC5zdGF0IHtcbiAgICBmb250LXNpemU6ICRzdGF0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIHAgKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cbiAgfVxuXG4gIHVsLCBvbCB7XG4gICAgLy8gVXNlIHRvIHJlbW92ZSBudW1iZXJzIGZyb20gb3JkZXJlZCBsaXN0ICYgYnVsbGV0cyBmcm9tIHVub3JkZXJlZCBsaXN0XG4gICAgJi5uby1idWxsZXQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmNpdGUtYmxvY2sge1xuICAgIEBpbmNsdWRlIGNpdGUtYmxvY2s7XG4gIH1cblxuICAuY29kZS1pbmxpbmUge1xuICAgIEBpbmNsdWRlIGNvZGUtc3R5bGU7XG4gICAgQGluY2x1ZGUgY29kZS1pbmxpbmU7XG4gIH1cblxuICAuY29kZS1ibG9jayB7XG4gICAgQGluY2x1ZGUgY29kZS1zdHlsZTtcbiAgICBAaW5jbHVkZSBjb2RlLWJsb2NrO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50IHtcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC50ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBJZiBgdHJ1ZWAsIGFsbCBlbGVtZW50cyB3aWxsIGhhdmUgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMgd2hlbiBwcmludGVkLCB0byBzYXZlIG9uIGluay5cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBkaXNwbGF5cyBuZXh0IHRvIGFsbCBsaW5rcyB0aGVpciBcImhyZWZcIiB3aGVuIHByaW50ZWQuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC1ocmVmczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gc2Fzcy1saW50OmRpc2FibGUtYWxsXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByaW50LXN0eWxlcyB7XG4gIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgKiB7XG4gICAgICAvLyBFbnN1cmUgYSBcImJsYWNrLW9uLXdoaXRlXCIgcHJpbnQgYnkgcmVtb3ZpbmcgYmFja2dyb3VuZHMsXG4gICAgICAvLyB1c2luZyBibGFjayB0ZXh0IGV2ZXJ5d2hlcmUgYW5kIGZvcmNpbmcgdGhlIGJyb3dzZXIgdG8gZWNvbm9taXplIGluay5cbiAgICAgIEBpZiAkcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHMge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgLy8gQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vc1xuICAgICAgICBjb2xvci1hZGp1c3Q6IGVjb25vbXk7XG4gICAgICB9XG4gICAgICAvLyBPdGhlcndpc2UsIHByZXZlbnQgYW55IGVjb25vbXkgYnkgdGhlIGJyb3dzZXIuXG4gICAgICBAZWxzZSB7XG4gICAgICAgIGNvbG9yLWFkanVzdDogZXhhY3Q7XG4gICAgICB9XG5cbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gICAgLy8gRGlzcGxheSB0aGUgVVJMIG9mIGEgbGluayBhZnRlciB0aGUgdGV4dFxuICAgIGEsXG4gICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgIEBpZiAkcHJpbnQtaHJlZnMge1xuICAgICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cihocmVmKSAnKSc7IH1cbiAgICB9XG5cbiAgICAvLyBEb24ndCBkaXNwbGF5IHRoZSBVUkwgZm9yIGltYWdlcyBvciBKYXZhU2NyaXB0L2ludGVybmFsIGxpbmtzXG4gICAgLmlyIGE6YWZ0ZXIsXG4gICAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgICBhW2hyZWZePScjJ106YWZ0ZXIgeyBjb250ZW50OiAnJzsgfVxuXG4gICAgLy8gRGlzcGxheSB3aGF0IGFuIGFiYnJldmlhdGlvbiBzdGFuZHMgZm9yIGFmdGVyIHRoZSB0ZXh0XG4gICAgYWJiclt0aXRsZV06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIodGl0bGUpICcpJzsgfVxuXG4gICAgLy8gUHJldmVudCBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGEgYmxvY2txdW90ZSBvciBwcmVmb3JtYXR0ZWQgdGV4dCBibG9ja1xuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gaDVicC5jb20vdFxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG5cbiAgICB0cixcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgb3JwaGFuczogMztcbiAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICAvLyBBdm9pZCBwYWdlIGJyZWFrcyBhZnRlciBhIGhlYWRpbmdcbiAgICBoMixcbiAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiAgICAvLyBIZWxwZXIgdG8gcmUtYWxsb3cgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBjZXJ0YWluIGVsZW1lbnRzIChlLmcuIHByZSwgYmxvY2txdW90ZSwgdHIpXG4gICAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b25cbi8vLy9cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBidXR0b24gZWxlbWVudHMuXG4vLy8gQHR5cGUgRm9udFxuJGJ1dHRvbi1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBidXR0b24gZWxlbWVudHMuXG4vLy8gSWdub3JlZCBpZiBudWxsIChkZWZhdWx0KVxuLy8vIEB0eXBlIEZvbnQtV2VpZ2h0XG4kYnV0dG9uLWZvbnQtd2VpZ2h0OiBudWxsICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYXJvdW5kIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmaWxsIGZvciBidXR0b25zLiBDYW4gZWl0aGVyIGJlIGBzb2xpZGAgb3IgYGhvbGxvd2AuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGJ1dHRvbi1maWxsOiBzb2xpZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRpdmUgZm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGJ1dHRvbnMsIHRyYW5zcGFyZW50IGJ5IGRlZmF1bHRcbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHdpZHRoIGZvciBob2xsb3cgb3V0bGluZSBidXR0b25zXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gb3BhY2l0eSBmb3IgYSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAtMjAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBob2xsb3cgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzczogLTUwJSAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWw6IGZsaXAgZnJvbSBtYXJnaW4tcmlnaHQgdG8gbWFyZ2luLWxlZnQgZm9yIGRlZmF1bHRzXG5AaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG59XG5cbi8vLyB0cmFuc2l0aW9ucyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLy8gQWRkaXRpb25hbCByZXNwb25zaXZlIGNsYXNzZXMgZm9yIC5leHBhbmRlZFxuLy8vIEB0eXBlIEJvb2xlYW5cbiRidXR0b24tcmVzcG9uc2l2ZS1leHBhbmRlZDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFRPRE86IERvY3VtZW50IGJ1dHRvbi1iYXNlKCkgbWl4aW5cbkBtaXhpbiBidXR0b24tYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuXG4gIEBpZiAodHlwZS1vZigkYnV0dG9uLXBhZGRpbmcpID09ICdtYXAnKSB7XG4gICAgQGVhY2ggJHNpemUsICRwYWRkaW5nIGluICRidXR0b24tcGFkZGluZyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nO1xuICB9XG5cbiAgYm9yZGVyOiAkYnV0dG9uLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gIHRyYW5zaXRpb246ICRidXR0b24tdHJhbnNpdGlvbjtcbiAgZm9udC1mYW1pbHk6ICRidXR0b24tZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcbiAgZm9udC13ZWlnaHQ6ICRidXR0b24tZm9udC13ZWlnaHQ7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vLy8gRXhwYW5kcyBhIGJ1dHRvbiB0byBtYWtlIGl0IGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHRoZSBleHBhbmQgYmVoYXZpb3IuIFNldCB0byBgZmFsc2VgIHRvIHJldmVyc2UgdGhpcyBiZWhhdmlvci5cbkBtaXhpbiBidXR0b24tZXhwYW5kKCRleHBhbmQ6IHRydWUpIHtcbiAgQGlmICRleHBhbmQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGJhc2Ugc3R5bGVzIG9mIGEgaG9sbG93IG9yIGNsZWFyIGJ1dHRvbiBmaWxsaW5nIGFjY29yZGluZyB0byBgJGZpbGxgLlxuLy8vIFNlZSBtaXhpbiBgYnV0dG9uLWZpbGwtc3R5bGVgIGZvciB0aGUgZmlsbGluZyBzdHlsZXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZmlsbCBbJGJ1dHRvbi1maWxsXSAtIFR5cGUgb2YgZmlsbGluZyBiZXR3ZWVuIGBob2xsb3dgIGFuZCBgY2xlYXJgLiBgc29saWRgIGhhcyBubyBlZmZlY3RzLlxuQG1peGluIGJ1dHRvbi1maWxsKFxuICAkZmlsbDogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGlmICRmaWxsID09IGhvbGxvdyB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgfVxuICBAZWxzZSBpZiAkZmlsbCA9PSBjbGVhciB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWNsZWFyO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGVzIG9mIGEgc29saWQvaG9sbG93L2NsZWFyIGJ1dHRvbiBmaWxsaW5nIGFjY29yZGluZyB0byBgJGZpbGxgLlxuLy8vIFNlZSBtaXhpbnMgYGJ1dHRvbi1zdHlsZWAsIGBidXR0b24taG9sbG93LXN0eWxlYCBhbmQgYGJ1dHRvbi1jbGVhci1zdHlsZWAgZm9yIGVmZmVjdHMgb2YgdmlzdWFsIHN0eWxpbmcgcGFyYW1ldGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRmaWxsIFskYnV0dG9uLWZpbGxdIC0gVHlwZSBvZiBmaWxsaW5nIGJldHdlZW4gYGhvbGxvd2AgYW5kIGBjbGVhcmAuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSAtXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSAtXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIC1cbkBtaXhpbiBidXR0b24tZmlsbC1zdHlsZShcbiAgJGZpbGw6ICRidXR0b24tZmlsbCxcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yXG4pIHtcbiAgQGlmICRmaWxsID09IHNvbGlkIHtcbiAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkY29sb3IpO1xuICB9XG4gIEBlbHNlIGlmICRmaWxsID09IGhvbGxvdyB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkYmFja2dyb3VuZCk7XG4gIH1cbiAgQGVsc2UgaWYgJGZpbGwgPT0gY2xlYXIge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1jbGVhci1zdHlsZSgkYmFja2dyb3VuZCk7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIEBpZiAkYmFja2dyb3VuZC1ob3ZlciA9PSBhdXRvIHtcbiAgICAkYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6ICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzcyk7XG4gIH1cblxuICAvLyBEZWZhdWx0IGFuZCBkaXNhYmxlZCBzdGF0ZXNcbiAgJixcbiAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0sXG4gICYuZGlzYWJsZWQ6aG92ZXIsICZbZGlzYWJsZWRdOmhvdmVyLFxuICAmLmRpc2FibGVkOmZvY3VzLCAmW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGJhc2Ugc3R5bGVzIG9mIGEgaG9sbG93IGJ1dHRvbi5cbi8vLyBTZWUgbWl4aW4gYGJ1dHRvbi1ob2xsb3ctc3R5bGVgIGZvciB0aGUgZmlsbGluZyBzdHlsZXMuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdyB7XG4gICYsICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgaG9sbG93IGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tYmFja2dyb3VuZF0gLSBUZXh0IGFuZCBib3JkZXIgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkaG92ZXItbGlnaHRuZXNzIFskYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3NdIC0gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRib3JkZXItd2lkdGggWyRidXR0b24taG9sbG93LWJvcmRlci13aWR0aF0gLSBCb3JkZXIgd2lkdGggb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24taG9sbG93LXN0eWxlKFxuICAkY29sb3I6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzLFxuICAkYm9yZGVyLXdpZHRoOiAkYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGhcbikge1xuICAkY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGhvdmVyLWxpZ2h0bmVzcyk7XG5cbiAgLy8gRGVmYXVsdCBhbmQgZGlzYWJsZWQgc3RhdGVzXG4gICYsXG4gICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdLFxuICAmLmRpc2FibGVkOmhvdmVyLCAmW2Rpc2FibGVkXTpob3ZlcixcbiAgJi5kaXNhYmxlZDpmb2N1cywgJltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkY29sb3I7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGJhc2Ugc3R5bGVzIG9mIGEgY2xlYXIgYnV0dG9uLlxuLy8vIFNlZSBtaXhpbiBgYnV0dG9uLWNsZWFyLXN0eWxlYCBmb3IgdGhlIGZpbGxpbmcgc3R5bGVzLlxuQG1peGluIGJ1dHRvbi1jbGVhciB7XG4gICYsICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGNsZWFyIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tYmFja2dyb3VuZF0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGhvdmVyLWxpZ2h0bmVzcyBbJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzXSAtIENvbG9yIGxpZ2h0bmVzcyBvbiBob3Zlci5cbkBtaXhpbiBidXR0b24tY2xlYXItc3R5bGUoXG4gICRjb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3Ncbikge1xuICAkY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGhvdmVyLWxpZ2h0bmVzcyk7XG5cbiAgLy8gRGVmYXVsdCBhbmQgZGlzYWJsZWQgc3RhdGVzXG4gICYsXG4gICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdLFxuICAmLmRpc2FibGVkOmhvdmVyLCAmW2Rpc2FibGVkXTpob3ZlcixcbiAgJi5kaXNhYmxlZDpmb2N1cywgJltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICB9XG59XG5cbi8vLyBBZGRzIGRpc2FibGVkIHN0eWxlcyB0byBhIGJ1dHRvbiBieSBmYWRpbmcgdGhlIGVsZW1lbnQgYW5kIHJlc2V0aW5nIHRoZSBjdXJzb3IuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcGFjaXR5IFskYnV0dG9uLW9wYWNpdHktZGlzYWJsZWRdIC0gT3BhY2l0eSBvZiB0aGUgZGlzYWJsZWQgYnV0dG9uLlxuQG1peGluIGJ1dHRvbi1kaXNhYmxlZChcbiAgJG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZFxuKSB7XG4gIG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLy8vIEFkZHMgYSBkcm9wZG93biBhcnJvdyB0byBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgWzAuNGVtXSAtIFNpemUgb2YgdGhlIGFycm93LiBXZSByZWNvbW1lbmQgdXNpbmcgYW4gYGVtYCB2YWx1ZSBzbyB0aGUgdHJpYW5nbGUgc2NhbGVzIHdoZW4gdXNlZCBpbnNpZGUgZGlmZmVyZW50IHNpemVzIG9mIGJ1dHRvbnMuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFt3aGl0ZV0gLSBDb2xvciBvZiB0aGUgYXJyb3cuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvZmZzZXQgWyRidXR0b24tcGFkZGluZ10gLSBEaXN0YW5jZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHQgb2YgdGhlIGJ1dHRvbi4gRGVmYXVsdHMgdG8gd2hhdGV2ZXIgdGhlIHJpZ2h0IHBhZGRpbmcgb2YgYSBidXR0b24gaXMuXG5AbWl4aW4gYnV0dG9uLWRyb3Bkb3duKFxuICAkc2l6ZTogMC40ZW0sXG4gICRjb2xvcjogJHdoaXRlLFxuICAkb2Zmc2V0OiBnZXQtc2lkZSgkYnV0dG9uLXBhZGRpbmcsIHJpZ2h0KVxuKSB7XG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHNpemUsICRjb2xvciwgZG93bik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07IC8vIEFsaWducyB0aGUgYXJyb3cgd2l0aCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uXG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1yaWdodH07XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxufVxuXG4vLy8gQWRkcyBhbGwgc3R5bGVzIGZvciBhIGJ1dHRvbi4gRm9yIG1vcmUgZ3JhbnVsYXIgY29udHJvbCBvdmVyIHN0eWxlcywgdXNlIHRoZSBpbmRpdmlkdWFsIGJ1dHRvbiBtaXhpbnMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIG1ha2UgdGhlIGJ1dHRvbiBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHlsZSBbc29saWRdIC0gU2V0IHRvIGBob2xsb3dgIHRvIGNyZWF0ZSBhIGhvbGxvdyBidXR0b24uIFRoZSBjb2xvciBkZWZpbmVkIGluIGAkYmFja2dyb3VuZGAgd2lsbCBiZSB1c2VkIGFzIHRoZSBwcmltYXJ5IGNvbG9yIG9mIHRoZSBidXR0b24uXG5AbWl4aW4gYnV0dG9uKFxuICAkZXhwYW5kOiBmYWxzZSxcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkc3R5bGU6ICRidXR0b24tZmlsbFxuKSB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1iYXNlO1xuICBAaW5jbHVkZSBidXR0b24tZmlsbCgkc3R5bGUpO1xuICBAaW5jbHVkZSBidXR0b24tZmlsbC1zdHlsZSgkc3R5bGUsICRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcblxuICBAaWYgJGV4cGFuZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24ge1xuICAuYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBidXR0b24oJHN0eWxlOiBub25lKTtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0ge1xuICAgICAgICBmb250LXNpemU6ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDsgfVxuXG4gICAgQGlmICRidXR0b24tcmVzcG9uc2l2ZS1leHBhbmRlZCB7XG4gICAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgjeyRzaXplfSBvbmx5KSB7XG4gICAgICAgICAgJi4jeyRzaXplfS1vbmx5LWV4cGFuZGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgjeyRzaXplfSBkb3duKSB7XG4gICAgICAgICAgICAmLiN7JHNpemV9LWRvd24tZXhwYW5kZWQge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoI3skc2l6ZX0pIHtcbiAgICAgICAgICAgICYuI3skc2l6ZX0tZXhwYW5kZWQge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNvbGlkLCBob2xsb3cgJiBjbGVhciBzdHlsZXNcbiAgICBAZWFjaCAkZmlsbGluZyBpbiAoc29saWQgaG9sbG93IGNsZWFyKSB7XG4gICAgICAkc2VsZWN0b3I6IGlmKCRidXR0b24tZmlsbCA9PSAkZmlsbGluZywgbnVsbCwgJy4jeyRmaWxsaW5nfScpO1xuXG4gICAgICAmI3skc2VsZWN0b3J9IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwoJGZpbGxpbmcpO1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZmlsbC1zdHlsZSgkZmlsbGluZyk7XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJGZpbGxpbmcsICRjb2xvciwgYXV0bywgYXV0byk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLy8gRHJvcGRvd24gYXJyb3dcbiAgICAmLmRyb3Bkb3duIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kcm9wZG93bjtcblxuICAgICAgQGlmICRidXR0b24tZmlsbCA9PSBob2xsb3cge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuaG9sbG93LCAmLmNsZWFyIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJ1dHRvbiB3aXRoIGRyb3Bkb3duIGFycm93IG9ubHlcbiAgICAmLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICAgIHRvcDogLTAuMWVtO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIH1cbiAgfVxuXG4gIGEuYnV0dG9uIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b24tZ3JvdXBcbi8vLy9cblxuLy8vIE1hcmdpbiBmb3IgYnV0dG9uIGdyb3Vwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6ICcuYnV0dG9uJyAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gbnVtYmVyIG9mIGJ1dHRvbnMgdGhhdCBjYW4gYmUgaW4gYW4gZXZlbi13aWR0aCBidXR0b24gZ3JvdXAuIChPbmx5IG5lZWRlZCB3aGVuICRnbG9iYWwtZmxleGJveDogZmFsc2U7KVxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDYgIWRlZmF1bHQ7XG5cbi8vLyBEZXRlcm1pbmVzIGlmICRidXR0b24tcmFkaXVzIGlzIGFwcGxpZWQgdG8gZWFjaCBidXR0b24gb3IgdGhlIGJ1dHRvbiBncm91cCBhcyBhIHdob2xlLiBVc2UgJGdsb2JhbC1yYWRpdXMgaW4gX3NldHRpbmdzLnNjc3MgdG8gY2hhbmdlIHJhZGl1cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBBZGQgc3R5bGVzIGZvciBhIGJ1dHRvbiBncm91cCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRjaGlsZC1zZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzcGFjaW5nIFskYnV0dG9uZ3JvdXAtc3BhY2luZ10gLSBTcGFjaW5nIGJldHdlZW4gYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAoXG4gICRjaGlsZC1zZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkc3BhY2luZzogJGJ1dHRvbmdyb3VwLXNwYWNpbmdcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luLWJvdHRvbTogJGJ1dHRvbmdyb3VwLW1hcmdpbjtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgLy8gRGlzYWJsZSBjbGVhcmZpeFxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgZm9udC1zaXplOiAwO1xuICB9XG5cbiAgI3skY2hpbGQtc2VsZWN0b3J9IHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgIH1cblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBNYWtlIGJ1dHRvbnMgYm9uZGVkIHdpdGhvdXQgZ2FwIGJldHdlZW4gdGhlbS4gQm9yZGVycyBiZXR3ZWVuIGJ1dHRvbnMgYXJlIG1lcmdlZFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1uby1nYXBzKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcixcbiAgJGJvcmRlci13aWR0aDogJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoXG4pIHtcbiAgI3skc2VsZWN0b3J9IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogcmVtLWNhbGMoLSRib3JkZXItd2lkdGgpO1xuXG4gICAgKyAjeyRzZWxlY3Rvcn0ge1xuICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC13aWR0aCBidXR0b24gZ3JvdXAsIG1ha2luZyBlYWNoIGJ1dHRvbiBlcXVhbCB3aWR0aC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1leHBhbmQoXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkc3BhY2luZzogJGJ1dHRvbmdyb3VwLXNwYWNpbmcsXG4gICRjb3VudDogbnVsbFxuKSB7XG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogLSRzcGFjaW5nO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IC8vIERpc2FibGUgY2xlYXJmaXhcbiAgICB9XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gT25lIGNoaWxkXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gI3skc3BhY2luZ30pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFR3byBvciBtb3JlIGNoaWxkcmVlblxuICAgICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYnV0dG9uZ3JvdXAtZXhwYW5kLW1heCB7XG4gICAgICAgICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAmLCAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB+ICN7JHNlbGVjdG9yfSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygje3BlcmNlbnRhZ2UoMSAvICRpKX0gLSAjeyRzcGFjaW5nfSk7XG4gICAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZyAqIC0kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1zdGFjayhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBVbi1zdGFja3MgdGhlIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgdGhlIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtdW5zdGFjayhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cCB7XG4gIC5idXR0b24tZ3JvdXAge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cDtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBHcm91cFxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLWV4cGFuZDtcbiAgICB9XG5cbiAgICAvLyBTb2xpZCwgaG9sbG93ICYgY2xlYXIgc3R5bGVzXG4gICAgQGVhY2ggJGZpbGxpbmcgaW4gKHNvbGlkIGhvbGxvdyBjbGVhcikge1xuICAgICAgJGJhc2Utc2VsZWN0b3I6IGlmKCRidXR0b24tZmlsbCA9PSAkZmlsbGluZywgbnVsbCwgJy4jeyRmaWxsaW5nfScpO1xuXG4gICAgICAmI3skYmFzZS1zZWxlY3Rvcn0ge1xuICAgICAgICAvLyBEbyBub3QgZ2VuZXJhdGUgYnV0dG9uIGJhc2Ugc3R5bGVzIGZvciB0aGUgZGVmYXVsdCBmaWxsaW5nXG4gICAgICAgIEBpZigkYnV0dG9uLWZpbGwgIT0gJGZpbGxpbmcpIHtcbiAgICAgICAgICAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwoJGZpbGxpbmcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJGZpbGxpbmcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAkaW5kaXZpZHVhbC1zZWxlY3RvcjogaWYoJGJ1dHRvbi1maWxsID09ICRmaWxsaW5nLCBudWxsLCAnICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfS4jeyRuYW1lfScpO1xuXG4gICAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0sICN7JGluZGl2aWR1YWwtc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1maWxsLXN0eWxlKCRmaWxsaW5nLCAkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gICAgJi5uby1nYXBzIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1uby1nYXBzO1xuICAgIH1cblxuICAgICYuc3RhY2tlZCxcbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsLFxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdGFjaztcblxuICAgICAgJi5leHBhbmRlZCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1leHBhbmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtdW5zdGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bS5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjbG9zZS1idXR0b25cbi8vLy9cblxuLy8vIERlZmF1bHQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi4gVGhlIGZpcnN0IHZhbHVlIHNob3VsZCBiZSBgcmlnaHRgIG9yIGBsZWZ0YCwgYW5kIHRoZSBzZWNvbmQgdmFsdWUgc2hvdWxkIGJlIGB0b3BgIG9yIGBib3R0b21gLlxuLy8vIEB0eXBlIExpc3RcbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB6LWluZGV4IGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi16LWluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8vIEJ1dHRvbiBzaXplIHRvIHVzZSBhcyBkZWZhdWx0XG4vLy8gQHR5cGUgU3RyaW5nXG4vLy8gQHNlZSAkY2xvc2VidXR0b24tc2l6ZVxuLy8vIEBzZWUgJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsXG4vLy8gQHNlZSAkY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsXG4kY2xvc2VidXR0b24tZGVmYXVsdC1zaXplOiBtZWRpdW0gIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCAob3IgbGVmdCkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IChcbiAgc21hbGw6IDAuNjZyZW0sXG4gIG1lZGl1bTogMXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUb3AgKG9yIGJvdHRvbSkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAoXG4gIHNtYWxsOiAwLjMzZW0sXG4gIG1lZGl1bTogMC41cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFNpemUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi4gVXNlZCB0byBnZW5lcmF0ZSBzaXppbmcgbW9kaWZpZXJzLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1zaXplOiAoXG4gIHNtYWxsOiAxLjVlbSxcbiAgbWVkaXVtOiAyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBjbG9zZSBidXR0b24uIEl0IGFmZmVjdHMgdGhlIHNwYWNpbmcgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uIHdoZW4gYmVpbmcgaG92ZXJlZCBvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2sgIWRlZmF1bHQ7XG5cblxuLy8vIEdldCB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gZm9yIGEgY2xvc2UgYnV0dG9uLiBJZiB0aGUgaW5wdXQgdmFsdWUgaXMgYSBudW1iZXIsIHRoZSBudW1iZXIgaXMgcmV0dXJuZWQuIElmIHRoZSBpbnB1dCB2YWx1ZSBpcyBhIGNvbmZpZyBtYXAgYW5kIHRoZSBtYXAgaGFzIHRoZSBrZXkgYCRzaXplYCwgdGhlIHZhbHVlIGlzIHJldHVybmVkLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkdmFsdWUgLSBBIG51bWJlciBvciBtYXAgdGhhdCByZXByZXNlbnRzIHRoZSBzaXplIG9yIHBvc2l0aW9uIHZhbHVlKHMpIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIFRoZSBzaXplIG9mIHRoZSBjbG9zZSBidXR0b24gdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSBUaGUgZ2l2ZW4gbnVtYmVyIG9yIHRoZSB2YWx1ZSBmb3VuZCBpbiB0aGUgbWFwLlxuQGZ1bmN0aW9uIC16Zi1nZXQtc2l6ZS12YWwoJHZhbHVlLCAkc2l6ZSkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgLy8gSWYgaXQgaXMsIGp1c3QgcmV0dXJuIHRoZSBudW1iZXJcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBzaXplIG5hbWUgZXhpc3RzIGluIHRoZSB2YWx1ZSBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJHZhbHVlLCAkc2l6ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJHZhbHVlLCAkc2l6ZSk7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgW21lZGl1bV0gLSBUaGUgc2l6ZSB0byB1c2UuIFNldCB0byBgc21hbGxgIHRvIGNyZWF0ZSBhIHNtYWxsIGNsb3NlIGJ1dHRvbi4gVGhlICdtZWRpdW0nIHZhbHVlcyBkZWZpbmVkIGluIGAkY2xvc2VidXR0b24tKmAgdmFyaWFibGVzIHdpbGwgYmUgdXNlZCBhcyB0aGUgZGVmYXVsdCBzaXplIGFuZCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuQG1peGluIGNsb3NlLWJ1dHRvbi1zaXplKCRzaXplKSB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gICN7JHh9OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbCwgJHNpemUpO1xuICAjeyR5fTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsLCAkc2l6ZSk7XG4gIGZvbnQtc2l6ZTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tc2l6ZSwgJHNpemUpO1xuICBsaW5lLWhlaWdodDogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tbGluZWhlaWdodCwgJHNpemUpO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2xvc2UgYnV0dG9uLCB1c2luZyB0aGUgc3R5bGVzIGluIHRoZSBzZXR0aW5ncyB2YXJpYWJsZXMuXG5AbWl4aW4gY2xvc2UtYnV0dG9uIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6ICRjbG9zZWJ1dHRvbi16LWluZGV4O1xuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jbG9zZS1idXR0b24ge1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBjbG9zZS1idXR0b247XG5cbiAgICAvLyBHZW5lcmF0ZSBhIHBsYWNlaG9sZGVyIGFuZCBhIGNsYXNzIGZvciBlYWNoIHNpemVcbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJGNsb3NlYnV0dG9uLXNpemUge1xuICAgICAgQGF0LXJvb3Qge1xuICAgICAgICAlemYtY2xvc2UtYnV0dG9uLS0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgY2xvc2UtYnV0dG9uLXNpemUoJG5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBAZXh0ZW5kICV6Zi1jbG9zZS1idXR0b24tLSN7JG5hbWV9O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVzZSBieSBkZWZhdWx0IHRoZSBwbGFjZWhvbGRlciBvZiB0aGUgZGVmYXVsdCBzaXplXG4gICAgQGV4dGVuZCAlemYtY2xvc2UtYnV0dG9uLS0jeyRjbG9zZWJ1dHRvbi1kZWZhdWx0LXNpemV9O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbGFiZWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGUgdGV4dCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRsYWJlbC1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgb2YgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYmFzZSBzdHlsZXMgZm9yIGEgbGFiZWwuXG5AbWl4aW4gbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6ICRsYWJlbC1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6ICRsYWJlbC1yYWRpdXM7XG5cbiAgZm9udC1zaXplOiAkbGFiZWwtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1sYWJlbCB7XG4gIC5sYWJlbCB7XG4gICAgQGluY2x1ZGUgbGFiZWw7XG5cbiAgICBiYWNrZ3JvdW5kOiAkbGFiZWwtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkbGFiZWwtcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkY29sb3IsICgkbGFiZWwtY29sb3IsICRsYWJlbC1jb2xvci1hbHQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0b29sdGlwXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGN1cnNvciBvZiB0aGUgZGVmaW5lZCB0ZXJtLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRoYXMtdGlwLWN1cnNvcjogaGVscCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kaGFzLXRpcC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGJvdHRvbSBvZiB0aGUgZGVmaW5lZCB0ZXJtLlxuLy8vIEB0eXBlIExpc3RcbiRoYXMtdGlwLWJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIHRvb2x0aXAgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgdG9vbHRpcCBmb250LlxuLy8vIEB0eXBlIENvbG9yXG4kdG9vbHRpcC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1wYWRkaW5nOiAwLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXggd2lkdGggZm9yIHRvb2x0aXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtbWF4LXdpZHRoOiAxMHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIG9mIHRoZSB0b29sdGlwIHRleHQuIEJ5IGRlZmF1bHQsIHdlIHJlY29tbWVuZCBhIHNtYWxsZXIgZm9udCBzaXplIHRoYW4gdGhlIGJvZHkgY29weS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLWZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIHdpZHRoIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIGhlaWdodCBmb3IgdG9vbHRpcHMuIFRoaXMgaXMgaGVscGZ1bCBmb3IgY2FsY3VsYXRpbmcgdGhlIGRpc3RhbmNlIG9mIHRoZSB0b29sdGlwIGZyb20gdGhlIHRvb2x0aXAgd29yZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHRvb2x0aXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGhhcy10aXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBib3JkZXItYm90dG9tOiAkaGFzLXRpcC1ib3JkZXItYm90dG9tO1xuICBmb250LXdlaWdodDogJGhhcy10aXAtZm9udC13ZWlnaHQ7XG4gIGN1cnNvcjogJGhhcy10aXAtY3Vyc29yO1xufVxuXG5AbWl4aW4gdG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyAjeyR0b29sdGlwLXBpcC1oZWlnaHR9KTtcbiAgei1pbmRleDogMTIwMDtcblxuICBtYXgtd2lkdGg6ICR0b29sdGlwLW1heC13aWR0aDtcbiAgcGFkZGluZzogJHRvb2x0aXAtcGFkZGluZztcblxuICBib3JkZXItcmFkaXVzOiAkdG9vbHRpcC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0b29sdGlwLWJhY2tncm91bmQtY29sb3I7XG4gIGZvbnQtc2l6ZTogJHRvb2x0aXAtZm9udC1zaXplO1xuICBjb2xvcjogJHRvb2x0aXAtY29sb3I7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAmLmJvdHRvbSB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIHVwKTtcbiAgICAgIGJvdHRvbTogMTAwJTtcbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB9XG4gIH1cblxuICAmLnRvcCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGRvd24pO1xuICAgICAgdG9wOiAxMDAlO1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIH1cbiAgfVxuXG4gICYubGVmdCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIHJpZ2h0KTtcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgfVxuXG4gICAgJi5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB9XG4gIH1cblxuICAmLnJpZ2h0IHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgbGVmdCk7XG4gICAgICByaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuXG4gICAgJi5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB9XG4gIH1cblxuICAmLmFsaWduLXRvcDo6YmVmb3JlIHtcbiAgICBib3R0b206IGF1dG87XG4gICAgdG9wOiAxMCU7XG4gIH1cblxuICAmLmFsaWduLWJvdHRvbTo6YmVmb3JlIHtcbiAgICBib3R0b206IDEwJTtcbiAgICB0b3A6IGF1dG87XG4gIH1cblxuICAmLmFsaWduLWxlZnQ6OmJlZm9yZSB7XG4gICAgbGVmdDogMTAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgJi5hbGlnbi1yaWdodDo6YmVmb3JlIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAxMCU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9vbHRpcCB7XG4gIC5oYXMtdGlwIHtcbiAgICBAaW5jbHVkZSBoYXMtdGlwO1xuICB9XG5cbiAgLnRvb2x0aXAge1xuICAgIEBpbmNsdWRlIHRvb2x0aXA7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhY2NvcmRpb25cbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY2NvcmRpb24gZ3JvdXAuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIHBsdXMgYW5kIG1pbnVzIGljb25zIHRvIHRoZSBzaWRlIG9mIGVhY2ggYWNjb3JkaW9uIHRpdGxlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQ29udGVudCBmb3IgdGhlIHBsdXMgaWNvbiB3aGVuIGAkYWNjb3JkaW9uLXBsdXNtaW51c2AgaXMgYHRydWVgXG4vLy8gQHR5cGUgU3RyaW5nXG4kYWNjb3JkaW9uLXBsdXMtY29udGVudDogJ1xcMDAyQicgIWRlZmF1bHQ7XG5cbi8vLyBDb250ZW50IGZvciB0aGUgbWludXMgaWNvbiB3aGVuIGAkYWNjb3JkaW9uLXBsdXNtaW51c2AgaXMgYHRydWVgXG4vLy8gQHR5cGUgU3RyaW5nXG4kYWNjb3JkaW9uLW1pbnVzLWNvbnRlbnQ6ICdcXDIwMTMnICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGFjY29yZGlvbiB0aXRsZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGFuIGFjY29yZGlvbiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGFjY29yZGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIHNhbWUgZWxlbWVudCB0aGF0IGdldHMgYGRhdGEtYWNjb3JkaW9uYC5cbkBtaXhpbiBhY2NvcmRpb24tY29udGFpbmVyIChcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tYmFja2dyb3VuZFxuKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIC5hY2NvcmRpb24tdGl0bGUge1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpc3QgaXRlbSB3aXRoaW4gYW4gYWNjb3JkaW9uIHVsLlxuQG1peGluIGFjY29yZGlvbi1pdGVtIHtcbiAgJjpmaXJzdC1jaGlsZCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXMgMCAwO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkID4gOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSB0aXRsZSBvZiBhbiBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGluayB3aXRoaW4gYW4gYWNjb3JkaW9uIGl0ZW0uXG5AbWl4aW4gYWNjb3JkaW9uLXRpdGxlIChcbiAgJHBhZGRpbmc6ICRhY2NvcmRpb24taXRlbS1wYWRkaW5nLFxuICAkZm9udC1zaXplOiAkYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWl0ZW0tY29sb3IsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlclxuKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcblxuICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gIDpsYXN0LWNoaWxkOm5vdCguaXMtYWN0aXZlKSA+ICYge1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gIH1cblxuICBAaWYgJGFjY29yZGlvbi1wbHVzbWludXMge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgICAgY29udGVudDogJGFjY29yZGlvbi1wbHVzLWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLmlzLWFjdGl2ZSA+ICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAkYWNjb3JkaW9uLW1pbnVzLWNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYWNjb3JkaW9uIGNvbnRlbnQuIEFwcGx5IHRoaXMgdG8gdGhlIGNvbnRlbnQgcGFuZSBiZWxvdyBhbiBhY2NvcmRpb24gaXRlbSdzIHRpdGxlLlxuQG1peGluIGFjY29yZGlvbi1jb250ZW50IChcbiAgJHBhZGRpbmc6ICRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nLFxuICAkYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyLFxuICAkYmFja2dyb3VuZDogJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQsXG4gICRjb2xvcjogJGFjY29yZGlvbi1jb250ZW50LWNvbG9yXG4pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICBjb2xvcjogJGNvbG9yO1xuXG4gIDpsYXN0LWNoaWxkID4gJjpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWFjY29yZGlvbiB7XG4gIC5hY2NvcmRpb24ge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250YWluZXI7XG4gIH1cblxuICAuYWNjb3JkaW9uLWl0ZW0ge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1pdGVtO1xuICB9XG5cbiAgLmFjY29yZGlvbi10aXRsZSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLXRpdGxlO1xuICB9XG5cbiAgLmFjY29yZGlvbi1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJlc3BvbnNpdmUtZW1iZWRcbi8vLy9cblxuLy8vIE1hcmdpbiBiZWxvdyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gQXNwZWN0IHJhdGlvcyB1c2VkIHRvIGRldGVybWluZSBwYWRkaW5nLWJvdHRvbSBvZiByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lcnMuXG4vLy8gQHR5cGUgTWFwXG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcbiAgZGVmYXVsdDogNCBieSAzLFxuICB3aWRlc2NyZWVuOiAxNiBieSA5LFxuKSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ3xMaXN0fSAkcmF0aW8gW2RlZmF1bHRdIC0gUmF0aW8gb2YgdGhlIGNvbnRhaW5lci4gQ2FuIGJlIGEga2V5IGZyb20gdGhlIGAkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3NgIG1hcCBvciBhIGxpc3QgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuQG1peGluIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KSB7XG4gIEBpZiB0eXBlLW9mKCRyYXRpbykgPT0gJ3N0cmluZycge1xuICAgICRyYXRpbzogbWFwLWdldCgkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3MsICRyYXRpbyk7XG4gIH1cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b207XG4gIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgaWZyYW1lLFxuICBvYmplY3QsXG4gIGVtYmVkLFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQge1xuICAucmVzcG9uc2l2ZS1lbWJlZCxcbiAgLmZsZXgtdmlkZW8ge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KTtcblxuICAgICRyYXRpb3M6IG1hcC1yZW1vdmUoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLGRlZmF1bHQpO1xuXG4gICAgQGVhY2ggJG5hbWUsICRyYXRpbyBpbiAkcmF0aW9zIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gRmluZHMgdGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yIG9mIHR3byBpbnRlZ2Vycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYSAtIEZpcnN0IG51bWJlciB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYiAtIFNlY29uZCBudW1iZXIgdG8gY29tcGFyZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvci5cbkBmdW5jdGlvbiBnY2QoJGEsICRiKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9HcmVhdGVzdF9jb21tb25fZGl2aXNvciNKYXZhU2NyaXB0XG4gIEBpZiAoJGIgIT0gMCkge1xuICAgIEByZXR1cm4gZ2NkKCRiLCAkYSAlICRiKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBhYnMoJGEpO1xuICB9XG59XG5cbi8vLyBIYW5kbGVzIGRlY2ltYWwgZXhwb25lbnRzIGJ5IHRyeWluZyB0byBjb252ZXJ0IHRoZW0gaW50byBhIGZyYWN0aW9uIGFuZCB0aGVuIHVzZSBhIG50aC1yb290LWFsZ29yaXRobSBmb3IgcGFydHMgb2YgdGhlIGNhbGN1bGF0aW9uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgYmFzZSBudW1iZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRleHBvbmVudCAtIFRoZSBleHBvbmVudC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBwcm9kdWN0IG9mIHRoZSBleHBvbmVudGlhdGlvbi5cbkBmdW5jdGlvbiBwb3coJGJhc2UsICRleHBvbmVudCwgJHByZWM6IDE2KSB7XG4gIEBpZiAoZmxvb3IoJGV4cG9uZW50KSAhPSAkZXhwb25lbnQpIHtcbiAgICAkcHJlYzIgOiBwb3coMTAsICRwcmVjKTtcbiAgICAkZXhwb25lbnQ6IHJvdW5kKCRleHBvbmVudCAqICRwcmVjMik7XG4gICAgJGRlbm9taW5hdG9yOiBnY2QoJGV4cG9uZW50LCAkcHJlYzIpO1xuICAgIEByZXR1cm4gbnRoLXJvb3QocG93KCRiYXNlLCAkZXhwb25lbnQgLyAkZGVub21pbmF0b3IpLCAkcHJlYzIgLyAkZGVub21pbmF0b3IsICRwcmVjKTtcbiAgfVxuXG4gICR2YWx1ZTogJGJhc2U7XG4gIEBpZiAkZXhwb25lbnQgPiAxIHtcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRleHBvbmVudCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAqICRiYXNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZXhwb25lbnQgPCAxIHtcbiAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoIC0kZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgLyAkYmFzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuQGZ1bmN0aW9uIG50aC1yb290KCRudW0sICRuOiAyLCAkcHJlYzogMTIpIHtcbiAgLy8gRnJvbTogaHR0cDovL3Jvc2V0dGFjb2RlLm9yZy93aWtpL050aF9yb290I0phdmFTY3JpcHRcbiAgJHg6IDE7XG5cbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkcHJlYyB7XG4gICAgJHg6IDEgLyAkbiAqICgoJG4gLSAxKSAqICR4ICsgKCRudW0gLyBwb3coJHgsICRuIC0gMSkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHg7XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBoZWlnaHQgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSB3aWR0aCBmb3IgYSBnaXZlbiByYXRpby5cbi8vLyBAcGFyYW0ge0xpc3R9ICRyYXRpbyAtIFJhdGlvIHRvIHVzZSB0byBjYWxjdWxhdGUgdGhlIGhlaWdodCwgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuLy8vIEByZXR1cm4ge051bWJlcn0gQSBwZXJjZW50YWdlIHZhbHVlIGZvciB0aGUgaGVpZ2h0IHJlbGF0aXZlIHRvIHRoZSB3aWR0aCBvZiBhIHJlc3BvbnNpdmUgY29udGFpbmVyLlxuQGZ1bmN0aW9uIHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKSB7XG4gICR3OiBudGgoJHJhdGlvLCAxKTtcbiAgJGg6IG50aCgkcmF0aW8sIDMpO1xuICBAcmV0dXJuICRoIC8gJHcgKiAxMDAlO1xufVxuXG4vLy8gUGFyc2UgdGhlIGdpdmVuIGAkZnJhY3Rpb25gIHRvIG51bWVyYXRvcnMgYW5kIGRlbnVtZXJhdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJGZyYWN0aW9uIC0gVmFsdWUgcmVwcmVzZW50aW5nIGEgZnJhY3Rpb24gdG8gcGFyc2UuIEl0IGNhbiBiZSBmb3JtYXR0ZWQgYXMgYDUwJWAsIGAxIG9mIDJgLCBgMS8yYCBvciBgNTBgIChubyBkZW5vbWluYXRvciB3b3VsZCBiZSByZXR1cm5lZCkuXG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBMaXN0IG9mIHBhcnNlZCB2YWx1ZXMgd2l0aCBudW1lcmF0b3IgYXQgZmlyc3QgcG9zaXRpb24gYW5kIGRlbnVtZXJhdG9yIGFzIHNlY29uZC4gVGhlc2UgdmFsdWVzIG1heSBiZSBudWxsLlxuQGZ1bmN0aW9uIHpmLXBhcnNlLWZyYWN0aW9uKCRmcmFjdGlvbikge1xuXG4gIEBpZiB0eXBlLW9mKCRmcmFjdGlvbikgPT0gJ251bWJlcicge1xuICAgIC8vIFwiNTAlXCJcbiAgICBAaWYgdW5pdCgkZnJhY3Rpb24pID09ICclJyB7XG4gICAgICBAcmV0dXJuIChzdHJpcC11bml0KCRmcmFjdGlvbiksIDEwMCk7XG4gICAgfVxuICAgIEBlbHNlIGlmICh1bml0KCRmcmFjdGlvbikgPT0gJycpIHtcbiAgICAgIC8vIFwiMC41XCJcbiAgICAgIEBpZiAkZnJhY3Rpb24gPCAxIHtcbiAgICAgICAgQHJldHVybiAoJGZyYWN0aW9uICogMTAwLCAxMDApO1xuICAgICAgfVxuICAgICAgLy8gXCI1MFwiXG4gICAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gKCRmcmFjdGlvbiwgbnVsbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgdHlwZS1vZigkZnJhY3Rpb24pID09ICdsaXN0JyB7XG4gICAgLy8gXCI1MCBvZiAxMDBcIiwgXCI1MC8xMDBcIi4uLlxuICAgIEBpZiBsZW5ndGgoJGZyYWN0aW9uKSA9PSAzXG4gICAgICBhbmQgdHlwZS1vZihudGgoJGZyYWN0aW9uLCAxKSA9PSAnbnVtYmVyJylcbiAgICAgIGFuZCB0eXBlLW9mKG50aCgkZnJhY3Rpb24sIDMpID09ICdudW1iZXInKSB7XG4gICAgICBAcmV0dXJuIChudGgoJGZyYWN0aW9uLCAxKSwgbnRoKCRmcmFjdGlvbiwgMykpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gKG51bGwsIG51bGwpO1xufVxuXG4vLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBgJHZhbHVlYCByZXByZXNlbnRzIGEgZnJhY3Rpb24uIFN1cHBvcnRzIGZvcm1hdHMgbGlrZSBgNTAlYCwgYDEgb2YgMmAsIGAxIHBlciAyYCBvciBgMS8yYC5cbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlIC0gVmFsdWUgdG8gdGVzdC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRhbGxvdy1uby1kZW5vbWluYXRvciBbZmFsc2VdIC0gSWYgYHRydWVgLCBzaW1wbGUgbnVtYmVycyB3aXRob3V0IGRlbm9taW5hdG9ycyBsaWtlIGA1MGAgYXJlIHN1cHBvcnRlZC5cbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IGB0cnVlYCBpZiBgJHZhbHVlYCByZXByZXNlbnRzIGEgZnJhY3Rpb24sIGBmYWxzZWAgb3RoZXJ3aXNlLlxuQGZ1bmN0aW9uIHpmLWlzLWZyYWN0aW9uKCR2YWx1ZSwgJGFsbG93LW5vLWRlbm9taW5hdG9yOiBmYWxzZSkge1xuICAkcGFyc2VkOiB6Zi1wYXJzZS1mcmFjdGlvbigkdmFsdWUpO1xuICBAcmV0dXJuIG5vdChudGgoJHBhcnNlZCwgMSkgPT0gbnVsbFxuICAgIG9yIChudGgoJHBhcnNlZCwgMikgPT0gbnVsbCBhbmQgJGFsbG93LW5vLWRlbm9taW5hdG9yID09IGZhbHNlKSk7XG59XG5cbi8vLyBDYWxjdWxhdGUgYSBwZXJjZW50YWdlIGZyb20gYSBnaXZlbiBmcmFjdGlvbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRmcmFjdGlvbiAtIFZhbHVlIHJlcHJlc2VudGluZyBhIGZyYWN0aW9uIHRvIHVzZSB0byBjYWxjdWxhdGUgdGhlIHBlcmNlbnRhZ2UsIGZvcm1hdHRlZCBhcyBgNTBgIChyZWxhdGl2ZSB0byBgJGRlbm9taW5hdG9yYCksIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8yYC5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkZGVub21pbmF0b3IgLSBEZWZhdWx0IHZhbHVlIHRvIHVzZSBhcyBkZW5vbWluYXRvciB3aGVuIGAkZnJhY3Rpb25gIHJlcHJlc2VudHMgYW4gYWJzb2x1dGUgdmFsdWUuXG5AZnVuY3Rpb24gZnJhY3Rpb24tdG8tcGVyY2VudGFnZShcbiAgJGZyYWN0aW9uLFxuICAkZGVub21pbmF0b3I6IG51bGxcbikge1xuICAkcGFyc2VkOiB6Zi1wYXJzZS1mcmFjdGlvbigkZnJhY3Rpb24pO1xuICAkcGFyc2VkLW5vbWluYXRvcjogbnRoKCRwYXJzZWQsIDEpO1xuICAkcGFyc2VkLWRlbm9taW5hdG9yOiBudGgoJHBhcnNlZCwgMik7XG5cbiAgQGlmICRwYXJzZWQtbm9taW5hdG9yID09IG51bGwge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBcImZyYWN0aW9uLXRvLXBlcmNlbnRhZ2UoKVwiLiBVc2UgYSBudW1iZXIsIGRlY2ltYWwsIHBlcmNlbnRhZ2UsIG9yIFwibiBvZiBuXCIgLyBcIm4vblwiLic7XG4gIH1cbiAgQGlmICRwYXJzZWQtZGVub21pbmF0b3IgPT0gbnVsbCB7XG4gICAgQGlmIHR5cGUtb2YoJGRlbm9taW5hdG9yKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkcGFyc2VkLWRlbm9taW5hdG9yOiAkZGVub21pbmF0b3I7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBlcnJvciAnRXJyb3Igd2l0aCBcImZyYWN0aW9uLXRvLXBlcmNlbnRhZ2UoKVwiLiBBIGRlZmF1bHQgXCIkZGVub21pbmF0b3JcIiBpcyByZXF1aXJlZCB0byBzdXBwb3J0IGFic29sdXRlIHZhbHVlcyc7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBwZXJjZW50YWdlKCRwYXJzZWQtbm9taW5hdG9yIC8gJHBhcnNlZC1kZW5vbWluYXRvcik7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWVudVxuLy8vL1xuXG4vLy8gTWFyZ2luIG9mIGEgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIExlZnQtaGFuZCBtYXJnaW4gb2YgYSBuZXN0ZWQgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgaXRlbXMgaW4gYSBwaWxsIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pdGVtcy1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBzaW1wbGUgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LXNpbXBsZS1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGl2ZSB0ZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWNvbG9yLWFsdC1hY3RpdmU6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGFuIGljb24gYW5kIHRleHQgaW4gYSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBtZW51IHN0YXRlLiBJZiB0cnVlLCB0aGlzIGR1cGxpY2F0ZSBgYWN0aXZlYCB3aXRoIGBpcy1hY3RpdmVgLiBcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCBgYWN0aXZlYCB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtc3RhdGUtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBtZW51IGNlbnRlcmVkLiBJZiB0cnVlLCB0aGlzIGR1cGxpY2F0ZSBgLm1lbnUtY2VudGVyZWQgPiAubWVudWAgd2l0aCBgLm1lbnUuYWxpZ24tY2VudGVyYC4gXG4vLy8gQnV0IHBsZWFzZSBub3RlIHRoYXQgYG1lbnUtY2VudGVyZWRgIHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIHVzaW5nIGBpY29uLSpgIGNsYXNzZXMgd2l0aG91dCBgLmljb25zYCBjbGFzc2VzXG4vLy8gQnV0IHBsZWFzZSBub3RlIHRoYXQgdGhpcyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1pY29ucy1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgdGhlIGJhc2Ugc3R5bGVzIGZvciBhIE1lbnUuXG5AbWl4aW4gbWVudS1iYXNlIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICBsaSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICB9XG5cbiAgYSxcbiAgLmJ1dHRvbiB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRtZW51LWl0ZW1zLXBhZGRpbmc7XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb2YgaW5uZXIgZWxlbWVudHNcbiAgaW5wdXQsXG4gIHNlbGVjdCxcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgaW5wdXQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG4vLy8gRXhwYW5kcyB0aGUgaXRlbXMgb2YgYSBNZW51LCBzbyBlYWNoIGl0ZW0gaXMgdGhlIHNhbWUgd2lkdGguXG5AbWl4aW4gbWVudS1leHBhbmQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICA+IGxpIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWxpZ24gbWVudSBpdGVtcy5cbkBtaXhpbiBtZW51LWFsaWduKCRhbGlnbm1lbnQpIHtcbiAgQGlmICRhbGlnbm1lbnQgPT0gbGVmdCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSByaWdodCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnZlcnRpY2FsIGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcblxuICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgICB9XG5cbiAgICAgICYudmVydGljYWwge1xuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IGNlbnRlciB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGRpcmVjdGlvbiBvZiBhIE1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFtob3Jpem9udGFsXSAtIERpcmVjdGlvbiBvZiB0aGUgTWVudS4gQ2FuIGJlIGBob3Jpem9udGFsYCBvciBgdmVydGljYWxgLlxuQG1peGluIG1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBtZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc2ltcGxlIE1lbnUsIHdoaWNoIGhhcyBubyBwYWRkaW5nIG9yIGhvdmVyIHN0YXRlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbJGdsb2JhbC1sZWZ0XSAtIERpcmVjdGlvbiBvZiB0aGUgbWVudS4gVGhpcyBlZmZlY3RzIHRoZSBzaWRlIG9mIHRoZSBgPGxpPmAgdGhhdCByZWNlaXZlcyB0aGUgbWFyZ2luLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWFyZ2luIFskbWVudS1zaW1wbGUtbWFyZ2luXSAtIFRoZSBtYXJnaW4gdG8gYXBwbHkgdG8gZWFjaCBgPGxpPmAuXG5AbWl4aW4gbWVudS1zaW1wbGUoJGRpcjogJGdsb2JhbC1sZWZ0LCAkbWFyZ2luOiAkbWVudS1zaW1wbGUtbWFyZ2luKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICBsaSArIGxpIHtcbiAgICBtYXJnaW4tI3skZGlyfTogJG1hcmdpbjtcbiAgfVxuXG4gIGEge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG5lc3RlZCBNZW51LCBieSBhZGRpbmcgYG1hcmdpbi1sZWZ0YCB0byB0aGUgbWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkbWFyZ2luIFskbWVudS1uZXN0ZWQtbWFyZ2luXSAtIExlbmd0aCBvZiB0aGUgbWFyZ2luLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJG5lc3RlZC1hbGlnbm1lbnQgW2xlZnRdIC0gQWxpZ25tZW50IG9mIHRoZSBuZXN0ZWQgY2xhc3NcbkBtaXhpbiBtZW51LW5lc3RlZChcbiAgJG1hcmdpbjogJG1lbnUtbmVzdGVkLW1hcmdpbixcbiAgJG5lc3RlZC1hbGlnbm1lbnQ6IGxlZnRcbikge1xuICBAaWYgJG5lc3RlZC1hbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkbWFyZ2luO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRtYXJnaW47XG4gIH1cblxufVxuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGljb25zIGluIG1lbnVzLlxuQG1peGluIG1lbnUtaWNvbnMoKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGEge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGltZyxcbiAgICBpLFxuICAgIHN2ZyB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICArIHNwYW4ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBwb3NpdGlvbiBjbGFzc2VzIGZvciBpY29ucyB3aXRoaW4gYSBtZW51LlxuQG1peGluIG1lbnUtaWNvbi1wb3NpdGlvbigkcG9zaXRpb246IGxlZnQsICRzcGFjaW5nOiAkbWVudS1pY29uLXNwYWNpbmcpIHtcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRzcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG8gJHNwYWNpbmc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogJHNwYWNpbmcgYXV0byAwO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWVudS10ZXh0IHtcbiAgcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG5cbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuQG1peGluIG1lbnUtc3RhdGUtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZSwgKCRtZW51LWl0ZW0tY29sb3ItYWN0aXZlLCAkbWVudS1pdGVtLWNvbG9yLWFsdC1hY3RpdmUpKTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVudSB7XG4gIC5tZW51IHtcbiAgICBAaW5jbHVkZSBtZW51LWJhc2U7XG5cbiAgICAvLyBEZWZhdWx0IG9yaWVudGF0aW9uOiBob3Jpem9udGFsXG4gICAgJiwgJi5ob3Jpem9udGFsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIG9yaWVudGF0aW9uIG1vZGlmaWVyXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBtb2RpZmllciBmb3IgaG9yaXpvbnRhbCBvcmllbnRhdGlvblxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgfVxuXG4gICAgLy8gU2ltcGxlXG4gICAgJi5zaW1wbGUge1xuICAgICAgQGluY2x1ZGUgbWVudS1zaW1wbGU7XG4gICAgfVxuXG4gICAgLy8gQnJlYWtwb2ludCBzcGVjaWZpYyB2ZXJzaW9uc1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiBmYWxzZSkge1xuICAgICAgJi4jeyQtemYtc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tZXhwYW5kZWQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tc2ltcGxlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTmVzdGluZ1xuICAgICYubmVzdGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkO1xuICAgIH1cblxuICAgIC8vIEljb24gQmFzZSBTdHlsZXNcbiAgICAmLmljb25zIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG4gICAgfVxuXG4gICAgLy8gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSBmb3IgYWN0aXZlIHN0YXRlXG4gICAgQGlmICRtZW51LWljb25zLWJhY2stY29tcGF0IHtcbiAgICAgICYuaWNvbi10b3AsXG4gICAgICAmLmljb24tcmlnaHQsXG4gICAgICAmLmljb24tYm90dG9tLFxuICAgICAgJi5pY29uLWxlZnQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEljb24gTGVmdFxuICAgICYuaWNvbi1sZWZ0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihsZWZ0KTtcbiAgICB9XG5cbiAgICAvLyBJY29uIFJpZ2h0XG4gICAgJi5pY29uLXJpZ2h0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihyaWdodCk7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBUb3BcbiAgICAmLmljb24tdG9wIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbih0b3ApO1xuICAgIH1cblxuICAgIC8vIEljb24gQm90dG9tXG4gICAgJi5pY29uLWJvdHRvbSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24oYm90dG9tKTtcbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGVcbiAgICAuaXMtYWN0aXZlID4gYSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXN0YXRlLWFjdGl2ZTtcbiAgICB9XG4gICAgXG4gICAgLy8gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSBmb3IgYWN0aXZlIHN0YXRlXG4gICAgQGlmICRtZW51LXN0YXRlLWJhY2stY29tcGF0IHtcbiAgICAgIC5hY3RpdmUgPiBhIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gbGVmdFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLWxlZnR9IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24obGVmdCk7XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gcmlnaHRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihyaWdodCk7XG5cbiAgICAgIC5uZXN0ZWQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkbmVzdGVkLWFsaWdubWVudDogcmlnaHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsaWduIGNlbnRlclxuICAgICYuYWxpZ24tY2VudGVyIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24oY2VudGVyKTtcbiAgICB9XG5cbiAgICAubWVudS10ZXh0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtdGV4dDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQge1xuICAgIC5tZW51LWNlbnRlcmVkIHtcbiAgICAgID4gLm1lbnUge1xuICAgICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihjZW50ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByZXZlbnQgRk9VQyB3aGVuIHVzaW5nIHRoZSBSZXNwb25zaXZlIE1lbnUgcGx1Z2luXG4gIC5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCJAbWl4aW4gZm91bmRhdGlvbi1tZW51LWljb24ge1xuICAubWVudS1pY29uIHtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXIoJGNvbG9yOiAkdGl0bGViYXItaWNvbi1jb2xvciwgJGNvbG9yLWhvdmVyOiAkdGl0bGViYXItaWNvbi1jb2xvci1ob3Zlcik7XG4gIH1cblxuICAubWVudS1pY29uLmRhcmsge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zdGlja3kge1xuICAuc3RpY2t5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLnN0aWNreSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIC5zdGlja3kuaXMtc3R1Y2sge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiA1O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJi5pcy1hdC10b3Age1xuICAgICAgdG9wOiAwO1xuICAgIH1cblxuICAgICYuaXMtYXQtYm90dG9tIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAuc3RpY2t5LmlzLWFuY2hvcmVkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcblxuICAgICYuaXMtYXQtYm90dG9tIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvZmYtY2FudmFzXG4vLy8vXG5cbi8vLyBXaWR0aCBtYXAgb2YgYSBsZWZ0L3JpZ2h0IG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTWFwXG4kb2ZmY2FudmFzLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgbWFwIG9mIGEgdG9wL2JvdHRvbSBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE1hcFxuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBmb3IgdGhlIG9mZi1jYW52YXMgb3ZlcmxhcCBwYW5lbC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRvZmZjYW52YXMtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC43KSAhZGVmYXVsdDtcblxuLy8vIElubmVyIGJveCBzaGFkb3cgc2l6ZSBmb3IgdGhlIG9mZi1jYW52YXMgcHVzaCBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vLyBJbm5lciBib3ggc2hhZG93IGNvbG9yIGZvciB0aGUgb2ZmLWNhbnZhcyBwdXNoIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIGNvbnRlbnQgb3ZlcmxheS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg6IDExICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBwdXNoYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgd2l0aCB0aGUgYG92ZXJsYXBgIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAxMyAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB1c2luZyB0aGUgYHJldmVhbC1mb3ItKmAgY2xhc3NlcyBvciBtaXhpbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBMZW5ndGggb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cyAhZGVmYXVsdDtcblxuLy8vIFRpbWluZyBmdW5jdGlvbiBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgS2V5d29yZFxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYSByZXZlYWxlZCBvZmYtY2FudmFzIHdpbGwgYmUgZml4ZWQtcG9zaXRpb24sIGFuZCBzY3JvbGwgd2l0aCB0aGUgc2NyZWVuLlxuLy8vIEB0eXBlIEJvb2xcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIG92ZXJsYXkgdGhhdCBhcHBlYXJzIHdoZW4gYW4gb2ZmLWNhbnZhcyBwYW5lbCBpcyBvcGVuLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gQ1NTIGNsYXNzIHVzZWQgZm9yIHRoZSBtYWluIGNvbnRlbnQgYXJlYS4gVGhlIG9mZi1jYW52YXMgbWl4aW5zIHVzZSB0aGlzIHRvIHRhcmdldCB0aGUgcGFnZSBjb250ZW50LlxuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzZWxpbmUgc3R5bGVzIGZvciBvZmYtY2FudmFzLiBUaGlzIENTUyBpcyByZXF1aXJlZCB0byBtYWtlIHRoZSBvdGhlciBwaWVjZXMgd29yay5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2ljcyB7XG5cbiAgLy8vIFRyYW5zZm9ybSBkZXByZWNhdGVkIHNpemUgc2V0dGluZ3MgaW50byBtYXAgJiBzaG93IHdhcm5pbmdcbiAgQGlmIHZhcmlhYmxlLWV4aXN0cyhvZmZjYW52YXMtc2l6ZSkge1xuICAgICRvZmZjYW52YXMtc2l6ZXM6IChzbWFsbDogJG9mZmNhbnZhcy1zaXplLCBtZWRpdW06ICRvZmZjYW52YXMtc2l6ZSkgIWdsb2JhbDtcbiAgICBAd2FybiAnJG9mZmNhbnZhcy1zaXplIGlzIGRlcHJlY2F0ZWQgYW5kIG5vdCB1c2VkIGFueW1vcmUhIFBsZWFzZSB1cGRhdGUgeW91ciBzZXR0aW5ncyBhbmQgdXNlIHRoZSBtYXAgJG9mZmNhbnZhcy1zaXplcyBpbnN0ZWFkJztcbiAgfVxuICBAaWYgdmFyaWFibGUtZXhpc3RzKG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKSB7XG4gICAgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKHNtYWxsOiAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUsIG1lZGl1bTogJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKSAhZ2xvYmFsO1xuICAgIEB3YXJuICckb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUgaXMgZGVwcmVjYXRlZCBhbmQgbm90IHVzZWQgYW55bW9yZSEgUGxlYXNlIHVwZGF0ZSB5b3VyIHNldHRpbmdzIGFuZCB1c2UgdGhlIG1hcCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzIGluc3RlYWQnO1xuICB9XG5cbiAgLy8gQ2hlY2tzIHRoZSB6LWluZGV4ZXMgYW5kIGluY3JlYXNlIHRoZW0gZHVlIHRvIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBvdmVybGF5J3Mgei1pbmRleCBpcyBuZXcgc2luY2UgdjYuNCBhbmQgbWF5IGJlIGlkZW50aWNhbCB0byB0aGUgdXNlciBjdXN0b20gc2V0dGluZ3Mgb2YgdGhlIHB1c2ggei1pbmRleC5cbiAgQGlmICRvZmZjYW52YXMtcHVzaC16aW5kZXggPD0gJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCB7ICRvZmZjYW52YXMtcHVzaC16aW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXggPD0gJG9mZmNhbnZhcy1wdXNoLXppbmRleCB7ICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCA8PSAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4IHsgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4ICsgMSAhZ2xvYmFsOyB9XG5cbiAgLy8gSGlkZXMgb3ZlcmZsb3cgb24gYm9keSB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbiAgLmlzLW9mZi1jYW52YXMtb3BlbiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgb3ZlcmxheSAoZ2VuZXJhdGVkIGJ5IEphdmFTY3JpcHQpXG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4O1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmcsIHZpc2liaWxpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuXG4gICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ7XG5cbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zYWJsZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJi5pcy1vdmVybGF5LWFic29sdXRlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICAmLmlzLW92ZXJsYXktZml4ZWQge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cbiAgfVxufVxuXG4vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyB3cmFwcGVyLlxuQG1peGluIG9mZi1jYW52YXMtd3JhcHBlcigpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgcGFuZWwuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNlKFxuICAkYmFja2dyb3VuZDogJG9mZmNhbnZhcy1iYWNrZ3JvdW5kLFxuICAkdHJhbnNpdGlvbjogJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nLFxuICAkZml4ZWQ6IHRydWVcbikge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgQGlmICRmaXhlZCA9PSB0cnVlIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC8vIFNldCB0aGUgb2ZmLWNhbnZhcyB6LWluZGV4LlxuICB6LWluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4O1xuXG4gIC8vIEluY3JlYXNlIENTUyBzcGVjaWZpY2l0eVxuICAmLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleDtcbiAgfVxuXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gIC8vIEhpZGUgaW5hY3RpdmUgb2ZmLWNhbnZhcyB3aXRoaW4gdGhlIGNvbnRlbnQgdGhhdCBoYXZlIHRoZSBzYW1lIHBvc2l0aW9uXG4gICYuaXMtY2xvc2VkIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvLyBPdmVybGFwIG9ubHkgc3R5bGVzLlxuICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDtcblxuICAgICYuaXMtb3BlbiB7XG4gICAgICBib3gtc2hhZG93OiAkb2ZmY2FudmFzLXNoYWRvdztcbiAgICB9XG4gIH1cblxuICAvLyBTZXRzIHRyYW5zZm9ybSB0byAwIHRvIHNob3cgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbiAgJi5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gcG9zaXRpb24gYW4gb2ZmLWNhbnZhcyBwYW5lbCB0byB0aGUgbGVmdC9yaWdodC90b3AvYm90dG9tLlxuQG1peGluIG9mZi1jYW52YXMtcG9zaXRpb24oXG4gICRwb3NpdGlvbjogbGVmdCxcbiAgJG9yaWVudGF0aW9uOiBob3Jpem9udGFsLFxuICAkc2l6ZXM6IGlmKCRvcmllbnRhdGlvbiA9PSBob3Jpem9udGFsLCAkb2ZmY2FudmFzLXNpemVzLCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzKVxuKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcblxuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICB3aWR0aDogJHNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBoZWlnaHQ6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBoZWlnaHQ6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUgaXMgc2V0LCBhZGQgaW5uZXIgYm94LXNoYWRvdy5cbiAgLy8gVGhpcyBtaW1pY3MgdGhlIG9mZi1jYW52YXMgcGFuZWwgaGF2aW5nIGEgbG93ZXIgei1pbmRleCwgd2l0aG91dCBoYXZpbmcgdG8gaGF2ZSBvbmUuXG4gIEBpZiAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplIHtcbiAgICAmLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyhyaWdodCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3cobGVmdCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KGJvdHRvbSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KHRvcCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbi8vLyBTZXRzIHRoZSBzdHlsZXMgZm9yIHRoZSBjb250ZW50IGNvbnRhaW5lci5cbkBtaXhpbiBvZmYtY2FudmFzLWNvbnRlbnQoKSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIC8vIEJpbmQgdG8gaGFzLXRyYW5zaXRpb24tWCBjbGFzcyB0byBwcmV2ZW50IHRyYW5zaXRpb24gZm9yIHRyYW5zZm9ybTpub25lXG4gICYuaGFzLXRyYW5zaXRpb24tb3ZlcmxhcCxcbiAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIHNjb3BlIHVudGlsIHRoZSBlbGVtZW50IGlzIGNsb3NlZCAobWFrZXMgc3VyZSB0cmFuc2l0aW9uZW5kIGdldHMgdHJpZ2dlcmVkKVxuICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG5cbiAgLy8gQ29uc2lkZXIgZWxlbWVudCAmIGNvbnRlbnQsIG5lc3RlZCBpbiBhbm90aGVyIGNvbnRlbnRcbiAgLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRoYXQgcmV2ZWFsIGFuIG9mZi1jYW52YXMgcGFuZWwuXG5AbWl4aW4gb2ZmLWNhbnZhcy1yZXZlYWwoXG4kcG9zaXRpb246IGxlZnQsXG4kemluZGV4OiAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsXG4kY29udGVudDogJG1haW5jb250ZW50LWNsYXNzLFxuJGJyZWFrcG9pbnQ6IHNtYWxsXG4pIHtcbiAgdHJhbnNmb3JtOiBub25lO1xuICB6LWluZGV4OiAkemluZGV4O1xuICB0cmFuc2l0aW9uOiBub25lO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXG4gIEBpZiBub3QgJG9mZmNhbnZhcy1maXhlZC1yZXZlYWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBDb25zaWRlciByZXZlYWxlZCBlbGVtZW50IGlzIG5lc3RlZCBpbiBjb250ZW50XG4gIC4jeyRtYWluY29udGVudC1jbGFzc30gJiB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgQGF0LXJvb3QgLiN7JGNvbnRlbnR9Lmhhcy1yZXZlYWwtI3skcG9zaXRpb259IHtcbiAgICBtYXJnaW4tI3skcG9zaXRpb259OiAtemYtZ2V0LWJwLXZhbCgkb2ZmY2FudmFzLXNpemVzLCAkYnJlYWtwb2ludCk7XG4gIH1cblxuICAvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAocHJpb3IgdG8gdjYuNClcbiAgJiB+IC4jeyRjb250ZW50fSB7XG4gICAgbWFyZ2luLSN7JHBvc2l0aW9ufTogLXpmLWdldC1icC12YWwoJG9mZmNhbnZhcy1zaXplcywgJGJyZWFrcG9pbnQpO1xuICB9XG59XG5cbi8vLyBPdmVycmlkZXMgdGhlIG9mZi1jYW52YXMgc3R5bGVzXG5AbWl4aW4gaW4tY2FudmFzKCkge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcblxuICAvLyBJbmNyZWFzZSBDU1Mgc3BlY2lmaWNpdHlcbiAgJi5wb3NpdGlvbi1sZWZ0LFxuICAmLnBvc2l0aW9uLXJpZ2h0LFxuICAmLnBvc2l0aW9uLXRvcCxcbiAgJi5wb3NpdGlvbi1ib3R0b20ge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vZmYtY2FudmFzIHtcbiAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNpY3M7XG5cbiAgLy8gT2ZmLWNhbnZhcyB3cmFwcGVyXG4gIC5vZmYtY2FudmFzLXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtd3JhcHBlcjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgY29udGFpbmVyXG4gIC5vZmYtY2FudmFzIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2U7XG5cbiAgICAvLyBGb3JjZSBwb3NpdGlvbiBhYnNvbHV0ZSBmb3IgbmVzdGVkIG9mZi1jYW52YXMgYmVjYXVzZSBmaXhlZCBkb2Vzbid0IHdvcmsgZm9yIHB1c2ggdHJhbnNpdGlvbiB3aXRoaW4gdGhlIHRyYW5zZm9ybSBzY29wZS5cbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9ICYge1xuICAgICAgLy8gTk9URTogc2luY2Ugb3ZlcmxhcCB0cmFuc2l0aW9uIGlzIGN1cnJlbnRseSBmb3JjZWQgaWYgbmVzdGVkLCB0aGVyZSdzIG5vIG5lZWQgdG8gZm9yY2UgcG9zaXRpb24gYWJzb2x1dGUgdW50aWwgbmVzdGVkIHB1c2ggdHJhbnNpdGlvbiBpcyBzdXBwb3J0ZWQuXG4gICAgICAvLyBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXIgd2l0aCBhYnNvbHV0ZSBwb3NpdGlvblxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlKCRmaXhlZDogZmFsc2UpO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBwb3NpdGlvbiBjbGFzc2VzXG4gIC5wb3NpdGlvbi1sZWZ0ICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihsZWZ0LCAgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi1yaWdodCAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihyaWdodCwgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi10b3AgICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbih0b3AsICAgIHZlcnRpY2FsKTsgfVxuICAucG9zaXRpb24tYm90dG9tICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24oYm90dG9tLCB2ZXJ0aWNhbCk7IH1cblxuICAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXZlYWwgb2ZmLWNhbnZhcyBwYW5lbCBvbiBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGxlZnQsICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwocmlnaHQsICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHRvcCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwoYm90dG9tLCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTW92ZSBpbi1jYW52YXMgZm9yIGxhcmdlciBzY3JlZW5zXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRuYW1lICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgaW4tY2FudmFzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmbG9hdFxuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzIHtcbiAgLmZsb2F0LWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmxvYXQtcmlnaHQge1xuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZsb2F0LWNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgLmNsZWFyZml4IHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS10ZXh0LXV0aWxpdGllc1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgdGV4dCB1dGlsaXRpZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXV0aWxpdGllcy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IFZhbHVlIGZvciBgdGV4dC1vdmVyZmxvd2AgdmFyaWFibGVcbi8vLyBAdHlwZSBTdHJpbmdcbiRwcm90b3R5cGUtdGV4dC1vdmVyZmxvdzogZWxsaXBzaXMgIWRlZmF1bHQ7XG5cbi8vLyBJbWFnZSBSZXBsYWNlbWVudCB1dGlsaXR5LiBgdGV4dC1oaWRlYFxuQG1peGluIHRleHQtaGlkZSB7XG4gIGZvbnQ6IDAvMCBhICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbn1cblxuLy8vIFRydW5jYXRpbmcgdGhlIHRleHQsIGVsaXBzaXMgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG92ZXJmbG93IFskcHJvdG90eXBlLXRleHQtb3ZlcmZsb3ddIFRleHQgVHJ1bmNhdGVcbkBtaXhpbiB0ZXh0LXRydW5jYXRlKFxuICAkb3ZlcmZsb3c6ICRwcm90b3R5cGUtdGV4dC1vdmVyZmxvd1xuKSB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIHRleHQtb3ZlcmZsb3c6ICRvdmVyZmxvdzsgXG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbn1cblxuLy8vIE5vIHdyYXBwaW5nIG9mIHRoZSB0ZXh0LiBgdGV4dC1ub3dyYXBgXG5AbWl4aW4gdGV4dC1ub3dyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG59XG5cbi8vLyBXcmFwcGluZyBvZiB0aGUgdGV4dC4gYHRleHQtd3JhcGBcbkBtaXhpbiB0ZXh0LXdyYXAge1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXRleHQtdXRpbGl0aWVzIHtcbiAgLnRleHQtaGlkZSB7XG4gICAgQGluY2x1ZGUgdGV4dC1oaWRlO1xuICB9XG5cbiAgLnRleHQtdHJ1bmNhdGUge1xuICAgIEBpbmNsdWRlIHRleHQtdHJ1bmNhdGU7XG4gIH1cblxuICAudGV4dC1ub3dyYXAge1xuICAgIEBpbmNsdWRlIHRleHQtbm93cmFwO1xuICB9XG5cbiAgLnRleHQtd3JhcCB7XG4gICAgQGluY2x1ZGUgdGV4dC13cmFwO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXV0aWxpdGllcy1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtaGlkZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LWhpZGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtdHJ1bmNhdGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGV4dC10cnVuY2F0ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC1ub3dyYXAge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGV4dC1ub3dyYXA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtd3JhcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LXdyYXA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb25cbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHRleHQgdHJhbnNmb3JtYXRpb24gY2xhc3Nlc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtdHJhbnNmb3JtYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgdGV4dC10cmFuc2Zvcm1hdGlvbmAgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uOiAoXG4gIGxvd2VyY2FzZSxcbiAgdXBwZXJjYXNlLFxuICBjYXBpdGFsaXplXG4pICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBUcmFuc2Zvcm1hdGlvbiwgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uYFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdHJhbnNmb3JtYXRpb24gW10gVGV4dCBUcmFuc2Zvcm1hdGlvblxuQG1peGluIHRleHQtdHJhbnNmb3JtKCR0cmFuc2Zvcm1hdGlvbikge1xuICB0ZXh0LXRyYW5zZm9ybTogJHRyYW5zZm9ybWF0aW9uICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uIHtcbiAgQGVhY2ggJHRyYW5zZm9ybWF0aW9uIGluICRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbiB7XG4gICAgLnRleHQtI3skdHJhbnNmb3JtYXRpb259IHtcbiAgICAgIEBpbmNsdWRlIHRleHQtdHJhbnNmb3JtKCR0cmFuc2Zvcm1hdGlvbik7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXRyYW5zZm9ybWF0aW9uLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgXHRAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJHRyYW5zZm9ybWF0aW9uIGluICRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbiB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JHRyYW5zZm9ybWF0aW9ufSB7XG4gIFx0XHRcdCAgICAgIEBpbmNsdWRlIHRleHQtdHJhbnNmb3JtKCR0cmFuc2Zvcm1hdGlvbik7XG4gIFx0XHRcdCAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvblxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgdGV4dCBkZWNvcmF0aW9uIGNsYXNzZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWRlY29yYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgdGV4dC1kZWNvcmF0aW9uYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbjogKFxuICBvdmVybGluZSxcbiAgdW5kZXJsaW5lLFxuICBsaW5lLXRocm91Z2gsXG4pICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBEZWNvcmF0aW9uLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbmBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRlY29yYXRpb24gW10gVGV4dCBEZWNvcmF0aW9uXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCRkZWNvcmF0aW9uKSB7XG4gIHRleHQtZGVjb3JhdGlvbjogJGRlY29yYXRpb24gIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbiB7XG4gIEBlYWNoICRkZWNvcmF0aW9uIGluICRwcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAudGV4dC0jeyRkZWNvcmF0aW9ufSB7XG4gICAgICBAaW5jbHVkZSB0ZXh0LWRlY29yYXRpb24oJGRlY29yYXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1kZWNvcmF0aW9uLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJGRlY29yYXRpb24gaW4gJHByb3RvdHlwZS10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRkZWNvcmF0aW9ufSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtZGVjb3JhdGlvbigkZGVjb3JhdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWZvbnQtc3R5bGluZ1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgZm9udCBzdHlsaW5nIHR5cGVzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1mb250LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIExldHRlciBzcGFjaW5nIGZvciBgLmZvbnQtd2lkZWBcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoNCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdlaWdodCBmb3IgYC5mb250LW5vcm1hbGAsIGRlZmF1bHRlZCB0byBgZ2xvYmFsLXdlaWdodC1ub3JtYWxgXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLWZvbnQtbm9ybWFsOiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdlaWdodCBmb3IgYC5mb250LWJvbGRgLCBkZWZhdWx0ZWQgdG8gYGdsb2JhbC13ZWlnaHQtYm9sZGBcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtZm9udC1ib2xkOiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3aWRlIGxldHRlciBzcGFjaW5nIVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGV0dGVyLXNwYWNpbmcgWyRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZ10gV2lkZSBsZXR0ZXIgc3BhY2luZyBmb3IgdGhlIGZvbnRcbkBtaXhpbiBmb250LXdpZGUoXG4gICRsZXR0ZXItc3BhY2luZzogJHByb3RvdHlwZS13aWRlLWxldHRlci1zcGFjaW5nXG4pIHtcbiAgbGV0dGVyLXNwYWNpbmc6ICRsZXR0ZXItc3BhY2luZztcbn1cblxuLy8vIEZvbnQgV2VpZ2h0IE5vcm1hbCwgZGVmYXVsdCB2YWx1ZSBjb21pbmcgdGhyb3VnaCBgZ2xvYmFsLXdlaWdodC1ub3JtYWxgXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWyRwcm90b3R5cGUtZm9udC1ub3JtYWxdIFdlaWdodCBvZiB0aGUgZm9udCAobm9ybWFsKVxuQG1peGluIGZvbnQtbm9ybWFsKFxuICAkd2VpZ2h0OiAkcHJvdG90eXBlLWZvbnQtbm9ybWFsXG4pIHtcbiAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG59XG5cbi8vLyBGb250IFdlaWdodCBCb2xkLCBkZWZhdWx0IHZhbHVlIGNvbWluZyB0aHJvdWdoIGBnbG9iYWwtd2VpZ2h0LWJvbGRgXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWyRwcm90b3R5cGUtZm9udC1ib2xkXSBXZWlnaHQgb2YgdGhlIGZvbnQgKGJvbGQpXG5AbWl4aW4gZm9udC1ib2xkKFxuICAkd2VpZ2h0OiAkcHJvdG90eXBlLWZvbnQtYm9sZFxuKSB7XG4gIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xufVxuXG4vLy8gRm9udCBTdHlsZSBJdGFsaWNcbkBtaXhpbiBmb250LWl0YWxpYyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYyAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtZm9udC1zdHlsaW5nIHtcbiAgLmZvbnQtd2lkZXtcbiAgICBAaW5jbHVkZSBmb250LXdpZGU7XG4gIH1cblxuICAuZm9udC1ub3JtYWwge1xuICAgIEBpbmNsdWRlIGZvbnQtbm9ybWFsO1xuICB9XG5cbiAgLmZvbnQtYm9sZCB7XG4gICAgQGluY2x1ZGUgZm9udC1ib2xkO1xuICB9XG5cbiAgLmZvbnQtaXRhbGljIHtcbiAgICBAaW5jbHVkZSBmb250LWl0YWxpYztcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1mb250LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tZm9udC13aWRle1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC13aWRlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mb250LW5vcm1hbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LW5vcm1hbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZm9udC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtYm9sZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZm9udC1pdGFsaWMge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1pdGFsaWM7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWxpc3Qtc3R5bGUtdHlwZVxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgbGlzdCBzdHlsaW5nIHR5cGVzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1saXN0LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYHN0eWxlLXR5cGUtdW5vcmRlcmVkYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkOiAoXG4gIGRpc2MsXG4gIGNpcmNsZSxcbiAgc3F1YXJlXG4pICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgc3R5bGUtdHlwZS1vcmRlcmVkYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtb3JkZXJlZDogKFxuICBkZWNpbWFsLFxuICBsb3dlci1hbHBoYSxcbiAgbG93ZXItbGF0aW4sXG4gIGxvd2VyLXJvbWFuLFxuICB1cHBlci1hbHBoYSxcbiAgdXBwZXItbGF0aW4sXG4gIHVwcGVyLXJvbWFuXG4pICFkZWZhdWx0O1xuXG5cbi8vLyBTdHlsZSB0eXBlIGZvciB1bm9yZGVyZWQgTGlzdHMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtc3R5bGUtdHlwZS11bm9yZGVyZWRgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHlsZS10eXBlLXVub3JkZXJlZCBbXSBTdHlsZSB0eXBlIGZvciB1bm9yZGVyZWQgTGlzdHNcbkBtaXhpbiBzdHlsZS10eXBlLXVub3JkZXJlZCgkc3R5bGUtdHlwZS11bm9yZGVyZWQpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiAkc3R5bGUtdHlwZS11bm9yZGVyZWQgIWltcG9ydGFudDtcbn1cblxuLy8vIFN0eWxlIHR5cGUgZm9yIG9yZGVyZWQgTGlzdHMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtc3R5bGUtdHlwZS1vcmRlcmVkYFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3R5bGUtdHlwZS1vcmRlcmVkIFtdIFN0eWxlIHR5cGUgZm9yIG9yZGVyZWQgTGlzdHNcbkBtaXhpbiBzdHlsZS10eXBlLW9yZGVyZWQoJHN0eWxlLXR5cGUtb3JkZXJlZCkge1xuICBsaXN0LXN0eWxlLXR5cGU6ICRzdHlsZS10eXBlLW9yZGVyZWQgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGxpc3QtdW5vcmRlcmVkIHtcbiAgQGVhY2ggJHN0eWxlLXR5cGUtdW5vcmRlcmVkIGluICRwcm90b3R5cGUtc3R5bGUtdHlwZS11bm9yZGVyZWQge1xuICAgIHVsLmxpc3QtI3skc3R5bGUtdHlwZS11bm9yZGVyZWR9IHtcbiAgICAgIEBpbmNsdWRlIHN0eWxlLXR5cGUtdW5vcmRlcmVkKCRzdHlsZS10eXBlLXVub3JkZXJlZCk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWxpc3QtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkc3R5bGUtdHlwZS11bm9yZGVyZWQgaW4gJHByb3RvdHlwZS1zdHlsZS10eXBlLXVub3JkZXJlZCB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIHVsLiN7JHNpemV9LWxpc3QtI3skc3R5bGUtdHlwZS11bm9yZGVyZWR9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgc3R5bGUtdHlwZS11bm9yZGVyZWQoJHN0eWxlLXR5cGUtdW5vcmRlcmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGxpc3Qtb3JkZXJlZCB7XG4gIEBlYWNoICRzdHlsZS10eXBlLW9yZGVyZWQgaW4gJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWQge1xuICAgIG9sLmxpc3QtI3skc3R5bGUtdHlwZS1vcmRlcmVkfSB7XG4gICAgICBAaW5jbHVkZSBzdHlsZS10eXBlLW9yZGVyZWQoJHN0eWxlLXR5cGUtb3JkZXJlZCk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWxpc3QtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkc3R5bGUtdHlwZS1vcmRlcmVkIGluICRwcm90b3R5cGUtc3R5bGUtdHlwZS1vcmRlcmVkIHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgb2wuI3skc2l6ZX0tbGlzdC0jeyRzdHlsZS10eXBlLW9yZGVyZWR9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgc3R5bGUtdHlwZS1vcmRlcmVkKCRzdHlsZS10eXBlLW9yZGVyZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtbGlzdC1zdHlsZS10eXBlIHtcbiAgQGluY2x1ZGUgbGlzdC11bm9yZGVyZWQ7XG4gIEBpbmNsdWRlIGxpc3Qtb3JkZXJlZDtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtcm91bmRlZFxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igcm91bmRlZCB1dGlsaXR5LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtcm91bmRlZC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBgcHJvdG90eXBlLWJvcmRlci1yYWRpdXNgXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLWJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDMpICFkZWZhdWx0O1xuXG4vLy8gUm91bmRlZCB1dGlsaXR5IChhbGwgY29ybmVycyk6IEFkZHMgcmFkaXVzIGNvcm5lcnMgKGFsbCBjb3JuZXJzKSB0byBhbiBlbGVtZW50IGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpdXMgWyRwcm90b3R5cGUtYm9yZGVyLXJhZGl1c10gQm9yZGVyIHJhZGl1cyAoYWxsIGNvcm5lcnMpXG5AbWl4aW4gYm9yZGVyLXJhZGl1cyhcbiAgJHJhZGl1czogJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzXG4pIHtcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbn1cblxuLy8vIFJvdW5kZWQgc3F1YXJlIHV0aWxpdHkgb3IgcmVjdGFuZ2xlIHV0aWxpdHkgKGFsbCBjb3JuZXJzKTogUm91bmRzIGFsbCBjb3JuZXJzIHRvIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCB0byBtYWtlIGEgcGlsbCBzaGFwZS5cbkBtaXhpbiBib3JkZXItcm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDUwMDBweCAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtcm91bmRlZCB7XG4gIC5yb3VuZGVkIHtcbiAgICBAaW5jbHVkZSBib3JkZXItcm91bmRlZDtcblxuICAgIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICAgIEBpbmNsdWRlIGJvcmRlci1yb3VuZGVkO1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgLy8gRm9yIHN3aXRjaGVzXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnJhZGl1cyB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cztcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1yb3VuZGVkLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tcm91bmRlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItcm91bmRlZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgLiN7JHNpemV9LXJhZGl1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1ib3JkZXJlZFxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgYm9yZGVyZWQgdXRpbGl0eS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIGBwcm90b3R5cGUtYm9yZGVyLXdpZHRoYFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1ib3JkZXItd2lkdGg6IHJlbS1jYWxjKDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3JkZXItdHlwZWBcbi8vLyBAdHlwZSBTdHJpbmdcbiRwcm90b3R5cGUtYm9yZGVyLXR5cGU6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3JkZXItY29sb3JgIGRlZmF1bHRlZCB0byBgbWVkaXVtLWdyYXlgXG4vLy8gQHR5cGUgQ29sb3JcbiRwcm90b3R5cGUtYm9yZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXJlZCBVdGlsaXR5OiBBZGRzIGEgbGlnaHQgYm9yZGVyIHRvIGFuIGVsZW1lbnQgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskcHJvdG90eXBlLWJvcmRlci13aWR0aF0gV2lkdGggb2YgdGhlIGJvcmRlclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdHlwZSBbJHByb3RvdHlwZS1ib3JkZXItdHlwZV0gVHlwZSBvZiB0aGUgYm9yZGVyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskcHJvdG90eXBlLWJvcmRlci1jb2xvcl0gQ29sb3Igb2YgdGhlIGJvcmRlclxuQG1peGluIGJvcmRlcmVkKFxuICAkd2lkdGg6ICRwcm90b3R5cGUtYm9yZGVyLXdpZHRoLFxuICAkdHlwZTogJHByb3RvdHlwZS1ib3JkZXItdHlwZSxcbiAgJGNvbG9yOiAkcHJvdG90eXBlLWJvcmRlci1jb2xvclxuKSB7XG4gIGJvcmRlcjogJHdpZHRoICR0eXBlICRjb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWJvcmRlcmVkIHtcbiAgLmJvcmRlcmVkIHtcbiAgICBAaW5jbHVkZSBib3JkZXJlZDtcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1ib3JkZXJlZC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWJvcmRlcmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlcmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1zaGFkb3dcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHNoYWRvdyB1dGlsaXR5LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtc2hhZG93LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIGBwcm90b3R5cGUtYm94LXNoYWRvd2Bcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLDAsMCwuMTYpLFxuICAgICAgICAgICAgICAgICAgICAgICAwIDJweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTIpICFkZWZhdWx0O1xuXG4vLy8gU2hhZG93IFV0aWxpdHk6IEFkZHMgYSBsaWdodCBib3ggc2hhZG93IHRvIGFuIGVsZW1lbnQgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNoYWRvdyBbJHByb3RvdHlwZS1ib3gtc2hhZG93XSBCb3ggU2hhZG93IG9mIGEgY29tcG9uZW50XG5AbWl4aW4gc2hhZG93KFxuICAkc2hhZG93OiAkcHJvdG90eXBlLWJveC1zaGFkb3dcbikge1xuICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtc2hhZG93IHtcbiAgLnNoYWRvdyB7XG4gICAgQGluY2x1ZGUgc2hhZG93O1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXNoYWRvdy1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXNoYWRvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaGFkb3c7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWFycm93XG4vLy8vXG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBhcnJvd2AgZGlyZWN0aW9uXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLWFycm93LWRpcmVjdGlvbnM6IChcbiAgZG93bixcbiAgdXAsXG4gIHJpZ2h0LFxuICBsZWZ0XG4pICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggb2YgdGhlIEFycm93LCBgMC40Mzc1cmVtYCBieSBkZWZhdWx0LlxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1hcnJvdy1zaXplOiAwLjQzNzVyZW07XG5cbi8vLyBDb2xvciBvZiB0aGUgQXJyb3csIGAkYmxhY2tgIGJ5IGRlZmF1bHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRwcm90b3R5cGUtYXJyb3ctY29sb3I6ICRibGFjaztcblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWFycm93IHtcbiAgQGVhY2ggJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb24gaW4gJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb25zIHtcbiAgICAuYXJyb3ctI3skcHJvdG90eXBlLWFycm93LWRpcmVjdGlvbn0ge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKFxuICAgICAgICAkcHJvdG90eXBlLWFycm93LXNpemUsIFxuICAgICAgICAkcHJvdG90eXBlLWFycm93LWNvbG9yLCBcbiAgICAgICAgJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb25cbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXNlcGFyYXRvclxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igc2VwYXJhdG9yLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYWxpZ25tZW50IG9mIGEgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHByb3RvdHlwZS1zZXBhcmF0b3ItYWxpZ246IGNlbnRlciAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWhlaWdodDogcmVtLWNhbGMoMikgIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBhIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoOiAzcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBhIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBDb2xvclxuJHByb3RvdHlwZS1zZXBhcmF0b3ItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBUb3AgTWFyZ2luIG9mIGEgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1zZXBhcmF0b3ItbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBUaXRsZSBzZXBhcmF0b3IgVXRpbGl0eSwgbW9zdGx5IHVzZWQgdG8gc3R5bGUgdGhlIG1haW4gaGVhZGluZyBvZiBhIHNlY3Rpb25cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGFsaWduIFskcHJvdG90eXBlLXNlcGFyYXRvci1hbGlnbl0gLSBzZXBhcmF0b3IgQWxpZ25tZW50XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWyRwcm90b3R5cGUtc2VwYXJhdG9yLWhlaWdodF0gLSBXaWR0aFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoXSAtIEhlaWdodFxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmRcbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvcCBbJHByb3RvdHlwZS1zZXBhcmF0b3ItbWFyZ2luLXRvcF0gLSBNYXJnaW4gVG9wXG5AbWl4aW4gc2VwYXJhdG9yIChcbiAgJGFsaWduOiAkcHJvdG90eXBlLXNlcGFyYXRvci1hbGlnbixcbiAgJGhlaWdodDogJHByb3RvdHlwZS1zZXBhcmF0b3ItaGVpZ2h0LFxuICAkd2lkdGg6ICRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoLFxuICAkYmFja2dyb3VuZDogJHByb3RvdHlwZS1zZXBhcmF0b3ItYmFja2dyb3VuZCxcbiAgJHRvcDogJHByb3RvdHlwZS1zZXBhcmF0b3ItbWFyZ2luLXRvcFxuKSB7XG4gIHRleHQtYWxpZ246ICRhbGlnbiAhaW1wb3J0YW50O1xuXHRAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUpO1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICBtYXJnaW46ICR0b3AgYXV0byAwO1xuXG4gICAgQGlmICRhbGlnbiA9PSBsZWZ0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGlmICRhbGlnbiA9PSByaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXNlcGFyYXRvciB7XG5cdC5zZXBhcmF0b3ItY2VudGVyIHtcblx0XHRAaW5jbHVkZSBzZXBhcmF0b3IoY2VudGVyKTtcblx0fVxuXG4gIC5zZXBhcmF0b3ItbGVmdCB7XG4gICAgQGluY2x1ZGUgc2VwYXJhdG9yKGxlZnQpO1xuICB9XG5cbiAgLnNlcGFyYXRvci1yaWdodCB7XG4gICAgQGluY2x1ZGUgc2VwYXJhdG9yKHJpZ2h0KTtcbiAgfVxuXG5cdEBpZiAoJHByb3RvdHlwZS1zZXBhcmF0b3ItYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1zZXBhcmF0b3ItY2VudGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNlcGFyYXRvcihjZW50ZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuI3skc2l6ZX0tc2VwYXJhdG9yLWxlZnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2VwYXJhdG9yKGxlZnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuI3skc2l6ZX0tc2VwYXJhdG9yLXJpZ2h0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNlcGFyYXRvcihyaWdodCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXBvc2l0aW9uXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBwb3NpdGlvbiBoZWxwZXJzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1wb3NpdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBwb3NpdGlvbmAgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1wb3NpdGlvbjogKFxuICBzdGF0aWMsXG4gIHJlbGF0aXZlLFxuICBhYnNvbHV0ZSxcbiAgZml4ZWRcbikgIWRlZmF1bHQ7XG5cbi8vLyB6LWluZGV4IGZvciBmaXhlZCBwb3NpdGlvbmluZ1xuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1wb3NpdGlvbi16LWluZGV4OiA5NzUgIWRlZmF1bHQ7XG5cbi8vLyBQb3NpdGlvbiBjbGFzc2VzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLXBvc2l0aW9uYCwgd2hlcmVhcyBhbGwgdGhlIG9mZnNldCB2YWx1ZXMgYXJlIG11bHRpcGxpZWQgYnkgYCRnbG9iYWwtcG9zaXRpb25gIHdoaWNoIGJ5IGRlZmF1bHQgaXMgZXF1YWwgdG8gYDFyZW1gLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcG9zaXRpb24gW10gUG9zaXRpb24gY2xhc3NlcywgRWl0aGVyIGBzdGF0aWNgLCBgcmVsYXRpdmVgLCBgYWJzb2x1dGVgIG9yIGBmaXhlZGBcbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvcCBbbnVsbF0gLSBUb3Agb2Zmc2V0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyaWdodCBbbnVsbF0gLSBSaWdodCBvZmZzZXRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJvdHRvbSBbbnVsbF0gLSBCb3R0b20gb2Zmc2V0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsZWZ0IFtudWxsXSAtIExlZnQgb2Zmc2V0XG5AbWl4aW4gcG9zaXRpb24oXG4gICRwb3NpdGlvbixcbiAgJHRvcDogbnVsbCxcbiAgJHJpZ2h0OiBudWxsLFxuICAkYm90dG9tOiBudWxsLFxuICAkbGVmdDogbnVsbFxuKSB7XG4gIHBvc2l0aW9uOiAkcG9zaXRpb24gIWltcG9ydGFudDtcbiAgQGlmICR0b3AgIT0gbnVsbCB7XG4gICAgdG9wOiAkdG9wICogJGdsb2JhbC1wb3NpdGlvbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkcmlnaHQgIT0gbnVsbCB7XG4gICAgcmlnaHQ6ICRyaWdodCAqICRnbG9iYWwtcG9zaXRpb24gIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJGJvdHRvbSAhPSBudWxsIHtcbiAgICBib3R0b206ICRib3R0b20gKiAkZ2xvYmFsLXBvc2l0aW9uICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRsZWZ0ICE9IG51bGwge1xuICAgIGxlZnQ6ICRsZWZ0ICogJGdsb2JhbC1wb3NpdGlvbiAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBQb3NpdGlvbiBGaXhlZCBvbiB0b3AgY29ybmVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkei1pbmRleCBbJHByb3RvdHlwZS1wb3NpdGlvbi16LWluZGV4XSB6LWluZGV4IGZvciBgcG9zaXRpb24tZml4ZWQtdG9wYFxuQG1peGluIHBvc2l0aW9uLWZpeGVkLXRvcChcbiAgJHotaW5kZXg6ICRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleFxuKSB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCAwLCAwLCBudWxsLCAwKTtcbiAgei1pbmRleDogJHotaW5kZXg7XG59XG5cbi8vLyBQb3NpdGlvbiBGaXhlZCBvbiBib3R0b20gY29ybmVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkei1pbmRleCBbJHByb3RvdHlwZS1wb3NpdGlvbi16LWluZGV4XSB6LWluZGV4IGZvciBgcG9zaXRpb24tZml4ZWQtYm90dG9tYFxuQG1peGluIHBvc2l0aW9uLWZpeGVkLWJvdHRvbShcbiAgJHotaW5kZXg6ICRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleFxuKSB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCBudWxsLCAwLCAwLCAwKTtcbiAgei1pbmRleDogJHotaW5kZXg7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1wb3NpdGlvbiB7XG4gIC8vIFBvc2l0aW9uOiBTdGF0aWMsIFJlbGF0aXZlLCBGaXhlZCwgQWJzb2x1dGVcbiAgQGVhY2ggJHBvc2l0aW9uIGluICRwcm90b3R5cGUtcG9zaXRpb24ge1xuICAgIC5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oJHBvc2l0aW9uKTtcbiAgICB9XG4gIH1cblxuICAvLyBQb3NpdGlvbjogRml4ZWQgVG9wLCBGaXhlZCBCb3R0b21cbiAgLnBvc2l0aW9uLWZpeGVkLXRvcCB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24tZml4ZWQtdG9wO1xuICB9XG4gIC5wb3NpdGlvbi1maXhlZC1ib3R0b20ge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uLWZpeGVkLWJvdHRvbTtcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1wb3NpdGlvbi1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIC8vIFBvc2l0aW9uOiBTdGF0aWMsIFJlbGF0aXZlLCBGaXhlZCwgQWJzb2x1dGVcbiAgICAgICAgQGVhY2ggJHBvc2l0aW9uIGluICRwcm90b3R5cGUtcG9zaXRpb24ge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAuI3skc2l6ZX0tcG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oJHBvc2l0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQb3NpdGlvbjogRml4ZWQgVG9wLCBGaXhlZCBCb3R0b21cbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tcG9zaXRpb24tZml4ZWQtdG9wIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uLWZpeGVkLXRvcDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tcG9zaXRpb24tZml4ZWQtYm90dG9tIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uLWZpeGVkLWJvdHRvbTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtb3ZlcmZsb3dcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIG92ZXJmbG93IGhlbHBlciBjbGFzc2VzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1vdmVyZmxvdy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBvdmVyZmxvd2AgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1vdmVyZmxvdzogKFxuICB2aXNpYmxlLFxuICBoaWRkZW4sXG4gIHNjcm9sbFxuKSAhZGVmYXVsdDtcblxuLy8vIE92ZXJmbG93IGNsYXNzZXMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtb3ZlcmZsb3dgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvdmVyZmxvdyBbXSBPdmVyZmxvdyBjbGFzc2VzXG5AbWl4aW4gb3ZlcmZsb3coJG92ZXJmbG93KSB7XG4gIG92ZXJmbG93OiAkb3ZlcmZsb3cgIWltcG9ydGFudDtcbn1cblxuLy8vIE92ZXJmbG93IGNsYXNzZXMgb24gaG9yaXpvbnRhbCBheGlzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLW92ZXJmbG93YFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3ZlcmZsb3cgW10gT3ZlcmZsb3cgY2xhc3NlcyAoaG9yaXpvbnRhbCBheGlzKVxuQG1peGluIG92ZXJmbG93LXgoJG92ZXJmbG93KSB7XG4gIG92ZXJmbG93LXg6ICRvdmVyZmxvdyAhaW1wb3J0YW50O1xufVxuXG4vLy8gT3ZlcmZsb3cgY2xhc3NlcyBvbiB2ZXJ0aWNhbCBheGlzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLW92ZXJmbG93YFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3ZlcmZsb3cgW10gT3ZlcmZsb3cgY2xhc3NlcyAodmVydGljYWwgYXhpcylcbkBtaXhpbiBvdmVyZmxvdy15KCRvdmVyZmxvdykge1xuICBvdmVyZmxvdy15OiAkb3ZlcmZsb3cgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLW92ZXJmbG93IHtcbiAgQGVhY2ggJG92ZXJmbG93IGluICRwcm90b3R5cGUtb3ZlcmZsb3cge1xuICAgIC5vdmVyZmxvdy0jeyRvdmVyZmxvd30ge1xuICAgICAgQGluY2x1ZGUgb3ZlcmZsb3coJG92ZXJmbG93KTtcbiAgICB9XG4gICAgLm92ZXJmbG93LXgtI3skb3ZlcmZsb3d9IHtcbiAgICAgIEBpbmNsdWRlIG92ZXJmbG93LXgoJG92ZXJmbG93KTtcbiAgICB9XG4gICAgLm92ZXJmbG93LXktI3skb3ZlcmZsb3d9IHtcbiAgICAgIEBpbmNsdWRlIG92ZXJmbG93LXkoJG92ZXJmbG93KTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtb3ZlcmZsb3ctYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkb3ZlcmZsb3cgaW4gJHByb3RvdHlwZS1vdmVyZmxvdyB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1vdmVyZmxvdy0jeyRvdmVyZmxvd30ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBvdmVyZmxvdygkb3ZlcmZsb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLiN7JHNpemV9LW92ZXJmbG93LXgtI3skb3ZlcmZsb3d9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgb3ZlcmZsb3cteCgkb3ZlcmZsb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLiN7JHNpemV9LW92ZXJmbG93LXktI3skb3ZlcmZsb3d9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgb3ZlcmZsb3cteSgkb3ZlcmZsb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1kaXNwbGF5XG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBkaXNwbGF5IGNsYXNzZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWRpc3BsYXktYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgZGlzcGxheWAgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1kaXNwbGF5OiAoXG4gIGlubGluZSxcbiAgaW5saW5lLWJsb2NrLFxuICBibG9jayxcbiAgdGFibGUsXG4gIHRhYmxlLWNlbGxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEaXNwbGF5IGNsYXNzZXMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtZGlzcGxheWBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW10gRGlzcGxheSBjbGFzc2VzXG5AbWl4aW4gZGlzcGxheSgkZGlzcGxheSkge1xuICBkaXNwbGF5OiAkZGlzcGxheSAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtZGlzcGxheSB7XG4gIEBlYWNoICRkaXNwbGF5IGluICRwcm90b3R5cGUtZGlzcGxheSB7XG4gICAgLmRpc3BsYXktI3skZGlzcGxheX0ge1xuICAgICAgQGluY2x1ZGUgZGlzcGxheSgkZGlzcGxheSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWRpc3BsYXktYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkZGlzcGxheSBpbiAkcHJvdG90eXBlLWRpc3BsYXkge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAuI3skc2l6ZX0tZGlzcGxheS0jeyRkaXNwbGF5fSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGRpc3BsYXkoJGRpc3BsYXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1ib3JkZXItYm94XG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBib3JkZXIgYm94LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtYm9yZGVyLWJveC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYm94IHV0aWxpdHlcbkBtaXhpbiBib3JkZXItYm94IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtYm9yZGVyLWJveCB7XG4gIC5ib3JkZXItYm94IHtcbiAgICBAaW5jbHVkZSBib3JkZXItYm94O1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWJvcmRlci1ib3gtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1ib3JkZXItYm94IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1ib3g7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWJvcmRlci1ub25lXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBib3JkZXIgbm9uZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWJvcmRlci1ub25lLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBub25lIHV0aWxpdHlcbkBtaXhpbiBib3JkZXItbm9uZSB7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtYm9yZGVyLW5vbmUge1xuICAuYm9yZGVyLW5vbmUge1xuICAgIEBpbmNsdWRlIGJvcmRlci1ub25lO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWJvcmRlci1ub25lLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tYm9yZGVyLW5vbmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLW5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXNpemluZ1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igc3BhY2luZyBjbGFzc2VzIChtYXJnaW4gYW5kIHBhZGRpbmcpXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1zaXppbmctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgc2l6aW5nYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXNpemluZzogKFxuICB3aWR0aCxcbiAgaGVpZ2h0XG4pICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBzaXplcy5cbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtc2l6ZXM6IChcbiAgMjU6IDI1JSxcbiAgNTA6IDUwJSxcbiAgNzU6IDc1JSxcbiAgMTAwOiAxMDAlXG4pICFkZWZhdWx0O1xuXG4vLy8gTWF4IFdpZHRoIDEwMCB1dGlsaXR5LlxuQG1peGluIG1heC13aWR0aC0xMDAge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLy8vIE1heCBIZWlnaHQgMTAwIHV0aWxpdHkuXG5AbWl4aW4gbWF4LWhlaWdodC0xMDAge1xuICBtYXgtaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1zaXppbmcge1xuICAvLyBFbGVtZW50IFNpemluZ1xuICBAZWFjaCAkc2l6aW5nIGluICRwcm90b3R5cGUtc2l6aW5nIHtcbiAgICBAZWFjaCAkbGVuZ3RoLCAkcGVyY2VudGFnZSBpbiAkcHJvdG90eXBlLXNpemVzIHtcbiAgICAgIC4jeyRzaXppbmd9LSN7JGxlbmd0aH0ge1xuICAgICAgICAjeyRzaXppbmd9OiAkcGVyY2VudGFnZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE1heCB3aWR0aCAmIGhlaWdodFxuICAubWF4LXdpZHRoLTEwMCB7XG4gICAgQGluY2x1ZGUgbWF4LXdpZHRoLTEwMDtcbiAgfVxuICAubWF4LWhlaWdodC0xMDAge1xuICAgIEBpbmNsdWRlIG1heC1oZWlnaHQtMTAwO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXNpemluZy1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgQGVhY2ggJHNpemluZyBpbiAkcHJvdG90eXBlLXNpemluZyB7XG4gICAgICAgICAgICBAZWFjaCAkbGVuZ3RoLCAkcGVyY2VudGFnZSBpbiAkcHJvdG90eXBlLXNpemVzIHtcbiAgICAgICAgICAgICAgLiN7JHNpemV9LSN7JHNpemluZ30tI3skbGVuZ3RofSB7XG4gICAgICAgICAgICAgICAgI3skc2l6aW5nfTogJHBlcmNlbnRhZ2UgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1zcGFjaW5nXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBzcGFjaW5nIGNsYXNzZXMgKG1hcmdpbiBhbmQgcGFkZGluZylcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXNwYWNpbmctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBudW1iZXIgb2Ygc3BhY2VycyBjb3VudCAobWFyZ2luIGFuZCBwYWRkaW5nKVxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1zcGFjZXJzLWNvdW50OiAzICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGhlbHBlciBtaXhpbiwgYWxsIHRoZSB2YWx1ZXMgYXJlIG11bHRpcGxpZWQgYnkgYCRnbG9iYWwtbWFyZ2luYCB3aGljaCBieSBkZWZhdWx0IGlzIGVxdWFsIHRvIGAxcmVtYFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG9wIFtudWxsXSAtIE1hcmdpbiBUb3Bcbi8vLyBAcGFyYW0ge051bWJlcn0gJHJpZ2h0IFtudWxsXSAtIE1hcmdpbiBSaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYm90dG9tIFtudWxsXSAtIE1hcmdpbiBCb3R0b21cbi8vLyBAcGFyYW0ge051bWJlcn0gJGxlZnQgW251bGxdIC0gTWFyZ2luIExlZnRcbkBtaXhpbiBtYXJnaW4oXG4gICR0b3A6IG51bGwsXG4gICRyaWdodDogbnVsbCxcbiAgJGJvdHRvbTogbnVsbCxcbiAgJGxlZnQ6IG51bGxcbikge1xuICBAaWYgJHRvcCAhPSBudWxsIHtcbiAgICBtYXJnaW4tdG9wOiAkdG9wICogJGdsb2JhbC1tYXJnaW4gIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJHJpZ2h0ICE9IG51bGwge1xuICAgIG1hcmdpbi1yaWdodDogJHJpZ2h0ICogJGdsb2JhbC1tYXJnaW4gIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJGJvdHRvbSAhPSBudWxsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkYm90dG9tICogJGdsb2JhbC1tYXJnaW4gIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJGxlZnQgIT0gbnVsbCB7XG4gICAgbWFyZ2luLWxlZnQ6ICRsZWZ0ICogJGdsb2JhbC1tYXJnaW4gIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gUGFkZGluZyBoZWxwZXIgbWl4aW4sIGFsbCB0aGUgdmFsdWVzIGFyZSBtdWx0aXBsaWVkIGJ5IGAkZ2xvYmFsLXBhZGRpbmdgIHdoaWNoIGJ5IGRlZmF1bHQgaXMgZXF1YWwgdG8gYDFyZW1gXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b3AgW251bGxdIC0gUGFkZGluZyBUb3Bcbi8vLyBAcGFyYW0ge051bWJlcn0gJHJpZ2h0IFtudWxsXSAtIFBhZGRpbmcgUmlnaHRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJvdHRvbSBbbnVsbF0gLSBQYWRkaW5nIEJvdHRvbVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGVmdCBbbnVsbF0gLSBQYWRkaW5nIExlZnRcbkBtaXhpbiBwYWRkaW5nKFxuICAkdG9wOiBudWxsLFxuICAkcmlnaHQ6IG51bGwsXG4gICRib3R0b206IG51bGwsXG4gICRsZWZ0OiBudWxsXG4pIHtcbiAgQGlmICR0b3AgIT0gbnVsbCB7XG4gICAgcGFkZGluZy10b3A6ICR0b3AgKiAkZ2xvYmFsLXBhZGRpbmcgIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJHJpZ2h0ICE9IG51bGwge1xuICAgIHBhZGRpbmctcmlnaHQ6ICRyaWdodCAqICRnbG9iYWwtcGFkZGluZyAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkYm90dG9tICE9IG51bGwge1xuICAgIHBhZGRpbmctYm90dG9tOiAkYm90dG9tICogJGdsb2JhbC1wYWRkaW5nICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRsZWZ0ICE9IG51bGwge1xuICAgIHBhZGRpbmctbGVmdDogJGxlZnQgKiAkZ2xvYmFsLXBhZGRpbmcgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gTWFyZ2luIGNsYXNzZXMgZm9yIHNwZWNpZmljIGRpcmVjdGlvbiBwcm9wZXJ0aWVzXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXIgW10gRGlyZWN0aW9uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzcGFjZXIgW10gU3BhY2VyXG5AbWl4aW4gbWFyZ2luLWRpcmVjdGlvbigkZGlyLCAkc3BhY2VyKSB7XG4gIEBpZiAoJGRpciA9PSB0b3ApIHsgXG4gICAgQGluY2x1ZGUgbWFyZ2luKCR0b3A6ICRzcGFjZXIpOyBcbiAgfVxuICBAZWxzZSBpZiAoJGRpciA9PSByaWdodCkgeyBcbiAgICBAaW5jbHVkZSBtYXJnaW4oJHJpZ2h0OiAkc3BhY2VyKTsgXG4gIH1cbiAgQGVsc2UgaWYgKCRkaXIgPT0gYm90dG9tKSB7IFxuICAgIEBpbmNsdWRlIG1hcmdpbigkYm90dG9tOiAkc3BhY2VyKTsgXG4gIH1cbiAgQGVsc2UgaWYgKCRkaXIgPT0gbGVmdCkgeyBcbiAgICBAaW5jbHVkZSBtYXJnaW4oJGxlZnQ6ICRzcGFjZXIpOyBcbiAgfVxuICBAZWxzZSBpZiAoJGRpciA9PSBob3Jpem9udGFsKSB7IFxuICAgIEBpbmNsdWRlIG1hcmdpbigkcmlnaHQ6ICRzcGFjZXIsICRsZWZ0OiAkc3BhY2VyKTsgXG4gIH1cbiAgQGVsc2UgaWYgKCRkaXIgPT0gdmVydGljYWwpIHsgXG4gICAgQGluY2x1ZGUgbWFyZ2luKCR0b3A6ICRzcGFjZXIsICRib3R0b206ICRzcGFjZXIpOyBcbiAgfVxufVxuXG4vLy8gUGFkZGluZyBjbGFzc2VzIGZvciBzcGVjaWZpYyBkaXJlY3Rpb24gcHJvcGVydGllc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlyIFtdIERpcmVjdGlvblxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2VyIFtdIFNwYWNlclxuQG1peGluIHBhZGRpbmctZGlyZWN0aW9uKCRkaXIsICRzcGFjZXIpIHtcbiAgQGlmICgkZGlyID09IHRvcCkgeyBcbiAgICBAaW5jbHVkZSBwYWRkaW5nKCR0b3A6ICRzcGFjZXIpOyBcbiAgfVxuICBAZWxzZSBpZiAoJGRpciA9PSByaWdodCkgeyBcbiAgICBAaW5jbHVkZSBwYWRkaW5nKCRyaWdodDogJHNwYWNlcik7IFxuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IGJvdHRvbSkgeyBcbiAgICBAaW5jbHVkZSBwYWRkaW5nKCRib3R0b206ICRzcGFjZXIpOyBcbiAgfVxuICBAZWxzZSBpZiAoJGRpciA9PSBsZWZ0KSB7IFxuICAgIEBpbmNsdWRlIHBhZGRpbmcoJGxlZnQ6ICRzcGFjZXIpOyBcbiAgfVxuICBAZWxzZSBpZiAoJGRpciA9PSBob3Jpem9udGFsKSB7IFxuICAgIEBpbmNsdWRlIHBhZGRpbmcoJHJpZ2h0OiAkc3BhY2VyLCAkbGVmdDogJHNwYWNlcik7IFxuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IHZlcnRpY2FsKSB7IFxuICAgIEBpbmNsdWRlIHBhZGRpbmcoJHRvcDogJHNwYWNlciwgJGJvdHRvbTogJHNwYWNlcik7IFxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1zcGFjaW5nIHtcbiAgQGZvciAkc3BhY2VyIGZyb20gMCB0aHJvdWdoICRwcm90b3R5cGUtc3BhY2Vycy1jb3VudCB7XG4gICAgXG4gICAgQGVhY2ggJHByb3AgaW4gKG1hcmdpbiwgcGFkZGluZykge1xuICAgICAgLy8gQWxsIFNpZGVzXG4gICAgICAuI3skcHJvcH0tI3skc3BhY2VyfSB7XG4gICAgICAgIEBpZiAoJHByb3AgPT0gbWFyZ2luKSB7IFxuICAgICAgICAgIG1hcmdpbjogJHNwYWNlciAqICRnbG9iYWwtbWFyZ2luICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2UgaWYgKCRwcm9wID09IHBhZGRpbmcpIHsgXG4gICAgICAgICAgcGFkZGluZzogJHNwYWNlciAqICRnbG9iYWwtcGFkZGluZyAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBlYWNoICRkaXIgaW4gKHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCwgaG9yaXpvbnRhbCwgdmVydGljYWwpIHtcbiAgICAgICAgLy8gVG9wIFNpZGVcbiAgICAgICAgLiN7JHByb3B9LSN7JGRpcn0tI3skc3BhY2VyfSB7XG4gICAgICAgICAgQGlmICgkcHJvcCA9PSBtYXJnaW4pIHsgXG4gICAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4tZGlyZWN0aW9uKCRkaXIsICRzcGFjZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAZWxzZSBpZiAoJHByb3AgPT0gcGFkZGluZykge1xuICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJGRpciwgJHNwYWNlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXNwYWNpbmctYnJlYWtwb2ludHMpIHtcbiAgICBAZm9yICRzcGFjZXIgZnJvbSAwIHRocm91Z2ggJHByb3RvdHlwZS1zcGFjZXJzLWNvdW50IHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgLiN7JHNpemV9IHtcbiAgICAgICAgICAgICAgQGVhY2ggJHByb3AgaW4gKG1hcmdpbiwgcGFkZGluZykge1xuICAgICAgICAgICAgICAgIC8vIEFsbCBTaWRlc1xuICAgICAgICAgICAgICAgICYtI3skcHJvcH0tI3skc3BhY2VyfSB7XG4gICAgICAgICAgICAgICAgICBAaWYgKCRwcm9wID09IG1hcmdpbikgeyBcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAkc3BhY2VyICogJGdsb2JhbC1tYXJnaW4gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBlbHNlIGlmICgkcHJvcCA9PSBwYWRkaW5nKSB7IFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkc3BhY2VyICogJGdsb2JhbC1wYWRkaW5nICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGVhY2ggJGRpciBpbiAodG9wLCByaWdodCwgYm90dG9tLCBsZWZ0LCBob3Jpem9udGFsLCB2ZXJ0aWNhbCkge1xuICAgICAgICAgICAgICAgICAgLy8gVG9wIFNpZGVcbiAgICAgICAgICAgICAgICAgICYtI3skcHJvcH0tI3skZGlyfS0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkcHJvcCA9PSBtYXJnaW4pIHsgXG4gICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWFyZ2luLWRpcmVjdGlvbigkZGlyLCAkc3BhY2VyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAZWxzZSBpZiAoJHByb3AgPT0gcGFkZGluZykgeyBcbiAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbigkZGlyLCAkc3BhY2VyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvcigkc2l6ZSkge1xuICAkc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgLy8gTWF4IHZhbHVlIGlzIDAuMnB4IHVuZGVyIHRoZSBuZXh0IGJyZWFrcG9pbnQgKDAuMDIgLyAxNiA9IDAuMDAxMjUpLlxuICAvLyBVc2UgYSBwcmVjaXNpb24gdW5kZXIgMXB4IHRvIHN1cHBvcnQgYnJvd3NlciB6b29tLCBidXQgbm90IHRvIGxvdyB0byBhdm9pZCByb3VuZGluZy5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzExMzEzXG4gICRzaXplOiAtemYtYnAtdG8tZW0oJHNpemUpIC0gLjAwMTI1O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCB3aXRoaW4gYSBjZXJ0YWluIGJyZWFrcG9pbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvci1vbmx5KCRzaXplKSB7XG4gICRsb3dlci1ib3VuZC1zaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkdXBwZXItYm91bmQtc2l6ZTogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJHNpemUpO1xuXG4gIC8vIG1vcmUgb2Z0ZW4gdGhhbiBub3QgdGhpcyB3aWxsIGJlIGNvcnJlY3QsIGp1c3Qgb25lIHRpbWUgcm91bmQgdGhlIGxvb3AgaXQgd29uJ3Qgc28gc2V0IGluIHNjb3BlIGhlcmVcbiAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpIC0gLjAwMTI1O1xuICAvLyB0ZXN0IGFjdHVhbCBsb3dlci1ib3VuZC1zaXplLCBpZiAwIHNldCBpdCB0byAwZW1cbiAgQGlmIHN0cmlwLXVuaXQoJGxvd2VyLWJvdW5kLXNpemUpID09IDAge1xuICAgICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKTtcbiAgfVxuXG4gIEBpZiAkdXBwZXItYm91bmQtc2l6ZSA9PSBudWxsIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICR1cHBlci1ib3VuZDogLXpmLWJwLXRvLWVtKCR1cHBlci1ib3VuZC1zaXplKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3Itb25seSgkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzIHtcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XG4gIC5zaG93LWZvci1zcixcbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG5cbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICB9XG4gIH1cblxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgTWl4aW4gRnVsbHdpZHRoIEJhY2tncm91bmQgICAgICAgICAgICA9XHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbkBtaXhpbiBteC1iYWNrZ3JvdW5kLWNvbG9yKCRjb2xvcjogI0ZGRkZGRil7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xyXG59XHJcblxyXG4vKj09PT09ICBFbmQgb2YgTWl4aW4gRnVsbHdpZHRoIEJhY2tncm91bmQgID09PT09PSovXHJcbiIsIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbj0gICAgICAgICAgICBHZW5lcmF0ZSBGb250IEZhY2UgICAgICAgICAgICA9XHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4kZm9udHM6ICgpICFkZWZhdWx0O1xyXG5cclxuLy9Xb2ZmIGlzIGEgc3Ryb25nbHkgc3VwcG9ydGVkIGZvbnQgdHlwZSBieSBhbGwgbW9kZXJuIGJyb3dzZXJzIGJ1dCBhbHNvIHN1cHBvcnRlZCBieSBvbGQgdmVyc2lvbnMgb2YgSUVcclxuLy9odHRwczovL2hlbHAud2ViZmxvdy5jb20vYXJ0aWNsZS9saXN0LW9mLWZvbnQtZmlsZS10eXBlcy1mb3ItbWF4aW11bS1icm93c2VyLXN1cHBvcnRcclxuJGZvbnQtZmlsZS10eXBlczogJ3dvZmYnICFkZWZhdWx0O1xyXG5cclxuJGZvbnRzLXBhdGg6ICcuLi9mb250cycgIWRlZmF1bHQ7XHJcblxyXG4vL2h0dHBzOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvc2Fzcy9zdHItcmVwbGFjZS1mdW5jdGlvbi9cclxuQGZ1bmN0aW9uIHN0ci1yZXBsYWNlKCRzdHJpbmcsICRzZWFyY2gsICRyZXBsYWNlOiAnJykge1xyXG4gICRpbmRleDogc3RyLWluZGV4KCRzdHJpbmcsICRzZWFyY2gpO1xyXG4gIEBpZiAkaW5kZXgge1xyXG4gICAgQHJldHVybiBzdHItc2xpY2UoJHN0cmluZywgMSwgJGluZGV4IC0gMSkgKyAkcmVwbGFjZSArIHN0ci1yZXBsYWNlKHN0ci1zbGljZSgkc3RyaW5nLCAkaW5kZXggKyBzdHItbGVuZ3RoKCRzZWFyY2gpKSwgJHNlYXJjaCwgJHJlcGxhY2UpO1xyXG4gIH1cclxuICBAcmV0dXJuICRzdHJpbmc7XHJcbn1cclxuXHJcbkBtaXhpbiBnZW5lcmF0ZS1mb250LWZhY2UoJGZvbnQtZmFtaWx5LCAkc3JjLCAkZm9udC13ZWlnaHQsICRmb250LXN0eWxlOiBub3JtYWwpe1xyXG4gIEBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6ICcnICsgJGZvbnQtZmFtaWx5ICsgJyc7XHJcbiAgICBzcmM6ICRzcmM7XHJcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0O1xyXG4gICAgZm9udC1zdHlsZTogJGZvbnQtc3R5bGU7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBmb250U3JjKCRmb250cy1wYXRoLCAkZm9udC1mYW1pbHksICRmb250LWZpbGUsICRmb250LXR5cGVzOiAkZm9udC1maWxlLXR5cGVzKXtcclxuICAvL1doeSB0aGUgc21pbGV5IGZhY2U/IGh0dHBzOi8vd3d3LnBhdWxpcmlzaC5jb20vMjAxMC9mb250LWZhY2UtZ290Y2hhcy8jc21pbGV5XHJcbiAgJHNyYzogKGxvY2FsKCfimLonKSk7XHJcbiAgJGZhbWlseS1mb2xkZXI6IHN0ci1yZXBsYWNlKCRmb250LWZhbWlseSwgJyAnLCAnLScpO1xyXG4gIEBlYWNoICR0eXBlIGluICRmb250LXR5cGVzIHtcclxuICAgICRzcmM6IGFwcGVuZCgkc3JjLCB1cmwoJyN7JGZvbnRzLXBhdGh9I3tudGgoJGZvbnQtZmlsZSwgMSl9LiN7JHR5cGV9JykgZm9ybWF0KCcjeyR0eXBlfScpLCAnY29tbWEnKTtcclxuICB9XHJcbiAgQHJldHVybiAkc3JjO1xyXG59XHJcblxyXG5AbWl4aW4gZm9udC1mYWNlKCRmb250czogJGZvbnRzLCAkdHlwZXM6ICRmb250LWZpbGUtdHlwZXMsICRwYXRoOiAkZm9udHMtcGF0aCl7XHJcbiAgQGVhY2ggJGZvbnQtZmFtaWx5LCAkZm9udC1zZXQgaW4gJGZvbnRzIHtcclxuICAgIEBlYWNoICRmb250LXdlaWdodCwgJGZvbnQtZmlsZSBpbiAkZm9udC1zZXQge1xyXG4gICAgICBAaWYgdHlwZS1vZigkZm9udC1maWxlKSA9PSAnc3RyaW5nJyB7XHJcbiAgICAgICAgJHNyYzogZm9udFNyYygkcGF0aCwgJGZvbnQtZmFtaWx5LCAkZm9udC1maWxlLCAkdHlwZXMpO1xyXG4gICAgICAgIEBpbmNsdWRlIGdlbmVyYXRlLWZvbnQtZmFjZSgkZm9udC1mYW1pbHksICRzcmMsICRmb250LXdlaWdodCl7XHJcbiAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9O1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICBAZWFjaCAkZm9udC1zdHlsZSwgJGZpbGUgaW4gJGZvbnQtZmlsZSB7XHJcbiAgICAgICAgICAkc3JjOiBmb250U3JjKCRwYXRoLCAkZm9udC1mYW1pbHksICRmaWxlLCAkdHlwZXMpO1xyXG4gICAgICAgICAgQGluY2x1ZGUgZ2VuZXJhdGUtZm9udC1mYWNlKCRmb250LWZhbWlseSwgJHNyYywgJGZvbnQtd2VpZ2h0LCAkZm9udC1zdHlsZSl7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vKj09PT09ICBFbmQgb2YgR2VuZXJhdGUgRm9udCBGYWNlICA9PT09PT0qL1xyXG4iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuPSAgICAgICAgICAgIE1peGluIExpc3RzIFN0eWxpbmcgICAgICAgICAgICA9XHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG4vKipcclxuICogTWl4aW5zIGZ1ZXIgbm9ybWFsZSBMaXN0ZW4gdW5kIERMIExpc3RlblxyXG5cclxuKi9cclxuXHJcblxyXG5AbWl4aW4gbXgtbGlzdC1kbC1pY29uKCl7XHJcbiAgcGFkZGluZy1sZWZ0OiA0NXB4O1xyXG4gIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCdib3R0b20nLDIpO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogMzFweDtcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDVweDtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gIGR0e1xyXG4gICAgQGluY2x1ZGUgdHlwZXNldC1zdWJoZWFkaW5nLTIoKTtcclxuICB9XHJcbn1cclxuXHJcblxyXG5AbWl4aW4gbXgtbGlzdC1pY29uKCRpY29uOiAnaWNvbi1zdGVybi5zdmcnKXtcclxuICBsaXtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCdib3R0b20nLCAwLjUpO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xyXG4gICAgQGluY2x1ZGUgdHlwZXNldC1mb290bm90ZSgpO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgJjpiZWZvcmV7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XHJcbiAgICAgIHRvcDogMXB4O1xyXG4gICAgICBsZWZ0OiAwcHg7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgaGVpZ2h0OiAxOXB4O1xyXG4gICAgICB3aWR0aDogMTlweDtcclxuICAgICAgYmFja2dyb3VuZDogdXJsKCRQQVRILUFTU0VULUlDT04gKyAkaWNvbikgMCAwIG5vLXJlcGVhdDtcclxuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyo9PT09PSAgRW5kIG9mIE1peGluIExpc3RzIFN0eWxpbmcgID09PT09PSovXHJcbiIsIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuPSAgICAgICAgICAgIE1peGluIFBhaW50c3Ryb2tlICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG5AbWl4aW4gbXgtcGFpbnRzdHJva2UoJHNpemUpe1xyXG5cclxuICBiYWNrZ3JvdW5kOiB1cmwoJFBBVEgtQVNTRVRTLUlNRyArIFwicGluc2Vsc3RyaWNoLnBuZ1wiKSAwIDEwMCUgbm8tcmVwZWF0O1xyXG4gIGJhY2tncm91bmQtc2l6ZTogJHNpemU7XHJcbn1cclxuXHJcbi8qPT09PT0gIEVuZCBvZiBNaXhpbiBQYWludHN0cm9rZSAgPT09PT09Ki9cclxuXHJcblxyXG4iLCIvKipcclxuTW9kdWxlIHNpbmQgJ0JhdXN0ZWluZScsIHdlbGNoZSB1bnRlciBhbmRlcmVtIGluIExheW91dHMgYmVudXR6dCB3ZXJkZW4ga29lbm5lbi5cclxuU2llIGhhYmVuIGtlaW5lIFBvc2l0aW9uc2FuZ2FiZW4sIHNvbmRlcm4gZGVmaW5pZXJlbiAnbnVyJyBkYXMgQXVzc2VoZW4sXHJcbnNwcmljaCBoaWVyIHdlcmRlbiBkaWUgc3R5bGVzIHdpZSBGYXJiZW4sIFNjaHJpZnRlbiB1c3csIGRlZmluaWVydC5cclxuICovXHJcblxyXG5AaW1wb3J0IFwiYWNjb3JkaW9uL21vZHVsZS1hY2NvcmRpb25cIjtcclxuQGltcG9ydCBcImJhbm5lci9tb2R1bGUtYmFubmVyXCI7XHJcbkBpbXBvcnQgXCJjYXJvdXNlbC9tb2R1bGUtY2Fyb3VzZWwtcHJvZmlsZVwiO1xyXG5AaW1wb3J0IFwiY2Fyb3VzZWwvbW9kdWxlLWNhcm91c2VsLXZhblwiO1xyXG5AaW1wb3J0IFwiY3RhL21vZHVsZS1jdGFcIjtcclxuQGltcG9ydCBcImdhbGxlcnkvbW9kdWxlLWdhbGxlcnktbWFzb25yeVwiO1xyXG5AaW1wb3J0IFwiaGVhZGVyL21vZHVsZS1oZWFkZXItc2l0ZVwiO1xyXG5AaW1wb3J0IFwiaGVhZGVyL21vZHVsZS1oZWFkZXItYXJ0aWNsZVwiO1xyXG5AaW1wb3J0IFwibG9nby9tb2R1bGUtbG9nb1wiO1xyXG5AaW1wb3J0IFwibG9hZGluZy1zcGlubmVyL21vZHVsZS1sb2FkaW5nLXNwaW5uZXJcIjtcclxuQGltcG9ydCBcIm5hdmlnYXRpb24vbW9kdWxlLW5hdmlnYXRpb24tYmFubmVyXCI7XHJcbkBpbXBvcnQgXCJuYXZpZ2F0aW9uL21vZHVsZS1uYXZpZ2F0aW9uLWZvb3RlclwiO1xyXG5AaW1wb3J0IFwibmF2aWdhdGlvbi9tb2R1bGUtbmF2aWdhdGlvbi1tYWluXCI7XHJcbkBpbXBvcnQgXCJuYXZpZ2F0aW9uL21vZHVsZS1uYXZpZ2F0aW9uLW9mZmNhbnZhc1wiO1xyXG5AaW1wb3J0IFwic29jaWFsL21vZHVsZS1zb2NpYWxcIjtcclxuQGltcG9ydCBcInRlYXNlci9tb2R1bGUtdGVhc2VyXCI7XHJcbkBpbXBvcnQgXCJ0ZWFzZXIvbW9kdWxlLXRlYXNlci1hdXNzdGF0dHVuZ1wiO1xyXG5AaW1wb3J0IFwidGV4dC9tb2R1bGUtdGV4dFwiO1xyXG4iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuPSAgICAgICAgICAgIE1vZHVsZSBBY2NvcmRpb24gICAgICAgICAgICA9XHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuLm1vZHVsZS1hY2NvcmRpb257XHJcbiAgQGluY2x1ZGUgZ3JpZC1yb3coKTtcclxuICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbignYm90dG9tJywyKTtcclxuXHJcbiAgLmFjY29yZGlvbi1oZWFkZXJ7XHJcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbignYm90dG9tJywxKTtcclxuICB9XHJcblxyXG4gIC5hY2NvcmRpb24td3JhcHBlcntcclxuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEyKTtcclxuXHJcbiAgICAuYWNjb3JkaW9uLXRpdGxle1xyXG4gICAgICBAaW5jbHVkZSB0eXBlc2V0LWJvZHktMigpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKXtcclxuICAubW9kdWxlLWFjY29yZGlvbntcclxuXHJcbiAgICAuYWNjb3JkaW9uLWhlYWRlcntcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTApO1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbihjZW50ZXIpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAuYWNjb3JkaW9uLXdyYXBwZXJ7XHJcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEwKTtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oY2VudGVyKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSl7XHJcbiAgLm1vZHVsZS1hY2NvcmRpb257XHJcblxyXG4gICAgLmFjY29yZGlvbi1oZWFkZXJ7XHJcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDgpO1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbihjZW50ZXIpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAuYWNjb3JkaW9uLXdyYXBwZXJ7XHJcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDgpO1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbihjZW50ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qPT09PT0gIEVuZCBvZiBNb2R1bGUgQWNjb3JkaW9uICA9PT09PT0qL1xyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2hhbmdlIHRoZSBiZWhhdmlvciBvZiBjb2x1bW5zIGRlZmluZWQgaW5zaWRlIHRoaXMgbWl4aW4gdG8gdXNlIGEgZGlmZmVyZW50IGNvbHVtbiBjb3VudC5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHJvb3QgW2ZhbHNlXVxuLy8vICAgSWYgYGZhbHNlYCwgc2VsZWN0b3JzIGluc2lkZSB0aGlzIG1peGluIHdpbGwgbmVzdCBpbnNpZGUgdGhlIHBhcmVudCBzZWxlY3Rvci5cbi8vLyAgIElmIGB0cnVlYCwgc2VsZWN0b3JzIHdpbGwgbm90IG5lc3QuXG5AbWl4aW4gZ3JpZC1jb250ZXh0KFxuICAkY29sdW1ucyxcbiAgJHJvb3Q6IGZhbHNlXG4pIHtcbiAgLy8gU3RvcmUgdGhlIGN1cnJlbnQgY29sdW1uIGNvdW50IHNvIGl0IGNhbiBiZSByZS1zZXQgbGF0ZXJcbiAgJG9sZC1ncmlkLWNvbHVtbi1jb3VudDogJGdyaWQtY29sdW1uLWNvdW50O1xuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRjb2x1bW5zICFnbG9iYWw7XG5cbiAgQGlmICRyb290IHtcbiAgICBAYXQtcm9vdCB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgb2xkIGNvbHVtbiBjb3VudFxuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRvbGQtZ3JpZC1jb2x1bW4tY291bnQgIWdsb2JhbDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIHJvdy5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIENvbHVtbiBjb3VudCBmb3IgdGhpcyByb3cuIGBudWxsYCB3aWxsIHVzZSB0aGUgZGVmYXVsdCBjb2x1bW4gY291bnQuXG4vLy8gQHBhcmFtIHtLZXl3b3Jkc30gJGJlaGF2aW9yIFtudWxsXVxuLy8vICAgTW9kaWZpY2F0aW9ucyB0byB0aGUgZGVmYXVsdCBncmlkIHN0eWxlcy4gYG5lc3RgIGluZGljYXRlcyB0aGUgcm93IHdpbGwgYmUgcGxhY2VkIGluc2lkZSBhbm90aGVyIHJvdy4gYGNvbGxhcHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29sdW1ucyBpbnNpZGUgdGhpcyByb3cgd2lsbCBub3QgaGF2ZSBwYWRkaW5nLiBgbmVzdCBjb2xsYXBzZWAgY29tYmluZXMgYm90aCBiZWhhdmlvcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGNmIFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgYSBjbGVhcmZpeC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93KFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxuICAkY2Y6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXJzKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRjZiB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEludmVydHMgdGhlIG1hcmdpbnMgb2YgYSByb3cgdG8gbmVzdCBpdCBpbnNpZGUgb2YgYSBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93LW5lc3QoJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgJG1hcmdpbjogcmVtLWNhbGMoLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICQtemYtc2l6ZSkpIC8gMiAqIC0xO1xuXG4gICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXQgYSBncmlkIHJvdyBzaXplXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG5AbWl4aW4gZ3JpZC1yb3ctc2l6ZSgkc2l6ZTogJGdyaWQtcm93LXdpZHRoKSB7XG4gIEBpZiAkc2l6ZSA9PSBleHBhbmQge1xuICAgICRzaXplOiBub25lO1xuICB9XG5cbiAgbWF4LXdpZHRoOiAkc2l6ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIHdpZHRoIG9mIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkd2lkdGggWyRncmlkLWNvbHVtbi1jb3VudF0gLSBXaWR0aCB0byBtYWtlIHRoZSBjb2x1bW4uIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXNpemUoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXNpemVcbkBtaXhpbiBncmlkLWNvbC1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tc2l6ZSgkY29sdW1ucyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgYSBjb2x1bW4gYmFzZWQgb24gYSBudW1iZXIgb2YgZmFjdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRjb2x1bW5zXG4vLy8gICBXaWR0aCBvZiB0aGUgY29sdW1uLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBwZXJjZW50YWdlIHZhbHVlIHdpbGwgbWFrZSB0aGUgY29sdW1uIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBzaW5nbGUgZGlnaXQgd2lsbCBtYWtlIHRoZSBjb2x1bW4gc3BhbiB0aGF0IG51bWJlciBvZiBjb2x1bW5zIHdpZGUsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIGNvbHVtbiBjb3VudCBvZiB0aGUgcGFyZW50IHJvdy5cbi8vLyAgIC0gQSBsaXN0IG9mIHRoZSBmb3JtYXQgXCJ4IG9mIHlcIiAod2l0aG91dCBxdW90ZXMpIHdpbGwgbWFrZSBhIGNvbHVtbiB0aGF0IGlzICp4KiBjb2x1bW5zIHdpZGUsIGFzc3VtaW5nICp5KiB0b3RhbCBjb2x1bW5zIGZvciB0aGUgcGFyZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBjYWxjdWxhdGVkIHBlcmNlbnRhZ2UgdmFsdWUuXG5AZnVuY3Rpb24gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpIHtcbiAgQHJldHVybiBmcmFjdGlvbi10by1wZXJjZW50YWdlKCRjb2x1bW5zLCAkZGVub21pbmF0b3I6ICRncmlkLWNvbHVtbi1jb3VudCk7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbJGdyaWQtY29sdW1uLWNvdW50XSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge01peGVkfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1zaXplKCRjb2x1bW5zKTtcbiAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcblxuICAvLyBHdXR0ZXJzXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyczogJGd1dHRlcnMpO1xuXG4gIC8vIFBvc2l0aW9uXG4gIEBpbmNsdWRlIGdyaWQtY29sLXBvcyhhdXRvKTtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbiByb3cuIFRoaXMgaXMgdGhlIGVxdWl2YWxlbnQgb2YgYWRkaW5nIGAucm93YCBhbmQgYC5jb2x1bW5gIHRvIHRoZSBzYW1lIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBXaWR0aCBvZiB0aGUgZ3V0dGVycyBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgY29sdW1uIHJvdy4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBncmlkLWNvbHVtbi1yb3coXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1yb3c7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgJixcbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXG5AZnVuY3Rpb24gZ3JpZC1jb2woXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnRcbikge1xuICBAcmV0dXJuIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxuQG1peGluIGdyaWQtY29sKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVycyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1yb3coKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXJvd1xuQG1peGluIGdyaWQtY29sLXJvdyhcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1yb3coJGd1dHRlcnMpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFNldCB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtblxuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRndXR0ZXIgW2F1dG9dXG4vLy8gICBTcGFjaW5nIGJldHdlZW4gY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBicmVha3BvaW50IG5hbWUgd2lsbCBtYWtlIHRoZSBndXR0ZXIgdGhlIGNvcnJlc3BvbmRpbmcgc2l6ZSBpbiB0aGUgJGd1dHRlcnMgbWFwLlxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIGd1dHRlciByZXNwb25zaXZlLCB1c2luZyB0aGUgJGd1dHRlcnMgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLWNvbHVtbi1ndXR0ZXIoXG4gICRndXR0ZXI6IGF1dG8sXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJGd1dHRlciwgJGd1dHRlcnMpIHtcbiAgICAkcGFkZGluZzogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSkgLyAyO1xuXG4gICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgfVxufVxuXG4vLy8gQ29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmVtb3ZpbmcgdGhlIHBhZGRpbmcuICoqTm90ZToqKiBvbmx5IHVzZSB0aGlzIG1peGluIHdpdGhpbiBhIGJyZWFrcG9pbnQuIFRvIGNvbGxhcHNlIGEgY29sdW1uJ3MgZ3V0dGVycyBvbiBhbGwgc2NyZWVuIHNpemVzLCB1c2UgdGhlIGAkZ3V0dGVyYCBwYXJhbWV0ZXIgb2YgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiBpbnN0ZWFkLlxuQG1peGluIGdyaWQtY29sdW1uLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKDApO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1ndXR0ZXJcbkBtaXhpbiBncmlkLWNvbC1ndXR0ZXIoXG4gICRndXR0ZXI6IGF1dG8sXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXIsICRndXR0ZXJzKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tY29sbGFwc2U7XG59XG5cbi8vLyBTZXRzIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zIHRvIG1hdGNoIGd1dHRlcnNcbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkbWFyZ2luIFthdXRvXVxuLy8vICAgVGhlIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIG1hcmdpbiB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkbWFyZ2lucyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkbWFyZ2lucyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcmdpbnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tbWFyZ2luIChcbiAgJG1hcmdpbjogYXV0byxcbiAgJG1hcmdpbnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkbWFyZ2luLCAkbWFyZ2lucykge1xuICAgICRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKTtcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBSZXBvc2l0aW9uIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJHBvc2l0aW9uIC0gSXQgY2FuIGJlOlxuLy8vICAgKiBBIG51bWJlcjogVGhlIGNvbHVtbiB3aWxsIG1vdmUgZXF1YWwgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gY291bnRcbi8vLyAgICAgc3BlY2lmaWVkLiBBIHBvc2l0aXZlIG51bWJlciB3aWxsIHB1c2ggdGhlIGNvbHVtbiB0byB0aGUgcmlnaHQsIHdoaWxlXG4vLy8gICAgIGEgbmVnYXRpdmUgbnVtYmVyIHdpbGwgcHVsbCBpdCB0byB0aGUgbGVmdC5cbi8vLyAgICogYGNlbnRlcmA6IENvbHVtbiB3aWxsIGJlIGNlbnRlcmVkXG4vLy8gICAqIGBhdXRvYDogQ29sdW1uIHdpbGwgYmUgcHVzaGVkIHRvIHRoZSBsZWZ0IChvciB0byB0aGUgcmlnaHQgZm9yIHRoZSBsYXN0IGNvbHVtbikuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKSB7XG4gIC8vIEF1dG8gcG9zaXRpb25pbmdcbiAgQGlmICRwb3NpdGlvbiA9PSBhdXRvIHtcbiAgICAmLCAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cblxuICAgIC8vIExhc3QgY29sdW1uIGFsaWdubWVudFxuICAgIEBpZiAkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSB7XG4gICAgICAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQdXNoL3B1bGxcbiAgQGVsc2UgaWYgdHlwZS1vZigkcG9zaXRpb24pID09ICdudW1iZXInIHtcbiAgICAkb2Zmc2V0OiBwZXJjZW50YWdlKCRwb3NpdGlvbiAvICRncmlkLWNvbHVtbi1jb3VudCk7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG5cbiAgLy8gQ2VudGVyIHBvc2l0aW9uaW5nXG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBjZW50ZXIge1xuICAgICYsICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKS4gRW50ZXIgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBudW1iZXIsIFwiY2VudGVyXCIgb3IgXCJhdXRvXCIuJztcbiAgfVxufVxuXG4vLy8gUmVzZXQgYSBwb3NpdGlvbiBkZWZpbml0aW9uLlxuQG1peGluIGdyaWQtY29sdW1uLXVucG9zaXRpb24ge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbihhdXRvKTtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0IGJ5IGAkbmAgY29sdW1ucy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFdpZHRoIHRvIG9mZnNldCBieS4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuQG1peGluIGdyaWQtY29sdW1uLW9mZnNldCgkbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiBncmlkLWNvbHVtbigkbik7XG59XG5cbi8vLyBEaXNhYmxlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBsYXN0IGNvbHVtbiBpbiBhIHJvdyBhbGlnbmluZyB0byB0aGUgb3Bwb3NpdGUgZWRnZS5cbkBtaXhpbiBncmlkLWNvbHVtbi1lbmQge1xuICAvLyBUaGlzIGV4dHJhIHNwZWNpZmljaXR5IGlzIHJlcXVpcmVkIGZvciB0aGUgcHJvcGVydHkgdG8gYmUgYXBwbGllZFxuICAmOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXBvc2l0aW9uXG5AbWl4aW4gZ3JpZC1jb2wtcG9zKCRwb3NpdGlvbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXVucG9zIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbjtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLW9mZnNldCgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tb2Zmc2V0XG5AbWl4aW4gZ3JpZC1jb2wtb2ZmKCRuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1lbmQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWVuZFxuQG1peGluIGdyaWQtY29sLWVuZCB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWVuZDtcbn1cbiIsIi8vIGFwcGx5IHRoZSB0eXBvZ3JhcGh5IHRvIHRoZSBzaXRlXHJcblxyXG5AbWl4aW4gbXgtdHlwZXNldCgkZm9udC1mYW1pbHksICRzdHlsZSwgJHR5cGUpIHtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xyXG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMobWFwLWdldChtYXAtZ2V0KG1hcC1nZXQoJHN0eWxlLCBcInNtYWxsXCIpLCAkdHlwZSksIFwiZm9udC1zaXplXCIpICogMXB4KTtcclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgZm9udC1zaXplOiByZW0tY2FsYyhtYXAtZ2V0KG1hcC1nZXQobWFwLWdldCgkc3R5bGUsIFwibWVkaXVtXCIpLCAkdHlwZSksIFwiZm9udC1zaXplXCIpICogMXB4KTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vL0xhcmdlLCBvbmUtb2ZmIGhlYWRlciwgdXN1YWxseSBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlIChlLmcuIGEgaGVybyBoZWFkZXIpLlxyXG5AbWl4aW4gdHlwZXNldC1kaXNwbGF5LTQoKXtcclxuICBAaW5jbHVkZSBteC10eXBlc2V0KCRoZWFkZXItZm9udC1mYW1pbHksICRoZWFkZXItc3R5bGVzLCAnaDInKTtcclxuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWlib2xkO1xyXG4gIEBpbmNsdWRlIG14LXRleHQtc2hhZG93KCRzaGFkb3ctY29sb3IpO1xyXG59XHJcblxyXG4vL0xhcmdlLCBvbmUtb2ZmIGhlYWRlciwgdXN1YWxseSBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlIChlLmcuIGEgaGVybyBoZWFkZXIpLlxyXG5AbWl4aW4gdHlwZXNldC1kaXNwbGF5LTMoKXtcclxuICBAaW5jbHVkZSBteC10eXBlc2V0KCRoZWFkZXItZm9udC1mYW1pbHksICRoZWFkZXItc3R5bGVzLCAnaDMnKTtcclxuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWlib2xkO1xyXG4gIEBpbmNsdWRlIG14LXRleHQtc2hhZG93KCRzaGFkb3ctY29sb3IpO1xyXG59XHJcblxyXG4vL0xhcmdlLCBvbmUtb2ZmIGhlYWRlciwgdXN1YWxseSBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlIChlLmcuIGEgaGVybyBoZWFkZXIpLlxyXG5AbWl4aW4gdHlwZXNldC1kaXNwbGF5LTIoKXtcclxuICBAaW5jbHVkZSBteC10eXBlc2V0KCRib2R5LWZvbnQtZmFtaWx5LCAkYm9keS1zdHlsZXMsICdib2R5MicpO1xyXG4gIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtc2VtaWJvbGQ7XHJcbiAgQGluY2x1ZGUgbXgtdGV4dC1zaGFkb3coJHNoYWRvdy1jb2xvcik7XHJcbn1cclxuXHJcbi8vTGFyZ2UsIG9uZS1vZmYgaGVhZGVyLCB1c3VhbGx5IGF0IHRoZSB0b3Agb2YgdGhlIHBhZ2UgKGUuZy4gYSBoZXJvIGhlYWRlcikuXHJcbkBtaXhpbiB0eXBlc2V0LWRpc3BsYXktMSgpe1xyXG4gIEBpbmNsdWRlIG14LXRleHQtc2hhZG93KCRzaGFkb3ctY29sb3IpO1xyXG59XHJcblxyXG4vLyBTZWN0aW9uIGhlYWRpbmcgY29ycmVzcG9uZGluZyB0byB0aGUgPGgxPiB0YWdcclxuQG1peGluIHR5cGVzZXQtaGVhZGxpbmUoKXtcclxuICBAaW5jbHVkZSBteC10eXBlc2V0KCRoZWFkZXItZm9udC1mYW1pbHksICRoZWFkZXItc3R5bGVzLCAnaDEnKTtcclxuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWlib2xkO1xyXG4gIEBpbmNsdWRlIG14LXRleHQtc2hhZG93KCRzaGFkb3ctY29sb3IpO1xyXG59XHJcblxyXG5AbWl4aW4gdHlwZXNldC1yZW50LWNhcmF2YW4oKSB7XHJcbiAgZm9udC1zaXplOiAyLjVyZW07XHJcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XHJcbiAgZm9udC13ZWlnaHQ6IDc1MDtcclxuICBsZXR0ZXItc3BhY2luZzogMTBweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi8vIFNlY3Rpb24gaGVhZGluZyBjb3JyZXNwb25kaW5nIHRvIHRoZSA8aDI+IHRhZ1xyXG5AbWl4aW4gdHlwZXNldC10aXRsZSgpe1xyXG4gIEBpbmNsdWRlIG14LXR5cGVzZXQoJGhlYWRlci1mb250LWZhbWlseSwgJGhlYWRlci1zdHlsZXMsICdoMicpO1xyXG4gIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtc2VtaWJvbGQ7XHJcbiAgQGluY2x1ZGUgbXgtdGV4dC1zaGFkb3coJHNoYWRvdy1jb2xvcik7XHJcbn1cclxuXHJcbi8vIFNlY3Rpb24gaGVhZGluZyBjb3JyZXNwb25kaW5nIHRvIHRoZSA8aDM+IHRhZy5cclxuQG1peGluIHR5cGVzZXQtc3ViaGVhZGluZy0yKCl7XHJcbiAgQGluY2x1ZGUgbXgtdHlwZXNldCgkaGVhZGVyLWZvbnQtZmFtaWx5LCAkaGVhZGVyLXN0eWxlcywgJ2g0Jyk7XHJcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pYm9sZDtcclxuICBAaW5jbHVkZSBteC10ZXh0LXNoYWRvdygkc2hhZG93LWNvbG9yKTtcclxufVxyXG5cclxuQG1peGluIHR5cGVzZXQtc3ViaGVhZGluZy0yLWxhcmdlKCl7XHJcbiAgQGluY2x1ZGUgbXgtdHlwZXNldCgkaGVhZGVyLWZvbnQtZmFtaWx5LCAkaGVhZGVyLXN0eWxlcywgJ2gzJyk7XHJcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pYm9sZDtcclxuICBAaW5jbHVkZSBteC10ZXh0LXNoYWRvdygkc2hhZG93LWNvbG9yKTtcclxufVxyXG5cclxuLy8gU2VjdGlvbiBoZWFkaW5nIGNvcnJlc3BvbmRpbmcgdG8gdGhlIDxoND4gdGFnLlxyXG5AbWl4aW4gdHlwZXNldC1zdWJoZWFkaW5nLTEoKXtcclxuICBAaW5jbHVkZSBteC10eXBlc2V0KCRib2R5LWZvbnQtZmFtaWx5LCAkaGVhZGVyLXN0eWxlcywgJ2g1Jyk7XHJcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1tZWRpdW07XHJcbn1cclxuXHJcbi8vIEJhc2UgQm9keSBUZXh0XHJcbkBtaXhpbiB0eXBlc2V0LWJvZHktMSgpe1xyXG4gIEBpbmNsdWRlIG14LXR5cGVzZXQoJGJvZHktZm9udC1mYW1pbHksICRib2R5LXN0eWxlcywgJ2JvZHkxJyk7XHJcbn1cclxuXHJcbi8vIEJvbGRlciBCb2R5IFRleHRcclxuQG1peGluIHR5cGVzZXQtYm9keS0yKCl7XHJcbiAgQGluY2x1ZGUgbXgtdHlwZXNldCgkYm9keS1mb250LWZhbWlseSwgJGJvZHktc3R5bGVzLCAnYm9keTEnKTtcclxuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XHJcbn1cclxuXHJcbi8vIFNtYWxsZXIgYm9keSBhbmQgaGludCB0ZXh0XHJcbkBtaXhpbiB0eXBlc2V0LWNhcHRpb24oKXtcclxuICBAaW5jbHVkZSBteC10eXBlc2V0KCRib2R5LWZvbnQtZmFtaWx5LCAkYm9keS1zdHlsZXMsICdib2R5MycpO1xyXG4gIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtcmVndWxhcjtcclxufVxyXG5cclxuLy8gQnV0dG9uIFRleHRcclxuQG1peGluIHR5cGVzZXQtYnV0dG9uKCl7XHJcbiAgQGluY2x1ZGUgbXgtdHlwZXNldCgkaGVhZGVyLWZvbnQtZmFtaWx5LCAkaGVhZGVyLXN0eWxlcywgJ2g0Jyk7XHJcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pYm9sZDtcclxufVxyXG5cclxuLy8gU21hbGxlciBib2R5IGFuZCBoaW50IHRleHRcclxuQG1peGluIHR5cGVzZXQtZm9vdG5vdGUoKXtcclxuICBAaW5jbHVkZSBteC10eXBlc2V0KCRib2R5LWZvbnQtZmFtaWx5LCAkYm9keS1zdHlsZXMsICdib2R5MicpXHJcbn1cclxuXHJcbkBtaXhpbiB0eXBlc2V0LWxpbmstc2Vjb25kYXJ5KCl7XHJcbiAgQGluY2x1ZGUgbXgtdHlwZXNldCgkaGVhZGVyLWZvbnQtZmFtaWx5LCAkaGVhZGVyLXN0eWxlcywgJ2g2Jyk7XHJcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pYm9sZDtcclxufVxyXG4iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgTW9kdWxlIEhlYWRlciBTaXRlICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG4udGl0bGUtYmFyIHtcclxuICAmLnNocmluayB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xyXG4gICAgaGVpZ2h0OiAzZW07XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHotaW5kZXg6IDIwMDtcclxuXHJcbiAgICAjbW9kdWxlLWJhbm5lciB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiA0cHggIWltcG9ydGFudDtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcclxuXHJcbiAgICAgICN3cmFwcGVyLWJvb2sge1xyXG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDQpO1xyXG4gICAgICAgIEBpbmNsdWRlIGZsZXg7XHJcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbihyaWdodCwgbWlkZGxlKTtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgICBoZWlnaHQ6IDM2cHg7XHJcbiAgICAgICAgICBtYXJnaW46IDJweCBhdXRvO1xyXG4gICAgICAgICAgcGFkZGluZzogNHB4IDE2cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4jbW9kdWxlLWJhbm5lcntcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmxhY2s7XHJcbiAgQGluY2x1ZGUgZ3JpZC1yb3coKTtcclxuICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbigndG9wJywxKTtcclxuICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbignYm90dG9tJywxKTtcclxuXHJcblxyXG4gIC5tb2R1bGUtbmF2aWdhdGlvbi1iYW5uZXJ7XHJcbiAgICAvL0BpbmNsdWRlIGZsZXg7XHJcbiAgICAvL0BpbmNsdWRlIGZsZXgtYWxpZ24obGVmdCwgbWlkZGxlKTtcclxuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDgpO1xyXG5cclxuICAgIC8vQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgLy8gIEBpbmNsdWRlIGdyaWQtY29sdW1uKDcpXHJcbiAgICAvL31cclxuICB9XHJcblxyXG4gICN3cmFwcGVyLWJvb2sge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gICN3cmFwcGVyLXNvY2lhbHtcclxuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDIpO1xyXG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbihyaWdodCwgbWlkZGxlKTtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCd0b3AnLCAwLjI1KTtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG5cclxuICAgIHVse1xyXG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgZGlzcGxheTogdGFibGU7XHJcbiAgICAgIGxpe1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbignbGVmdCcsIDAuNSk7XHJcbiAgICAgICAgYXtcclxuICAgICAgICAgIEBpbmNsdWRlIG14LWxpbmstY29sb3JzKCRjb2xvci13aGl0ZSwgJGNvbG9yLXByaW1hcnksICRjb2xvci13aGl0ZSwgJGNvbG9yLXdoaXRlLCAkY29sb3Itd2hpdGUpO1xyXG4gICAgICAgICAgJi5pY29ue1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0eXBlc2V0LXN1YmhlYWRpbmctMSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgQGluY2x1ZGUgZmxleDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qPT09PT0gIEVuZCBvZiBNb2R1bGUgSGVhZGVyIFNpdGUgID09PT09PSovXHJcbiIsIkBmdW5jdGlvbiAtemYtZmxleC1qdXN0aWZ5KCR0ZXh0LWRpcmVjdGlvbil7XG4gICQtemYtZmxleC1qdXN0aWZ5OiAoXG4gICAgJ2xlZnQnOiBpZigkdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBmbGV4LWVuZCwgZmxleC1zdGFydCksXG4gICAgJ3JpZ2h0JzogaWYoJHRleHQtZGlyZWN0aW9uID09IHJ0bCwgZmxleC1zdGFydCwgZmxleC1lbmQpLFxuICAgICdjZW50ZXInOiBjZW50ZXIsXG4gICAgJ2p1c3RpZnknOiBzcGFjZS1iZXR3ZWVuLFxuICAgICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXG4gICk7XG5cbiAgQHJldHVybiAkLXpmLWZsZXgtanVzdGlmeTtcbn1cblxuXG4kLXpmLWZsZXgtYWxpZ246IChcbiAgJ3RvcCc6IGZsZXgtc3RhcnQsXG4gICdib3R0b20nOiBmbGV4LWVuZCxcbiAgJ21pZGRsZSc6IGNlbnRlcixcbiAgJ3N0cmV0Y2gnOiBzdHJldGNoLFxuKTtcblxuJC16Zi1mbGV4LWRpcmVjdGlvbjogKFxuICAncm93Jzogcm93LFxuICAncm93LXJldmVyc2UnOiByb3ctcmV2ZXJzZSxcbiAgJ2NvbHVtbic6IGNvbHVtbixcbiAgJ2NvbHVtbi1yZXZlcnNlJzogY29sdW1uLXJldmVyc2UsXG4pO1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXG5AbWl4aW4gZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBhbGlnbnMgdGhlIGl0ZW1zIHdpdGhpbiBhIGZsZXggY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeCBbbnVsbF0gLSBIb3Jpem9udGFsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgbGVmdGAsIGByaWdodGAsIGBjZW50ZXJgLCBganVzdGlmeWAsIG9yIGBzcGFjZWRgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XG4gIEBpZiAkeCB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1qdXN0aWZ5LCAkeCkge1xuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLic7XG4gICAgfVxuICB9XG5cbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAganVzdGlmeS1jb250ZW50OiAkeDtcbiAgYWxpZ24taXRlbXM6ICR5O1xufVxuXG4vLy8gVmVydGljYWxseSBhbGlnbiBhIHNpbmdsZSBjb2x1bW4gd2l0aGluIGEgZmxleCByb3cuIEFwcGx5IHRoaXMgbWl4aW4gdG8gYSBmbGV4IGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHk6IG51bGwpIHtcbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtY29sdW1uLWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAgYWxpZ24tc2VsZjogJHk7XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcmRlciBbMF0gLSBPcmRlciBudW1iZXIgdG8gYXBwbHkuXG5AbWl4aW4gZmxleC1vcmRlcigkb3JkZXI6IDApIHtcbiAgb3JkZXI6ICRvcmRlcjtcbn1cblxuLy8vIENoYW5nZSBmbGV4LWRpcmVjdGlvblxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbcm93XSAtIEZsZXggZGlyZWN0aW9uIHRvIHVzZS4gQ2FuIGJlXG4vLy8gICAtIHJvdyAoZGVmYXVsdCk6IHNhbWUgYXMgdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gcm93LXJldmVyc2U6IG9wcG9zaXRlIHRvIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIGNvbHVtbjogc2FtZSBhcyByb3cgYnV0IHRvcCB0byBib3R0b21cbi8vLyAgIC0gY29sdW1uLXJldmVyc2U6IHNhbWUgYXMgcm93LXJldmVyc2UgdG9wIHRvIGJvdHRvbVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb246IHJvdykge1xuICBmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn1cbiIsIlxyXG4vLyBTZXQgYWxsIHRoZSBjb2xvcnMgZm9yIGEgbGluayB3aXRoIG9uZSBtaXhpbiBjYWxsLlxyXG4vLyBPcmRlciBvZiBhcmd1bWVudHMgaXM6XHJcbi8vXHJcbi8vIDEuIG5vcm1hbFxyXG4vLyAyLiBob3ZlclxyXG4vLyAzLiBhY3RpdmVcclxuLy8gNC4gdmlzaXRlZFxyXG4vLyA1LiBmb2N1c1xyXG4vL1xyXG4vLyBUaG9zZSBzdGF0ZXMgbm90IHNwZWNpZmllZCB3aWxsIGluaGVyaXQuXHJcbi8vIE1peGluIHRvIGFuIGFuY2hvciBsaW5rIGxpa2Ugc286XHJcbi8vICAgICBhXHJcbi8vICAgICAgICtsaW5rLWNvbG9ycygjMDBjLCAjMGNjLCAjYzBjLCAjY2NjLCAjY2MwKVxyXG5cclxuQG1peGluIG14LWxpbmstY29sb3JzKCRub3JtYWwsICRob3ZlcjogZmFsc2UsICRhY3RpdmU6IGZhbHNlLCAkdmlzaXRlZDogZmFsc2UsICRmb2N1czogZmFsc2UpIHtcclxuICBjb2xvcjogJG5vcm1hbDtcclxuICBAaWYgJHZpc2l0ZWQge1xyXG4gICAgJjp2aXNpdGVkIHtcclxuICAgICAgY29sb3I6ICR2aXNpdGVkOyB9IH1cclxuICBAaWYgJGZvY3VzIHtcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICBjb2xvcjogJGZvY3VzOyB9IH1cclxuICBAaWYgJGhvdmVyIHtcclxuICAgICY6aG92ZXIge1xyXG4gICAgICBjb2xvcjogJGhvdmVyOyB9IH1cclxuICBAaWYgJGFjdGl2ZSB7XHJcbiAgICAmOmFjdGl2ZSB7XHJcbiAgICAgIGNvbG9yOiAkYWN0aXZlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuPSAgICAgICAgICAgIE1vZHVsZSBDYXJvdXNlbCBQcm9maWxlIFN0eWxpbmcgICAgICAgICAgICA9XHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuLm1vZHVsZS1jYXJvdXNlbC1wcm9maWxlIHtcclxuICBAaW5jbHVkZSBncmlkLXJvdygpO1xyXG4gIC5jYXJvdXNlbC1wcm9maWxle1xyXG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xyXG4gIH1cclxuXHJcbiAgJi4taW5kZXgge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogM2VtO1xyXG5cclxuICAgIC50ZWFzZXItaW1hZ2Uge1xyXG4gICAgICBoZWlnaHQ6IDI2MHB4O1xyXG5cclxuICAgICAgaW1nIHtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcclxuICAgIH1cclxuXHJcbiAgICAudHlwZXNldC1zdWJoZWFkaW5nLTIge1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKj09PT09ICBFbmQgb2YgTW9kdWxlIENhcm91c2VsIFByb2ZpbGUgU3R5bGluZyAgPT09PT09Ki9cclxuIiwiLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbj0gICAgICAgICAgICBNb2R1bGUgQ2Fyb3VzZWwgUHJvZmlsZSBTdHlsaW5nICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbi5tb2R1bGUtY2Fyb3VzZWwtdmFuIHtcclxuICBAaW5jbHVkZSBncmlkLXJvdygpO1xyXG4gIC5jYXJvdXNlbC1wcm9maWxle1xyXG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xyXG4gIH1cclxuXHJcbiAgJi4taW5kZXgge1xyXG4gICAgLnRlYXNlci1pbWFnZSB7XHJcbiAgICAgIGhlaWdodDogMjQwcHg7XHJcblxyXG4gICAgICBpbWcge1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICYuLWluZGV4IHtcclxuICAgICAgLnRlYXNlci1pbWFnZSB7XHJcbiAgICAgICAgaGVpZ2h0OiA0ODBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XHJcbiAgICAmLi1pbmRleCB7XHJcbiAgICAgIC50ZWFzZXItaW1hZ2Uge1xyXG4gICAgICAgIGhlaWdodDogNjQwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qPT09PT0gIEVuZCBvZiBNb2R1bGUgQ2Fyb3VzZWwgUHJvZmlsZSBTdHlsaW5nICA9PT09PT0qL1xyXG4iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgTW9kdWxlIENhbGwgdG8gYWN0aW9uICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuLm1vZHVsZS1jdGF7XHJcbiAgQGluY2x1ZGUgZ3JpZC1yb3coKTtcclxuICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbigndG9wJywyKTtcclxuICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbignYm90dG9tJyw0KTtcclxuICAmLnNtYWxsLW1hcmdpbiB7XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbignYm90dG9tJywgMCk7XHJcbiAgfVxyXG4gIC53cmFwcGVyLWJ1dHRvbntcclxuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEyKTtcclxuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLXBvc2l0aW9uKGNlbnRlcik7XHJcbiAgfVxyXG59XHJcblxyXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSl7XHJcbiAgLm1vZHVsZS1jdGF7XHJcbiAgICAud3JhcHBlci1idXR0b257XHJcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDYpO1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbihjZW50ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSl7XHJcbiAgLm1vZHVsZS1jdGF7XHJcbiAgICAud3JhcHBlci1idXR0b257XHJcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDMpO1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbihjZW50ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyo9PT09PSAgRW5kIG9mIE1vZHVsZSBDYWxsIHRvIGFjdGlvbiAgPT09PT09Ki9cclxuIiwiLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbj0gICAgICAgICAgICBNb2R1bGUgR2FsbGVyeSBNYXNvbnJ5ICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbi5tb2R1bGUtZ2FsbGVyeS1tYXNvbnJ5IHtcclxuICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qPT09PT0gIEVuZCBvZiBNb2R1bGUgR2FsbGVyeSBNYXNvbnJ5ICA9PT09PT0qL1xyXG4iLCJcclxuI21vZHVsZS1oZWFkZXItc2l0ZXtcclxuICBAaW5jbHVkZSBncmlkLXJvdygpO1xyXG4gIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCd0b3AnLDEpO1xyXG4gICN3cmFwcGVyLWhlYWRlci1sb2dve1xyXG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oNCk7XHJcbiAgfVxyXG5cclxuICAubW9kdWxlLW5hdmlnYXRpb24tbWFpbntcclxuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDgpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKXtcclxuICAjbW9kdWxlLWhlYWRlci1zaXRle1xyXG5cclxuICAgICN3cmFwcGVyLWhlYWRlci1sb2dve1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigzKTtcclxuICAgIH1cclxuXHJcbiAgICAubW9kdWxlLW5hdmlnYXRpb24tbWFpbntcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oOSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuPSAgICAgICAgICAgIE1vZHVsZSBIZWFkZXIgQXJ0aWNsZSBzdHlsaW5nICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4ubW9kdWxlLWhlYWRlci1hcnRpY2xle1xyXG4gIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCdib3R0b20nLCAxKTtcclxuICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7XHJcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oY2VudGVyKTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICYuLS1uby1wYWRkaW5nIHtcclxuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAudGl0bGUge1xyXG4gICAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJ2JvdHRvbScsIDEpO1xyXG4gIH1cclxuXHJcbiAgLmljb24tc3Rlcm4ge1xyXG4gICAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJ2JvdHRvbScsIDEuNSk7XHJcbiAgfVxyXG5cclxuICAuc3VidGl0bGUge1xyXG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xyXG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oY2VudGVyKTtcclxuICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKXtcclxuICAubW9kdWxlLWhlYWRlci1hcnRpY2xle1xyXG4gICAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJ2JvdHRvbScsIDIpO1xyXG4gICAgLnN1YnRpdGxle1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMCk7XHJcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLXBvc2l0aW9uKGNlbnRlcik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKXtcclxuICAubW9kdWxlLWhlYWRlci1hcnRpY2xle1xyXG4gICAgLnN1YnRpdGxle1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbig4KTtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oY2VudGVyKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qPT09PT0gIEVuZCBvZiBNb2R1bGUgSGVhZGVyIEFydGljbGUgc3R5bGluZyAgPT09PT09Ki9cclxuIiwiLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgTW9kdWxlIExvZ28gICAgICAgICAgICA9XHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcblxyXG4ubW9kdWxlLWxvZ297XHJcbiAgYSB7XHJcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDk4cHgpO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJFBBVEgtQVNTRVRTLUlNRyArIFwibG9nby5zdmdcIik7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMTUlO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcclxuICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xyXG4gIH1cclxuICAmLi1pbnZlcnR7XHJcbiAgICBhe1xyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJFBBVEgtQVNTRVRTLUlNRyArIFwibG9nby1pbnZlcnQuc3ZnXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuICAmLi1sZWZ0e1xyXG4gICAgYXtcclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgMTUlO1xyXG5cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vKj09PT09ICBFbmQgb2YgTW9kdWxlIExvZ28gID09PT09PSovXHJcbiIsIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbj0gICAgICAgICAgICBNb2R1bGUgTG9hZGluZyBTcGlubmVyIFN0eWxpbmcgICAgICAgICAgICA9XHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcbiRkb3Qtc2l6ZSA6IDEycHg7XHJcbiRkb3QtbWFyZ2luOiA2cHg7XHJcbiRkb3QtYm9yZGVyLXJhZGl1czogNTAlO1xyXG4kYW5pbWF0aW9uLWRlbGF5OiAuMXM7XHJcblxyXG4ubW9kdWxlLWxvYWRpbmctc3Bpbm5lcntcclxuICBiYWNrZ3JvdW5kOiByZ2JhKCRjb2xvci1wcmltYXJ5LCAwLjUpO1xyXG5cclxuICBAaW5jbHVkZSBmbGV4O1xyXG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24oY2VudGVyLCBtaWRkbGUpO1xyXG5cclxuICBoZWlnaHQ6IDEwMHZoO1xyXG5cclxuICAubG9hZGluZy1pY29ue1xyXG4gICAgYmFja2dyb3VuZDogdXJsKCRQQVRILUFTU0VUUy1JTUcgKyAnc2stbG9hZGluZy5zdmcnKSA1MCUgNTAlIG5vLXJlcGVhdDtcclxuICAgIGhlaWdodDogMzJweDtcclxuICB9XHJcblxyXG4gIC53cmFwcGVyLWxvYWRpbmd7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIHdpZHRoOiAxMzRweDtcclxuICB9XHJcblxyXG4gIC5kb3QtYW5pbWF0aW9ue1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbigndG9wJywwLjI1KTtcclxuICAgIEBpbmNsdWRlIGZsZXg7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduKGNlbnRlciwgbWlkZGxlKTtcclxuXHJcblxyXG5cclxuICAgIC5kb3R7XHJcbiAgICAgIG1hcmdpbjogJGRvdC1tYXJnaW47XHJcbiAgICAgIHdpZHRoOiAkZG90LXNpemU7XHJcbiAgICAgIGhlaWdodDogJGRvdC1zaXplO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAkZG90LWJvcmRlci1yYWRpdXM7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZTtcclxuICAgICAgYW5pbWF0aW9uLW5hbWU6IHB1bHNlO1xyXG4gICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xyXG4gICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcclxuICAgICAgYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlO1xyXG4gICAgICAmOm50aC1jaGlsZCgxKXtcclxuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDYgKiAkYW5pbWF0aW9uLWRlbGF5O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OjA7XHJcbiAgICAgIH1cclxuICAgICAgJjpudGgtY2hpbGQoMil7XHJcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiA1ICogJGFuaW1hdGlvbi1kZWxheTtcclxuICAgICAgfVxyXG4gICAgICAmOm50aC1jaGlsZCgzKXtcclxuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDQgKiAkYW5pbWF0aW9uLWRlbGF5O1xyXG4gICAgICB9XHJcbiAgICAgICY6bnRoLWNoaWxkKDQpe1xyXG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMyAqICRhbmltYXRpb24tZGVsYXk7XHJcbiAgICAgIH1cclxuICAgICAgJjpudGgtY2hpbGQoNSl7XHJcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAyICogJGFuaW1hdGlvbi1kZWxheTtcclxuICAgICAgfVxyXG4gICAgICAmOm50aC1jaGlsZCg2KXtcclxuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDEgKiAkYW5pbWF0aW9uLWRlbGF5O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcbn1cclxuXHJcblxyXG5Aa2V5ZnJhbWVzIHB1bHNlIHtcclxuICBmcm9tLFxyXG4gIDAle1xyXG4gICAgb3BhY2l0eTogMC4xO1xyXG4gIH1cclxuICA1MCVcclxuICB7XHJcbiAgICBvcGFjaXR5OiAwLjU7XHJcbiAgfVxyXG4gIDEwMCUsXHJcbiAgdG8ge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKj09PT09ICBFbmQgb2YgTW9kdWxlIExvYWRpbmcgU3Bpbm5lciBTdHlsaW5nICA9PT09PT0qL1xyXG4iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgTW9kdWxlIG5hdmlnYXRpb24gYmFubmVyICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuLm1vZHVsZS1uYXZpZ2F0aW9uLWJhbm5lcntcclxuICB1bHtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcbiAgICBsaXtcclxuICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbignYm90dG9tJywwLjI1KTtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luLWRpcmVjdGlvbigncmlnaHQnLCAwLjUpO1xyXG4gICAgICBhe1xyXG4gICAgICAgIEBpbmNsdWRlIHR5cGVzZXQtc3ViaGVhZGluZy0yKCk7XHJcbiAgICAgICAgLmljb24tbWVudS1zdmd7XHJcbiAgICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZTtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMzZweDtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMWVtO1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaWNvbmZvbnQvbWVudS5zdmdcIikgIWltcG9ydGFudDtcclxuICAgICAgICAgIHdpZHRoOiAzNnB4O1xyXG4gICAgICAgICAgaGVpZ2h0OiAzNnB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgI25hdmlnYXRpb24tbW9iaWxlIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuXHJcbiAgI25hdmlnYXRpb24tZGVza3RvcCB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG5cclxuICAgIGEge1xyXG4gICAgICBjb2xvcjogI2ZkZmNmYztcclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy9AaW5jbHVkZSBicmVha3BvaW50KDExNTZweCl7XHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQoMTAyM3B4KXtcclxuICAubW9kdWxlLW5hdmlnYXRpb24tYmFubmVye1xyXG4gICAgI25hdmlnYXRpb24tbW9iaWxle1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgI25hdmlnYXRpb24tZGVza3RvcHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKj09PT09ICBFbmQgb2YgTW9kdWxlIG5hdmlnYXRpb24gYmFubmVyICA9PT09PT0qL1xyXG4iLCJcclxuQG1peGluIG14LXRleHQtc2hhZG93KCRzaGFkb3ctY29sb3Ipe1xyXG4gIHRleHQtc2hhZG93OiAycHggMnB4IDBweCAkc2hhZG93LWNvbG9yO1xyXG59O1xyXG4iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbj0gICAgICAgICAgICBNb2R1bGUgTmF2aWdhdGlvbiBmb290ZXIgc3R5bGluZyAgICAgICAgICAgID1cclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuI21vZHVsZS1uYXZpZ2F0aW9uLWZvb3RlcntcclxuXHJcbiAgQGluY2x1ZGUgeHktZ3JpZCgpO1xyXG4gIEBpbmNsdWRlIGZsZXg7XHJcbiAgQGluY2x1ZGUgZmxleC1hbGlnbihqdXN0aWZ5LCB0b3ApO1xyXG5cclxuICAubmF2LWNvbHVtbntcclxuICAgIEBpbmNsdWRlIHh5LWNlbGwoMTIpO1xyXG5cclxuICAgIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCdib3R0b20nLDMpO1xyXG5cclxuICAgICY6bGFzdC1jaGlsZHtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJ2JvdHRvbScsMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLm5hdi10aXRsZXtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJ2JvdHRvbScsMSk7XHJcbiAgICAgIEBpbmNsdWRlIHR5cGVzZXQtc3ViaGVhZGluZy0yKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbGl7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCdib3R0b20nLDAuMjUpO1xyXG4gICAgICBhe1xyXG4gICAgICAgIEBpbmNsdWRlIHR5cGVzZXQtbGluay1zZWNvbmRhcnkoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKXtcclxuICAjbW9kdWxlLW5hdmlnYXRpb24tZm9vdGVye1xyXG4gICAubmF2LWNvbHVtbntcclxuICAgICAgQGluY2x1ZGUgeHktY2VsbCgzKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSl7XHJcbiAgI21vZHVsZS1uYXZpZ2F0aW9uLWZvb3RlcntcclxuICAgIC5uYXYtY29sdW1ue1xyXG4gICAgICBAaW5jbHVkZSB4eS1jZWxsKDIpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyo9PT09PSAgRW5kIG9mIE1vZHVsZSBOYXZpZ2F0aW9uIGZvb3RlciBzdHlsaW5nICA9PT09PT0qL1xyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIG1heCB3aWR0aCBjb250YWluZXIsIGRlc2lnbmVkIHRvIGhvdXNlIHlvdXIgZ3JpZCBjb250ZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbJGdyaWQtY29udGFpbmVyXSAtIGEgd2lkdGggdG8gbGltaXQgdGhlIGNvbnRhaW5lciB0by5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRpbmcgWyRncmlkLWNvbnRhaW5lci1wYWRkaW5nXSAtIHBhZGRpbmdzIG9mIHRoZSBjb250YWluZXIuXG5AbWl4aW4geHktZ3JpZC1jb250YWluZXIoXG4gICR3aWR0aDogJGdyaWQtY29udGFpbmVyLFxuICAkcGFkZGluZzogJGdyaWQtY29udGFpbmVyLXBhZGRpbmdcbikge1xuICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXJzOiAkcGFkZGluZywgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcblxuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLy8vIENyZWF0ZXMgYSBjb250YWluZXIgZm9yIHlvdXIgZmxleCBjZWxscy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbaG9yaXpvbnRhbF0gLSBFaXRoZXIgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBkaXJlY3Rpb24gb2YgY2VsbHMgd2l0aGluLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHdyYXAgW3RydWVdIC0gSWYgdGhlIGNlbGxzIHdpdGhpbiBzaG91bGQgd3JhcCBvciBub3QuXG5AbWl4aW4geHktZ3JpZChcbiAgJGRpcmVjdGlvbjogaG9yaXpvbnRhbCxcbiAgJHdyYXA6IHRydWVcbikge1xuICAkZGlyZWN0aW9uOiBpZigkZGlyZWN0aW9uID09ICdob3Jpem9udGFsJywgcm93LCBjb2x1bW4pO1xuICAkd3JhcDogaWYoJHdyYXAsIHdyYXAsIG5vd3JhcCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiAkZGlyZWN0aW9uICR3cmFwO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIFJldHVybnMgdGhlIGFwcHJvcHJpYXRlIENTUyBmbGV4IHZhbHVlIGZvciBhIGNlbGwgYmFzZS5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBBY2NlcHRzIGBmdWxsYCwgYGF1dG9gLCBgc2hyaW5rYCwgYGdyb3dgLCBvciBhbnkgb3RoZXIgdmFsdWUgcmVwcmVzZW50aW5nIGEgY2VsbCBzaXplIChpdCB3aWxsIGJlIHRyZWF0ZWQgYXMgYHNocmlua2ApLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IFRoZSBjZWxsIGZsZXggcHJvcGVydHkgdmFsdWUuXG5AZnVuY3Rpb24geHktY2VsbC1iYXNlKCRzaXplOiBmdWxsKSB7XG4gIEBpZiAoJHNpemUgPT0gJ2F1dG8nKSB7XG4gICAgQHJldHVybiAxIDEgMHB4O1xuICB9XG4gIEBlbHNlIGlmICgkc2l6ZSA9PSAnZ3JvdycpIHtcbiAgICBAcmV0dXJuIDEgMCBhdXRvO1xuICB9XG4gIEBlbHNlIGlmICgkc2l6ZSA9PSAnc2hyaW5rJyBvciAkc2l6ZSA9PSAnZnVsbCcgb3IgemYtaXMtZnJhY3Rpb24oJHNpemUsICRhbGxvdy1uby1kZW5vbWluYXRvcjogdHJ1ZSkpIHtcbiAgICBAcmV0dXJuIDAgMCBhdXRvO1xuICB9XG4gIEByZXR1cm4gbnVsbDtcbn1cblxuLy8vIENhbGN1bGF0ZSB0aGUgc2l6ZSBvZiBhIGNlbGwgZ3V0dGVycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgYGF1dG9gLCByZXR1cm5zIHRoZSByZXNwb25zaXZlIGd1dHRlcnMgbWFwIGAkZ3V0dGVyc2AuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ8TWFwfSBUaGUgY2VsbCBndXR0ZXIgc2l6ZSBvciB0aGUgcmVzcG9uc2l2ZSBndXR0ZXJzIG1hcC5cbkBmdW5jdGlvbiB4eS1jZWxsLWd1dHRlcnMoXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGJyZWFrcG9pbnQ6IG51bGxcbikge1xuICAvLyBGb3IgYGF1dG9gLCByZXR1cm5zIHRoZSByZXNwb25zaXZlIG1hcCBgJGd1dHRlcnNgLlxuICBAaWYgKCRicmVha3BvaW50ID09ICdhdXRvJykge1xuICAgIEByZXR1cm4gJGd1dHRlcnM7XG4gIH1cblxuICAvLyBVc2UgdGhlIGNvbnRleHR1YWwgYnJlYWtwb2ludCBieSBkZWZhdWx0LlxuICAkYnJlYWtwb2ludDogLXpmLWN1cnJlbnQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCk7XG5cbiAgQGlmICgkYnJlYWtwb2ludCkge1xuICAgIEByZXR1cm4gLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICRicmVha3BvaW50KTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJC16Zi16ZXJvLWJyZWFrcG9pbnQpIG9yIDA7XG4gIH1cbn1cblxuLy8vIFJldHVybnMgdGhlIHBlcmNlbnRhZ2Ugc2l6ZSBvZiBhIGNlbGwuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkc2l6ZSBbJGdyaWQtY29sdW1uc10gLSBTaXplIHRvIG1ha2UgdGhlIGNlbGwuIFlvdSBjYW4gcGFzcyBhIHZhbHVlIGluIG11bHRpcGxlIGZvcm1hdHMsIHN1Y2ggYXMgYDZgLCBgNTAlYCwgYDEgb2YgMmAgb3IgYDEvM2AuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBTaXplIG9mIHRoZSBjZWxsIChpbiBwZXJjZW50KS5cbkBmdW5jdGlvbiB4eS1jZWxsLXNpemUoXG4gICRzaXplOiAkZ3JpZC1jb2x1bW5zXG4pIHtcbiAgQHJldHVybiBmcmFjdGlvbi10by1wZXJjZW50YWdlKCRzaXplLCAkZGVub21pbmF0b3I6ICRncmlkLWNvbHVtbnMpO1xufVxuXG4vLy8gUmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgQ1NTIHZhbHVlIGZvciBhIGNlbGwgc2l6ZS5cbi8vL1xuLy8vIEd1dHRlcnMtcmVsYXRlZCBhcmd1bWVudHMgYXJlIHJlcXVpcmVkIGZvciBjZWxscyB3aXRoIG1hcmdpbiBndXR0ZXJzIChieSBkZWZhdWx0KSBhcyB0aGUgZ3V0dGVyIGlzIGluY2x1ZGVkIGluIHRoZSB3aWR0aC5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCwgYGF1dG9gLCBgc2hyaW5rYCBvciBhbnkgZnJhY3Rpb24gbGlrZSBgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8yYC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGBtYXJnaW5gLCBgcGFkZGluZ2Agb3IgYG5vbmVgLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIGBhdXRvYCwgcmV0dXJucyBhIG1hcCBvZiBzaXplcyBhZGFwdGVkIHRvIHJlc3BvbnNpdmUgZ3V0dGVycy4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcnxTdHJpbmd8TWFwfSBUaGUgY2VsbCBzaXppbmcgcHJvcGVydHkgdmFsdWUsIG9yIGEgcmVzcG9uc2l2ZSBtYXAgb2YgdGhlbS5cbkBmdW5jdGlvbiB4eS1jZWxsLXNpemUtY3NzKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGJyZWFrcG9pbnQ6IG51bGxcbikge1xuICAkbWFyZ2luLWd1dHRlcjogMDtcblxuICBAaWYgKCRzaXplID09ICdhdXRvJyBvciAkc2l6ZSA9PSAnc2hyaW5rJykge1xuICAgIEByZXR1cm4gYXV0bztcbiAgfVxuXG4gIC8vIEZvciBjZWxscyB3aXRoIG1hcmdpbiBndXR0ZXJzLCB0aGUgZ3V0dGVyIGlzIGluY2x1ZGVkIGluIHRoZSB3aWR0aC5cbiAgQGlmICgkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicpIHtcbiAgICAkbWFyZ2luLWd1dHRlcjogeHktY2VsbC1ndXR0ZXJzKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG4gICAgQGlmICgkbWFyZ2luLWd1dHRlciA9PSBudWxsKSB7XG4gICAgICBAZXJyb3IgJ3h5LWNlbGwtc2l6ZTogbm8gZ3V0dGVycyB3ZXJlIGZvdW5kIGluIGAkZ3V0dGVyc2AgZm9yIFwiJGJyZWFrcG9pbnQ6ICN7JGJyZWFrcG9pbnR9XCInO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSB0aGUgY2VsbCBzaXplIChudW1iZXIpXG4gICRzaXplLXJhdzogaWYoJHNpemUgPT0gJ2Z1bGwnLCAxMDAlLCB4eS1jZWxsLXNpemUoJHNpemUpKTtcblxuICAvLyBDYWxjdWxhdGUgdGhlIGNlbGwgQ1NTIHNpemUgaW5jbHVkaW5nIGd1dHRlcnMgKHN0cmluZylcbiAgLy8gSWYgdGhlIGNlbGwgaGFzIHJlc3BvbnNpdmUgbWFyZ2luIGd1dHRlcnMsIHJldHVybiBhIHJlc3BvbnNpdmUgbWFwIG9mIHNpemVzLlxuICBAaWYgdHlwZS1vZigkbWFyZ2luLWd1dHRlcikgPT0gJ21hcCcge1xuICAgICRyZXNwb25zaXZlLWNzcy1zaXplczogKCk7XG5cbiAgICBAZWFjaCAkYnAsICRtZyBpbiAkbWFyZ2luLWd1dHRlciB7XG4gICAgICAkc2l6ZS1jc3M6IGlmKCRtZyA9PSAwLCAkc2l6ZS1yYXcsIGNhbGMoI3skc2l6ZS1yYXd9IC0gI3tyZW0tY2FsYygkbWcpfSkpO1xuICAgICAgJHJlc3BvbnNpdmUtY3NzLXNpemVzOiBtYXAtbWVyZ2UoJHJlc3BvbnNpdmUtY3NzLXNpemVzLCAoJGJwOiAkc2l6ZS1jc3MpKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRyZXNwb25zaXZlLWNzcy1zaXplcztcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiBhIHNpbmdsZSBDU1Mgc2l6ZS5cbiAgQGVsc2Uge1xuICAgICRjc3Mtc2l6ZTogaWYoJG1hcmdpbi1ndXR0ZXIgPT0gMCwgJHNpemUtcmF3LCBjYWxjKCN7JHNpemUtcmF3fSAtICN7cmVtLWNhbGMoJG1hcmdpbi1ndXR0ZXIpfSkpO1xuICAgIEByZXR1cm4gJGNzcy1zaXplO1xuICB9XG59XG5cbi8vLyBTZXRzIGJhc2UgZmxleCBwcm9wZXJ0aWVzIGZvciBjZWxscy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBBY2NlcHRzIGBmdWxsYCwgYGF1dG9gLCBgc2hyaW5rYCwgYGdyb3dgLCBvciBhbnkgb3RoZXIgdmFsdWUgcmVwcmVzZW50aW5nIGEgY2VsbCBzaXplIChpdCB3aWxsIGJlIHRyZWF0ZWQgYXMgYHNocmlua2ApLlxuQG1peGluIHh5LWNlbGwtYmFzZSgkc2l6ZTogZnVsbCkge1xuICAkYmFzZTogeHktY2VsbC1iYXNlKCRzaXplKTtcblxuICBmbGV4OiAjeyRiYXNlfTtcblxuICAvLyBTZXQgYmFzZSBzdHlsZXMgZm9yIFwiZnVsbFwiIG9ubHlcbiAgQGlmKCRzaXplID09ICdmdWxsJykge1xuICAgIG1pbi1oZWlnaHQ6IDBweDtcbiAgICBtaW4td2lkdGg6IDBweDtcbiAgfVxufVxuXG4vLy8gUmVzZXRzIGEgY2VsbHMgd2lkdGggKG9yIGhlaWdodCBpZiB2ZXJ0aWNhbCBpcyB0cnVlKSBhcyB3ZWxsIGFzIHN0cmlwcyBpdHMgZ3V0dGVycy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXJlc2V0KCR2ZXJ0aWNhbDogdHJ1ZSkge1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgaGVpZ2h0LCB3aWR0aCk7XG4gICN7JGRpcmVjdGlvbn06IGF1dG87XG4gIG1heC0jeyRkaXJlY3Rpb259OiBub25lO1xufVxuXG4vLy8gU2V0cyBzaXppbmcgcHJvcGVydGllcyBmb3IgY2VsbHMuXG4vLy9cbi8vLyBHdXR0ZXJzLXJlbGF0ZWQgYXJndW1lbnRzIGFyZSByZXF1aXJlZCBmb3IgY2VsbHMgd2l0aCBtYXJnaW4gZ3V0dGVycyAoYnkgZGVmYXVsdCkgYXMgdGhlIGd1dHRlciBpcyBpbmNsdWRlZCBpbiB0aGUgd2lkdGguXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAgKDEwMCUgd2lkdGgpLCBgYXV0b2AgKHVzZSBhbGwgYXZhaWxhYmxlIHNwYWNlKSwgYHNocmlua2AgKHVzZSBvbmx5IHRoZSByZXF1aXJlZCBzcGFjZSkgb3IgYW55IGZyYWN0aW9uIChgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8yYC4uLikuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBgbWFyZ2luYCwgYHBhZGRpbmdgIG9yIGBub25lYC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiBgYXV0b2AsIGdlbmVyYXRlcyBzaXplcyBhZGFwdGVkIGZvciByZXNwb25zaXZlIGd1dHRlcnMuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG5AbWl4aW4geHktY2VsbC1zaXplKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAkc2l6ZXM6IHh5LWNlbGwtc2l6ZS1jc3MoJHNpemUsICRndXR0ZXJzLCAkZ3V0dGVyLXR5cGUsICRicmVha3BvaW50KTtcbiAgJGRpcmVjdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIGhlaWdodCwgd2lkdGgpO1xuXG4gIEBpZiAodHlwZS1vZigkc2l6ZXMpID09ICdtYXAnKSB7XG4gICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoYXV0bywgJHNpemVzKSB7XG4gICAgICAjeyRkaXJlY3Rpb259OiAkLXpmLWJwLXZhbHVlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgI3skZGlyZWN0aW9ufTogJHNpemVzO1xuICB9XG59XG5cbi8vLyBTZXRzIGd1dHRlcnMgcHJvcGVydGllcyBmb3IgY2VsbHMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGBtYXJnaW5gLCBgcGFkZGluZ2Agb3IgYG5vbmVgLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbbnVsbF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uIEJ5IGRlZmF1bHQgYHJpZ2h0IGxlZnRgIGZvciBob3Jpem9udGFsIGNlbGxzIGFuZCBgdG9wIGJvdHRvbWAgZm9yIHZlcnRpY2FsIGNlbGxzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIGBhdXRvYCwgZ2VuZXJhdGVzIHJlc3BvbnNpdmUgZ3V0dGVycy4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBEaXJlY3Rpb24gb2YgdGhlIGd1dHRlcnMgdG8gb3V0cHV0LiBTZWUgYCRndXR0ZXItcG9zaXRpb25gLlxuQG1peGluIHh5LWNlbGwtZ3V0dGVycyhcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogbnVsbCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAvLyBHZXQgdGhlIGRlZmF1bHQgZ3V0dGVyIHBvc2l0aW9uIGFjY29yZGluZyB0byBjZWxsIGRpcmVjdGlvblxuICBAaWYoJGd1dHRlci1wb3NpdGlvbiA9PSBudWxsKSB7XG4gICAgJGd1dHRlci1wb3NpdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIHRvcCBib3R0b20sIGxlZnQgcmlnaHQpO1xuICB9XG5cbiAgLy8gR2V0IHRoZSBndXR0ZXIgd2lkdGggZm9yIHRoaXMgYnJlYWtwb2ludFxuICAkZ3V0dGVyLXdpZHRoOiB4eS1jZWxsLWd1dHRlcnMoJGd1dHRlcnMsICRicmVha3BvaW50KTtcbiAgQGlmICgkZ3V0dGVyLXdpZHRoID09IG51bGwpIHtcbiAgICBAZXJyb3IgJ3h5LWNlbGwtZ3V0dGVyczogbm8gZ3V0dGVycyB3ZXJlIGZvdW5kIGluIGAkZ3V0dGVyc2AgZm9yIFwiJGJyZWFrcG9pbnQ6ICN7JGJyZWFrcG9pbnR9XCInO1xuICB9XG5cbiAgQGlmICgkZ3V0dGVyLXR5cGUgYW5kICRndXR0ZXItdHlwZSAhPSBub25lKSB7XG4gICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyLXdpZHRoLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24pO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgY2VsbCBmb3IgeW91ciBncmlkLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBDYW4gYmUgYGZ1bGxgICgxMDAlIHdpZHRoKSwgYGF1dG9gICh1c2UgYWxsIGF2YWlsYWJsZSBzcGFjZSksIGBzaHJpbmtgICh1c2Ugb25seSB0aGUgcmVxdWlyZWQgc3BhY2UpIG9yIGFueSBmcmFjdGlvbiAoYDZgLCBgNTAlYCwgYDEgb2YgMmAgb3IgYDEvMmAuLi4pLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGd1dHRlci1vdXRwdXQgW251bGxdIC0gW0RFUFJFQ0FURURdIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAsIGBwYWRkaW5nYCBvciBgbm9uZWAuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtudWxsXSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi4gQnkgZGVmYXVsdCBgcmlnaHQgbGVmdGAgZm9yIGhvcml6b250YWwgY2VsbHMgYW5kIGB0b3AgYm90dG9tYCBmb3IgdmVydGljYWwgY2VsbHMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgYGF1dG9gLCBnZW5lcmF0ZXMgcmVzcG9uc2l2ZSBndXR0ZXJzLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuLy8vIEBwYXJhbSB7TGlzdH0gJG91dHB1dCBbKGJhc2Ugc2l6ZSBndXR0ZXJzKV0gLSBDZWxsIHBhcnRzIHRvIG91dHB1dC4gWW91IHdpbGwgbmVlZCB0byBnZW5lcmF0ZSBvdGhlcnMgcGFydHMgb2YgdGhlIGNlbGwgc2VwZXJhdGVseSwgaXQgbWF5IG5vdCB3b3JrIHByb3Blcmx5IG90aGVyd2lzZS5cbkBtaXhpbiB4eS1jZWxsKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlci1vdXRwdXQ6IG51bGwsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IG51bGwsXG4gICRicmVha3BvaW50OiBudWxsLFxuICAkdmVydGljYWw6IGZhbHNlLFxuICAkb3V0cHV0OiAoYmFzZSBzaXplIGd1dHRlcnMpXG4pIHtcbiAgLy8gRGVmYXVsdCBmb3IgJGd1dHRlci1vdXRwdXRcbiAgQGlmICgkZ3V0dGVyLW91dHB1dCAhPSBudWxsKSB7XG4gICAgQHdhcm4gJ3h5LWNlbGw6ICRndXR0ZXItb3V0cHV0IGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gU2VlIG1pZ3JhdGlvbiBub3RlcyBhdCBodHRwczovL2dpdC5pby9mb3VuZGF0aW9uLTYtNi0wJztcbiAgICBAaWYgKCRndXR0ZXItb3V0cHV0ID09IGZhbHNlKSB7XG4gICAgICAkb3V0cHV0OiBzbC1yZW1vdmUoJG91dHB1dCwgZ3V0dGVycyk7XG4gICAgfVxuICB9XG5cbiAgQGlmIChpbmRleCgkb3V0cHV0LCBiYXNlKSkge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZSgkc2l6ZSk7XG4gIH1cbiAgQGlmIChpbmRleCgkb3V0cHV0LCBzaXplKSkge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkc2l6ZSwgJGd1dHRlcnMsICRndXR0ZXItdHlwZSwgJGJyZWFrcG9pbnQsICR2ZXJ0aWNhbCk7XG4gIH1cbiAgQGlmIChpbmRleCgkb3V0cHV0LCBndXR0ZXJzKSkge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtZ3V0dGVycygkZ3V0dGVycywgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uLCAkYnJlYWtwb2ludCwgJHZlcnRpY2FsKTtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHNpemVkIGdyaWQuIFVzZWQgdG8gZ2VuZXJhdGUgb3VyIGdyaWQgY2xhc3Nlcy5cbi8vL1xuLy8vIGB4eS1jZWxsLXN0YXRpYygpYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQuXG4vLy8gVXNlIGB4eS1jZWxsKClgIGluc3RlYWQgd2l0aCBgJG91dHB1dDogKHNpemUgZ3V0dGVycylgIHRvIG5vdCBnZW5lcmF0ZSB0aGUgY2VsbCBiYXNlLlxuLy8vIFNlZSBtaWdyYXRpb24gbm90ZXMgYXQgaHR0cHM6Ly9naXQuaW8vZm91bmRhdGlvbi02LTYtMFxuLy8vXG4vLy8gQGRlcHJlY2F0ZWQgdjYuNi4wXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAgKDEwMCUgd2lkdGgpLCBgYXV0b2AgKHVzZSBhbGwgYXZhaWxhYmxlIHNwYWNlKSwgYHNocmlua2AgKHVzZSBvbmx5IHRoZSByZXF1aXJlZCBzcGFjZSkgb3IgYW55IGZyYWN0aW9uIChgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8yYC4uLikuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBvdXRwdXQgZ3V0dGVycy4gQWx3YXlzIGB0cnVlYCBmb3IgbWFyZ2luIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXN0YXRpYyhcbiAgJHNpemU6IGZ1bGwsXG4gICRndXR0ZXItb3V0cHV0OiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnQsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICBAd2FybiAneHktY2VsbC1zdGF0aWMoKSBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSBcInh5LWNlbGwoKVwiIGluc3RlYWQuIFNlZSBtaWdyYXRpb24gbm90ZXMgYXQgaHR0cHM6Ly9naXQuaW8vZm91bmRhdGlvbi02LTYtMCc7XG5cbiAgJGd1dHRlcjogLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICRicmVha3BvaW50KTtcbiAgJGd1dHRlci1wb3NpdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIHRvcCBib3R0b20sIGxlZnQgcmlnaHQpO1xuXG4gICQtZ3V0dGVyLW91dHB1dDogaWYoJGd1dHRlci10eXBlID09ICdtYXJnaW4nLCB0cnVlLCAkZ3V0dGVyLW91dHB1dCk7XG4gICQtZ3V0dGVyLW1hcmdpbjogaWYoJGd1dHRlci10eXBlID09ICdtYXJnaW4nLCAkZ3V0dGVyLCAwKTtcblxuICBAaW5jbHVkZSAteHktY2VsbC1wcm9wZXJ0aWVzKCRzaXplLCAkLWd1dHRlci1tYXJnaW4sICR2ZXJ0aWNhbCk7XG4gIEBpZiAoJC1ndXR0ZXItb3V0cHV0KSB7XG4gICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24pO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlIGd1dHRlcnMgZm9yIGEgY2VsbC9jb250YWluZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGVpdGhlciBtYXJnaW4gb3IgcGFkZGluZy5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW3JpZ2h0IGxlZnRdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJG5lZ2F0aXZlIFtmYWxzZV0gLSBXaGV0aGVyIHRvIGFwcGx5IHRoZSBndXR0ZXIgYXMgYSBuZWdhdGl2ZSB2YWx1ZS4gQ29tbW9ubHkgdXNlZCBmb3IgbmVzdGVkIGdyaWRzLlxuQG1peGluIHh5LWd1dHRlcnMoXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRuZWdhdGl2ZTogZmFsc2Vcbikge1xuICAkb3BlcmF0b3I6IGlmKCRuZWdhdGl2ZSwgJy0nLCAnJyk7XG5cbiAgLy8gSWYgd2UgaGF2ZSBkZWNsYXJlZCBuZWdhdGl2ZSBndXR0ZXJzLCBmb3JjZSB0eXBlIHRvIGBtYXJnaW4uXG4gICRndXR0ZXItdHlwZTogaWYoJG5lZ2F0aXZlLCAnbWFyZ2luJywgJGd1dHRlci10eXBlKTtcblxuICAvLyBPdXRwdXQgb3VyIG1hcmdpbiBndXR0ZXJzLlxuICBAaWYgKHR5cGUtb2YoJGd1dHRlcnMpID09ICdtYXAnKSB7XG4gICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoYXV0bywgJGd1dHRlcnMpIHtcbiAgICAgICRndXR0ZXI6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpIC8gMjtcblxuICAgICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZ3V0dGVyIHBvc2l0aW9uXG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgICN7JGd1dHRlci10eXBlfS0jeyR2YWx1ZX06IHVucXVvdGUoXCIjeyRvcGVyYXRvcn0jeyRndXR0ZXJ9XCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAodHlwZS1vZigkZ3V0dGVycykgPT0gJ251bWJlcicpIHtcbiAgICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVycykgLyAyO1xuXG4gICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZ3V0dGVyIHBvc2l0aW9uXG4gICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgI3skZ3V0dGVyLXR5cGV9LSN7JHZhbHVlfTogdW5xdW90ZShcIiN7JG9wZXJhdG9yfSN7JGd1dHRlcn1cIik7XG4gICAgfVxuICB9XG59XG4iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgTW9kdWxlIE5hdmlnYXRpb24gbWFpbiBzdHlsaW5nICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuLm1vZHVsZS1uYXZpZ2F0aW9uLW1haW57XHJcbiAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJ3RvcCcsMSk7XHJcbiAgdWx7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBsaXtcclxuICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbignbGVmdCcsMSk7XHJcbiAgICAgIGF7XHJcbiAgICAgICAgQGluY2x1ZGUgdHlwZXNldC1idXR0b24oKTtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICYuYnV0dG9ue1xyXG4gICAgICAgICAgQGluY2x1ZGUgbWFyZ2luLWRpcmVjdGlvbignYm90dG9tJywwLjQpO1xyXG4gICAgICAgICAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJ3RvcCcsMC40KTtcclxuICAgICAgICAgIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCdib3R0b20nLDAuNCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gICNuYXZpZ2F0aW9uLW1vYmlsZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcblxyXG4gICNuYXZpZ2F0aW9uLWRlc2t0b3Age1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vL0BpbmNsdWRlIGJyZWFrcG9pbnQoMTE1NnB4KXtcclxuQGluY2x1ZGUgYnJlYWtwb2ludCgxMDIzcHgpe1xyXG4gIC5tb2R1bGUtbmF2aWdhdGlvbi1tYWlue1xyXG4gICAgI25hdmlnYXRpb24tbW9iaWxle1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgI25hdmlnYXRpb24tZGVza3RvcHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKj09PT09ICBFbmQgb2YgTW9kdWxlIE5hdmlnYXRpb24gbWFpbiBzdHlsaW5nICA9PT09PT0qL1xyXG4iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuPSAgICAgICAgICAgIE1vZHVsZSBOYXZpZ2F0aW9uIE9mZi1DYW52YXMgICAgICAgICAgICA9XHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuI21vZHVsZS1uYXZpZ2F0aW9uLW9mZmNhbnZhcyB7XHJcbiAgbmF2IHtcclxuICAgIHVsIHtcclxuICAgICAgcGFkZGluZzogMTVweDtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJ3RvcCcsIDMpO1xyXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICBsaSB7XHJcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oXCJ0b3BcIiwgMC41KTtcclxuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbihcImJvdHRvbVwiLCAwLjUpO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKCRjb2xvci13aGl0ZSwgMC4yNSk7XHJcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgkY29sb3Itd2hpdGUsIDAuMjUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhIHtcclxuICAgICAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMWVtO1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICBAaW5jbHVkZSB0eXBlc2V0LWJ1dHRvbjtcclxuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyo9PT09PSAgRW5kIG9mIE1vZHVsZSBOYXZpZ2F0aW9uIE9mZi1DYW52YXMgID09PT09PSovXHJcbiIsIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgbW9kdWxlLXNvY2lhbCAgICAgICAgICAgID1cclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4ubW9kdWxlLXNvY2lhbHtcclxuICB1bHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGxpe1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbi1kaXJlY3Rpb24oaG9yaXpvbnRhbCwgMC4yKTtcclxuICAgICAgaXtcclxuICAgICAgICBAaW5jbHVkZSB0eXBlc2V0LXN1YmhlYWRpbmctMjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qPT09PT0gIEVuZCBvZiBtb2R1bGUtc29jaWFsICA9PT09PT0qL1xyXG5cclxuXHJcbiIsIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgTW9kdWxlIFRlYXNlciAgICAgICAgICAgID1cclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4vKiAtLS0tIGdyaWQgLS0tLSAqL1xyXG5cclxuXHJcblxyXG5cclxuLyogLS0tLSBncmlkLWl0ZW0gLS0tLSAqL1xyXG5cclxuLmdyaWQtc2l6ZXIsXHJcbi5ncmlkLWl0ZW0ge1xyXG4gIHdpZHRoOiAyNSU7XHJcbn1cclxuXHJcbi50ZWFzZXItb3ZlcmxheXtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxMHB4KTtcclxuICB3aWR0aDogY2FsYygxMDAlIC0gMTBweCk7XHJcbiAgY29udGVudDogJyc7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgkY29sb3ItZ3JleS1kYXJrLDAuNSk7XHJcbiAgLy9kaXNwbGF5OiBibG9jaztcclxuXHJcbiAgcGFkZGluZzogMDtcclxuICBtYXJnaW46IDA7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gIEBpbmNsdWRlIHR5cGVzZXQtZGlzcGxheS00KCk7XHJcblxyXG4gICY6aG92ZXJ7XHJcbiAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcbiAgfVxyXG59XHJcblxyXG4udGVhc2VyLWhpZGRlbntcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4ubW9kdWxlLXRlYXNlcntcclxuXHJcblxyXG4gICYubWFzb25yeS1pdGVte1xyXG4gICAgaGVpZ2h0OiAxMjBweDtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgd2lkdGg6IDI1JTtcclxuICAgIHBhZGRpbmc6NXB4O1xyXG4gICAgLmltYWdle1xyXG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XHJcbiAgICB9XHJcblxyXG4gICAgJi4tLXdpZHRoLTF7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSl7XHJcbiAgICAgICAgd2lkdGg6IDI1JTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuLS13aWR0aC0ye1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pe1xyXG4gICAgICAgIHdpZHRoOjUwJVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi4tLXdpZHRoLTN7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgICYuLS1oZWlnaHQtMXtcclxuICAgICAgaGVpZ2h0OiAyMDVweDtcclxuICAgIH1cclxuXHJcbiAgICAmLi0taGVpZ2h0LTJ7XHJcbiAgICAgIGhlaWdodDogMzA1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgJi4tLWhlaWdodC0ze1xyXG4gICAgICBoZWlnaHQ6IDQxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgICYuLS1oZWlnaHQtNHtcclxuICAgICAgaGVpZ2h0OiA2MTBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vKj09PT09ICBFbmQgb2YgTW9kdWxlIFRlYXNlciAgPT09PT09Ki9cclxuIiwiLm1vZHVsZS10ZWFzZXItYXVzc3RhdHR1bmd7XHJcblxyXG4gIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCdib3R0b20nLDIpO1xyXG5cclxuICB1bHtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCd0b3AnLDAuNSk7XHJcbiAgfVxyXG59XHJcbiIsIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgTW9kdWxlIFRleHQgU3R5bGluZyAgICAgICAgICAgID1cclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4ubW9kdWxlLXRleHR7XHJcbiAgLy9ib3JkZXI6IDFweCBzb2xpZCByZWQ7XHJcblxyXG4gIEBpbmNsdWRlIGdyaWQtcm93KCk7XHJcblxyXG4gIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCdib3R0b20nLDEpO1xyXG5cclxuICAudGV4dC1oZWFkZXJ7XHJcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbignYm90dG9tJywgMC41KTtcclxuICB9XHJcblxyXG4gIGltZ3tcclxuICAgIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCdib3R0b20nLDIpO1xyXG4gIH1cclxuXHJcbiAgLnRleHQtY29sdW1uIHtcclxuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XHJcbiAgfVxyXG5cclxuICAmLi1zaW5nbGV7XHJcbiAgICAudGV4dC1jb2x1bW57XHJcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuLXNwbGl0e1xyXG4gICAgLnRleHQtY29sdW1ue1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSl7XHJcbiAgLm1vZHVsZS10ZXh0e1xyXG5cclxuICAgICYuLXNpbmdsZXtcclxuXHJcblxyXG4gICAgICAudGV4dC1jb250ZW50LXdyYXBwZXJ7XHJcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJ2JvdHRvbScsIDEpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAudGV4dC1oZWFkZXJ7XHJcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTApO1xyXG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLXBvc2l0aW9uKGNlbnRlcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC50ZXh0LWNvbHVtbntcclxuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMCk7XHJcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oY2VudGVyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuLXNwbGl0e1xyXG4gICAgICAudGV4dC1jb2x1bW57XHJcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oNik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vKj09PT09ICBFbmQgb2YgTW9kdWxlIFRleHQgU3R5bGluZyAgPT09PT09Ki9cclxuIiwiLyoqXHJcbkxheW91dHMgYmVzY2hyZWliZW4gZWluZmFjaCBnZXNhZ3QgZGllIFBvc2l0aW9uZW4gdW5kIEdyb2Vzc2VuIHZvbiBNb2R1bGVuLlxyXG5IaWVyIHdpcmQgaGF1cHRzYWVjaGxpY2ggbWl0IGRlbSBGb3VuZGF0aW9uIEZyYW1ld29yayBnZWFyYmVpdGV0IHVuZCBrZWluZVxyXG5leHBsaXppdGVuIFN0eWxlLUFuZ2FiZW4genUgTW9kdWxlbiBnZW1hY2h0LlxyXG4gKi9cclxuXHJcblxyXG5AaW1wb3J0IFwibGF5b3V0LXR5cG9ncmFwaHlcIjtcclxuQGltcG9ydCBcImxheW91dC1nZW5lcmFsXCI7XHJcblxyXG5AaW1wb3J0IFwibGF5b3V0LXNlY3Rpb24tYnVjaHVuZ3NzeXN0ZW1cIjtcclxuQGltcG9ydCBcImxheW91dC1zZWN0aW9uLWNvbnRlbnRcIjtcclxuQGltcG9ydCBcImxheW91dC1zZWN0aW9uLWN0YVwiO1xyXG5AaW1wb3J0IFwibGF5b3V0LXNlY3Rpb24tZm9vdGVyXCI7XHJcbkBpbXBvcnQgXCJsYXlvdXQtc2VjdGlvbi1oZXJvXCI7XHJcbkBpbXBvcnQgXCJsYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVmXCI7XHJcbkBpbXBvcnQgXCJsYXlvdXQtc2VjdGlvbi12aWRlb1wiO1xyXG4iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgbWFpbiBzdHlsaW5nICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuaHRtbCxib2R5e1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG59XHJcblxyXG5cclxuKiB7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG59XHJcblxyXG5ib2R5IHtcclxuICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICAvL2NvbG9yOiAkY29sb3Itd2hpdGU7XHJcbn1cclxuXHJcblxyXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2e1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG5wIHtcclxuICAmLmVtYWlsYWRyZXNzLW1haWx0byB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBsaXN0ZW5cclxuXHJcbnVse1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgbGl7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLmRhdGVuc2NodXR6LCAuYWdiIHtcclxuICB1bCB7XHJcbiAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcclxuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcclxuICB9XHJcbn1cclxuXHJcbi5hZ2Ige1xyXG4gIGxpIHtcclxuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xyXG4gIH1cclxufVxyXG5cclxuLmxpc3QtZGwtaWNvbntcclxuICBAaW5jbHVkZSBteC1saXN0LWRsLWljb24oKTtcclxufVxyXG5cclxuLmxpc3QtaWNvbi1zdGFye1xyXG4gIEBpbmNsdWRlIG14LWxpc3QtaWNvbignaWNvbl9zdGVybi5zdmcnKTtcclxufVxyXG5cclxuKjpmb2N1cyB7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxuXHJcbi8vIHR5cG9ncmFwaHlcclxuXHJcbmIsc3Ryb25ne1xyXG4gIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtc2VtaWJvbGQ7XHJcbn1cclxuXHJcbmEge1xyXG4gIEBpbmNsdWRlIG14LWxpbmstY29sb3JzKCRjb2xvci1ncmV5LWRhcmssICRjb2xvci1wcmltYXJ5LCAkY29sb3ItZ3JleS1kYXJrLCAkY29sb3ItZ3JleS1kYXJrLCAkY29sb3ItZ3JleS1kYXJrKTtcclxufVxyXG5cclxuYS5pbnZlcnR7XHJcbiAgQGluY2x1ZGUgbXgtbGluay1jb2xvcnMoJGNvbG9yLXdoaXRlLCAkY29sb3ItcHJpbWFyeSwgJGNvbG9yLXdoaXRlLCAkY29sb3Itd2hpdGUsICRjb2xvci13aGl0ZSk7XHJcbn1cclxuXHJcbi8vIEhpbnp1ZsO8Z2VuIFNjaGF0dGVuXHJcblxyXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCAuaWNvbntcclxuICBAaW5jbHVkZSBteC10ZXh0LXNoYWRvdygkc2hhZG93LWNvbG9yKTtcclxufVxyXG5cclxuLy8gRGVrbGFyaWVydW5nIFNjaHJpZnQgU3R5bGluZ3NcclxuXHJcbi50eXBlc2V0LWRpc3BsYXktNHtcclxuICBAaW5jbHVkZSB0eXBlc2V0LWRpc3BsYXktNCgpO1xyXG59XHJcblxyXG4udHlwZXNldC1kaXNwbGF5LTN7XHJcbiAgQGluY2x1ZGUgdHlwZXNldC1kaXNwbGF5LTMoKTtcclxufVxyXG5cclxuLnR5cGVzZXQtZGlzcGxheS0ye1xyXG4gIEBpbmNsdWRlIHR5cGVzZXQtZGlzcGxheS0yKCk7XHJcbn1cclxuXHJcbi50eXBlc2V0LWRpc3BsYXktMXtcclxuICBAaW5jbHVkZSB0eXBlc2V0LWRpc3BsYXktMSgpO1xyXG59XHJcblxyXG4udHlwZXNldC1oZWFkbGluZXtcclxuICBAaW5jbHVkZSB0eXBlc2V0LWhlYWRsaW5lKCk7XHJcblxyXG4gICYucmVudC1jYXJhdmFuIHtcclxuICAgIEBpbmNsdWRlIHR5cGVzZXQtcmVudC1jYXJhdmFuKCk7XHJcbiAgfVxyXG59XHJcblxyXG4udHlwZXNldC10aXRsZXtcclxuICBAaW5jbHVkZSB0eXBlc2V0LXRpdGxlKCk7XHJcbn1cclxuXHJcbi50eXBlc2V0LXN1YmhlYWRpbmctMntcclxuICBAaW5jbHVkZSB0eXBlc2V0LXN1YmhlYWRpbmctMigpO1xyXG59XHJcblxyXG4udHlwZXNldC1zdWJoZWFkaW5nLTItbGFyZ2V7XHJcbiAgQGluY2x1ZGUgdHlwZXNldC1zdWJoZWFkaW5nLTItbGFyZ2UoKTtcclxufVxyXG5cclxuLnR5cGVzZXQtc3ViaGVhZGluZy0xe1xyXG4gIEBpbmNsdWRlIHR5cGVzZXQtc3ViaGVhZGluZy0xKCk7XHJcbn1cclxuXHJcbi50eXBlc2V0LWJvZHktMXtcclxuICBAaW5jbHVkZSB0eXBlc2V0LWJvZHktMSgpO1xyXG59XHJcblxyXG4udHlwZXNldC1ib2R5LTJ7XHJcbiAgQGluY2x1ZGUgdHlwZXNldC1ib2R5LTIoKTtcclxufVxyXG5cclxuLnR5cGVzZXQtY2FwdGlvbntcclxuICBAaW5jbHVkZSB0eXBlc2V0LWNhcHRpb24oKTtcclxufVxyXG5cclxuLnR5cGVzZXQtYnV0dG9ue1xyXG4gIEBpbmNsdWRlIHR5cGVzZXQtYnV0dG9uKCk7XHJcbn1cclxuXHJcbi50eXBlc2V0LWZvb3Rub3Rle1xyXG4gIEBpbmNsdWRlIHR5cGVzZXQtZm9vdG5vdGUoKTtcclxufVxyXG5cclxuLnR5cGVzZXQtbGluay1zZWNvbmRhcnl7XHJcbiAgQGluY2x1ZGUgdHlwZXNldC1saW5rLXNlY29uZGFyeSgpO1xyXG59XHJcblxyXG4vLyBpbnZlcnRpZXJlbiBkZXIgU2NocmlmdGZhcmJlXHJcbi5pbnZlcnR7XHJcbiAgY29sb3I6ICRmb250LWNvbG9yLWludmVydDtcclxufVxyXG5cclxuLmljb24tc3Rlcm57XHJcbiAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xyXG4gIGZvbnQtc2l6ZTogMzJweDtcclxufVxyXG5cclxuLyogSGludGVyZ3J1bmRmYXJiZW4gKi9cclxuLmJhY2tncm91bmQtYmxhY2t7XHJcbiAgQGluY2x1ZGUgbXgtYmFja2dyb3VuZC1jb2xvcigkY29sb3ItYmxhY2spO1xyXG59XHJcblxyXG4vKiBTdHJpY2ggKi9cclxuXHJcbi5wYWludHN0cm9rZS1tZWRpdW17XHJcbiAgQGluY2x1ZGUgbXgtcGFpbnRzdHJva2UoMzUlKTtcclxuICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbignYm90dG9tJywxKTtcclxufVxyXG5cclxuXHJcbi8qIEZ1bGwgV2lkdGggVmlkZW8gKi9cclxuIiwiLmxheW91dC1zZWN0aW9uLWJ1Y2h1bmdzc3lzdGVte1xyXG5cclxuICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbigndG9wJywyKTtcclxuICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbignYm90dG9tJywyKTtcclxuXHJcbiAgaDF7XHJcbiAgICBAaW5jbHVkZSB0eXBlc2V0LXRpdGxlO1xyXG4gICAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJ2JvdHRvbScsNCk7XHJcbiAgfVxyXG5cclxuICBoMiB7XHJcbiAgICBAaW5jbHVkZSB0eXBlc2V0LXRpdGxlO1xyXG4gICAgQGluY2x1ZGUgdHlwZXNldC1zdWJoZWFkaW5nLTE7XHJcbiAgfVxyXG5cclxuICAuY2FtcGVyLWRlc2NyaXB0aW9uIHtcclxuICAgIGRpdiB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDE4cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuPSAgICAgICAgICAgIExheW91dCBDb250ZW50IHN0eWxpbmcgICAgICAgICAgICA9XHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuLmxheW91dC1zZWN0aW9uLWNvbnRlbnR7XHJcbiAgLmFydGljbGUtb3V0ZXItd3JhcHBlcntcclxuICAgIEBpbmNsdWRlIGdyaWQtcm93KCk7XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbigndG9wJywyKTtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCdib3R0b20nLDIpO1xyXG5cclxuICAgIC5zdHlsZWd1aWRlLXdyYXBwZXJ7XHJcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEyKTtcclxuICAgIH1cclxuXHJcbiAgICAubW9kdWxlLWhlYWRlci1hcnRpY2xle1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7XHJcbiAgICB9XHJcblxyXG4gICAgLm1vZHVsZS10ZXh0e1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMiwwKTtcclxuICAgIH1cclxuXHJcbiAgICAubW9kdWxlLWN0YXtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIsMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLm1vZHVsZS1jYXJvdXNlbC1wcm9maWxle1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMiwwKTtcclxuICAgIH1cclxuXHJcbiAgICAubW9kdWxlLWdhbGxlcnktbWFzb25yeXtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIsMCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pe1xyXG4gIC5sYXlvdXQtc2VjdGlvbi1jb250ZW50e1xyXG4gICAgLmFydGljbGUtb3V0ZXItd3JhcHBlcntcclxuICAgICAgLm1vZHVsZS10ZXh0e1xyXG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEwKTtcclxuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbihjZW50ZXIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKj09PT09ICBFbmQgb2YgTGF5b3V0IENvbnRlbnQgc3R5bGluZyAgPT09PT09Ki9cclxuIiwiLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuPSAgICAgICAgTGF5b3V0IFNlY3Rpb24gQ2FsbCB0byBBY3Rpb24gICAgICAgID1cclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbi5sYXlvdXQtc2VjdGlvbi1jdGF7XHJcblxyXG4gIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCd0b3AnLCA0KTtcclxuICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbignYm90dG9tJywgNyk7XHJcblxyXG4gIC8vIERlZmF1bHQgQmFja2dyb3VuZFxyXG4gIGJhY2tncm91bmQ6IHVybCgkUEFUSC1BU1NFVFMtSU1HICsgJ2JnX3JlaXNlbi5qcGcnKSA1MCUgNTAlIG5vLXJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxMWMxNztcclxuICAud3JhcHBlci1jb250ZW50e1xyXG4gICAgQGluY2x1ZGUgZ3JpZC1yb3coKTtcclxuXHJcbiAgICAud3JhcHBlci1oZWFkbGluZXtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbihjZW50ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG5cclxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pe1xyXG4gIC5sYXlvdXQtc2VjdGlvbi1jdGF7XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbigndG9wJywgNyk7XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbignYm90dG9tJywgMTApO1xyXG4gICAgLndyYXBwZXItY29udGVudHtcclxuICAgICAgLndyYXBwZXItaGVhZGxpbmV7XHJcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTApO1xyXG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLXBvc2l0aW9uKGNlbnRlcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2Upe1xyXG4gIC5sYXlvdXQtc2VjdGlvbi1jdGF7XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbigndG9wJywgNyk7XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbignYm90dG9tJywgMjApO1xyXG4gICAgLy9iYWNrZ3JvdW5kLXNpemU6IDE1MDBweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKj09PT09ICBFbmQgb2YgTGF5b3V0IFNlY3Rpb24gQ2FsbCB0byBBY3Rpb24gID09PT09PSovXHJcblxyXG4iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG49ICAgICAgICAgICAgTGF5b3V0IFNlY3Rpb24gRm9vdGVyICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG4vL3RlbXAgZm9vdGVyIHN0eWxpbmdcclxuXHJcbiNsYXlvdXQtc2VjdGlvbi1mb290ZXJ7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLWJsYWNrO1xyXG4gIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJ3RvcCcsNCk7XHJcbiAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJ2JvdHRvbScsNCk7XHJcblxyXG4gIEBpbmNsdWRlIGdyaWQtcm93KCk7XHJcblxyXG4gIC53cmFwcGVyLWxvZ297XHJcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7XHJcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbihjZW50ZXIpO1xyXG4gICAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJ2JvdHRvbScsIDQpO1xyXG4gIH1cclxuXHJcbiAgI3dyYXBwZXItbmF2aWdhdGlvbntcclxuXHJcbiAgICAjbW9kdWxlLW5hdmlnYXRpb24tZm9vdGVye1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbig4KTtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oY2VudGVyKTtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJ2JvdHRvbScsNCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubW9kdWxlLXNvY2lhbHtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCdib3R0b20nLDIpO1xyXG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xyXG4gIH1cclxuXHJcbiAgI3dyYXBwZXItY29udGFjdCB7XHJcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBAaW5jbHVkZSBtYXJnaW4tZGlyZWN0aW9uKCdib3R0b20nLCAxKTtcclxuICB9XHJcblxyXG4gICN3cmFwcGVyLWxlZ2Fse1xyXG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxufVxyXG5cclxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pe1xyXG4gICNsYXlvdXQtc2VjdGlvbi1mb290ZXJ7XHJcbiAgICAjd3JhcHBlci1uYXZpZ2F0aW9ue1xyXG4gICAgICAjbW9kdWxlLW5hdmlnYXRpb24tZm9vdGVye1xyXG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEyKTtcclxuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbihjZW50ZXIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyo9PT09PSAgRW5kIG9mIExheW91dCBTZWN0aW9uIEZvb3RlciAgPT09PT09Ki9cclxuIiwiJGhlYWRlci1oZWlnaHQ6IDE3MHB4O1xyXG5cclxuLndyYXBwZXItaGVybyB7XHJcbiAgQGluY2x1ZGUgZ3JpZC1yb3coJHNpemU6IDE4MDBweCk7XHJcbiAgbWFyZ2luLWJvdHRvbTogLSAkaGVhZGVyLWhlaWdodDtcclxuXHJcbiAgLmhlcm8tc2xpZGVyLXdyYXBwZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgdG9wOiAtJGhlYWRlci1oZWlnaHQ7XHJcbiAgICB6LWluZGV4OiAxO1xyXG4gIH1cclxuXHJcbiAgLnZpZGVvLXdyYXBwZXIge1xyXG4gICAgLy9kaXNwbGF5OiBub25lO1xyXG5cclxuICAgIHZpZGVvIHtcclxuICAgICAgbWF4LWhlaWdodDogOTB2aDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLndyYXBwZXItY2xhaW0ge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG5cclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY2Fyb3VzZWwtaGVhZGVyIHtcclxuICAgIC8vZGlzcGxheTogbm9uZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgIC8vQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgLy8gIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAvL31cclxuXHJcbiAgICAuc2xpZGUtaW1hZ2Utd3JhcHBlciB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgIC5zbGljay1hcnJvdyB7XHJcbiAgICAgICAgei1pbmRleDogOTAwMDtcclxuICAgICAgfVxyXG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgICBoZWlnaHQ6IDM1dmg7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMTAwJTtcclxuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgaW1nIHtcclxuICAgICAgICBoZWlnaHQ6IDM1dmg7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgLy9vYmplY3QtZml0OiBjb3ZlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pe1xyXG4gICAgICAgIGhlaWdodDogNDV2aDtcclxuXHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgIC8vaGVpZ2h0OiA0NXZoO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKXtcclxuICAgICAgICBoZWlnaHQ6IDY1dmg7XHJcblxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAvL2hlaWdodDogNjV2aDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLmhlcm8taW1nIHtcclxuICAvLyAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAvL1xyXG4gIC8vICAmLmltZy0xIHtcclxuICAvLyAgICBiYWNrZ3JvdW5kOiB1cmwoJFBBVEgtQVNTRVRTLUlNRyArIFwiYmdfaGVyby5qcGdcIikgNTAlIDUwJSBuby1yZXBlYXQ7XHJcbiAgLy8gIH1cclxuICAvL31cclxuXHJcbiAgI21vZHVsZS1oZWFkZXItc2l0ZXtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCdib3R0b20nLDIpO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogMTAwO1xyXG4gIH1cclxuXHJcbiAgLndyYXBwZXItY2xhaW0ge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAzNSU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgQGluY2x1ZGUgZ3JpZC1yb3coKTtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCdib3R0b20nLCA3KTtcclxuXHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgdG9wOiA1MCU7XHJcbiAgICAgIGxlZnQ6IDEwJTtcclxuXHJcbiAgICAgICYuY2xhaW0tc2Vjb25kYXJ5IHtcclxuICAgICAgICB0b3A6IDQwJTtcclxuXHJcbiAgICAgICAgaDIge1xyXG4gICAgICAgICAgZm9udC1zaXplOiA2LjI1cmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jbGFpbSB7XHJcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEwKTtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oY2VudGVyKTtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJ2JvdHRvbScsIDIpO1xyXG4gICAgICBAaW5jbHVkZSBteC1wYWludHN0cm9rZSg1MCUpO1xyXG4gICAgICB6LWluZGV4OiAxMDA7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbj0gICAgICAgICAgICBMYXlvdXQgU3RlY2ticmllZiBzdHlsaW5nICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbi5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVme1xyXG4gIC5hcnRpY2xlLW91dGVyLXdyYXBwZXIge1xyXG4gICAgQGluY2x1ZGUgZ3JpZC1yb3coKTtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCd0b3AnLCAyKTtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCdib3R0b20nLCAyKTtcclxuXHJcbiAgICAubW9kdWxlLWhlYWRlci1hcnRpY2xle1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7XHJcbiAgICB9XHJcblxyXG4gICAgLm1vZHVsZS10ZXh0e1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMiwwKTtcclxuICAgIH1cclxuXHJcbiAgICAuZ2FsbGVyeS13cmFwcGVye1xyXG4gICAgICBAaW5jbHVkZSBncmlkLXJvdygpO1xyXG4gICAgICAubW9kdWxlLWdhbGxlcnktbWFzb25yeXtcclxuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7XHJcbiAgICAgICAgLm1hc29ucnktaXRlbXtcclxuICAgICAgICAgIHdpZHRoOiA5OSU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pe1xyXG4gIC5sYXlvdXQtc2VjdGlvbi1zdGVja2JyaWVme1xyXG4gICAgLmFydGljbGUtb3V0ZXItd3JhcHBlcntcclxuICAgICAgLm1vZHVsZS10ZXh0e1xyXG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDgpO1xyXG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLXBvc2l0aW9uKGNlbnRlcik7XHJcbiAgICAgIH1cclxuICAgICAgLmdhbGxlcnktd3JhcHBlcntcclxuICAgICAgICAubW9kdWxlLWdhbGxlcnktbWFzb25yeXtcclxuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEwKTtcclxuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLXBvc2l0aW9uKGNlbnRlcik7XHJcbiAgICAgICAgICAubWFzb25yeS1pdGVte1xyXG4gICAgICAgICAgICB3aWR0aDogNDUlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSl7XHJcbiAgLmxheW91dC1zZWN0aW9uLXN0ZWNrYnJpZWZ7XHJcbiAgICAuYXJ0aWNsZS1vdXRlci13cmFwcGVye1xyXG4gICAgICAubW9kdWxlLXRleHR7XHJcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oNik7XHJcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oY2VudGVyKTtcclxuICAgICAgfVxyXG4gICAgICAuZ2FsbGVyeS13cmFwcGVye1xyXG4gICAgICAgIC5tb2R1bGUtZ2FsbGVyeS1tYXNvbnJ5e1xyXG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oOCk7XHJcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbihjZW50ZXIpO1xyXG4gICAgICAgICAgLm1hc29ucnktaXRlbXtcclxuICAgICAgICAgICAgd2lkdGg6IDQ2JTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiIsIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuPSAgICAgICAgICAgIExheW91dCBTZWN0aW9uIFZpZGVvICAgICAgICAgICAgPVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4ubGF5b3V0LXNlY3Rpb24tdmlkZW97XHJcbiAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAjMjExYzE3O1xyXG4gIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCdib3R0b20nLDIpO1xyXG4gIC53cmFwcGVyLWNvbnRlbnR7XHJcbiAgICBAaW5jbHVkZSBncmlkLXJvdygkc2l6ZTogMTUwMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbi8qPT09PT0gIEVuZCBvZiBMYXlvdXQgU2VjdGlvbiBWaWRlbyAgPT09PT09Ki9cclxuIiwiQGZvbnQtZmFjZSB7XG5cdGZvbnQtZmFtaWx5OiBcInNrLWljb25mb250XCI7XG5cdHNyYzogdXJsKCcuLi9mb250cy9zay1pY29uZm9udC5lb3QnKTtcblx0c3JjOiB1cmwoJy4uL2ZvbnRzL3NrLWljb25mb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VvdCcpLFxuXHRcdHVybCgnLi4vZm9udHMvc2staWNvbmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG5cdFx0dXJsKCcuLi9mb250cy9zay1pY29uZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG5cdFx0dXJsKCcuLi9mb250cy9zay1pY29uZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG5cdFx0dXJsKCcuLi9mb250cy9zay1pY29uZm9udC5zdmcjc2staWNvbmZvbnQnKSBmb3JtYXQoJ3N2ZycpO1xufVxuXG4uaWNvbjpiZWZvcmUge1xuXHRmb250LWZhbWlseTogXCJzay1pY29uZm9udFwiO1xuXHRcdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHRcdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0Zm9udC12YXJpYW50OiBub3JtYWw7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdC8qIHNwZWFrOiBub25lOyBvbmx5IG5lY2Vzc2FyeSBpZiBub3QgdXNpbmcgdGhlIHByaXZhdGUgdW5pY29kZSByYW5nZSAoZmlyc3RHbHlwaCBvcHRpb24pICovXG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cblxuLmljb24tZmFjZWJvb2s6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXEUwMDFcIjtcbn1cblxuLmljb24taW5zdGFncmFtOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxFMDAyXCI7XG59XG5cbi5pY29uLW1lbnU6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXEUwMDNcIjtcbn1cblxuLmljb24tcGZlaWwtbGlua3M6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXEUwMDRcIjtcbn1cblxuLmljb24tcGZlaWwtcmVjaHRzOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxFMDA1XCI7XG59XG5cbi5pY29uLXB1bmt0OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxFMDA2XCI7XG59XG5cbi5pY29uLXN0ZXJuOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxFMDA3XCI7XG59XG5cbi5pY29uLXR3aXR0ZXI6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXEUwMDhcIjtcbn1cblxuLmljb24teW91dHViZTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcRTAwOVwiO1xufVxuIiwiLyogU2xpZGVyICovXHJcblxyXG4uc2xpY2stc2xpZGVyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XHJcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XHJcbiAgdG91Y2gtYWN0aW9uOiBwYW4teTtcclxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG59XHJcbi5zbGljay1saXN0IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuXHJcbiAgJjpmb2N1cyB7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gIH1cclxuXHJcbiAgJi5kcmFnZ2luZyB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBjdXJzb3I6IGhhbmQ7XHJcbiAgfVxyXG59XHJcbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxyXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XHJcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcclxufVxyXG5cclxuLnNsaWNrLXRyYWNrIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDA7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG5cclxuICAmOmJlZm9yZSxcclxuICAmOmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBkaXNwbGF5OiB0YWJsZTtcclxuICB9XHJcblxyXG4gICY6YWZ0ZXIge1xyXG4gICAgY2xlYXI6IGJvdGg7XHJcbiAgfVxyXG5cclxuICAuc2xpY2stbG9hZGluZyAmIHtcclxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICB9XHJcbn1cclxuLnNsaWNrLXNsaWRlIHtcclxuICBmbG9hdDogbGVmdDtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgbWluLWhlaWdodDogMXB4O1xyXG4gIFtkaXI9XCJydGxcIl0gJiB7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgfVxyXG4gIGltZyB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbiAgJi5zbGljay1sb2FkaW5nIGltZyB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgJi5kcmFnZ2luZyBpbWcge1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAuc2xpY2staW5pdGlhbGl6ZWQgJiB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcblxyXG4gIC5zbGljay1sb2FkaW5nICYge1xyXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIH1cclxuXHJcbiAgLnNsaWNrLXZlcnRpY2FsICYge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICB9XHJcbn1cclxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLy8gRGVmYXVsdCBWYXJpYWJsZXNcclxuXHJcbi8vIFNsaWNrIGljb24gZW50aXR5IGNvZGVzIG91dHB1dHMgdGhlIGZvbGxvd2luZ1xyXG4vLyBcIlxcMjE5MFwiIG91dHB1dHMgYXNjaWkgY2hhcmFjdGVyIFwi4oaQXCJcclxuLy8gXCJcXDIxOTJcIiBvdXRwdXRzIGFzY2lpIGNoYXJhY3RlciBcIuKGklwiXHJcbi8vIFwiXFwyMDIyXCIgb3V0cHV0cyBhc2NpaSBjaGFyYWN0ZXIgXCLigKJcIlxyXG5cclxuJHNsaWNrLWZvbnQtcGF0aDogXCIvYXNzZXRzL2ZvbnRzL1wiICFkZWZhdWx0O1xyXG4kc2xpY2stZm9udC1mYW1pbHk6IFwic2staWNvbmZvbnRcIiAhZGVmYXVsdDtcclxuJHNsaWNrLWxvYWRlci1wYXRoOiBcIi9hc3NldHMvaW1nLyBcIiAhZGVmYXVsdDtcclxuXHJcbiRzbGljay1wcmV2LWNoYXJhY3RlcjogXCJcXEUwMDRcIiAhZGVmYXVsdDtcclxuJHNsaWNrLW5leHQtY2hhcmFjdGVyOiBcIlxcRTAwNVwiICFkZWZhdWx0O1xyXG4kc2xpY2stZG90LWNoYXJhY3RlcjogXCJcXEUwMDVcIiAhZGVmYXVsdDtcclxuJHNsaWNrLWRvdC1zaXplOiA2cHggIWRlZmF1bHQ7XHJcbiRzbGljay1vcGFjaXR5LWRlZmF1bHQ6IDAuNzUgIWRlZmF1bHQ7XHJcbiRzbGljay1vcGFjaXR5LW9uLWhvdmVyOiAxICFkZWZhdWx0O1xyXG4kc2xpY2stb3BhY2l0eS1ub3QtYWN0aXZlOiAwLjI1ICFkZWZhdWx0O1xyXG5cclxuQGZ1bmN0aW9uIHNsaWNrLWltYWdlLXVybCgkdXJsKSB7XHJcbiAgQGlmIGZ1bmN0aW9uLWV4aXN0cyhpbWFnZS11cmwpIHtcclxuICAgIEByZXR1cm4gaW1hZ2UtdXJsKCR1cmwpO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAcmV0dXJuIHVybCgkc2xpY2stbG9hZGVyLXBhdGggKyAkdXJsKTtcclxuICB9XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBzbGljay1mb250LXVybCgkdXJsKSB7XHJcbiAgQGlmIGZ1bmN0aW9uLWV4aXN0cyhmb250LXVybCkge1xyXG4gICAgQHJldHVybiBmb250LXVybCgkdXJsKTtcclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgQHJldHVybiB1cmwoJHNsaWNrLWZvbnQtcGF0aCArICR1cmwpO1xyXG4gIH1cclxufVxyXG5cclxuLyogU2xpZGVyICovXHJcblxyXG4uc2xpY2stbGlzdCB7XHJcbiAgLnNsaWNrLWxvYWRpbmcgJiB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmIChcImFzc2V0cy9pbWcvYWpheC1sb2FkZXIuZ2lmXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xyXG4gIH1cclxufVxyXG5cclxuLyogQXJyb3dzICovXHJcblxyXG4uc2xpY2stcHJldixcclxuLnNsaWNrLW5leHQge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBoZWlnaHQ6IDIwcHg7XHJcbiAgd2lkdGg6IDIwcHg7XHJcbiAgbGluZS1oZWlnaHQ6IDBweDtcclxuICBmb250LXNpemU6IDBweDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIHRvcDogNTAlO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XHJcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgei1pbmRleDogMzAwMDtcclxuICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktb24taG92ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG4gICYuc2xpY2stZGlzYWJsZWQ6YmVmb3JlIHtcclxuICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW5vdC1hY3RpdmU7XHJcbiAgfVxyXG4gICY6YmVmb3JlIHtcclxuICAgIGZvbnQtZmFtaWx5OiAkc2xpY2stZm9udC1mYW1pbHk7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuICAgIGNvbG9yOiAkc2xpY2stYXJyb3ctY29sb3I7XHJcbiAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1kZWZhdWx0O1xyXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG4gIH1cclxufVxyXG5cclxuLnNsaWNrLXByZXYge1xyXG4gIGxlZnQ6IDBweDtcclxuICBbZGlyPVwicnRsXCJdICYge1xyXG4gICAgbGVmdDogYXV0bztcclxuICAgIHJpZ2h0OiAtMjVweDtcclxuICB9XHJcbiAgJjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJHNsaWNrLXByZXYtY2hhcmFjdGVyO1xyXG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcclxuICAgICAgY29udGVudDogJHNsaWNrLW5leHQtY2hhcmFjdGVyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnNsaWNrLW5leHQge1xyXG4gIHJpZ2h0OiAwcHg7XHJcbiAgW2Rpcj1cInJ0bFwiXSAmIHtcclxuICAgIGxlZnQ6IC0yNXB4O1xyXG4gICAgcmlnaHQ6IGF1dG87XHJcbiAgfVxyXG4gICY6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6ICRzbGljay1uZXh0LWNoYXJhY3RlcjtcclxuICAgIFtkaXI9XCJydGxcIl0gJiB7XHJcbiAgICAgIGNvbnRlbnQ6ICRzbGljay1wcmV2LWNoYXJhY3RlcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qIERvdHMgKi9cclxuXHJcbi5zbGljay1kb3R0ZWQuc2xpY2stc2xpZGVyIHtcclxuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG59XHJcblxyXG4uc2xpY2stZG90cyB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvdHRvbTogLTI1cHg7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgcGFkZGluZzogMDtcclxuICBtYXJnaW46IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbGkge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgaGVpZ2h0OiAyMHB4O1xyXG4gICAgd2lkdGg6IDIwcHg7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIGJvcmRlcjogMDtcclxuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICBsaW5lLWhlaWdodDogMHB4O1xyXG4gICAgICBmb250LXNpemU6IDBweDtcclxuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1vbi1ob3ZlcjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICBjb250ZW50OiAkc2xpY2stZG90LWNoYXJhY3RlcjtcclxuICAgICAgICB3aWR0aDogMjBweDtcclxuICAgICAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICRzbGljay1mb250LWZhbWlseTtcclxuICAgICAgICBmb250LXNpemU6ICRzbGljay1kb3Qtc2l6ZTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgY29sb3I6ICRzbGljay1kb3QtY29sb3I7XHJcbiAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktbm90LWFjdGl2ZTtcclxuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxuICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAmLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlIHtcclxuICAgICAgY29sb3I6ICRzbGljay1kb3QtY29sb3ItYWN0aXZlO1xyXG4gICAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1kZWZhdWx0O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJib2R5LmxiLWRpc2FibGUtc2Nyb2xsaW5nIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4ubGlnaHRib3hPdmVybGF5IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgei1pbmRleDogOTk5OTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcclxuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTgwKTtcclxuICBvcGFjaXR5OiAwLjg7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLmxpZ2h0Ym94IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICB6LWluZGV4OiAxMDAwMDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBvdXRsaW5lOiBub25lO1xyXG59XHJcblxyXG4ubGlnaHRib3ggLmxiLWltYWdlIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBoZWlnaHQ6IGF1dG87XHJcbiAgbWF4LXdpZHRoOiBpbmhlcml0O1xyXG4gIG1heC1oZWlnaHQ6IG5vbmU7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG5cclxuICAvKiBJbWFnZSBib3JkZXIgKi9cclxuICBib3JkZXI6IDRweCBzb2xpZCB3aGl0ZTtcclxufVxyXG5cclxuLmxpZ2h0Ym94IGEgaW1nIHtcclxuICBib3JkZXI6IG5vbmU7XHJcbn1cclxuXHJcbi5sYi1vdXRlckNvbnRhaW5lciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICp6b29tOiAxO1xyXG4gIHdpZHRoOiAyNTBweDtcclxuICBoZWlnaHQ6IDI1MHB4O1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuXHJcbiAgLyogQmFja2dyb3VuZCBjb2xvciBiZWhpbmQgaW1hZ2UuXHJcbiAgICAgVGhpcyBpcyB2aXNpYmxlIGR1cmluZyB0cmFuc2l0aW9ucy4gKi9cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLmxiLW91dGVyQ29udGFpbmVyOmFmdGVyIHtcclxuICBjb250ZW50OiBcIlwiO1xyXG4gIGRpc3BsYXk6IHRhYmxlO1xyXG4gIGNsZWFyOiBib3RoO1xyXG59XHJcblxyXG4ubGItbG9hZGVyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA0MyU7XHJcbiAgbGVmdDogMDtcclxuICBoZWlnaHQ6IDI1JTtcclxuICB3aWR0aDogMTAwJTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgbGluZS1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbi5sYi1jYW5jZWwge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHdpZHRoOiAzMnB4O1xyXG4gIGhlaWdodDogMzJweDtcclxuICBtYXJnaW46IDAgYXV0bztcclxuICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2xvYWRpbmcuZ2lmKSBuby1yZXBlYXQ7XHJcbn1cclxuXHJcbi5sYi1uYXYge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgei1pbmRleDogMTA7XHJcbn1cclxuXHJcbi5sYi1jb250YWluZXIgPiAubmF2IHtcclxuICBsZWZ0OiAwO1xyXG59XHJcblxyXG4ubGItbmF2IGEge1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQVBBQUFQLy8vd0FBQUNINUJBRUFBQUFBTEFBQUFBQUJBQUVBQUFJQ1JBRUFPdz09Jyk7XHJcbn1cclxuXHJcbi5sYi1wcmV2LCAubGItbmV4dCB7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLmxiLW5hdiBhLmxiLXByZXYge1xyXG4gIHdpZHRoOiAzNCU7XHJcbiAgbGVmdDogMDtcclxuICBmbG9hdDogbGVmdDtcclxuICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL3ByZXYucG5nKSBsZWZ0IDQ4JSBuby1yZXBlYXQ7XHJcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0wKTtcclxuICBvcGFjaXR5OiAwO1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzO1xyXG4gIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzO1xyXG4gIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC42cztcclxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnM7XHJcbn1cclxuXHJcbi5sYi1uYXYgYS5sYi1wcmV2OmhvdmVyIHtcclxuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7XHJcbiAgb3BhY2l0eTogMTtcclxufVxyXG5cclxuLmxiLW5hdiBhLmxiLW5leHQge1xyXG4gIHdpZHRoOiA2NCU7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG4gIGJhY2tncm91bmQ6IHVybCguLi9pbWcvbmV4dC5wbmcpIHJpZ2h0IDQ4JSBuby1yZXBlYXQ7XHJcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0wKTtcclxuICBvcGFjaXR5OiAwO1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzO1xyXG4gIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzO1xyXG4gIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC42cztcclxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnM7XHJcbn1cclxuXHJcbi5sYi1uYXYgYS5sYi1uZXh0OmhvdmVyIHtcclxuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7XHJcbiAgb3BhY2l0eTogMTtcclxufVxyXG5cclxuLmxiLWRhdGFDb250YWluZXIge1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgKnpvb206IDE7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XHJcbn1cclxuXHJcbi5sYi1kYXRhQ29udGFpbmVyOmFmdGVyIHtcclxuICBjb250ZW50OiBcIlwiO1xyXG4gIGRpc3BsYXk6IHRhYmxlO1xyXG4gIGNsZWFyOiBib3RoO1xyXG59XHJcblxyXG4ubGItZGF0YSB7XHJcbiAgcGFkZGluZzogMCA0cHg7XHJcbiAgY29sb3I6ICNjY2M7XHJcbn1cclxuXHJcbi5sYi1kYXRhIC5sYi1kZXRhaWxzIHtcclxuICB3aWR0aDogODUlO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMWVtO1xyXG59XHJcblxyXG4ubGItZGF0YSAubGItY2FwdGlvbiB7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGxpbmUtaGVpZ2h0OiAxZW07XHJcbn1cclxuXHJcbi5sYi1kYXRhIC5sYi1jYXB0aW9uIGEge1xyXG4gIGNvbG9yOiAjNGFlO1xyXG59XHJcblxyXG4ubGItZGF0YSAubGItbnVtYmVyIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBjbGVhcjogbGVmdDtcclxuICBwYWRkaW5nLWJvdHRvbTogMWVtO1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBjb2xvcjogIzk5OTk5OTtcclxufVxyXG5cclxuLmxiLWRhdGEgLmxiLWNsb3NlIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBmbG9hdDogcmlnaHQ7XHJcbiAgd2lkdGg6IDMwcHg7XHJcbiAgaGVpZ2h0OiAzMHB4O1xyXG4gIGJhY2tncm91bmQ6IHVybCguLi9pbWcvY2xvc2UucG5nKSB0b3AgcmlnaHQgbm8tcmVwZWF0O1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT03MCk7XHJcbiAgb3BhY2l0eTogMC43O1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xyXG4gIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xyXG4gIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcclxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XHJcbn1cclxuXHJcbi5sYi1kYXRhIC5sYi1jbG9zZTpob3ZlciB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKTtcclxuICBvcGFjaXR5OiAxO1xyXG59XHJcbiIsImRpdltkYXRhLXNlcnZpY2VdICosXHJcbmRpdltkYXRhLXNlcnZpY2VdIDpiZWZvcmUsXHJcbmRpdltkYXRhLXNlcnZpY2VdIDphZnRlcntcclxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBmbG9hdDogbm9uZTtcclxuICBmb250LXN0eWxlOiBpbmhlcml0O1xyXG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xyXG4gIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcclxuICBsaW5lLWhlaWdodDogMS4yO1xyXG4gIGZvbnQtc2l6ZTogMWVtO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG4gIGxldHRlci1zcGFjaW5nOiB1bnNldDtcclxuICBjb2xvcjogaW5oZXJpdDtcclxuICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG59XHJcblxyXG5kaXZbZGF0YS1zZXJ2aWNlXSAuYy1sZCB7XHJcbiAgYm90dG9tOiAyZW07XHJcbiAgcmlnaHQ6IDIuNWVtO1xyXG4gIG9wYWNpdHk6IDA7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTtcclxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlLCB2aXNpYmlsaXR5IC4zcyBlYXNlLCB0cmFuc2Zvcm0gLjNzIGVhc2U7XHJcbn1cclxuXHJcbmRpdltkYXRhLXNlcnZpY2VdIC5jLWxkLFxyXG5kaXZbZGF0YS1zZXJ2aWNlXSAuYy1sZDphZnRlcntcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgei1pbmRleDogMTtcclxuICBib3JkZXItcmFkaXVzOiAxMDAlO1xyXG4gIHdpZHRoOiAyMHB4O1xyXG4gIGhlaWdodDogMjBweDtcclxufVxyXG5cclxuZGl2W2RhdGEtc2VydmljZV0gLmMtbGQ6OmFmdGVye1xyXG4gIGNvbnRlbnQ6ICcnO1xyXG4gIGJvcmRlcjogNHB4IHNvbGlkIHdoaXRlO1xyXG4gIGJvcmRlci10b3A6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlO1xyXG59XHJcblxyXG5kaXZbZGF0YS1zZXJ2aWNlXS5jLWgtbiAuYy1sZHtcclxuICBvcGFjaXR5OiAxO1xyXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIHNwaW4ge1xyXG4gIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cclxuICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxyXG59XHJcblxyXG5kaXZbZGF0YS1zZXJ2aWNlXXtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIG1pbi1oZWlnaHQ6IDE1MHB4O1xyXG4gIG1pbi13aWR0aDogMzAwcHg7XHJcbiAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGIxMDE2O1xyXG59XHJcblxyXG5kaXZbZGF0YS1zZXJ2aWNlXSBidXR0b24sXHJcbmRpdltkYXRhLXNlcnZpY2VdIGxhYmVsLFxyXG5kaXZbZGF0YS1zZXJ2aWNlXSBpbnB1dCxcclxuZGl2W2RhdGEtc2VydmljZV0gaDEsXHJcbmRpdltkYXRhLXNlcnZpY2VdIGgyLFxyXG5kaXZbZGF0YS1zZXJ2aWNlXSBoM3tcclxuICB0cmFuc2l0aW9uOiBub25lO1xyXG4gIGFuaW1hdGlvbjogbm9uZTtcclxufVxyXG5cclxuZGl2W2RhdGEtc2VydmljZV06OmJlZm9yZXtcclxuICBwYWRkaW5nLXRvcDogNTYuMjUlO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGNvbnRlbnQ6IFwiXCI7XHJcbn1cclxuXHJcbmRpdltkYXRhLWF1dG9zY2FsZV17XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG5kaXZbZGF0YS1zZXJ2aWNlXSAuYy1udHtcclxuICBjb2xvcjogI2ZmZjtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGVhc2UsIHZpc2liaWxpdHkgLjNzIGVhc2U7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMDtcclxuICB6LWluZGV4OiAyO1xyXG59XHJcblxyXG5kaXZbZGF0YS1zZXJ2aWNlXSAuYy1iZ3tcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiAwO1xyXG4gIG9wYWNpdHk6IC41O1xyXG4gIHotaW5kZXg6IDE7XHJcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZSwgdmlzaWJpbGl0eSAuM3MgZWFzZSwgdHJhbnNmb3JtIC4zcyBlYXNlO1xyXG59XHJcblxyXG5kaXZbZGF0YS1zZXJ2aWNlXSAuYy1iZzo6YmVmb3Jle1xyXG4gIGNvbnRlbnQ6ICcnO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICByaWdodDogMDtcclxuICBib3R0b206IDA7XHJcbiAgei1pbmRleDogMTtcclxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlLCB2aXNpYmlsaXR5IC4zcyBlYXNlO1xyXG4gIGJhY2tncm91bmQ6IHJnYigzMCw1Niw5Nyk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCAxNGRlZywgcmdiKDEyLCAxNSwgMjMgLyA5NSUpIDEwJSwgcmdiKDAsIDAsIDAgLyA1MSUpIDEwMCUsIHJnYmEoNjgsNzcsMTI1LDAuMTA4Mjk4MzUzNTIxMDk1OSkgMCUpO1xyXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KDE0ZGVnLCByZ2JhKDMwLDU2LDk3LDEpIDAlLCByZ2JhKDIwNiwyMjAsMjMzLDAuMTE4MTAyMjc1MDg5NzIzNCkgMTAwJSk7XHJcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoMTRkZWcsIHJnYmEoMzAsNTYsOTcsMSkgMCUsIHJnYmEoMjA2LDIyMCwyMzMsMC4xMTgxMDIyNzUwODk3MjM0KSAxMDAlKTtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTRkZWcsIHJnYmEoMzAsNTYsOTcsMSkgMCUsIHJnYmEoMjA2LDIyMCwyMzMsMC4xMTgxMDIyNzUwODk3MjM0KSAxMDAlKTtcclxuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPVwiIzFlMzg2MVwiLGVuZENvbG9yc3RyPVwiI2NlZGNlOVwiLEdyYWRpZW50VHlwZT0xKTtcclxufVxyXG5cclxuZGl2W2RhdGEtc2VydmljZV0gLmMtYmctaXtcclxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICByaWdodDogMDtcclxuICBib3R0b206IDA7XHJcbiAgb3BhY2l0eTogMDtcclxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC41cyBlYXNlLCB0cmFuc2Zvcm0gLjVzIGVhc2U7XHJcbn1cclxuXHJcbmRpdltkYXRhLXNlcnZpY2VdIC5jLWJnLWkubG9hZGVke1xyXG4gIG9wYWNpdHk6IDE7XHJcbn1cclxuXHJcbmRpdltkYXRhLXNlcnZpY2VdIC5jLXRse1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgZm9udC1zaXplOiAxLjJlbTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbmRpdltkYXRhLXNlcnZpY2VdLmMtaC1uIC5jLWJne1xyXG4gIG9wYWNpdHk6IDE7XHJcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcclxufVxyXG5cclxuZGl2W2RhdGEtc2VydmljZV0uYy1oLW4gLmMtbnR7XHJcbiAgb3BhY2l0eTogMDtcclxuICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbn1cclxuXHJcbmRpdltkYXRhLXNlcnZpY2VdIC5jLW4tY3tcclxuICBkaXNwbGF5OiB0YWJsZTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHotaW5kZXg6IDE7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIGZvbnQtc2l6ZTogLjllbTtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlLCBvcGFjaXR5IC4zcyBlYXNlO1xyXG59XHJcblxyXG5kaXZbZGF0YS1zZXJ2aWNlXSAuYy1uLXR7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgZm9udC1zaXplOiAuOTVlbTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgei1pbmRleDogMTtcclxuICBsaW5lLWhlaWdodDogMS40ZW07XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgbWF4LXdpZHRoOiA0MjBweDtcclxuICBtYXJnaW46IDAgYXV0bztcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG5kaXZbZGF0YS1zZXJ2aWNlXSAuYy1uLXQsXHJcbmRpdltkYXRhLXNlcnZpY2VdIC5jLW4tYXtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbmRpdltkYXRhLXNlcnZpY2VdIC5jLXQtY257XHJcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIHBhZGRpbmc6IDAgMTJweDtcclxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlLCB0cmFuc2Zvcm0gLjNzIGVhc2UsIHZpc2liaWxpdHkgLjNzIGVhc2U7XHJcbn1cclxuXHJcbmRpdltkYXRhLXNlcnZpY2VdIC5jLW4tYyAuYy1sYS1iLFxyXG5kaXZbZGF0YS1zZXJ2aWNlXSAuYy1uLWMgLmMtbC1ie1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgcGFkZGluZzogMWVtO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAxMDIsIDIxOSwgMC44NCk7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIGJvcmRlci1yYWRpdXM6IC4yNWVtO1xyXG4gIGZvbnQtc2l6ZTogLjg1ZW07XHJcbiAgcGFkZGluZy1sZWZ0OiAyLjhlbTtcclxuICBjb2xvcjogI2ZmZmZmZjtcclxuICBtYXJnaW46IDAgYXV0bztcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZSwgdHJhbnNmb3JtIC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMSwgMC41LCAxKSwgdmlzaWJpbGl0eSAuM3MgZWFzZSwgYm94LXNoYWRvdyAuM3MgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZTtcclxuICBib3gtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMTkpIDBweCA0cHggMTJweDtcclxufVxyXG4vKiBQbGF5IGljb24gKi9cclxuZGl2W2RhdGEtc2VydmljZV0gLmMtbi1jIC5jLWwtYjo6YmVmb3Jle1xyXG4gIGNvbnRlbnQ6ICcnO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDEycHg7XHJcbiAgbGVmdDogMS4xZW07XHJcbiAgei1pbmRleDogMjtcclxuICBoZWlnaHQ6IDA7XHJcbiAgYm9yZGVyLWxlZnQ6IDEycHggc29saWQgd2hpdGU7XHJcbiAgYm9yZGVyLXRvcDogNy41cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyLWJvdHRvbTogNy41cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbmRpdltkYXRhLXNlcnZpY2VdIC5jLW4tYyAuYy1sYS1ie1xyXG4gIG1hcmdpbi1sZWZ0OiAxZW07XHJcbiAgcGFkZGluZzogMWVtO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjI1LCAyMzksIDI1NSwgLjgpO1xyXG4gIGNvbG9yOiAjMGQxZjM0O1xyXG59XHJcblxyXG5kaXZbZGF0YS1zZXJ2aWNlXSAuYy1uLWMgLmMtbGEtYjpob3ZlcntcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDIyNSwgMjM5LCAyNTUsIC45NSk7XHJcbn1cclxuXHJcbmRpdltkYXRhLXNlcnZpY2VdIC5jLW4tYyAuYy1sLWI6aG92ZXJ7XHJcbiAgYmFja2dyb3VuZDogcmdiYSg5LCA4MCwgMTYxLCAwLjg5KTtcclxufVxyXG5cclxuZGl2W2RhdGEtc2VydmljZV0gLmMtbi1jIC5jLWxhLWI6YWN0aXZle1xyXG4gIHRyYW5zaXRpb246IG5vbmU7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyMjUsIDIzOSwgMjU1LCAuNik7XHJcbn1cclxuXHJcbmRpdltkYXRhLXNlcnZpY2VdIC5jLW4tYyAuYy1sLWI6YWN0aXZle1xyXG4gIHRyYW5zaXRpb246IG5vbmU7XHJcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMjQsIDEwNCwgMjUwLCAuMjQpO1xyXG59XHJcblxyXG5kaXZbZGF0YS1zZXJ2aWNlXS5jLWgtbiAuYy10LWNue1xyXG4gIG9wYWNpdHk6IDA7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7XHJcbn1cclxuXHJcbmRpdltkYXRhLXNlcnZpY2VdIGlmcmFtZXtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIG9wYWNpdHk6IDA7XHJcbiAgei1pbmRleDogMTtcclxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC41cyBlYXNlO1xyXG59XHJcblxyXG5kaXZbZGF0YS1zZXJ2aWNlXS5jLWgtYiBpZnJhbWV7XHJcbiAgb3BhY2l0eTogMTtcclxuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XHJcbiAgdHJhbnNpdGlvbi1kZWxheTogLjFzO1xyXG59XHJcblxyXG5kaXZbZGF0YS1zZXJ2aWNlXSAuYy1uLXQgYSB7XHJcbiAgY29sb3I6ICM1ZmIzZmI7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNWZiM2ZiO1xyXG59XHJcblxyXG5kaXZbZGF0YS1zZXJ2aWNlXSAuYy1uLXQgYTpob3ZlcntcclxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG59XHJcbiIsIi8qIGZhbGxiYWNrICovXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG4gIC8vc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21hdGVyaWFsaWNvbnMvdjEzOS9mbFVoUnE2dHpaY2xRRUotVmRnLUl1aWFEc05jLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7XHJcbiAgc3JjOiB1cmwoLi4vZm9udHMvbWF0ZXJpYWwud29mZjIpIGZvcm1hdCgnd29mZjInKTtcclxufVxyXG5cclxuLm1hdGVyaWFsLWljb25zIHtcclxuICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJztcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXNpemU6IDI0cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICB3b3JkLXdyYXA6IG5vcm1hbDtcclxuICBkaXJlY3Rpb246IGx0cjtcclxuICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnO1xyXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG59XHJcbiJdfQ== */
