/* global variables */
/* this file is for public and private/admin pages */
*, *:after, *:before {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Change the default font family in all browsers (opinionated).
 * 2. Correct the line height in all browsers.
 * 3. Prevent adjustments of font size after orientation changes in
 *    IE on Windows Phone and in iOS.
 */
/* Document
   ========================================================================== */
html {
  font-family: sans-serif;
  /* 1 */
  line-height: 1.15;
  /* 2 */
  -ms-text-size-adjust: 100%;
  /* 3 */
  -webkit-text-size-adjust: 100%;
  /* 3 */ }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

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

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

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

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

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

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible; }

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

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

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

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

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

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

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

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

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

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

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */ }

/**
 * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

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

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

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

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

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

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

input[type=radio], input[type=checkbox] {
  margin-right: 0.3em; }

a[href], input[type='submit'], input[type='image'], label[for], select, button {
  cursor: pointer; }

td {
  vertical-align: top; }

img, object, embed {
  max-width: 100%; }

img {
  height: auto; }

h1:not(.heading-keep_margin):first-child, h2:not(.heading-keep_margin):first-child, h3:not(.heading-keep_margin):first-child, h4:not(.heading-keep_margin):first-child {
  margin-top: 0; }

h1 a, h2 a, h3 a, h4 a {
  color: inherit;
  text-decoration: none; }
  h1 a:hover, h1 a:active, h2 a:hover, h2 a:active, h3 a:hover, h3 a:active, h4 a:hover, h4 a:active {
    color: inherit;
    text-decoration: underline; }

.-margin-no_top {
  margin-top: 0; }

.-margin-no_margin {
  margin: 0; }

.-display-hidden {
  display: none; }

.-link-no_underline {
  text-decoration: none; }

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

html {
  font: 100%/1 'Cormorant Garamond', 'Times New Roman', Times, serif;
  line-height: 1.5;
  color: #444; }

a {
  color: #501617;
  text-decoration: none;
  -webkit-transition: color 0.25s ease;
  transition: color 0.25s ease; }
  a:hover {
    text-decoration: underline; }

address {
  font-style: normal; }

.separator {
  display: block;
  width: 40em;
  max-width: 80%;
  height: 4em;
  margin: 0 auto;
  fill: rgba(50, 94, 92, 0.7); }

textarea {
  vertical-align: top; }

.form-input-align_right {
  text-align: right; }

.form-form_wrap {
  width: 90%;
  max-width: 30em;
  margin: 1em auto;
  padding: 1em;
  border-radius: 2px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
          box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1); }
  .form-form_wrap h2 {
    margin-top: 0; }
  .form-form_wrap h4 {
    margin-bottom: 0.5em; }

.form-fieldset {
  margin: 1.5em 0 1em;
  padding: 1em 1em;
  border: 1px solid rgba(0, 0, 0, 0.1); }
  .form-fieldset > .form-field_wrap:last-of-type {
    margin-bottom: 0.5em; }

.form-fieldset-first {
  margin-top: 0.5em; }

.form-field-flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap; }

.form-field_wrap select {
  height: 2.3em;
  padding: 0.5em; }

.form-field_wrap, .form_table-col {
  margin-bottom: 1em; }
  .form-field_wrap label, .form_table-col label {
    display: block;
    margin-bottom: 0.25em; }
  .form-field_wrap input:not([type=submit]):not([type=button]):not([type=file]):not([type=radio]):not([type=checkbox]):not([type=color]), .form-field_wrap textarea, .form-field_wrap select, .form_table-col input:not([type=submit]):not([type=button]):not([type=file]):not([type=radio]):not([type=checkbox]):not([type=color]), .form_table-col textarea, .form_table-col select {
    width: 100%;
    padding: 0.5em;
    border: 1px solid rgba(32, 36, 41, 0.15);
    border-radius: 2px;
    background-color: rgba(255, 255, 255, 0.9); }
  .form-field_wrap input[type=file], .form_table-col input[type=file] {
    width: 100%; }

.form-field_wrap-no_width input:not([type=submit]):not([type=button]):not([type=file]):not([type=radio]):not([type=checkbox]):not([type=color]), .form-field_wrap-no_width textarea, .form-field_wrap-no_width select {
  width: auto; }

.form-field_wrap-no_margin {
  margin-bottom: 0; }

.form-field_wrap-textarea textarea {
  height: 10em; }

.form-field_wrap-checkbox label {
  display: inline-block;
  margin-right: 1em;
  margin-bottom: 0; }
  .form-field_wrap-checkbox label:hover {
    color: #777777; }

.form-field_wrap-radio_row > label:first-of-type {
  display: block;
  margin-bottom: 0.25em; }

.form-field_wrap-radio_row label {
  display: inline-block;
  margin-right: 1em;
  margin-bottom: 0; }

.form-field_wrap-flex_horz {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: 1em; }
  .form-field_wrap-flex_horz > .form-field_wrap {
    margin-bottom: 0; }

.form-field_wrap-flex_full_width {
  display: block; }
  @media (min-width: 35em) {
    .form-field_wrap-flex_full_width {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      margin-bottom: 1em; } }
  @media (min-width: 35em) {
    .form-field_wrap-flex_full_width > .form-field_wrap {
      -ms-flex-preferred-size: 50%;
          flex-basis: 50%;
      margin-bottom: 0; } }

.form-field_wrap-right_margin {
  margin-right: 0.25em; }

.form-field_wrap-readonly {
  position: relative; }
  .form-field_wrap-readonly input:not([type=submit]):not([type=button]):not([type=file]):not([type=radio]):not([type=checkbox]):not([type=color]), .form-field_wrap-readonly textarea, .form-field_wrap-readonly select {
    opacity: 0.4; }
  .form-field_wrap-readonly:after {
    position: absolute;
    top: 0.5em;
    right: 0;
    font-size: 0.7em;
    opacity: 0.5;
    content: "read-only"; }

.form-field_wrap-inset {
  padding-left: 2em;
  border-left: 3px solid #a7a7a7; }

.form-vertical_list > div label {
  display: inline-block; }
  .form-vertical_list > div label:hover {
    color: #777777; }

.form-field_prefix {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  margin-right: 0.5em; }
  .form-field_prefix label {
    margin-bottom: 0; }

.form-field_suffix {
  margin-left: 0.25em;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto; }

.form-field_separator {
  padding: 0 0.25em; }

.form-field_help {
  margin-top: 0.2em;
  padding-left: 0.1em;
  font-size: 0.8em;
  color: #6f6f6f;
  font-style: italic; }

.form-field_help-button {
  margin-top: 0.25em; }

.form-row_item_wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  max-width: 100%; }

.form-row_item {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%; }
  @media (min-width: 35em) {
    .form-row_item {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 33%;
              flex: 1 1 33%; } }

.form-button_wrap button, .form-button_wrap .button {
  margin-right: 0.5em; }

.form-action_link {
  font-size: 0.8em;
  margin-right: 1em;
  color: rgba(80, 22, 23, 0.6); }
  .form-action_link:hover {
    color: #501617; }

.form-field_errors {
  list-style: none;
  margin: 0 0 0.25em;
  padding-left: 0; }
  .form-field_errors li {
    margin-bottom: 0.25em;
    padding: 0.5em;
    background: #f3f3f3;
    border-left: 10px solid #d9524e;
    border-width: 0 0 0 10px; }

.vich-file label {
  margin-top: 0.25em; }

.form-heading_with_link_wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start; }

.form-heading_links {
  margin-left: auto; }
  .form-heading_links a:last-child {
    margin-right: 0; }

.alert {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 90%;
  min-width: 10rem;
  margin: 0 auto 1em;
  padding: 0.5em;
  background-color: #f3f3f3;
  border-left: 10px solid transparent; }
  @media (min-width: 48em) {
    .alert {
      width: 70%; } }
  .form-form_wrap .alert {
    width: 100%; }

.alert-type-success {
  border-left-color: #5ab65a; }

.alert-type-info {
  border-left-color: #5bc0dd; }

.alert-type-warning {
  border-left-color: #f0ad4e; }

.alert-type-danger {
  border-left-color: #d9524e; }

.alert-action-right {
  float: right;
  padding-left: 1em; }

.ie9_warning-wrap {
  background: #d9524e; }

.ie9_warning-content {
  max-width: 35em;
  margin: 0 auto;
  padding: 0.8em;
  color: #fff;
  text-align: center; }

.ie9_warning-content-big {
  font-size: 1.2em; }

.ie9_warning-link {
  color: #fff; }
  .ie9_warning-link:hover {
    color: #ddd; }

.content-wrap {
  max-width: 71.25rem;
  margin: 0 auto;
  padding: 1em; }
  .content-wrap:after {
    content: "";
    display: table;
    clear: both; }
  @media (min-width: 73.25em) {
    .content-wrap {
      padding: 1em 0; } }
  .content-wrap-narrow {
    max-width: 40em; }
  .content-wrap-flex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .content-wrap-contact {
    padding-top: 2em; }
    @media (min-width: 48em) {
      .content-wrap-contact {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between; } }

.content-img-center {
  display: block;
  margin: 1em auto; }

.content-img-left {
  float: left;
  margin: 1em 1em 1em 0; }

.content-img-right {
  float: right;
  margin: 1em 0 1em 1em; }

.fade-enter-active {
  -webkit-transition: all .75s ease-in;
  transition: all .75s ease-in; }

.fade-leave-active {
  -webkit-transition: all .25s ease-out;
  transition: all .25s ease-out; }

.fade-enter, .fade-leave-to {
  -webkit-transform: translateY(-0.25em);
          transform: translateY(-0.25em);
  opacity: 0; }

@-webkit-keyframes fadeup {
  0% {
    -webkit-transform: translateY(9em);
            transform: translateY(9em);
    opacity: 0; }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    opacity: 1; } }

@keyframes fadeup {
  0% {
    -webkit-transform: translateY(9em);
            transform: translateY(9em);
    opacity: 0; }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    opacity: 1; } }

[v-cloak] {
  display: none; }

button, .button {
  padding: 0.5em 1em;
  border: 2px solid white;
  color: white;
  -webkit-transition: all 0.25s ease;
  transition: all 0.25s ease;
  border-radius: 6px; }
  button:hover, .button:hover {
    background-color: rgba(255, 255, 255, 0.3); }
  button-red, .button-red {
    border-color: #501617;
    color: #501617; }

.button {
  display: inline-block; }
  .button:hover {
    text-decoration: none; }

.button-wrap {
  text-align: center;
  margin-top: 3em; }
  @media (min-width: 48em) {
    .button-wrap {
      text-align: left; } }
  @media (min-width: 48em) {
    .button-wrap-center {
      text-align: center; } }

h1, h2, h3, h4, h5, h6 {
  line-height: 1.2; }

h2 {
  font-size: 2.25em; }

h2, h3, h4 {
  font-family: 'Poppins', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 200; }

h4 {
  margin-bottom: 0.25em; }
  h4 ~ p {
    margin-top: 0.25em; }

.header-wrap {
  padding: 1em;
  border-top: 6px solid #325e5c;
  -webkit-transition: all 0.5s ease-out;
  transition: all 0.5s ease-out;
  background-color: #501617; }
  @media (min-width: 73.25em) {
    .header-wrap {
      padding: 1em 0; } }

@media (min-width: 48em) {
  .header_wrap-hp .header-wrap {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin-bottom: -10em;
    background-color: transparent;
    border-top-color: #501617; } }

.header {
  font-family: 'Poppins', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  text-transform: uppercase;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  max-width: 71.25rem;
  margin: 0 auto; }
  @media (min-width: 48em) {
    .header {
      -webkit-box-align: end;
          -ms-flex-align: end;
              align-items: flex-end; } }

.header-nav {
  list-style: none;
  padding: 0.25rem 0.5rem;
  margin-top: 2em;
  margin-bottom: 0.25em; }
  @media (min-width: 48em) {
    .header-nav {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      margin-top: 3rem; } }
  @media (min-width: 48em) {
    .header-nav {
      border-bottom: 1px solid rgba(243, 243, 243, 0.8);
      border-top: 1px solid rgba(243, 243, 243, 0.8); } }

.header_nav-item {
  display: none;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
  -webkit-transition: all 0.25s ease;
  transition: all 0.25s ease;
  font-weight: 100;
  letter-spacing: 0.2px; }
  .header_nav-item:hover {
    text-shadow: 0 4px 6px rgba(196, 90, 75, 0.5);
    -webkit-transform: translateY(-1px);
            transform: translateY(-1px); }
  @media (min-width: 48em) {
    .header_nav-item {
      display: inline-block;
      margin-right: 2em; }
      .header_nav-item:last-of-type {
        margin-right: 0; } }

.header_nav-link {
  text-decoration: none;
  color: white; }
  .header_nav-link:hover {
    text-decoration: none; }

.header-logo_wrap {
  display: block;
  min-width: 6.5em; }

.header-logo_wrap-scroll {
  width: 6.5em;
  height: 5em; }

.header-phone {
  display: block;
  font-size: 1.1rem;
  color: white;
  text-align: right;
  font-weight: 200;
  letter-spacing: 1px; }
  .header-phone:hover {
    text-decoration: none; }

.header-small {
  display: none;
  z-index: 9999; }
  @media (min-width: 48em) {
    .header-small {
      display: block; } }
  .header-small .header-wrap-scroll {
    padding: 0.5em;
    background: rgba(80, 22, 23, 0.9);
    -webkit-transition: all 0.5s ease-out;
    transition: all 0.5s ease-out;
    -webkit-transition: opacity 0.5s ease;
    transition: opacity 0.5s ease;
    opacity: 1;
    border-top: none; }
  .header-small .header_nav-item {
    font-size: 1rem;
    -webkit-transition: all 0.5s ease;
    transition: all 0.5s ease; }

.header-menu_icon-wrap {
  display: block;
  width: 100%;
  text-align: right; }
  @media (min-width: 48em) {
    .header-menu_icon-wrap {
      display: none; } }

.header-menu-icon {
  width: 2.25rem;
  height: 2.25rem;
  fill: white; }

.header_mobile-open {
  position: relative;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  margin-bottom: 0;
  width: 100%; }
  .header_mobile-open .header {
    display: block; }
  .header_mobile-open .header-nav {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-flow: column nowrap;
            flex-flow: column nowrap;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    margin-top: 1em;
    margin-bottom: 0;
    padding: 1em 0; }
  .header_mobile-open .header_nav-item {
    display: block;
    font-size: 1rem;
    margin-bottom: 1em;
    margin-right: 0; }
    .header_mobile-open .header_nav-item:last-of-type {
      margin-bottom: 0; }
  .header_mobile-open .header-phone {
    display: none; }
  .header_mobile-open .header-menu_icon-wrap {
    position: absolute;
    top: 3.4em;
    right: 1em;
    margin-left: auto;
    margin-top: 2em;
    margin-bottom: 1.25em; }

.footer {
  max-width: 71.25rem;
  margin: 0 auto;
  padding: 1em;
  border-top: 1px solid rgba(50, 94, 92, 0.3);
  text-align: center; }
  @media (min-width: 48em) {
    .footer {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
      text-align: left; } }
  @media (min-width: 73.25em) {
    .footer {
      padding: 1em 0; } }

.footer-copyright {
  font-size: 0.9em;
  margin-top: 1em; }
  @media (min-width: 48em) {
    .footer-copyright {
      margin-top: 0;
      text-align: right; } }

.footer-icon {
  width: 2em;
  height: 2em;
  fill: #202429; }

.herobar {
  height: 25em;
  background-size: cover; }

.Masthead {
  height: 25em !important; }
  @media (min-width: 48em) {
    .Masthead {
      height: 70vh; } }

.herobar-hp {
  background: white url("/images/penticton-law-firm.jpg") no-repeat;
  background-size: cover;
  min-height: 20em; }
  @media (min-width: 48em) {
    .herobar-hp {
      height: 50em;
      min-height: 100%; } }
  @media (min-width: 71.25rem) {
    .herobar-hp {
      background-attachment: fixed; } }

.herobar-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6);
  text-align: center; }

.herobar-content {
  max-width: 71.25rem; }

.herobar-heading {
  margin-bottom: 0.25em;
  color: white;
  text-transform: uppercase;
  text-shadow: 0 2px 3px rgba(0, 0, 0, 0.6); }
  @media (min-width: 48em) {
    .herobar-heading {
      font-size: 4.5rem; } }

.herobar-subheading {
  font-size: 1.6rem;
  margin-top: 0.25em;
  color: #dadada;
  font-weight: 400;
  text-shadow: 0 2px 3px rgba(0, 0, 0, 0.6); }
  @media (min-width: 48em) {
    .herobar-subheading {
      font-size: 2.3rem; } }

.herobar-separator {
  display: block;
  width: 8em;
  height: 0.3em;
  margin: 2em auto 0;
  background-color: #447f7d; }

.banner {
  height: 30em;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat; }
  @media (min-width: 71.25rem) {
    .banner {
      background-attachment: fixed;
      background-position: initial; } }

.banner_wrap-hp .banner {
  height: 20em; }

.section-about {
  min-height: 30em;
  background-color: #501617;
  color: white; }
  @media (min-width: 48em) {
    .section-about {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; } }
  .section-about .about-bkg_img {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    background-image: url("/images/penticton.jpg");
    background-size: cover;
    min-height: 20em; }
    @media (min-width: 48em) {
      .section-about .about-bkg_img {
        width: 50%; } }
  .section-about .about-content-wrap {
    font-size: 1.25rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 3em;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.7); }
    @media (min-width: 48em) {
      .section-about .about-content-wrap {
        width: 50%;
        padding: 5em 3em; } }
    .section-about .about-content-wrap > p:first-of-type {
      margin-top: 0; }
  .section-about .about-heading {
    max-width: 12em;
    text-align: center; }

.section-red {
  font-size: 1.25rem;
  padding: 3rem 0;
  background-color: #a64436;
  color: white; }
  @media (min-width: 48em) {
    .section-red {
      font-size: 2rem; } }

.section-services {
  padding: 4em 0; }

.section-team {
  padding: 3em 0;
  text-align: center; }

.sidenav-wrap {
  padding: 2rem;
  background-color: #363d46;
  color: #f3f3f3;
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2; }
  @media (min-width: 48em) {
    .sidenav-wrap {
      -webkit-box-ordinal-group: 2;
          -ms-flex-order: 1;
              order: 1;
      font-size: 1.25em;
      width: 30%;
      margin-right: 2em; } }

.sidenav-link {
  display: block;
  font-size: 1.2rem;
  color: #f3f3f3;
  text-shadow: 0 1px 2px rgba(255, 255, 255, 0.2);
  -webkit-transition: all 0.25s ease;
  transition: all 0.25s ease;
  line-height: 1;
  margin-bottom: 1.2em; }
  .sidenav-link:hover {
    color: #74b5b2;
    text-decoration: none; }

.sidenav-heading {
  margin-bottom: 0.75em; }

.sidenav-separator {
  display: block;
  width: 4em;
  height: 0.15em;
  margin: 0.5em 0;
  background-color: #74b5b2; }

.profiles-wrap {
  max-width: 90%;
  margin: 2em auto 0; }
  @media (min-width: 48em) {
    .profiles-wrap {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
      max-width: 60em; } }

.lawyer-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  padding: 0;
  list-style: none; }

.lawyer-list_item {
  text-align: center;
  -ms-flex-preferred-size: 90%;
      flex-basis: 90%;
  width: 90%;
  margin: 0 auto 2em; }
  @media (min-width: 35em) {
    .lawyer-list_item {
      -ms-flex-preferred-size: 47%;
          flex-basis: 47%;
      width: 47%;
      margin: 0 1.75em 2em 0; }
      .lawyer-list_item:nth-of-type(2n) {
        margin-right: 0; } }
  @media (min-width: 48em) {
    .lawyer-list_item {
      -ms-flex-preferred-size: 30.75%;
          flex-basis: 30.75%;
      width: 30.75%;
      margin-bottom: 0; }
      .lawyer-list_item:nth-of-type(2n) {
        margin-right: 1.75em; }
      .lawyer-list_item:nth-of-type(3n) {
        margin-right: 0; } }
  @media (min-width: 64em) {
    .lawyer-list_item {
      -ms-flex-preferred-size: 17.65%;
          flex-basis: 17.65%;
      width: 17.65%; }
      .lawyer-list_item:nth-of-type(3n) {
        margin-right: 1.75em; }
      .lawyer-list_item:nth-of-type(5n) {
        margin-right: 0; } }
  @media (min-width: 71.25rem) {
    .lawyer-list_item {
      -ms-flex-preferred-size: 17.95%;
          flex-basis: 17.95%;
      width: 17.95%; } }

.lawyer_list-img {
  width: 18.75em;
  height: 18.75em;
  overflow: hidden;
  -o-object-fit: cover;
     object-fit: cover; }

.profile-nav .lawyer_list-img {
  width: 12.5em;
  height: 12.5em; }

.lawyer_list-link:hover {
  text-decoration: none; }

.lawyer_list-name {
  margin-top: 0.5em; }

.lawyer-name {
  margin-bottom: 0.25em; }

.lawyer-title {
  margin-top: 0.5em; }

.lawyer_title-separator {
  width: 6em;
  height: 0.15em;
  background-color: #444; }

@media (min-width: 48em) {
  .lawyer-bio {
    -ms-flex-preferred-size: 55%;
        flex-basis: 55%;
    width: 55%;
    margin-left: 4em; } }

.team_photo-wrap {
  margin-bottom: 2em;
  padding-bottom: 2em;
  border-bottom: 2px solid #501617;
  text-align: center; }

.practice-content {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
  max-width: 40em;
  margin: 0 auto; }
  @media (min-width: 48em) {
    .practice-content {
      -webkit-box-ordinal-group: 3;
          -ms-flex-order: 2;
              order: 2; } }

.practice-wrap {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-flow: column nowrap;
          flex-flow: column nowrap;
  padding: 3em 1em; }
  @media (min-width: 48em) {
    .practice-wrap {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-flow: row nowrap;
              flex-flow: row nowrap; } }
  @media (min-width: 73.25em) {
    .practice-wrap {
      padding: 3em 0; } }

.services-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  -ms-flex-pack: distribute;
      justify-content: space-around;
  margin-top: 3em;
  padding: 0;
  list-style: none;
  -webkit-transition: all 1s ease;
  transition: all 1s ease;
  -webkit-animation: fadeup 1.5s 1;
          animation: fadeup 1.5s 1; }
  .services-list > li {
    width: 80%;
    margin: 0 auto 1em;
    padding: 1.5em 0;
    -webkit-transition: all 0.5s ease;
    transition: all 0.5s ease;
    text-align: center;
    border: 2px solid #501617;
    border-radius: 6px; }
    @media (min-width: 35em) {
      .services-list > li {
        width: 47%; }
        .services-list > li:nth-of-type(2n) {
          margin-right: 0; } }
    @media (min-width: 55em) {
      .services-list > li {
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        width: 30%;
        margin: 0 0 2.25em 0; }
        .services-list > li:nth-of-type(3n) {
          margin-right: 0; } }
    .services-list > li h4 {
      margin: 0;
      font-weight: 400; }
    .services-list > li a {
      color: #444;
      -webkit-transition: all 0.5s ease;
      transition: all 0.5s ease;
      text-decoration: none; }
    .services-list > li img {
      position: relative;
      z-index: -1;
      margin-bottom: -0.45em;
      -webkit-transition: -webkit-transform 0.5s ease;
      transition: -webkit-transform 0.5s ease;
      transition: transform 0.5s ease;
      transition: transform 0.5s ease, -webkit-transform 0.5s ease; }
    .services-list > li:hover {
      -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.2);
              box-shadow: 0 2px 3px rgba(0, 0, 0, 0.2); }
      .services-list > li:hover img {
        -webkit-transform: translateY(-1px);
                transform: translateY(-1px); }

.slide-enter-active {
  -webkit-transition: all 0.3s cubic-bezier(1, 0.5, 0.8, 1);
  transition: all 0.3s cubic-bezier(1, 0.5, 0.8, 1); }

.slide-enter, .slide-leave-to {
  -webkit-transform: translateY(-10px);
          transform: translateY(-10px);
  opacity: 0; }

.services-nav {
  list-style: none;
  padding: 0; }

.services_nav-item {
  margin-bottom: 0.5rem; }

.practice_areas-nav_wrap .services-nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap; }

.practice_areas-nav_wrap .services_nav-item {
  font-family: 'Poppins', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  -ms-flex-preferred-size: 80%;
      flex-basis: 80%;
  margin: 0 auto 1em;
  border-radius: 2px;
  text-align: center;
  -webkit-transition: all 0.25s ease;
  transition: all 0.25s ease;
  border: 2px solid #501617;
  border-radius: 6px; }
  .practice_areas-nav_wrap .services_nav-item:last-of-type {
    margin-bottom: 0; }
  @media (min-width: 35em) {
    .practice_areas-nav_wrap .services_nav-item {
      -ms-flex-preferred-size: 48%;
          flex-basis: 48%;
      margin-right: 1em;
      margin-left: 0; }
      .practice_areas-nav_wrap .services_nav-item:nth-of-type(2n) {
        margin-right: 0; }
      .practice_areas-nav_wrap .services_nav-item:last-of-type {
        margin-bottom: 1em; } }
  @media (min-width: 48em) {
    .practice_areas-nav_wrap .services_nav-item {
      -ms-flex-preferred-size: 32%;
          flex-basis: 32%;
      margin-right: 1em; }
      .practice_areas-nav_wrap .services_nav-item:nth-of-type(2n) {
        margin-right: 1em; }
      .practice_areas-nav_wrap .services_nav-item:nth-of-type(3n) {
        margin-right: 0; } }
  @media (min-width: 64em) {
    .practice_areas-nav_wrap .services_nav-item {
      -ms-flex-preferred-size: 23.5%;
          flex-basis: 23.5%; }
      .practice_areas-nav_wrap .services_nav-item:nth-of-type(3n) {
        margin-right: 1em; }
      .practice_areas-nav_wrap .services_nav-item:nth-of-type(4n) {
        margin-right: 0; } }
  .practice_areas-nav_wrap .services_nav-item:hover {
    border-color: #8c2728;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
    -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.2);
            box-shadow: 0 2px 3px rgba(0, 0, 0, 0.2); }
  .practice_areas-nav_wrap .services_nav-item a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: 100%;
    height: 100%;
    padding: 1em;
    color: #501617; }
    .practice_areas-nav_wrap .services_nav-item a:hover {
      text-decoration: none; }
  .practice_areas-nav_wrap .services_nav-item .sidenav-link {
    font-size: 0.8rem; }

.career-list {
  margin-top: 2em;
  padding-left: 0;
  list-style: none;
  border-top: 1px solid #501617; }

.career-list_item {
  padding: 2em 0;
  margin-bottom: 2em;
  border-bottom: 1px solid #501617; }

.career-heading {
  font-weight: 700; }

@media (min-width: 48em) {
  .contact-information, .contact-form_wrap {
    -ms-flex-preferred-size: 48.5%;
        flex-basis: 48.5%;
    width: 48.5%; } }

.contact-information {
  padding-bottom: 2em;
  margin-bottom: 2em;
  border-bottom: 2px solid rgba(50, 94, 92, 0.7); }
  @media (min-width: 48em) {
    .contact-information {
      margin-right: 4em;
      margin-bottom: 0;
      border: none; } }

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9odG1sL2Nzcy9zYXNzL2NvbW1vbi9fdmFycy5zY3NzIiwid2VicGFjazovLy8uL2h0bWwvY3NzL3Nhc3MvY29tbW9uL19jb21tb24uc2NzcyIsIndlYnBhY2s6Ly8vLi9odG1sL2Nzcy9zYXNzL2NvbW1vbi9fbm9ybWFsaXplLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcHVibGljLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vaHRtbC9jc3Mvc2Fzcy9wdWJsaWMuc2NzcyIsIndlYnBhY2s6Ly8vLi9odG1sL2Nzcy9zYXNzL3B1YmxpYy9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vaHRtbC9jc3Mvc2Fzcy9wdWJsaWMvX3ZhcnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9odG1sL2Nzcy9zYXNzL2NvbW1vbi9fZm9ybXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9odG1sL2Nzcy9zYXNzL2NvbW1vbi9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vaHRtbC9jc3Mvc2Fzcy9jb21tb24vX21lZGlhLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vaHRtbC9jc3Mvc2Fzcy9jb21tb24vX2FsZXJ0cy5zY3NzIiwid2VicGFjazovLy8uL2h0bWwvY3NzL3Nhc3MvY29tbW9uL19pZTlfd2FybmluZy5zY3NzIiwid2VicGFjazovLy8uL2h0bWwvY3NzL3Nhc3MvcHVibGljL19jb250ZW50LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vaHRtbC9jc3Mvc2Fzcy9jb21tb24vX2NvbnRlbnRfYWxpZ25tZW50LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vaHRtbC9jc3Mvc2Fzcy9wdWJsaWMvX2FuaW1hdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9odG1sL2Nzcy9zYXNzL3B1YmxpYy9fYnV0dG9ucy5zY3NzIiwid2VicGFjazovLy8uL2h0bWwvY3NzL3Nhc3MvcHVibGljL19oZWFkaW5ncy5zY3NzIiwid2VicGFjazovLy8uL2h0bWwvY3NzL3Nhc3MvcHVibGljL19oZWFkZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9odG1sL2Nzcy9zYXNzL3B1YmxpYy9fZm9vdGVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vaHRtbC9jc3Mvc2Fzcy9wdWJsaWMvX2hlcm9iYXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9odG1sL2Nzcy9zYXNzL3B1YmxpYy9fc2VjdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9odG1sL2Nzcy9zYXNzL3B1YmxpYy9fc2lkZW5hdi5zY3NzIiwid2VicGFjazovLy8uL2h0bWwvY3NzL3Nhc3MvcHVibGljL19sYXd5ZXJfcHJvZmlsZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9odG1sL2Nzcy9zYXNzL3B1YmxpYy9fcF9wcmFjdGljZV9hcmVhcy5zY3NzIiwid2VicGFjazovLy8uL2h0bWwvY3NzL3Nhc3MvcHVibGljL19zZXJ2aWNlcy5zY3NzIiwid2VicGFjazovLy8uL2h0bWwvY3NzL3Nhc3MvcHVibGljL19zZXJ2aWNlc19uYXYuc2NzcyIsIndlYnBhY2s6Ly8vLi9odG1sL2Nzcy9zYXNzL3B1YmxpYy9fcF9jYXJlZXJzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vaHRtbC9jc3Mvc2Fzcy9wdWJsaWMvX3BfY29udGFjdC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNCQUFzQjtBQ0F0QixxREFBcUQ7QUFHckQ7RUFBdUIsK0JBQXNCO1VBQXRCLHVCQUFzQixFQUFLOztBQ0hsRCw0RUFBNEU7QUFFNUU7Ozs7O0dBS0c7QUFFSDtnRkFDZ0Y7QUFFaEY7RUFDSSx3QkFBdUI7RUFBRyxPQUFPO0VBQ2pDLGtCQUFpQjtFQUFHLE9BQU87RUFDM0IsMkJBQTBCO0VBQUcsT0FBTztFQUNwQywrQkFBOEI7RUFBRyxPQUFPLEVBQzNDOztBQUVEO2dGQUNnRjtBQUVoRjs7R0FFRztBQUVIO0VBQ0ksVUFBUyxFQUNaOztBQUVEOztHQUVHO0FBRUg7Ozs7OztFQU1JLGVBQWMsRUFDakI7O0FBRUQ7OztHQUdHO0FBRUg7RUFDSSxlQUFjO0VBQ2QsaUJBQWdCLEVBQ25COztBQUVEO2dGQUNnRjtBQUVoRjs7O0dBR0c7QUFFSDs7O0VBRU8sT0FBTztFQUNWLGVBQWMsRUFDakI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLGlCQUFnQixFQUNuQjs7QUFFRDs7O0dBR0c7QUFFSDtFQUNJLGdDQUF1QjtVQUF2Qix3QkFBdUI7RUFBRyxPQUFPO0VBQ2pDLFVBQVM7RUFBRyxPQUFPO0VBQ25CLGtCQUFpQjtFQUFHLE9BQU8sRUFDOUI7O0FBRUQ7OztHQUdHO0FBRUg7RUFDSSxrQ0FBaUM7RUFBRyxPQUFPO0VBQzNDLGVBQWM7RUFBRyxPQUFPLEVBQzNCOztBQUVEO2dGQUNnRjtBQUVoRjs7O0dBR0c7QUFFSDtFQUNJLDhCQUE2QjtFQUFHLE9BQU87RUFDdkMsc0NBQXFDO0VBQUcsT0FBTyxFQUNsRDs7QUFFRDs7O0dBR0c7QUFFSDs7RUFFSSxpQkFBZ0IsRUFDbkI7O0FBRUQ7OztHQUdHO0FBRUg7RUFDSSxvQkFBbUI7RUFBRyxPQUFPO0VBQzdCLDJCQUEwQjtFQUFHLE9BQU87RUFDcEMsMENBQWlDO1VBQWpDLGtDQUFpQztFQUFHLE9BQU8sRUFDOUM7O0FBRUQ7O0dBRUc7QUFFSDs7RUFFSSxxQkFBb0IsRUFDdkI7O0FBRUQ7O0dBRUc7QUFFSDs7RUFFSSxvQkFBbUIsRUFDdEI7O0FBRUQ7OztHQUdHO0FBRUg7OztFQUdJLGtDQUFpQztFQUFHLE9BQU87RUFDM0MsZUFBYztFQUFHLE9BQU8sRUFDM0I7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLG1CQUFrQixFQUNyQjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksdUJBQXNCO0VBQ3RCLFlBQVcsRUFDZDs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksZUFBYyxFQUNqQjs7QUFFRDs7O0dBR0c7QUFFSDs7RUFFSSxlQUFjO0VBQ2QsZUFBYztFQUNkLG1CQUFrQjtFQUNsQix5QkFBd0IsRUFDM0I7O0FBRUQ7RUFDSSxnQkFBZSxFQUNsQjs7QUFFRDtFQUNJLFlBQVcsRUFDZDs7QUFFRDtnRkFDZ0Y7QUFFaEY7O0dBRUc7QUFFSDs7RUFFSSxzQkFBcUIsRUFDeEI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLGNBQWE7RUFDYixVQUFTLEVBQ1o7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLG1CQUFrQixFQUNyQjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksaUJBQWdCLEVBQ25COztBQUVEO2dGQUNnRjtBQUVoRjs7O0dBR0c7QUFFSDs7Ozs7RUFLSSx3QkFBdUI7RUFBRyxPQUFPO0VBQ2pDLGdCQUFlO0VBQUcsT0FBTztFQUN6QixrQkFBaUI7RUFBRyxPQUFPO0VBQzNCLFVBQVM7RUFBRyxPQUFPLEVBQ3RCOztBQUVEOzs7R0FHRztBQUVIOztFQUNRLE9BQU87RUFDWCxrQkFBaUIsRUFDcEI7O0FBRUQ7OztHQUdHO0FBRUg7O0VBQ1MsT0FBTztFQUNaLHFCQUFvQixFQUN2Qjs7QUFFRDs7OztHQUlHO0FBRUg7Ozs7RUFJSSwyQkFBMEI7RUFBRyxPQUFPLEVBQ3ZDOztBQUVEOztHQUVHO0FBRUg7Ozs7RUFJSSxtQkFBa0I7RUFDbEIsV0FBVSxFQUNiOztBQUVEOztHQUVHO0FBRUg7Ozs7RUFJSSwrQkFBOEIsRUFDakM7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLDBCQUF5QjtFQUN6QixjQUFhO0VBQ2IsK0JBQThCLEVBQ2pDOztBQUVEOzs7OztHQUtHO0FBRUg7RUFDSSwrQkFBc0I7VUFBdEIsdUJBQXNCO0VBQUcsT0FBTztFQUNoQyxlQUFjO0VBQUcsT0FBTztFQUN4QixlQUFjO0VBQUcsT0FBTztFQUN4QixnQkFBZTtFQUFHLE9BQU87RUFDekIsV0FBVTtFQUFHLE9BQU87RUFDcEIsb0JBQW1CO0VBQUcsT0FBTyxFQUNoQzs7QUFFRDs7O0dBR0c7QUFFSDtFQUNJLHNCQUFxQjtFQUFHLE9BQU87RUFDL0IseUJBQXdCO0VBQUcsT0FBTyxFQUNyQzs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksZUFBYyxFQUNqQjs7QUFFRDs7O0dBR0c7QUNuQ0g7O0VEdUNJLCtCQUFzQjtVQUF0Qix1QkFBc0I7RUFBRyxPQUFPO0VBQ2hDLFdBQVU7RUFBRyxPQUFPLEVBQ3ZCOztBQUVEOztHQUVHO0FDbkNIOztFRHVDSSxhQUFZLEVBQ2Y7O0FBRUQ7OztHQUdHO0FDckNIO0VEd0NJLDhCQUE2QjtFQUFHLE9BQU87RUFDdkMscUJBQW9CO0VBQUcsT0FBTyxFQUNqQzs7QUFFRDs7R0FFRztBQ3JDSDs7RUR5Q0kseUJBQXdCLEVBQzNCOztBQUVEOzs7R0FHRztBQUVIO0VBQ0ksMkJBQTBCO0VBQUcsT0FBTztFQUNwQyxjQUFhO0VBQUcsT0FBTyxFQUMxQjs7QUFFRDtnRkFDZ0Y7QUFFaEY7OztHQUdHO0FBRUg7O0VBRUksZUFBYyxFQUNqQjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksbUJBQWtCLEVBQ3JCOztBQUVEO2dGQUNnRjtBQUVoRjs7R0FFRztBQUVIO0VBQ0ksc0JBQXFCLEVBQ3hCOztBQUVEOztHQUVHO0FBRUg7RUFDSSxjQUFhLEVBQ2hCOztBQUVEO2dGQUNnRjtBQUVoRjs7R0FFRztBQ2xESDtFRHFESSxjQUFhLEVBQ2hCOztBRHJjRDtFQUEwQyxvQkFBbUIsRUFBSzs7QUFFbEU7RUFDSSxnQkFBZSxFQUNsQjs7QUFDRDtFQUFLLG9CQUFtQixFQUFLOztBQUU3QjtFQUFxQixnQkFBZSxFQUFLOztBQUN6QztFQUFNLGFBQVksRUFBSzs7QUFHdkI7RUFDOEMsY0FBYSxFQUFLOztBQURoRTtFQUlRLGVBQWM7RUFDZCxzQkFBcUIsRUFLeEI7RUFWTDtJQU9ZLGVBQWM7SUFDZCwyQkFBMEIsRUFDN0I7O0FBSVQ7RUFBa0IsY0FBYSxFQUFLOztBQUNwQztFQUFxQixVQUFTLEVBQUs7O0FBQ25DO0VBQW1CLGNBQWEsRUFBSzs7QUFDckM7RUFBc0Isc0JBQXFCLEVBQUs7O0FBQ2hEO0VBQWdCLG1CQUFrQixFQUFLOztBRzFCdkM7RUNQSSxtRUFBa0U7RUFDbEUsaUJBQWdCO0VBQ2hCLFlDQ2EsRUZNaEI7O0FBRUQ7RUFDSSxlSlAwQjtFSVExQixzQkFBcUI7RUFDckIscUNBQTRCO0VBQTVCLDZCQUE0QixFQUkvQjtFQVBEO0lBS1EsMkJBQTBCLEVBQzdCOztBQUVMO0VBQVUsbUJBQWtCLEVBQUs7O0FBRWpDO0VBQ0ksZUFBYztFQUNkLFlFdEJvQjtFRnVCcEIsZUFBYztFQUNkLFlBQVc7RUFDWCxlQUFjO0VBQ2QsNEJKckJ3QixFSXNCM0I7O0FHMUJEO0VBQ0ksb0JBQW1CLEVBQ3RCOztBQUVEO0VBQTBCLGtCQUFpQixFQUFLOztBQUVoRDtFQUNJLFdBQVU7RUFDVixnQkFBZTtFQUNmLGlCQUFnQjtFQUNoQixhQUFZO0VBQ1osbUJETmU7RUNPZixrREFma0M7VUFlbEMsMENBZmtDLEVBa0JyQztFQVREO0lBT1MsY0FBYSxFQUFLO0VBUDNCO0lBUVMscUJBQW9CLEVBQUs7O0FBR2xDO0VBQ0ksb0JBQW1CO0VBQ25CLGlCQUFnQjtFQUNoQixxQ0F2QmtDLEVBMkJyQztFQVBEO0lBS1EscUJBQW9CLEVBQ3ZCOztBQUVMO0VBQ0ksa0JBQWlCLEVBQ3BCOztBQVFEO0VDdENJLHFCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0VBQ2IsK0JBQW1CO0VBQW5CLDhCQUFtQjtNQUFuQix3QkFBbUI7VUFBbkIsb0JBQW1CLEVEdUN0Qjs7QUFFRDtFQUVRLGNBQWE7RUFDYixlQUFjLEVBQ2pCOztBQUdMO0VBQ0ksbUJBQWtCLEVBYXJCO0VBZEQ7SUFHUSxlQUFjO0lBQ2Qsc0JQbENxQixFT21DeEI7RUFyQkQ7SUF1QkksWUFBVztJQUNYLGVBQWM7SUFDZCx5Q1B4RHlCO0lPeUR6QixtQkRuRFc7SUNvRFgsMkNBQTBDLEVBekI3QztFQWNMO0lBYXVCLFlBQVcsRUFBSzs7QUE3Qm5DO0VBaUNJLFlBQVcsRUEvQmQ7O0FBa0NMO0VBQ0ksaUJBQWdCLEVBQ25COztBQUNEO0VBQ2UsYUFBWSxFQUFLOztBQUVoQztFQUVRLHNCQUFxQjtFQUNyQixrQkFBaUI7RUFDakIsaUJBQWdCLEVBRW5CO0VBTkw7SUFLa0IsZUFqRmdDLEVBaUZFOztBQUdwRDtFQUVRLGVBQWM7RUFDZCxzQlBuRXFCLEVPb0V4Qjs7QUFKTDtFQU1RLHNCQUFxQjtFQUNyQixrQkFBaUI7RUFDakIsaUJBQWdCLEVBQ25COztBQUVMO0VBQ0kscUJBQWE7RUFBYixxQkFBYTtFQUFiLGNBQWE7RUFDYiwwQkFBbUI7TUFBbkIsdUJBQW1CO1VBQW5CLG9CQUFtQjtFQUNuQixtQkFBa0IsRUFJckI7RUFQRDtJQUtRLGlCQUFnQixFQUNuQjs7QUFHTDtFQUNJLGVBQWMsRUFhakI7RUVuSE87SUZxR1I7TUFHUSxxQkFBYTtNQUFiLHFCQUFhO01BQWIsY0FBYTtNQUNiLDBCQUFtQjtVQUFuQix1QkFBbUI7Y0FBbkIsb0JBQW1CO01BQ25CLG1CQUFrQixFQVN6QjtFRW5ITztJRnFHUjtNQVVZLDZCQUFlO1VBQWYsZ0JBQWU7TUFDZixpQkFBZ0IsRUFFdkI7O0FBR0w7RUFDSSxxQkFBb0IsRUFDdkI7O0FBQ0Q7RUFDSSxtQkFBa0IsRUFjckI7RUF4R0c7SUE2RkksYUFBWSxFQTNGZjtFQXVGTDtJQVFRLG1CQUFrQjtJQUNsQixXQUFVO0lBQ1YsU0FBUTtJQUNSLGlCQUFnQjtJQUNoQixhQUFZO0lBQ1oscUJBQW9CLEVBQ3ZCOztBQUlMO0VBQ0ksa0JBQWlCO0VBQ2pCLCtCQUFxRCxFQUN4RDs7QUFHRDtFQUVRLHNCQUFxQixFQUV4QjtFQUpMO0lBR2tCLGVBdEpnQyxFQXNKRTs7QUFJcEQ7RUFDSSxvQkFBYztNQUFkLG1CQUFjO1VBQWQsZUFBYztFQUNkLG9CQUFtQixFQUV0QjtFQUpEO0lBR1ksaUJBQWdCLEVBQUs7O0FBRWpDO0VBQ0ksb0JQNUl5QjtFTzZJekIsb0JBQWM7TUFBZCxtQkFBYztVQUFkLGVBQWMsRUFDakI7O0FBQ0Q7RUFDSSxrQkFBaUIsRUFDcEI7O0FBRUQ7RUFDSSxrQkFBaUI7RUFFakIsb0JBQW1CO0VBQ25CLGlCQUFnQjtFQUNoQixlQUFnQztFQUNoQyxtQkFBa0IsRUFDckI7O0FBRUQ7RUFDSSxtQlA3SnlCLEVPOEo1Qjs7QUFHRDtFQUNJLHFCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0VBQ2IsK0JBQW1CO0VBQW5CLDhCQUFtQjtNQUFuQix3QkFBbUI7VUFBbkIsb0JBQW1CO0VBQ25CLGdCQUFlLEVBQ2xCOztBQUNEO0VBQ0ksb0JBQWE7TUFBYixrQkFBYTtVQUFiLGNBQWEsRUFJaEI7RUU1TE87SUZ1TFI7TUFHUSxvQkFBYTtVQUFiLGtCQUFhO2NBQWIsY0FBYSxFQUVwQjs7QUFFRDtFQUNzQixvQkFBbUIsRUFBSzs7QUFHOUM7RUFDSSxpQkFBZ0I7RUFDaEIsa0JBQWlCO0VBQ2pCLDZCUGpNMEIsRU9tTTdCO0VBTEQ7SUFJYyxlUGxNZ0IsRU9rTWU7O0FBRzdDO0VBQ0ksaUJBQWdCO0VBQ2hCLG1CUDFMeUI7RU8yTHpCLGdCQUFlLEVBUWxCO0VBWEQ7SUFLUSxzQlA3THFCO0lPOExyQixlQUFjO0lBQ2Qsb0JQak42QjtJT2tON0IsZ0NQck02QjtJT3NNN0IseUJBQXdCLEVBQzNCOztBQUlMO0VBQ0ksbUJQdk15QixFT3dNNUI7O0FBR0Q7RUFDSSxxQkFBYTtFQUFiLHFCQUFhO0VBQWIsY0FBYTtFQUNiLHlCQUF1QjtNQUF2QixzQkFBdUI7VUFBdkIsd0JBQXVCLEVBQzFCOztBQUNEO0VBQ0ksa0JBQWlCLEVBRXBCO0VBSEQ7SUFFbUIsZ0JBQWUsRUFBSzs7QUdyT3ZDO0VBQ0kscUJBQWE7RUFBYixxQkFBYTtFQUFiLGNBQWE7RUFDYiwwQkFBOEI7TUFBOUIsdUJBQThCO1VBQTlCLCtCQUE4QjtFQUM5QixXQUFVO0VBQ1YsaUJBQWdCO0VBQ2hCLG1CQUFrQjtFQUNsQixlQUFjO0VBQ2QsMEJWTGlDO0VVTWpDLG9DQUFtQyxFQU90QztFRFpPO0lDSFI7TUFVUSxXQUFVLEVBS2pCO0VBREc7SUFBb0IsWUFBVyxFQUFLOztBQUd4QztFQUNJLDJCVk5rQyxFVU9yQzs7QUFDRDtFQUNJLDJCVlJnQyxFVVNuQzs7QUFDRDtFQUNJLDJCVlZtQyxFVVd0Qzs7QUFDRDtFQUNJLDJCVlppQyxFVWFwQzs7QUFHRDtFQUVJLGFBQVk7RUFDWixrQkFBaUIsRUFDcEI7O0FDbkNEO0VBQ0ksb0JYY2lDLEVXYnBDOztBQUNEO0VBRUksZ0JBQWU7RUFDZixlQUFjO0VBQ2QsZUFBYztFQUNkLFlBQVc7RUFDWCxtQkFBa0IsRUFDckI7O0FBQ0Q7RUFDSSxpQkFBZ0IsRUFDbkI7O0FBQ0Q7RUFDSSxZQUFXLEVBSWQ7RUFMRDtJQUdRLFlBQVcsRUFDZDs7QUNsQkw7RUFFSSxvQk5EZ0I7RU1FaEIsZUFBYztFQUNkLGFBQVksRUFzQmY7RUpkRztJQUNJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFQUNkO0VDVkc7SUdOUjtNQU9RLGVBQWMsRUFtQnJCO0VBaEJHO0lBQ0ksZ0JOUmdCLEVNU25CO0VBRUQ7SUFDSSxxQkFBYTtJQUFiLHFCQUFhO0lBQWIsY0FBYSxFQUNoQjtFQUVEO0lBRUksaUJBQWdCLEVBS25CO0lIdEJHO01HZUo7UUFJUSxxQkFBYTtRQUFiLHFCQUFhO1FBQWIsY0FBYTtRQUNiLDBCQUE4QjtZQUE5Qix1QkFBOEI7Z0JBQTlCLCtCQUE4QixFQUVyQzs7QUN6Qkw7RUFDSSxlQUFjO0VBQ2QsaUJBQWdCLEVBQ25COztBQUNEO0VBQ0ksWUFBVztFQUNYLHNCQUFxQixFQUN4Qjs7QUFDRDtFQUNJLGFBQVk7RUFDWixzQkFBcUIsRUFDeEI7O0FDWEQ7RUFDRSxxQ0FBNEI7RUFBNUIsNkJBQTRCLEVBQzdCOztBQUNEO0VBQ0Usc0NBQTZCO0VBQTdCLDhCQUE2QixFQUM5Qjs7QUFDRDtFQUNFLHVDQUE4QjtVQUE5QiwrQkFBOEI7RUFDOUIsV0FBVSxFQUNYOztBQUdEO0VBQ0U7SUFDRSxtQ0FBMEI7WUFBMUIsMkJBQTBCO0lBQzFCLFdBQVU7RUFFWjtJQUNFLGlDQUF3QjtZQUF4Qix5QkFBd0I7SUFDeEIsV0FBVTs7QUFQZDtFQUNFO0lBQ0UsbUNBQTBCO1lBQTFCLDJCQUEwQjtJQUMxQixXQUFVO0VBRVo7SUFDRSxpQ0FBd0I7WUFBeEIseUJBQXdCO0lBQ3hCLFdBQVU7O0FYbXVCZDtFV2p0QkUsY0FBYSxFQUNkOztBQ3RDRDtFQUNJLG1CQUFrQjtFQUNsQix3QmZENEI7RWVFNUIsYWZGNEI7RWVHNUIsbUNBQTBCO0VBQTFCLDJCQUEwQjtFQUMxQixtQkFBa0IsRUFTckI7RUFkRDtJQU9RLDJDQUEwQyxFQUM3QztFQUNEO0lBQ0ksc0JmSHNCO0llSXRCLGVmSnNCLEVlS3pCOztBQUlMO0VBQ0ksc0JBQXFCLEVBSXhCO0VBTEQ7SUFHUSxzQkFBcUIsRUFDeEI7O0FBR0w7RUFDSSxtQkFBa0I7RUFDbEIsZ0JBQWUsRUFTbEI7RU4vQk87SU1vQlI7TUFJUSxpQkFBZ0IsRUFPdkI7RU4vQk87SU0wQko7TUFFUSxtQkFBa0IsRUFFekI7O0FDakNMO0VBQ0ksaUJBQWdCLEVBQ25COztBQUVEO0VBQ0ksa0JBQWlCLEVBQ3BCOztBQUVEO0VBQ0ksdUVBQXNFO0VBQ3RFLGlCQUFnQixFQUNuQjs7QUFFRDtFQUNJLHNCQUFxQixFQUt4QjtFQU5EO0lBSVEsbUJBQWtCLEVBQ3JCOztBQ2xCTDtFQUNJLGFBQVk7RUFDWiw4QmpCTXdCO0VpQkx4QixzQ0FBNkI7RUFBN0IsOEJBQTZCO0VBQzdCLDBCakJHMEIsRWlCQzdCO0VSRk87SVFOUjtNQU1RLGVBQWMsRUFFckI7O0FSTE87RVFPUjtJQUdZLG1CQUFrQjtJQUNsQixPQUFNO0lBQ04sUUFBTztJQUNQLFNBQVE7SUFDUixxQkFBb0I7SUFDcEIsOEJBQTZCO0lBQzdCLDBCakJaa0IsRWlCY3pCOztBQUdMO0VBQ0ksdUVBQXNFO0VBQ3RFLDBCQUF5QjtFQUN6QixxQkFBYTtFQUFiLHFCQUFhO0VBQWIsY0FBYTtFQUNiLDBCQUE4QjtNQUE5Qix1QkFBOEI7VUFBOUIsK0JBQThCO0VBRTlCLG9CWDdCZ0I7RVc4QmhCLGVBQWMsRUFJakI7RVJoQ087SVFxQlI7TUFTTyx1QkFBcUI7VUFBckIsb0JBQXFCO2NBQXJCLHNCQUFxQixFQUUzQjs7QUFFRDtFQUNJLGlCQUFnQjtFQUNoQix3QkFBdUI7RUFDdkIsZ0JBQWU7RUFDZixzQkFBcUIsRUFXeEI7RVJqRE87SVFrQ1I7TUFNUSxxQkFBYTtNQUFiLHFCQUFhO01BQWIsY0FBYTtNQUNiLGlCQUFnQixFQVF2QjtFUmpETztJUWtDUjtNQVdZLGtEakI5Q3lCO01pQitDekIsK0NqQi9DeUIsRWlCa0RwQzs7QUFHRDtFQUNJLGNBQWE7RUFDYiwwQ0FBc0M7RUFDdEMsbUNBQTBCO0VBQTFCLDJCQUEwQjtFQUMxQixpQkFBZ0I7RUFDaEIsc0JBQXFCLEVBWXhCO0VBakJEO0lBT1EsOENqQjFEb0I7SWlCMkRwQixvQ0FBMkI7WUFBM0IsNEJBQTJCLEVBQzlCO0VSN0RHO0lRb0RSO01BV1Esc0JBQXFCO01BQ3JCLGtCQUFpQixFQUt4QjtNQWpCRDtRQWNZLGdCQUFlLEVBQ2xCOztBQUlUO0VBQ0ksc0JBQXFCO0VBQ3JCLGFqQjNFNEIsRWlCK0UvQjtFQU5EO0lBSVEsc0JBQXFCLEVBQ3hCOztBQUVMO0VBQ0ksZUFBYztFQUNkLGlCQUFnQixFQUNuQjs7QUFFRDtFQUNJLGFBQVk7RUFDWixZQUFXLEVBQ2Q7O0FBRUQ7RUFDSSxlQUFjO0VBQ2Qsa0JBQWlCO0VBQ2pCLGFqQjdGNEI7RWlCOEY1QixrQkFBaUI7RUFDakIsaUJBQWdCO0VBQ2hCLG9CQUFtQixFQUl0QjtFQVZEO0lBUVEsc0JBQXFCLEVBQ3hCOztBQUdMO0VBQ0ksY0FBYTtFQUNiLGNBQWEsRUFnQmhCO0VSdEhPO0lRb0dSO01BSVEsZUFBYyxFQWNyQjtFQWxCRDtJQU9RLGVBQWM7SUFDZCxrQ2pCeEdzQjtJaUJ5R3RCLHNDQUE2QjtJQUE3Qiw4QkFBNkI7SUFDN0Isc0NBQTZCO0lBQTdCLDhCQUE2QjtJQUM3QixXQUFVO0lBQ1YsaUJBQWdCLEVBQ25CO0VBYkw7SUFlUSxnQkFBZTtJQUNmLGtDQUF5QjtJQUF6QiwwQkFBeUIsRUFDNUI7O0FBR0w7RUFDSSxlQUFjO0VBQ2QsWUFBVztFQUNYLGtCQUFpQixFQUlwQjtFUi9ITztJUXdIUjtNQUtRLGNBQWEsRUFFcEI7O0FBRUQ7RUFDSSxlQUFjO0VBQ2QsZ0JBQWU7RUFDZixZakJ0STRCLEVpQnVJL0I7O0FBRUQ7RUFDSSxtQkFBa0I7RUFDbEIseUJBQXVCO01BQXZCLHNCQUF1QjtVQUF2Qix3QkFBdUI7RUFDdkIsaUJBQWdCO0VBQ2hCLFlBQVcsRUFpQ2Q7RUFyQ0Q7SUFNUSxlQUFjLEVBQ2pCO0VBUEw7SUFTUSxtQkFBa0I7SUFDbEIscUJBQWE7SUFBYixxQkFBYTtJQUFiLGNBQWE7SUFDYiw2QkFBd0I7SUFBeEIsOEJBQXdCO1FBQXhCLDZCQUF3QjtZQUF4Qix5QkFBd0I7SUFDeEIseUJBQXVCO1FBQXZCLHNCQUF1QjtZQUF2Qix3QkFBdUI7SUFDdkIsZ0JBQWU7SUFDZixpQkFBZ0I7SUFDaEIsZUFBYyxFQUNqQjtFQWhCTDtJQWtCUSxlQUFjO0lBQ2QsZ0JBQWU7SUFDZixtQkFBa0I7SUFDbEIsZ0JBQWUsRUFJbEI7SUF6Qkw7TUF1QlksaUJBQWdCLEVBQ25CO0VBeEJUO0lBMkJRLGNBQWEsRUFDaEI7RUE1Qkw7SUE4QlEsbUJBQWtCO0lBQ2xCLFdBQVU7SUFDVixXQUFVO0lBQ1Ysa0JBQWlCO0lBQ2pCLGdCQUFlO0lBQ2Ysc0JBQXFCLEVBQ3hCOztBQzFLTDtFQUNJLG9CWkpnQjtFWUtoQixlQUFjO0VBQ2QsYUFBWTtFQUNaLDRDbEJBd0I7RWtCQ3hCLG1CQUFrQixFQVNyQjtFVGZPO0lTQ1I7TUFPUSxxQkFBYTtNQUFiLHFCQUFhO01BQWIsY0FBYTtNQUNiLDBCQUE4QjtVQUE5Qix1QkFBOEI7Y0FBOUIsK0JBQThCO01BQzlCLGlCQUFnQixFQUt2QjtFVFpPO0lTRlI7TUFZUSxlQUFjLEVBRXJCOztBQUVEO0VBQ0ksaUJBQWdCO0VBQ2hCLGdCQUFlLEVBS2xCO0VUeEJPO0lTaUJSO01BSVEsY0FBYTtNQUNiLGtCQUFpQixFQUV4Qjs7QUFFRDtFQUNJLFdBQVU7RUFDVixZQUFXO0VBQ1gsY2xCN0I2QixFa0I4QmhDOztBQ2pDRDtFQUNJLGFBQVk7RUFDWix1QkFBc0IsRUFDekI7O0FBRUQ7RUFDSSx3QkFBdUIsRUFJMUI7RVZQTztJVUVSO01BR1EsYUFBWSxFQUVuQjs7QUFFRDtFQUNJLGtFQUF3RTtFQUN4RSx1QkFBc0I7RUFDdEIsaUJBQWdCLEVBUW5CO0VWcEJPO0lVU1I7TUFLUSxhQUFZO01BQ1osaUJBQWdCLEVBS3ZCO0VWakJPO0lVTVI7TUFTUSw2QkFBNEIsRUFFbkM7O0FBRUQ7RUFDSSxxQkFBYTtFQUFiLHFCQUFhO0VBQWIsY0FBYTtFQUNiLHlCQUF1QjtNQUF2QixzQkFBdUI7VUFBdkIsd0JBQXVCO0VBQ3ZCLDBCQUFtQjtNQUFuQix1QkFBbUI7VUFBbkIsb0JBQW1CO0VBQ25CLFlBQVc7RUFDWCxhQUFZO0VBQ1oscUNBQWlDO0VBQ2pDLG1CQUFrQixFQUNyQjs7QUFFRDtFQUNJLG9CYm5DZ0IsRWFvQ25COztBQUVEO0VBQ0ksc0JBQXFCO0VBQ3JCLGFuQnhDNEI7RW1CeUM1QiwwQkFBeUI7RUFDekIsMENBQXVDLEVBSTFDO0VWNUNPO0lVb0NSO01BTVEsa0JBQWlCLEVBRXhCOztBQUVEO0VBQ0ksa0JBQWlCO0VBQ2pCLG1CQUFrQjtFQUNsQixlQUFvQztFQUNwQyxpQkFBZ0I7RUFDaEIsMENBQXVDLEVBSTFDO0VWdkRPO0lVOENSO01BT1Esa0JBQWlCLEVBRXhCOztBQUVEO0VBQ0ksZUFBYztFQUNkLFdBQVU7RUFDVixjQUFhO0VBQ2IsbUJBQWtCO0VBQ2xCLDBCQUEyQyxFQUM5Qzs7QUFFRDtFQUNJLGFBQVk7RUFDWix1QkFBc0I7RUFDdEIsNEJBQTJCO0VBQzNCLDZCQUE0QixFQUsvQjtFVnZFTztJVThEUjtNQU1RLDZCQUE0QjtNQUM1Qiw2QkFBNEIsRUFFbkM7O0FBRUQ7RUFHUSxhQUFZLEVBRWY7O0FDcEZMO0VBRUksaUJBQWdCO0VBQ2hCLDBCcEJJMEI7RW9CSDFCLGFwQkg0QixFb0J1Qy9CO0VYckNPO0lXSFI7TUFNUSxxQkFBYTtNQUFiLHFCQUFhO01BQWIsY0FBYSxFQWtDcEI7RUF4Q0Q7SUFVUSxxQkFBYTtJQUFiLHFCQUFhO0lBQWIsY0FBYTtJQUNiLHlCQUF1QjtRQUF2QixzQkFBdUI7WUFBdkIsd0JBQXVCO0lBQ3ZCLDBCQUFtQjtRQUFuQix1QkFBbUI7WUFBbkIsb0JBQW1CO0lBQ25CLCtDQUE4QztJQUM5Qyx1QkFBc0I7SUFDdEIsaUJBQWdCLEVBSW5CO0lYaEJHO01XSFI7UUFpQlksV0FBVSxFQUVqQjtFQW5CTDtJQXFCUSxtQkFBa0I7SUFDbEIscUJBQWE7SUFBYixxQkFBYTtJQUFiLGNBQWE7SUFDYiwwQkFBbUI7UUFBbkIsdUJBQW1CO1lBQW5CLG9CQUFtQjtJQUNuQixhQUFZO0lBQ1osMENBQXNDLEVBU3pDO0lYL0JHO01XSFI7UUEyQlksV0FBVTtRQUNWLGlCQUFnQixFQU12QjtJQWxDTDtNQWdDWSxjQUFhLEVBQ2hCO0VBakNUO0lBcUNRLGdCQUFlO0lBQ2YsbUJBQWtCLEVBQ3JCOztBQUlMO0VBQ0ksbUJBQWtCO0VBQ2xCLGdCQUFlO0VBQ2YsMEJBQXlDO0VBQ3pDLGFwQjlDNEIsRW9Ca0QvQjtFWGhETztJV3dDUjtNQU1RLGdCQUFlLEVBRXRCOztBQUVEO0VBQ0ksZUFBYyxFQUNqQjs7QUFFRDtFQUNJLGVBQWM7RUFDZCxtQkFBa0IsRUFDckI7O0FDNUREO0VBQ0ksY0FBYTtFQUNiLDBCQUFnRDtFQUNoRCxlckJEaUM7RXFCRWpDLDZCQUFRO01BQVIsa0JBQVE7VUFBUixTQUFRLEVBT1g7RVpSTztJWUhSO01BTVEsNkJBQVE7VUFBUixrQkFBUTtjQUFSLFNBQVE7TUFDUixrQkFBaUI7TUFDakIsV0FBVTtNQUNWLGtCQUFpQixFQUV4Qjs7QUFFRDtFQUNJLGVBQWM7RUFDZCxrQkFBaUI7RUFDakIsZXJCZGlDO0VxQmVqQyxnREFBNEM7RUFDNUMsbUNBQTBCO0VBQTFCLDJCQUEwQjtFQUMxQixlQUFjO0VBQ2QscUJBQW9CLEVBS3ZCO0VBWkQ7SUFTUSxlQUFnQztJQUNoQyxzQkFBcUIsRUFDeEI7O0FBR0w7RUFDSSxzQkFBcUIsRUFDeEI7O0FBRUQ7RUFDSSxlQUFjO0VBQ2QsV0FBVTtFQUNWLGVBQWM7RUFDZCxnQkFBZTtFQUNmLDBCQUEyQyxFQUM5Qzs7QUNyQ0Q7RUFDSSxlQUFjO0VBQ2QsbUJBQWtCLEVBTXJCO0ViTE87SWFIUjtNQUlRLHFCQUFhO01BQWIscUJBQWE7TUFBYixjQUFhO01BQ2IsMEJBQThCO1VBQTlCLHVCQUE4QjtjQUE5QiwrQkFBOEI7TUFDOUIsZ0JBQWUsRUFFdEI7O0FBRUQ7RUFDSSxxQkFBYTtFQUFiLHFCQUFhO0VBQWIsY0FBYTtFQUNiLCtCQUFtQjtFQUFuQiw4QkFBbUI7TUFBbkIsd0JBQW1CO1VBQW5CLG9CQUFtQjtFQUNuQixXQUFVO0VBQ1YsaUJBQWdCLEVBQ25COztBQUVEO0VBQ0ksbUJBQWtCO0VBQ2xCLDZCQUFlO01BQWYsZ0JBQWU7RUFDZixXQUFVO0VBQ1YsbUJBQWtCLEVBa0NyQjtFYnBETztJYWNSO01BTVEsNkJBQWU7VUFBZixnQkFBZTtNQUNmLFdBQVU7TUFDVix1QkFBc0IsRUE4QjdCO01BdENEO1FBVVksZ0JBQWUsRUFDbEI7RWJ6QkQ7SWFjUjtNQWNRLGdDQUFrQjtVQUFsQixtQkFBa0I7TUFDbEIsY0FBYTtNQUNiLGlCQUFnQixFQXNCdkI7TUF0Q0Q7UUFrQlkscUJBQW9CLEVBQ3ZCO01BbkJUO1FBcUJZLGdCQUFlLEVBQ2xCO0VicENEO0lhY1I7TUF5QlEsZ0NBQWtCO1VBQWxCLG1CQUFrQjtNQUNsQixjQUFhLEVBWXBCO01BdENEO1FBNEJZLHFCQUFvQixFQUN2QjtNQTdCVDtRQStCWSxnQkFBZSxFQUNsQjtFYjNDRDtJYVdSO01BbUNRLGdDQUFrQjtVQUFsQixtQkFBa0I7TUFDbEIsY0FBYSxFQUVwQjs7QUFFRDtFQUNJLGVBQWM7RUFDZCxnQkFBZTtFQUNmLGlCQUFnQjtFQUNoQixxQkFBaUI7S0FBakIsa0JBQWlCLEVBQ3BCOztBQUVEO0VBRVEsY0FBYTtFQUNiLGVBQWMsRUFDakI7O0FBR0w7RUFFUSxzQkFBcUIsRUFDeEI7O0FBR0w7RUFDSSxrQkFBaUIsRUFDcEI7O0FBRUQ7RUFDSSxzQkFBcUIsRUFDeEI7O0FBRUQ7RUFDSSxrQkFBaUIsRUFDcEI7O0FBRUQ7RUFDSSxXQUFVO0VBQ1YsZUFBYztFQUNkLHVCaEJ2RmEsRWdCd0ZoQjs7QWIxRk87RWE0RlI7SUFFUSw2QkFBZTtRQUFmLGdCQUFlO0lBQ2YsV0FBVTtJQUNWLGlCQUFnQixFQUV2Qjs7QUFFRDtFQUNJLG1CQUFrQjtFQUNsQixvQkFBbUI7RUFDbkIsaUN0Qm5HMEI7RXNCb0cxQixtQkFBa0IsRUFDckI7O0FDNUdEO0VBQ0ksNkJBQVE7TUFBUixrQkFBUTtVQUFSLFNBQVE7RUFDUixnQmpCQ29CO0VpQkFwQixlQUFjLEVBSWpCO0VkSk87SWNIUjtNQUtRLDZCQUFRO1VBQVIsa0JBQVE7Y0FBUixTQUFRLEVBRWY7O0FBRUQ7RUFDSSw2QkFBd0I7RUFBeEIsOEJBQXdCO01BQXhCLDZCQUF3QjtVQUF4Qix5QkFBd0I7RUFDeEIsaUJBQWdCLEVBU25CO0VkakJPO0ljTVI7TUFJUSwrQkFBcUI7TUFBckIsOEJBQXFCO1VBQXJCLDBCQUFxQjtjQUFyQixzQkFBcUIsRUFPNUI7RWRkTztJY0dSO01BUVEsZUFBYyxFQUdyQjs7QUNwQkQ7RUFDSSxxQkFBYTtFQUFiLHFCQUFhO0VBQWIsY0FBYTtFQUNiLCtCQUFtQjtFQUFuQiw4QkFBbUI7TUFBbkIsd0JBQW1CO1VBQW5CLG9CQUFtQjtFQUNuQiwwQkFBNkI7TUFBN0IsOEJBQTZCO0VBQzdCLGdCQUFlO0VBQ2YsV0FBVTtFQUNWLGlCQUFnQjtFQUNoQixnQ0FBdUI7RUFBdkIsd0JBQXVCO0VBQ3ZCLGlDQUF3QjtVQUF4Qix5QkFBd0IsRUFxRDNCO0VBN0REO0lBV1EsV0FBVTtJQUNWLG1CQUFrQjtJQUNsQixpQkFBZ0I7SUFDaEIsa0NBQXlCO0lBQXpCLDBCQUF5QjtJQUN6QixtQkFBa0I7SUFDbEIsMEJ4QlRzQjtJd0JVdEIsbUJBQWtCLEVBMkNyQjtJZnpERztNZUhSO1FBbUJZLFdBQVUsRUF5Q2pCO1FBNURMO1VBcUJnQixnQkFBYyxFQUNqQjtJZmhCTDtNZU5SO1FBeUJZLDBCQUE4QjtZQUE5Qix1QkFBOEI7Z0JBQTlCLCtCQUE4QjtRQUM5QixXQUFVO1FBQ1YscUJBQW9CLEVBaUMzQjtRQTVETDtVQWtDZ0IsZ0JBQWMsRUFDakI7SUFuQ2I7TUF1Q1ksVUFBUztNQUNULGlCQUFnQixFQUNuQjtJQXpDVDtNQTRDWSxZbEJ2Q0s7TWtCd0NMLGtDQUF5QjtNQUF6QiwwQkFBeUI7TUFDekIsc0JBQXFCLEVBQ3hCO0lBL0NUO01BaURZLG1CQUFrQjtNQUNsQixZQUFXO01BQ1gsdUJBQXNCO01BQ3RCLGdEQUErQjtNQUEvQix3Q0FBK0I7TUFBL0IsZ0NBQStCO01BQS9CLDZEQUErQixFQUNsQztJQXJEVDtNQXVEWSxpREFBd0M7Y0FBeEMseUNBQXdDLEVBSTNDO01BM0RUO1FBeURnQixvQ0FBMkI7Z0JBQTNCLDRCQUEyQixFQUM5Qjs7QUFLYjtFQUNFLDBEQUFvRDtFQUFwRCxrREFBb0QsRUFDckQ7O0FBRUQ7RUFDRSxxQ0FBNEI7VUFBNUIsNkJBQTRCO0VBQzVCLFdBQVUsRUFDWDs7QUN0RUQ7RUFDSSxpQkFBZ0I7RUFDaEIsV0FBVSxFQUNiOztBQUNEO0VBQ0ksc0JBQXFCLEVBQ3hCOztBQUVEO0VBRVEscUJBQWE7RUFBYixxQkFBYTtFQUFiLGNBQWE7RUFDYiwrQkFBbUI7RUFBbkIsOEJBQW1CO01BQW5CLHdCQUFtQjtVQUFuQixvQkFBbUIsRUFDdEI7O0FBSkw7RUFNUSx1RUFBc0U7RUFDdEUsNkJBQWU7TUFBZixnQkFBZTtFQUNmLG1CQUFrQjtFQUNsQixtQkFBa0I7RUFDbEIsbUJBQWtCO0VBQ2xCLG1DQUEwQjtFQUExQiwyQkFBMEI7RUFDMUIsMEJ6QmJzQjtFeUJjdEIsbUJBQWtCLEVBMERyQjtFQXZFTDtJQWVZLGlCQUFnQixFQUNuQjtFaEJyQkQ7SWdCS1I7TUFtQlksNkJBQWU7VUFBZixnQkFBZTtNQUNmLGtCQUFpQjtNQUNqQixlQUFjLEVBa0RyQjtNQXZFTDtRQXVCZ0IsZ0JBQWUsRUFDbEI7TUF4QmI7UUEwQmdCLG1CQUFrQixFQUNyQjtFaEJoQ0w7SWdCS1I7TUErQlksNkJBQWU7VUFBZixnQkFBZTtNQUNmLGtCQUFpQixFQXVDeEI7TUF2RUw7UUFrQ2dCLGtCQUFpQixFQUNwQjtNQW5DYjtRQXFDZ0IsZ0JBQWUsRUFDbEI7RWhCM0NMO0lnQktSO01BMENZLCtCQUFpQjtVQUFqQixrQkFBaUIsRUE2QnhCO01BdkVMO1FBNENnQixrQkFBaUIsRUFDcEI7TUE3Q2I7UUErQ2dCLGdCQUFlLEVBQ2xCO0VBaERiO0lBb0RZLHNCQUF5QztJQUN6QywwQ0FBc0M7SUFDdEMsaURBQXdDO1lBQXhDLHlDQUF3QyxFQUMzQztFQXZEVDtJQXlEWSxxQkFBYTtJQUFiLHFCQUFhO0lBQWIsY0FBYTtJQUNiLHlCQUF1QjtRQUF2QixzQkFBdUI7WUFBdkIsd0JBQXVCO0lBQ3ZCLDBCQUFtQjtRQUFuQix1QkFBbUI7WUFBbkIsb0JBQW1CO0lBQ25CLFlBQVc7SUFDWCxhQUFZO0lBQ1osYUFBWTtJQUNaLGV6QmhFa0IsRXlCb0VyQjtJQW5FVDtNQWlFZ0Isc0JBQXFCLEVBQ3hCO0VBbEViO0lBcUVZLGtCQUFpQixFQUNwQjs7QUM5RVQ7RUFDSSxnQkFBZTtFQUNmLGdCQUFlO0VBQ2YsaUJBQWdCO0VBQ2hCLDhCMUJHMEIsRTBCRjdCOztBQUVEO0VBQ0ksZUFBYztFQUNkLG1CQUFrQjtFQUNsQixpQzFCSDBCLEUwQkk3Qjs7QUFFRDtFQUNJLGlCQUFnQixFQUNuQjs7QWpCWk87RWtCSFI7SUFFUSwrQkFBaUI7UUFBakIsa0JBQWlCO0lBQ2pCLGFBQVksRUFFbkI7O0FBRUQ7RUFDSSxvQkFBbUI7RUFDbkIsbUJBQWtCO0VBQ2xCLCtDM0JGd0IsRTJCVTNCO0VsQmZPO0lrQklSO01BS1Esa0JBQWlCO01BQ2pCLGlCQUFnQjtNQUNoQixhQUFZLEVBSW5CIiwiZmlsZSI6InB1YmxpYy5lZmZhYWIzODc2MTIxMGE0NjNiMjE4ZTM0YzU2ZDc5Zi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgdmFyaWFibGVzICovXG4kY29sb3Itd2hpdGU6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiRjb2xvci1ncmV5LWxpZ2h0OiByZ2IoMjQzLCAyNDMsIDI0Myk7XG4kY29sb3ItZ3JleS1kYXJrOiByZ2IoMzIsIDM2LCA0MSk7XG4kY29sb3ItcmVkOiByZ2IoMTk2LCA5MCwgNzUpO1xuJGNvbG9yLXJlZC1saWdodDogcmdiKDE4MywgNjksIDYwKTtcbiRjb2xvci1ncmVlbjogcmdiKDcwLCAxMjUsIDY3KTtcbiRjb2xvci1tYXJvb246IHJnYig4MCwgMjIsIDIzKTtcbiRjb2xvci1ibHVlOiByZ2IoNTAsIDk0LCA5Mik7XG5cblxuLy90aGVzZSBhcmUgdXNlZCBpbiBtdWx0aXBsZSBzaXR1YXRpb25zIC0gbm90IGp1c3QgYWxlcnRzXG4kc3RhdHVzLXR5cGUtc3VjY2VzczogcmdiKDkwLCAxODIsIDkwKTtcbiRzdGF0dXMtdHlwZS1pbmZvOiByZ2IoOTEsIDE5MiwgMjIxKTtcbiRzdGF0dXMtdHlwZS13YXJuaW5nOiByZ2IoMjQwLCAxNzMsIDc4KTtcbiRzdGF0dXMtdHlwZS1kYW5nZXI6IHJnYigyMTcsIDgyLCA3OCk7XG5cbiRwYWdpbmF0aW9uLWxpbmstaG92ZXI6IHJnYmEoMzIsIDM2LCA0MSwgMC4xKTtcbiRwYWdpbmF0aW9uLWN1cnJlbnQtYm9yZGVyOiByZ2JhKDMyLCAzNiwgNDEsIDAuMTUpO1xuXG4kZm9ybS1zcGFjZS1zZXBhcmF0b3I6IDAuMjVlbTtcblxuJG1xczogKFxuICAgIGhhbmRoZWxkczogMjBlbSxcbiAgICB3aWRlX2hhbmRoZWxkczogMzVlbSxcbiAgICB0YWJsZXRzOiA0OGVtLFxuICAgIHdpZGVfdGFibGV0czogNjRlbSxcbik7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vaHRtbC9jc3Mvc2Fzcy9jb21tb24vX3ZhcnMuc2NzcyIsIi8qIHRoaXMgZmlsZSBpcyBmb3IgcHVibGljIGFuZCBwcml2YXRlL2FkbWluIHBhZ2VzICovXG5cbi8vIGluY2x1ZGUgdGhpcyBiZWZvcmUgbm9ybWFsaXplIGFzIG5vcm1hbGl6ZSBvdmVycmlkZSBpdCBmb3Igc29tZSBlbGVtZW50c1xuKiwgKjphZnRlciwgKjpiZWZvcmUgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbkBpbXBvcnQgXCJub3JtYWxpemVcIjtcblxuaW5wdXRbdHlwZT1yYWRpb10sIGlucHV0W3R5cGU9Y2hlY2tib3hdIHsgbWFyZ2luLXJpZ2h0OiAwLjNlbTsgfVxuLy8gbWFrZSBzdXJlIGV2ZXJ5dGhpbmcgc2hvd3MgYSBwb2ludGVyIG9uIGhvdmVyXG5hW2hyZWZdLCBpbnB1dFt0eXBlPSdzdWJtaXQnXSwgaW5wdXRbdHlwZT0naW1hZ2UnXSwgbGFiZWxbZm9yXSwgc2VsZWN0LCBidXR0b24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbnRkIHsgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuLy8gbWFrZSBpbWFnZXMgc2NhbGUgYXV0b21hdGljYWxseSB3aGVuIHdpZHRoIG9mIHRoZSBjb250YWluZXIgY2hhbmdlc1xuaW1nLCBvYmplY3QsIGVtYmVkIHsgbWF4LXdpZHRoOiAxMDAlOyB9XG5pbWcgeyBoZWlnaHQ6IGF1dG87IH1cblxuLy8gbWFrZSBhbmNob3JzIHRoYXQgYXJlIGluc2lkZSBoZWFkZXJzIGxvb2sgbGlrZSB0aGUgaGVhZGVyLCBidXQgdW5kZXJsaW5lIHdoZW4gaG92ZXJlZFxuaDEsIGgyLCBoMywgaDQge1xuICAgICY6bm90KC5oZWFkaW5nLWtlZXBfbWFyZ2luKTpmaXJzdC1jaGlsZCB7IG1hcmdpbi10b3A6IDA7IH1cblxuICAgIGEge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAmOmhvdmVyLCAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uLW1hcmdpbi1ub190b3AgeyBtYXJnaW4tdG9wOiAwOyB9XG4uLW1hcmdpbi1ub19tYXJnaW4geyBtYXJnaW46IDA7IH1cbi4tZGlzcGxheS1oaWRkZW4geyBkaXNwbGF5OiBub25lOyB9XG4uLWxpbmstbm9fdW5kZXJsaW5lIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4uLXRleHQtY2VudGVyIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vaHRtbC9jc3Mvc2Fzcy9jb21tb24vX2NvbW1vbi5zY3NzIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjUuMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZGVmYXVsdCBmb250IGZhbWlseSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDIuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDMuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuaHRtbCB7XG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMiAqL1xuICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAzICovXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAzICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbmJvZHkge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5mb290ZXIsXG5oZWFkZXIsXG5uYXYsXG5zZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cblxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbm1haW4geyAvKiAxICovXG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICovXG5cbmZpZ3VyZSB7XG4gICAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gICAgaGVpZ2h0OiAwOyAvKiAxICovXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICovXG5cbmEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiAxICovXG4gICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0czsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICogaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgICBvdXRsaW5lLXdpZHRoOiAwO1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBGaXJlZm94IDM5LS5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICovXG5cbmIsXG5zdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAqL1xuXG5kZm4ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gKi9cblxubWFyayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gICAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICAgIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuXG5hdWRpbyxcbnZpZGVvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICovXG5cbmltZyB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKipcbiAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAgIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDaGFuZ2UgdGhlIGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG5maWVsZHNldCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgICBtYXJnaW46IDAgMnB4O1xuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxubGVnZW5kIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICAgIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICovXG5cbnRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gKi9cblxuZGV0YWlscywgLyogMSAqL1xubWVudSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gICAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBTY3JpcHRpbmdcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cblxuY2FudmFzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cblxudGVtcGxhdGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIEhpZGRlblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXG4gKi9cblxuW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vaHRtbC9jc3Mvc2Fzcy9jb21tb24vX25vcm1hbGl6ZS5zY3NzIiwiLyogZ2xvYmFsIHZhcmlhYmxlcyAqL1xuLyogdGhpcyBmaWxlIGlzIGZvciBwdWJsaWMgYW5kIHByaXZhdGUvYWRtaW4gcGFnZXMgKi9cbiosICo6YWZ0ZXIsICo6YmVmb3JlIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4vKiEgbm9ybWFsaXplLmNzcyB2NS4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZGVmYXVsdCBmb250IGZhbWlseSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDIuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDMuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAqL1xuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDIgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDMgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAzICovIH1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cbmFydGljbGUsXG5hc2lkZSxcbmZvb3RlcixcbmhlYWRlcixcbm5hdixcbnNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbm1haW4ge1xuICAvKiAxICovXG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICovXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4OyB9XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovIH1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICogaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmUtd2lkdGg6IDA7IH1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0OyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICovXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDsgfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5hdWRpbyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTsgfVxuXG4vKipcbiAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQge1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4gKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0OyB9XG5cbi8qKlxuICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlO1xuICAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIC8qIDEgKi8gfVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAqL1xuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqLyB9XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICovXG5kZXRhaWxzLFxubWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07IH1cblxuLyogU2NyaXB0aW5nXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuY2FudmFzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBIaWRkZW5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbmlucHV0W3R5cGU9cmFkaW9dLCBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gIG1hcmdpbi1yaWdodDogMC4zZW07IH1cblxuYVtocmVmXSwgaW5wdXRbdHlwZT0nc3VibWl0J10sIGlucHV0W3R5cGU9J2ltYWdlJ10sIGxhYmVsW2Zvcl0sIHNlbGVjdCwgYnV0dG9uIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbnRkIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG5pbWcsIG9iamVjdCwgZW1iZWQge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuaW1nIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbmgxOm5vdCguaGVhZGluZy1rZWVwX21hcmdpbik6Zmlyc3QtY2hpbGQsIGgyOm5vdCguaGVhZGluZy1rZWVwX21hcmdpbik6Zmlyc3QtY2hpbGQsIGgzOm5vdCguaGVhZGluZy1rZWVwX21hcmdpbik6Zmlyc3QtY2hpbGQsIGg0Om5vdCguaGVhZGluZy1rZWVwX21hcmdpbik6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbmgxIGEsIGgyIGEsIGgzIGEsIGg0IGEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIGgxIGE6aG92ZXIsIGgxIGE6YWN0aXZlLCBoMiBhOmhvdmVyLCBoMiBhOmFjdGl2ZSwgaDMgYTpob3ZlciwgaDMgYTphY3RpdmUsIGg0IGE6aG92ZXIsIGg0IGE6YWN0aXZlIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4uLW1hcmdpbi1ub190b3Age1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbi4tbWFyZ2luLW5vX21hcmdpbiB7XG4gIG1hcmdpbjogMDsgfVxuXG4uLWRpc3BsYXktaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uLWxpbmstbm9fdW5kZXJsaW5lIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi4tdGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuaHRtbCB7XG4gIGZvbnQ6IDEwMCUvMSAnQ29ybW9yYW50IEdhcmFtb25kJywgJ1RpbWVzIE5ldyBSb21hbicsIFRpbWVzLCBzZXJpZjtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICM0NDQ7IH1cblxuYSB7XG4gIGNvbG9yOiAjNTAxNjE3O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMjVzIGVhc2U7IH1cbiAgYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuYWRkcmVzcyB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG4uc2VwYXJhdG9yIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA0MGVtO1xuICBtYXgtd2lkdGg6IDgwJTtcbiAgaGVpZ2h0OiA0ZW07XG4gIG1hcmdpbjogMCBhdXRvO1xuICBmaWxsOiByZ2JhKDUwLCA5NCwgOTIsIDAuNyk7IH1cblxudGV4dGFyZWEge1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG5cbi5mb3JtLWlucHV0LWFsaWduX3JpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLmZvcm0tZm9ybV93cmFwIHtcbiAgd2lkdGg6IDkwJTtcbiAgbWF4LXdpZHRoOiAzMGVtO1xuICBtYXJnaW46IDFlbSBhdXRvO1xuICBwYWRkaW5nOiAxZW07XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYm94LXNoYWRvdzogMCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cbiAgLmZvcm0tZm9ybV93cmFwIGgyIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIC5mb3JtLWZvcm1fd3JhcCBoNCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41ZW07IH1cblxuLmZvcm0tZmllbGRzZXQge1xuICBtYXJnaW46IDEuNWVtIDAgMWVtO1xuICBwYWRkaW5nOiAxZW0gMWVtO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cbiAgLmZvcm0tZmllbGRzZXQgPiAuZm9ybS1maWVsZF93cmFwOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41ZW07IH1cblxuLmZvcm0tZmllbGRzZXQtZmlyc3Qge1xuICBtYXJnaW4tdG9wOiAwLjVlbTsgfVxuXG4uZm9ybS1maWVsZC1mbGV4IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuXG4uZm9ybS1maWVsZF93cmFwIHNlbGVjdCB7XG4gIGhlaWdodDogMi4zZW07XG4gIHBhZGRpbmc6IDAuNWVtOyB9XG5cbi5mb3JtLWZpZWxkX3dyYXAsIC5mb3JtX3RhYmxlLWNvbCB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTsgfVxuICAuZm9ybS1maWVsZF93cmFwIGxhYmVsLCAuZm9ybV90YWJsZS1jb2wgbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDAuMjVlbTsgfVxuICAuZm9ybS1maWVsZF93cmFwIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPWZpbGVdKTpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9Y29sb3JdKSwgLmZvcm0tZmllbGRfd3JhcCB0ZXh0YXJlYSwgLmZvcm0tZmllbGRfd3JhcCBzZWxlY3QsIC5mb3JtX3RhYmxlLWNvbCBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1maWxlXSk6bm90KFt0eXBlPXJhZGlvXSk6bm90KFt0eXBlPWNoZWNrYm94XSk6bm90KFt0eXBlPWNvbG9yXSksIC5mb3JtX3RhYmxlLWNvbCB0ZXh0YXJlYSwgLmZvcm1fdGFibGUtY29sIHNlbGVjdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMC41ZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzMiwgMzYsIDQxLCAwLjE1KTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpOyB9XG4gIC5mb3JtLWZpZWxkX3dyYXAgaW5wdXRbdHlwZT1maWxlXSwgLmZvcm1fdGFibGUtY29sIGlucHV0W3R5cGU9ZmlsZV0ge1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi5mb3JtLWZpZWxkX3dyYXAtbm9fd2lkdGggaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9ZmlsZV0pOm5vdChbdHlwZT1yYWRpb10pOm5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1jb2xvcl0pLCAuZm9ybS1maWVsZF93cmFwLW5vX3dpZHRoIHRleHRhcmVhLCAuZm9ybS1maWVsZF93cmFwLW5vX3dpZHRoIHNlbGVjdCB7XG4gIHdpZHRoOiBhdXRvOyB9XG5cbi5mb3JtLWZpZWxkX3dyYXAtbm9fbWFyZ2luIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uZm9ybS1maWVsZF93cmFwLXRleHRhcmVhIHRleHRhcmVhIHtcbiAgaGVpZ2h0OiAxMGVtOyB9XG5cbi5mb3JtLWZpZWxkX3dyYXAtY2hlY2tib3ggbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5mb3JtLWZpZWxkX3dyYXAtY2hlY2tib3ggbGFiZWw6aG92ZXIge1xuICAgIGNvbG9yOiAjNzc3Nzc3OyB9XG5cbi5mb3JtLWZpZWxkX3dyYXAtcmFkaW9fcm93ID4gbGFiZWw6Zmlyc3Qtb2YtdHlwZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwLjI1ZW07IH1cblxuLmZvcm0tZmllbGRfd3JhcC1yYWRpb19yb3cgbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5mb3JtLWZpZWxkX3dyYXAtZmxleF9ob3J6IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMWVtOyB9XG4gIC5mb3JtLWZpZWxkX3dyYXAtZmxleF9ob3J6ID4gLmZvcm0tZmllbGRfd3JhcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uZm9ybS1maWVsZF93cmFwLWZsZXhfZnVsbF93aWR0aCB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAzNWVtKSB7XG4gICAgLmZvcm0tZmllbGRfd3JhcC1mbGV4X2Z1bGxfd2lkdGgge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxZW07IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMzVlbSkge1xuICAgIC5mb3JtLWZpZWxkX3dyYXAtZmxleF9mdWxsX3dpZHRoID4gLmZvcm0tZmllbGRfd3JhcCB7XG4gICAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cblxuLmZvcm0tZmllbGRfd3JhcC1yaWdodF9tYXJnaW4ge1xuICBtYXJnaW4tcmlnaHQ6IDAuMjVlbTsgfVxuXG4uZm9ybS1maWVsZF93cmFwLXJlYWRvbmx5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5mb3JtLWZpZWxkX3dyYXAtcmVhZG9ubHkgaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9ZmlsZV0pOm5vdChbdHlwZT1yYWRpb10pOm5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1jb2xvcl0pLCAuZm9ybS1maWVsZF93cmFwLXJlYWRvbmx5IHRleHRhcmVhLCAuZm9ybS1maWVsZF93cmFwLXJlYWRvbmx5IHNlbGVjdCB7XG4gICAgb3BhY2l0eTogMC40OyB9XG4gIC5mb3JtLWZpZWxkX3dyYXAtcmVhZG9ubHk6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDAuNWVtO1xuICAgIHJpZ2h0OiAwO1xuICAgIGZvbnQtc2l6ZTogMC43ZW07XG4gICAgb3BhY2l0eTogMC41O1xuICAgIGNvbnRlbnQ6IFwicmVhZC1vbmx5XCI7IH1cblxuLmZvcm0tZmllbGRfd3JhcC1pbnNldCB7XG4gIHBhZGRpbmctbGVmdDogMmVtO1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNhN2E3YTc7IH1cblxuLmZvcm0tdmVydGljYWxfbGlzdCA+IGRpdiBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAuZm9ybS12ZXJ0aWNhbF9saXN0ID4gZGl2IGxhYmVsOmhvdmVyIHtcbiAgICBjb2xvcjogIzc3Nzc3NzsgfVxuXG4uZm9ybS1maWVsZF9wcmVmaXgge1xuICBmbGV4OiAxIDAgYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTsgfVxuICAuZm9ybS1maWVsZF9wcmVmaXggbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmZvcm0tZmllbGRfc3VmZml4IHtcbiAgbWFyZ2luLWxlZnQ6IDAuMjVlbTtcbiAgZmxleDogMCAwIGF1dG87IH1cblxuLmZvcm0tZmllbGRfc2VwYXJhdG9yIHtcbiAgcGFkZGluZzogMCAwLjI1ZW07IH1cblxuLmZvcm0tZmllbGRfaGVscCB7XG4gIG1hcmdpbi10b3A6IDAuMmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuMWVtO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBjb2xvcjogIzZmNmY2ZjtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi5mb3JtLWZpZWxkX2hlbHAtYnV0dG9uIHtcbiAgbWFyZ2luLXRvcDogMC4yNWVtOyB9XG5cbi5mb3JtLXJvd19pdGVtX3dyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLmZvcm0tcm93X2l0ZW0ge1xuICBmbGV4OiAwIDAgNTAlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAzNWVtKSB7XG4gICAgLmZvcm0tcm93X2l0ZW0ge1xuICAgICAgZmxleDogMSAxIDMzJTsgfSB9XG5cbi5mb3JtLWJ1dHRvbl93cmFwIGJ1dHRvbiwgLmZvcm0tYnV0dG9uX3dyYXAgLmJ1dHRvbiB7XG4gIG1hcmdpbi1yaWdodDogMC41ZW07IH1cblxuLmZvcm0tYWN0aW9uX2xpbmsge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgY29sb3I6IHJnYmEoODAsIDIyLCAyMywgMC42KTsgfVxuICAuZm9ybS1hY3Rpb25fbGluazpob3ZlciB7XG4gICAgY29sb3I6ICM1MDE2MTc7IH1cblxuLmZvcm0tZmllbGRfZXJyb3JzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwIDAgMC4yNWVtO1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLmZvcm0tZmllbGRfZXJyb3JzIGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1ZW07XG4gICAgcGFkZGluZzogMC41ZW07XG4gICAgYmFja2dyb3VuZDogI2YzZjNmMztcbiAgICBib3JkZXItbGVmdDogMTBweCBzb2xpZCAjZDk1MjRlO1xuICAgIGJvcmRlci13aWR0aDogMCAwIDAgMTBweDsgfVxuXG4udmljaC1maWxlIGxhYmVsIHtcbiAgbWFyZ2luLXRvcDogMC4yNWVtOyB9XG5cbi5mb3JtLWhlYWRpbmdfd2l0aF9saW5rX3dyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4uZm9ybS1oZWFkaW5nX2xpbmtzIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgLmZvcm0taGVhZGluZ19saW5rcyBhOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuXG4uYWxlcnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHdpZHRoOiA5MCU7XG4gIG1pbi13aWR0aDogMTByZW07XG4gIG1hcmdpbjogMCBhdXRvIDFlbTtcbiAgcGFkZGluZzogMC41ZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7XG4gIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmFsZXJ0IHtcbiAgICAgIHdpZHRoOiA3MCU7IH0gfVxuICAuZm9ybS1mb3JtX3dyYXAgLmFsZXJ0IHtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG4uYWxlcnQtdHlwZS1zdWNjZXNzIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICM1YWI2NWE7IH1cblxuLmFsZXJ0LXR5cGUtaW5mbyB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjNWJjMGRkOyB9XG5cbi5hbGVydC10eXBlLXdhcm5pbmcge1xuICBib3JkZXItbGVmdC1jb2xvcjogI2YwYWQ0ZTsgfVxuXG4uYWxlcnQtdHlwZS1kYW5nZXIge1xuICBib3JkZXItbGVmdC1jb2xvcjogI2Q5NTI0ZTsgfVxuXG4uYWxlcnQtYWN0aW9uLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBwYWRkaW5nLWxlZnQ6IDFlbTsgfVxuXG4uaWU5X3dhcm5pbmctd3JhcCB7XG4gIGJhY2tncm91bmQ6ICNkOTUyNGU7IH1cblxuLmllOV93YXJuaW5nLWNvbnRlbnQge1xuICBtYXgtd2lkdGg6IDM1ZW07XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAwLjhlbTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uaWU5X3dhcm5pbmctY29udGVudC1iaWcge1xuICBmb250LXNpemU6IDEuMmVtOyB9XG5cbi5pZTlfd2FybmluZy1saW5rIHtcbiAgY29sb3I6ICNmZmY7IH1cbiAgLmllOV93YXJuaW5nLWxpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjZGRkOyB9XG5cbi5jb250ZW50LXdyYXAge1xuICBtYXgtd2lkdGg6IDcxLjI1cmVtO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMWVtOyB9XG4gIC5jb250ZW50LXdyYXA6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDczLjI1ZW0pIHtcbiAgICAuY29udGVudC13cmFwIHtcbiAgICAgIHBhZGRpbmc6IDFlbSAwOyB9IH1cbiAgLmNvbnRlbnQtd3JhcC1uYXJyb3cge1xuICAgIG1heC13aWR0aDogNDBlbTsgfVxuICAuY29udGVudC13cmFwLWZsZXgge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmNvbnRlbnQtd3JhcC1jb250YWN0IHtcbiAgICBwYWRkaW5nLXRvcDogMmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jb250ZW50LXdyYXAtY29udGFjdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfSB9XG5cbi5jb250ZW50LWltZy1jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAxZW0gYXV0bzsgfVxuXG4uY29udGVudC1pbWctbGVmdCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDFlbSAxZW0gMWVtIDA7IH1cblxuLmNvbnRlbnQtaW1nLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDFlbSAwIDFlbSAxZW07IH1cblxuLmZhZGUtZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNpdGlvbjogYWxsIC43NXMgZWFzZS1pbjsgfVxuXG4uZmFkZS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2l0aW9uOiBhbGwgLjI1cyBlYXNlLW91dDsgfVxuXG4uZmFkZS1lbnRlciwgLmZhZGUtbGVhdmUtdG8ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuMjVlbSk7XG4gIG9wYWNpdHk6IDA7IH1cblxuQGtleWZyYW1lcyBmYWRldXAge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDllbSk7XG4gICAgb3BhY2l0eTogMDsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cblt2LWNsb2FrXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuYnV0dG9uLCAuYnV0dG9uIHtcbiAgcGFkZGluZzogMC41ZW0gMWVtO1xuICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcbiAgY29sb3I6IHdoaXRlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZTtcbiAgYm9yZGVyLXJhZGl1czogNnB4OyB9XG4gIGJ1dHRvbjpob3ZlciwgLmJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOyB9XG4gIGJ1dHRvbi1yZWQsIC5idXR0b24tcmVkIHtcbiAgICBib3JkZXItY29sb3I6ICM1MDE2MTc7XG4gICAgY29sb3I6ICM1MDE2MTc7IH1cblxuLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAuYnV0dG9uOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLmJ1dHRvbi13cmFwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAzZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuYnV0dG9uLXdyYXAge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmJ1dHRvbi13cmFwLWNlbnRlciB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgbGluZS1oZWlnaHQ6IDEuMjsgfVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMi4yNWVtOyB9XG5cbmgyLCBoMywgaDQge1xuICBmb250LWZhbWlseTogJ1BvcHBpbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogMjAwOyB9XG5cbmg0IHtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNWVtOyB9XG4gIGg0IH4gcCB7XG4gICAgbWFyZ2luLXRvcDogMC4yNWVtOyB9XG5cbi5oZWFkZXItd3JhcCB7XG4gIHBhZGRpbmc6IDFlbTtcbiAgYm9yZGVyLXRvcDogNnB4IHNvbGlkICMzMjVlNWM7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2Utb3V0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTAxNjE3OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3My4yNWVtKSB7XG4gICAgLmhlYWRlci13cmFwIHtcbiAgICAgIHBhZGRpbmc6IDFlbSAwOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmhlYWRlcl93cmFwLWhwIC5oZWFkZXItd3JhcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbi1ib3R0b206IC0xMGVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3AtY29sb3I6ICM1MDE2MTc7IH0gfVxuXG4uaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6ICdQb3BwaW5zJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXgtd2lkdGg6IDcxLjI1cmVtO1xuICBtYXJnaW46IDAgYXV0bzsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5oZWFkZXIge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9IH1cblxuLmhlYWRlci1uYXYge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgbWFyZ2luLXRvcDogMmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjI1ZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuaGVhZGVyLW5hdiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgbWFyZ2luLXRvcDogM3JlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmhlYWRlci1uYXYge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjQzLCAyNDMsIDI0MywgMC44KTtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI0MywgMjQzLCAyNDMsIDAuOCk7IH0gfVxuXG4uaGVhZGVyX25hdi1pdGVtIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlO1xuICBmb250LXdlaWdodDogMTAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4ycHg7IH1cbiAgLmhlYWRlcl9uYXYtaXRlbTpob3ZlciB7XG4gICAgdGV4dC1zaGFkb3c6IDAgNHB4IDZweCByZ2JhKDE5NiwgOTAsIDc1LCAwLjUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5oZWFkZXJfbmF2LWl0ZW0ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyZW07IH1cbiAgICAgIC5oZWFkZXJfbmF2LWl0ZW06bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuLmhlYWRlcl9uYXYtbGluayB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IHdoaXRlOyB9XG4gIC5oZWFkZXJfbmF2LWxpbms6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4uaGVhZGVyLWxvZ29fd3JhcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtaW4td2lkdGg6IDYuNWVtOyB9XG5cbi5oZWFkZXItbG9nb193cmFwLXNjcm9sbCB7XG4gIHdpZHRoOiA2LjVlbTtcbiAgaGVpZ2h0OiA1ZW07IH1cblxuLmhlYWRlci1waG9uZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEuMXJlbTtcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDsgfVxuICAuaGVhZGVyLXBob25lOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLmhlYWRlci1zbWFsbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDk5OTk7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuaGVhZGVyLXNtYWxsIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgLmhlYWRlci1zbWFsbCAuaGVhZGVyLXdyYXAtc2Nyb2xsIHtcbiAgICBwYWRkaW5nOiAwLjVlbTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDgwLCAyMiwgMjMsIDAuOSk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZS1vdXQ7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2U7XG4gICAgb3BhY2l0eTogMTtcbiAgICBib3JkZXItdG9wOiBub25lOyB9XG4gIC5oZWFkZXItc21hbGwgLmhlYWRlcl9uYXYtaXRlbSB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7IH1cblxuLmhlYWRlci1tZW51X2ljb24td3JhcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuaGVhZGVyLW1lbnVfaWNvbi13cmFwIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uaGVhZGVyLW1lbnUtaWNvbiB7XG4gIHdpZHRoOiAyLjI1cmVtO1xuICBoZWlnaHQ6IDIuMjVyZW07XG4gIGZpbGw6IHdoaXRlOyB9XG5cbi5oZWFkZXJfbW9iaWxlLW9wZW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTsgfVxuICAuaGVhZGVyX21vYmlsZS1vcGVuIC5oZWFkZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5oZWFkZXJfbW9iaWxlLW9wZW4gLmhlYWRlci1uYXYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nOiAxZW0gMDsgfVxuICAuaGVhZGVyX21vYmlsZS1vcGVuIC5oZWFkZXJfbmF2LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgLmhlYWRlcl9tb2JpbGUtb3BlbiAuaGVhZGVyX25hdi1pdGVtOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5oZWFkZXJfbW9iaWxlLW9wZW4gLmhlYWRlci1waG9uZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuaGVhZGVyX21vYmlsZS1vcGVuIC5oZWFkZXItbWVudV9pY29uLXdyYXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDMuNGVtO1xuICAgIHJpZ2h0OiAxZW07XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogMmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEuMjVlbTsgfVxuXG4uZm9vdGVyIHtcbiAgbWF4LXdpZHRoOiA3MS4yNXJlbTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDFlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoNTAsIDk0LCA5MiwgMC4zKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmZvb3RlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3My4yNWVtKSB7XG4gICAgLmZvb3RlciB7XG4gICAgICBwYWRkaW5nOiAxZW0gMDsgfSB9XG5cbi5mb290ZXItY29weXJpZ2h0IHtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgbWFyZ2luLXRvcDogMWVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmZvb3Rlci1jb3B5cmlnaHQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9IH1cblxuLmZvb3Rlci1pY29uIHtcbiAgd2lkdGg6IDJlbTtcbiAgaGVpZ2h0OiAyZW07XG4gIGZpbGw6ICMyMDI0Mjk7IH1cblxuLmhlcm9iYXIge1xuICBoZWlnaHQ6IDI1ZW07XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH1cblxuLk1hc3RoZWFkIHtcbiAgaGVpZ2h0OiAyNWVtICFpbXBvcnRhbnQ7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuTWFzdGhlYWQge1xuICAgICAgaGVpZ2h0OiA3MHZoOyB9IH1cblxuLmhlcm9iYXItaHAge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZSB1cmwoXCIvaW1hZ2VzL3BlbnRpY3Rvbi1sYXctZmlybS5qcGdcIikgbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBtaW4taGVpZ2h0OiAyMGVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmhlcm9iYXItaHAge1xuICAgICAgaGVpZ2h0OiA1MGVtO1xuICAgICAgbWluLWhlaWdodDogMTAwJTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3MS4yNXJlbSkge1xuICAgIC5oZXJvYmFyLWhwIHtcbiAgICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7IH0gfVxuXG4uaGVyb2Jhci1pbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uaGVyb2Jhci1jb250ZW50IHtcbiAgbWF4LXdpZHRoOiA3MS4yNXJlbTsgfVxuXG4uaGVyb2Jhci1oZWFkaW5nIHtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNWVtO1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtc2hhZG93OiAwIDJweCAzcHggcmdiYSgwLCAwLCAwLCAwLjYpOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmhlcm9iYXItaGVhZGluZyB7XG4gICAgICBmb250LXNpemU6IDQuNXJlbTsgfSB9XG5cbi5oZXJvYmFyLXN1YmhlYWRpbmcge1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbWFyZ2luLXRvcDogMC4yNWVtO1xuICBjb2xvcjogI2RhZGFkYTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdGV4dC1zaGFkb3c6IDAgMnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuNik7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuaGVyb2Jhci1zdWJoZWFkaW5nIHtcbiAgICAgIGZvbnQtc2l6ZTogMi4zcmVtOyB9IH1cblxuLmhlcm9iYXItc2VwYXJhdG9yIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA4ZW07XG4gIGhlaWdodDogMC4zZW07XG4gIG1hcmdpbjogMmVtIGF1dG8gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0N2Y3ZDsgfVxuXG4uYmFubmVyIHtcbiAgaGVpZ2h0OiAzMGVtO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDcxLjI1cmVtKSB7XG4gICAgLmJhbm5lciB7XG4gICAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbDsgfSB9XG5cbi5iYW5uZXJfd3JhcC1ocCAuYmFubmVyIHtcbiAgaGVpZ2h0OiAyMGVtOyB9XG5cbi5zZWN0aW9uLWFib3V0IHtcbiAgbWluLWhlaWdodDogMzBlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUwMTYxNztcbiAgY29sb3I6IHdoaXRlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnNlY3Rpb24tYWJvdXQge1xuICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gIC5zZWN0aW9uLWFib3V0IC5hYm91dC1ia2dfaW1nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltYWdlcy9wZW50aWN0b24uanBnXCIpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgbWluLWhlaWdodDogMjBlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuc2VjdGlvbi1hYm91dCAuYWJvdXQtYmtnX2ltZyB7XG4gICAgICAgIHdpZHRoOiA1MCU7IH0gfVxuICAuc2VjdGlvbi1hYm91dCAuYWJvdXQtY29udGVudC13cmFwIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDNlbTtcbiAgICB0ZXh0LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC43KTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuc2VjdGlvbi1hYm91dCAuYWJvdXQtY29udGVudC13cmFwIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgcGFkZGluZzogNWVtIDNlbTsgfSB9XG4gICAgLnNlY3Rpb24tYWJvdXQgLmFib3V0LWNvbnRlbnQtd3JhcCA+IHA6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIC5zZWN0aW9uLWFib3V0IC5hYm91dC1oZWFkaW5nIHtcbiAgICBtYXgtd2lkdGg6IDEyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5zZWN0aW9uLXJlZCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgcGFkZGluZzogM3JlbSAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTY0NDM2O1xuICBjb2xvcjogd2hpdGU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuc2VjdGlvbi1yZWQge1xuICAgICAgZm9udC1zaXplOiAycmVtOyB9IH1cblxuLnNlY3Rpb24tc2VydmljZXMge1xuICBwYWRkaW5nOiA0ZW0gMDsgfVxuXG4uc2VjdGlvbi10ZWFtIHtcbiAgcGFkZGluZzogM2VtIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uc2lkZW5hdi13cmFwIHtcbiAgcGFkZGluZzogMnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM2M2Q0NjtcbiAgY29sb3I6ICNmM2YzZjM7XG4gIG9yZGVyOiAyOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnNpZGVuYXYtd3JhcCB7XG4gICAgICBvcmRlcjogMTtcbiAgICAgIGZvbnQtc2l6ZTogMS4yNWVtO1xuICAgICAgd2lkdGg6IDMwJTtcbiAgICAgIG1hcmdpbi1yaWdodDogMmVtOyB9IH1cblxuLnNpZGVuYXYtbGluayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgY29sb3I6ICNmM2YzZjM7XG4gIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi1ib3R0b206IDEuMmVtOyB9XG4gIC5zaWRlbmF2LWxpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjNzRiNWIyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4uc2lkZW5hdi1oZWFkaW5nIHtcbiAgbWFyZ2luLWJvdHRvbTogMC43NWVtOyB9XG5cbi5zaWRlbmF2LXNlcGFyYXRvciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNGVtO1xuICBoZWlnaHQ6IDAuMTVlbTtcbiAgbWFyZ2luOiAwLjVlbSAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzRiNWIyOyB9XG5cbi5wcm9maWxlcy13cmFwIHtcbiAgbWF4LXdpZHRoOiA5MCU7XG4gIG1hcmdpbjogMmVtIGF1dG8gMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wcm9maWxlcy13cmFwIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBtYXgtd2lkdGg6IDYwZW07IH0gfVxuXG4ubGF3eWVyLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi5sYXd5ZXItbGlzdF9pdGVtIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmbGV4LWJhc2lzOiA5MCU7XG4gIHdpZHRoOiA5MCU7XG4gIG1hcmdpbjogMCBhdXRvIDJlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMzVlbSkge1xuICAgIC5sYXd5ZXItbGlzdF9pdGVtIHtcbiAgICAgIGZsZXgtYmFzaXM6IDQ3JTtcbiAgICAgIHdpZHRoOiA0NyU7XG4gICAgICBtYXJnaW46IDAgMS43NWVtIDJlbSAwOyB9XG4gICAgICAubGF3eWVyLWxpc3RfaXRlbTpudGgtb2YtdHlwZSgybikge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5sYXd5ZXItbGlzdF9pdGVtIHtcbiAgICAgIGZsZXgtYmFzaXM6IDMwLjc1JTtcbiAgICAgIHdpZHRoOiAzMC43NSU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgICAubGF3eWVyLWxpc3RfaXRlbTpudGgtb2YtdHlwZSgybikge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuNzVlbTsgfVxuICAgICAgLmxhd3llci1saXN0X2l0ZW06bnRoLW9mLXR5cGUoM24pIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAubGF3eWVyLWxpc3RfaXRlbSB7XG4gICAgICBmbGV4LWJhc2lzOiAxNy42NSU7XG4gICAgICB3aWR0aDogMTcuNjUlOyB9XG4gICAgICAubGF3eWVyLWxpc3RfaXRlbTpudGgtb2YtdHlwZSgzbikge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuNzVlbTsgfVxuICAgICAgLmxhd3llci1saXN0X2l0ZW06bnRoLW9mLXR5cGUoNW4pIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDcxLjI1cmVtKSB7XG4gICAgLmxhd3llci1saXN0X2l0ZW0ge1xuICAgICAgZmxleC1iYXNpczogMTcuOTUlO1xuICAgICAgd2lkdGg6IDE3Ljk1JTsgfSB9XG5cbi5sYXd5ZXJfbGlzdC1pbWcge1xuICB3aWR0aDogMTguNzVlbTtcbiAgaGVpZ2h0OiAxOC43NWVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvYmplY3QtZml0OiBjb3ZlcjsgfVxuXG4ucHJvZmlsZS1uYXYgLmxhd3llcl9saXN0LWltZyB7XG4gIHdpZHRoOiAxMi41ZW07XG4gIGhlaWdodDogMTIuNWVtOyB9XG5cbi5sYXd5ZXJfbGlzdC1saW5rOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5sYXd5ZXJfbGlzdC1uYW1lIHtcbiAgbWFyZ2luLXRvcDogMC41ZW07IH1cblxuLmxhd3llci1uYW1lIHtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNWVtOyB9XG5cbi5sYXd5ZXItdGl0bGUge1xuICBtYXJnaW4tdG9wOiAwLjVlbTsgfVxuXG4ubGF3eWVyX3RpdGxlLXNlcGFyYXRvciB7XG4gIHdpZHRoOiA2ZW07XG4gIGhlaWdodDogMC4xNWVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0OyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5sYXd5ZXItYmlvIHtcbiAgICBmbGV4LWJhc2lzOiA1NSU7XG4gICAgd2lkdGg6IDU1JTtcbiAgICBtYXJnaW4tbGVmdDogNGVtOyB9IH1cblxuLnRlYW1fcGhvdG8td3JhcCB7XG4gIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgcGFkZGluZy1ib3R0b206IDJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM1MDE2MTc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ucHJhY3RpY2UtY29udGVudCB7XG4gIG9yZGVyOiAxO1xuICBtYXgtd2lkdGg6IDQwZW07XG4gIG1hcmdpbjogMCBhdXRvOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnByYWN0aWNlLWNvbnRlbnQge1xuICAgICAgb3JkZXI6IDI7IH0gfVxuXG4ucHJhY3RpY2Utd3JhcCB7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgcGFkZGluZzogM2VtIDFlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wcmFjdGljZS13cmFwIHtcbiAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3My4yNWVtKSB7XG4gICAgLnByYWN0aWNlLXdyYXAge1xuICAgICAgcGFkZGluZzogM2VtIDA7IH0gfVxuXG4uc2VydmljZXMtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICBtYXJnaW4tdG9wOiAzZW07XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAxcyBlYXNlO1xuICBhbmltYXRpb246IGZhZGV1cCAxLjVzIDE7IH1cbiAgLnNlcnZpY2VzLWxpc3QgPiBsaSB7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBtYXJnaW46IDAgYXV0byAxZW07XG4gICAgcGFkZGluZzogMS41ZW0gMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjNTAxNjE3O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzNWVtKSB7XG4gICAgICAuc2VydmljZXMtbGlzdCA+IGxpIHtcbiAgICAgICAgd2lkdGg6IDQ3JTsgfVxuICAgICAgICAuc2VydmljZXMtbGlzdCA+IGxpOm50aC1vZi10eXBlKDJuKSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNTVlbSkge1xuICAgICAgLnNlcnZpY2VzLWxpc3QgPiBsaSB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMi4yNWVtIDA7IH1cbiAgICAgICAgLnNlcnZpY2VzLWxpc3QgPiBsaTpudGgtb2YtdHlwZSgzbikge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gICAgLnNlcnZpY2VzLWxpc3QgPiBsaSBoNCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBmb250LXdlaWdodDogNDAwOyB9XG4gICAgLnNlcnZpY2VzLWxpc3QgPiBsaSBhIHtcbiAgICAgIGNvbG9yOiAjNDQ0O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5zZXJ2aWNlcy1saXN0ID4gbGkgaW1nIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTAuNDVlbTtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7IH1cbiAgICAuc2VydmljZXMtbGlzdCA+IGxpOmhvdmVyIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cbiAgICAgIC5zZXJ2aWNlcy1saXN0ID4gbGk6aG92ZXIgaW1nIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOyB9XG5cbi5zbGlkZS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMSwgMC41LCAwLjgsIDEpOyB9XG5cbi5zbGlkZS1lbnRlciwgLnNsaWRlLWxlYXZlLXRvIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2VydmljZXMtbmF2IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDsgfVxuXG4uc2VydmljZXNfbmF2LWl0ZW0ge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuLnByYWN0aWNlX2FyZWFzLW5hdl93cmFwIC5zZXJ2aWNlcy1uYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwOyB9XG5cbi5wcmFjdGljZV9hcmVhcy1uYXZfd3JhcCAuc2VydmljZXNfbmF2LWl0ZW0ge1xuICBmb250LWZhbWlseTogJ1BvcHBpbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmbGV4LWJhc2lzOiA4MCU7XG4gIG1hcmdpbjogMCBhdXRvIDFlbTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlO1xuICBib3JkZXI6IDJweCBzb2xpZCAjNTAxNjE3O1xuICBib3JkZXItcmFkaXVzOiA2cHg7IH1cbiAgLnByYWN0aWNlX2FyZWFzLW5hdl93cmFwIC5zZXJ2aWNlc19uYXYtaXRlbTpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDM1ZW0pIHtcbiAgICAucHJhY3RpY2VfYXJlYXMtbmF2X3dyYXAgLnNlcnZpY2VzX25hdi1pdGVtIHtcbiAgICAgIGZsZXgtYmFzaXM6IDQ4JTtcbiAgICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAgIC5wcmFjdGljZV9hcmVhcy1uYXZfd3JhcCAuc2VydmljZXNfbmF2LWl0ZW06bnRoLW9mLXR5cGUoMm4pIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgICAucHJhY3RpY2VfYXJlYXMtbmF2X3dyYXAgLnNlcnZpY2VzX25hdi1pdGVtOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnByYWN0aWNlX2FyZWFzLW5hdl93cmFwIC5zZXJ2aWNlc19uYXYtaXRlbSB7XG4gICAgICBmbGV4LWJhc2lzOiAzMiU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFlbTsgfVxuICAgICAgLnByYWN0aWNlX2FyZWFzLW5hdl93cmFwIC5zZXJ2aWNlc19uYXYtaXRlbTpudGgtb2YtdHlwZSgybikge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFlbTsgfVxuICAgICAgLnByYWN0aWNlX2FyZWFzLW5hdl93cmFwIC5zZXJ2aWNlc19uYXYtaXRlbTpudGgtb2YtdHlwZSgzbikge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wcmFjdGljZV9hcmVhcy1uYXZfd3JhcCAuc2VydmljZXNfbmF2LWl0ZW0ge1xuICAgICAgZmxleC1iYXNpczogMjMuNSU7IH1cbiAgICAgIC5wcmFjdGljZV9hcmVhcy1uYXZfd3JhcCAuc2VydmljZXNfbmF2LWl0ZW06bnRoLW9mLXR5cGUoM24pIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxZW07IH1cbiAgICAgIC5wcmFjdGljZV9hcmVhcy1uYXZfd3JhcCAuc2VydmljZXNfbmF2LWl0ZW06bnRoLW9mLXR5cGUoNG4pIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgLnByYWN0aWNlX2FyZWFzLW5hdl93cmFwIC5zZXJ2aWNlc19uYXYtaXRlbTpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjOGMyNzI4O1xuICAgIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cbiAgLnByYWN0aWNlX2FyZWFzLW5hdl93cmFwIC5zZXJ2aWNlc19uYXYtaXRlbSBhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDFlbTtcbiAgICBjb2xvcjogIzUwMTYxNzsgfVxuICAgIC5wcmFjdGljZV9hcmVhcy1uYXZfd3JhcCAuc2VydmljZXNfbmF2LWl0ZW0gYTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLnByYWN0aWNlX2FyZWFzLW5hdl93cmFwIC5zZXJ2aWNlc19uYXYtaXRlbSAuc2lkZW5hdi1saW5rIHtcbiAgICBmb250LXNpemU6IDAuOHJlbTsgfVxuXG4uY2FyZWVyLWxpc3Qge1xuICBtYXJnaW4tdG9wOiAyZW07XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM1MDE2MTc7IH1cblxuLmNhcmVlci1saXN0X2l0ZW0ge1xuICBwYWRkaW5nOiAyZW0gMDtcbiAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzUwMTYxNzsgfVxuXG4uY2FyZWVyLWhlYWRpbmcge1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5jb250YWN0LWluZm9ybWF0aW9uLCAuY29udGFjdC1mb3JtX3dyYXAge1xuICAgIGZsZXgtYmFzaXM6IDQ4LjUlO1xuICAgIHdpZHRoOiA0OC41JTsgfSB9XG5cbi5jb250YWN0LWluZm9ybWF0aW9uIHtcbiAgcGFkZGluZy1ib3R0b206IDJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgcmdiYSg1MCwgOTQsIDkyLCAwLjcpOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNvbnRhY3QtaW5mb3JtYXRpb24ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0ZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgYm9yZGVyOiBub25lOyB9IH1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3B1YmxpYy5zY3NzIiwiLy8gbWl4aW5zICsgbm9ybWFsaXplICsgY29tbW9uXG5AaW1wb3J0IFwiY29tbW9uL3ZhcnNcIixcbiAgICBcInB1YmxpYy92YXJzXCIsXG4gICAgXCJjb21tb24vbWl4aW5zXCIsXG4gICAgXCJwdWJsaWMvbWl4aW5zXCIsXG4gICAgXCJjb21tb24vbWVkaWFcIixcbiAgICBcImNvbW1vbi9jb21tb25cIjtcblxuLy8gZ2xvYmFsIHN0eWxlcyBvbiB0aGUgbW9zdCBjb21tb24gZWxlbWVudHNcbmh0bWwge1xuICAgIEBpbmNsdWRlIGRlZmF1bHQtaHRtbC1zdHlsZTtcbn1cblxuYSB7XG4gICAgY29sb3I6ICRjb2xvci1tYXJvb247XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMjVzIGVhc2U7XG4gICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbn1cbmFkZHJlc3MgeyBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuLnNlcGFyYXRvciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6ICRtYXgtY29udGVudC13aWR0aDtcbiAgICBtYXgtd2lkdGg6IDgwJTtcbiAgICBoZWlnaHQ6IDRlbTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBmaWxsOiByZ2JhKCRjb2xvci1ibHVlLCAwLjcpO1xufVxuXG4vLyBsb2FkIGNvbW1vbiBzdHlsZXNcbkBpbXBvcnQgXCJjb21tb24vZm9ybXNcIixcbiAgICAvL1wiY29tbW9uL3BhZ2luYXRpb25cIixcbiAgICBcImNvbW1vbi9hbGVydHNcIixcbiAgICAvL1wiY29tbW9uL21vZGFsXCIsXG4gICAgXCJjb21tb24vaWU5X3dhcm5pbmdcIjtcblxuLy8gcHVibGljIG9ubHkgc3R5bGVzXG5AaW1wb3J0IFwicHVibGljL2NvbnRlbnRcIixcbiAgICBcInB1YmxpYy9hbmltYXRpb25zXCIsXG4gICAgXCJwdWJsaWMvYnV0dG9uc1wiLFxuICAgIFwicHVibGljL2hlYWRpbmdzXCIsXG4gICAgXCJwdWJsaWMvaGVhZGVyXCIsXG4gICAgXCJwdWJsaWMvZm9vdGVyXCIsXG4gICAgXCJwdWJsaWMvaGVyb2JhclwiLFxuICAgIFwicHVibGljL3NlY3Rpb25zXCIsXG4gICAgXCJwdWJsaWMvc2lkZW5hdlwiLFxuICAgIFwicHVibGljL2xhd3llcl9wcm9maWxlc1wiO1xuXG4vLyBwYWdlIHNwZWNpZmljXG5AaW1wb3J0IFwicHVibGljL3BfcHJhY3RpY2VfYXJlYXNcIiwgXCJwdWJsaWMvc2VydmljZXNcIixcInB1YmxpYy9zZXJ2aWNlc19uYXZcIiwgXCJwdWJsaWMvcF9jYXJlZXJzXCIsIFwicHVibGljL3BfY29udGFjdFwiO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vaHRtbC9jc3Mvc2Fzcy9wdWJsaWMuc2NzcyIsIi8vIHVzZWQgZm9yIGJvdGggdGhlIHB1YmxpYyBodG1sICYgdGlueW1jZVxuQG1peGluIGRlZmF1bHQtaHRtbC1zdHlsZSB7XG4gICAgZm9udDogMTAwJS8xICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCAnVGltZXMgTmV3IFJvbWFuJywgVGltZXMsIHNlcmlmO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2h0bWwvY3NzL3Nhc3MvcHVibGljL19taXhpbnMuc2NzcyIsIi8vIGZvciB0aGUgbWF4aW11bSB3aWR0aCBvZiB0aGUgZW50aXJlIGNvbnRlbnQgKGltYWdlcyArIHRleHQgKyBldGMpXG4kbWF4LXdpZHRoOiA3MS4yNXJlbTtcbi8vIG1heCB3aWR0aCBmb3IgY29udGVudCAodGV4dClcbiRtYXgtY29udGVudC13aWR0aDogNDBlbTtcblxuJHRleHQtY29sb3I6ICM0NDQ7XG4kcHJpbWFyeS1jb2xvcjogJGNvbG9yLW1hcm9vbjtcbiRsaW5rLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblxuJGJvcmRlci1yYWRpdXM6IDJweDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9odG1sL2Nzcy9zYXNzL3B1YmxpYy9fdmFycy5zY3NzIiwiJGZvcm0tbGFiZWwtY29sb3ItaG92ZXI6IGxpZ2h0ZW4oJHRleHQtY29sb3IsIDIwJSk7XG4kZm9ybS1ib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcblxuLy8gZml4ZXMgc3BhY2UgYmVsb3cgdGV4dGFyZWFzLCBtYWtpbmcgaXQgY29uc2lzdGVudCBhY3Jvc3MgYnJvd3NlcnNcbnRleHRhcmVhIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4uZm9ybS1pbnB1dC1hbGlnbl9yaWdodCB7IHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi5mb3JtLWZvcm1fd3JhcCB7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBtYXgtd2lkdGg6IDMwZW07XG4gICAgbWFyZ2luOiAxZW0gYXV0bztcbiAgICBwYWRkaW5nOiAxZW07XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgYm94LXNoYWRvdzogMCA1cHggMTBweCAkZm9ybS1ib3JkZXItY29sb3I7XG4gICAgaDIgeyBtYXJnaW4tdG9wOiAwOyB9XG4gICAgaDQgeyBtYXJnaW4tYm90dG9tOiAwLjVlbTsgfVxufVxuXG4uZm9ybS1maWVsZHNldCB7XG4gICAgbWFyZ2luOiAxLjVlbSAwIDFlbTtcbiAgICBwYWRkaW5nOiAxZW0gMWVtO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRmb3JtLWJvcmRlci1jb2xvcjtcbiAgICA+IC5mb3JtLWZpZWxkX3dyYXA6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gICAgfVxufVxuLmZvcm0tZmllbGRzZXQtZmlyc3Qge1xuICAgIG1hcmdpbi10b3A6IDAuNWVtO1xufVxuXG5AbWl4aW4gdGV4dC1pbnB1dCgpIHtcbiAgICBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1maWxlXSk6bm90KFt0eXBlPXJhZGlvXSk6bm90KFt0eXBlPWNoZWNrYm94XSk6bm90KFt0eXBlPWNvbG9yXSksIHRleHRhcmVhLCBzZWxlY3Qge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi5mb3JtLWZpZWxkLWZsZXgge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93X3dyYXA7XG59XG5cbi5mb3JtLWZpZWxkX3dyYXAge1xuICAgIHNlbGVjdCB7XG4gICAgICAgIGhlaWdodDogMi4zZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNWVtO1xuICAgIH1cbn1cblxuLmZvcm0tZmllbGRfd3JhcCwgLmZvcm1fdGFibGUtY29sIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2Utc2VwYXJhdG9yO1xuICAgIH1cbiAgICBAaW5jbHVkZSB0ZXh0LWlucHV0KCkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMC41ZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGNvbG9yLWdyZXktZGFyaywgMC4xNSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gICAgfVxuICAgIGlucHV0W3R5cGU9ZmlsZV0geyB3aWR0aDogMTAwJTsgfVxufVxuLmZvcm0tZmllbGRfd3JhcC1ub193aWR0aCB7XG4gICAgQGluY2x1ZGUgdGV4dC1pbnB1dCgpIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxufVxuLmZvcm0tZmllbGRfd3JhcC1ub19tYXJnaW4ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG4uZm9ybS1maWVsZF93cmFwLXRleHRhcmVhIHtcbiAgICB0ZXh0YXJlYSB7IGhlaWdodDogMTBlbTsgfVxufVxuLmZvcm0tZmllbGRfd3JhcC1jaGVja2JveCB7XG4gICAgbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAmOmhvdmVyIHsgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWhvdmVyOyB9XG4gICAgfVxufVxuLmZvcm0tZmllbGRfd3JhcC1yYWRpb19yb3cge1xuICAgID4gbGFiZWw6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjZS1zZXBhcmF0b3I7XG4gICAgfVxuICAgIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG4uZm9ybS1maWVsZF93cmFwLWZsZXhfaG9yeiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICA+IC5mb3JtLWZpZWxkX3dyYXAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLmZvcm0tZmllbGRfd3JhcC1mbGV4X2Z1bGxfd2lkdGgge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIEBpbmNsdWRlIG1xKHdpZGVfaGFuZGhlbGRzKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICB9XG5cbiAgICA+IC5mb3JtLWZpZWxkX3dyYXAge1xuICAgICAgICBAaW5jbHVkZSBtcSh3aWRlX2hhbmRoZWxkcykge1xuICAgICAgICAgICAgZmxleC1iYXNpczogNTAlO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmZvcm0tZmllbGRfd3JhcC1yaWdodF9tYXJnaW4ge1xuICAgIG1hcmdpbi1yaWdodDogMC4yNWVtO1xufVxuLmZvcm0tZmllbGRfd3JhcC1yZWFkb25seSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1pbnB1dCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDAuNWVtO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjdlbTtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBjb250ZW50OiBcInJlYWQtb25seVwiO1xuICAgIH1cbn1cblxuLy8gc2hvd3MgYSBcInN1YlwiIG9mIHByZXZpb3VzIGZpZWxkXG4uZm9ybS1maWVsZF93cmFwLWluc2V0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDJlbTtcbiAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkIGRhcmtlbigkY29sb3ItZ3JleS1saWdodCwgMzAlKTtcbn1cblxuLy8gZm9yIHVzZSBpbnNpZGUgb2YgYSBmaWVsZF93cmFwIGZvciBtdWx0aXBsZSBmaWVsZHMgc2hvd24gdmVydGljYWxseVxuLmZvcm0tdmVydGljYWxfbGlzdCA+IGRpdiB7XG4gICAgbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICY6aG92ZXIgeyBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3ItaG92ZXI7IH1cbiAgICB9XG59XG5cbi5mb3JtLWZpZWxkX3ByZWZpeCB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgICBsYWJlbCB7IG1hcmdpbi1ib3R0b206IDA7IH1cbn1cbi5mb3JtLWZpZWxkX3N1ZmZpeCB7XG4gICAgbWFyZ2luLWxlZnQ6ICRmb3JtLXNwYWNlLXNlcGFyYXRvcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cbi5mb3JtLWZpZWxkX3NlcGFyYXRvciB7XG4gICAgcGFkZGluZzogMCAwLjI1ZW07XG59XG5cbi5mb3JtLWZpZWxkX2hlbHAge1xuICAgIG1hcmdpbi10b3A6IDAuMmVtO1xuICAgIC8vIHRoZSBwYWRkaW5nIGhlbHBzIGl0IGFsaWduIGJldHRlciB3aXRoIGZpZWxkIGFib3ZlXG4gICAgcGFkZGluZy1sZWZ0OiAwLjFlbTtcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICAgIGNvbG9yOiBsaWdodGVuKCR0ZXh0LWNvbG9yLCAxNyUpO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi8vIGZvciBoZWxwIGJ5IGJ1dHRvbnNcbi5mb3JtLWZpZWxkX2hlbHAtYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAkZm9ybS1zcGFjZS1zZXBhcmF0b3I7XG59XG5cbi8vIGZvciBsaXN0cyBvZiBjaGVja2JveGVzIG9yIHJhZGlvcyAoc2hvd3MgYXMgdXAgdG8gMyBjb2x1bW5zKVxuLmZvcm0tcm93X2l0ZW1fd3JhcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIG1heC13aWR0aDogMTAwJTtcbn1cbi5mb3JtLXJvd19pdGVtIHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIEBpbmNsdWRlIG1xKHdpZGVfaGFuZGhlbGRzKSB7XG4gICAgICAgIGZsZXg6IDEgMSAzMyU7XG4gICAgfVxufVxuXG4uZm9ybS1idXR0b25fd3JhcCB7XG4gICAgYnV0dG9uLCAuYnV0dG9uIHsgbWFyZ2luLXJpZ2h0OiAwLjVlbTsgfVxufVxuXG4uZm9ybS1hY3Rpb25fbGluayB7XG4gICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgICBjb2xvcjogcmdiYSgkbGluay1jb2xvciwgMC42KTtcbiAgICAmOmhvdmVyIHsgY29sb3I6IHJnYmEoJGxpbmstY29sb3IsIDEpOyB9XG59XG5cbi5mb3JtLWZpZWxkX2Vycm9ycyB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjZS1zZXBhcmF0b3I7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIGxpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2Utc2VwYXJhdG9yO1xuICAgICAgICBwYWRkaW5nOiAwLjVlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWdyZXktbGlnaHQ7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkICRzdGF0dXMtdHlwZS1kYW5nZXI7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAwIDAgMTBweDtcbiAgICB9XG59XG5cbi8vIGZvciB0aGUgbGFiZWxzIHdpdGhpbiB0aGUgdmljaCBmaWxlIHVwbG9hZGVyIHdpZGdldFxuLnZpY2gtZmlsZSBsYWJlbCB7XG4gICAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2Utc2VwYXJhdG9yO1xufVxuXG4vLyBmb3JtIGhlYWRpbmdzIHdpdGggbGlua3Ncbi5mb3JtLWhlYWRpbmdfd2l0aF9saW5rX3dyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG4uZm9ybS1oZWFkaW5nX2xpbmtzIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBhOmxhc3QtY2hpbGQgeyBtYXJnaW4tcmlnaHQ6IDA7IH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2h0bWwvY3NzL3Nhc3MvY29tbW9uL19mb3Jtcy5zY3NzIiwiQG1peGluIGZsZXgtcm93X3dyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uX3dyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gd3JhcDtcbn1cblxuLy8gQ2xlYXJmaXggZnJvbTogaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9zbmlwcGV0cy9jc3MvY2xlYXItZml4LyAoQXVndXN0IDIwMTIpXG5AbWl4aW4gY2xlYXJmaXgge1xuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2h0bWwvY3NzL3Nhc3MvY29tbW9uL19taXhpbnMuc2NzcyIsIi8vIGZyb20gaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL3VzaW5nLXNhc3MtbWFwcy9cbkBtaXhpbiBtcSgkYnJlYWtwb2ludCkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkbXFzLCAkYnJlYWtwb2ludCkge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogI3ttYXAtZ2V0KCRtcXMsICRicmVha3BvaW50KX0pIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQpIHsgQGNvbnRlbnQgfVxuICAgIH1cbn1cblxuQG1peGluIG1xX21heCgkYnJlYWtwb2ludCkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkbXFzLCAkYnJlYWtwb2ludCkge1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogI3ttYXAtZ2V0KCRtcXMsICRicmVha3BvaW50KX0pIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJGJyZWFrcG9pbnQpIHsgQGNvbnRlbnQgfVxuICAgIH1cbn1cblxuQG1peGluIG1xX3JldGluYSgpIHtcbiAgICBAbWVkaWFcbiAgICAgICAgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksXG4gICAgICAgIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSB7XG4gICAgICAgICAgICBAY29udGVudFxuICAgICAgICB9XG59XG5cbi8vIGRlYnVnIGZvciBzaG93aW5nIHRoZSBzY3JlZW4gd2lkdGggaW4gdGhlIGJvdHRvbSByaWdodFxuQG1peGluIHNjcmVlbl93aWR0aF9kaXNwbGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDk5OTk7XG4gICAgcGFkZGluZzogMC40ZW0gMC42NWVtO1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICBjb2xvcjogIzIwZDgzMjtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG59XG5cbiRzaG93LXNjcmVlbi13aWR0aDogZmFsc2UgIWRlZmF1bHQ7XG5AaWYgJHNob3ctc2NyZWVuLXdpZHRoID09IHRydWUge1xuICAgICRzdGFydC1hdDogMzAwcHg7XG4gICAgJGluY3JlbWVudC1ieTogMTBweDtcblxuICAgICRtaW46IGZsb29yKCRzdGFydC1hdC8kaW5jcmVtZW50LWJ5KTtcbiAgICAkbWF4OiBmbG9vcigoJG1heC13aWR0aCArIDEwMCkvJGluY3JlbWVudC1ieSk7XG5cbiAgICBib2R5IHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2NyZWVuX3dpZHRoX2Rpc3BsYXk7XG5cbiAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAkbWluIHRocm91Z2ggJG1heCB7XG4gICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3skaSAqICRpbmNyZW1lbnQtYnl9KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwid2lkdGg6ICN7JGkgKiAkaW5jcmVtZW50LWJ5fVwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9odG1sL2Nzcy9zYXNzL2NvbW1vbi9fbWVkaWEuc2NzcyIsIi5hbGVydCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgd2lkdGg6IDkwJTtcbiAgICBtaW4td2lkdGg6IDEwcmVtO1xuICAgIG1hcmdpbjogMCBhdXRvIDFlbTtcbiAgICBwYWRkaW5nOiAwLjVlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JleS1saWdodDtcbiAgICBib3JkZXItbGVmdDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBAaW5jbHVkZSBtcSh0YWJsZXRzKSB7XG4gICAgICAgIHdpZHRoOiA3MCU7XG4gICAgfVxuXG4gICAgLy8gYWxlcnRzIG5lc3RlZCBpbnNpZGUgZm9ybXMgc2hvdWxkIGdvIHRoZSBmdWxsIHdpZHRoXG4gICAgLmZvcm0tZm9ybV93cmFwICYgeyB3aWR0aDogMTAwJTsgfVxufVxuXG4uYWxlcnQtdHlwZS1zdWNjZXNzIHtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogJHN0YXR1cy10eXBlLXN1Y2Nlc3M7XG59XG4uYWxlcnQtdHlwZS1pbmZvIHtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogJHN0YXR1cy10eXBlLWluZm87XG59XG4uYWxlcnQtdHlwZS13YXJuaW5nIHtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogJHN0YXR1cy10eXBlLXdhcm5pbmc7XG59XG4uYWxlcnQtdHlwZS1kYW5nZXIge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkc3RhdHVzLXR5cGUtZGFuZ2VyO1xufVxuXG4vLyBubyBnZW5lcmljIEpTIGltcGxlbWVudGVkIHRvIG1ha2UgdGhlIG1lc3NhZ2UgZGlzYXBwZWFyXG4uYWxlcnQtYWN0aW9uLXJpZ2h0IHtcbiAgICAvLyBmb3IgPD1JRTlcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiAxZW07XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vaHRtbC9jc3Mvc2Fzcy9jb21tb24vX2FsZXJ0cy5zY3NzIiwiLmllOV93YXJuaW5nLXdyYXAge1xuICAgIGJhY2tncm91bmQ6ICRzdGF0dXMtdHlwZS1kYW5nZXI7XG59XG4uaWU5X3dhcm5pbmctY29udGVudCB7XG4gICAgLy8gfjcwIGNoYXJzXG4gICAgbWF4LXdpZHRoOiAzNWVtO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDAuOGVtO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5pZTlfd2FybmluZy1jb250ZW50LWJpZyB7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcbn1cbi5pZTlfd2FybmluZy1saW5rIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICNkZGQ7XG4gICAgfVxufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2h0bWwvY3NzL3Nhc3MvY29tbW9uL19pZTlfd2FybmluZy5zY3NzIiwiLmNvbnRlbnQtd3JhcCB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDFlbTtcblxuICAgIEBpbmNsdWRlIG1xKDczLjI1ZW0pIHtcbiAgICAgICAgcGFkZGluZzogMWVtIDA7XG4gICAgfVxuXG4gICAgJi1uYXJyb3cge1xuICAgICAgICBtYXgtd2lkdGg6ICRtYXgtY29udGVudC13aWR0aDtcbiAgICB9XG5cbiAgICAmLWZsZXgge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgICYtY29udGFjdCB7XG5cbiAgICAgICAgcGFkZGluZy10b3A6IDJlbTtcbiAgICAgICAgQGluY2x1ZGUgbXEodGFibGV0cykge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGltcG9ydCAnLi4vY29tbW9uL2NvbnRlbnRfYWxpZ25tZW50JztcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9odG1sL2Nzcy9zYXNzL3B1YmxpYy9fY29udGVudC5zY3NzIiwiLmNvbnRlbnQtaW1nLWNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAxZW0gYXV0bztcbn1cbi5jb250ZW50LWltZy1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDFlbSAxZW0gMWVtIDA7XG59XG4uY29udGVudC1pbWctcmlnaHQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW46IDFlbSAwIDFlbSAxZW07XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vaHRtbC9jc3Mvc2Fzcy9jb21tb24vX2NvbnRlbnRfYWxpZ25tZW50LnNjc3MiLCIuZmFkZS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2l0aW9uOiBhbGwgLjc1cyBlYXNlLWluO1xufVxuLmZhZGUtbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNpdGlvbjogYWxsIC4yNXMgZWFzZS1vdXQ7XG59XG4uZmFkZS1lbnRlciwgLmZhZGUtbGVhdmUtdG8ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuMjVlbSk7XG4gIG9wYWNpdHk6IDA7XG59XG5cblxuQGtleWZyYW1lcyBmYWRldXAge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDllbSk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5cbi8vIC5mYWRlLXVwLWVudGVyLWFjdGl2ZSB7XG4vLyAgIHRyYW5zaXRpb246IGFsbCAuNzVzIGVhc2UtaW47XG4vLyAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNGVtKTtcbi8vIH1cbi8vIC5mYWRlLXVwLWxlYXZlLWFjdGl2ZSB7XG4vLyAgIHRyYW5zaXRpb246IGFsbCAuMjVzIGVhc2Utb3V0O1xuLy8gfVxuLy8gLmZhZGUtdXAtZW50ZXIsIC5mYWRlLXVwLWxlYXZlLXRvIHtcbi8vICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBlbSk7XG4vLyAgIG9wYWNpdHk6IDA7XG4vLyB9XG5cblt2LWNsb2FrXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vaHRtbC9jc3Mvc2Fzcy9wdWJsaWMvX2FuaW1hdGlvbnMuc2NzcyIsImJ1dHRvbiwgLmJ1dHRvbiB7XG4gICAgcGFkZGluZzogMC41ZW0gMWVtO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci13aGl0ZTtcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICAgIH1cbiAgICAmLXJlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLW1hcm9vbjtcbiAgICAgICAgY29sb3I6ICRjb2xvci1tYXJvb247XG4gICAgfVxuXG59XG5cbi5idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbn1cblxuLmJ1dHRvbi13cmFwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogM2VtO1xuICAgIEBpbmNsdWRlIG1xKHRhYmxldHMpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gICAgJi1jZW50ZXIge1xuICAgICAgIEBpbmNsdWRlIG1xKHRhYmxldHMpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9odG1sL2Nzcy9zYXNzL3B1YmxpYy9fYnV0dG9ucy5zY3NzIiwiaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuaDIge1xuICAgIGZvbnQtc2l6ZTogMi4yNWVtO1xufVxuXG5oMiwgaDMsIGg0IHtcbiAgICBmb250LWZhbWlseTogJ1BvcHBpbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG59XG5cbmg0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1ZW07XG5cbiAgICB+IHAge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjI1ZW07XG4gICAgfVxufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2h0bWwvY3NzL3Nhc3MvcHVibGljL19oZWFkaW5ncy5zY3NzIiwiLmhlYWRlci13cmFwIHtcbiAgICBwYWRkaW5nOiAxZW07XG4gICAgYm9yZGVyLXRvcDogNnB4IHNvbGlkICRjb2xvci1ibHVlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2Utb3V0O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1tYXJvb247XG4gICAgQGluY2x1ZGUgbXEoNzMuMjVlbSkge1xuICAgICAgICBwYWRkaW5nOiAxZW0gMDtcbiAgICB9XG59XG5cbi5oZWFkZXJfd3JhcC1ocCB7XG4gICAgLmhlYWRlci13cmFwIHtcbiAgICAgICAgQGluY2x1ZGUgbXEodGFibGV0cykge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTEwZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvci1tYXJvb247XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5oZWFkZXIge1xuICAgIGZvbnQtZmFtaWx5OiAnUG9wcGlucycsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBAaW5jbHVkZSBtcSh0YWJsZXRzKSB7XG4gICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIH1cbn1cblxuLmhlYWRlci1uYXYge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgbWFyZ2luLXRvcDogMmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuMjVlbTtcbiAgICBAaW5jbHVkZSBtcSh0YWJsZXRzKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgfVxuICAgIC8vICYtaHAge1xuICAgICAgICBAaW5jbHVkZSBtcSh0YWJsZXRzKSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgkY29sb3ItZ3JleS1saWdodCwgMC44KTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKCRjb2xvci1ncmV5LWxpZ2h0LCAwLjgpO1xuICAgICAgICB9XG4gICAgLy8gfVxufVxuXG5cbi5oZWFkZXJfbmF2LWl0ZW0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdGV4dC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsMCwwLDAuNSk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2U7XG4gICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4ycHg7XG4gICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDRweCA2cHggcmdiYSgkY29sb3ItcmVkLCAwLjUpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1xKHRhYmxldHMpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDJlbTtcbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uaGVhZGVyX25hdi1saW5rIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbn1cbi5oZWFkZXItbG9nb193cmFwIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtaW4td2lkdGg6IDYuNWVtO1xufVxuXG4uaGVhZGVyLWxvZ29fd3JhcC1zY3JvbGwge1xuICAgIHdpZHRoOiA2LjVlbTtcbiAgICBoZWlnaHQ6IDVlbTtcbn1cblxuLmhlYWRlci1waG9uZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBmb250LXdlaWdodDogMjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi5oZWFkZXItc21hbGwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgei1pbmRleDogOTk5OTtcbiAgICBAaW5jbHVkZSBtcSh0YWJsZXRzKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAuaGVhZGVyLXdyYXAtc2Nyb2xsIHtcbiAgICAgICAgcGFkZGluZzogMC41ZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJGNvbG9yLW1hcm9vbiwgMC45KTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZS1vdXQ7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgIH1cbiAgICAuaGVhZGVyX25hdi1pdGVtIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xuICAgIH1cbn1cblxuLmhlYWRlci1tZW51X2ljb24td3JhcCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgQGluY2x1ZGUgbXEodGFibGV0cykge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmhlYWRlci1tZW51LWljb24ge1xuICAgIHdpZHRoOiAyLjI1cmVtO1xuICAgIGhlaWdodDogMi4yNXJlbTtcbiAgICBmaWxsOiAkY29sb3Itd2hpdGU7XG59XG5cbi5oZWFkZXJfbW9iaWxlLW9wZW4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC5oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgLmhlYWRlci1uYXYge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZzogMWVtIDA7XG4gICAgfVxuICAgIC5oZWFkZXJfbmF2LWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuaGVhZGVyLXBob25lIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLmhlYWRlci1tZW51X2ljb24td3JhcCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAzLjRlbTtcbiAgICAgICAgcmlnaHQ6IDFlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6IDJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS4yNWVtO1xuICAgIH1cbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9odG1sL2Nzcy9zYXNzL3B1YmxpYy9faGVhZGVyLnNjc3MiLCIuZm9vdGVyLXdyYXAge1xuXG59XG5cbi5mb290ZXIge1xuICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAxZW07XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoJGNvbG9yLWJsdWUsIDAuMyk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIEBpbmNsdWRlIG1xKHRhYmxldHMpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgICBAaW5jbHVkZSBtcSg3My4yNWVtKSB7XG4gICAgICAgIHBhZGRpbmc6IDFlbSAwO1xuICAgIH1cbn1cblxuLmZvb3Rlci1jb3B5cmlnaHQge1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgbWFyZ2luLXRvcDogMWVtO1xuICAgIEBpbmNsdWRlIG1xKHRhYmxldHMpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxufVxuXG4uZm9vdGVyLWljb24ge1xuICAgIHdpZHRoOiAyZW07XG4gICAgaGVpZ2h0OiAyZW07XG4gICAgZmlsbDogJGNvbG9yLWdyZXktZGFyaztcbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9odG1sL2Nzcy9zYXNzL3B1YmxpYy9fZm9vdGVyLnNjc3MiLCIuaGVyb2JhciB7XG4gICAgaGVpZ2h0OiAyNWVtO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG5cbi5NYXN0aGVhZCB7XG4gICAgaGVpZ2h0OiAyNWVtICFpbXBvcnRhbnQ7XG4gICAgQGluY2x1ZGUgbXEodGFibGV0cykge1xuICAgICAgICBoZWlnaHQ6IDcwdmg7XG4gICAgfVxufVxuXG4uaGVyb2Jhci1ocCB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlIHVybCgnL2ltYWdlcy9wZW50aWN0b24tbGF3LWZpcm0uanBnJykgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgbWluLWhlaWdodDogMjBlbTtcbiAgICBAaW5jbHVkZSBtcSh0YWJsZXRzKSB7XG4gICAgICAgIGhlaWdodDogNTBlbTtcbiAgICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbXEoJG1heC13aWR0aCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICAgIH1cbn1cblxuLmhlcm9iYXItaW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjYpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmhlcm9iYXItY29udGVudCB7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xufVxuXG4uaGVyb2Jhci1oZWFkaW5nIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1ZW07XG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRleHQtc2hhZG93OiAwIDJweCAzcHggcmdiYSgwLDAsMCwwLjYwKTtcbiAgICBAaW5jbHVkZSBtcSh0YWJsZXRzKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNC41cmVtO1xuICAgIH1cbn1cblxuLmhlcm9iYXItc3ViaGVhZGluZyB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgbWFyZ2luLXRvcDogMC4yNWVtO1xuICAgIGNvbG9yOiBkYXJrZW4oJGNvbG9yLWdyZXktbGlnaHQsMTAlKTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHRleHQtc2hhZG93OiAwIDJweCAzcHggcmdiYSgwLDAsMCwwLjYwKTtcbiAgICBAaW5jbHVkZSBtcSh0YWJsZXRzKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMi4zcmVtO1xuICAgIH1cbn1cblxuLmhlcm9iYXItc2VwYXJhdG9yIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogOGVtO1xuICAgIGhlaWdodDogMC4zZW07XG4gICAgbWFyZ2luOiAyZW0gYXV0byAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGNvbG9yLWJsdWUsIDEwJSk7XG59XG5cbi5iYW5uZXIge1xuICAgIGhlaWdodDogMzBlbTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIEBpbmNsdWRlIG1xKCRtYXgtd2lkdGgpIHtcbiAgICAgICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbDtcbiAgICB9XG59XG5cbi5iYW5uZXJfd3JhcC1ocCB7XG5cbiAgICAuYmFubmVyIHtcbiAgICAgICAgaGVpZ2h0OiAyMGVtO1xuICAgICAgICAvLyBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gICAgfVxufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2h0bWwvY3NzL3Nhc3MvcHVibGljL19oZXJvYmFyLnNjc3MiLCIuc2VjdGlvbi1hYm91dCB7XG5cbiAgICBtaW4taGVpZ2h0OiAzMGVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1tYXJvb247XG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICBAaW5jbHVkZSBtcSh0YWJsZXRzKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLmFib3V0LWJrZ19pbWcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvaW1hZ2VzL3BlbnRpY3Rvbi5qcGcnKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgbWluLWhlaWdodDogMjBlbTtcbiAgICAgICAgQGluY2x1ZGUgbXEodGFibGV0cykge1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYWJvdXQtY29udGVudC13cmFwIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAzZW07XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLDAsMCwwLjcpO1xuICAgICAgICBAaW5jbHVkZSBtcSh0YWJsZXRzKSB7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgcGFkZGluZzogNWVtIDNlbTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gcDpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWJvdXQtaGVhZGluZyB7XG4gICAgICAgIG1heC13aWR0aDogMTJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cblxuXG4uc2VjdGlvbi1yZWQge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBwYWRkaW5nOiAzcmVtIDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRjb2xvci1yZWQsIDEwJSk7XG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICBAaW5jbHVkZSBtcSh0YWJsZXRzKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB9XG59XG5cbi5zZWN0aW9uLXNlcnZpY2VzIHtcbiAgICBwYWRkaW5nOiA0ZW0gMDtcbn1cblxuLnNlY3Rpb24tdGVhbSB7XG4gICAgcGFkZGluZzogM2VtIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2h0bWwvY3NzL3Nhc3MvcHVibGljL19zZWN0aW9ucy5zY3NzIiwiLnNpZGVuYXYtd3JhcCB7XG4gICAgcGFkZGluZzogMnJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRjb2xvci1ncmV5LWRhcmssIDEwJSk7XG4gICAgY29sb3I6ICRjb2xvci1ncmV5LWxpZ2h0O1xuICAgIG9yZGVyOiAyO1xuICAgIEBpbmNsdWRlIG1xKHRhYmxldHMpIHtcbiAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNWVtO1xuICAgICAgICB3aWR0aDogMzAlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDJlbTtcbiAgICB9XG59XG5cbi5zaWRlbmF2LWxpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAkY29sb3ItZ3JleS1saWdodDtcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjJlbTtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IGxpZ2h0ZW4oJGNvbG9yLWJsdWUsIDMwJSk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi5zaWRlbmF2LWhlYWRpbmcge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNzVlbTtcbn1cblxuLnNpZGVuYXYtc2VwYXJhdG9yIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogNGVtO1xuICAgIGhlaWdodDogMC4xNWVtO1xuICAgIG1hcmdpbjogMC41ZW0gMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRjb2xvci1ibHVlLCAzMCUpO1xufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2h0bWwvY3NzL3Nhc3MvcHVibGljL19zaWRlbmF2LnNjc3MiLCIucHJvZmlsZXMtd3JhcCB7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgbWFyZ2luOiAyZW0gYXV0byAwO1xuICAgIEBpbmNsdWRlIG1xKHRhYmxldHMpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBtYXgtd2lkdGg6IDYwZW07XG4gICAgfVxufVxuXG4ubGF3eWVyLWxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5sYXd5ZXItbGlzdF9pdGVtIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZmxleC1iYXNpczogOTAlO1xuICAgIHdpZHRoOiA5MCU7XG4gICAgbWFyZ2luOiAwIGF1dG8gMmVtO1xuICAgIEBpbmNsdWRlIG1xKHdpZGVfaGFuZGhlbGRzKSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDQ3JTtcbiAgICAgICAgd2lkdGg6IDQ3JTtcbiAgICAgICAgbWFyZ2luOiAwIDEuNzVlbSAyZW0gMDtcbiAgICAgICAgJjpudGgtb2YtdHlwZSgybikge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIG1xKHRhYmxldHMpIHtcbiAgICAgICAgZmxleC1iYXNpczogMzAuNzUlO1xuICAgICAgICB3aWR0aDogMzAuNzUlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAmOm50aC1vZi10eXBlKDJuKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuNzVlbTtcbiAgICAgICAgfVxuICAgICAgICAmOm50aC1vZi10eXBlKDNuKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgbXEod2lkZV90YWJsZXRzKSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDE3LjY1JTtcbiAgICAgICAgd2lkdGg6IDE3LjY1JTtcbiAgICAgICAgJjpudGgtb2YtdHlwZSgzbikge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxLjc1ZW07XG4gICAgICAgIH1cbiAgICAgICAgJjpudGgtb2YtdHlwZSg1bikge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIG1xKCRtYXgtd2lkdGgpIHtcbiAgICAgICAgZmxleC1iYXNpczogMTcuOTUlO1xuICAgICAgICB3aWR0aDogMTcuOTUlO1xuICAgIH1cbn1cblxuLmxhd3llcl9saXN0LWltZyB7XG4gICAgd2lkdGg6IDE4Ljc1ZW07XG4gICAgaGVpZ2h0OiAxOC43NWVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5wcm9maWxlLW5hdiB7XG4gICAgLmxhd3llcl9saXN0LWltZyB7XG4gICAgICAgIHdpZHRoOiAxMi41ZW07XG4gICAgICAgIGhlaWdodDogMTIuNWVtO1xuICAgIH1cbn1cblxuLmxhd3llcl9saXN0LWxpbmsge1xuICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxufVxuXG4ubGF3eWVyX2xpc3QtbmFtZSB7XG4gICAgbWFyZ2luLXRvcDogMC41ZW07XG59XG5cbi5sYXd5ZXItbmFtZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4yNWVtO1xufVxuXG4ubGF3eWVyLXRpdGxlIHtcbiAgICBtYXJnaW4tdG9wOiAwLjVlbTtcbn1cblxuLmxhd3llcl90aXRsZS1zZXBhcmF0b3Ige1xuICAgIHdpZHRoOiA2ZW07XG4gICAgaGVpZ2h0OiAwLjE1ZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRleHQtY29sb3I7XG59XG5cbi5sYXd5ZXItYmlvIHtcbiAgICBAaW5jbHVkZSBtcSh0YWJsZXRzKSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDU1JTtcbiAgICAgICAgd2lkdGg6IDU1JTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDRlbTtcbiAgICB9XG59XG5cbi50ZWFtX3Bob3RvLXdyYXAge1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMmVtO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkY29sb3ItbWFyb29uO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9odG1sL2Nzcy9zYXNzL3B1YmxpYy9fbGF3eWVyX3Byb2ZpbGVzLnNjc3MiLCIucHJhY3RpY2UtY29udGVudCB7XG4gICAgb3JkZXI6IDE7XG4gICAgbWF4LXdpZHRoOiAkbWF4LWNvbnRlbnQtd2lkdGg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgQGluY2x1ZGUgbXEodGFibGV0cykge1xuICAgICAgICBvcmRlcjogMjtcbiAgICB9XG59XG5cbi5wcmFjdGljZS13cmFwIHtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgcGFkZGluZzogM2VtIDFlbTtcbiAgICBAaW5jbHVkZSBtcSh0YWJsZXRzKSB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICB9XG4gICAgQGluY2x1ZGUgbXEoNzMuMjVlbSkge1xuXG4gICAgICAgIHBhZGRpbmc6IDNlbSAwO1xuICAgIH1cblxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vaHRtbC9jc3Mvc2Fzcy9wdWJsaWMvX3BfcHJhY3RpY2VfYXJlYXMuc2NzcyIsIi5zZXJ2aWNlcy1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgbWFyZ2luLXRvcDogM2VtO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMXMgZWFzZTtcbiAgICBhbmltYXRpb246IGZhZGV1cCAxLjVzIDE7XG5cbiAgICA+IGxpIHtcbiAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMWVtO1xuICAgICAgICBwYWRkaW5nOiAxLjVlbSAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci1tYXJvb247XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgQGluY2x1ZGUgbXEod2lkZV9oYW5kaGVsZHMpIHtcbiAgICAgICAgICAgIHdpZHRoOiA0NyU7XG4gICAgICAgICAgICAmOm50aC1vZi10eXBlKDJuKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OjA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbXEoNTVlbSkge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDIuMjVlbSAwO1xuXG4gICAgICAgICAgICAmOm50aC1vZi10eXBlKDJuKSB7XG4gICAgICAgICAgICAgICAgLy8gbWFyZ2luLXJpZ2h0OiAxLjI1ZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoM24pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6MDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGg0IHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTAuNDVlbTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCAzcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zbGlkZS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2l0aW9uOiBhbGwgLjNzIGN1YmljLWJlemllcigxLjAsIDAuNSwgMC44LCAxLjApOztcbn1cblxuLnNsaWRlLWVudGVyLCAuc2xpZGUtbGVhdmUtdG8ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpO1xuICBvcGFjaXR5OiAwO1xufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2h0bWwvY3NzL3Nhc3MvcHVibGljL19zZXJ2aWNlcy5zY3NzIiwiLnNlcnZpY2VzLW5hdiB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xufVxuLnNlcnZpY2VzX25hdi1pdGVtIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG5cbi5wcmFjdGljZV9hcmVhcy1uYXZfd3JhcCB7XG4gICAgLnNlcnZpY2VzLW5hdiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgfVxuICAgIC5zZXJ2aWNlc19uYXYtaXRlbSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnUG9wcGlucycsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZsZXgtYmFzaXM6IDgwJTtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMWVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2U7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci1tYXJvb247XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1xKHdpZGVfaGFuZGhlbGRzKSB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiA0OCU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgybikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6bGFzdC1vZi10eXBle1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICBAaW5jbHVkZSBtcSh0YWJsZXRzKSB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAzMiU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoMm4pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoM24pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtcSh3aWRlX3RhYmxldHMpIHtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDIzLjUlO1xuICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgzbikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtb2YtdHlwZSg0bikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBsaWdodGVuKCRjb2xvci1tYXJvb24sIDE1JSk7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4yKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgICAgIH1cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nOiAxZW07XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLW1hcm9vbjtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuc2lkZW5hdi1saW5rIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2h0bWwvY3NzL3Nhc3MvcHVibGljL19zZXJ2aWNlc19uYXYuc2NzcyIsIi5jYXJlZXItbGlzdCB7XG4gICAgbWFyZ2luLXRvcDogMmVtO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3ItbWFyb29uO1xufVxuXG4uY2FyZWVyLWxpc3RfaXRlbSB7XG4gICAgcGFkZGluZzogMmVtIDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItbWFyb29uO1xufVxuXG4uY2FyZWVyLWhlYWRpbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vaHRtbC9jc3Mvc2Fzcy9wdWJsaWMvX3BfY2FyZWVycy5zY3NzIiwiLmNvbnRhY3QtaW5mb3JtYXRpb24sIC5jb250YWN0LWZvcm1fd3JhcCB7XG4gICAgQGluY2x1ZGUgbXEodGFibGV0cykge1xuICAgICAgICBmbGV4LWJhc2lzOiA0OC41JTtcbiAgICAgICAgd2lkdGg6IDQ4LjUlO1xuICAgIH1cbn1cblxuLmNvbnRhY3QtaW5mb3JtYXRpb24ge1xuICAgIHBhZGRpbmctYm90dG9tOiAyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCByZ2JhKCRjb2xvci1ibHVlLCAwLjcpO1xuICAgIEBpbmNsdWRlIG1xKHRhYmxldHMpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0ZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG5cblxufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2h0bWwvY3NzL3Nhc3MvcHVibGljL19wX2NvbnRhY3Quc2NzcyJdLCJzb3VyY2VSb290IjoiIn0=*/