@charset "UTF-8";
/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in
 *    IE on Windows Phone and in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

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

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

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

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  -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; }

html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

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

.blackmyriad20, .book_shelf h2, .node-page .field-name-body .content-emphasize, .node-page .field-name-field-sidebar h4, .node-accordion-page .field-name-field-divided-section-title, .node-staff .field-name-field-display-name, #node-9125 .contact-heading, .product .product-details-section .product-description strong {
  font-family: "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 20px;
  color: #000; }

.blackmons20, .page-cart main #uc-cart-view-form table th {
  font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 20px;
  color: #000; }

.greyhel16, .node-accordion-page .field-name-field-divided-section-body, .node-staff, .page-cart main, .product .product-details-section .product-description, .product .product-details-section .product-details {
  font-family: 'helvetica';
  font-size: 1em;
  color: #676767; }

button, input[type="button"], input[type="reset"], input[type="submit"],
button {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  -webkit-font-smoothing: antialiased;
  background-color: #F76902;
  border-radius: 3px;
  border: none;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-family: "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1em;
  font-weight: 600;
  line-height: 1;
  padding: 0.75em 1em;
  text-decoration: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  vertical-align: middle;
  white-space: nowrap; }
  button:hover, button:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="reset"]:hover, input[type="reset"]:focus, input[type="submit"]:hover, input[type="submit"]:focus,
  button:hover,
  button:focus {
    background-color: #bd4c0a;
    color: #fff; }
  button:disabled, input[type="button"]:disabled, input[type="reset"]:disabled, input[type="submit"]:disabled,
  button:disabled {
    cursor: not-allowed;
    opacity: 0.5; }

a.button,
#footer a.button,
.view-taxonomy-term .views-submit-button,
.page-cart #edit-actions a {
  line-height: 25px;
  border: 2px solid #F76902;
  padding: 0.35em 0.7em 0.25em 2em;
  color: #F76902;
  position: relative;
  -webkit-transition: all 200ms ease;
  transition: all 200ms ease;
  border-radius: 2px;
  font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  display: inline-block; }
  a.button:before,
  #footer a.button:before,
  .view-taxonomy-term .views-submit-button:before,
  .page-cart #edit-actions a:before {
    content: "";
    height: 0;
    width: 0;
    border-bottom: 0.9375em solid #F76902;
    border-left: 0.9375em solid transparent;
    position: absolute;
    top: initial;
    right: initial;
    bottom: 0.6em;
    left: 0.35em;
    -webkit-transition: border-color 200ms ease;
    transition: border-color 200ms ease; }
  a.button:hover,
  #footer a.button:hover,
  .view-taxonomy-term .views-submit-button:hover,
  .page-cart #edit-actions a:hover {
    background: #F76902;
    color: #fff;
    -webkit-font-smoothing: subpixel-antialiased;
    -moz-osx-font-smoothing: auto; }
    a.button:hover:before,
    #footer a.button:hover:before,
    .view-taxonomy-term .views-submit-button:hover:before,
    .page-cart #edit-actions a:hover:before {
      height: 0;
      width: 0;
      border-bottom: 0.9375em solid #fff;
      border-left: 0.9375em solid transparent; }
  a.button input[type="submit"],
  #footer a.button input[type="submit"],
  .view-taxonomy-term .views-submit-button input[type="submit"],
  .page-cart #edit-actions a input[type="submit"] {
    -moz-appearance: none;
    background-color: transparent;
    border: medium none;
    border-radius: 0;
    color: #F76902;
    cursor: pointer;
    display: inline-block;
    font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 1em;
    font-weight: normal;
    line-height: 1;
    text-transform: uppercase;
    padding: 0;
    text-decoration: none;
    vertical-align: middle;
    white-space: nowrap;
    margin: 0; }
    a.button input[type="submit"]:hover,
    #footer a.button input[type="submit"]:hover,
    .view-taxonomy-term .views-submit-button input[type="submit"]:hover,
    .page-cart #edit-actions a input[type="submit"]:hover {
      color: #fff; }
    .views-submit-button a.button input[type="submit"], .views-submit-button
    #footer a.button input[type="submit"], .views-submit-button
    .view-taxonomy-term .views-submit-button input[type="submit"], .views-submit-button
    .page-cart #edit-actions a input[type="submit"] {
      margin-top: 40px; }
  .front main a.button:before,
  main .uc-cart-view-form a.button:before, .front main
  #footer a.button:before,
  main .uc-cart-view-form
  #footer a.button:before, .front main
  .view-taxonomy-term .views-submit-button:before,
  main .uc-cart-view-form
  .view-taxonomy-term .views-submit-button:before, .front main
  .page-cart #edit-actions a:before,
  main .uc-cart-view-form
  .page-cart #edit-actions a:before {
    -webkit-transform: none;
            transform: none;
    visibility: visible;
    background-color: transparent; }

main #uc-cart-view-form .form-actions a {
  margin: 0;
  text-transform: uppercase; }
  main #uc-cart-view-form .form-actions a:before {
    -webkit-transform: none;
            transform: none;
    visibility: visible;
    background-color: transparent; }

.view-taxonomy-term .views-submit-button {
  padding: 0.06em 0.7em 0 2em;
  margin-top: 38px;
  display: none; }
  .view-taxonomy-term .views-submit-button input[type="submit"] {
    margin-bottom: 2px; }
  .view-taxonomy-term .views-submit-button:before {
    top: 0.3em; }
  .view-taxonomy-term .views-submit-button:hover input {
    color: #fff; }

#footer a.button {
  display: block;
  width: 233px;
  margin-bottom: 10px; }
  @media (max-width: 515px) {
    #footer a.button {
      width: 100%; } }

a.button.button--no-arrow {
  padding: 7px 13px 5px 13px; }
  a.button.button--no-arrow:before {
    display: none; }

.homepage-button {
  font-size: 15px;
  font-weight: bold;
  padding: 0.5em 1.3em 0.4em 2.5em; }
  .homepage-button:before {
    bottom: 0.8em;
    left: 0.85em; }

fieldset {
  background-color: #e6e6e6;
  border: 1px solid #ccc;
  margin: 0 0 0.75em;
  padding: 1.5em; }

input,
label,
select {
  display: block;
  font-family: "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1em; }

label {
  font-weight: 600;
  margin-bottom: 0.375em; }
  label.required::after {
    content: "*"; }
  label abbr {
    display: none; }

input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="email"], input[type="month"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="time"], input[type="url"], input[type="week"], input:not([type]), textarea,
select[multiple=multiple],
textarea {
  background-color: #fff;
  border: 1px solid #ccc;
  border-radius: 3px;
  -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06);
          box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-family: "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1em;
  margin-bottom: 0.75em;
  padding: 0.5em;
  -webkit-transition: border-color;
  transition: border-color;
  width: 100%; }
  input[type="color"]:hover, input[type="date"]:hover, input[type="datetime"]:hover, input[type="datetime-local"]:hover, input[type="email"]:hover, input[type="month"]:hover, input[type="number"]:hover, input[type="password"]:hover, input[type="search"]:hover, input[type="tel"]:hover, input[type="text"]:hover, input[type="time"]:hover, input[type="url"]:hover, input[type="week"]:hover, input:not([type]):hover, textarea:hover,
  select[multiple=multiple]:hover,
  textarea:hover {
    border-color: #b3b3b3; }
  input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="email"]:focus, input[type="month"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="time"]:focus, input[type="url"]:focus, input[type="week"]:focus, input:not([type]):focus, textarea:focus,
  select[multiple=multiple]:focus,
  textarea:focus {
    border-color: #F76902;
    -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 5px rgba(238, 95, 13, 0.7);
            box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 5px rgba(238, 95, 13, 0.7);
    outline: none; }

textarea {
  resize: vertical; }

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

input[type="checkbox"],
input[type="radio"] {
  display: inline;
  margin-right: 0.375em; }

input[type="file"] {
  padding-bottom: 0.75em;
  width: 100%; }

select {
  margin-bottom: 1.5em;
  max-width: 100%;
  width: auto; }

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

dl {
  margin-bottom: 0.75em; }
  dl dt {
    font-weight: bold;
    margin-top: 0.75em; }
  dl dd {
    margin: 0; }

table {
  -webkit-font-feature-settings: "kern", "liga", "tnum";
          font-feature-settings: "kern", "liga", "tnum";
  border-collapse: collapse;
  margin: 0.75em 0;
  table-layout: fixed;
  width: 100%; }

th {
  border-bottom: 1px solid #a6a6a6;
  font-weight: 600;
  padding: 0.75em 0;
  text-align: left; }

td {
  border-bottom: 1px solid #ccc;
  padding: 0.75em 0; }

tr,
td,
th {
  vertical-align: middle; }

body {
  -webkit-font-feature-settings: "kern", "liga", "pnum";
          font-feature-settings: "kern", "liga", "pnum";
  -webkit-font-smoothing: antialiased;
  color: #000;
  font-family: "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1em;
  line-height: 1.5; }

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1em;
  line-height: 1.2;
  margin: 0 0 0.75em; }

p {
  margin: 0 0 0.75em; }

a {
  color: #F76902;
  text-decoration: none; }
  main a, a span.underline-on-hover, .footer-right a {
    position: relative;
    text-decoration: none; }
    main a:before, a span.underline-on-hover:before, .footer-right a:before {
      content: "";
      position: absolute;
      width: 100%;
      height: 1px;
      bottom: -1px;
      left: 0;
      background-color: #F76902;
      visibility: hidden;
      -webkit-transform: scaleX(0);
              transform: scaleX(0);
      -webkit-transition: all 150ms ease-in-out 0s;
      transition: all 150ms ease-in-out 0s; }
    main a:hover:before, a span.underline-on-hover:hover:before, .footer-right a:hover:before {
      visibility: visible;
      -webkit-transform: scaleX(1);
              transform: scaleX(1); }
  a:active, a:focus {
    outline: none; }
  a[href^="tel"] {
    color: inherit;
    cursor: default;
    text-decoration: none; }
    a[href^="tel"]:before {
      visibility: hidden !important; }
    a[href^="tel"]:hover {
      color: inherit;
      cursor: default;
      text-decoration: none; }

hr {
  border-bottom: 1px solid #ccc;
  border-left: none;
  border-right: none;
  border-top: none;
  margin: 1.5em 0; }

img,
picture {
  margin: 0;
  max-width: 100%; }

html {
  background: #000000;
  overflow-x: hidden; }

body {
  background: #fff;
  overflow-x: hidden; }

b, strong {
  font-weight: 600; }

.container {
  max-width: 75em;
  margin-left: auto;
  margin-right: auto;
  padding: 0 1.25em; }
  .container::after {
    clear: both;
    content: "";
    display: table; }

.color--orange {
  color: #F76902; }

.color--white {
  color: #fff; }

.color--black {
  color: #000; }

.color--dark-gray {
  color: #282828; }

.color--medium-gray {
  color: #666766; }

.color--light-gray {
  color: #ccc; }

#preload {
  display: none !important; }

#admin-menu {
  -webkit-font-smoothing: subpixel-antialiased;
  -moz-osx-font-smoothing: auto; }

ul.tabs.primary {
  border-bottom: 0;
  border-top: 1px solid #bbb;
  text-align: right;
  margin: 0; }
  ul.tabs.primary li.active a {
    border-bottom: 1px solid #bbb;
    border-top: 1px solid #fff; }
  ul.tabs.primary li a {
    border-style: none solid solid solid; }

.edit-node {
  position: absolute;
  left: 0;
  top: 0;
  width: 16px;
  height: 16px;
  display: none;
  z-index: 99; }
  .edit-node a {
    background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjE2Ny42MzggMTYuOTg0IDE2IDE2IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDE2Ny42MzggMTYuOTg0IDE2IDE2IiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjRjM2RjAxIiBkPSJNMTgxLjkyNiwyNy45MzNsLTMuMjUzLDMuMjcxbC04LjIzOS04LjI3OWwzLjI1NS0zLjI3MUwxODEuOTI2LDI3LjkzM3ogTTE2Ny45NjUsMjAuNDQ1bDEuNjIyLDEuNjNsMy4yNTUtMy4yNzFsLTEuMzktMS4zOTdjLTAuNTYzLTAuNTY0LTEuNDc0LTAuNTY0LTIuMDM1LDBsLTEuNDUxLDEuNDU5QzE2Ny41MywxOS4zMDIsMTY3LjUzLDIwLjAwNywxNjcuOTY1LDIwLjQ0NXogTTE4Mi44MDcsMjguODE5bC0zLjI1MywzLjI3MWwzLjYyNywwLjg4NGMwLjI2NywwLjA2NSwwLjUwNy0wLjE3NSwwLjQ0OC0wLjQ0M0wxODIuODA3LDI4LjgxOXoiLz48L3N2Zz4=");
    display: block;
    width: 16px;
    height: 16px;
    text-indent: -9999px;
    overflow: hidden; }

.row-container:hover .edit-node {
  display: block; }

.form-item, .form-actions {
  margin-top: 0;
  margin-bottom: 0; }

img {
  height: auto !important; }

button, input[type="button"], input[type="reset"], input[type="submit"],
button {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  -webkit-font-smoothing: antialiased;
  background-color: #F76902;
  border-radius: 3px;
  border: none;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-family: "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1em;
  font-weight: 600;
  line-height: 1;
  padding: 0.75em 1em;
  text-decoration: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  vertical-align: middle;
  white-space: nowrap; }
  button:hover, button:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="reset"]:hover, input[type="reset"]:focus, input[type="submit"]:hover, input[type="submit"]:focus,
  button:hover,
  button:focus {
    background-color: #bd4c0a;
    color: #fff; }
  button:disabled, input[type="button"]:disabled, input[type="reset"]:disabled, input[type="submit"]:disabled,
  button:disabled {
    cursor: not-allowed;
    opacity: 0.5; }

a.button,
#footer a.button,
.view-taxonomy-term .views-submit-button,
.page-cart #edit-actions a {
  line-height: 25px;
  border: 2px solid #F76902;
  padding: 0.35em 0.7em 0.25em 2em;
  color: #F76902;
  position: relative;
  -webkit-transition: all 200ms ease;
  transition: all 200ms ease;
  border-radius: 2px;
  font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  display: inline-block; }
  a.button:before,
  #footer a.button:before,
  .view-taxonomy-term .views-submit-button:before,
  .page-cart #edit-actions a:before {
    content: "";
    height: 0;
    width: 0;
    border-bottom: 0.9375em solid #F76902;
    border-left: 0.9375em solid transparent;
    position: absolute;
    top: initial;
    right: initial;
    bottom: 0.6em;
    left: 0.35em;
    -webkit-transition: border-color 200ms ease;
    transition: border-color 200ms ease; }
  a.button:hover,
  #footer a.button:hover,
  .view-taxonomy-term .views-submit-button:hover,
  .page-cart #edit-actions a:hover {
    background: #F76902;
    color: #fff;
    -webkit-font-smoothing: subpixel-antialiased;
    -moz-osx-font-smoothing: auto; }
    a.button:hover:before,
    #footer a.button:hover:before,
    .view-taxonomy-term .views-submit-button:hover:before,
    .page-cart #edit-actions a:hover:before {
      height: 0;
      width: 0;
      border-bottom: 0.9375em solid #fff;
      border-left: 0.9375em solid transparent; }
  a.button input[type="submit"],
  #footer a.button input[type="submit"],
  .view-taxonomy-term .views-submit-button input[type="submit"],
  .page-cart #edit-actions a input[type="submit"] {
    -moz-appearance: none;
    background-color: transparent;
    border: medium none;
    border-radius: 0;
    color: #F76902;
    cursor: pointer;
    display: inline-block;
    font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 1em;
    font-weight: normal;
    line-height: 1;
    text-transform: uppercase;
    padding: 0;
    text-decoration: none;
    vertical-align: middle;
    white-space: nowrap;
    margin: 0; }
    a.button input[type="submit"]:hover,
    #footer a.button input[type="submit"]:hover,
    .view-taxonomy-term .views-submit-button input[type="submit"]:hover,
    .page-cart #edit-actions a input[type="submit"]:hover {
      color: #fff; }
    .views-submit-button a.button input[type="submit"], .views-submit-button
    #footer a.button input[type="submit"], .views-submit-button
    .view-taxonomy-term .views-submit-button input[type="submit"], .views-submit-button
    .page-cart #edit-actions a input[type="submit"] {
      margin-top: 40px; }
  .front main a.button:before,
  main .uc-cart-view-form a.button:before, .front main
  #footer a.button:before,
  main .uc-cart-view-form
  #footer a.button:before, .front main
  .view-taxonomy-term .views-submit-button:before,
  main .uc-cart-view-form
  .view-taxonomy-term .views-submit-button:before, .front main
  .page-cart #edit-actions a:before,
  main .uc-cart-view-form
  .page-cart #edit-actions a:before {
    -webkit-transform: none;
            transform: none;
    visibility: visible;
    background-color: transparent; }

main #uc-cart-view-form .form-actions a {
  margin: 0;
  text-transform: uppercase; }
  main #uc-cart-view-form .form-actions a:before {
    -webkit-transform: none;
            transform: none;
    visibility: visible;
    background-color: transparent; }

.view-taxonomy-term .views-submit-button {
  padding: 0.06em 0.7em 0 2em;
  margin-top: 38px;
  display: none; }
  .view-taxonomy-term .views-submit-button input[type="submit"] {
    margin-bottom: 2px; }
  .view-taxonomy-term .views-submit-button:before {
    top: 0.3em; }
  .view-taxonomy-term .views-submit-button:hover input {
    color: #fff; }

#footer a.button {
  display: block;
  width: 233px;
  margin-bottom: 10px; }
  @media (max-width: 515px) {
    #footer a.button {
      width: 100%; } }

a.button.button--no-arrow {
  padding: 7px 13px 5px 13px; }
  a.button.button--no-arrow:before {
    display: none; }

.homepage-button {
  font-size: 15px;
  font-weight: bold;
  padding: 0.5em 1.3em 0.4em 2.5em; }
  .homepage-button:before {
    bottom: 0.8em;
    left: 0.85em; }

@media screen and (max-width: 1024px) {
  .slicknav_menu {
    display: none; } }

#identity-bar {
  background: #F76902;
  height: 52px;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  overflow: hidden;
  z-index: 9999; }
  @media (max-width: 979px) {
    #identity-bar {
      z-index: 1000; } }
  @media (min-width: 980px) {
    body.adminimal-menu #identity-bar {
      top: initial;
      left: initial;
      right: initial; } }
  #identity-bar #MobileCheck {
    display: none !important;
    content: "mobile"; }
    @media (min-width: 980px) {
      #identity-bar #MobileCheck {
        content: "desktop"; } }
  #identity-bar * {
    -webkit-box-sizing: border-box;
            box-sizing: border-box; }
  #identity-bar svg {
    max-height: 100%;
    fill: none;
    stroke: none; }
  #identity-bar .center {
    max-width: 75em;
    margin-left: auto;
    margin-right: auto;
    padding: 0 1.25em;
    overflow: hidden; }
    #identity-bar .center::after {
      clear: both;
      content: "";
      display: table; }
  #identity-bar .rit-logo {
    float: left;
    width: 370px;
    z-index: 9999; }
    #identity-bar .rit-logo img{
      margin-top: 8px; }
    @media screen and (max-width: 979px) {
      #identity-bar .rit-logo {
        width: 293px;
        overflow: hidden;
        margin: auto;
        position: absolute;
        left: 0;
        right: 0;
        top: 0; } }
  #identity-bar #rit-logo-rit {
    width: 93px; }
  #identity-bar #rit-logo-text {
    width: 270px; }
    @media screen and (max-width: 979px) {
      #identity-bar #rit-logo-text {
        display: none; } }
  #identity-bar #idbar-site-name {
    display: none; }
  #identity-bar .search-container {
    float: right;
    width: 160px;
    z-index: 99999; }
  #identity-bar .search-form {
    margin: 13px 0 0 0;
    position: relative;
    width: 160px;
    background: none;
    padding: 0; }
  #identity-bar .form-item {
    margin: 0; }
    #identity-bar .form-item input {
      border-radius: 12px;
      -moz-border-radius: 12px;
      -webkit-border-radius: 12px;
      padding: 7px 25px 3px 10px;
      border: none;
      -webkit-box-shadow: none;
              box-shadow: none;
      width: 100%;
      font: 11px/16px 'Helvetica', sans-serif;
      max-width: none;
      color: #676867; }
      #identity-bar .form-item input::-webkit-input-placeholder {
        color: #676867; }
      #identity-bar .form-item input:-moz-placeholder {
        /* Firefox 18- */
        color: #676867; }
      #identity-bar .form-item input::-moz-placeholder {
        /* Firefox 19+ */
        color: #676867; }
      #identity-bar .form-item input:-ms-input-placeholder {
        color: #676867; }
      #identity-bar .form-item input:focus {
        outline: 0; }
  #identity-bar #idbar-search-close-button {
    width: 17px;
    height: 17px;
    position: absolute;
    top: 0;
    bottom: 0;
    right: -5%;
    margin: auto 0;
    display: block;
    cursor: pointer;
    z-index: 999999;
    -webkit-transition: all 200ms ease-out;
    transition: all 200ms ease-out; }
    #identity-bar #idbar-search-close-button svg {
      width: 17px;
      height: 17px; }
  #identity-bar .form-actions {
    margin: 0;
    display: inline; }
    #identity-bar .form-actions input {
      position: absolute;
      top: 0;
      right: 10px;
      bottom: 0;
      margin: auto 0; }
  #identity-bar #idbar-search-button {
    display: none;
    width: 48px;
    height: 33px;
    position: absolute;
    right: 5px;
    top: 11px;
    padding-left: 5px;
    cursor: pointer;
    z-index: 20;
    background-size: 30px;
    -webkit-transition: all 200ms ease-out;
    transition: all 200ms ease-out;
    -webkit-box-sizing: border-box;
            box-sizing: border-box; }
    #identity-bar #idbar-search-button svg {
      max-width: 100%;
      fill: #fff;
      stroke: #fff;
      height: 30px; }
  #identity-bar #idbar-menu-button {
    -webkit-tap-highlight-color: transparent;
    width: 31px;
    height: 29px;
    position: absolute;
    top: 14px;
    z-index: 20;
    display: none;
    cursor: pointer; }
    #identity-bar #idbar-menu-button svg {
      max-width: 100%;
      height: 24px;
      fill: #fff; }
  #identity-bar .rit-logo, #identity-bar #idbar-site-name {
    -webkit-transition: top 400ms ease;
    transition: top 400ms ease; }

@media screen and (max-width: 979px) {
  #identity-bar #idbar-search-button {
    display: block; }
  #identity-bar #idbar-menu-button {
    display: block; }
  #identity-bar .center {
    padding: 0; }
  #identity-bar .rit-logo a {
    display: block; }
  #identity-bar .rit-logo img {
    width: auto;
    margin-top: 14px;
    height: 27px;
    overflow: hidden; }
  #identity-bar .search-container {
    float: none;
    width: 100%;
    position: absolute;
    top: 0;
    right: -100%;
    -webkit-transition: all 200ms ease-out;
    transition: all 200ms ease-out; }
  #identity-bar .search-form {
    width: auto;
    margin: 0; }
  #identity-bar .form-item input {
    border-radius: 0;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    height: 52px;
    font-size: 18px; }
  #identity-bar .form-actions input {
    display: none; }
  #identity-bar #idbar-site-name {
    width: 118px;
    font-size: 11px;
    text-transform: uppercase;
    margin: 0 auto;
    margin-top: 5px;
    top: 52px;
    position: absolute;
    left: 0;
    right: 0;
    display: block; }
    #identity-bar #idbar-site-name a {
      color: white; }
  #identity-bar #idbar-site-name img{
    margin-top:10px;
  }
}

body.ritbar-site-logo #identity-bar #idbar-site-name {
  top: 0; }

body.ritbar-site-logo #identity-bar .rit-logo {
  top: -52px; }

#idbar-search-close-button #icon-idbar-close-button-circle {
  fill: #dedede; }

#idbar-search-close-button #icon-idbar-close-button-x {
  fill: #6b6b6b;
  stroke: #6b6b6b; }

.idbar-new-menu-button {
  background: transparent;
  position: absolute;
  top: -1px;
  left: 0px;
  border-color: transparent;
  outline: none;
  -webkit-transition: 0.2s;
  transition: 0.2s; }
  .idbar-new-menu-button:hover, .idbar-new-menu-button:focus, .idbar-new-menu-button:visited {
    background: transparent; }

.idbar-new-menu-button span {
  position: relative;
  display: block;
  margin: auto;
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease; }

.idbar-new-menu-button span:after,
.idbar-new-menu-button span:before {
  content: "";
  position: absolute;
  left: 0;
  top: -9px;
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease; }

.idbar-new-menu-button span:after {
  top: 9px; }

.idbar-new-menu-button span:after,
.idbar-new-menu-button span:before,
.idbar-new-menu-button span {
  width: 30px;
  height: 4px;
  background-color: white; }

.idbar-new-menu-button span:before,
.idbar-new-menu-button span:after {
  -webkit-transition-duration: 0.2s, 0.2s;
          transition-duration: 0.2s, 0.2s;
  -webkit-transition-delay: 0.2s, 0s;
          transition-delay: 0.2s, 0s; }

.mobile-out .idbar-new-menu-button span {
  -webkit-transition: background .3s 0s ease;
  transition: background .3s 0s ease;
  background: transparent; }

.mobile-out .idbar-new-menu-button span:before,
.mobile-out .idbar-new-menu-button span:after {
  top: 0;
  -webkit-transition-delay: 0s, 0.2s;
  transition-delay: 0s, 0.2s; }

.mobile-out .idbar-new-menu-button span:before {
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg); }

.mobile-out .idbar-new-menu-button span:after {
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg); }

#idbar-menu-overlay {
  z-index: 800;
  display: none;
  position: fixed;
  top: 52px;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.7);
  overflow: hidden;
  height: 100%; }

#admin-menu {
  z-index: 999999; }

body.logged-in #header {
  top: 81px !important; }

body.fixed-header2.logged-in #header {
  top: 29px !important; }

body.fixed-header2.not-logged-in #header {
  top: 0px !important; }

@media (max-width: 979px) {
  #admin-menu {
    display: none; }
  body.admin-menu.adminimal-menu:before {
    height: 0px; } }

#header {
  background: #fff;
  position: fixed;
  width: 100%;
  top: 52px;
  height: 132px;
  z-index: 9999;
  -webkit-transition: all 400ms ease;
  transition: all 400ms ease; }
  @media (max-width: 979px) {
    #header {
      margin-top: 52px;
      height: 104px;
      position: initial; }
		#header .header-left img{
			margin: -10px;
		}
}
  #header .container, #header .header-left {
    height: 100%; }
  #header .fixed {
    background: #fff; }
    #header .fixed img {
      max-height: 96px; }
    @media (min-width: 980px) {
      #header .fixed {
        height: 132px;
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        -webkit-transition: top 500ms ease;
        transition: top 500ms ease; }
        #header .fixed img {
          -webkit-transition: max-height 500ms ease;
          transition: max-height 500ms ease; } }
  #header .header-left {
    padding-top: 30px;
    padding-bottom: 11px;
    -webkit-transition: padding 500ms ease;
    transition: padding 500ms ease; }
    @media screen and (min-width: 979px) {
      #header .header-left {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 31.76157%; }
        #header .header-left:last-child {
          margin-right: 0; } }
    @media (max-width: 979px) {
      #header .header-left {
        text-align: center;
        width: 100%; } }
    @media (max-width: 979px) {
      #header .header-left {
        padding-top: 15px;
        padding-bottom: 5px; } }
  #header .header-right {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 65.88078%;
    display: none; }
    #header .header-right:last-child {
      margin-right: 0; }
    @media screen and (min-width: 979px) {
      #header .header-right {
        display: block; } }
    @media (max-width: 979px) {
      #header .header-right {
        display: none; } }

@media (min-width: 980px) {
  body.fixed-header2 #header {
    top: 0px;
    -webkit-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.2);
            box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.2);
    height: 157px; }
  body.shrunk-header2 #header {
    height: 104px; }
    body.shrunk-header2 #header .fixed {
      height: 104px; }
      body.shrunk-header2 #header .fixed img {
        max-height: 75px; }
    body.shrunk-header2 #header .header-left {
      padding-top: 17px;
      padding-bottom: 17px; }
    body.shrunk-header2 #header ul {
      padding-top: 20px; }
      body.shrunk-header2 #header ul li {
        margin-top: -5px;
        -webkit-transition: all 400ms ease;
        transition: all 400ms ease; } }

#footer {
  background: #000;
  padding: 4.5em 0;
  padding-bottom: 0;
  color: #fff; }
  @media (max-width: 1025px) {
    #footer {
      padding-top: 2em; } }
  @media (max-width: 511px) {
    #footer {
      text-align: center;
      padding-top: 1.5em;
      padding-bottom: 1.5em; } }
  #footer a {
    color: white;
    text-decoration: underline; }
    #footer a:before {
      display: none; }
  @media screen and (min-width: 600px) {
    #footer .footer-left, #footer .footer-right {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 57.35098%; }
      #footer .footer-left:last-child, #footer .footer-right:last-child {
        margin-right: 0; } }
  @media screen and (min-width: 979px) {
    #footer .footer-left, #footer .footer-right {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 31.76157%; }
      #footer .footer-left:last-child, #footer .footer-right:last-child {
        margin-right: 0; } }
  @media screen and (min-width: 600px) {
    #footer .footer-right {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 40.29137%; }
      #footer .footer-right:last-child {
        margin-right: 0; } }
  @media screen and (min-width: 979px) {
    #footer .footer-right {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 31.76157%; }
      #footer .footer-right:last-child {
        margin-right: 0; } }
  #footer .footer-left svg {
    max-width: 100%;
    max-height: 72px;
    height: auto;
    width: 95px;
    clear: both;
    display: inline-block;
    vertical-align: bottom; }
  #footer .footer-left #twc-logo--footer {
    width: auto; }
  #footer .footer-left .twc-logo {
    margin-bottom: 25px; }
    @media (max-width: 511px) {
      #footer .footer-left .twc-logo {
        padding-bottom: 1.5em;
        border-bottom: 1px solid #666766; } }
  #footer .footer-left #twc-logo--footer {
    fill: #ccc; }
  #footer .footer-left .rit-info {
    height: 200px; }
  #footer .footer-left .footer--logo {
    text-decoration: none; }
  #footer .footer-left .rit-logo {
    display: inline-block; }
    @media (max-width: 600px) {
			#footer .footer-left .rit-info {
        height:100%; }
}
  #footer .footer-left #rit-logo--footer {
    fill: #666766;
    height: 1em;
    /*padding-top: 11px;*/
    margin-top: .8em; }
    @media (max-width: 511px) {
      #footer .footer-left #rit-logo--footer {
        padding: 0;
        margin: 0;
        width: 93px;
				margin-top: -2em!important;
			} }
  #footer .footer-left .button {
    text-decoration: none;
    text-transform: uppercase;
    padding: 0.3em 0.7em 0.3em 3em;
    font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 14px; }
#footer .rit-logo img{
	position:relative;
	top:10px;
}
  #footer .footer-left a.button::before {
    border: none; }
  #footer .footer-left .catalog {
    background-image: url(../img/catalog_icon.png);
    background-repeat: no-repeat;
    background-position: 12px center; }
  #footer .footer-left .catalog:hover {
    background-image: url(../img/catalog_icon_hover.png);
    background-repeat: no-repeat;
    background-position: 12px center; }
  #footer .footer-left .support {
    background-image: url(../img/support_icon.png);
    background-repeat: no-repeat;
    background-position: 12px center; }
  #footer .footer-left .support:hover {
    background-image: url(../img/support_icon_hover.png);
    background-repeat: no-repeat;
    background-position: 12px center; }
  #footer .footer-left .mailing {
    background-image: url(../img/mailing_icon.png);
    background-repeat: no-repeat;
    background-position: 12px center; }
  #footer .footer-left .mailing:hover {
    background-image: url(../img/mailing_icon_hover.png);
    background-repeat: no-repeat;
    background-position: 12px center; }
  #footer .footer-left p.copyright {
    font-size: 0.5625em;
    display: inline-block;
    vertical-align: bottom;
    /*@include max(511px) {
        padding-bottom: 25px;
        border-bottom: 1px solid $medium-gray;
      }*/ }
  #footer .footer-middle {
    display: none; }
    @media screen and (min-width: 979px) {
      #footer .footer-middle {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 31.76157%; }
        #footer .footer-middle:last-child {
          margin-right: 0; } }
  #footer .footer-right {
    line-height: 25px;
    font-size: 14px;
    padding-top: 13px; }
    #footer .footer-right h4 {
      font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
      font-size: 14px;
      line-height: 25px;
      color: white;
      text-transform: uppercase;
      margin-bottom: 0;
      font-weight: normal; }
    #footer .footer-right a {
      display: inline-block; }
    #footer .footer-right a.social {
      margin-right: 10px;
      display: inline-block;
      overflow: hidden;
      background-color: #282828;
      -webkit-transition: all 200ms ease;
      transition: all 200ms ease;
      height: 29px;
      width: 30px;
      background-clip: padding-box;
      background-repeat: no-repeat;
      box-sizing: border-box;
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box; }
      #footer .footer-right a.social img {
        height: 29px;
        width: 30px; }
      #footer .footer-right a.social:hover {
        background-color: #dedede;
        border-color: #dedede; }
      #footer .footer-right a.social[href*="facebook"] {
        background-image: url(http://library.rit.edu/sites/library.rit.edu/themes/library/assets/dist/img/icons/social/facebook-icon.png);
        height: 29px;
				background-size: 100%;
        width: 30px; }
      #footer .footer-right a.social[href*="twitter"] {
        background-image: url(http://library.rit.edu/sites/library.rit.edu/themes/library/assets/dist/img/icons/social/twitter-icon.png);
        height: 29px;
				background-size: 100%;
        width: 30px; }
      #footer .footer-right a.social[href*="pinterest"] {
        background-image: url(http://library.rit.edu/sites/library.rit.edu/themes/library/assets/dist/img/icons/social/pinterest-icon.png);
        height: 29px;
				background-size: 100%;
        width: 30px; }
      #footer .footer-right a.social[href*="instagram"] {
        background-image: url(http://library.rit.edu/sites/library.rit.edu/themes/library/assets/dist/img/icons/social/instagram-icon.png);
        height: 29px;
				background-size: 100%;
        width: 30px; }
  #footer .contact-info--footer {
    margin-bottom: 30px; }
  #footer .footer-partners-containter {
    background: #000;
    padding: 40px 0 200px; }
    #footer .footer-partners-containter h4 {
      font-family: "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
      color: white;
      font-size: 14px;
      font-weight: normal;
      text-transform: uppercase;
      opacity: .4; }
      @media (max-width: 580px) {
        #footer .footer-partners-containter h4 {
          text-align: center; } }
    #footer .footer-partners-containter .partner-link {
      display: inline-block;
      width: 24.6%;
      vertical-align: middle;
      text-align: center; }
      @media (max-width: 915px) {
        #footer .footer-partners-containter .partner-link {
          width: 49%;
          margin-bottom: 20px; } }
      @media (max-width: 580px) {
        #footer .footer-partners-containter .partner-link {
          width: 100%; } }

#banner {
  /*margin-bottom: em(50);*/ }
  #banner .container {
    text-align: center; }
    @media (max-width: 1200px) {
      #banner .container {
        padding-left: 0;
        padding-right: 0; } }
  #banner .banner {
    width: 100%;
    max-height: 450px;
    position: relative; }
    #banner .banner .slides li {
      z-index: 1; }
    #banner .banner.banner--slideshow {
      overflow: hidden; }
  #banner .banner--single img {
    display: inline; }
  @media (max-height: 800px) {
    #banner {
      max-height: 400px;
      overflow: hidden; } }
  @media (max-height: 650px) {
    #banner {
      max-height: 200px;
      overflow: hidden; } }

.backtotop {
  padding: 7px;
  width: 44px;
  height: 44px;
  display: block;
  position: fixed;
  z-index: 103;
  bottom: -50px;
  right: 20px;
  -webkit-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
  cursor: pointer;
  background-color: rgba(241, 111, 0, 0.6);
  background-image: url("../img/back-to-top.png");
  background-position: center center;
  background-repeat: no-repeat;
  border-radius: 50%; }

.backtotop.shown {
  bottom: 14px; }

#main-menu--footer ul {
  max-width: 300px; }

#main-menu--footer li {
  position: relative;
  border-bottom: 1px solid #313131;
  list-style-type: none;
  list-style-image: none;
  padding: 0;
  margin: 0; }
  #main-menu--footer li:after {
    content: "";
    height: 0;
    width: 0;
    border-bottom: 15px solid transparent;
    border-left: 15px solid transparent;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: initial;
    margin: auto 0;
    -webkit-transition: border-color 200ms ease;
    transition: border-color 200ms ease; }
  #main-menu--footer li:hover:after {
    height: 0;
    width: 0;
    border-bottom: 15px solid #F76902;
    border-left: 15px solid transparent; }
  #main-menu--footer li.active-trail a {
    color: #F76902; }
  #main-menu--footer li.active-trail:after {
    height: 0;
    width: 0;
    border-bottom: 15px solid #F76902;
    border-left: 15px solid transparent; }
  #main-menu--footer li a {
    color: white;
    font-size: 14px;
    text-transform: uppercase;
    font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    text-decoration: none;
    line-height: 50px;
    display: block;
    -webkit-transition: color 200ms ease;
    transition: color 200ms ease; }
    #main-menu--footer li a:hover {
      color: #F76902; }

#main-menu--footer .menu-mlid-4525 {
  display: none; }

#slideshow, #carousel {
  /*height:600px;*/
  margin-bottom: 90px;
  margin-top: 184px; }
  @media (max-width: 1635px) {
    #slideshow, #carousel {
      height: auto;
      margin-bottom: 20px; } }
  @media (max-width: 979px) {
    #slideshow, #carousel {
      margin-top: 0; } }

.featured-story-carousel {
  max-height: 595px;
  min-height: 204px;
  overflow-y: hidden;
  max-width: 2000px;
  margin-left: auto;
  margin-right: auto;
  font-size: 1em;
  -webkit-transition: all 200ms ease-in-out 0s;
  transition: all 200ms ease-in-out 0s; }
  .featured-story-carousel::after {
    clear: both;
    content: "";
    display: table; }
  .featured-story-carousel .slide {
    position: absolute; }
    .featured-story-carousel .slide.slick-slide {
      position: relative; }
  .featured-story-carousel .headline {
    position: absolute;
    left: 50%;
    top: 20%;
    color: #fff;
    font-size: 36px;
    line-height: 1.25;
    padding-right: .5em;
    text-shadow: 1px 2px rgba(0, 0, 0, 0.4);
    width: 32%;
    font-weight: normal;
    font-family: "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; }
    @media (max-width: 1160px) {
      .featured-story-carousel .headline div {
        display: inline; } }
    @media (max-width: 960px) {
      .featured-story-carousel .headline div {
        display: block; } }
    @media (max-width: 1785px) {
      .featured-story-carousel .headline {
        font-size: 1.75em; } }
    @media (max-width: 1635px) {
      .featured-story-carousel .headline {
        font-size: 1.5em; } }
    @media (max-width: 1150px) {
      .featured-story-carousel .headline {
        font-size: 1.25em; } }
    @media (max-width: 1000px) {
      .featured-story-carousel .headline {
        width: 50%;
        font-size: 1.2em; } }
    @media (max-width: 750px) {
      .featured-story-carousel .headline {
        font-size: 1em; } }
    @media (max-width: 550px) {
      .featured-story-carousel .headline {
        font-size: .9em; } }
    @media (max-width: 479px) {
      .featured-story-carousel .headline {
        font-size: .8em;
        left: 45%;
        top: 10%; } }
  .featured-story-carousel .blurb {
    position: absolute;
    left: 50%;
    top: 44%;
    color: #fff;
    font-size: 1.3em;
    line-height: 1.5;
    width: 23em;
    text-shadow: 1px 2px rgba(0, 0, 0, 0.4); }
    @media (max-width: 1635px) {
      .featured-story-carousel .blurb {
        top: 56%;
        font-size: 1em; } }
    @media (max-width: 960px) {
      .featured-story-carousel .blurb {
        display: none; } }
    @media (min-width: 961px) and (max-width: 1023px) {
      .featured-story-carousel .blurb {
        top: 48%; } }
  .featured-story-carousel .read-more {
    position: absolute;
    left: 50%;
    top: 67%;
    font-size: 1.15em;
    display: none; }
    .featured-story-carousel .read-more a {
      text-transform: uppercase;
      font-size: .9em;
      text-shadow: 0 0 9px rgba(0, 0, 0, 0.3); }
    @media (min-width: 961px) {
      .featured-story-carousel .read-more {
        top: 85%; } }
    @media (min-width: 1024px) {
      .featured-story-carousel .read-more {
        top: 77%; } }
    @media (min-width: 1250px) {
      .featured-story-carousel .read-more {
        top: 72%; } }
    @media (max-width: 880px) {
      .featured-story-carousel .read-more {
        top: initial;
        bottom: 13%; } }
    @media (max-width: 479px) {
      .featured-story-carousel .read-more {
        left: 45%; } }
  .featured-story-carousel .buy-more {
    /*margin-left: 170px;*/
    display: block; }
    @media (max-width: 900px) {
      .featured-story-carousel .buy-more {
        display: block; } }
  @media (max-width: 685px) {
    .featured-story-carousel .slide {
      min-height: 204px;
      position: relative;
      background-position: center;
      background-size: cover; }
    .featured-story-carousel .photo {
      opacity: 0 !important; } }

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

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

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

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

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

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

.slick-dots {
  position: absolute;
  bottom: 0;
  top: initial;
  left: 0;
  right: 0;
  margin: 0 auto;
  text-align: right;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 20px;
  max-width: 75em;
  padding: 0 0.809em; }
  @media (max-width: 960px) {
    .slick-dots {
      margin-bottom: 0px; } }
  .slick-dots li {
    display: inline-block;
    margin: 0 4px;
    padding: 0; }
    .slick-dots li button {
      display: block;
      width: 15px;
      height: 15px;
      text-indent: -9999px;
      overflow: hidden;
      position: relative;
      background: transparent;
      padding: 0;
      margin: 0;
      border-radius: 0; }
      .slick-dots li button:focus {
        outline: none; }
      .slick-dots li button:before {
        content: "";
        height: 0;
        width: 0;
        border-bottom: 15px solid #fff;
        border-left: 15px solid transparent;
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0; }
    .slick-dots li.slick-active button:before {
      height: 0;
      width: 0;
      border-bottom: 15px solid #F76902;
      border-left: 15px solid transparent; }

.slick-slide {
  outline: none; }

.slick-arrow {
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 1;
  margin: auto;
  width: 22px;
  height: 45px;
  fill: #c0c0c0;
  cursor: pointer; }
  .slick-arrow.slick-prev {
    left: 0;
    right: initial; }
  .slick-arrow.slick-next {
    left: initial;
    right: 0;
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg); }

.services--slider {
  max-height: 700px;
  overflow: hidden; }
  @media (max-width: 849px) {
    .services--slider {
      max-height: 1050px; } }

.more-stories {
  position: relative;
  min-height: 350px; }
  .more-stories h3 {
    text-transform: uppercase; }
  .more-stories .slick-dots {
    top: 0;
    bottom: initial;
    left: 115px;
    text-align: left; }
    .more-stories .slick-dots li button:before {
      height: 0;
      width: 0;
      border-bottom: 15px solid #666766;
      border-left: 15px solid transparent; }
    .more-stories .slick-dots li.slick-active button:before {
      height: 0;
      width: 0;
      border-bottom: 15px solid #F76902;
      border-left: 15px solid transparent; }

.more-stories-slider {
  max-height: 320px;
  overflow: hidden; }
  .more-stories-slider .views-row {
    margin-top: 50px; }
    .more-stories-slider .views-row::after {
      clear: both;
      content: "";
      display: table; }
  .more-stories-slider .sidebar--right {
    padding-left: 14px; }
  .more-stories-slider .title {
    line-height: 23px; }
    .more-stories-slider .title a {
      color: #000;
      font-size: 20px; }
      .more-stories-slider .title a:before {
        background: transparent; }
  .more-stories-slider .blurb {
    line-height: 17px;
    font-size: 13px;
    color: #666766; }

.book_shelf {
  background-image: url("../img/shelf.png");
  background-repeat: no-repeat;
  background-position: bottom center;
  background-size: contain;
  padding-bottom: 65px;
  position: relative;
  margin-bottom: 120px; }
  @media (max-width: 1150px) {
    .book_shelf {
      margin-bottom: 60px; } }
  @media (max-width: 950px) {
    .book_shelf {
      background-image: none;
      margin-bottom: 20px; } }
  @media (max-width: 510px) {
    .book_shelf {
      padding-bottom: 20px; } }
  .book_shelf h2 {
    font-size: 2.125em;
    border-bottom: solid #eaeaea 2px;
    padding-bottom: 15px;
    margin-bottom: 55px;
    font-weight: normal; }
    @media (max-width: 950px) {
      .book_shelf h2 {
        margin-bottom: 15px; } }
  .book_shelf .view-footer {
    display: inline-block;
    position: absolute;
    right: 0px;
    top: 0;
    text-transform: uppercase; }
    @media (max-width: 950px) {
      .book_shelf .view-footer {
        position: relative;
        margin-top: 30px; } }
  .book_shelf .views-slideshow-cycle-main-frame {
    height: 200px !important;
    margin: 0 23px; }
    @media (max-width: 470px) {
      .book_shelf .views-slideshow-cycle-main-frame {
        height: 125px !important; } }
  .book_shelf .views-slideshow-cycle-main-frame-row {
    width: 100%;
    max-width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box; }
  .book_shelf .views-slideshow-cycle-main-frame-row[style] {
    width: 100% !important; }
    @media (max-width: 510px) {
      .book_shelf .views-slideshow-cycle-main-frame-row[style] {
        height: 150px !important; } }
  .book_shelf .views-slideshow-cycle-main-frame-row-item {
    display: inline-block;
    width: 24.6%;
    text-align: center; }
    .book_shelf .views-slideshow-cycle-main-frame-row-item a:before {
      display: none; }
    .book_shelf .views-slideshow-cycle-main-frame-row-item img {
      border: solid #eaeaea 1px; }
    @media (max-width: 900px) {
      .book_shelf .views-slideshow-cycle-main-frame-row-item {
        width: 24%; }
        .book_shelf .views-slideshow-cycle-main-frame-row-item img {
          max-width: 85%; } }
    @media (max-width: 420px) {
      .book_shelf .views-slideshow-cycle-main-frame-row-item {
        width: 23%; }
        .book_shelf .views-slideshow-cycle-main-frame-row-item img {
          max-width: 95%; } }
  .book_shelf .view-content {
    position: relative; }

.views-slideshow-controls-bottom {
  position: absolute;
  top: 50%;
  width: 100%;
  /*height:45px;*/
  z-index: 50; }
  @media (max-width: 510px) {
    .views-slideshow-controls-bottom {
      top: 22%; } }
  .views-slideshow-controls-bottom .views-slideshow-controls-text-pause {
    display: none; }
  .views-slideshow-controls-bottom .views-slideshow-controls-text-previous {
    width: 23px;
    height: 45px;
    background-image: url("../img/shelf-left-arrow.png");
    background-repeat: no-repeat;
    background-position: center center;
    text-indent: -9999px;
    display: inline-block;
    position: absolute;
    left: 0px; }
    .views-slideshow-controls-bottom .views-slideshow-controls-text-previous:hover {
      background-image: url("../img/shelf-left-arrow--hover.png"); }
  .views-slideshow-controls-bottom .views-slideshow-controls-text-next {
    width: 23px;
    height: 45px;
    background-image: url("../img/shelf-right-arrow.png");
    background-repeat: no-repeat;
    background-position: center center;
    text-indent: -9999px;
    display: inline-block;
    position: absolute;
    right: 0px; }
    .views-slideshow-controls-bottom .views-slideshow-controls-text-next:hover {
      background-image: url("../img/shelf-right-arrow--hover.png"); }

#quick-links--header {
  font-size: 0.75em;
  text-transform: uppercase;
  position: relative; }
  #quick-links--header::after {
    clear: both;
    content: "";
    display: table; }
  #quick-links--header ul {
    float: right;
    margin-top: 25px; }
  .shrunk-header2 #quick-links--header ul {
    margin-top: 0; }
  #quick-links--header li {
    display: inline-block; }
    #quick-links--header li.quick-links-search-catalog > a {
      background-image: url(../img/search-catalog-icon.png); }
      #quick-links--header li.quick-links-search-catalog > a:before, #quick-links--header li.quick-links-search-catalog > a:hover, #quick-links--header li.quick-links-search-catalog > a.active, #quick-links--header li.quick-links-search-catalog > a.active-trail {
        background-image: url(../img/search-catalog-icon--hover.png); }
    #quick-links--header li.quick-links-mail a {
      display: none; }
    #quick-links--header li.quick-links-my-account a {
      background-image: url(../img/my-account-icon.png); }
      #quick-links--header li.quick-links-my-account a:before, #quick-links--header li.quick-links-my-account a:hover, #quick-links--header li.quick-links-my-account a.active, #quick-links--header li.quick-links-my-account a.active-trail {
        background-image: url(../img/my-account-icon--hover.png); }
    #quick-links--header li.quick-links-cart a {
      background-image: url(../img/cart-icon.png); }
      #quick-links--header li.quick-links-cart a:before, #quick-links--header li.quick-links-cart a:hover, #quick-links--header li.quick-links-cart a.active, #quick-links--header li.quick-links-cart a.active-trail {
        background-image: url(../img/cart-icon--hover.png); }
    #quick-links--header li.quick-links-support-us a {
      background-image: url(../img/gift-icon.png); }
      #quick-links--header li.quick-links-support-us a:before, #quick-links--header li.quick-links-support-us a:hover, #quick-links--header li.quick-links-support-us a.active, #quick-links--header li.quick-links-support-us a.active-trail {
        background-image: url(../img/gift-icon--hover.png); }
  #quick-links--header a {
    color: #878787;
    margin-left: 25px;
    cursor: pointer;
    font-family: "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; }
    #quick-links--header a.active span, #quick-links--header a.active-trail span {
      /*border-bottom: 2px solid $rit-orange;*/ }
    #quick-links--header a.active, #quick-links--header a.active-trail, #quick-links--header a:hover, .page-user .quick-links-my-account #quick-links--header a {
      color: #000; }
  .page-user #quick-links--header .quick-links-my-account a {
    color: #000;
    background-image: url(../img/my-account-icon--hover.png); }

.quick-links ul {
  margin-left: 0; }

.quick-links li {
  list-style: none;
  padding: 0;
  margin: 0; }

.quick-links a {
  padding: 4px 0 4px 32px;
  background-position: left 2px;
  background-repeat: no-repeat;
  -webkit-transition-property: color, background;
  transition-property: color, background;
  display: block; }
  .quick-links a:before {
    display: none; }

.quick-links .contextual-links-wrapper {
  display: none !important; }

#quick-links--footer a {
  text-decoration: none; }

#quick-links--footer li.quick-links-about a {
  background-image: url(../img/about-icon--footer.png); }
  #quick-links--footer li.quick-links-about a:before, #quick-links--footer li.quick-links-about a:hover, #quick-links--footer li.quick-links-about a.active, #quick-links--footer li.quick-links-about a.active-trail {
    background-image: url(../img/about-icon--hover.png); }

#quick-links--footer li.quick-links-mail a {
  background-image: url(../img/email-icon--footer.png); }
  #quick-links--footer li.quick-links-mail a:before, #quick-links--footer li.quick-links-mail a:hover, #quick-links--footer li.quick-links-mail a.active, #quick-links--footer li.quick-links-mail a.active-trail {
    background-image: url(../img/email-icon--hover.png); }

#quick-links--footer li.quick-links-staff-directory a {
  background-image: url(../img/staff-icon--footer.png); }
  #quick-links--footer li.quick-links-staff-directory a:before, #quick-links--footer li.quick-links-staff-directory a:hover, #quick-links--footer li.quick-links-staff-directory a.active, #quick-links--footer li.quick-links-staff-directory a.active-trail {
    background-image: url(../img/staff-icon--hover.png); }

#quick-links--footer li.quick-links-maps a {
  background-image: url(../img/maps-icon--footer.png); }
  #quick-links--footer li.quick-links-maps a:before, #quick-links--footer li.quick-links-maps a:hover, #quick-links--footer li.quick-links-maps a.active, #quick-links--footer li.quick-links-maps a.active-trail {
    background-image: url(../img/maps-icon--hover.png); }

#quick-links--footer li.quick-links-support-us a {
  background-image: url(../img/gift-icon--footer.png); }
  #quick-links--footer li.quick-links-support-us a:before, #quick-links--footer li.quick-links-support-us a:hover, #quick-links--footer li.quick-links-support-us a.active, #quick-links--footer li.quick-links-support-us a.active-trail {
    background-image: url(../img/gift-icon--hover.png); }

@media (max-width: 511px) {
  #quick-links--footer {
    display: none; } }

.quick-links-search-catalog {
  position: relative; }

.quick-search {
  position: absolute;
  /*margin-top: 18px;*/
  top: -7px;
  width: 340px;
  z-index: 100;
  height: 35px;
  left: -290px;
  overflow-x: hidden; }
  .shrunk-header .quick-search {
    margin-top: 2px; }
  .quick-search form {
    position: relative;
    left: 340px;
    margin-bottom: 0;
    -webkit-transition: all .6s ease-in-out;
    transition: all .6s ease-in-out; }
  #block-menu-block-5 .quick-search form {
    display: none; }
  .quick-search .form-text {
    display: inline-block;
    width: 305px;
    height: 35px;
    border-radius: 0; }
    .quick-search .form-text label {
      display: none; }
  .quick-search .form-actions, .quick-search .form-item {
    display: inline-block;
    float: left;
    vertical-align: text-top; }
    .quick-search .form-actions .form-text, .quick-search .form-item .form-text {
      margin-bottom: 0; }
    .quick-search .form-actions .form-submit, .quick-search .form-item .form-submit {
      height: 35px;
      width: 35px; }
    .quick-search .form-actions .ui-autocomplete, .quick-search .form-item .ui-autocomplete {
      cursor: default;
      left: 0;
      position: relative;
      top: 0; }
  .quick-search .form-actions {
    position: absolute;
    right: 0; }
  .quick-search.show {
    overflow-y: visible;
    height: auto;
    min-height: 35px; }
    .quick-search.show form {
      left: 0px; }
  .quick-search.show-mobile {
    overflow-y: visible;
    height: auto;
    min-height: 35px;
    left: 0;
    top: 0;
    position: relative;
    max-width: 100%; }
    .quick-search.show-mobile form {
      left: 0px;
      max-width: 100%; }

#block-menu-block-5 .quick-search.show-mobile form {
  display: block; }

#title-bar {
  /*display: none;*/
  height: 118px;
  margin-top: 184px;
  background: #eaeaea; }
  @media (max-width: 979px) {
    #title-bar {
      margin-top: 0; } }
  @media (max-width: 600px) {
    #title-bar {
      height: auto; } }
  #title-bar .title-bar--left {
    font-size: 1em;
    font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    text-transform: uppercase;
    padding-top: 45px;
    padding-bottom: 10px;
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 65.88078%; }
    #title-bar .title-bar--left:last-child {
      margin-right: 0; }
    @media (max-width: 600px) {
      #title-bar .title-bar--left {
        padding-top: 25px;
        padding-bottom: 5px;
        width: 100%; } }
    #title-bar .title-bar--left, #title-bar .title-bar--left a {
      color: #666766; }
    #title-bar .title-bar--left .breadcrumb {
      display: inline-block;
      letter-spacing: -.5px; }
    #title-bar .title-bar--left h1#page-title {
      text-transform: none;
      font-family: "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
      color: #000;
      display: inline-block;
      font-size: 1.5em;
      font-weight: 600; }
  #title-bar .title-bar--right {
    height: 118px;
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 31.76157%; }
    #title-bar .title-bar--right:last-child {
      margin-right: 0; }
    @media (max-width: 600px) {
      #title-bar .title-bar--right {
        display: none; } }
    #title-bar .title-bar--right img {
      max-width: 118px;
      max-height: 117px;
      display: block;
      float: right;
      height: 100%;
      position: relative;
      top: 50%;
      -webkit-transform: translateY(-50%);
              transform: translateY(-50%); }

.uc-product-node #title-bar .title-bar--left {
  width: 100%; }

.uc-product-node #title-bar .title-bar--right {
  display: none; }

.product-details-section {
  padding-top: 60px; }
  .product-details-section #tabs a:before {
    display: none; }
  .product-details-section #tabs li {
    display: inline-block; }
  .product-details-section #tabs .ui-tabs-anchor {
    border: solid #979495 2px;
    display: inline-block;
    padding: 0 45px;
    background-color: transparent;
    font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    text-transform: uppercase;
    font-size: 1em;
    color: #979495;
    height: 40px;
    line-height: 40px;
    font-weight: bold; }
  .product-details-section #tabs .ui-state-active .ui-tabs-anchor {
    color: #fff;
    background-color: #F76902;
    border-color: #F76902; }
  .product-details-section #tabs .ui-tabs-panel {
    padding: 70px 0; }
    .product-details-section #tabs .ui-tabs-panel h1 {
      font-size: 2.125em;
      color: #000;
      border-bottom: solid #eaeaea 2px;
      padding-bottom: 20px;
      margin-bottom: 55px;
      font-weight: normal; }
    .product-details-section #tabs .ui-tabs-panel .product-description {
      width: 69%;
      padding-right: 75px;
      display: inline-block;
      vertical-align: text-top; }
    .product-details-section #tabs .ui-tabs-panel .product-details {
      width: 30%;
      display: inline-block;
      vertical-align: text-top; }
    @media (max-width: 725px) {
      .product-details-section #tabs .ui-tabs-panel .product-description {
        width: 100%;
        padding-right: 0; }
      .product-details-section #tabs .ui-tabs-panel .product-details {
        width: 100%;
        margin-top: 20px; } }
  @media (max-width: 900px) {
    .product-details-section #tabs li {
      width: 49%;
      margin-bottom: 10px; }
    .product-details-section #tabs .ui-tabs-anchor {
      width: 100%; } }
  @media (max-width: 600px) {
    .product-details-section #tabs li {
      width: 100%; } }

ul.tabs.primary li a {
  border: solid #979495 2px;
  display: inline-block;
  padding: 0 45px;
  background-color: transparent;
  font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  text-transform: uppercase;
  font-size: 1em;
  color: #979495;
  height: 40px;
  line-height: 40px;
  font-weight: bold; }

ul.tabs.primary li.active a {
  border: solid #F76902 2px; }

ul.tabs.primary li a:hover,
ul.tabs.primary li a.active {
  color: #fff;
  background-color: #F76902;
  border-color: #F76902; }

.toboggan-unified #login-links {
  /*a{

		border: solid $rit_orange 2px;

	}*/ }
  .toboggan-unified #login-links a {
    border: solid #979495 2px;
    display: inline-block;
    padding: 0 45px;
    background-color: transparent;
    font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    text-transform: uppercase;
    font-size: 16px;
    color: #979495;
    height: 40px;
    line-height: 40px;
    font-weight: bold;
    display: inline-block; }
  .toboggan-unified #login-links a:hover,
  .toboggan-unified #login-links a.lt-active,
  .toboggan-unified #login-links a.lt-active:hover {
    color: #fff;
    background-color: #F76902;
    border-color: #F76902; }

#sb-container {
  z-index: 10000; }

.page-user main {
  padding-top: 55px;
  padding-bottom: 130px; }
  @media (max-width: 980px) {
    .page-user main {
      padding-top: 25px;
      padding-bottom: 30px; } }
  .page-user main #user-login #edit-cutomtext,
  .page-user main #user-pass #edit-cutomtext,
  .page-user main #user-register-form #edit-cutomtext {
    display: none; }
  .page-user main #user-login input[type="submit"],
  .page-user main #user-pass input[type="submit"],
  .page-user main #user-register-form input[type="submit"] {
    background-color: transparent;
    border: 2px solid #F76902;
    border-radius: 4px;
    color: #F76902;
    cursor: pointer;
    display: inline-block;
    font-family: "Montserrat",sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1em;
    margin: 0;
    padding: 12px 16px;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    -webkit-transition: all 500ms ease 0s;
    transition: all 500ms ease 0s;
    margin-top: 10px; }
  .page-user main #user-login input[type="submit"]:hover,
  .page-user main #user-pass input[type="submit"]:hover,
  .page-user main #user-register-form input[type="submit"]:hover {
    background-color: #F76902;
    color: #fff; }
  .page-user main #user-login .form-text,
  .page-user main #user-login .description,
  .page-user main #user-pass .form-text,
  .page-user main #user-pass .description,
  .page-user main #user-register-form .form-text,
  .page-user main #user-register-form .description {
    width: 350px; }
    @media (max-width: 600px) {
      .page-user main #user-login .form-text,
      .page-user main #user-login .description,
      .page-user main #user-pass .form-text,
      .page-user main #user-pass .description,
      .page-user main #user-register-form .form-text,
      .page-user main #user-register-form .description {
        width: 100%; } }
  .page-user main div.password-confirm, .page-user main .password-strength {
    display: none; }
  .page-user main #register-form fieldset {
    border: none;
    background-color: transparent;
    padding: 0;
    margin-top: 20px; }
    .page-user main #register-form fieldset legend {
      display: block;
      font-family: "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
      font-size: 1em;
      font-weight: 600;
      margin-bottom: 0.375em; }
    .page-user main #register-form fieldset .fieldset-description {
      font-size: 0.85em; }

.node-page ol, .node-page ul,
.node-accordion-page ol,
.node-accordion-page ul {
  list-style-type: disc;
  margin: 0 0 0.75em 1.25em; }

.hide-before:before {
  display: none; }

.node-webform {
  position: relative;
  padding-top: 55px;
  padding-bottom: 130px; }
  @media (max-width: 980px) {
    .node-webform {
      padding-top: 25px;
      padding-bottom: 30px; } }
  .node-webform .submission-confirmation {
    background: #fff none repeat scroll 0 0;
    display: none;
    height: 100%;
    position: absolute;
    width: 100%;
    z-index: 10; }

.node-page {
  /*#webform-client-form-9125 .form-text {

		width:500px;

		@include mq('(max-width: 600px)') {
	      width:100%;
	    }

	}

	.webform-client-form{

		padding-right: 40px;

		@include mq('(max-width: 600px)') {
	      padding:0;;
	    }

		#webform-component-message{

			margin-bottom: 15px;

		}

		input[type="submit"]{

			border-radius: 0;
			font-family: 'Myriad Pro';
			font-size:font-size(22);
			font-weight: normal;
			padding: 0.75em 2em;

		}
	}*/
  /*.field-name-field-sidebar{

		width:33%;
		display: inline-block;
		vertical-align: text-top;
		padding-left: 40px;
		& a{

			font-family:$montserrat;
			font-size: font-size(16);
			color:#000;
			text-transform: uppercase;


			.support-text{

				padding-top:20px;

			}
		}
	}*/ }
  .not-front .node-page {
    padding-top: 55px;
    padding-bottom: 130px; }
    @media (max-width: 980px) {
      .not-front .node-page {
        padding-top: 25px;
        padding-bottom: 30px; } }
  .node-page .field-name-body {
    font-size: 0.875em;
    color: #676767;
    width: 66%;
    font-family: "Helvetica","Roboto","Arial",sans-serif;
    display: inline-block;
    vertical-align: text-top; }
    @media (max-width: 1020px) {
      .node-page .field-name-body {
        width: 100%; } }
    .node-page .field-name-body .bookseller-col {
      text-align: center;
      display: inline-block;
      width: 31%;
      vertical-align: text-top; }
      .node-page .field-name-body .bookseller-col img {
        margin-bottom: 25px; }
    .node-page .field-name-body .media-row {
      margin-bottom: 50px; }
      .node-page .field-name-body .media-row .media-row-image {
        display: inline-block;
        width: 25%;
        vertical-align: text-top; }
      .node-page .field-name-body .media-row .media-row-text {
        display: inline-block;
        width: 72%;
        vertical-align: text-top; }
  .node-page .field-name-field-sidebar {
    width: 32%;
    display: inline-block;
    vertical-align: text-top;
    background-color: #F76902;
    padding: 35px;
    margin-left: 10px;
    /*.node-webform &{

			position: absolute;
			top: 55px;

		}*/ }
    @media (max-width: 1020px) {
      .node-page .field-name-field-sidebar {
        width: 100%;
        margin: 20px 0; } }
    .node-page .field-name-field-sidebar h4 {
      font-size: 1em;
      text-transform: uppercase; }
    .node-page .field-name-field-sidebar p {
      font-family: 'helvetica';
      font-size: 0.875em;
      color: #676767; }
    .node-page .field-name-field-sidebar a.support {
      font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
      font-size: 1em;
      color: #000;
      text-transform: uppercase; }
      .node-page .field-name-field-sidebar a.support .support-text {
        padding-top: 20px; }

/*#node-9125{
	position: relative;
	overflow: hidden;

}*/
.node-accordion-page {
  padding-top: 55px;
  /*.field-name-field-sidebar{

		width:33%;
		display: inline-block;
		vertical-align: text-top;
		background-color: #f3f3f3;
		padding:35px;
		margin-left: 10px;
		@include mq('(max-width: 1025px)') {
	      width:100%;
	      margin-bottom: 20px;
	      margin-left: 0;
	    }
		h4{

			@extend .blackmyriad20;
			font-size: font-size(16);
			text-transform: uppercase;

		}

		p{

			font-family:'helvetica';
			font-size: font-size(14);
			color:$lightish-gray;

		}
	}*/ }
  .node-accordion-page .field-name-field-accordion-group .field-collection-view {
    padding-top: 0.4em; }
  .node-accordion-page > .content > .field-collection-container {
    width: 100%;
    display: inline-block;
    vertical-align: text-top; }
    @media (max-width: 1025px) {
      .node-accordion-page > .content > .field-collection-container {
        width: 100%; } }
    .node-accordion-page > .content > .field-collection-container > .field-name-field-accordion-section > .field-items > .field-item {
      width: 49%;
      display: inline-block;
      vertical-align: text-top; }
      @media (max-width: 700px) {
        .node-accordion-page > .content > .field-collection-container > .field-name-field-accordion-section > .field-items > .field-item {
          width: 100%; } }
  .node-accordion-page .field-collection-container,
  .node-accordion-page .field-collection-view {
    border: none; }
  .node-accordion-page .field-name-field-section-title {
    font-size: 1.5em;
    color: #000;
    border-bottom: solid #eaeaea 2px;
    padding-bottom: 20px;
    margin-bottom: 10px;
    font-weight: normal; }
  .node-accordion-page .field-name-field-divided-section-title {
    cursor: pointer;
    margin-bottom: 25px;
    padding-left: 40px;
    /*
		background-image: url('../img/plus.png');
		background-position: left 7px;
		background-repeat: no-repeat;*/ }
  .node-accordion-page div.step-number {
    background-color: #939393;
    border-radius: 50%;
    color: #ffffff;
    cursor: pointer;
    font-family: "Montserrat";
    font-size: 24px;
    font-weight: bold;
    height: 40px;
    line-height: 40px;
    position: absolute;
    text-align: center;
    width: 40px; }
    .node-accordion-page div.step-number span.closed {
      display: inline; }
    .node-accordion-page div.step-number span.open {
      display: none; }
  .node-accordion-page .faqActive {
    /*background-image: url('../img/minus.png');*/ }
    .node-accordion-page .faqActive div.step-number span.closed {
      display: none; }
    .node-accordion-page .faqActive div.step-number span.open {
      display: inline; }
  .node-accordion-page .field-name-field-divided-section-body {
    display: none;
    padding-left: 40px; }

.view-staff {
  padding-top: 20px;
  padding-bottom: 130px; }
  @media (max-width: 980px) {
    .view-staff {
      padding-bottom: 30px; } }
  .view-staff .views-row-odd {
    padding-right: 35px; }
  .view-staff .views-row-even {
    padding-left: 35px; }
  .view-staff .views-row {
    display: inline-block;
    width: 49%;
    vertical-align: text-top; }
    @media (max-width: 800px) {
      .view-staff .views-row {
        width: 100%;
        padding: 0; } }

.node-staff {
  padding-top: 55px;
  display: inline-block; }
  @media (max-width: 980px) {
    .node-staff {
      padding-top: 0; } }
  .node-staff h2 {
    display: none; }
  .node-staff img {
    border-radius: 50%;
    margin-bottom: 30px; }
  .node-staff .field-name-body {
    margin-bottom: 15px; }
  .node-staff .field-name-field-staff-email, .node-staff .field-name-field-staff-phone, .node-staff .field-name-field-staff-fax {
    font-size: 0.875em;
    display: inline-block; }
  .node-staff .field-name-field-staff-phone, .node-staff .field-name-field-staff-fax {
    padding-left: 20px;
    position: relative; }
  .node-staff .field-name-field-staff-phone .field-items:before, .node-staff .field-name-field-staff-fax .field-items:before {
    content: "|";
    text-align: center;
    position: absolute;
    left: 10px; }
  .node-staff .field-name-field-staff-fax .field-items:before {
    content: "|";
    text-align: center;
    position: absolute;
    left: 10px; }

.page-node-9125 {
  /* content forms
	================================================== */
  position: relative; }
  .page-node-9125 input[type="email"], .page-node-9125 input[type="number"], .page-node-9125 input[type="search"], .page-node-9125 input[type="text"], .page-node-9125 input[type="tel"], .page-node-9125 input[type="url"], .page-node-9125 input[type="password"], .page-node-9125 textarea, .page-node-9125 select {
    -moz-appearance: none;
    background-color: #fff;
    border: 0 none;
    border-radius: 0;
    -webkit-box-shadow: none;
            box-shadow: none;
    color: #676867;
    font-family: "Helvetica",sans-serif;
    font-size: 14px;
    line-height: 1em;
    padding: 10px;
    width: 100%;
    margin: 0; }
  @media (max-width: 979px) {
    .page-node-9125 select {
      height: 30px; } }
  .page-node-9125 form.webform-client-form {
    margin: 0;
    padding: 40px;
    background-color: #eaeaea;
    position: relative; }
    .page-node-9125 form.webform-client-form .submission-confirmation {
      background-color: #eaeaea;
      width: calc(100% - 40px);
      height: calc(100% - 40px);
      text-align: center; }
  .page-node-9125 form.webform-client-form div.form-actions {
    margin: 0;
    padding: 30px 0 0 0;
    clear: both;
    text-align: center; }
  .page-node-9125 div.webform-component {
    margin: 0 0 15px 0;
    padding: 0;
    display: block; }
  .page-node-9125 div.webform-component > label {
    padding: 10px 25px;
    width: 25%;
    float: left;
    text-align: right;
    color: #676867;
    font-family: "Helvetica",sans-serif;
    font-size: 14px;
    font-weight: 400;
    margin: 0;
    line-height: 1; }
    @media (max-width: 979px) {
      .page-node-9125 div.webform-component > label {
        width: 38%; } }
  .page-node-9125 div.webform-component input[type='checkbox'] {
    border: 2px #8f8f8b solid;
    background-color: #ffffff; }
  .page-node-9125 div.webform-component input[type="email"],
  .page-node-9125 div.webform-component input[type="text"],
  .page-node-9125 div.webform-component textarea,
  .page-node-9125 div.webform-component div.form-checkboxes,
  .page-node-9125 div.webform-component div.form-radios,
  .page-node-9125 div.webform-component span.ui-selectmenu-button,
  .page-node-9125 div.webform-component div.description,
  .page-node-9125 div.webform-component select {
    width: 62% !important;
    float: left; }
  .page-node-9125 div.webform-component div.form-checkboxes,
  .page-node-9125 div.webform-component div.form-radios {
    padding: 10px 0 0 0; }
  .page-node-9125 div.webform-component div.form-checkboxes div.form-item,
  .page-node-9125 div.webform-component div.form-radios div.form-item {
    margin: 0 15px 0 0;
    display: inline-block; }
  .page-node-9125 div.webform-component div.description {
    margin: 0;
    padding: 10px 0 0 0;
    font-family: "Helvetica";
    font-style: italic;
    font-size: 12px;
    color: #676867;
    line-height: 1.4em;
    float: right; }
  .page-node-9125 div.webform-component input[type="email"],
  .page-node-9125 div.webform-component input[type="text"],
  .page-node-9125 div.webform-component select {
    max-width: 375px; }
  .page-node-9125 div.webform-component textarea {
    resize: none; }
  .page-node-9125 div.webform-component span.ui-selectmenu-button {
    margin: 0;
    padding: 0;
    max-width: 375px;
    display: block;
    border: 1px solid #cccccc;
    border-radius: 0;
    background: none #f9f9f9;
    font-weight: normal;
    color: #555; }
  .page-node-9125 div.webform-component span.ui-selectmenu-button span.ui-selectmenu-text {
    padding: 10px;
    font-family: "Helvetica";
    font-size: 14px;
    color: #676867;
    line-height: 1em; }
  .page-node-9125 .button, .page-node-9125 button, .page-node-9125 input[type="submit"], .page-node-9125 input[type="reset"], .page-node-9125 input[type="button"] {
    background-color: transparent;
    border: 2px solid #F76902;
    border-radius: 4px;
    color: #F76902;
    cursor: pointer;
    display: inline-block;
    font-family: "Montserrat",sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1em;
    margin: 0;
    padding: 12px 16px;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    -webkit-transition: all 500ms ease 0s;
    transition: all 500ms ease 0s; }
  .page-node-9125 .button:hover, .page-node-9125 button:hover, .page-node-9125 input[type="submit"]:hover, .page-node-9125 input[type="reset"]:hover, .page-node-9125 input[type="button"]:hover {
    background-color: #F76902;
    color: #fff; }
  .page-node-9125 .node-webform .sbHolder {
    display: inline-block;
    margin-bottom: 0; }
  .page-node-9125 .webform-component::after, .page-node-9125 .view-content::after, .page-node-9125 .clearfix::after, .page-node-9125 .container::after, .page-node-9125 .row::after {
    clear: both;
    content: "";
    display: table; }

/*contact sidebar */
#node-9125 .webform-client-form {
  width: 60%;
  display: inline-block; }
  @media (max-width: 979px) {
    #node-9125 .webform-client-form {
      width: 100%; } }

#node-9125 .field-name-body {
  width: 39%;
  float: right;
  padding-left: 90px; }
  @media (max-width: 979px) {
    #node-9125 .field-name-body {
      display: none; } }

#node-9125 .contact-heading {
  margin-bottom: 15px; }

#node-9125 .contact-phone {
  background-image: url(../img/phone-icon.png);
  background-position: left top;
  background-repeat: no-repeat;
  padding-left: 40px;
  margin-bottom: 40px;
  margin-top: 15px;
  color: #676767; }

#node-9125 .contact-fax {
  background-image: url(../img/fax-icon.png);
  background-position: left top;
  background-repeat: no-repeat;
  padding-left: 40px;
  margin-bottom: 40px;
  color: #676767; }

#node-9125 .contact-email {
  background-image: url(../img/email-icon.png);
  background-position: left 4px;
  background-repeat: no-repeat;
  padding-left: 40px;
  margin-bottom: 40px; }

#node-9125 .contact-social a {
  margin-right: 10px; }
  #node-9125 .contact-social a:before {
    display: none; }

#bottom-page {
  background-color: #eaeaea;
  padding: 40px 0; }
  #bottom-page h1:first-child, #bottom-page h2:first-child, #bottom-page h3:first-child, #bottom-page h4:first-child {
    margin-top: 0;
    padding-top: 0; }
  #bottom-page h3 {
    color: #000;
    font-family: "Montserrat",sans-serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.2em;
    margin: 0 0 20px;
    padding: 20px 0 0;
    text-transform: uppercase; }
  #bottom-page p {
    color: #888;
    font-size: 14px;
    line-height: 1.7em;
    margin: 0 0 20px; }
  #bottom-page .button {
    text-transform: uppercase; }
    #bottom-page .button:before {
      -webkit-transform: none;
              transform: none;
      visibility: visible;
      background-color: transparent;
      bottom: .8em; }

@CHARSET "UTF-8";
.sbHolder {
  background-color: #fff;
  border: solid 1px #cdcccb;
  font-family: Helvetica, sans-serif;
  font-size: 13px;
  font-weight: normal;
  height: 30px;
  position: relative;
  width: 200px; }
  .sbHolder a:before {
    display: none; }
  .node-webform .sbHolder {
    width: 300px;
    margin-bottom: 10px; }

.sbSelector {
  display: block;
  height: 30px;
  left: 0;
  line-height: 30px;
  outline: none;
  overflow: hidden;
  position: absolute;
  text-indent: 10px;
  top: 0;
  width: 205px; }

.sbSelector:link, .sbSelector:visited, .sbSelector:hover {
  color: #7f7b7b  !important;
  outline: none;
  text-decoration: none; }

.sbToggle {
  background: url(../img/select-arrow.png) center 4px no-repeat;
  display: block;
  height: 29px;
  outline: none;
  position: absolute;
  right: 0;
  top: 0;
  width: 30px;
  border-left: solid 1px #cdcccb; }

.sbToggle:hover {
  background: url(../img/select-arrow.png) center 4px no-repeat; }

.sbToggleOpen {
  background: url(../img/select-arrow.png) center 4px no-repeat; }

.sbToggleOpen:hover {
  background: url(../img/select-arrow.png) center 4px no-repeat; }

.sbHolderDisabled {
  background-color: #fff;
  border: solid 1px #cdcccb; }

.sbOptions {
  background-color: #fff;
  border: solid 1px #cdcccb;
  list-style: none;
  left: -1px;
  margin: 0;
  padding: 0;
  position: absolute;
  top: 30px;
  width: 200px;
  z-index: 1;
  overflow-y: auto; }
  .node-webform .sbOptions {
    width: 300px; }

ul.sbOptions {
  margin: 0 !important; }

.sbOptions li {
  padding: 0 7px; }

.sbOptions a {
  border-bottom: dotted 1px #cdcccb;
  display: block;
  outline: none;
  padding: 7px 0 7px 3px; }

.sbOptions a:link, .sbOptions a:visited {
  color: #7f7b7b  !important;
  text-decoration: none; }

.sbOptions a:hover,
.sbOptions a:focus,
.sbOptions a.sbFocus {
  color: #7f7b7b  !important; }

.sbOptions li.last a {
  border-bottom: none; }

.sbOptions .sbDisabled {
  border-bottom: dotted 1px #cdcccb;
  color: #999;
  display: block;
  padding: 7px 0 7px 3px; }

.sbOptions .sbGroup {
  border-bottom: dotted 1px #cdcccb;
  color: #7f7b7b;
  display: block;
  font-weight: bold;
  padding: 7px 0 7px 3px; }

.sbOptions .sbSub {
  padding-left: 17px; }

abbr {
  border-bottom: none !important;
  cursor: inherit !important;
  text-decoration: none !important; }

.page-cart main .region-content {
  padding-top: 55px;
  padding-bottom: 130px; }

@media (max-width: 580px) {
  .page-cart main #uc-cart-view-form #edit-actions .form-submit,
  .page-cart main #uc-cart-view-form #edit-actions a {
    width: 100%;
    margin-left: 0;
    text-align: center;
    margin-bottom: 10px; } }

.page-cart main #uc-cart-view-form table tr {
  background-color: transparent; }

.page-cart main #uc-cart-view-form table th {
  font-weight: normal;
  text-align: center; }
  .page-cart main #uc-cart-view-form table th * {
    border: none; }

.page-cart main #uc-cart-view-form table th:nth-child(1),
.page-cart main #uc-cart-view-form table th:nth-child(2) {
  text-align: left; }

.page-cart main #uc-cart-view-form table td {
  vertical-align: middle; }

.page-cart main #uc-cart-view-form table .price {
  text-align: center; }

.page-cart main #uc-cart-view-form table .qty input[type="text"] {
  margin: 0 auto;
  text-align: center;
  width: auto; }

.page-cart main #uc-cart-view-form table td.subtotal {
  background-color: #F76902;
  padding-right: 115px;
  height: 75px;
  vertical-align: middle; }
  .page-cart main #uc-cart-view-form table td.subtotal #subtotal-title {
    margin-right: 60px; }

@media (max-width: 680px) {
  .page-cart main #uc-cart-view-form table .remove,
  .page-cart main #uc-cart-view-form table th:nth-child(1) {
    /*display:none;*/
    font-size: 0;
    border: none; }
  .page-cart main #uc-cart-view-form table .remove input[type="submit"] {
    background-image: url(../img/icon-close.png);
    background-position: center center;
    height: 17px;
    width: 17px;
    border: none;
    border-radius: 0;
    font-size: 0; } }

@media (max-width: 450px) {
  .page-cart main #uc-cart-view-form table .qty input {
    padding: .25em 0;
    max-width: 35px; } }

.page-cart main .region-content input[type="text"],
.page-cart main .region-content input[type="password"] {
  width: auto; }

.page-cart main button, .page-cart main input[type="button"], .page-cart main input[type="reset"], .page-cart main input[type="submit"] {
  line-height: 25px;
  border: 2px solid #b4b2b1;
  padding: 0.35em 2em 0.25em 0.7em;
  color: #fff;
  position: relative;
  -webkit-transition: all 200ms ease;
  transition: all 200ms ease;
  border-radius: 2px;
  font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  display: inline-block;
  background-color: #b4b2b1;
  margin-left: 10px;
  text-transform: uppercase;
  font-weight: normal;
  background-image: url(../img/white-cart-triangle.png);
  background-repeat: no-repeat;
  background-position: calc(100% - 15px) center; }
  .page-cart main button:hover, .page-cart main input[type="button"]:hover, .page-cart main input[type="reset"]:hover, .page-cart main input[type="submit"]:hover {
    background-color: transparent;
    color: #b4b2b1;
    -webkit-font-smoothing: subpixel-antialiased;
    -moz-osx-font-smoothing: auto;
    background-image: url(../img/grey-cart-triangle.png);
    background-repeat: no-repeat;
    background-position: calc(100% - 15px) center; }

#uc-cart-pane-coupon,
#coupon-pane {
  padding: 0.75em; }
  #uc-cart-pane-coupon h3,
  #coupon-pane h3 {
    display: none; }
  #uc-cart-pane-coupon .form-item,
  #coupon-pane .form-item {
    display: inline-block;
    vertical-align: text-top;
    width: 21%; }
    #uc-cart-pane-coupon .form-item label, #uc-cart-pane-coupon .form-item .description,
    #coupon-pane .form-item label,
    #coupon-pane .form-item .description {
      display: inline-block; }
  #uc-cart-pane-coupon .form-submit,
  #coupon-pane .form-submit {
    display: inline-block;
    vertical-align: text-top;
    margin-top: 30px; }
  @media (max-width: 1170px) {
    #uc-cart-pane-coupon .form-item,
    #coupon-pane .form-item {
      display: block; }
      #uc-cart-pane-coupon .form-item label, #uc-cart-pane-coupon .form-item .description,
      #coupon-pane .form-item label,
      #coupon-pane .form-item .description {
        display: block;
        min-width: 350px;
        margin-bottom: 15px; }
    #uc-cart-pane-coupon .form-submit,
    #coupon-pane .form-submit {
      display: block;
      vertical-align: text-top;
      margin: 0px; } }

#login-form {
  margin-top: 30px; }

.uc-cart-checkout-form #coupon-pane {
  padding: 1.5em 0; }

.uc-cart-checkout-form fieldset {
  background-color: transparent;
  border: none;
  padding: 1.5em 0; }
  .uc-cart-checkout-form fieldset legend {
    width: 100%;
    display: block; }
  .uc-cart-checkout-form fieldset .fieldset-legend {
    font-size: 2.125em;
    color: #000;
    border-bottom: solid #eaeaea 2px;
    padding-bottom: 20px;
    margin-bottom: 55px;
    font-weight: normal;
    width: 100%;
    display: block; }

.uc-cart-checkout-form #cart-pane tr {
  background-color: transparent; }

.uc-cart-checkout-form #cart-pane th.qty,
.uc-cart-checkout-form #cart-pane th.price,
.uc-cart-checkout-form #cart-pane td.qty,
.uc-cart-checkout-form #cart-pane td.price {
  text-align: center; }

.uc-cart-checkout-form #cart-pane td.subtotal {
  background-color: #F76902;
  padding-right: 10%;
  height: 75px;
  vertical-align: middle; }
  .uc-cart-checkout-form #cart-pane td.subtotal #subtotal-title {
    margin-right: 60px; }

.uc-cart-checkout-form #delivery-pane, .uc-cart-checkout-form #billing-pane {
  display: inline-block;
  width: 49%;
  vertical-align: text-top; }

.uc-cart-checkout-form #delivery-pane {
  padding-right: 1.5em; }

.uc-cart-checkout-form #quote pre {
  display: none; }

.uc-cart-checkout-form .uc-store-address-field .form-item label {
  float: none;
  padding-left: 0;
  text-align: left; }

.uc-cart-checkout-form button, .uc-cart-checkout-form input[type="button"], .uc-cart-checkout-form input[type="reset"], .uc-cart-checkout-form input[type="submit"] {
  line-height: 25px;
  border: 2px solid #b4b2b1;
  padding: 0.35em 2em 0.25em 0.7em;
  color: #fff;
  position: relative;
  -webkit-transition: all 200ms ease;
  transition: all 200ms ease;
  border-radius: 2px;
  font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  display: inline-block;
  background-color: #b4b2b1;
  margin-left: 10px;
  text-transform: uppercase;
  font-weight: normal;
  background-image: url(../img/white-cart-triangle.png);
  background-repeat: no-repeat;
  background-position: calc(100% - 15px) center; }
  .uc-cart-checkout-form button:hover, .uc-cart-checkout-form input[type="button"]:hover, .uc-cart-checkout-form input[type="reset"]:hover, .uc-cart-checkout-form input[type="submit"]:hover {
    background-color: transparent;
    color: #b4b2b1;
    -webkit-font-smoothing: subpixel-antialiased;
    -moz-osx-font-smoothing: auto;
    background-image: url(../img/grey-cart-triangle.png);
    background-repeat: no-repeat;
    background-position: calc(100% - 15px) center; }

.uc-cart-checkout-form #quotes-pane input[type="submit"] {
  margin-left: 0;
  margin-top: 10px; }

.uc-cart-checkout-form #payment-pane .messages, .uc-cart-checkout-form #billing-address-pane .messages {
  display: none; }

.uc-cart-checkout-form #webform-client-form-9130 .form-type-checkbox {
  display: inline-block;
  width: 33%; }
  @media (max-width: 900px) {
    .uc-cart-checkout-form #webform-client-form-9130 .form-type-checkbox {
      width: 49%; } }
  @media (max-width: 600px) {
    .uc-cart-checkout-form #webform-client-form-9130 .form-type-checkbox {
      font-size: 0.75em; } }

@media (max-width: 500px) {
  .uc-cart-checkout-form #payment-pane #line-items-div {
    float: none; }
    .uc-cart-checkout-form #payment-pane #line-items-div table {
      width: 100%; } }

.order-review-table {
  max-width: 100%;
  width: 100%; }
  .order-review-table td {
    padding: 30px 25px; }
  .order-review-table th.qty,
  .order-review-table th.price,
  .order-review-table td.qty,
  .order-review-table td.price {
    text-align: center; }
  .order-review-table .pane-title-row {
    font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 1em;
    color: #000;
    background-color: #F76902;
    text-transform: uppercase; }
  .order-review-table .review-button-row {
    background-color: transparent; }
    .order-review-table .review-button-row td {
      padding: 1em; }
  @media (max-width: 500px) {
    .order-review-table .title-col {
      white-space: normal; } }

/*
 * jQuery FlexSlider v2.6.0
 * http://www.woothemes.com/flexslider/
 *
 * Copyright 2012 WooThemes
 * Free to use under the GPLv2 and later license.
 * http://www.gnu.org/licenses/gpl-2.0.html
 *
 * Contributing author: Tyler Smith (@mbmufffin)
 *
 */
/* ====================================================================================================================
 * FONT-FACE
 * ====================================================================================================================*/
@font-face {
  font-family: 'flexslider-icon';
  src: url("../fonts/flexslider-icon.eot");
  src: url("../fonts/flexslider-icon.eot?#iefix") format("embedded-opentype"), url("../fonts/flexslider-icon.woff") format("woff"), url("../fonts/flexslider-icon.ttf") format("truetype"), url("../fonts/flexslider-icon.svg#flexslider-icon") format("svg");
  font-weight: normal;
  font-style: normal; }

/* ====================================================================================================================
 * RESETS
 * ====================================================================================================================*/
.flex-container a:hover,
.flex-slider a:hover {
  outline: none; }

.slides,
.slides > li,
ol.flex-control-nav,
ul.flex-direction-nav {
  margin: 0;
  padding: 0;
  list-style: none; }

.flex-pauseplay span {
  text-transform: capitalize; }

/* ====================================================================================================================
 * BASE STYLES
 * ====================================================================================================================*/
.flexslider {
  margin: 0;
  padding: 0; }

.flexslider .slides > li {
  display: none;
  -webkit-backface-visibility: hidden; }

.flexslider .slides img {
  width: 100%;
  display: block; }

.flexslider .slides:after {
  content: "\0020";
  display: block;
  clear: both;
  visibility: hidden;
  line-height: 0;
  height: 0; }

html[xmlns] .flexslider .slides {
  display: block; }

* html .flexslider .slides {
  height: 1%; }

.no-js .flexslider .slides > li:first-child {
  display: block; }

/* ====================================================================================================================
 * DEFAULT THEME
 * ====================================================================================================================*/
.flexslider {
  margin: 0 0 60px;
  background: #ffffff;
  position: relative;
  zoom: 1;
  border-radius: 4px;
  -webkit-box-shadow: "" 0 1px 4px rgba(0, 0, 0, 0.2);
  -o-box-shadow: "" 0 1px 4px rgba(0, 0, 0, 0.2);
  box-shadow: "" 0 1px 4px rgba(0, 0, 0, 0.2); }

.flexslider .slides {
  zoom: 1; }

.flexslider .slides img {
  height: auto;
  -moz-user-select: none; }

.flex-viewport {
  max-height: 2000px;
  -webkit-transition: all 1s ease;
  transition: all 1s ease; }

.loading .flex-viewport {
  max-height: 300px; }

.carousel li {
  margin-right: 5px; }

.flex-direction-nav {
  *height: 0; }
  @media (max-width: 500px) {
    .flex-direction-nav {
      display: none; } }

.flex-direction-nav a {
  text-decoration: none;
  display: block;
  width: 40px;
  height: 40px;
  margin: -20px 0 0;
  position: absolute;
  top: 50%;
  z-index: 10;
  overflow: hidden;
  opacity: 0;
  cursor: pointer;
  color: rgba(0, 0, 0, 0.8);
  text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3);
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out; }

.flex-direction-nav a:before {
  font-family: "flexslider-icon";
  font-size: 33px;
  display: inline-block;
  content: '\f001';
  color: rgba(255, 255, 255, 0.8);
  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.3); }

.flex-direction-nav a.flex-next:before {
  content: '\f002'; }

.flex-direction-nav .flex-prev {
  left: -50px; }

.flex-direction-nav .flex-next {
  right: -50px;
  text-align: right; }

.hero-slideshow:hover .flex-direction-nav .flex-prev {
  opacity: 0.7;
  left: 10px; }
  @media (min-width: 2000px) {
    .hero-slideshow:hover .flex-direction-nav .flex-prev {
      left: 15%; } }

.hero-slideshow:hover .flex-direction-nav .flex-prev:hover {
  opacity: 1; }

.hero-slideshow:hover .flex-direction-nav .flex-next {
  opacity: 0.7;
  right: 10px; }
  @media (min-width: 2000px) {
    .hero-slideshow:hover .flex-direction-nav .flex-next {
      right: 15%; } }

.hero-slideshow:hover .flex-direction-nav .flex-next:hover {
  opacity: 1; }

.flex-direction-nav .flex-disabled {
  opacity: 0 !important;
  filter: alpha(opacity=0);
  cursor: default;
  z-index: -1; }

.flex-pauseplay a {
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  bottom: 5px;
  left: 10px;
  opacity: 0.8;
  z-index: 10;
  overflow: hidden;
  cursor: pointer;
  color: #000; }

.flex-pauseplay a:before {
  font-family: "flexslider-icon";
  font-size: 20px;
  display: inline-block;
  content: '\f004'; }

.flex-pauseplay a:hover {
  opacity: 1; }

.flex-pauseplay a.flex-play:before {
  content: '\f003'; }

.flex-control-nav {
  width: 100%;
  position: absolute;
  bottom: 0;
  z-index: 2;
  text-align: center; }

.flex-control-nav li {
  margin: 0 10px;
  display: inline-block;
  zoom: 1;
  *display: inline; }

.flex-control-paging li a {
  width: 0;
  height: 0;
  text-indent: -9999px;
  display: block;
  position: relative; }

.flex-control-paging li a:after {
  content: "";
  position: absolute;
  top: 0;
  display: block;
  height: 0;
  width: 0;
  border-bottom: 15px solid #fff;
  border-left: 15px solid transparent;
  -webkit-transition: border-color 200ms ease;
  transition: border-color 200ms ease; }

.flex-control-paging li a:hover:after {
  height: 0;
  width: 0;
  border-bottom: 15px solid #ccc;
  border-left: 15px solid transparent; }

.flex-control-paging li a.flex-active:after {
  height: 0;
  width: 0;
  border-bottom: 15px solid #F76902;
  border-left: 15px solid transparent;
  cursor: default; }

.flex-control-thumbs {
  margin: 5px 0 0;
  position: static;
  overflow: hidden; }

.flex-control-thumbs li {
  width: 25%;
  float: left;
  margin: 0; }

.flex-control-thumbs img {
  width: 100%;
  height: auto;
  display: block;
  opacity: .7;
  cursor: pointer;
  -moz-user-select: none;
  -webkit-transition: all 1s ease;
  transition: all 1s ease; }

.flex-control-thumbs img:hover {
  opacity: 1; }

.flex-control-thumbs .flex-active {
  opacity: 1;
  cursor: default; }

/* ====================================================================================================================
 * RESPONSIVE
 * ====================================================================================================================*/
@media screen and (max-width: 860px) {
  .flex-direction-nav .flex-prev {
    opacity: 1;
    left: 10px; }
  .flex-direction-nav .flex-next {
    opacity: 1;
    right: 10px; } }

.hero-slideshow {
  position: relative;
  max-width: 2000px;
  margin-left: auto;
  margin-right: auto;
  /*.views-field-title-1 {
    span {
      padding: 1em;
      background: #000;
      text-align: center;
      color: #fff;
      display: block;
      width: 100%;

      @include min(660px) {
        @include grid-row();
        padding: 1em;
        background: rgba(0, 0, 0, 0.6);
        position: absolute;
        top: initial;
        bottom: 0;
        left: 0;
        right: 0;
        margin: auto;
      }
    }
  }*/ }
  .hero-slideshow ul.flex-direction-nav {
    /*position: absolute;
	top: 0;
	height: 100%;
	width: 100%;*/ }
  .hero-slideshow::after {
    clear: both;
    content: "";
    display: table; }
  @media (max-width: 559px) {
    .hero-slideshow {
      background: #000; } }
  .hero-slideshow .slide {
    position: relative; }
  .hero-slideshow img {
    display: block; }
  .hero-slideshow .views-field-title-1 {
    position: absolute;
    left: 50%;
    top: 20%;
    color: #fff;
    font-size: 36px;
    line-height: 1.25;
    padding-right: .5em;
    text-shadow: 1px 2px rgba(0, 0, 0, 0.4);
    width: 32%;
    font-weight: normal;
    font-family: "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; }
    @media (max-width: 1160px) {
      .hero-slideshow .views-field-title-1 div {
        display: inline; } }
    @media (max-width: 960px) {
      .hero-slideshow .views-field-title-1 div {
        display: block; } }
    @media (max-width: 1785px) {
      .hero-slideshow .views-field-title-1 {
        font-size: 1.75em; } }
    @media (max-width: 1635px) {
      .hero-slideshow .views-field-title-1 {
        font-size: 1.5em; } }
    @media (max-width: 1150px) {
      .hero-slideshow .views-field-title-1 {
        font-size: 1.25em; } }
    @media (max-width: 1000px) {
      .hero-slideshow .views-field-title-1 {
        width: 50%;
        font-size: 1.2em; } }
    @media (max-width: 750px) {
      .hero-slideshow .views-field-title-1 {
        font-size: 1em; } }
    @media (max-width: 550px) {
      .hero-slideshow .views-field-title-1 {
        font-size: .9em; } }
    @media (max-width: 479px) {
      .hero-slideshow .views-field-title-1 {
        font-size: .7em;
        left: 47%;
        top: 10%; } }
  .hero-slideshow .blurb {
    position: absolute;
    left: 50%;
    top: 44%;
    color: #fff;
    font-size: 1.3em;
    line-height: 1.5;
    width: 23em;
    text-shadow: 1px 2px rgba(0, 0, 0, 0.4); }
    @media (max-width: 1635px) {
      .hero-slideshow .blurb {
        top: 56%;
        font-size: 1em; } }
    @media (max-width: 960px) {
      .hero-slideshow .blurb {
        display: none; } }
    @media (min-width: 961px) and (max-width: 1023px) {
      .hero-slideshow .blurb {
        top: 48%; } }
  .hero-slideshow .read-more {
    position: absolute;
    left: 50%;
    top: 67%;
    font-size: 1.15em;
    display: none; }
    .hero-slideshow .read-more a {
      text-transform: uppercase;
      font-size: .9em;
      text-shadow: 0 0 9px rgba(0, 0, 0, 0.3); }
    @media (min-width: 961px) {
      .hero-slideshow .read-more {
        top: 85%; } }
    @media (min-width: 1024px) {
      .hero-slideshow .read-more {
        top: 77%; } }
    @media (min-width: 1250px) {
      .hero-slideshow .read-more {
        top: 72%; } }
    @media (max-width: 880px) {
      .hero-slideshow .read-more {
        top: initial;
        bottom: 13%; } }
    @media (max-width: 479px) {
      .hero-slideshow .read-more {
        left: 45%; } }
  .hero-slideshow .buy-more {
    /*margin-left: 170px;*/
    display: block; }
    @media (max-width: 900px) {
      .hero-slideshow .buy-more {
        display: block; } }
    @media (max-width: 525px) {
      .hero-slideshow .buy-more {
        display: none; } }

#mobile-menu {
  width: 290px;
  -webkit-transform: translate3D(-290px, 0, 0);
          transform: translate3D(-290px, 0, 0);
  position: fixed;
  top: 52px;
  right: initial;
  bottom: initial;
  left: 0;
  z-index: 1000;
  background: #fff;
  max-height: calc(100vh - 52px);
  overflow-y: scroll; }
  body.adminimal-frontend #mobile-menu {
    max-height: calc(100vh - 52px);
    top: 52px; }
  #mobile-menu ul {
    padding: 0;
    margin: 0;
    list-style: none; }
  #mobile-menu li {
    padding: 0;
    margin: 0;
    list-style: none;
    border-top: 1px solid #ccc;
    position: relative; }
    #mobile-menu li.leaf.active {
      background: #ccc; }
    #mobile-menu li.active-trail > ul {
      display: block; }
  #mobile-menu .menu-name-main-menu li {
    border-top: 1px solid #dcdcdc; }
    #mobile-menu .menu-name-main-menu li.first {
      border-top: 0; }
  #mobile-menu a {
    padding: 19px 10px 16.5px 10px;
    color: #000;
    position: relative;
    display: block;
    text-transform: uppercase;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.2px;
    padding-left: 19px; }
  #mobile-menu li.last a {
    border-bottom: 0; }
  #mobile-menu li.has-dropdown > a:after {
    content: url("../img/down-arrow.png");
    font-size: 14px/14px;
    font-weight: bold;
    font-family: "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    padding-left: 5px;
    vertical-align: top;
    color: #666766;
    display: inline-block;
    margin: auto 0;
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
    -webkit-transition: all 200ms ease;
    transition: all 200ms ease;
    -webkit-transform-origin: center center;
            transform-origin: center center;
    position: absolute;
    right: 20px; }
  #mobile-menu li.has-dropdown > a.opened:after {
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg);
    -webkit-transform-origin: center center;
            transform-origin: center center;
    right: 15px; }
  #mobile-menu .menu-name-menu-quick-links li:nth-of-type(2) {
    display: none; }
  #mobile-menu ul ul {
    display: none; }
    #mobile-menu ul ul li {
      background: #eaeaeb; }
      #mobile-menu ul ul li a {
        margin-left: 18px; }
      #mobile-menu ul ul li.active {
        background: #ccc; }
      #mobile-menu ul ul li.has-dropdown {
        background: #eaeaeb !important; }
    #mobile-menu ul ul a {
      color: #282828;
      font-size: 14px;
      text-transform: capitalize;
      padding-top: 19px;
      padding-right: 32px;
      padding-bottom: 17px;
      font-weight: 600; }
  #mobile-menu ul ul ul li {
    background: white; }
    #mobile-menu ul ul ul li a {
      margin-left: 36px; }
    #mobile-menu ul ul ul li.first {
      border-top: 1px solid #dcdcdc !important; }

body.mobile-out {
  overflow: hidden;
  position: relative;
  height: 100%; }
  body.mobile-out #mobile-menu {
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0); }
  body.mobile-out:after {
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0); }

body:after, #mobile-menu, #idbar-menu-overlay {
  -webkit-transition: all 250ms ease-in-out;
  transition: all 250ms ease-in-out; }
  @media (min-width: 980px) {
    body:after, #mobile-menu, #idbar-menu-overlay {
      display: none !important; } }

/*#mobile-menu {
  width: 275px;
  @include transform(translate3D(-275px, 0, 0));
  @include position(fixed, 52px initial initial 0);
  z-index: 1000;
  background: #fff;
  max-height: calc(100vh - 52px);
  overflow-y: scroll;

  body.adminimal-frontend & {
    max-height: calc(100vh - 52px);
    top: 52px;
  }

  ul {
    @include zero;
    list-style: none;
  }

  li {
    @include zero;
    list-style: none;
    border-top: 1px solid $light-gray;
    position: relative;

    &.active-trail {
      ul {
        display: block;
      }
      & > a {
//        color: $white;
//        background: $rit-orange;
          border-bottom: 1px solid #eaeaea;
      }
      &.has-dropdown > a:after {
        @include transform(rotate(0deg));
//        color: $white;
      }
    }
  }

  .menu-name-main-menu li {
    border-top: 0;
  }

  a {
    padding: 19px 10px 16.5px 10px;
    color: $dark-gray;
    position: relative;
    display: block;
    text-transform: uppercase;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.2px;
    border-bottom: 1px solid #eaeaea;
    line-height: 1.25
  }
  li.last a {
    border-bottom: 0;
  }

  li.last li a {
    border-bottom: 1px solid #eaeaea;
  }

  li.has-dropdown > a:after {
    content: "×";
    font-size: 0.9em;
    font-weight: bold;
    font-family: $helvetica;
    padding-left: 5px;
    vertical-align: top;
    color: $medium-gray;
    display: inline-block;
    margin: auto 0;
    @include transform(rotate(-45deg));
    @include transition(all 200ms ease);
    position: absolute;
    right: 10px;
  }

  li.has-dropdown > a.open:after {
    @include transform(rotate(0deg));
  }

  .menu-name-menu-quick-links {
    li:nth-of-type(1) {
      display: none;
    }
  }


  ul ul {
    display: none;

    li {
      background: $light-gray;
      @include plr(20px);
    }
    a {
      color: $dark-gray;
      font-size: 13px;
      text-transform: capitalize;
      padding-top: 19px;
      padding-right: 0;
      padding-bottom: 17px;
      font-weight: 600;

      &.active {
        color: $rit-orange;

//        &:after {
//          content: "";
//          @include triangle(12px, $white, right);
//          @include position(absolute, 0 10px 0 initial);
//          margin: auto 0;
//        }
      }
    }
  }
}

body {
	width:100%;
	max-width: 100%;
  &:after {
    width: 100%;
    height: 100%;
    content: "";

    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 999;
    @include transform(translate3d(-100%, 0, 0));
  }

  &.mobile-out {
    overflow: hidden;

    #mobile-menu {
      @include transform(translate3d(0,0,0));
    }

    &:after {
      @include transform(translate3d(0,0,0));
    }
  }
}

body:after, #mobile-menu {

  @include transition(all 250ms ease-in-out);
}*/
#main-menu--header #block-menu-block-1 {
  position: relative; }

#main-menu--header ul {
  padding-top: 0.9em;
  text-align: right;
  z-index: 100; }

#main-menu--header li {
  display: inline-block;
  /*position: relative;*/
  padding: 0;
  margin: 0;
  padding: 0 1.75em 44px;
  -webkit-transition: padding 500ms ease;
  transition: padding 500ms ease; }
  @media (max-width: 1100px) {
    #main-menu--header li {
      padding-left: 0.75em;
      padding-right: 0.75em; } }
  #main-menu--header li:last-of-type {
    padding-right: 0; }
  #main-menu--header li a {
    font-family: "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 14px;
    color: #000;
    padding-bottom: 51px;
    -webkit-transition: padding 500ms ease;
    transition: padding 500ms ease; }
    #main-menu--header li a span {
      padding-top: 0.2em;
      padding-bottom: 0.1875em;
      -webkit-transition: border-bottom-color 200ms ease;
      transition: border-bottom-color 200ms ease;
      border-bottom: 2px solid transparent; }
  #main-menu--header li.active-trail a span, #main-menu--header li:hover a span {
    border-bottom-color: #F76902; }
  #main-menu--header li ul {
    display: none;
    position: absolute;
    top: 81px;
    background: #f2f2f2;
    width: 200px;
    padding-top: 0; }
    .shrunk-header2 #main-menu--header li ul {
      top: 62px; }
    #main-menu--header li ul li {
      display: block;
      padding: 0;
      text-align: left; }
      #main-menu--header li ul li a {
        font-size: 14px;
        padding: 0 2.5em;
        position: relative;
        display: block;
        color: #666766; }
        #main-menu--header li ul li a:after {
          content: "";
          height: 0;
          width: 0;
          border-bottom: 12px solid #dfdfde;
          border-left: 12px solid transparent;
          position: absolute;
          top: 0;
          right: 0;
          bottom: 0;
          left: initial;
          margin: auto 2.5em; }
        #main-menu--header li ul li a span {
          display: block;
          padding-top: 0.8em;
          padding-bottom: 0.8em;
          border-top-width: 1px;
          border-top-style: solid;
          border-top-color: #dfdfde;
          border-bottom-color: transparent !important; }
      #main-menu--header li ul li:hover {
        background: #dfdfde;
        color: #666766; }
        #main-menu--header li ul li:hover a:after {
          border-bottom-color: #666766;
          border-right-color: #666766; }
        #main-menu--header li ul li:hover + li a span {
          border-top-color: transparent; }
      #main-menu--header li ul li.active a {
        color: #F76902; }
        #main-menu--header li ul li.active a:after {
          border-bottom-color: #F76902;
          border-right-color: #F76902; }
      #main-menu--header li ul li:first-of-type a span {
        border-top: 0; }
  #main-menu--header li:hover ul {
    transition: display .3s ease-in-out;
    -moz-transition: display .3s ease-in-out;
    -webkit-transition: display .3s ease-in-out;
    display: block; }

#main-menu--header li.menu-mlid-4525 ul {
  max-width: 1170px;
  width: 100%;
  right: 0;
  height: auto; }
  #main-menu--header li.menu-mlid-4525 ul li {
    display: inline-block;
    float: left;
    width: 33.3%; }

.product {
  padding: 50px 0 20px; }
  .product .product-teaser {
    width: 38%;
    display: inline-block;
    vertical-align: text-top;
    margin-right: 65px;
    font-family: "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; }
    .product .product-teaser .product-title a {
      font-size: 34px;
      color: #000;
      line-height: 1; }
      .product .product-teaser .product-title a:before {
        display: none; }
    .product .product-teaser .product-subtitle {
      font-size: 1.5em; }
    .product .product-teaser .product-author,
    .product .product-teaser .product-editor {
      font-family: helvetica;
      color: #676767;
      font-size: 0.875em; }
    .product .product-teaser .product-description {
      margin-top: 45px;
      color: #666766;
      font-size: 1em; }
  .product .slickUC {
    width: 21%;
    display: inline-block;
    margin-right: 45px;
    vertical-align: text-top;
    text-align: center; }
    .product .slickUC a:before {
      display: none; }
    .product .slickUC .slick-slide {
      text-align: center; }
      .product .slickUC .slick-slide a:before {
        display: none; }
      .product .slickUC .slick-slide img {
        display: inline-block; }
    .product .slickUC .slick-dots {
      text-align: center;
      position: relative; }
      .product .slickUC .slick-dots li button:before {
        border: none;
        background-image: url(../img/dot_off.png); }
      .product .slickUC .slick-dots li.slick-active button:before {
        border: none; }
      .product .slickUC .slick-dots li button {
        background-image: url(../img/dot_off.png);
        background-position: center center;
        height: 12px;
        width: 12px; }
      .product .slickUC .slick-dots li.slick-active button {
        background-image: url(../img/dot_on.png); }
  .product .product-extras {
    width: 30%;
    display: inline-block;
    vertical-align: text-top;
    font-family: "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; }
    @media (max-width: 1110px) {
      .product .product-extras {
        width: 20%; } }
    .product .product-extras .product-terms {
      font-size: 0.875em;
      font-style: italic; }
      .product .product-extras .product-terms a {
        color: #F76902;
        display: inline-block;
        margin-right: 12px; }
    .product .product-extras .product-share {
      padding-top: 5px; }
      .product .product-extras .product-share .extra-label {
        margin-right: 20px; }
      .product .product-extras .product-share .social {
        margin-right: 10px;
        height: 22px; }
        .product .product-extras .product-share .social:before {
          display: none; }
    .product .product-extras .product-price-tag {
      font-size: 1.25em;
      color: #000; }
    .product .product-extras .strike-price {
      font-size: 1.25em;
      color: #666766;
      text-decoration: line-through;
      padding-right: 5px; }
    .product .product-extras .extra-label,
    .product .product-extras .add-to-cart label {
      font-family: "helvetica";
      color: #676767;
      font-size: 0.875em;
      font-weight: normal; }
    .product .product-extras .product-price {
      padding-top: 10px; }
    .product .product-extras .add-to-cart {
      margin-bottom: 20px; }
      .product .product-extras .add-to-cart .form-item {
        padding: 20px 0; }
      .product .product-extras .add-to-cart input[type="text"] {
        width: 53px;
        display: inline-block; }
      .product .product-extras .add-to-cart label {
        display: inline-block; }
      .product .product-extras .add-to-cart input[type="submit"] {
        border-radius: 0;
        font-family: "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
        font-size: 1.375em;
        font-weight: normal;
        padding: 0.75em 2em; }
  .product .product-details-section .product-description {
    font-size: 0.875em; }
    .product .product-details-section .product-description strong {
      font-weight: normal; }
  .product .product-details-section .product-details {
    font-size: 0.875em;
    line-height: 1.75em; }
    .product .product-details-section .product-details h4 {
      font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
      color: #000;
      font-size: 1em;
      text-transform: uppercase;
      margin-bottom: 20px;
      font-weight: normal; }
  .product .product-details-section .detail-button {
    -moz-appearance: none;
    background-color: #F76902;
    border: medium none;
    border-radius: 3px;
    color: #fff;
    cursor: pointer;
    display: inline-block;
    line-height: 1;
    padding: 0.75em 1em;
    text-decoration: none;
    vertical-align: middle;
    white-space: nowrap;
    border-radius: 0;
    font-family: "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 1.375em;
    font-weight: normal;
    padding: 0.75em 2em;
    margin-top: 40px; }
  .product .related-products h1 {
    font-size: 2.125em;
    color: #000;
    border-bottom: solid #eaeaea 2px;
    padding-bottom: 20px;
    margin-bottom: 55px;
    font-weight: normal; }
  @media (max-width: 875px) {
    .product .product-teaser,
    .product .slickUC,
    .product .product-extras {
      width: 100%; }
    .product .product-teaser {
      max-width: 400px;
      margin: 20px auto;
      display: block; } }

.page-news .node-news {
  padding: 50px 0 0; }
  .page-news .node-news .news-image {
    display: inline-block;
    width: 20%;
    vertical-align: text-top; }
  .page-news .node-news .news-body {
    display: inline-block;
    width: 78%;
    vertical-align: text-top; }
  .page-news .node-news h2 {
    font-family: "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 34px;
    color: #000;
    line-height: 1;
    font-weight: normal; }
  .page-news .node-news .field-name-body {
    color: #666766;
    font-size: 1em;
    margin: 0 0 1.25em;
    min-height: 110px; }
    .page-news .node-news .field-name-body .field-field-teaser {
      margin: 0 0 1.25em; }
    .page-news .node-news .field-name-body a {
      display: inline;
      word-break: break-word; }

.page-search main {
  padding-top: 25px; }

.page-search #search-form {
  background: #eaeaea;
  padding: 35px 25px; }
  @media (min-width: 979px) {
    .page-search #search-form {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 23.23176%; }
      .page-search #search-form:last-child {
        margin-right: 0; } }
  @media (max-width: 979px) {
    .page-search #search-form {
      display: none; } }
  .page-search #search-form label {
    margin: 0 0 20px 0;
    padding: 0;
    display: block;
    font-size: 18px;
    font-weight: normal;
    color: #000000;
    line-height: 1.2em; }
  .page-search #search-form input {
    padding: 10px;
    width: 100%;
    background-color: #fff;
    border: 0 none;
    border-radius: 0;
    -webkit-box-shadow: none;
            box-shadow: none;
    font-family: "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 14px;
    color: #676867;
    line-height: 1em;
    margin-bottom: 1.3em; }
  .page-search #search-form input[type="submit"] {
    margin: 0;
    padding: 12px 16px;
    font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 15px;
    font-weight: normal;
    color: #F76902;
    text-align: center;
    line-height: 1em;
    text-transform: uppercase;
    text-decoration: none;
    display: inline-block;
    background-color: transparent;
    border-radius: 4px;
    border: 2px solid #F76902;
    cursor: pointer;
    width: auto;
    -webkit-transition: all 500ms ease;
    transition: all 500ms ease; }
    .page-search #search-form input[type="submit"]:hover {
      background: #F76902;
      color: #fff; }
  .page-search #search-form .search-advanced {
    display: none; }

.page-search .search-results-container {
  margin-bottom: 1.25em; }
  @media (min-width: 979px) {
    .page-search .search-results-container {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 65.88078%;
      margin-left: 8.5298%; }
      .page-search .search-results-container:last-child {
        margin-right: 0; } }
  .page-search .search-results-container h3 {
    margin: 0 0 20px 0;
    padding: 20px 10px 20px 0;
    display: inline-block;
    font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 20px;
    font-weight: normal;
    color: #2d2d2d;
    line-height: 25px;
    text-transform: uppercase;
    border-bottom: 2px #bebebe solid; }
  .page-search .search-results-container h2 {
    margin: 0;
    padding: 20px 10px 20px 0;
    display: inline-block;
    font-family: "Montserrat", "Myriad Pro", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 0.8em;
    font-weight: normal;
    text-transform: uppercase; }
  .page-search .search-results-container p.search-snippet {
    color: #888;
    font-size: 0.8em; }

.quick-search .search-form,
main .search-form {
  position: relative;
  height: auto; }
  .quick-search .search-form > div > span,
  main .search-form > div > span {
    display: none; }
  .quick-search .search-form span.ui-helper-hidden-accessible,
  main .search-form span.ui-helper-hidden-accessible {
    display: none; }
  .quick-search .search-form ul#ui-id-1.ui-autocomplete.ui-front.ui-menu.ui-widget.ui-widget-content.ui-corner-all,
  .quick-search .search-form ul#ui-id-2.ui-autocomplete.ui-front.ui-menu.ui-widget.ui-widget-content.ui-corner-all,
  .quick-search .search-form ul#ui-id-3.ui-autocomplete.ui-front.ui-menu.ui-widget.ui-widget-content.ui-corner-all,
  main .search-form ul#ui-id-1.ui-autocomplete.ui-front.ui-menu.ui-widget.ui-widget-content.ui-corner-all,
  main .search-form ul#ui-id-2.ui-autocomplete.ui-front.ui-menu.ui-widget.ui-widget-content.ui-corner-all,
  main .search-form ul#ui-id-3.ui-autocomplete.ui-front.ui-menu.ui-widget.ui-widget-content.ui-corner-all {
    background-color: #fff;
    height: auto;
    overflow: scroll;
    border: solid #F76902 1px;
    width: 340px !important;
    min-width: 340px !important;
    max-height: 300px; }
    .quick-search .search-form ul#ui-id-1.ui-autocomplete.ui-front.ui-menu.ui-widget.ui-widget-content.ui-corner-all a,
    .quick-search .search-form ul#ui-id-2.ui-autocomplete.ui-front.ui-menu.ui-widget.ui-widget-content.ui-corner-all a,
    .quick-search .search-form ul#ui-id-3.ui-autocomplete.ui-front.ui-menu.ui-widget.ui-widget-content.ui-corner-all a,
    main .search-form ul#ui-id-1.ui-autocomplete.ui-front.ui-menu.ui-widget.ui-widget-content.ui-corner-all a,
    main .search-form ul#ui-id-2.ui-autocomplete.ui-front.ui-menu.ui-widget.ui-widget-content.ui-corner-all a,
    main .search-form ul#ui-id-3.ui-autocomplete.ui-front.ui-menu.ui-widget.ui-widget-content.ui-corner-all a {
      margin-left: 0;
      width: 303px; }
      .quick-search .search-form ul#ui-id-1.ui-autocomplete.ui-front.ui-menu.ui-widget.ui-widget-content.ui-corner-all a:before,
      .quick-search .search-form ul#ui-id-2.ui-autocomplete.ui-front.ui-menu.ui-widget.ui-widget-content.ui-corner-all a:before,
      .quick-search .search-form ul#ui-id-3.ui-autocomplete.ui-front.ui-menu.ui-widget.ui-widget-content.ui-corner-all a:before,
      main .search-form ul#ui-id-1.ui-autocomplete.ui-front.ui-menu.ui-widget.ui-widget-content.ui-corner-all a:before,
      main .search-form ul#ui-id-2.ui-autocomplete.ui-front.ui-menu.ui-widget.ui-widget-content.ui-corner-all a:before,
      main .search-form ul#ui-id-3.ui-autocomplete.ui-front.ui-menu.ui-widget.ui-widget-content.ui-corner-all a:before {
        display: none; }
  .quick-search .search-form .ui-autocomplete-field-group,
  .quick-search .search-form .ui-autocomplete-field-name,
  main .search-form .ui-autocomplete-field-group,
  main .search-form .ui-autocomplete-field-name {
    display: none; }

.server-error-page {
  text-align: center;
  margin-top: 184px; }
  .server-error-page h1 {
    font-size: 150px;
    color: #ccc;
    padding-top: 125px;
    padding-bottom: 75px;
    text-align: center;
    line-height: 120px;
    margin-bottom: 0; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXMiOlsiYXBwLnNjc3MiLCJfaW5pdC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvbm9kZS1ub3JtYWxpemUtc2Nzcy9fbm9ybWFsaXplLnNjc3MiLCJmdW5jdGlvbnMvX2Z1bmN0aW9ucy5zY3NzIiwiZnVuY3Rpb25zL19tYXRoLnNjc3MiLCJmdW5jdGlvbnMvX3NpemVzLnNjc3MiLCJfbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2JvdXJib24uc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fZGVwcmVjYXRpb24td2FybmluZ3Muc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fcHJlZml4ZXIuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fcHgtdG8tZW0uc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fYXNzZXQtcGlwZWxpbmUuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi1kZXByZWNhdGUuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2Fzc2lnbi1pbnB1dHMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2NvbnRhaW5zLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19jb250YWlucy1mYWxzeS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbGVuZ3RoLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1saWdodC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbnVtYmVyLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1zaXplLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19weC10by1lbS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcHgtdG8tcmVtLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19zaGFkZS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fc3RyaXAtdW5pdHMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3RpbnQuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3RyYW5zaXRpb24tcHJvcGVydHktbmFtZS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdW5wYWNrLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19tb2R1bGFyLXNjYWxlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fY29udmVydC11bml0cy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1hbmdsZS1wYXJzZXIuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLWFyZy1wYXJzZXIuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yZW5kZXItZ3JhZGllbnRzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fc2hhcGUtc2l6ZS1zdHJpcHBlci5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3N0ci10by1udW0uc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19hbmltYXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19hcHBlYXJhbmNlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2ZhY2UtdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tncm91bmQuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZ3JvdW5kLWltYWdlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYm9yZGVyLWltYWdlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fY2FsYy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2NvbHVtbnMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19maWx0ZXIuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mbGV4LWJveC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZvbnQtZmFjZS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2hpZHBpLW1lZGlhLXF1ZXJ5LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faHlwaGVucy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ltYWdlLXJlbmRlcmluZy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2tleWZyYW1lcy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2xpbmVhci1ncmFkaWVudC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BlcnNwZWN0aXZlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcGxhY2Vob2xkZXIuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19yYWRpYWwtZ3JhZGllbnQuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19zZWxlY3Rpb24uc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190ZXh0LWRlY29yYXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190cmFuc2Zvcm0uc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdXNlci1zZWxlY3Quc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1jb2xvci5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXN0eWxlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItd2lkdGguc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2J1dHRvbnMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2NsZWFyZml4LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19lbGxpcHNpcy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fZm9udC1zdGFja3Muc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2hpZGUtdGV4dC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fbWFyZ2luLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wYWRkaW5nLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3JldGluYS1pbWFnZS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fc2l6ZS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdGV4dC1pbnB1dHMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RpbWluZy1mdW5jdGlvbnMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RyaWFuZ2xlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL193b3JkLXdyYXAuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fbmVhdC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX25lYXQtaGVscGVycy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19wcml2YXRlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX25ldy1icmVha3BvaW50LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fZ3JpZC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3Zpc3VhbC1ncmlkLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fZGlzYWJsZS13YXJuaW5ncy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fcHJpdmF0ZS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fYm94LXNpemluZy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fb21lZ2Euc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX291dGVyLWNvbnRhaW5lci5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fc3Bhbi1jb2x1bW5zLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19yb3cuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3NoaWZ0LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19wYWQuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL3ctbWN1dGlsaXRpZXMvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX2ZpbGwtcGFyZW50LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19tZWRpYS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fdG8tZGVwcmVjYXRlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL192aXN1YWwtZ3JpZC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdy1tY3V0aWxpdGllcy9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fZGlzcGxheS1jb250ZXh0LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi93LW1jdXRpbGl0aWVzL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19kaXJlY3Rpb24tY29udGV4dC5zY3NzIiwiYmFzZS9fYmFzZS5zY3NzIiwiYmFzZS9fdmFyaWFibGVzLnNjc3MiLCJiYXNlL19ncmlkLXNldHRpbmdzLnNjc3MiLCJiYXNlL19idXR0b25zLnNjc3MiLCJiYXNlL19mb3Jtcy5zY3NzIiwiYmFzZS9fbGlzdHMuc2NzcyIsImJhc2UvX3RhYmxlcy5zY3NzIiwiYmFzZS9fdHlwb2dyYXBoeS5zY3NzIiwiX2dsb2JhbC5zY3NzIiwiZHJ1cGFsL19hZG1pbl9tZW51LnNjc3MiLCJkcnVwYWwvX2RydXBhbGlzbXMuc2NzcyIsInNlY3Rpb25zL19yaXQtYmFyLnNjc3MiLCJzZWN0aW9ucy9faGVhZGVyLnNjc3MiLCJzZWN0aW9ucy9fZm9vdGVyLnNjc3MiLCJjb21wb25lbnRzL19iYW5uZXIuc2NzcyIsImNvbXBvbmVudHMvX2JhY2stdG8tdG9wLnNjc3MiLCJjb21wb25lbnRzL19tZW51LS1mb290ZXIuc2NzcyIsImNvbXBvbmVudHMvX2ZlYXR1cmVkLXN0b3J5LWNhcm91c2VsLnNjc3MiLCJjb21wb25lbnRzL19zbGljay5zY3NzIiwiY29tcG9uZW50cy9fc2xpZGVycy5zY3NzIiwiY29tcG9uZW50cy9fYm9va3NoZWxmLXNsaWRlci5zY3NzIiwiY29tcG9uZW50cy9fbWVudS0tcXVpY2stbGlua3Muc2NzcyIsImNvbXBvbmVudHMvX3RpdGxlLWJhci5zY3NzIiwiY29tcG9uZW50cy9fdGFicy5zY3NzIiwiY29tcG9uZW50cy9fY29udGVudC1zdHlsZXMuc2NzcyIsImNvbXBvbmVudHMvX3NlbGVjdGJveC5zY3NzIiwiY29tcG9uZW50cy9fdWJlcmNhcnQuc2NzcyIsImNvbXBvbmVudHMvX2ZsZXhzbGlkZXIuc2NzcyIsImNvbXBvbmVudHMvX2hlcm8tc2xpZGVzaG93LnNjc3MiLCJjb21wb25lbnRzL21lbnVzL19tb2JpbGUtbWVudS0tbGlnaHQuc2NzcyIsImNvbXBvbmVudHMvbWVudXMvX2hlYWRlci1tZW51LS1saWdodC1kcm9wZG93bi5zY3NzIiwicGFnZXMvX3Byb2R1Y3RzLnNjc3MiLCJwYWdlcy9fbmV3cy5zY3NzIiwicGFnZXMvX3NlYXJjaF9yZXN1bHRzLnNjc3MiLCJwYWdlcy9fc2VydmVyLWVycm9yLXBhZ2VzLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcImluaXRcIjtcbkBpbXBvcnQgXCJub3JtYWxpemVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5AaW1wb3J0IFwiYm91cmJvblwiO1xuQGltcG9ydCBcIm5lYXRcIjtcbkBpbXBvcnQgXCJiYXNlL2Jhc2VcIjtcbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy8gQmFzZVxuQGltcG9ydCBcImRydXBhbC9hZG1pbl9tZW51XCI7XG5AaW1wb3J0IFwiZHJ1cGFsL2RydXBhbGlzbXNcIjtcbkBpbXBvcnQgXCJiYXNlL2J1dHRvbnNcIjtcblxuLy8gU2VjdGlvbnNcbkBpbXBvcnQgXCJzZWN0aW9ucy9yaXQtYmFyXCI7XG5AaW1wb3J0IFwic2VjdGlvbnMvaGVhZGVyXCI7XG5AaW1wb3J0IFwic2VjdGlvbnMvZm9vdGVyXCI7XG5cbi8vIENvbXBvbmVudHNcbkBpbXBvcnQgXCJjb21wb25lbnRzL2Jhbm5lclwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYmFjay10by10b3BcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL21lbnUtLWZvb3RlclwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvZmVhdHVyZWQtc3RvcnktY2Fyb3VzZWxcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3NsaWNrXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9zbGlkZXJzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9ib29rc2hlbGYtc2xpZGVyXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9tZW51LS1xdWljay1saW5rc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvdGl0bGUtYmFyXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy90YWJzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9jb250ZW50LXN0eWxlc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvc2VsZWN0Ym94LnNjc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3ViZXJjYXJ0LnNjc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2ZsZXhzbGlkZXJcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2hlcm8tc2xpZGVzaG93XCI7XG5cbi8vIE1lbnVzXG5AaW1wb3J0IFwiY29tcG9uZW50cy9tZW51cy9tb2JpbGUtbWVudS0tbGlnaHRcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL21lbnVzL2hlYWRlci1tZW51LS1saWdodC1kcm9wZG93blwiO1xuLy9AaW1wb3J0IFwiY29tcG9uZW50cy9tZW51cy9oZWFkZXItbWVudS0tc3RhdGljLWxpbmtzXCI7XG5cbkBpbXBvcnQgXCJwYWdlcy9wcm9kdWN0c1wiO1xuQGltcG9ydCBcInBhZ2VzL25ld3NcIjtcbkBpbXBvcnQgXCJwYWdlcy9zZWFyY2hfcmVzdWx0c1wiO1xuQGltcG9ydCBcInBhZ2VzL3NlcnZlci1lcnJvci1wYWdlc1wiO1xuIiwiXG4kbW9iaWxlLWJyZWFrOiA5NzlweDtcbiRmb250LWJhc2Utc2l6ZTogMTZweDtcbiIsIi8qISBub3JtYWxpemUuY3NzIHY3LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICovXG5cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5mb290ZXIsXG5oZWFkZXIsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cblxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbm1haW4geyAvKiAxICovXG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0czsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctIGFuZCBGaXJlZm94IDM5LS5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAqL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5cbmF1ZGlvLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKipcbiAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5odG1sIFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFLCBhbmQgRmlyZWZveC5cbiAqL1xuXG5kZXRhaWxzLCAvKiAxICovXG5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogU2NyaXB0aW5nXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5cbmNhbnZhcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIEhpZGRlblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXG4gKi9cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEZ1bmN0aW9ucyBJbmNsdWRlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQGltcG9ydCBcIm1hdGhcIjtcbkBpbXBvcnQgXCJzaXplc1wiO1xuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIE1hdGggRnVuY3Rpb25zXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AZnVuY3Rpb24gbG93ZXItYm91bmQoJHJhbmdlKSB7XG4gIEBpZiBsZW5ndGgoJHJhbmdlKSA8PSAwIHtcbiAgICBAcmV0dXJuIDA7XG4gIH1cbiAgQHJldHVybiBudGgoJHJhbmdlLCAxKTtcbn1cblxuQGZ1bmN0aW9uIHVwcGVyLWJvdW5kKCRyYW5nZSkge1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPCAyIHtcbiAgICBAcmV0dXJuIDk5OTk5OTk5OTk5OTtcbiAgfVxuICBAcmV0dXJuIG50aCgkcmFuZ2UsIDIpO1xufSIsIlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXR6KCR2YWx1ZSkge1xuXHRAcmV0dXJuICgkdmFsdWUgLyAoJHZhbHVlICogMCArIDEpKTtcbn1cblxuXG5AZnVuY3Rpb24gZm9udC1zaXplKCRweHZhbCwgJGJhc2U6ICRmb250LWJhc2Utc2l6ZSkge1xuXHRAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuXHRcdCRweHZhbDogc3RyaXAtdW5pdHooJHB4dmFsKTtcblx0fVxuXHRAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG5cdFx0JGJhc2U6IHN0cmlwLXVuaXR6KCRiYXNlKTtcblx0fVxuXG5cdEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFlbTtcbn1cbiIsIkBtaXhpbiBmb250LXNtb290aGluZygkdmFsdWU6IG9uKSB7XG4gIEBpZiAkdmFsdWUgPT0gb24ge1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IHN1YnBpeGVsLWFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBhdXRvO1xuICB9XG59XG5cbkBmdW5jdGlvbiBsb3dlci1ib3VuZCgkcmFuZ2UpIHtcbiAgQGlmIGxlbmd0aCgkcmFuZ2UpIDw9IDAge1xuICAgIEByZXR1cm4gMDtcbiAgfVxuICBAcmV0dXJuIG50aCgkcmFuZ2UsIDEpO1xufVxuXG5AZnVuY3Rpb24gdXBwZXItYm91bmQoJHJhbmdlKSB7XG4gIEBpZiBsZW5ndGgoJHJhbmdlKSA8IDIge1xuICAgIEByZXR1cm4gOTk5OTk5OTk5OTk5O1xuICB9XG4gIEByZXR1cm4gbnRoKCRyYW5nZSwgMik7XG59XG5cbkBtaXhpbiBtcSgkc2l6ZSkge1xuICBAbWVkaWEgI3skc2l6ZX0geyBAY29udGVudCB9XG59XG5cbkBtaXhpbiBiZXR3ZWVuKCRtaW4sICRtYXgpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICN7JG1pbn0pIGFuZCAobWF4LXdpZHRoOiAjeyRtYXh9KSB7IEBjb250ZW50IH1cbn1cblxuQG1peGluIG1pbigkc2l6ZSkge1xuICBAbWVkaWEgKG1pbi13aWR0aDogI3skc2l6ZX0pIHsgQGNvbnRlbnQgfVxufVxuXG5AbWl4aW4gbWF4KCRzaXplKSB7XG4gIEBtZWRpYShtYXgtd2lkdGg6ICN7JHNpemV9KSB7IEBjb250ZW50IH1cbn1cblxuQG1peGluIGdyaWQtcm93KCkge1xuICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoKTtcbiAgQGluY2x1ZGUgcGFkKDAgJGd1dHRlci8yKTtcbn1cblxuQG1peGluIGNvbGxhcHNlLXJpZ2h0KCkge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG5AbWl4aW4gY29sbGFwc2UtbGVmdCgpIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG5AbWl4aW4gY29sbGFwc2UoKSB7XG4gIEBpbmNsdWRlIGNvbGxhcHNlLWxlZnQoKTtcbiAgQGluY2x1ZGUgY29sbGFwc2UtcmlnaHQoKTtcbn1cblxuQG1peGluIHplcm8oKSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuQG1peGluIHBscigkcGFkKSB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiBwdGIoJHBhZCkge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5cbkBtaXhpbiBtbHIoJHBhZCkge1xuICBtYXJnaW4tbGVmdDogJHBhZDtcbiAgbWFyZ2luLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIG10YigkcGFkKSB7XG4gIG1hcmdpbi1sZWZ0OiAkcGFkO1xuICBtYXJnaW4tcmlnaHQ6ICRwYWQ7XG59XG5cbkBtaXhpbiBidXR0b24oJHJlc3QtY29sb3IsICRob3Zlci1jb2xvcjogJHJlc3QtY29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHJlc3QtY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGNvbG9yOiAjZmZmO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZzogLjc1ZW0gMWVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIEBpbmNsdWRlIGZvbnQtc21vb3RoaW5nKG9uKTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyMDBtcyBlYXNlO1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItY29sb3I7XG4gIH1cbn1cbiIsIi8vIEJvdXJib24gNC4zLjRcbi8vIGh0dHA6Ly9ib3VyYm9uLmlvXG4vLyBDb3B5cmlnaHQgMjAxMS0yMDE3IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbkBpbXBvcnQgXCJzZXR0aW5ncy9kZXByZWNhdGlvbi13YXJuaW5nc1wiO1xuQGltcG9ydCBcInNldHRpbmdzL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvcHgtdG8tZW1cIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9hc3NldC1waXBlbGluZVwiO1xuXG5AaW1wb3J0IFwiYm91cmJvbi1kZXByZWNhdGVcIjtcblxuQGltcG9ydCBcImZ1bmN0aW9ucy9hc3NpZ24taW5wdXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zLWZhbHN5XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxlbmd0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1saWdodFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1udW1iZXJcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtc2l6ZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1lbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1yZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc2hhZGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc3RyaXAtdW5pdHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdGludFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdW5wYWNrXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL21vZHVsYXItc2NhbGVcIjtcblxuQGltcG9ydCBcImhlbHBlcnMvY29udmVydC11bml0c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZGlyZWN0aW9uYWwtdmFsdWVzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9mb250LXNvdXJjZS1kZWNsYXJhdGlvblwiO1xuQGltcG9ydCBcImhlbHBlcnMvZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWFuZ2xlLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1hcmctcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmVuZGVyLWdyYWRpZW50c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvc2hhcGUtc2l6ZS1zdHJpcHBlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvc3RyLXRvLW51bVwiO1xuXG5AaW1wb3J0IFwiY3NzMy9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL2FwcGVhcmFuY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tmYWNlLXZpc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmRcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JvcmRlci1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvY2FsY1wiO1xuQGltcG9ydCBcImNzczMvY29sdW1uc1wiO1xuQGltcG9ydCBcImNzczMvZmlsdGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9mbGV4LWJveFwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJjc3MzL2hpZHBpLW1lZGlhLXF1ZXJ5XCI7XG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9pbWFnZS1yZW5kZXJpbmdcIjtcbkBpbXBvcnQgXCJjc3MzL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcImNzczMvbGluZWFyLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImNzczMvcGxhY2Vob2xkZXJcIjtcbkBpbXBvcnQgXCJjc3MzL3JhZGlhbC1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvc2VsZWN0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90ZXh0LWRlY29yYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zZm9ybVwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNpdGlvblwiO1xuQGltcG9ydCBcImNzczMvdXNlci1zZWxlY3RcIjtcblxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItY29sb3JcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItc3R5bGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXdpZHRoXCI7XG5AaW1wb3J0IFwiYWRkb25zL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZWxsaXBzaXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZm9udC1zdGFja3NcIjtcbkBpbXBvcnQgXCJhZGRvbnMvaGlkZS10ZXh0XCI7XG5AaW1wb3J0IFwiYWRkb25zL21hcmdpblwiO1xuQGltcG9ydCBcImFkZG9ucy9wYWRkaW5nXCI7XG5AaW1wb3J0IFwiYWRkb25zL3Bvc2l0aW9uXCI7XG5AaW1wb3J0IFwiYWRkb25zL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwiYWRkb25zL3JldGluYS1pbWFnZVwiO1xuQGltcG9ydCBcImFkZG9ucy9zaXplXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RleHQtaW5wdXRzXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RpbWluZy1mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdHJpYW5nbGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvd29yZC13cmFwXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEVuYWJsZSBvciBkaXNhYmxlIG91dHB1dCBvZiBCb3VyYm9u4oCZcyBkZXByZWNhdGlvbi1yZWxhdGVkIFNhc3Mgd2FybmluZ3MuXG4vLy8gVGhpcyB2YXJpYWJsZSBtdXN0IGJlIGRlY2xhcmVkIF9iZWZvcmVfIGltcG9ydGluZyBCb3VyYm9uLlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IHRydWUgIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHbG9iYWwgdmFyaWFibGVzIHRvIGVuYWJsZSBvciBkaXNhYmxlIHZlbmRvciBwcmVmaXhlc1xuXG4kcHJlZml4LWZvci13ZWJraXQ6ICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1tb3ppbGxhOiAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1taWNyb3NvZnQ6IHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1vcGVyYTogICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1zcGVjOiAgICAgIHRydWUgIWRlZmF1bHQ7XG4iLCIkZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgZ2xvYmFsIHNldHRpbmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGAkYXNzZXQtcGlwZWxpbmVgIHZhcmlhYmxlIGZvciBhbGwgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGl0LlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kYXNzZXQtcGlwZWxpbmU6IGZhbHNlICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gVGhyb3dzIFNhc3Mgd2FybmluZ3MgdG8gYW5ub3VuY2UgbGlicmFyeSBkZXByZWNhdGlvbnMuIFlvdSBjYW4gZGlzYWJsZSB0aGVtXG4vLy8gYnkgc2V0dGluZyB0aGUgYCRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nc2AgdmFyaWFibGUgdG8gYGZhbHNlYC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG5AbWl4aW4gX2JvdXJib24tZGVwcmVjYXRlKCRmZWF0dXJlLCAkbWVzc2FnZTogbnVsbCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYCN7JGZlYXR1cmV9YCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICAgIFwicmVtb3ZlZCBpbiA1LjAuMC4gI3skbWVzc2FnZX1cIjtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoJGZlYXR1cmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlKCRmZWF0dXJlLCBcIldlIHN1Z2dlc3QgdXNpbmcgYW4gYXV0b21hdGVkIFwiICtcbiAgICBcInByZWZpeGluZyB0b29sLCBsaWtlIEF1dG9wcmVmaXhlci5cIik7XG59XG4iLCJAZnVuY3Rpb24gYXNzaWduLWlucHV0cygkaW5wdXRzLCAkcHNldWRvOiBudWxsKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgYXNzaWduLWlucHV0c2AgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJGxpc3Q6ICgpO1xuXG4gIEBlYWNoICRpbnB1dCBpbiAkaW5wdXRzIHtcbiAgICAkaW5wdXQ6IHVucXVvdGUoJGlucHV0KTtcbiAgICAkaW5wdXQ6IGlmKCRwc2V1ZG8sICRpbnB1dCArIFwiOlwiICsgJHBzZXVkbywgJGlucHV0KTtcbiAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkaW5wdXQsIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxpc3Q7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgaWYgYSBsaXN0IGNvbnRhaW5zIGEgdmFsdWUocykuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3Rcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWx1ZXNcbi8vLyAgIEEgc2luZ2xlIHZhbHVlIG9yIGxpc3Qgb2YgdmFsdWVzIHRvIGNoZWNrIGZvci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgY29udGFpbnMoJGxpc3QsICR2YWx1ZSlcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBjb250YWlucygkbGlzdCwgJHZhbHVlcy4uLikge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGNvbnRhaW5zYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgQGlmIHR5cGUtb2YoaW5kZXgoJGxpc3QsICR2YWx1ZSkpICE9IFwibnVtYmVyXCIge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgaWYgYSBsaXN0IGRvZXMgbm90IGNvbnRhaW5zIGEgdmFsdWUuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3Rcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMtZmFsc3koJGxpc3QpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBjb250YWlucy1mYWxzeWAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgIEBpZiBub3QgJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIGxlbmd0aC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcblxuQGZ1bmN0aW9uIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBpcy1sZW5ndGhgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpICE9IFwibnVsbFwiIGFuZCAoc3RyLXNsaWNlKCR2YWx1ZSArIFwiXCIsIDEsIDQpID09IFwiY2FsY1wiXG4gICAgICAgb3IgaW5kZXgoYXV0byBpbmhlcml0IGluaXRpYWwgMCwgJHZhbHVlKVxuICAgICAgIG9yICh0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiBhbmQgbm90KHVuaXRsZXNzKCR2YWx1ZSkpKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm9ncmFtYXRpY2FsbHkgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgY29sb3IgaXMgbGlnaHQgb3IgZGFyay5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9yb2JvdHMudGhvdWdodGJvdC5jb20vY2xvc2VyLWxvb2stY29sb3ItbGlnaHRuZXNzXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yIChIZXgpfSAkY29sb3Jcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgaXMtbGlnaHQoJGNvbG9yKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGlzLWxpZ2h0KCRoZXgtY29sb3IpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBpcy1saWdodGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJC1sb2NhbC1yZWQ6IHJlZChyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ncmVlbjogZ3JlZW4ocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtYmx1ZTogYmx1ZShyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1saWdodG5lc3M6ICgkLWxvY2FsLXJlZCAqIDAuMjEyNiArICQtbG9jYWwtZ3JlZW4gKiAwLjcxNTIgKyAkLWxvY2FsLWJsdWUgKiAwLjA3MjIpIC8gMjU1O1xuXG4gIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MgPiAwLjY7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuXG5AZnVuY3Rpb24gaXMtbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGlzLW51bWJlcmAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQHJldHVybiBjb250YWlucyhcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIiAwIDEgMiAzIDQgNSA2IDcgOCA5LCAkdmFsdWUpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBzaXplLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG5cbkBmdW5jdGlvbiBpcy1zaXplKCR2YWx1ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGlzLXNpemVgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gaXMtbGVuZ3RoKCR2YWx1ZSlcbiAgICAgICAgICBvciBjb250YWlucyhcImZpbGxcIiBcImZpdC1jb250ZW50XCIgXCJtaW4tY29udGVudFwiIFwibWF4LWNvbnRlbnRcIiwgJHZhbHVlKTtcblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSBlbSgxMikgd2hlbiB0aGUgcGFyZW50IGlzIDE2cHhcbi8vIGlmIHRoZSBwYXJlbnQgaXMgYW5vdGhlciB2YWx1ZSBzYXkgMjRweCB3cml0ZSBlbSgxMiwgMjQpXG5cbkBmdW5jdGlvbiBlbSgkcHh2YWwsICRiYXNlOiAkZW0tYmFzZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGVtYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFlbTtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgcmVtKDEyKVxuLy8gQXNzdW1lcyAkZW0tYmFzZSBpcyB0aGUgZm9udC1zaXplIG9mIDxodG1sPlxuXG5AZnVuY3Rpb24gcmVtKCRweHZhbCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYHJlbWAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cblxuICAkYmFzZTogJGVtLWJhc2U7XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMXJlbTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCBibGFjay5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiBibGFjayB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgjZmZiYjUyLCA2MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY0YTIwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCMwMDAsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU3RyaXBzIHRoZSB1bml0IGZyb20gYSBudW1iZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoV2l0aCBVbml0KX0gJHZhbHVlXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICRkaW1lbnNpb246IHN0cmlwLXVuaXRzKDEwZW0pO1xuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgJGRpbWVuc2lvbjogMTA7XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXIgKFVuaXRsZXNzKX1cblxuQGZ1bmN0aW9uIHN0cmlwLXVuaXRzKCR2YWx1ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYHN0cmlwLXVuaXRzYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAgYW5kIHJlcGxhY2VkIGJ5IHRoZSBgc3RyaXAtdW5pdGAgZnVuY3Rpb24uXCI7XG4gIH1cblxuICBAcmV0dXJuICgkdmFsdWUgLyAoJHZhbHVlICogMCArIDEpKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCB3aGl0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiB3aGl0ZSB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCM2ZWNhYTYsIDQwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNhOGRmYzk7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjZmZmLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIi8vIFJldHVybiB2ZW5kb3ItcHJlZml4ZWQgcHJvcGVydHkgbmFtZXMgaWYgYXBwcm9wcmlhdGVcbi8vIEV4YW1wbGU6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoKHRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmQpLCBtb3opIC0+IC1tb3otdHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BzLCAkdmVuZG9yOiBmYWxzZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXNgIGlzIGRlcHJlY2F0ZWQgXCIgK1xuICAgIFwiYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICRuZXctcHJvcHM6ICgpO1xuXG4gIEBlYWNoICRwcm9wIGluICRwcm9wcyB7XG4gICAgJG5ldy1wcm9wczogYXBwZW5kKCRuZXctcHJvcHMsIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvciksIGNvbW1hKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJG5ldy1wcm9wcztcbn1cblxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvcjogZmFsc2UpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVgIGlzIGRlcHJlY2F0ZWQgXCIgK1xuICAgIFwiYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIC8vIHB1dCBvdGhlciBwcm9wZXJ0aWVzIHRoYXQgbmVlZCB0byBiZSBwcmVmaXhlZCBoZXJlIGFzd2VsbFxuICBAaWYgJHZlbmRvciBhbmQgJHByb3AgPT0gdHJhbnNmb3JtIHtcbiAgICBAcmV0dXJuIHVucXVvdGUoJy0nKyR2ZW5kb3IrJy0nKyRwcm9wKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkcHJvcDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ29udmVydHMgc2hvcnRoYW5kIHRvIHRoZSA0LXZhbHVlIHN5bnRheC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3J0aGFuZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogdW5wYWNrKDFlbSAyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IDFlbSAyZW0gMWVtIDJlbTtcbi8vLyAgIH1cblxuQGZ1bmN0aW9uIHVucGFjaygkc2hvcnRoYW5kKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgdW5wYWNrYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAyIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAzKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcbiAgfVxufVxuIiwiLy8gU2NhbGluZyBWYXJpYWJsZXNcbiRnb2xkZW46ICAgICAgICAgICAxLjYxODtcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcbiRtaW5vci10aGlyZDogICAgICAxLjI7XG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xuJG9jdGF2ZTogICAgICAgICAgIDI7XG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XG4kZG91YmxlLW9jdGF2ZTogICAgNDtcblxuJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2U7XG5cbiRtb2R1bGFyLXNjYWxlLXJhdGlvOiAkcGVyZmVjdC1mb3VydGggIWRlZmF1bHQ7XG4kbW9kdWxhci1zY2FsZS1iYXNlOiBlbSgkZW0tYmFzZSkgIWRlZmF1bHQ7XG5cbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc7XG5cbkBmdW5jdGlvbiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZTogJG1vZHVsYXItc2NhbGUtYmFzZSwgJHJhdGlvOiAkbW9kdWxhci1zY2FsZS1yYXRpbykge1xuICAkdjE6IG50aCgkdmFsdWUsIDEpO1xuICAkdjI6IG50aCgkdmFsdWUsIGxlbmd0aCgkdmFsdWUpKTtcbiAgJHZhbHVlOiAkdjE7XG5cbiAgLy8gc2NhbGUgJHYyIHRvIGp1c3QgYWJvdmUgJHYxXG4gIEB3aGlsZSAkdjIgPiAkdjEge1xuICAgICR2MjogKCR2MiAvICRyYXRpbyk7IC8vIHdpbGwgYmUgb2ZmLWJ5LTFcbiAgfVxuICBAd2hpbGUgJHYyIDwgJHYxIHtcbiAgICAkdjI6ICgkdjIgKiAkcmF0aW8pOyAvLyB3aWxsIGZpeCBvZmYtYnktMVxuICB9XG5cbiAgLy8gY2hlY2sgQUZURVIgc2NhbGluZyAkdjIgdG8gcHJldmVudCBkb3VibGUtY291bnRpbmcgY29ybmVyLWNhc2VcbiAgJGRvdWJsZS1zdHJhbmRlZDogJHYyID4gJHYxO1xuXG4gIEBpZiAkaW5jcmVtZW50ID4gMCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkaW5jcmVtZW50IHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxICogJHJhdGlvKSA+ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgKiAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAqICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkaW5jcmVtZW50IDwgMCB7XG4gICAgLy8gYWRqdXN0ICR2MiB0byBqdXN0IGJlbG93ICR2MVxuICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIHtcbiAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tICRpbmNyZW1lbnQgdGhyb3VnaCAtMSB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAvICRyYXRpbykgPCAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgLyAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3Igc3RyLXRvLW51bSBmbi5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfY29udmVydC11bml0cygkbnVtYmVyLCAkdW5pdCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9jb252ZXJ0LXVuaXRzYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIFwiICtcbiAgICBcImJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkc3RyaW5nczogXCJweFwiLCBcImNtXCIsIFwibW1cIiwgXCIlXCIsIFwiY2hcIiwgXCJwaWNhXCIsIFwiaW5cIiwgXCJlbVwiLCBcInJlbVwiLCBcInB0XCIsIFwicGNcIiwgXCJleFwiLCBcInZ3XCIsIFwidmhcIiwgXCJ2bWluXCIsIFwidm1heFwiLCBcImRlZ1wiLCBcInJhZFwiLCBcImdyYWRcIiwgXCJ0dXJuXCI7XG4gICR1bml0czogICAxcHgsIDFjbSwgMW1tLCAxJSwgMWNoLCAxcGljYSwgMWluLCAxZW0sIDFyZW0sIDFwdCwgMXBjLCAxZXgsIDF2dywgMXZoLCAxdm1pbiwgMXZtYXgsIDFkZWcsIDFyYWQsIDFncmFkLCAxdHVybjtcbiAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJHVuaXQpO1xuXG4gIEBpZiBub3QgJGluZGV4IHtcbiAgICBAd2FybiBcIlVua25vd24gdW5pdCBgI3skdW5pdH1gLlwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkbnVtYmVyKSAhPSBcIm51bWJlclwiIHtcbiAgICBAd2FybiBcImAjeyRudW1iZXJ9IGlzIG5vdCBhIG51bWJlcmBcIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQHJldHVybiAkbnVtYmVyICogbnRoKCR1bml0cywgJGluZGV4KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpcmVjdGlvbmFsLXByb3BlcnR5IG1peGlucyBhcmUgc2hvcnRoYW5kcyBmb3Igd3JpdGluZyBwcm9wZXJ0aWVzIGxpa2UgdGhlIGZvbGxvd2luZ1xuLy8vXG4vLy8gQGlnbm9yZSBZb3UgY2FuIGFsc28gdXNlIGBmYWxzZWAgaW5zdGVhZCBvZiBgbnVsbGAuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGRpcmVjdGlvbmFsIHZhbHVlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkb3R0ZWQgbnVsbCk7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgMTBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuLy8vICAgICBtYXJnaW4tbGVmdDogMDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH1cblxuQGZ1bmN0aW9uIGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGNvbGxhcHNlLWRpcmVjdGlvbmFsc2AgaXMgZGVwcmVjYXRlZCBhbmQgXCIgK1xuICAgIFwid2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJG91dHB1dDogbnVsbDtcblxuICAkYTogbnRoKCR2YWxzLCAxKTtcbiAgJGI6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCAyKSk7XG4gICRjOiBpZihsZW5ndGgoJHZhbHMpIDwgMywgJGEsIG50aCgkdmFscywgMykpO1xuICAkZDogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIGlmKGxlbmd0aCgkdmFscykgPCA0LCAyLCA0KSkpO1xuXG4gIEBpZiAkYSA9PSAwIHsgJGE6IDA7IH1cbiAgQGlmICRiID09IDAgeyAkYjogMDsgfVxuICBAaWYgJGMgPT0gMCB7ICRjOiAwOyB9XG4gIEBpZiAkZCA9PSAwIHsgJGQ6IDA7IH1cblxuICBAaWYgJGEgPT0gJGIgYW5kICRhID09ICRjIGFuZCAkYSA9PSAkZCB7ICRvdXRwdXQ6ICRhOyAgICAgICAgICB9XG4gIEBlbHNlIGlmICRhID09ICRjIGFuZCAkYiA9PSAkZCAgICAgICAgIHsgJG91dHB1dDogJGEgJGI7ICAgICAgIH1cbiAgQGVsc2UgaWYgJGIgPT0gJGQgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYzsgICAgfVxuICBAZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjICRkOyB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuXG4vLy8gT3V0cHV0IGRpcmVjdGlvbmFsIHByb3BlcnRpZXMsIGZvciBpbnN0YW5jZSBgbWFyZ2luYC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcmVcbi8vLyAgIFByZWZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN1ZlxuLy8vICAgU3VmZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgdmFsdWVzXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbGxhcHNlLWRpcmVjdGlvbmFsc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcblxuQG1peGluIGRpcmVjdGlvbmFsLXByb3BlcnR5KCRwcmUsICRzdWYsICR2YWxzKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZShcImRpcmVjdGlvbmFsLXByb3BlcnR5XCIpO1xuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gIC8vIFByb3BlcnR5IE5hbWVzXG4gICR0b3A6ICAgICRwcmUgKyBcIi10b3BcIiAgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRib3R0b206ICRwcmUgKyBcIi1ib3R0b21cIiArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRsZWZ0OiAgICRwcmUgKyBcIi1sZWZ0XCIgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRyaWdodDogICRwcmUgKyBcIi1yaWdodFwiICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRhbGw6ICAgICRwcmUgKyAgICAgICAgICAgICBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuXG4gICR2YWxzOiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpO1xuXG4gIEBpZiBjb250YWlucy1mYWxzeSgkdmFscykge1xuICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skdG9wfTogbnRoKCR2YWxzLCAxKTsgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAxKTsgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRyaWdodH06IG50aCgkdmFscywgMik7IH1cbiAgICB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAyIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAxKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDMge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gNCB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDQpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCA0KTsgfVxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgI3skYWxsfTogJHZhbHM7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIi8vIFVzZWQgZm9yIGNyZWF0aW5nIHRoZSBzb3VyY2Ugc3RyaW5nIGZvciBmb250cyB1c2luZyBAZm9udC1mYWNlXG4vLyBSZWZlcmVuY2U6IGh0dHA6Ly9nb28uZ2wvUnUxYktQXG5cbkBmdW5jdGlvbiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBmb250LXVybC1wcmVmaXhlcmAgaXMgZGVwcmVjYXRlZCBhbmQgXCIgK1xuICAgIFwid2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICBAcmV0dXJuIGZvbnQtdXJsO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIHVybDtcbiAgfVxufVxuXG5AZnVuY3Rpb24gZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzLFxuICAkZm9udC11cmwpIHtcblxuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGZvbnQtc291cmNlLWRlY2xhcmF0aW9uYCBpcyBkZXByZWNhdGVkIFwiICtcbiAgICBcImFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkc3JjOiAoKTtcblxuICAkZm9ybWF0cy1tYXA6IChcbiAgICBlb3Q6ICAgXCIjeyRmaWxlLXBhdGh9LmVvdD8jaWVmaXhcIiBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSxcbiAgICB3b2ZmMjogXCIjeyRmaWxlLXBhdGh9LndvZmYyXCIgZm9ybWF0KFwid29mZjJcIiksXG4gICAgd29mZjogIFwiI3skZmlsZS1wYXRofS53b2ZmXCIgZm9ybWF0KFwid29mZlwiKSxcbiAgICB0dGY6ICAgXCIjeyRmaWxlLXBhdGh9LnR0ZlwiIGZvcm1hdChcInRydWV0eXBlXCIpLFxuICAgIHN2ZzogICBcIiN7JGZpbGUtcGF0aH0uc3ZnIyN7JGZvbnQtZmFtaWx5fVwiIGZvcm1hdChcInN2Z1wiKVxuICApO1xuXG4gIEBlYWNoICRrZXksICR2YWx1ZXMgaW4gJGZvcm1hdHMtbWFwIHtcbiAgICBAaWYgY29udGFpbnMoJGZpbGUtZm9ybWF0cywgJGtleSkge1xuICAgICAgJGZpbGUtcGF0aDogbnRoKCR2YWx1ZXMsIDEpO1xuICAgICAgJGZvbnQtZm9ybWF0OiBudGgoJHZhbHVlcywgMik7XG5cbiAgICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCBmb250LXVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHNyYztcbn1cbiIsIkBmdW5jdGlvbiBfZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtdHlwZSwgJGdyYWRpZW50LXBvc2l0aW9ucykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICBAaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IGxpbmVhcilcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJGdyYWRpZW50LXBvc2l0aW9ucztcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfbGluZWFyLWFuZ2xlLXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJG9mZnNldDogbnVsbDtcbiAgJHVuaXQtc2hvcnQ6ICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDIsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdW5pdC1sb25nOiAgIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgQGlmICgkdW5pdC1sb25nID09IFwiZ3JhZFwiKSBvclxuICAgICAgKCR1bml0LWxvbmcgPT0gXCJ0dXJuXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1sb25nID09IFwiZ3JhZFwiLCAtMTAwZ3JhZCAqIDMsIC0wLjc1dHVybik7XG4gIH1cblxuICBAZWxzZSBpZiAoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIikgb3JcbiAgICAgICAgICAgKCR1bml0LXNob3J0ID09IFwicmFkXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1zaG9ydCA9PSBcImRlZ1wiLCAtOTAgKiAzLCAxLjZyYWQpO1xuICB9XG5cbiAgQGlmICRvZmZzZXQge1xuICAgICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgICAkbnVtOiBfc3RyLXRvLW51bSgkZmlyc3QtdmFsKTtcblxuICAgICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICgkb2Zmc2V0IC0gJG51bSkgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9saW5lYXItZ3JhZGllbnQtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRoYXMtbXVsdGlwbGUtdmFsczogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiIFwiKTtcbiAgJGhhcy1zaW5nbGUtcG9zaXRpb246IHVucXVvdGUoX3Bvc2l0aW9uLWZsaXBwZXIoJGZpcnN0LXZhbCkgKyBcIlwiKTtcbiAgJGhhcy1hbmdsZTogaXMtbnVtYmVyKHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAxKSk7XG5cbiAgQGlmICRoYXMtbXVsdGlwbGUtdmFscyB7XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1zaW5nbGUtcG9zaXRpb24gIT0gXCJcIiB7XG4gICAgJHBvczogdW5xdW90ZSgkaGFzLXNpbmdsZS1wb3NpdGlvbiArIFwiXCIpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1hbmdsZSB7XG4gICAgLy8gUm90YXRlIGRlZ3JlZSBmb3Igd2Via2l0XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9saW5lYXItcG9zaXRpb25zLXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgJHR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHNwZWM6IG51bGw7XG4gICRkZWdyZWU6IG51bGw7XG4gICRzaWRlOiBudWxsO1xuICAkY29ybmVyOiBudWxsO1xuICAkbGVuZ3RoOiBsZW5ndGgoJHBvcyk7XG4gIC8vIFBhcnNlIFNpZGUgYW5kIGNvcm5lciBwb3NpdGlvbnNcbiAgQGlmICgkbGVuZ3RoID4gMSkge1xuICAgIEBpZiBudGgoJHBvcywgMSkgPT0gXCJ0b1wiIHsgLy8gTmV3ZXIgc3ludGF4XG4gICAgICAkc2lkZTogbnRoKCRwb3MsIDIpO1xuXG4gICAgICBAaWYgJGxlbmd0aCA9PSAyIHsgLy8gZWcuIHRvIHRvcFxuICAgICAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHsgLy8gZWcuIHRvIHRvcCBsZWZ0XG4gICAgICAgICRjb3JuZXI6IG50aCgkcG9zLCAzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAyIHsgLy8gT2xkZXIgc3ludGF4IChcInRvcCBsZWZ0XCIpXG4gICAgICAkc2lkZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDEpKTtcbiAgICAgICRjb3JuZXI6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgfVxuXG4gICAgQGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgICRzcGVjOiB0byAkc2lkZSAkY29ybmVyO1xuICB9XG4gIEBlbHNlIGlmICRsZW5ndGggPT0gMSB7XG4gICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICBAaWYgJHR5cGUgPT0gc3RyaW5nIHtcbiAgICAgICRkZWdyZWU6ICRwb3M7XG4gICAgICAkc3BlYzogdG8gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRkZWdyZWU6IC0yNzAgLSAkcG9zOyAvL3JvdGF0ZSB0aGUgZ3JhZGllbnQgb3Bwb3NpdGUgZnJvbSBzcGVjXG4gICAgICAkc3BlYzogJHBvcztcbiAgICB9XG4gIH1cbiAgJGRlZ3JlZTogdW5xdW90ZSgkZGVncmVlICsgXCIsXCIpO1xuICAkc3BlYzogICB1bnF1b3RlKCRzcGVjICsgXCIsXCIpO1xuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJGRlZ3JlZSAkc3BlYztcbn1cblxuQGZ1bmN0aW9uIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfcG9zaXRpb24tZmxpcHBlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQHJldHVybiBpZigkcG9zID09IGxlZnQsIHJpZ2h0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSByaWdodCwgbGVmdCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gdG9wLCBib3R0b20sIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IGJvdHRvbSwgdG9wLCBudWxsKTtcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkdmFsLTE6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaGFzLW11bHRpcGxlLXZhbHMgLSAxKTtcbiAgJHZhbC0yOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGhhcy1tdWx0aXBsZS12YWxzICsgMSwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR2YWwtMzogbnVsbDtcbiAgJGhhcy12YWwtMzogc3RyLWluZGV4KCR2YWwtMiwgXCIgXCIpO1xuXG4gIEBpZiAkaGFzLXZhbC0zIHtcbiAgICAkdmFsLTM6IHN0ci1zbGljZSgkdmFsLTIsICRoYXMtdmFsLTMgKyAxLCBzdHItbGVuZ3RoKCR2YWwtMikpO1xuICAgICR2YWwtMjogc3RyLXNsaWNlKCR2YWwtMiwgMSwgJGhhcy12YWwtMyAtIDEpO1xuICB9XG5cbiAgJHBvczogX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0xKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTIpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMyk7XG4gICRwb3M6IHVucXVvdGUoJHBvcyArIFwiXCIpO1xuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIC8vIFVzZSBvbGQgc3BlYyBmb3Igd2Via2l0XG4gIEBpZiAkdmFsLTEgPT0gXCJ0b1wiIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgLy8gQnJpbmcgdGhlIGNvZGUgdXAgdG8gc3BlY1xuICBAZWxzZSB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3JhZGlhbC1hcmctcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAZWFjaCAkdmFsdWUgaW4gJGcxLCAkZzIge1xuICAgICRmaXJzdC12YWw6IG50aCgkdmFsdWUsIDEpO1xuICAgICRwb3MtdHlwZTogIHR5cGUtb2YoJGZpcnN0LXZhbCk7XG4gICAgJHNwZWMtYXQtaW5kZXg6IG51bGw7XG5cbiAgICAvLyBEZXRlcm1pbmUgaWYgc3BlYyB3YXMgcGFzc2VkIHRvIG1peGluXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBsaXN0IHtcbiAgICAgICRzcGVjLWF0LWluZGV4OiBpZihpbmRleCgkdmFsdWUsIGF0KSwgaW5kZXgoJHZhbHVlLCBhdCksIGZhbHNlKTtcbiAgICB9XG4gICAgQGlmICRzcGVjLWF0LWluZGV4IHtcbiAgICAgIEBpZiAkc3BlYy1hdC1pbmRleCA+IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkc3BlYy1hdC1pbmRleCAtIDEpIHtcbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHNoYXBlLXNpemUgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHNwZWMtYXQtaW5kZXggPT0gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJGcxOiBudWxsO1xuICAgIH1cblxuICAgIC8vIElmIG5vdCBzcGVjIGNhbGN1bGF0ZSBjb3JyZWN0IHZhbHVlc1xuICAgIEBlbHNlIHtcbiAgICAgIEBpZiAoJHBvcy10eXBlICE9IGNvbG9yKSBvciAoJGZpcnN0LXZhbCAhPSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAgICAgQGlmICgkcG9zLXR5cGUgPT0gbnVtYmVyKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNlbnRlclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInRvcFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInJpZ2h0XCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiYm90dG9tXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwibGVmdFwiKSB7XG5cbiAgICAgICAgICAkcG9zOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHBvcyA9PSAkZzEge1xuICAgICAgICAgICAgJGcxOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIGlmXG4gICAgICAgICAgICgkZmlyc3QtdmFsID09IFwiZWxsaXBzZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNpcmNsZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvbnRhaW5cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb3ZlclwiKSB7XG5cbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICR2YWx1ZSA9PSAkZzEge1xuICAgICAgICAgICAgJGcxOiBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlbHNlIGlmICR2YWx1ZSA9PSAkZzIge1xuICAgICAgICAgICAgJGcyOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAcmV0dXJuICRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZTtcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvcykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgJHNoYXBlLXNpemU6IG50aCgkZ3JhZGllbnQtcG9zLCAxKTtcbiAgJHBvczogICAgICAgIG50aCgkZ3JhZGllbnQtcG9zLCAyKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gICRwcmUtc3BlYzogdW5xdW90ZShpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKSlcbiAgICAgICAgICAgICB1bnF1b3RlKGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LFwiLCBudWxsKSk7XG4gICRwb3Mtc3BlYzogaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuXG4gICRzcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skcG9zLXNwZWN9XCI7XG5cbiAgLy8gQWRkIGNvbW1hXG4gIEBpZiAoJHNwZWMgIT0gXCIgIFwiKSB7XG4gICAgJHNwZWM6IFwiI3skc3BlY30sXCI7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICBAcmV0dXJuICRwcmUtc3BlYyAkc3BlYztcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaXMtc3BlYy1zeW50YXg6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcImF0XCIpO1xuXG4gIEBpZiAkaXMtc3BlYy1zeW50YXggYW5kICRpcy1zcGVjLXN5bnRheCA+IDEge1xuICAgICRrZXl3b3JkOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGlzLXNwZWMtc3ludGF4IC0gMik7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAgICRwb3M6IGFwcGVuZCgkcG9zLCAka2V5d29yZCwgY29tbWEpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaXMtc3BlYy1zeW50YXggPT0gMSB7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiBzdHItaW5kZXgoJGltYWdlLCBcImNvdmVyXCIpIG9yIHN0ci1pbmRleCgkaW1hZ2UsIFwiY29udGFpblwiKSB7XG4gICAgQHdhcm4gXCJSYWRpYWwtZ3JhZGllbnQgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byBjb25mb3JtIHRvIGxhdGVzdCBzcGVjLlwiO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiBudWxsLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIi8vIFVzZXIgZm9yIGxpbmVhciBhbmQgcmFkaWFsIGdyYWRpZW50cyB3aXRoaW4gYmFja2dyb3VuZC1pbWFnZSBvciBib3JkZXItaW1hZ2UgcHJvcGVydGllc1xuXG5AZnVuY3Rpb24gX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50cywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3I6IGZhbHNlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3JlbmRlci1ncmFkaWVudHNgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRwcmUtc3BlYzogbnVsbDtcbiAgJHNwZWM6IG51bGw7XG4gICR2ZW5kb3ItZ3JhZGllbnRzOiBudWxsO1xuICBAaWYgJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyIHtcbiAgICBAaWYgJGdyYWRpZW50LXBvc2l0aW9ucyB7XG4gICAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwge1xuICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgQGlmICR2ZW5kb3Ige1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiAtI3skdmVuZG9yfS0jeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRwcmUtc3BlY30gJGdyYWRpZW50cyk7XG4gIH1cbiAgQGVsc2UgaWYgJHZlbmRvciA9PSBmYWxzZSB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IFwiI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skc3BlY30gI3skZ3JhZGllbnRzfSlcIjtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogdW5xdW90ZSgkdmVuZG9yLWdyYWRpZW50cyk7XG4gIH1cbiAgQHJldHVybiAkdmVuZG9yLWdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9zaGFwZS1zaXplLXN0cmlwcGVyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkc2hhcGUtc2l6ZS1zcGVjOiBudWxsO1xuICBAZWFjaCAkdmFsdWUgaW4gJHNoYXBlLXNpemUge1xuICAgIEBpZiAoJHZhbHVlID09IFwiY292ZXJcIikgb3IgKCR2YWx1ZSA9PSBcImNvbnRhaW5cIikge1xuICAgICAgJHZhbHVlOiBudWxsO1xuICAgIH1cbiAgICAkc2hhcGUtc2l6ZS1zcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skdmFsdWV9XCI7XG4gIH1cbiAgQHJldHVybiAkc2hhcGUtc2l6ZS1zcGVjO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBsaW5lYXIvcmFkaWFsLWdyYWRpZW50LXBhcnNlcnMuXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX3N0ci10by1udW0oJHN0cmluZykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9zdHItdG8tbnVtYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAvLyBNYXRyaWNlc1xuICAkc3RyaW5nczogXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCI7XG4gICRudW1iZXJzOiAgMCAgIDEgICAyICAgMyAgIDQgICA1ICAgNiAgIDcgICA4ICAgOTtcblxuICAvLyBSZXN1bHRcbiAgJHJlc3VsdDogMDtcbiAgJGRpdmlkZXI6IDA7XG4gICRtaW51czogZmFsc2U7XG5cbiAgLy8gTG9vcGluZyB0aHJvdWdoIGFsbCBjaGFyYWN0ZXJzXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkc3RyaW5nKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSk7XG4gICAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJGNoYXJhY3Rlcik7XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSBcIi1cIiB7XG4gICAgICAkbWludXM6IHRydWU7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJGNoYXJhY3RlciA9PSBcIi5cIiB7XG4gICAgICAkZGl2aWRlcjogMTtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgbm90ICRpbmRleCB7XG4gICAgICAgICRyZXN1bHQ6IGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbiAgICAgICAgQHJldHVybiBfY29udmVydC11bml0cygkcmVzdWx0LCBzdHItc2xpY2UoJHN0cmluZywgJGkpKTtcbiAgICAgIH1cblxuICAgICAgJG51bWJlcjogbnRoKCRudW1iZXJzLCAkaW5kZXgpO1xuXG4gICAgICBAaWYgJGRpdmlkZXIgPT0gMCB7XG4gICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMDtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAvLyBNb3ZlIHRoZSBkZWNpbWFsIGRvdCB0byB0aGUgbGVmdFxuICAgICAgICAkZGl2aWRlcjogJGRpdmlkZXIgKiAxMDtcbiAgICAgICAgJG51bWJlcjogJG51bWJlciAvICRkaXZpZGVyO1xuICAgICAgfVxuXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgJG51bWJlcjtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG59XG4iLCIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXG5cbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb25cIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1uYW1lKCRuYW1lcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi1uYW1lXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1uYW1lLCAkbmFtZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLWR1cmF0aW9uXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb25cIik7XG5cbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCgkdmFsdWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudFwiKTtcblxuICAvLyBpbmZpbml0ZSB8IDxudW1iZXI+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsICR2YWx1ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uKCRkaXJlY3Rpb25zLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLWRpcmVjdGlvblwiKTtcblxuICAvLyBub3JtYWwgfCBhbHRlcm5hdGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRpcmVjdGlvbiwgJGRpcmVjdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tcGxheS1zdGF0ZSgkc3RhdGVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLXBsYXktc3RhdGVcIik7XG5cbiAgLy8gcnVubmluZyB8IHBhdXNlZFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24tZGVsYXlcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlKCRtb2Rlcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi1maWxsLW1vZGVcIik7XG5cbiAgLy8gbm9uZSB8IGZvcndhcmRzIHwgYmFja3dhcmRzIHwgYm90aFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZmlsbC1tb2RlLCAkbW9kZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gYXBwZWFyYW5jZSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhcHBlYXJhbmNlXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFwcGVhcmFuY2UsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJiYWNrZmFjZS12aXNpYmlsaXR5XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZHMgdXNpbmcgc2hvcnRoYW5kXG4vLyBub3RhdGlvbi5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQoJGJhY2tncm91bmRzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYmFja2dyb3VuZFwiKTtcblxuICAkd2Via2l0LWJhY2tncm91bmRzOiAoKTtcbiAgJHNwZWMtYmFja2dyb3VuZHM6ICgpO1xuXG4gIEBlYWNoICRiYWNrZ3JvdW5kIGluICRiYWNrZ3JvdW5kcyB7XG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkYmFja2dyb3VuZC10eXBlOiB0eXBlLW9mKCRiYWNrZ3JvdW5kKTtcblxuICAgIEBpZiAkYmFja2dyb3VuZC10eXBlID09IHN0cmluZyBvciAkYmFja2dyb3VuZC10eXBlID09IGxpc3Qge1xuICAgICAgJGJhY2tncm91bmQtc3RyOiBpZigkYmFja2dyb3VuZC10eXBlID09IGxpc3QsIG50aCgkYmFja2dyb3VuZCwgMSksICRiYWNrZ3JvdW5kKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICR3ZWJraXQtYmFja2dyb3VuZHM6IGFwcGVuZCgkd2Via2l0LWJhY2tncm91bmRzLCAkd2Via2l0LWJhY2tncm91bmQsIGNvbW1hKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kczogICBhcHBlbmQoJHNwZWMtYmFja2dyb3VuZHMsICAgJHNwZWMtYmFja2dyb3VuZCwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kOiAkd2Via2l0LWJhY2tncm91bmRzO1xuICBiYWNrZ3JvdW5kOiAkc3BlYy1iYWNrZ3JvdW5kcztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQtaW1hZ2UgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kIGltYWdlcyB3aXRoXG4vLyBncmFkaWVudHMsIG9yIGZvciBzdHJpbmdpbmcgbXVsdGlwbGUgZ3JhZGllbnRzIHRvZ2V0aGVyLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZC1pbWFnZSgkaW1hZ2VzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYmFja2dyb3VuZC1pbWFnZVwiKTtcblxuICAkd2Via2l0LWltYWdlczogKCk7XG4gICRzcGVjLWltYWdlczogKCk7XG5cbiAgQGVhY2ggJGltYWdlIGluICRpbWFnZXMge1xuICAgICR3ZWJraXQtaW1hZ2U6ICgpO1xuICAgICRzcGVjLWltYWdlOiAoKTtcblxuICAgIEBpZiAodHlwZS1vZigkaW1hZ2UpID09IHN0cmluZykge1xuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkaW1hZ2UsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkaW1hZ2UsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICRpbWFnZTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgJGltYWdlO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogIG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHdlYmtpdC1pbWFnZXM6IGFwcGVuZCgkd2Via2l0LWltYWdlcywgJHdlYmtpdC1pbWFnZSwgY29tbWEpO1xuICAgICRzcGVjLWltYWdlczogICBhcHBlbmQoJHNwZWMtaW1hZ2VzLCAgICRzcGVjLWltYWdlLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtaW1hZ2U6ICR3ZWJraXQtaW1hZ2VzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAkc3BlYy1pbWFnZXM7XG59XG4iLCJAbWl4aW4gYm9yZGVyLWltYWdlKCRib3JkZXJzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm9yZGVyLWltYWdlXCIpO1xuXG4gICR3ZWJraXQtYm9yZGVyczogKCk7XG4gICRzcGVjLWJvcmRlcnM6ICgpO1xuXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xuICAgICR3ZWJraXQtYm9yZGVyOiAoKTtcbiAgICAkc3BlYy1ib3JkZXI6ICgpO1xuICAgICRib3JkZXItdHlwZTogdHlwZS1vZigkYm9yZGVyKTtcblxuICAgIEBpZiAkYm9yZGVyLXR5cGUgPT0gc3RyaW5nIG9yIGxpc3Qge1xuICAgICAgJGJvcmRlci1zdHI6IGlmKCRib3JkZXItdHlwZSA9PSBsaXN0LCBudGgoJGJvcmRlciwgMSksICRib3JkZXIpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgIH1cblxuICAgICR3ZWJraXQtYm9yZGVyczogYXBwZW5kKCR3ZWJraXQtYm9yZGVycywgJHdlYmtpdC1ib3JkZXIsIGNvbW1hKTtcbiAgICAkc3BlYy1ib3JkZXJzOiAgIGFwcGVuZCgkc3BlYy1ib3JkZXJzLCAgICRzcGVjLWJvcmRlciwgICBjb21tYSk7XG4gIH1cblxuICAtd2Via2l0LWJvcmRlci1pbWFnZTogJHdlYmtpdC1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1pbWFnZTogJHNwZWMtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4vL0V4YW1wbGVzOlxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpIDIwIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSAyMCAzMCA0MCA1MCBzdHJldGNoIHJvdW5kKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShyYWRpYWwtZ3JhZGllbnQodG9wLCBjb3Zlciwgb3JhbmdlLCB5ZWxsb3csIG9yYW5nZSkpO1xuIiwiQG1peGluIGNhbGMoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjYWxjXCIpO1xuXG4gICN7JHByb3BlcnR5fTogLXdlYmtpdC1jYWxjKCN7JHZhbHVlfSk7XG4gICN7JHByb3BlcnR5fTogY2FsYygjeyR2YWx1ZX0pO1xufVxuIiwiQG1peGluIGNvbHVtbnMoJGFyZzogYXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbnNcIik7XG5cbiAgLy8gPGNvbHVtbi1jb3VudD4gfHwgPGNvbHVtbi13aWR0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1ucywgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkaW50OiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLWNvdW50XCIpO1xuXG4gIC8vIGF1dG8gfHwgaW50ZWdlclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tY291bnQsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCRsZW5ndGg6IG5vcm1hbCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1nYXBcIik7XG5cbiAgLy8gbm9ybWFsIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZ2FwLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWZpbGwoJGFyZzogYXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1maWxsXCIpO1xuXG4gIC8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1maWxsLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUoJGFyZykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1ydWxlXCIpO1xuXG4gIC8vIDxib3JkZXItd2lkdGg+IHx8IDxib3JkZXItc3R5bGU+IHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tcnVsZS1jb2xvclwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1jb2xvciwgJGNvbG9yLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtc3R5bGUoJHN0eWxlOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLXJ1bGUtc3R5bGVcIik7XG5cbiAgLy8gbm9uZSB8IGhpZGRlbiB8IGRhc2hlZCB8IGRvdHRlZCB8IGRvdWJsZSB8IGdyb292ZSB8IGluc2V0IHwgaW5zZXQgfCBvdXRzZXQgfCByaWRnZSB8IHNvbGlkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS13aWR0aCgkd2lkdGg6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tcnVsZS13aWR0aFwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS13aWR0aCwgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXNwYW4oJGFyZzogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1zcGFuXCIpO1xuXG4gIC8vIG5vbmUgfHwgYWxsXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1zcGFuLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXdpZHRoKCRsZW5ndGg6IGF1dG8pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4td2lkdGhcIik7XG5cbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXdpZHRoLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGZpbHRlcigkZnVuY3Rpb246IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmaWx0ZXJcIik7XG5cbiAgLy8gPGZpbHRlci1mdW5jdGlvbj4gWzxmaWx0ZXItZnVuY3Rpb25dKiB8IG5vbmVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmlsdGVyLCAkZnVuY3Rpb24sIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuXG4vLyBDdXN0b20gc2hvcnRoYW5kIG5vdGF0aW9uIGZvciBmbGV4Ym94XG5AbWl4aW4gYm94KCRvcmllbnQ6IGlubGluZS1heGlzLCAkcGFjazogc3RhcnQsICRhbGlnbjogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveFwiKTtcblxuICBAaW5jbHVkZSBkaXNwbGF5LWJveDtcbiAgQGluY2x1ZGUgYm94LW9yaWVudCgkb3JpZW50KTtcbiAgQGluY2x1ZGUgYm94LXBhY2soJHBhY2spO1xuICBAaW5jbHVkZSBib3gtYWxpZ24oJGFsaWduKTtcbn1cblxuQG1peGluIGRpc3BsYXktYm94IHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJkaXNwbGF5LWJveFwiKTtcblxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LW9yaWVudFwiKTtcblxuLy8gaG9yaXpvbnRhbHx2ZXJ0aWNhbHxpbmxpbmUtYXhpc3xibG9jay1heGlzfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJG9yaWVudCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1wYWNrKCRwYWNrOiBzdGFydCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1wYWNrXCIpO1xuXG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtYWxpZ25cIik7XG5cbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LWRpcmVjdGlvblwiKTtcblxuLy8gbm9ybWFsfHJldmVyc2V8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtbGluZXMoJGxpbmVzOiBzaW5nbGUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtbGluZXNcIik7XG5cbi8vIHNpbmdsZXxtdWx0aXBsZVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRsaW5lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1vcmRpbmFsLWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtb3JkaW5hbC1ncm91cFwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDApIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtZmxleFwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1mbGV4LWdyb3VwXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcbi8vIFVuaWZpZWQgYXR0cmlidXRlcyBmb3IgMjAwOSwgMjAxMSwgYW5kIDIwMTIgZmxhdm91cnMuXG5cbi8vIDIwMDkgLSBkaXNwbGF5IChib3ggfCBpbmxpbmUtYm94KVxuLy8gMjAxMSAtIGRpc3BsYXkgKGZsZXhib3ggfCBpbmxpbmUtZmxleGJveClcbi8vIDIwMTIgLSBkaXNwbGF5IChmbGV4IHwgaW5saW5lLWZsZXgpXG5AbWl4aW4gZGlzcGxheSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJkaXNwbGF5XCIpO1xuXG4vLyBmbGV4IHwgaW5saW5lLWZsZXhcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgLy8gMjAwOVxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgIGRpc3BsYXk6IGJveDtcblxuICAgIC8vIDIwMTJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImlubGluZS1mbGV4XCIge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWJveDtcblxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIH0gQGVsc2Uge1xuICAgIGRpc3BsYXk6ICR2YWx1ZTtcbiAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleFwiKTtcblxuICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXG4gICRmbGV4LWdyb3c6IG50aCgkdmFsdWUsIDEpO1xuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApLCAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmllbnQgKCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBpbmxpbmUtYXhpcyB8IGJsb2NrLWF4aXMpXG4vLyAgICAgIC0gYm94LWRpcmVjdGlvbiAobm9ybWFsIHwgcmV2ZXJzZSlcbi8vIDIwMTEgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWU6IHJvdykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXgtZGlyZWN0aW9uXCIpO1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICR2YWx1ZS0yMDA5OiAkdmFsdWU7XG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICRkaXJlY3Rpb246IG5vcm1hbDtcblxuICBAaWYgJHZhbHVlID09IHJvdyB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiY29sdW1uLXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtbGluZXMgKHNpbmdsZSB8IG11bHRpcGxlKVxuLy8gMjAxMSAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZTogbm93cmFwKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC13cmFwXCIpO1xuXG4gIC8vIEFsdCB2YWx1ZXNcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IG5vd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogc2luZ2xlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSB3cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJ3cmFwLXJldmVyc2VcIiB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH1cblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDExIC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDEyIC0gZmxleC1mbG93IChmbGV4LWRpcmVjdGlvbiB8fCBmbGV4LXdyYXApXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXgtZmxvd1wiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWZsb3csICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmRpbmFsLWdyb3VwIChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXgtb3JkZXIgKGludGVnZXIpXG4vLyAyMDEyIC0gb3JkZXIgKGludGVnZXIpXG5AbWl4aW4gb3JkZXIoJGludDogMCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcIm9yZGVyXCIpO1xuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihvcmRlciwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWdyb3cgKG51bWJlcilcbkBtaXhpbiBmbGV4LWdyb3coJG51bWJlcjogMCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXgtZ3Jvd1wiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWdyb3csICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC1zaHJpbmtcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1iYXNpcyAobnVtYmVyKVxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC1iYXNpc1wiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkd2lkdGg7XG59XG5cbi8vIDIwMDkgLSBib3gtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMSAtIGZsZXgtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMiAtIGp1c3RpZnktY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZClcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwianVzdGlmeS1jb250ZW50XCIpO1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJGFsdC12YWx1ZToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1wYWNrOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTEgLSBmbGV4LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1pdGVtcyAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWl0ZW1zKCR2YWx1ZTogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFsaWduLWl0ZW1zXCIpO1xuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcblxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWl0ZW1zLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtYWxpZ246ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWl0ZW0tYWxpZ24gKGF1dG8gfCBzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1zZWxmIChhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYWxpZ24tc2VsZlwiKTtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1pdGVtLWFsaWduOiAkdmFsdWUtMjAxMTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtbGluZS1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkgfCBkaXN0cmlidXRlIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFsaWduLWNvbnRlbnRcIik7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcbn1cbiIsIkBtaXhpbiBmb250LWZhY2UoXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJHdlaWdodDogbm9ybWFsLFxuICAkc3R5bGU6IG5vcm1hbCxcbiAgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmcpIHtcblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkZm9udC11cmwtcHJlZml4OiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpO1xuXG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgc3JjOiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgICAgICRmb250LWZhbWlseSxcbiAgICAgICRmaWxlLXBhdGgsXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXG4gICAgICAkZmlsZS1mb3JtYXRzLFxuICAgICAgJGZvbnQtdXJsLXByZWZpeFxuICAgICk7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBtaXhpbiBmb250LWZlYXR1cmUtc2V0dGluZ3MoJHNldHRpbmdzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZm9udC1mZWF0dXJlLXNldHRpbmdzXCIpO1xuXG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAwIHsgJHNldHRpbmdzOiBub25lOyB9XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZvbnQtZmVhdHVyZS1zZXR0aW5ncywgJHNldHRpbmdzLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiLy8gSGlEUEkgbWl4aW4uIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxuQG1peGluIGhpZHBpKCRyYXRpbzogMS4zKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiaGlkcGlcIik7XG5cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyRyYXRpb30vMSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IHJvdW5kKCRyYXRpbyAqIDk2ZHBpKSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICRyYXRpbyAqIDFkcHB4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIkBtaXhpbiBoeXBoZW5zKCRoeXBoZW5hdGlvbjogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImh5cGhlbnNcIik7XG5cbiAgLy8gbm9uZSB8IG1hbnVhbCB8IGF1dG9cbiAgQGluY2x1ZGUgcHJlZml4ZXIoaHlwaGVucywgJGh5cGhlbmF0aW9uLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiQG1peGluIGltYWdlLXJlbmRlcmluZyAoJG1vZGU6YXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImltYWdlLXJlbmRlcmluZ1wiKTtcblxuICBAaWYgKCRtb2RlID09IGNyaXNwLWVkZ2VzKSB7XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogbmVhcmVzdC1uZWlnaGJvcjsgLy8gSUU4K1xuICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcbiAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIGltYWdlLXJlbmRlcmluZzogJG1vZGU7XG4gIH1cbn1cbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImtleWZyYW1lc1wiKTtcblxuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWUgIWdsb2JhbDtcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci1tb3ppbGxhOiB0cnVlICFnbG9iYWw7XG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0ICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0ICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmEgICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyAgICAgICFnbG9iYWw7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRnMSwgJGcyOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImxpbmVhci1ncmFkaWVudFwiKTtcblxuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXG4gICRwb3MtdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkcG9zLXNwZWM6IG51bGw7XG4gICRwb3MtZGVncmVlOiBudWxsO1xuXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XG4gICAgJGcxMDogJGc5OyAkZzk6ICRnODsgJGc4OiAkZzc7ICRnNzogJGc2OyAkZzY6ICRnNTtcbiAgICAkZzU6ICRnNDsgJGc0OiAkZzM7ICRnMzogJGcyOyAkZzI6ICRnMTsgJGcxOiAkcG9zO1xuICAgICRwb3M6IG51bGw7XG4gIH1cblxuICBAaWYgJHBvcyB7XG4gICAgJHBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpO1xuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGcxLCAxKTtcblxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJwZXJzcGVjdGl2ZVwiKTtcblxuICAvLyBub25lIHwgPGxlbmd0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJwZXJzcGVjdGl2ZS1vcmlnaW5cIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUtb3JpZ2luLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gcGxhY2Vob2xkZXIge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInBsYWNlaG9sZGVyXCIpO1xuXG4gICRwbGFjZWhvbGRlcnM6IFwiOi13ZWJraXQtaW5wdXRcIiBcIjotbW96XCIgXCItbW96XCIgXCItbXMtaW5wdXRcIjtcbiAgQGVhY2ggJHBsYWNlaG9sZGVyIGluICRwbGFjZWhvbGRlcnMge1xuICAgICY6I3skcGxhY2Vob2xkZXJ9LXBsYWNlaG9sZGVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gUmVxdWlyZXMgU2FzcyAzLjErXG5AbWl4aW4gcmFkaWFsLWdyYWRpZW50KCRnMSwgJGcyLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRwb3M6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRzaGFwZS1zaXplOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJyYWRpYWwtZ3JhZGllbnRcIik7XG5cbiAgJGRhdGE6IF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpO1xuICAkZzE6ICBudGgoJGRhdGEsIDEpO1xuICAkZzI6ICBudGgoJGRhdGEsIDIpO1xuICAkcG9zOiBudGgoJGRhdGEsIDMpO1xuICAkc2hhcGUtc2l6ZTogbnRoKCRkYXRhLCA0KTtcblxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcblxuICAvLyBTdHJpcCBkZXByZWNhdGVkIGNvdmVyL2NvbnRhaW4gZm9yIHNwZWNcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZpcnN0LWNvbG9yOiBudGgoJGZ1bGwsIDEpO1xuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZmlyc3QtY29sb3IsIDEpO1xuXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgLy8gQWRkIENvbW1hcyBhbmQgc3BhY2VzXG4gICRzaGFwZS1zaXplOiBpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSwgXCIsIG51bGwpO1xuICAkcG9zOiAgICAgICAgaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCk7XG4gICRwb3Mtc3BlYzogICBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG4gICRzaGFwZS1zaXplLXNwZWM6IGlmKCgkc2hhcGUtc2l6ZS1zcGVjICE9IFwiIFwiKSBhbmQgKCRwb3MgPT0gbnVsbCksIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSwgXCIsIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSBcIik7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoI3skcG9zfSN7JHNoYXBlLXNpemV9I3skZnVsbH0pO1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoI3skc2hhcGUtc2l6ZS1zcGVjfSN7JHBvcy1zcGVjfSN7JGZ1bGx9KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBPdXRwdXRzIHRoZSBzcGVjIGFuZCBwcmVmaXhlZCB2ZXJzaW9ucyBvZiB0aGUgYDo6c2VsZWN0aW9uYCBwc2V1ZG8tZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0Jvb2x9ICRjdXJyZW50LXNlbGVjdG9yIFtmYWxzZV1cclxuLy8vICAgSWYgc2V0IHRvIGB0cnVlYCwgaXQgdGFrZXMgdGhlIGN1cnJlbnQgZWxlbWVudCBpbnRvIGNvbnNpZGVyYXRpb24uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzZWxlY3Rpb24odHJ1ZSkge1xyXG4vLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgICB9XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50OjotbW96LXNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQ6OnNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIHNlbGVjdGlvbigkY3VycmVudC1zZWxlY3RvcjogZmFsc2UpIHtcclxuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInNlbGVjdGlvblwiKTtcclxuXHJcbiAgQGlmICRjdXJyZW50LXNlbGVjdG9yIHtcclxuICAgICY6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQG1peGluIHRleHQtZGVjb3JhdGlvbigkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0ZXh0LWRlY29yYXRpb25cIik7XG5cbi8vIDx0ZXh0LWRlY29yYXRpb24tbGluZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1zdHlsZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1jb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLCAkdmFsdWUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tbGluZSgkbGluZTogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRleHQtZGVjb3JhdGlvbi1saW5lXCIpO1xuXG4vLyBub25lIHx8IHVuZGVybGluZSB8fCBvdmVybGluZSB8fCBsaW5lLXRocm91Z2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWxpbmUsICRsaW5lLCBtb3opO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLXN0eWxlKCRzdHlsZTogc29saWQpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0ZXh0LWRlY29yYXRpb24tc3R5bGVcIik7XG5cbi8vIHNvbGlkIHx8IGRvdWJsZSB8fCBkb3R0ZWQgfHwgZGFzaGVkIHx8IHdhdnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLXN0eWxlLCAkc3R5bGUsIG1veiB3ZWJraXQpO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWNvbG9yKCRjb2xvcjogY3VycmVudENvbG9yKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidGV4dC1kZWNvcmF0aW9uLWNvbG9yXCIpO1xuXG4vLyBjdXJyZW50Q29sb3IgfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tY29sb3IsICRjb2xvciwgbW96KTtcbn1cbiIsIkBtaXhpbiB0cmFuc2Zvcm0oJHByb3BlcnR5OiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNmb3JtXCIpO1xuXG4gIC8vIG5vbmUgfCA8dHJhbnNmb3JtLWZ1bmN0aW9uPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNmb3JtLW9yaWdpblwiKTtcblxuICAvLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxuICAvLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxuICAvLyB6LWF4aXMgLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1vcmlnaW4sICRheGVzLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tc3R5bGUoJHN0eWxlOiBmbGF0KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNmb3JtLXN0eWxlXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0aWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNpdGlvblwiKTtcblxuICAvLyBGaXggZm9yIHZlbmRvci1wcmVmaXggdHJhbnNmb3JtIHByb3BlcnR5XG4gICRuZWVkcy1wcmVmaXhlczogZmFsc2U7XG4gICR3ZWJraXQ6ICgpO1xuICAkbW96OiAoKTtcbiAgJHNwZWM6ICgpO1xuXG4gIC8vIENyZWF0ZSBsaXN0cyBmb3IgdmVuZG9yLXByZWZpeGVkIHRyYW5zZm9ybVxuICBAZWFjaCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XG4gICAgQGlmIG50aCgkbGlzdCwgMSkgPT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAkbmVlZHMtcHJlZml4ZXM6IHRydWU7XG4gICAgICAkbGlzdDE6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAgICAgJGxpc3QyOiAtbW96LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MzogKCk7XG5cbiAgICAgIEBlYWNoICR2YXIgaW4gJGxpc3Qge1xuICAgICAgICAkbGlzdDM6IGpvaW4oJGxpc3QzLCAkdmFyKTtcblxuICAgICAgICBAaWYgJHZhciAhPSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICAgICAkbGlzdDE6IGpvaW4oJGxpc3QxLCAkdmFyKTtcbiAgICAgICAgICAkbGlzdDI6IGpvaW4oJGxpc3QyLCAkdmFyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QxKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdDIpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0Myk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdCwgY29tbWEpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0LCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICRuZWVkcy1wcmVmaXhlcyB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkd2Via2l0O1xuICAgICAgIC1tb3otdHJhbnNpdGlvbjogJG1vejtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRzcGVjO1xuICB9IEBlbHNlIHtcbiAgICBAaWYgbGVuZ3RoKCRwcm9wZXJ0aWVzKSA+PSAxIHtcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHByb3BlcnRpZXM6IGFsbCAwLjE1cyBlYXNlLW91dCAwcztcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1wcm9wZXJ0eSgkcHJvcGVydGllcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zaXRpb24tcHJvcGVydHlcIik7XG5cbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIndlYmtpdFwiKTtcbiAgICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIm1velwiKTtcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBmYWxzZSk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zaXRpb24tZHVyYXRpb25cIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvblwiKTtcblxuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXQgfCBjdWJpYy1iZXppZXIoKVxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zaXRpb24tZGVsYXlcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHVzZXItc2VsZWN0KCR2YWx1ZTogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInVzZXItc2VsZWN0XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKHVzZXItc2VsZWN0LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItY29sb3JgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1jb2xvcigjYTYwYjU1ICM3NmNkOWMgbnVsbCAjZThhZTFhKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNlOGFlMWE7XG4vLy8gICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzc2Y2Q5Yztcbi8vLyAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2E2MGI1NTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1jb2xvcmBcblxuQG1peGluIGJvcmRlci1jb2xvcigkdmFscy4uLikge1xuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBjb2xvciwgJHZhbHMuLi4pO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1yYWRpdXNgIG9uIGJvdGggY29ybmVycyBvbiB0aGUgc2lkZSBvZiBhIGJveC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmFkaWlcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDVweCk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygzcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xuLy8vICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudC10d28ge1xuLy8vICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1yYWRpdXNgXG5cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXN0eWxlYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZGFzaGVkIG51bGwgc29saWQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXN0eWxlYFxuXG5AbWl4aW4gYm9yZGVyLXN0eWxlKCR2YWxzLi4uKSB7XG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHN0eWxlLCAkdmFscy4uLik7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXdpZHRoYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItd2lkdGgoMWVtIG51bGwgMjBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIwcHg7XG4vLy8gICAgIGJvcmRlci10b3Atd2lkdGg6IDFlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci13aWR0aGBcblxuQG1peGluIGJvcmRlci13aWR0aCgkdmFscy4uLikge1xuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCB3aWR0aCwgJHZhbHMuLi4pO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCBidXR0b25zLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC1idXR0b25zfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC1idXR0b25zfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWZvY3VzfSxcbi8vLyAgICN7JGFsbC1idXR0b25zLWhvdmVyfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWFjdGl2ZX0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgYnV0dG9uLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpmb2N1cyxcbi8vLyAgIGJ1dHRvbjpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06YWN0aXZlIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3Rcbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBkb3VibGUgYXNzaWduZWQgdmFyaWFibGVzIChMaW5lcyA1OeKAkzYyKSBpbiB2NS4wLjBcblxuJGJ1dHRvbnMtbGlzdDogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImJ1dHRvblwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInJlc2V0XCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic3VibWl0XCJdJztcblxuJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2U7XG5cbiRhbGwtYnV0dG9uczogICAgICAgIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCk7XG4kYWxsLWJ1dHRvbnMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLWJ1dHRvbnMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGZvY3VzKTtcbiRhbGwtYnV0dG9ucy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgaG92ZXIpO1xuXG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLW91dHB1dC1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nO1xuXG4kYWxsLWJ1dHRvbi1pbnB1dHM6ICAgICAgICAkYWxsLWJ1dHRvbnM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlOiAkYWxsLWJ1dHRvbnMtYWN0aXZlO1xuJGFsbC1idXR0b24taW5wdXRzLWZvY3VzOiAgJGFsbC1idXR0b25zLWZvY3VzO1xuJGFsbC1idXR0b24taW5wdXRzLWhvdmVyOiAgJGFsbC1idXR0b25zLWhvdmVyO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gaW5jbHVkZSBhIGNsZWFyZml4IGZvciBjb250YWluaW5nIGZsb2F0cy5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9jc3Ntb2pvLmNvbS9sYXRlc3RfbmV3X2NsZWFyZml4X3NvX2Zhci9cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgICBjb250ZW50OiBcIlwiO1xuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcbi8vLyAgIH1cblxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRydW5jYXRlcyB0ZXh0IGFuZCBhZGRzIGFuIGVsbGlwc2lzIHRvIHJlcHJlc2VudCBvdmVyZmxvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzEwMCVdXG4vLy8gICBNYXgtd2lkdGggZm9yIHRoZSBzdHJpbmcgdG8gcmVzcGVjdCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZWxsaXBzaXM7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgICAgd29yZC13cmFwOiBub3JtYWw7XG4vLy8gICB9XG5cbkBtaXhpbiBlbGxpcHNpcygkd2lkdGg6IDEwMCUpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VvcmdpYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kZ2VvcmdpYTogXCJHZW9yZ2lhXCIsIFwiQ2FtYnJpYVwiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcIlRpbWVzXCIsIHNlcmlmO1xuXG4vLy8gSGVsdmV0aWNhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRoZWx2ZXRpY2E6IFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJSb2JvdG9cIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTHVjaWRhIEdyYW5kZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbHVjaWRhLWdyYW5kZTogXCJMdWNpZGEgR3JhbmRlXCIsIFwiVGFob21hXCIsIFwiVmVyZGFuYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBNb25vc3BhY2UgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJG1vbm9zcGFjZTogXCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm9cIiwgXCJDb25zb2xhc1wiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlO1xuXG4vLy8gVmVyZGFuYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdmVyZGFuYTogXCJWZXJkYW5hXCIsIFwiR2VuZXZhXCIsIHNhbnMtc2VyaWY7XG4iLCIvLy8gSGlkZXMgdGhlIHRleHQgaW4gYW4gZWxlbWVudCwgY29tbW9ubHkgdXNlZCB0byBzaG93IGFuIGltYWdlLiBTb21lIGVsZW1lbnRzIHdpbGwgbmVlZCBibG9jay1sZXZlbCBzdHlsZXMgYXBwbGllZC5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly96ZWxkbWFuLmNvbS8yMDEyLzAzLzAxL3JlcGxhY2luZy10aGUtOTk5OXB4LWhhY2stbmV3LWltYWdlLXJlcGxhY2VtZW50XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgaGlkZS10ZXh0O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LWluZGVudDogMTAxJTtcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBoZWlnaHQgYXJndW1lbnQgaW4gdjUuMC4wXG5cbkBtaXhpbiBoaWRlLXRleHQoJGhlaWdodDogbnVsbCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWluZGVudDogMTAxJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaWYgJGhlaWdodCB7XG4gICAgQHdhcm4gXCJUaGUgYGhpZGUtdGV4dGAgbWl4aW4gaGFzIGNoYW5nZWQgYW5kIG5vIGxvbmdlciByZXF1aXJlcyBhIGhlaWdodC4gVGhlIGhlaWdodCBhcmd1bWVudCB3aWxsIG5vIGxvbmdlciBiZSBhY2NlcHRlZCBpbiB2NS4wLjBcIjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgbWFyZ2luYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAxMHB4IDNlbSAyMHZoKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogM2VtO1xuLy8vICAgICBtYXJnaW4tbGVmdDogMjB2aDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgbWFyZ2luYFxuXG5AbWl4aW4gbWFyZ2luKCR2YWxzLi4uKSB7XG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShtYXJnaW4sIGZhbHNlLCAkdmFscy4uLik7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgcGFkZGluZ2Agb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcGFkZGluZygxMnZoIG51bGwgMTBweCA1JSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDUlO1xuLy8vICAgICBwYWRkaW5nLXRvcDogMTJ2aDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYHBhZGRpbmdgXG5cbkBtaXhpbiBwYWRkaW5nKCR2YWxzLi4uKSB7XG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShwYWRkaW5nLCBmYWxzZSwgJHZhbHMuLi4pO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciBzZXR0aW5nIGFuIGVsZW1lbnTigJlzIHBvc2l0aW9uLiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge1Bvc2l0aW9ufSAkcG9zaXRpb24gW3JlbGF0aXZlXVxuLy8vICAgQSBDU1MgcG9zaXRpb24gdmFsdWVcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJGNvb3JkaW5hdGVzIFtudWxsIG51bGwgbnVsbCBudWxsXVxuLy8vICAgTGlzdCBvZiB2YWx1ZXMgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSA0LXZhbHVlIHN5bnRheCBmb3IgdGhlIGVkZ2VzIG9mIGEgYm94XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBsZWZ0OiAxMGVtO1xuLy8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLy8gICAgIHRvcDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSB1bnBhY2tcblxuQG1peGluIHBvc2l0aW9uKCRwb3NpdGlvbjogcmVsYXRpdmUsICRjb29yZGluYXRlczogbnVsbCBudWxsIG51bGwgbnVsbCkge1xuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xuICAgICRjb29yZGluYXRlczogJHBvc2l0aW9uO1xuICAgICRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcbiAgJGNvb3JkaW5hdGVzOiB1bnBhY2soJGNvb3JkaW5hdGVzKTtcblxuICAkb2Zmc2V0czogKFxuICAgIHRvcDogICAgbnRoKCRjb29yZGluYXRlcywgMSksXG4gICAgcmlnaHQ6ICBudGgoJGNvb3JkaW5hdGVzLCAyKSxcbiAgICBib3R0b206IG50aCgkY29vcmRpbmF0ZXMsIDMpLFxuICAgIGxlZnQ6ICAgbnRoKCRjb29yZGluYXRlcywgNClcbiAgKTtcblxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuXG4gIEBlYWNoICRvZmZzZXQsICR2YWx1ZSBpbiAkb2Zmc2V0cyB7XG4gICAgQGlmIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICN7JG9mZnNldH06ICR2YWx1ZTtcbiAgICB9XG4gIH1cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIG1peGluIGZvciBnZW5lcmF0aW5nIHZlbmRvciBwcmVmaXhlcyBvbiBub24tc3RhbmRhcmRpemVkIHByb3BlcnRpZXMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5XG4vLy8gICBQcm9wZXJ0eSB0byBwcmVmaXhcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlXG4vLy8gICBWYWx1ZSB0byB1c2Vcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHByZWZpeGVzXG4vLy8gICBQcmVmaXhlcyB0byBkZWZpbmVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAxMHB4LCB3ZWJraXQgbXMgc3BlYyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci13ZWJraXRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1vemlsbGFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1pY3Jvc29mdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itb3BlcmFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXNwZWNcblxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xuICAgICAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgIHtcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlICFnbG9iYWw7XG59XG4iLCJAbWl4aW4gcmV0aW5hLWltYWdlKCRmaWxlbmFtZSwgJGJhY2tncm91bmQtc2l6ZSwgJGV4dGVuc2lvbjogcG5nLCAkcmV0aW5hLWZpbGVuYW1lOiBudWxsLCAkcmV0aW5hLXN1ZmZpeDogXzJ4LCAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUoXCJyZXRpbmEtaW1hZ2VcIik7XG5cbiAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgIHVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9XG5cbiAgQGluY2x1ZGUgaGlkcGkge1xuICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1zaXplOiAkYmFja2dyb3VuZC1zaXplO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTZXRzIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBvZiB0aGUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNpemVcbi8vLyAgIEEgbGlzdCBvZiBhdCBtb3N0IDIgc2l6ZSB2YWx1ZXMuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgdmFsdWUgaW4gYCRzaXplYCBpdCBpcyB1c2VkIGZvciBib3RoIHdpZHRoIGFuZCBoZWlnaHQuIEFsbCB1bml0cyBhcmUgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZShhdXRvIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogMmVtO1xuLy8vICAgICBoZWlnaHQ6IDJlbTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IGF1dG87XG4vLy8gICAgIGhlaWdodDogMTBlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlZmFjdG9yIGluIDUuMC4wIHRvIHVzZSBhIGNvbW1hLXNlcGFyYXRlZCBhcmd1bWVudFxuXG5AbWl4aW4gc2l6ZSgkdmFsdWUpIHtcbiAgJHdpZHRoOiBudGgoJHZhbHVlLCAxKTtcbiAgJGhlaWdodDogJHdpZHRoO1xuXG4gIEBpZiBsZW5ndGgoJHZhbHVlKSA+IDEge1xuICAgICRoZWlnaHQ6IG50aCgkdmFsdWUsIDIpO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgQGlmIGlzLXNpemUoJGhlaWdodCkge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skaGVpZ2h0fWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCRoZWlnaHRgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJHdpZHRoKSB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skd2lkdGh9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJHdpZHRoYCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIHRleHQtYmFzZWQgaW5wdXRzLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC10ZXh0LWlucHV0c31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHN9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWZvY3VzfSxcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1ob3Zlcn0ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl0sXG4vLy8gICB0ZXh0YXJlYSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpmb2N1cyxcbi8vLyAgIHRleHRhcmVhOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmhvdmVyLFxuLy8vICAgdGV4dGFyZWE6aG92ZXIge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmFjdGl2ZSxcbi8vLyAgIHRleHRhcmVhOmFjdGl2ZSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR0ZXh0LWlucHV0cy1saXN0OiAnaW5wdXRbdHlwZT1cImNvbG9yXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZW1haWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibW9udGhcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibnVtYmVyXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInNlYXJjaFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGV4dFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0aW1lXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInVybFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ3ZWVrXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXQ6bm90KFt0eXBlXSknLFxuICAgICAgICAgICAgICAgICAgICd0ZXh0YXJlYSc7XG5cbiR1c2VyLW91dHB1dC1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlO1xuXG4kYWxsLXRleHQtaW5wdXRzOiAgICAgICAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCk7XG4kYWxsLXRleHQtaW5wdXRzLWFjdGl2ZTogYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgYWN0aXZlKTtcbiRhbGwtdGV4dC1pbnB1dHMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBmb2N1cyk7XG4kYWxsLXRleHQtaW5wdXRzLWhvdmVyOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgaG92ZXIpO1xuXG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLW91dHB1dC1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ1NTIGN1YmljLWJlemllciB0aW1pbmcgZnVuY3Rpb25zLiBUaW1pbmcgZnVuY3Rpb25zIGNvdXJ0ZXN5IG9mIGpxdWVyeS5lYXNpZSAoZ2l0aHViLmNvbS9qYXVraWEvZWFzaWUpXG4vLy9cbi8vLyBUaW1pbmcgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhcyBkZW1vZWQgaGVyZTogaHR0cDovL2pxdWVyeXVpLmNvbS9yZXNvdXJjZXMvZGVtb3MvZWZmZWN0L2Vhc2luZy5odG1sXG4vLy9cbi8vLyBAdHlwZSBjdWJpYy1iZXppZXJcblxuJGVhc2UtaW4tcXVhZDogICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA4NSwgMC42ODAsIDAuNTMwKTtcbiRlYXNlLWluLWN1YmljOiAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4kZWFzZS1pbi1xdWFydDogICAgIGN1YmljLWJlemllcigwLjg5NSwgIDAuMDMwLCAwLjY4NSwgMC4yMjApO1xuJGVhc2UtaW4tcXVpbnQ6ICAgICBjdWJpYy1iZXppZXIoMC43NTUsICAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiRlYXNlLWluLXNpbmU6ICAgICAgY3ViaWMtYmV6aWVyKDAuNDcwLCAgMC4wMDAsIDAuNzQ1LCAwLjcxNSk7XG4kZWFzZS1pbi1leHBvOiAgICAgIGN1YmljLWJlemllcigwLjk1MCwgIDAuMDUwLCAwLjc5NSwgMC4wMzUpO1xuJGVhc2UtaW4tY2lyYzogICAgICBjdWJpYy1iZXppZXIoMC42MDAsICAwLjA0MCwgMC45ODAsIDAuMzM1KTtcbiRlYXNlLWluLWJhY2s6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAtMC4yODAsIDAuNzM1LCAwLjA0NSk7XG5cbiRlYXNlLW91dC1xdWFkOiAgICAgY3ViaWMtYmV6aWVyKDAuMjUwLCAgMC40NjAsIDAuNDUwLCAwLjk0MCk7XG4kZWFzZS1vdXQtY3ViaWM6ICAgIGN1YmljLWJlemllcigwLjIxNSwgIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuJGVhc2Utb3V0LXF1YXJ0OiAgICBjdWJpYy1iZXppZXIoMC4xNjUsICAwLjg0MCwgMC40NDAsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWludDogICAgY3ViaWMtYmV6aWVyKDAuMjMwLCAgMS4wMDAsIDAuMzIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtc2luZTogICAgIGN1YmljLWJlemllcigwLjM5MCwgIDAuNTc1LCAwLjU2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWV4cG86ICAgICBjdWJpYy1iZXppZXIoMC4xOTAsICAxLjAwMCwgMC4yMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1jaXJjOiAgICAgY3ViaWMtYmV6aWVyKDAuMDc1LCAgMC44MjAsIDAuMTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtYmFjazogICAgIGN1YmljLWJlemllcigwLjE3NSwgIDAuODg1LCAwLjMyMCwgMS4yNzUpO1xuXG4kZWFzZS1pbi1vdXQtcXVhZDogIGN1YmljLWJlemllcigwLjQ1NSwgIDAuMDMwLCAwLjUxNSwgMC45NTUpO1xuJGVhc2UtaW4tb3V0LWN1YmljOiBjdWJpYy1iZXppZXIoMC42NDUsICAwLjA0NSwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuNzcwLCAgMC4wMDAsIDAuMTc1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVpbnQ6IGN1YmljLWJlemllcigwLjg2MCwgIDAuMDAwLCAwLjA3MCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXNpbmU6ICBjdWJpYy1iZXppZXIoMC40NDUsICAwLjA1MCwgMC41NTAsIDAuOTUwKTtcbiRlYXNlLWluLW91dC1leHBvOiAgY3ViaWMtYmV6aWVyKDEuMDAwLCAgMC4wMDAsIDAuMDAwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtY2lyYzogIGN1YmljLWJlemllcigwLjc4NSwgIDAuMTM1LCAwLjE1MCwgMC44NjApO1xuJGVhc2UtaW4tb3V0LWJhY2s6ICBjdWJpYy1iZXppZXIoMC42ODAsIC0wLjU1MCwgMC4yNjUsIDEuNTUwKTtcbiIsIkBtaXhpbiB0cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XG4gICR3aWR0aDogbnRoKCRzaXplLCAxKTtcbiAgJGhlaWdodDogbnRoKCRzaXplLCBsZW5ndGgoJHNpemUpKTtcbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAkYmFja2dyb3VuZC1jb2xvcjogaWYobGVuZ3RoKCRjb2xvcikgPT0gMiwgbnRoKCRjb2xvciwgMiksIHRyYW5zcGFyZW50KTtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gY2hhbmdlIHRoZSBgd29yZC13cmFwYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkd3JhcCBbYnJlYWstd29yZF1cbi8vLyAgIFZhbHVlIGZvciB0aGUgYHdvcmQtYnJlYWtgIHByb3BlcnR5LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIEBpbmNsdWRlIHdvcmQtd3JhcChicmVhay13b3JkKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbi8vLyAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuLy8vICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICB9XG5cbkBtaXhpbiB3b3JkLXdyYXAoJHdyYXA6IGJyZWFrLXdvcmQpIHtcbiAgb3ZlcmZsb3ctd3JhcDogJHdyYXA7XG4gIHdvcmQtd3JhcDogJHdyYXA7XG5cbiAgQGlmICR3cmFwID09IGJyZWFrLXdvcmQge1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgfSBAZWxzZSB7XG4gICAgd29yZC1icmVhazogJHdyYXA7XG4gIH1cbn1cbiIsIi8vIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBNQUpPUiB2ZXJzaW9uIHJlbGVhc2VcblxuQG1peGluIGlubGluZS1ibG9jayB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZShcImlubGluZS1ibG9ja1wiKTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbkBtaXhpbiBidXR0b24gKCRzdHlsZTogc2ltcGxlLCAkYmFzZS1jb2xvcjogIzQyOTRmMCwgJHRleHQtc2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZShcImJ1dHRvblwiKTtcblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICRiYXNlLWNvbG9yO1xuICAgICR0ZXh0LXNpemU6ICRzdHlsZTtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSAjNDI5NGYwIHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuXG4vLyBTZWxlY3RvciBTdHlsZSBCdXR0b25cbkBtaXhpbiBidXR0b25zdHlsZSgkdHlwZSwgJGItY29sb3IsICR0LXNpemUsICRwYWQpIHtcbiAgLy8gR3JheXNjYWxlIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHNoaW55IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gcGlsbCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gZmxhdCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICAvLyBDb2xvcmVkIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHNoaW55IHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gcGlsbCB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gZmxhdCB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG59XG5cbi8vIFNpbXBsZSBCdXR0b25cbkBtaXhpbiBzaW1wbGUoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTE0JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtOCUsICAkbGlnaHRuZXNzOiAgMTUlKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xMSUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDE1JSwgJGxpZ2h0bmVzczogLTE4JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNyUsICRsaWdodG5lc3M6ICA1JSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA4JSwgJGxpZ2h0bmVzczogLTE0JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogOSUsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA3JSwgJGxpZ2h0bmVzczogLTE3JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmUsIGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFNoaW55IEJ1dHRvblxuQG1peGluIHNoaW55KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExNywgJGdyZWVuOiAtMTExLCAkYmx1ZTogLTgxKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEyNiwgJGdyZWVuOiAtMTI3LCAkYmx1ZTogLTEyMik7XG4gICRmb3VydGgtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC03OSwgICRncmVlbjogLTcwLCAgJGJsdWU6IC00Nik7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6ICAzNywgICRncmVlbjogIDI5LCAgJGJsdWU6ICAxMik7XG4gICRzZWNvbmQtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC01NiwgICRncmVlbjogLTUwLCAgJGJsdWU6IC0zMyk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xNDAsICRncmVlbjogLTE0MSwgJGJsdWU6IC0xMTQpO1xuICAkdGhpcmQtc3RvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICAkZ3JlZW46IC03NSwgICRibHVlOiAtNDgpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGZvdXJ0aC1zdG9wOiAgIGdyYXlzY2FsZSgkZm91cnRoLXN0b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHNlY29uZC1zdG9wOiAgIGdyYXlzY2FsZSgkc2Vjb25kLXN0b3ApO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgICAkdGhpcmQtc3RvcDogICAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRiYXNlLWNvbG9yIDAlLCAkc2Vjb25kLXN0b3AgNTAlLCAkdGhpcmQtc3RvcCA1MCUsICRmb3VydGgtc3RvcCAxMDAlKTtcblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEzLCAkZ3JlZW46IC0xNSwgJGJsdWU6IC0xOCk7XG4gICAgJHNlY29uZC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC02NiwgJGdyZWVuOiAtNjIsICRibHVlOiAtNTEpO1xuICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtOTMsICRncmVlbjogLTg1LCAkYmx1ZTogLTY2KTtcbiAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAkZ3JlZW46IC04MCwgJGJsdWU6IC02Myk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCRmaXJzdC1zdG9wLWhvdmVyKTtcbiAgICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRzZWNvbmQtc3RvcC1ob3Zlcik7XG4gICAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkdGhpcmQtc3RvcC1ob3Zlcik7XG4gICAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkZm91cnRoLXN0b3AtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRmaXJzdC1zdG9wLWhvdmVyICAwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2Vjb25kLXN0b3AtaG92ZXIgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlyZC1zdG9wLWhvdmVyICA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyIDEwMCUpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTExLCAkZ3JlZW46IC0xMTYsICRibHVlOiAtMTIyKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDIwcHggMCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBQaWxsIEJ1dHRvblxuQG1peGluIHBpbGwoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC0xMSUsICRsaWdodG5lc3M6IC0yNiUpO1xuICAkYm9yZGVyLXNpZGVzOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yMSUsICRsaWdodG5lc3M6IC0yMSUpO1xuICAkYm9yZGVyLXRvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0zMCUsICRsaWdodG5lc3M6IC0xNSUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xJSwgICRsaWdodG5lc3M6ICA3JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDE0JSwgJGxpZ2h0bmVzczogLTEwJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTE5JSwgJGxpZ2h0bmVzczogLTE1JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGJvcmRlci1zaWRlczogIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAkYm9yZGVyLXRvcDogICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpZ2h0bmVzczogLTQuNSUpO1xuICAgICRib3JkZXItYm90dG9tOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDEzLjUlLCAkbGlnaHRuZXNzOiAtMzIlKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yJSwgICAgJGxpZ2h0bmVzczogLTI3JSk7XG4gICAgJGJvcmRlci10b3A6ICAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMTclLCAgICRsaWdodG5lc3M6IC0yMSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAkc2F0dXJhdGlvbjogLTElLCAgICAkbGlnaHRuZXNzOiAgMyUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTQlLCAgICAkbGlnaHRuZXNzOiAtMTUuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTUlLCAgICAkbGlnaHRuZXNzOiAtMjIlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAgICRib3JkZXItc2lkZXM6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgICAkYm9yZGVyLXRvcDogICAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG5cbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWhvdmVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA0LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNiwgICRzYXR1cmF0aW9uOiAtMi41JSwgJGxpZ2h0bmVzczogLTMwJSk7XG4gICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDExLCAkc2F0dXJhdGlvbjogIDYlLCAgICRsaWdodG5lc3M6IC0zMSUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA5LCAgJHNhdHVyYXRpb246ICAyJSwgICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA1LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGdyYXlzY2FsZSgkYWN0aXZlLWNvbG9yKTtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWNvbG9yO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbS1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCAzcHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBGbGF0IEJ1dHRvblxuQG1peGluIGZsYXQoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCl7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDQlLCAkbGlnaHRuZXNzOiA1JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItYWN0aXZlOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1hY3RpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi8vIEZsZXhpYmxlIGdyaWRcbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZmxleC1ncmlkYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuIEZvciBncmlkIGZ1bmN0aW9ucywgY2hlY2sgb3V0IEJvdXJib24ncyBzaXN0ZXIgbGlicmFyeVwiICtcbiAgICBcIk5lYXQuXCI7XG4gIH1cblxuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkd2lkdGggLyAkY29udGFpbmVyLXdpZHRoKTtcbn1cblxuLy8gRmxleGlibGUgZ3V0dGVyXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBmbGV4LWd1dHRlcmAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLiBGb3IgZ3JpZCBmdW5jdGlvbnMsIGNoZWNrIG91dCBCb3VyYm9uJ3Mgc2lzdGVyIGxpYnJhcnlcIiArXG4gICAgXCJOZWF0LlwiO1xuICB9XG5cbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZ3JpZC13aWR0aGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLiBGb3IgZ3JpZCBmdW5jdGlvbnMsIGNoZWNrIG91dCBCb3VyYm9uJ3Mgc2lzdGVyIGxpYnJhcnlcIiArXG4gICAgXCJOZWF0LlwiO1xuICB9XG5cbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XG59XG5cbkBmdW5jdGlvbiBnb2xkZW4tcmF0aW8oJHZhbHVlLCAkaW5jcmVtZW50KSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZ29sZGVuLXJhdGlvYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuIFlvdSBjYW4gdXNlIHRoZSBgbW9kdWxhci1zY2FsZWAgZnVuY3Rpb24gaW5zdGVhZC5cIjtcbiAgfVxuXG4gIEByZXR1cm4gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWUsICRyYXRpbzogJGdvbGRlbik7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRib3gpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtc2l6aW5nXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1zaXppbmcsICRib3gsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCIvLyBOZWF0IDEuNy4yXG4vLyBodHRwOi8vbmVhdC5ib3VyYm9uLmlvXG4vLyBDb3B5cmlnaHQgMjAxMi0yMDE1IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbi8vIEhlbHBlcnNcbkBpbXBvcnQgXCJuZWF0LWhlbHBlcnNcIjtcblxuLy8gR3JpZFxuQGltcG9ydCBcImdyaWQvcHJpdmF0ZVwiO1xuQGltcG9ydCBcImdyaWQvYm94LXNpemluZ1wiO1xuQGltcG9ydCBcImdyaWQvb21lZ2FcIjtcbkBpbXBvcnQgXCJncmlkL291dGVyLWNvbnRhaW5lclwiO1xuQGltcG9ydCBcImdyaWQvc3Bhbi1jb2x1bW5zXCI7XG5AaW1wb3J0IFwiZ3JpZC9yb3dcIjtcbkBpbXBvcnQgXCJncmlkL3NoaWZ0XCI7XG5AaW1wb3J0IFwiZ3JpZC9wYWRcIjtcbkBpbXBvcnQgXCJncmlkL2ZpbGwtcGFyZW50XCI7XG5AaW1wb3J0IFwiZ3JpZC9tZWRpYVwiO1xuQGltcG9ydCBcImdyaWQvdG8tZGVwcmVjYXRlXCI7XG5AaW1wb3J0IFwiZ3JpZC92aXN1YWwtZ3JpZFwiO1xuQGltcG9ydCBcImdyaWQvZGlzcGxheS1jb250ZXh0XCI7XG5AaW1wb3J0IFwiZ3JpZC9kaXJlY3Rpb24tY29udGV4dFwiO1xuIiwiLy8gRnVuY3Rpb25zXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3ByaXZhdGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbmV3LWJyZWFrcG9pbnRcIjtcblxuLy8gU2V0dGluZ3NcbkBpbXBvcnQgXCJzZXR0aW5ncy9ncmlkXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvdmlzdWFsLWdyaWRcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9kaXNhYmxlLXdhcm5pbmdzXCI7XG4iLCIvLyBOb3QgZnVuY3Rpb24gZm9yIExpYnNhc3MgY29tcGF0aWJpbGl0eVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MvbGlic2Fzcy9pc3N1ZXMvMzY4XG5AZnVuY3Rpb24gaXMtbm90KCR2YWx1ZSkge1xuICBAcmV0dXJuIGlmKCR2YWx1ZSwgZmFsc2UsIHRydWUpO1xufVxuXG4vLyBDaGVja3MgaWYgYSBudW1iZXIgaXMgZXZlblxuQGZ1bmN0aW9uIGlzLWV2ZW4oJGludCkge1xuICBAcmV0dXJuICRpbnQgJSAyID09IDA7XG59XG5cbi8vIENoZWNrcyBpZiBhbiBlbGVtZW50IGJlbG9uZ3MgdG8gYSBsaXN0IG9yIG5vdFxuQGZ1bmN0aW9uIGJlbG9uZ3MtdG8oJHRlc3RlZC1pdGVtLCAkbGlzdCkge1xuICBAcmV0dXJuIGlzLW5vdChub3QtYmVsb25ncy10bygkdGVzdGVkLWl0ZW0sICRsaXN0KSk7XG59XG5cbkBmdW5jdGlvbiBub3QtYmVsb25ncy10bygkdGVzdGVkLWl0ZW0sICRsaXN0KSB7XG4gIEByZXR1cm4gaXMtbm90KGluZGV4KCRsaXN0LCAkdGVzdGVkLWl0ZW0pKTtcbn1cblxuLy8gQ29udGFpbnMgZGlzcGxheSB2YWx1ZVxuQGZ1bmN0aW9uIGNvbnRhaW5zLWRpc3BsYXktdmFsdWUoJHF1ZXJ5KSB7XG4gIEByZXR1cm4gYmVsb25ncy10byh0YWJsZSwgJHF1ZXJ5KVxuICAgICAgIG9yIGJlbG9uZ3MtdG8oYmxvY2ssICRxdWVyeSlcbiAgICAgICBvciBiZWxvbmdzLXRvKGlubGluZS1ibG9jaywgJHF1ZXJ5KVxuICAgICAgIG9yIGJlbG9uZ3MtdG8oaW5saW5lLCAkcXVlcnkpO1xufVxuXG4vLyBQYXJzZXMgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHNwYW4tY29sdW1ucygpXG5AZnVuY3Rpb24gY29udGFpbmVyLXNwYW4oJHNwYW46ICRzcGFuKSB7XG4gIEBpZiBsZW5ndGgoJHNwYW4pID09IDMge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzcGFuLCAzKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNwYW4pID09IDIge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzcGFuLCAyKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfVxuXG4gIEByZXR1cm4gJGdyaWQtY29sdW1ucztcbn1cblxuQGZ1bmN0aW9uIGNvbnRhaW5lci1zaGlmdCgkc2hpZnQ6ICRzaGlmdCkge1xuICAkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWRlZmF1bHQgIWdsb2JhbDtcblxuICBAaWYgbGVuZ3RoKCRzaGlmdCkgPT0gMyB7XG4gICAgJGNvbnRhaW5lci1jb2x1bW5zOiBudGgoJHNoaWZ0LCAzKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNoaWZ0KSA9PSAyIHtcbiAgICAkY29udGFpbmVyLWNvbHVtbnM6IG50aCgkc2hpZnQsIDIpO1xuICAgIEByZXR1cm4gJGNvbnRhaW5lci1jb2x1bW5zO1xuICB9XG5cbiAgQHJldHVybiAkcGFyZW50LWNvbHVtbnM7XG59XG5cbi8vIEdlbmVyYXRlcyBhIHN0cmlwZWQgYmFja2dyb3VuZFxuQGZ1bmN0aW9uIGdyYWRpZW50LXN0b3BzKCRncmlkLWNvbHVtbnMsICRjb2xvcjogJHZpc3VhbC1ncmlkLWNvbG9yKSB7XG4gICR0cmFuc3BhcmVudDogdHJhbnNwYXJlbnQ7XG5cbiAgJGNvbHVtbi13aWR0aDogZmxleC1ncmlkKDEsICRncmlkLWNvbHVtbnMpO1xuICAkZ3V0dGVyLXdpZHRoOiBmbGV4LWd1dHRlcigkZ3JpZC1jb2x1bW5zKTtcbiAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4td2lkdGg7XG5cbiAgJHZhbHVlczogKCR0cmFuc3BhcmVudCAwLCAkY29sb3IgMCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdG8gJGdyaWQtY29sdW1ucyoyIHtcbiAgICBAaWYgaXMtZXZlbigkaSkge1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICR0cmFuc3BhcmVudCAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICRjb2xvciAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4tb2Zmc2V0ICsgJGNvbHVtbi13aWR0aDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkY29sb3IgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkdHJhbnNwYXJlbnQgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICRjb2x1bW4tb2Zmc2V0OiAkY29sdW1uLW9mZnNldCArICRndXR0ZXItd2lkdGg7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWVzO1xufVxuXG4vLyBMYXlvdXQgZGlyZWN0aW9uXG5AZnVuY3Rpb24gZ2V0LWRpcmVjdGlvbigkbGF5b3V0LCAkZGVmYXVsdCkge1xuICAkZGlyZWN0aW9uOiBudWxsO1xuXG4gIEBpZiB0by11cHBlci1jYXNlKCRsYXlvdXQpID09IFwiTFRSXCIgb3IgdG8tdXBwZXItY2FzZSgkbGF5b3V0KSA9PSBcIlJUTFwiIHtcbiAgICAkZGlyZWN0aW9uOiBkaXJlY3Rpb24tZnJvbS1sYXlvdXQoJGxheW91dCk7XG4gIH0gQGVsc2Uge1xuICAgICRkaXJlY3Rpb246IGRpcmVjdGlvbi1mcm9tLWxheW91dCgkZGVmYXVsdCk7XG4gIH1cblxuICBAcmV0dXJuICRkaXJlY3Rpb247XG59XG5cbkBmdW5jdGlvbiBkaXJlY3Rpb24tZnJvbS1sYXlvdXQoJGxheW91dCkge1xuICAkZGlyZWN0aW9uOiBudWxsO1xuXG4gIEBpZiB0by11cHBlci1jYXNlKCRsYXlvdXQpID09IFwiTFRSXCIge1xuICAgICRkaXJlY3Rpb246IHJpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICAkZGlyZWN0aW9uOiBsZWZ0O1xuICB9XG5cbiAgQHJldHVybiAkZGlyZWN0aW9uO1xufVxuXG5AZnVuY3Rpb24gZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKSB7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGxlZnQ7XG5cbiAgQGlmICRkaXJlY3Rpb24gPT0gXCJsZWZ0XCIge1xuICAgICRvcHBvc2l0ZS1kaXJlY3Rpb246IHJpZ2h0O1xuICB9XG5cbiAgQHJldHVybiAkb3Bwb3NpdGUtZGlyZWN0aW9uO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUmV0dXJucyBhIG1lZGlhIGNvbnRleHQgKG1lZGlhIHF1ZXJ5IC8gZ3JpZCBjb250ZXh0KSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSB2YXJpYWJsZSBhbmQgcGFzc2VkIHRvIGBtZWRpYSgpYCBhcyBhIHNpbmdsZS1rZXl3b3JkIGFyZ3VtZW50LiBNZWRpYSBjb250ZXh0cyBkZWZpbmVkIHVzaW5nIGBuZXctYnJlYWtwb2ludGAgYXJlIHVzZWQgYnkgdGhlIHZpc3VhbCBncmlkLCBhcyBsb25nIGFzIHRoZXkgYXJlIGRlZmluZWQgYmVmb3JlIGltcG9ydGluZyBOZWF0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcXVlcnlcbi8vLyAgIEEgbGlzdCBvZiBtZWRpYSBxdWVyeSBmZWF0dXJlcyBhbmQgdmFsdWVzLiBFYWNoIGAkZmVhdHVyZWAgc2hvdWxkIGhhdmUgYSBjb3JyZXNwb25kaW5nIGAkdmFsdWVgLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIGAkdmFsdWVgIGluIGAkcXVlcnlgLCBgJGRlZmF1bHQtZmVhdHVyZWAgaXMgZ29pbmcgdG8gYmUgdXNlZC5cbi8vL1xuLy8vICAgVGhlIG51bWJlciBvZiB0b3RhbCBjb2x1bW5zIGluIHRoZSBncmlkIGNhbiBiZSBzZXQgYnkgcGFzc2luZyBgJGNvbHVtbnNgIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QgKG92ZXJyaWRlcyBgJHRvdGFsLWNvbHVtbnNgKS4gRm9yIGEgbGlzdCBvZiB2YWxpZCB2YWx1ZXMgZm9yIGAkZmVhdHVyZWAsIGNsaWNrIFtoZXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWExKS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICR0b3RhbC1jb2x1bW5zIFskZ3JpZC1jb2x1bW5zXVxuLy8vICAgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgaW4gdGhlIG5ldyBncmlkIGNvbnRleHQuIENhbiBiZSBzZXQgYXMgYSBzaG9ydGhhbmQgaW4gdGhlIGZpcnN0IHBhcmFtZXRlci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgJG1vYmlsZTogbmV3LWJyZWFrcG9pbnQobWF4LXdpZHRoIDQ4MHB4IDQpO1xuLy8vXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpIHtcbi8vLyAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4vLy8gICAgIC5lbGVtZW50IHtcbi8vLyAgICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgICBtYXJnaW4tcmlnaHQ6IDcuNDIyOTclO1xuLy8vICAgICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgICB9XG4vLy8gICAgIC5lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICAgfVxuLy8vICAgfVxuXG5AZnVuY3Rpb24gbmV3LWJyZWFrcG9pbnQoJHF1ZXJ5OiAkZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICAkcXVlcnk6ICRkZWZhdWx0LWZlYXR1cmUgbnRoKCRxdWVyeSwgMSkgJHRvdGFsLWNvbHVtbnM7XG4gIH0gQGVsc2UgaWYgaXMtZXZlbihsZW5ndGgoJHF1ZXJ5KSkge1xuICAgICRxdWVyeTogYXBwZW5kKCRxdWVyeSwgJHRvdGFsLWNvbHVtbnMpO1xuICB9XG5cbiAgQGlmIGlzLW5vdChiZWxvbmdzLXRvKCRxdWVyeSwgJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzKSkge1xuICAgICR2aXN1YWwtZ3JpZC1icmVha3BvaW50czogYXBwZW5kKCR2aXN1YWwtZ3JpZC1icmVha3BvaW50cywgJHF1ZXJ5LCBjb21tYSkgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHF1ZXJ5O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU2V0cyB0aGUgcmVsYXRpdmUgd2lkdGggb2YgYSBzaW5nbGUgZ3JpZCBjb2x1bW4uIFRoZSB1bml0IHVzZWQgc2hvdWxkIGJlIHRoZSBzYW1lIG9uZSB1c2VkIHRvIGRlZmluZSBgJGd1dHRlcmAuIFRvIGxlYXJuIG1vcmUgYWJvdXQgbW9kdWxhci1zY2FsZSgpIHNlZSBbQm91cmJvbiBkb2NzXShodHRwOi8vYm91cmJvbi5pby9kb2NzLyNtb2R1bGFyLXNjYWxlKS4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdClcblxuJGNvbHVtbjogbW9kdWxhci1zY2FsZSgzLCAxZW0sICRnb2xkZW4pICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgcmVsYXRpdmUgd2lkdGggb2YgYSBzaW5nbGUgZ3JpZCBndXR0ZXIuIFRoZSB1bml0IHVzZWQgc2hvdWxkIGJlIHRoZSBzYW1lIG9uZSB1c2VkIHRvIGRlZmluZSBgJGNvbHVtbmAuIFRvIGxlYXJuIG1vcmUgYWJvdXQgbW9kdWxhci1zY2FsZSgpIHNlZSBbQm91cmJvbiBkb2NzXShodHRwOi8vYm91cmJvbi5pby9kb2NzLyNtb2R1bGFyLXNjYWxlKS4gU2V0IHdpdGggdGhlIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuXG4kZ3V0dGVyOiBtb2R1bGFyLXNjYWxlKDEsIDFlbSwgJGdvbGRlbikgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC4gSXRzIHZhbHVlIGNhbiBiZSBvdmVycmlkZGVuIGluc2lkZSBhIG1lZGlhIHF1ZXJ5IHVzaW5nIHRoZSBgbWVkaWEoKWAgbWl4aW4uIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdGxlc3MpXG5cbiRncmlkLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgbWF4LXdpZHRoIHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IHRoYXQgaW5jbHVkZXMgYG91dGVyLWNvbnRhaW5lcigpYC4gVG8gbGVhcm4gbW9yZSBhYm91dCBgZW0oKWAgc2VlIFtCb3VyYm9uIGRvY3NdKGh0dHA6Ly9ib3VyYm9uLmlvL2RvY3MvI3B4LXRvLWVtKS4gU2V0IHdpdGggdGhlIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuLy8vXG4kbWF4LXdpZHRoOiBlbSgxMDg4KSAhZGVmYXVsdDtcblxuLy8vIFdoZW4gc2V0IHRvIHRydWUsIGl0IHNldHMgdGhlIGJveC1zaXppbmcgcHJvcGVydHkgb2YgYWxsIGVsZW1lbnRzIHRvIGBib3JkZXItYm94YC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGh0bWwge1xuLy8vICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4vLy9cbi8vLyAgICosICo6OmFmdGVyLCAqOjpiZWZvcmUge1xuLy8vICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuLy8vICAgfVxuXG4kYm9yZGVyLWJveC1zaXppbmc6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSBkZWZhdWx0IFttZWRpYSBmZWF0dXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWEpIHRoYXQgYG1lZGlhKClgIGFuZCBgbmV3LWJyZWFrcG9pbnQoKWAgcmV2ZXJ0IHRvIHdoZW4gb25seSBhIGJyZWFrcG9pbnQgdmFsdWUgaXMgcGFzc2VkLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG5cbiRkZWZhdWx0LWZlYXR1cmU6IG1pbi13aWR0aDsgLy8gRGVmYXVsdCBAbWVkaWEgZmVhdHVyZSBmb3IgdGhlIGJyZWFrcG9pbnQoKSBtaXhpblxuXG4vLy9TZXRzIHRoZSBkZWZhdWx0IGxheW91dCBkaXJlY3Rpb24gb2YgdGhlIGdyaWQuIENhbiBiZSBgTFRSYCBvciBgUlRMYC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vQHR5cGUgU3RyaW5nXG5cbiRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb246IExUUiAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpc3BsYXlzIHRoZSB2aXN1YWwgZ3JpZCB3aGVuIHNldCB0byB0cnVlLiBUaGUgb3ZlcmxhaWQgZ3JpZCBtYXkgYmUgZmV3IHBpeGVscyBvZmYgZGVwZW5kaW5nIG9uIHRoZSBicm93c2VyJ3MgcmVuZGVyaW5nIGVuZ2luZSBhbmQgcGl4ZWwgcm91bmRpbmcgYWxnb3JpdGhtLiBTZXQgd2l0aCB0aGUgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiR2aXN1YWwtZ3JpZDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgZ3JpZCBjb2xvci4gU2V0IHdpdGggYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBDb2xvclxuXG4kdmlzdWFsLWdyaWQtY29sb3I6ICNlZWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSBgei1pbmRleGAgcHJvcGVydHkgb2YgdGhlIHZpc3VhbCBncmlkLiBDYW4gYmUgYGJhY2tgIChiZWhpbmQgY29udGVudCkgb3IgYGZyb250YCAoaW4gZnJvbnQgb2YgY29udGVudCkuIFNldCB3aXRoIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG5cbiR2aXN1YWwtZ3JpZC1pbmRleDogYmFjayAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIG9wYWNpdHkgcHJvcGVydHkgb2YgdGhlIHZpc3VhbCBncmlkLiBTZXQgd2l0aCBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAodW5pdGxlc3MpXG5cbiR2aXN1YWwtZ3JpZC1vcGFjaXR5OiAwLjQgIWRlZmF1bHQ7XG5cbiR2aXN1YWwtZ3JpZC1icmVha3BvaW50czogKCkgIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEaXNhYmxlIGFsbCBkZXByZWNhdGlvbiB3YXJuaW5ncy4gRGVmYXVsdHMgdG8gYGZhbHNlYC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcblxuJGRpc2FibGUtd2FybmluZ3M6IGZhbHNlICFkZWZhdWx0O1xuXG5AbWl4aW4gLW5lYXQtd2FybigkbWVzc2FnZSkge1xuICBAaWYgJGRpc2FibGUtd2FybmluZ3MgPT0gZmFsc2Uge1xuICAgIEB3YXJuIFwiI3skbWVzc2FnZX1cIjtcbiAgfVxufVxuIiwiJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zICFkZWZhdWx0O1xuJGZnLWNvbHVtbjogJGNvbHVtbjtcbiRmZy1ndXR0ZXI6ICRndXR0ZXI7XG4kZmctbWF4LWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4kY29udGFpbmVyLWRpc3BsYXktdGFibGU6IGZhbHNlICFkZWZhdWx0O1xuJGxheW91dC1kaXJlY3Rpb246IExUUiAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbkBmdW5jdGlvbiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucywgJGd1dHRlcjogJGZnLWd1dHRlcikge1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCRndXR0ZXIgLyAkY29udGFpbmVyLXdpZHRoKTtcbn1cblxuQGZ1bmN0aW9uIGdyaWQtd2lkdGgoJG4pIHtcbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XG59XG5cbkBmdW5jdGlvbiBnZXQtcGFyZW50LWNvbHVtbnMoJGNvbHVtbnMpIHtcbiAgQGlmICRjb2x1bW5zICE9ICRncmlkLWNvbHVtbnMge1xuICAgICRwYXJlbnQtY29sdW1uczogJGNvbHVtbnMgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuICRwYXJlbnQtY29sdW1ucztcbn1cblxuQGZ1bmN0aW9uIGlzLWRpc3BsYXktdGFibGUoJGNvbnRhaW5lci1pcy1kaXNwbGF5LXRhYmxlLCAkZGlzcGxheSkge1xuICBAcmV0dXJuICRjb250YWluZXItaXMtZGlzcGxheS10YWJsZSA9PSB0cnVlIG9yICRkaXNwbGF5ID09IHRhYmxlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG5AaWYgJGJvcmRlci1ib3gtc2l6aW5nID09IHRydWUge1xuICBodG1sIHsgLy8gaHR0cDovL2JpdC5seS8xcWsydFZSXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICoge1xuICAgICYsXG4gICAgJjo6YWZ0ZXIsXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBSZW1vdmVzIHRoZSBlbGVtZW50J3MgZ3V0dGVyIG1hcmdpbiwgcmVnYXJkbGVzcyBvZiBpdHMgcG9zaXRpb24gaW4gdGhlIGdyaWQgaGllcmFyY2h5IG9yIGRpc3BsYXkgcHJvcGVydHkuIEl0IGNhbiB0YXJnZXQgYSBzcGVjaWZpYyBlbGVtZW50LCBvciBldmVyeSBgbnRoLWNoaWxkYCBvY2N1cnJlbmNlLiBXb3JrcyBvbmx5IHdpdGggYGJsb2NrYCBsYXlvdXRzLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcXVlcnkgW2Jsb2NrXVxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHMuIFN1cHBvcnRlZCBhcmd1bWVudHMgYXJlIGBudGgtY2hpbGRgIHNlbGVjdG9ycyAodGFyZ2V0cyBhIHNwZWNpZmljIHBzZXVkbyBlbGVtZW50KSBhbmQgYGF1dG9gICh0YXJnZXRzIGBsYXN0LWNoaWxkYCkuXG4vLy9cbi8vLyAgIFdoZW4gcGFzc2VkIGFuIGBudGgtY2hpbGRgIGFyZ3VtZW50IG9mIHR5cGUgYCpuYCB3aXRoIGBibG9ja2AgZGlzcGxheSwgdGhlIG9tZWdhIG1peGluIGF1dG9tYXRpY2FsbHkgYWRkcyBhIGNsZWFyIHRvIHRoZSBgKm4rMWAgdGggZWxlbWVudC4gTm90ZSB0aGF0IGNvbXBvc2l0ZSBhcmd1bWVudHMgc3VjaCBhcyBgMm4rMWAgZG8gbm90IHN1cHBvcnQgdGhpcyBmZWF0dXJlLlxuLy8vXG4vLy8gICAqKkRlcHJlY2F0aW9uIHdhcm5pbmcqKjogVGhlIG9tZWdhIG1peGluIHdpbGwgbm8gbG9uZ2VyIHRha2UgYSBgJGRpcmVjdGlvbmAgYXJndW1lbnQuIFRvIGNoYW5nZSB0aGUgbGF5b3V0IGRpcmVjdGlvbiwgdXNlIGByb3coJGRpcmVjdGlvbilgIG9yIHNldCBgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbmAgaW5zdGVhZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBvbWVnYTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLm50aC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgb21lZ2EoNG4pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5udGgtZWxlbWVudDpudGgtY2hpbGQoNG4pIHtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAubnRoLWVsZW1lbnQ6bnRoLWNoaWxkKDRuKzEpIHtcbi8vLyAgICAgY2xlYXI6IGxlZnQ7XG4vLy8gICB9XG5cbkBtaXhpbiBvbWVnYSgkcXVlcnk6IGJsb2NrLCAkZGlyZWN0aW9uOiBkZWZhdWx0KSB7XG4gICR0YWJsZTogYmVsb25ncy10byh0YWJsZSwgJHF1ZXJ5KTtcbiAgJGF1dG86IGJlbG9uZ3MtdG8oYXV0bywgJHF1ZXJ5KTtcblxuICBAaWYgJGRpcmVjdGlvbiAhPSBkZWZhdWx0IHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIG9tZWdhIG1peGluIHdpbGwgbm8gbG9uZ2VyIHRha2UgYSAkZGlyZWN0aW9uIGFyZ3VtZW50LiBUbyBjaGFuZ2UgdGhlIGxheW91dCBkaXJlY3Rpb24sIHVzZSB0aGUgZGlyZWN0aW9uKCl7Li4ufSBtaXhpbi5cIik7XG4gIH0gQGVsc2Uge1xuICAgICRkaXJlY3Rpb246IGdldC1kaXJlY3Rpb24oJGxheW91dC1kaXJlY3Rpb24sICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24pO1xuICB9XG5cbiAgQGlmICR0YWJsZSB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSBvbWVnYSBtaXhpbiBubyBsb25nZXIgcmVtb3ZlcyBwYWRkaW5nIGluIHRhYmxlIGxheW91dHMuXCIpO1xuICB9XG5cbiAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgIEBpZiAkYXV0byB7XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSBpZiBjb250YWlucy1kaXNwbGF5LXZhbHVlKCRxdWVyeSkgYW5kICR0YWJsZSA9PSBmYWxzZSB7XG4gICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBudGgtY2hpbGQoJHF1ZXJ5LCAkZGlyZWN0aW9uKTtcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMiB7XG4gICAgQGlmICRhdXRvIHtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgbnRoLWNoaWxkKG50aCgkcXVlcnksIDEpLCAkZGlyZWN0aW9uKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUb28gbWFueSBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBvbWVnYSgpIG1peGluLlwiKTtcbiAgfVxufVxuXG5AbWl4aW4gbnRoLWNoaWxkKCRxdWVyeSwgJGRpcmVjdGlvbikge1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBnZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pO1xuXG4gICY6bnRoLWNoaWxkKCN7JHF1ZXJ5fSkge1xuICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSBudW1iZXIgYW5kIHVuaXQoJHF1ZXJ5KSA9PSBcIm5cIiB7XG4gICAgJjpudGgtY2hpbGQoI3skcXVlcnl9KzEpIHtcbiAgICAgIGNsZWFyOiAkb3Bwb3NpdGUtZGlyZWN0aW9uO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCBhIG91dGVyIGNvbnRhaW5lciBieSBjZW50cmluZyBpdCBpbiB0aGUgdmlld3BvcnQsIGNsZWFyaW5nIGl0cyBmbG9hdHMsIGFuZCBzZXR0aW5nIGl0cyBgbWF4LXdpZHRoYC5cbi8vLyBBbHRob3VnaCBvcHRpb25hbCwgdXNpbmcgYG91dGVyLWNvbnRhaW5lcmAgaXMgcmVjb21tZW5kZWQuIFRoZSBtaXhpbiBjYW4gYmUgY2FsbGVkIG9uIG1vcmUgdGhhbiBvbmUgZWxlbWVudCBwZXIgcGFnZSwgYXMgbG9uZyBhcyB0aGV5IGFyZSBub3QgbmVzdGVkLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgW3VuaXRdfSAkbG9jYWwtbWF4LXdpZHRoIFskbWF4LXdpZHRoXVxuLy8vICAgTWF4IHdpZHRoIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGVsZW1lbnQuIENhbiBiZSBhIHBlcmNlbnRhZ2Ugb3IgYSBtZWFzdXJlLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigxMDAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgKnpvb206IDE7XG4vLy8gICAgIG1heC13aWR0aDogMTAwJTtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4vLy8gICAgIG1hcmdpbi1yaWdodDogYXV0bztcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQ6YmVmb3JlLCAuZWxlbWVudDphZnRlciB7XG4vLy8gICAgIGNvbnRlbnQ6IFwiIFwiO1xuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQ6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgIH1cblxuQG1peGluIG91dGVyLWNvbnRhaW5lcigkbG9jYWwtbWF4LXdpZHRoOiAkbWF4LXdpZHRoKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXgtd2lkdGg6ICRsb2NhbC1tYXgtd2lkdGg7XG4gIG1hcmdpbjoge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgYW4gZWxlbWVudCBzaG91bGQgc3Bhbi4gSWYgdGhlIHNlbGVjdG9yIGlzIG5lc3RlZCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgb2YgaXRzIHBhcmVudCBlbGVtZW50IHNob3VsZCBiZSBwYXNzZWQgYXMgYW4gYXJndW1lbnQgYXMgd2VsbC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNwYW5cbi8vLyAgIEEgbGlzdCBjb250YWluaW5nIGAkY29sdW1uc2AsIHRoZSB1bml0bGVzcyBudW1iZXIgb2YgY29sdW1ucyB0aGUgZWxlbWVudCBzcGFucyAocmVxdWlyZWQpLCBhbmQgYCRjb250YWluZXItY29sdW1uc2AsIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0aGUgcGFyZW50IGVsZW1lbnQgc3BhbnMgKG9wdGlvbmFsKS5cbi8vL1xuLy8vICAgSWYgb25seSBvbmUgdmFsdWUgaXMgcGFzc2VkLCBpdCBpcyBhc3N1bWVkIHRoYXQgaXQncyBgJGNvbHVtbnNgIGFuZCB0aGF0IHRoYXQgYCRjb250YWluZXItY29sdW1uc2AgaXMgZXF1YWwgdG8gYCRncmlkLWNvbHVtbnNgLCB0aGUgdG90YWwgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQuXG4vLy9cbi8vLyAgIFRoZSB2YWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCB3aXRoIGFueSBzdHJpbmcgc3VjaCBhcyBgb2ZgLCBgL2AsIGV0Yy5cbi8vL1xuLy8vICAgYCRjb2x1bW5zYCBhbHNvIGFjY2VwdHMgZGVjaW1hbHMgZm9yIHdoZW4gaXQncyBuZWNlc3NhcnkgdG8gYnJlYWsgb3V0IG9mIHRoZSBzdGFuZGFyZCBncmlkLiBFLmcuIFBhc3NpbmcgYDIuNGAgaW4gYSBzdGFuZGFyZCAxMiBjb2x1bW4gZ3JpZCB3aWxsIGRpdmlkZSB0aGUgcm93IGludG8gNSBjb2x1bW5zLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtibG9ja11cbi8vLyAgIFNldHMgdGhlIGRpc3BsYXkgcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQuIEJ5IGRlZmF1bHQgaXQgc2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0IG9mIHRoZSBlbGVtZW50IHRvIGBibG9ja2AuXG4vLy9cbi8vLyAgIElmIHBhc3NlZCBgYmxvY2stY29sbGFwc2VgLCBpdCBhbHNvIHJlbW92ZXMgdGhlIG1hcmdpbiBndXR0ZXIgYnkgYWRkaW5nIGl0IHRvIHRoZSBlbGVtZW50IHdpZHRoLlxuLy8vXG4vLy8gICBJZiBwYXNzZWQgYHRhYmxlYCwgaXQgc2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSB0byBgdGFibGUtY2VsbGAgYW5kIGNhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIHRoZSBlbGVtZW50IHdpdGhvdXQgdGFraW5nIGd1dHRlcnMgaW50byBjb25zaWRlcmF0aW9uLiBUaGUgcmVzdWx0IGRvZXMgbm90IGFsaWduIHdpdGggdGhlIGJsb2NrLWJhc2VkIGdyaWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vXG4vLy8gICAgLm5lc3RlZC1lbGVtZW50IHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyIG9mIDYpO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4vLy8gICAgIHdpZHRoOiA0OC44MjExNyU7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50IC5uZXN0ZWQtZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbi8vLyAgICAgd2lkdGg6IDMwLjExMzg5JTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQgLm5lc3RlZC1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG5cbkBtaXhpbiBzcGFuLWNvbHVtbnMoJHNwYW46ICRjb2x1bW5zIG9mICRjb250YWluZXItY29sdW1ucywgJGRpc3BsYXk6IGJsb2NrKSB7XG4gICRjb2x1bW5zOiBudGgoJHNwYW4sIDEpO1xuICAkY29udGFpbmVyLWNvbHVtbnM6IGNvbnRhaW5lci1zcGFuKCRzcGFuKTtcblxuICAkcGFyZW50LWNvbHVtbnM6IGdldC1wYXJlbnQtY29sdW1ucygkY29udGFpbmVyLWNvbHVtbnMpICFnbG9iYWw7XG5cbiAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgJGRpc3BsYXktdGFibGU6IGlzLWRpc3BsYXktdGFibGUoJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlLCAkZGlzcGxheSk7XG5cbiAgQGlmICRkaXNwbGF5LXRhYmxlICB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyAvICRjb250YWluZXItY29sdW1ucyk7XG4gIH0gQGVsc2Uge1xuICAgIGZsb2F0OiAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259O1xuXG4gICAgQGlmICRkaXNwbGF5ICE9IG5vLWRpc3BsYXkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGlmICRkaXNwbGF5ID09IGNvbGxhcHNlIHtcbiAgICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgJ2NvbGxhcHNlJyBhcmd1bWVudCB3aWxsIGJlIGRlcHJlY2F0ZWQuIFVzZSAnYmxvY2stY29sbGFwc2UnIGluc3RlYWQuXCIpO1xuICAgIH1cblxuICAgIEBpZiAkZGlzcGxheSA9PSBjb2xsYXBzZSBvciAkZGlzcGxheSA9PSBibG9jay1jb2xsYXBzZSB7XG4gICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpICsgZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zKTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKTtcbiAgICAgIH1cblxuICAgIH0gQGVsc2Uge1xuICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1ucyk7XG4gICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERlc2lnbmF0ZXMgdGhlIGVsZW1lbnQgYXMgYSByb3cgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZCBsYXlvdXQuIEl0IGNsZWFycyB0aGUgZmxvYXRzIG9uIHRoZSBlbGVtZW50IGFuZCBzZXRzIGl0cyBkaXNwbGF5IHByb3BlcnR5LiBSb3dzIGNhbid0IGJlIG5lc3RlZCwgYnV0IHRoZXJlIGNhbiBiZSBtb3JlIHRoYW4gb25lIHJvdyBlbGVtZW504oCUd2l0aCBkaWZmZXJlbnQgZGlzcGxheSBwcm9wZXJ0aWVz4oCUcGVyIGxheW91dC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlzcGxheSBbZGVmYXVsdF1cbi8vLyAgU2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCBhbmQgdGhlIGRpc3BsYXkgY29udGV4dCB0aGF0IHdpbGwgYmUgdXNlZCBieSBpdHMgY2hpbGRyZW4uIENhbiBiZSBgYmxvY2tgIG9yIGB0YWJsZWAuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpcmVjdGlvbiBbJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbl1cbi8vLyAgU2V0cyB0aGUgbGF5b3V0IGRpcmVjdGlvbi4gQ2FuIGJlIGBMVFJgIChsZWZ0LXRvLXJpZ2h0KSBvciBgUlRMYCAocmlnaHQtdG8tbGVmdCkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgLmVsZW1lbnQge1xuLy8vICAgIEBpbmNsdWRlIHJvdygpO1xuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gIC5lbGVtZW50IHtcbi8vLyAgICAqem9vbTogMTtcbi8vLyAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgfVxuLy8vXG4vLy8gLmVsZW1lbnQ6YmVmb3JlLCAuZWxlbWVudDphZnRlciB7XG4vLy8gICBjb250ZW50OiBcIiBcIjtcbi8vLyAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vIH1cbi8vL1xuLy8vIC5lbGVtZW50OmFmdGVyIHtcbi8vLyAgIGNsZWFyOiBib3RoO1xuLy8vIH1cblxuQG1peGluIHJvdygkZGlzcGxheTogZGVmYXVsdCwgJGRpcmVjdGlvbjogJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbikge1xuICBAaWYgJGRpcmVjdGlvbiAhPSAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlICRkaXJlY3Rpb24gYXJndW1lbnQgd2lsbCBiZSBkZXByZWNhdGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBpbiBmYXZvciBvZiB0aGUgZGlyZWN0aW9uKCl7Li4ufSBtaXhpbi5cIik7XG4gIH1cblxuICAkbGF5b3V0LWRpcmVjdGlvbjogJGRpcmVjdGlvbiAhZ2xvYmFsO1xuXG4gIEBpZiAkZGlzcGxheSAhPSBkZWZhdWx0IHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlICRkaXNwbGF5IGFyZ3VtZW50IHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgaW4gZmF2b3Igb2YgdGhlIGRpc3BsYXkoKXsuLi59IG1peGluLlwiKTtcbiAgfVxuXG4gIEBpZiAkZGlzcGxheSA9PSB0YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgQGluY2x1ZGUgZmlsbC1wYXJlbnQ7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6IHRydWUgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiBmYWxzZSAhZ2xvYmFsO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBUcmFuc2xhdGVzIGFuIGVsZW1lbnQgaG9yaXpvbnRhbGx5IGJ5IGEgbnVtYmVyIG9mIGNvbHVtbnMuIFBvc2l0aXZlIGFyZ3VtZW50cyBzaGlmdCB0aGUgZWxlbWVudCB0byB0aGUgYWN0aXZlIGxheW91dCBkaXJlY3Rpb24sIHdoaWxlIG5lZ2F0aXZlIG9uZXMgc2hpZnQgaXQgdG8gdGhlIG9wcG9zaXRlIGRpcmVjdGlvbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICRuLWNvbHVtbnMgWzFdXG4vLy8gICBOdW1iZXIgb2YgY29sdW1ucyBieSB3aGljaCB0aGUgZWxlbWVudCBzaGlmdHMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2hpZnQoLTMpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIG91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tbGVmdDogLTI1LjU4OTQxJTtcbi8vLyAgIH1cblxuQG1peGluIHNoaWZ0KCRuLWNvbHVtbnM6IDEpIHtcbiAgQGluY2x1ZGUgc2hpZnQtaW4tY29udGV4dCgkbi1jb2x1bW5zKTtcbn1cblxuLy8vIFRyYW5zbGF0ZXMgYW4gZWxlbWVudCBob3Jpem9udGFsbHkgYnkgYSBudW1iZXIgb2YgY29sdW1ucywgaW4gYSBzcGVjaWZpYyBuZXN0aW5nIGNvbnRleHQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaGlmdFxuLy8vICAgQSBsaXN0IGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIHNoaWZ0IChgJGNvbHVtbnNgKSBhbmQgdGhlIG51bWJlciBvZiBjb2x1bW5zIG9mIHRoZSBwYXJlbnQgZWxlbWVudCAoYCRjb250YWluZXItY29sdW1uc2ApLlxuLy8vXG4vLy8gICBUaGUgdHdvIHZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIHdpdGggYW55IHN0cmluZyBzdWNoIGFzIGBvZmAsIGAvYCwgZXRjLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNoaWZ0KC0zIG9mIDYpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIG91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tbGVmdDogLTUyLjQxNDU4JTtcbi8vLyAgIH1cblxuQG1peGluIHNoaWZ0LWluLWNvbnRleHQoJHNoaWZ0OiAkY29sdW1ucyBvZiAkY29udGFpbmVyLWNvbHVtbnMpIHtcbiAgJG4tY29sdW1uczogbnRoKCRzaGlmdCwgMSk7XG4gICRwYXJlbnQtY29sdW1uczogY29udGFpbmVyLXNoaWZ0KCRzaGlmdCkgIWdsb2JhbDtcblxuICAkZGlyZWN0aW9uOiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQtZGlyZWN0aW9uLCAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKTtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKTtcblxuICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJG4tY29sdW1ucyAqIGZsZXgtZ3JpZCgxLCAkcGFyZW50LWNvbHVtbnMpICsgJG4tY29sdW1ucyAqIGZsZXgtZ3V0dGVyKCRwYXJlbnQtY29sdW1ucyk7XG5cbiAgLy8gUmVzZXQgbmVzdGluZyBjb250ZXh0XG4gICRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQWRkcyBwYWRkaW5nIHRvIHRoZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcGFkZGluZyBbZmxleC1ndXR0ZXIoKV1cbi8vLyAgIEEgbGlzdCBvZiBwYWRkaW5nIHZhbHVlKHMpIHRvIHVzZS4gUGFzc2luZyBgZGVmYXVsdGAgaW4gdGhlIGxpc3Qgd2lsbCByZXN1bHQgaW4gdXNpbmcgdGhlIGd1dHRlciB3aWR0aCBhcyBhIHBhZGRpbmcgdmFsdWUuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcGFkKDMwcHggLTIwcHggMTBweCBkZWZhdWx0KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgcGFkZGluZzogMzBweCAtMjBweCAxMHB4IDIuMzU3NjUlO1xuLy8vICAgfVxuXG5AbWl4aW4gcGFkKCRwYWRkaW5nOiBmbGV4LWd1dHRlcigpKSB7XG4gICRwYWRkaW5nLWxpc3Q6IG51bGw7XG4gIEBlYWNoICR2YWx1ZSBpbiAkcGFkZGluZyB7XG4gICAgJHZhbHVlOiBpZigkdmFsdWUgPT0gJ2RlZmF1bHQnLCBmbGV4LWd1dHRlcigpLCAkdmFsdWUpO1xuICAgICRwYWRkaW5nLWxpc3Q6IGpvaW4oJHBhZGRpbmctbGlzdCwgJHZhbHVlKTtcbiAgfVxuICBwYWRkaW5nOiAkcGFkZGluZy1saXN0O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRm9yY2VzIHRoZSBlbGVtZW50IHRvIGZpbGwgaXRzIHBhcmVudCBjb250YWluZXIuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZmlsbC1wYXJlbnQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuLy8vICAgfVxuXG5AbWl4aW4gZmlsbC1wYXJlbnQoKSB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpZiAkYm9yZGVyLWJveC1zaXppbmcgPT0gZmFsc2Uge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE91dHB1dHMgYSBtZWRpYS1xdWVyeSBibG9jayB3aXRoIGFuIG9wdGlvbmFsIGdyaWQgY29udGV4dCAodGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIHVzZWQgaW4gdGhlIGdyaWQpLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcXVlcnlcbi8vLyAgIEEgbGlzdCBvZiBtZWRpYSBxdWVyeSBmZWF0dXJlcyBhbmQgdmFsdWVzLCB3aGVyZSBlYWNoIGAkZmVhdHVyZWAgc2hvdWxkIGhhdmUgYSBjb3JyZXNwb25kaW5nIGAkdmFsdWVgLlxuLy8vICAgRm9yIGEgbGlzdCBvZiB2YWxpZCB2YWx1ZXMgZm9yIGAkZmVhdHVyZWAsIGNsaWNrIFtoZXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWExKS5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSBgJHZhbHVlYCBpbiBgJHF1ZXJ5YCwgYCRkZWZhdWx0LWZlYXR1cmVgIGlzIGdvaW5nIHRvIGJlIHVzZWQuXG4vLy9cbi8vLyAgIFRoZSBudW1iZXIgb2YgdG90YWwgY29sdW1ucyBpbiB0aGUgZ3JpZCBjYW4gYmUgc2V0IGJ5IHBhc3NpbmcgYCRjb2x1bW5zYCBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0IChvdmVycmlkZXMgYCR0b3RhbC1jb2x1bW5zYCkuXG4vLy9cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICR0b3RhbC1jb2x1bW5zIFskZ3JpZC1jb2x1bW5zXVxuLy8vICAgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgaW4gdGhlIG5ldyBncmlkIGNvbnRleHQuIENhbiBiZSBzZXQgYXMgYSBzaG9ydGhhbmQgaW4gdGhlIGZpcnN0IHBhcmFtZXRlci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLnJlc3BvbnNpdmUtZWxlbWVudCB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSg3NjlweCkge1xuLy8vICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyAgLm5ldy1jb250ZXh0LWVsZW1lbnQge1xuLy8vICAgIEBpbmNsdWRlIG1lZGlhKG1pbi13aWR0aCAzMjBweCBtYXgtd2lkdGggNDgwcHgsIDYpIHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpIHtcbi8vLyAgICAucmVzcG9uc2l2ZS1lbGVtZW50IHtcbi8vLyAgICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuLy8vICAgICAgd2lkdGg6IDQ4LjgyMTE3JTtcbi8vLyAgICB9XG4vLy9cbi8vLyAgICAucmVzcG9uc2l2ZS1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbi8vLyAgICAubmV3LWNvbnRleHQtZWxlbWVudCB7XG4vLy8gICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbi8vLyAgICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgIH1cbi8vL1xuLy8vICAgIC5uZXctY29udGV4dC1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgIH1cbi8vLyAgfVxuXG5AbWl4aW4gbWVkaWEoJHF1ZXJ5OiAkZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoJGRlZmF1bHQtZmVhdHVyZTogbnRoKCRxdWVyeSwgMSkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zICFnbG9iYWw7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJGxvb3AtdG86IGxlbmd0aCgkcXVlcnkpO1xuICAgICRtZWRpYS1xdWVyeTogXCJzY3JlZW4gYW5kIFwiO1xuICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucyAhZ2xvYmFsO1xuXG4gICAgQGlmIGlzLW5vdChpcy1ldmVuKGxlbmd0aCgkcXVlcnkpKSkge1xuICAgICAgJGdyaWQtY29sdW1uczogbnRoKCRxdWVyeSwgJGxvb3AtdG8pICFnbG9iYWw7XG4gICAgICAkbG9vcC10bzogJGxvb3AtdG8gLSAxO1xuICAgIH1cblxuICAgICRpOiAxO1xuICAgIEB3aGlsZSAkaSA8PSAkbG9vcC10byB7XG4gICAgICAkbWVkaWEtcXVlcnk6ICRtZWRpYS1xdWVyeSArIFwiKFwiICsgbnRoKCRxdWVyeSwgJGkpICsgXCI6IFwiICsgbnRoKCRxdWVyeSwgJGkgKyAxKSArIFwiKSBcIjtcblxuICAgICAgQGlmICgkaSArIDEpICE9ICRsb29wLXRvIHtcbiAgICAgICAgJG1lZGlhLXF1ZXJ5OiAkbWVkaWEtcXVlcnkgKyBcImFuZCBcIjtcbiAgICAgIH1cblxuICAgICAgJGk6ICRpICsgMjtcbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbWVkaWEtcXVlcnl9IHtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zICFnbG9iYWw7XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbkBtaXhpbiBicmVha3BvaW50KCRxdWVyeTokZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgYnJlYWtwb2ludCgpIG1peGluIHdhcyByZW5hbWVkIHRvIG1lZGlhKCkgaW4gTmVhdCAxLjAuIFBsZWFzZSB1cGRhdGUgeW91ciBwcm9qZWN0IHdpdGggdGhlIG5ldyBzeW50YXggYmVmb3JlIHRoZSBuZXh0IHZlcnNpb24gYnVtcC5cIik7XG5cbiAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kICgkZGVmYXVsdC1mZWF0dXJlOiBudGgoJHF1ZXJ5LCAxKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnM7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMiB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnM7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMyB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogbnRoKCRxdWVyeSwgMyk7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gNCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkgYW5kIChudGgoJHF1ZXJ5LCAzKTogbnRoKCRxdWVyeSwgNCkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDUge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIGFuZCAobnRoKCRxdWVyeSwgMyk6IG50aCgkcXVlcnksIDQpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiBudGgoJHF1ZXJ5LCA1KTtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIGJyZWFrcG9pbnQoKS4gUmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLlwiKTtcbiAgfVxufVxuXG5AbWl4aW4gbnRoLW9tZWdhKCRudGgsICRkaXNwbGF5OiBibG9jaywgJGRpcmVjdGlvbjogZGVmYXVsdCkge1xuICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIG50aC1vbWVnYSgpIG1peGluIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2Ugb21lZ2EoKSBpbnN0ZWFkLlwiKTtcbiAgQGluY2x1ZGUgb21lZ2EoJG50aCAkZGlzcGxheSwgJGRpcmVjdGlvbik7XG59XG5cbi8vLyBSZXNldHMgdGhlIGFjdGl2ZSBkaXNwbGF5IHByb3BlcnR5IHRvIGBibG9ja2AuIFBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBjaGFuZ2luZyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBpbiBhIHNpbmdsZSByb3cuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcm93KHRhYmxlKTtcbi8vLyAgICAgLy8gQ29udGV4dCBjaGFuZ2VkIHRvIHRhYmxlIGRpc3BsYXlcbi8vLyAgIH1cbi8vL1xuLy8vICAgQGluY2x1ZGUgcmVzZXQtZGlzcGxheTtcbi8vLyAgIC8vIENvbnRleHQgaXMgcmVzZXQgdG8gYmxvY2sgZGlzcGxheVxuXG5AbWl4aW4gcmVzZXQtZGlzcGxheSB7XG4gICRjb250YWluZXItZGlzcGxheS10YWJsZTogZmFsc2UgIWdsb2JhbDtcbiAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlJlc2V0dGluZyAkZGlzcGxheSB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlIHZlcnNpb25zIGluIGZhdm9yIG9mIHRoZSBkaXNwbGF5KCl7Li4ufSBtaXhpbi5cIik7XG59XG5cbi8vLyBSZXNldHMgdGhlIGFjdGl2ZSBsYXlvdXQgZGlyZWN0aW9uIHRvIHRoZSBkZWZhdWx0IHZhbHVlIHNldCBpbiBgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbmAuIFBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBjaGFuZ2luZyB0aGUgbGF5b3V0IGRpcmVjdGlvbiBpbiBhIHNpbmdsZSByb3cuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcm93KCRkaXJlY3Rpb246IFJUTCk7XG4vLy8gICAgIC8vIENvbnRleHQgY2hhbmdlZCB0byByaWdodC10by1sZWZ0XG4vLy8gICB9XG4vLy9cbi8vLyAgIEBpbmNsdWRlIHJlc2V0LWxheW91dC1kaXJlY3Rpb247XG4vLy8gICAvLyBDb250ZXh0IGlzIHJlc2V0IHRvIGxlZnQtdG8tcmlnaHRcblxuQG1peGluIHJlc2V0LWxheW91dC1kaXJlY3Rpb24ge1xuICAkbGF5b3V0LWRpcmVjdGlvbjogJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbiAhZ2xvYmFsO1xuICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiUmVzZXR0aW5nICRkaXJlY3Rpb24gd2lsbCBiZSBkZXByZWNhdGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBpbiBmYXZvciBvZiB0aGUgZGlyZWN0aW9uKCl7Li4ufSBtaXhpbi5cIik7XG59XG5cbi8vLyBSZXNldHMgYm90aCB0aGUgYWN0aXZlIGxheW91dCBkaXJlY3Rpb24gYW5kIHRoZSBhY3RpdmUgZGlzcGxheSBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSByb3codGFibGUsIFJUTCk7XG4vLy8gICAgIC8vIENvbnRleHQgY2hhbmdlZCB0byB0YWJsZSB0YWJsZSBhbmQgcmlnaHQtdG8tbGVmdFxuLy8vICAgfVxuLy8vXG4vLy8gICBAaW5jbHVkZSByZXNldC1hbGw7XG4vLy8gICAvLyBDb250ZXh0IGlzIHJlc2V0IHRvIGJsb2NrIGRpc3BsYXkgYW5kIGxlZnQtdG8tcmlnaHRcblxuQG1peGluIHJlc2V0LWFsbCB7XG4gIEBpbmNsdWRlIHJlc2V0LWRpc3BsYXk7XG4gIEBpbmNsdWRlIHJlc2V0LWxheW91dC1kaXJlY3Rpb247XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbkBtaXhpbiBncmlkLWNvbHVtbi1ncmFkaWVudCgkdmFsdWVzLi4uKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICR2YWx1ZXMpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICR2YWx1ZXMpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KHRvIGxlZnQsICN7JHZhbHVlc30pXCIpO1xufVxuXG5AaWYgJHZpc3VhbC1ncmlkID09IHRydWUgb3IgJHZpc3VhbC1ncmlkID09IHllcyB7XG4gIGJvZHk6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ncmFkaWVudChncmFkaWVudC1zdG9wcygkZ3JpZC1jb2x1bW5zKSk7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICAgIG9wYWNpdHk6ICR2aXN1YWwtZ3JpZC1vcGFjaXR5O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpZiAkdmlzdWFsLWdyaWQtaW5kZXggPT0gYmFjayB7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkdmlzdWFsLWdyaWQtaW5kZXggPT0gZnJvbnQge1xuICAgICAgei1pbmRleDogOTk5OTtcbiAgICB9XG5cbiAgICBAZWFjaCAkYnJlYWtwb2ludCBpbiAkdmlzdWFsLWdyaWQtYnJlYWtwb2ludHMge1xuICAgICAgQGlmICRicmVha3BvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ncmFkaWVudChncmFkaWVudC1zdG9wcygkZ3JpZC1jb2x1bW5zKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoYW5nZXMgdGhlIGRpc3BsYXkgcHJvcGVydHkgdXNlZCBieSBvdGhlciBtaXhpbnMgY2FsbGVkIGluIHRoZSBjb2RlIGJsb2NrIGFyZ3VtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtibG9ja11cbi8vLyAgIERpc3BsYXkgdmFsdWUgdG8gYmUgdXNlZCB3aXRoaW4gdGhlIGJsb2NrLiBDYW4gYmUgYHRhYmxlYCBvciBgYmxvY2tgLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgQGluY2x1ZGUgZGlzcGxheS1jb250ZXh0KHRhYmxlKSB7XG4vLy8gICAgLmRpc3BsYXktdGFibGUge1xuLy8vICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3Ncbi8vLyAgIC5kaXNwbGF5LXRhYmxlIHtcbi8vLyAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4vLy8gICAgICAuLi5cbi8vLyAgIH1cblxuQG1peGluIGRpc3BsYXktY29udGV4dCgkZGlzcGxheTogYmxvY2spIHtcbiAgJHNjb3BlLWRpc3BsYXk6ICRjb250YWluZXItZGlzcGxheS10YWJsZTtcbiAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiAkZGlzcGxheSA9PSB0YWJsZSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gICRjb250YWluZXItZGlzcGxheS10YWJsZTogJHNjb3BlLWRpc3BsYXkgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoYW5nZXMgdGhlIGRpcmVjdGlvbiBwcm9wZXJ0eSB1c2VkIGJ5IG90aGVyIG1peGlucyBjYWxsZWQgaW4gdGhlIGNvZGUgYmxvY2sgYXJndW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpcmVjdGlvbiBbbGVmdC10by1yaWdodF1cbi8vLyAgIExheW91dCBkaXJlY3Rpb24gdG8gYmUgdXNlZCB3aXRoaW4gdGhlIGJsb2NrLiBDYW4gYmUgYGxlZnQtdG8tcmlnaHRgIG9yIGByaWdodC10by1sZWZ0YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgQGluY2x1ZGUgZGlyZWN0aW9uLWNvbnRleHQocmlnaHQtdG8tbGVmdCkge1xuLy8vICAgIC5yaWdodC10by1sZWZ0LWJsb2NrIHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLnJpZ2h0LXRvLWxlZnQtYmxvY2sge1xuLy8vICAgICBmbG9hdDogcmlnaHQ7XG4vLy8gICAgICAuLi5cbi8vLyAgIH1cblxuQG1peGluIGRpcmVjdGlvbi1jb250ZXh0KCRkaXJlY3Rpb246IGxlZnQtdG8tcmlnaHQpIHtcbiAgJHNjb3BlLWRpcmVjdGlvbjogJGxheW91dC1kaXJlY3Rpb247XG5cbiAgQGlmIHRvLWxvd2VyLWNhc2UoJGRpcmVjdGlvbikgPT0gXCJsZWZ0LXRvLXJpZ2h0XCIge1xuICAgICRsYXlvdXQtZGlyZWN0aW9uOiBMVFIgIWdsb2JhbDtcbiAgfSBAZWxzZSBpZiB0by1sb3dlci1jYXNlKCRkaXJlY3Rpb24pID09IFwicmlnaHQtdG8tbGVmdFwiIHtcbiAgICAkbGF5b3V0LWRpcmVjdGlvbjogUlRMICFnbG9iYWw7XG4gIH1cblxuICBAY29udGVudDtcblxuICAkbGF5b3V0LWRpcmVjdGlvbjogJHNjb3BlLWRpcmVjdGlvbiAhZ2xvYmFsO1xufVxuIiwiLy8gQml0dGVycyAxLjAuMFxuLy8gaHR0cDovL2JpdHRlcnMuYm91cmJvbi5pb1xuLy8gQ29weXJpZ2h0IDIwMTMtMjAxNSB0aG91Z2h0Ym90LCBpbmMuXG4vLyBNSVQgTGljZW5zZVxuXG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XG5cbi8vIE5lYXQgU2V0dGluZ3MgLS0gdW5jb21tZW50IGlmIHVzaW5nIE5lYXQgLS0gbXVzdCBiZSBpbXBvcnRlZCBiZWZvcmUgTmVhdFxuQGltcG9ydCBcImdyaWQtc2V0dGluZ3NcIjtcblxuQGltcG9ydCBcImJ1dHRvbnNcIjtcbkBpbXBvcnQgXCJmb3Jtc1wiO1xuQGltcG9ydCBcImxpc3RzXCI7XG5AaW1wb3J0IFwidGFibGVzXCI7XG5AaW1wb3J0IFwidHlwb2dyYXBoeVwiO1xuIiwiLy8gVHlwb2dyYXBoeVxuJGJhc2UtZm9udC1mYW1pbHk6IFwiTXlyaWFkIFByb1wiLCAkaGVsdmV0aWNhO1xuJGhlYWRpbmctZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuJG1vbnRzZXJyYXQ6IFwiTW9udHNlcnJhdFwiLCAkYmFzZS1mb250LWZhbWlseTtcblxuLy8gRm9udCBTaXplc1xuJGJhc2UtZm9udC1zaXplOiAxZW07XG5cbi8vIExpbmUgaGVpZ2h0XG4kYmFzZS1saW5lLWhlaWdodDogMS41O1xuJGhlYWRpbmctbGluZS1oZWlnaHQ6IDEuMjtcblxuLy8gT3RoZXIgU2l6ZXNcbiRiYXNlLWJvcmRlci1yYWRpdXM6IDNweDtcbiRiYXNlLXNwYWNpbmc6ICRiYXNlLWxpbmUtaGVpZ2h0ICogMWVtO1xuJHNtYWxsLXNwYWNpbmc6ICRiYXNlLXNwYWNpbmcgLyAyO1xuJGJhc2Utei1pbmRleDogMDtcblxuLy8gQ29sb3JzXG4kYmxhY2s6ICMwMDA7XG4kd2hpdGU6ICNmZmY7XG4kYmx1ZTogIzQ3N2RjYTtcbiRkYXJrLWdyYXk6ICMyODI4Mjg7XG4kZGFya2VyLWdyYXk6ICMyMTIyMjE7XG4kbWVkaXVtLWdyYXk6ICM2NjY3NjY7XG4kbGlnaHRpc2gtZ3JheTojNjc2NzY3O1xuJGxpZ2h0LWdyYXk6ICNjY2M7XG4kc21va2U6ICNlYWVhZWE7XG4kb2ZmLXdoaXRlOiAjZjJmMmYyO1xuJHJpdC1vcmFuZ2U6ICNmMzZlMjE7XG5cblxuLy8gRm9udCBDb2xvcnNcbiRiYXNlLWZvbnQtY29sb3I6ICRkYXJrLWdyYXk7XG4kYWN0aW9uLWNvbG9yOiAkcml0LW9yYW5nZTtcblxuLy8gQmFja2dyb3VuZHNcbiRiYXNlLWJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4kZm9vdGVyLWJhY2tncm91bmQtY29sb3I6ICRkYXJrZXItZ3JheTtcblxuLy8gQm9yZGVyXG4kYmFzZS1ib3JkZXItY29sb3I6ICRsaWdodC1ncmF5O1xuJGJhc2UtYm9yZGVyOiAxcHggc29saWQgJGJhc2UtYm9yZGVyLWNvbG9yO1xuXG4vLyBGb3Jtc1xuJGZvcm0tYm94LXNoYWRvdzogaW5zZXQgMCAxcHggM3B4IHJnYmEoIzAwMCwgMC4wNik7XG4kZm9ybS1ib3gtc2hhZG93LWZvY3VzOiAkZm9ybS1ib3gtc2hhZG93LCAwIDAgNXB4IGFkanVzdC1jb2xvcigkYWN0aW9uLWNvbG9yLCAkbGlnaHRuZXNzOiAtNSUsICRhbHBoYTogLTAuMyk7XG5cbi5ibGFja215cmlhZDIwe1xuXG5cdGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcblx0Zm9udC1zaXplOjIwcHg7XG5cdGNvbG9yOiMwMDA7XG5cbn1cblxuLmJsYWNrbW9uczIwe1xuXG5cdGZvbnQtZmFtaWx5OiAkbW9udHNlcnJhdDtcblx0Zm9udC1zaXplOjIwcHg7XG5cdGNvbG9yOiMwMDA7XG5cbn1cblxuLmdyZXloZWwxNntcblxuXHRmb250LWZhbWlseTonaGVsdmV0aWNhJztcblx0Zm9udC1zaXplOiBmb250LXNpemUoMTYpO1xuXHRjb2xvcjokbGlnaHRpc2gtZ3JheTtcblxufVxuIiwiQGltcG9ydCBcIm5lYXQtaGVscGVyc1wiOyAvLyBvciBcIi4uL25lYXQvbmVhdC1oZWxwZXJzXCIgd2hlbiBub3QgaW4gUmFpbHNcblxuLy8gTmVhdCBPdmVycmlkZXNcbi8vICRjb2x1bW46IDkwcHg7XG4vLyAkZ3V0dGVyOiAzMHB4O1xuLy8gJGdyaWQtY29sdW1uczogMTI7XG4kZ3V0dGVyOiBmb250LXNpemUoNDApO1xuLy8kbWF4LXdpZHRoOiBmb250LXNpemUoMTA4OCk7XG4kZ3V0dGVyLXdpZHRoOiAyNXB4O1xuJGdyaWQtY29sdW1uczogMTI7XG4kbWF4LXdpZHRoOiBmb250LXNpemUoMTIwMHB4KTtcbiRmdWxsLXdpZHRoOiAxMTcwcHg7XG4vLyBEb24ndCBjaGFuZ2UgYW55dGhpbmcgYmVsb3cgdGhpcyBsaW5lLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gVGhpcyBsaW5lIHNldHMgdGhlIG1heCB3aWR0aCBkZWZpbmVkIGFib3ZlIGFuZCBhZGRzIHRoZSBndXR0ZXIsIHRvIG1ha2UgdXAgZm9yIHRoZSB3aWR0aCBvZiB0aGUgcGFkZGluZyBvbiB0aGUgc2lkZVxuLy8gb2YgdGhlIFwiZ3JpZC1yb3dcIiBjb250YWluZXIsIHdoaWNoIGFkZHMgcGFkZGluZyBmb3IgbW9iaWxlIGJ5IGRlZmF1bHQsIHdpdGhvdXQgaGF2aW5nIHRvIGV2ZXIgdGhpbmsgYWJvdXQgaXQuXG4vLyRtYXgtd2lkdGg6ICRtYXgtd2lkdGggKyAkZ3V0dGVyO1xuXG4vLyBOZWF0IEJyZWFrcG9pbnRzXG4vLyBEb24ndCB1c2UgdGhlc2UsIHN0eWxlIGVhY2ggY29tcG9uZW50IGluZGl2aWR1YWxseSB0byB0aGUgd2lkdGggb2YgdGhlIHNjcmVlbi5cbiRtZWRpdW0tc2NyZWVuOiBmb250LXNpemUoNjQwKTtcbiRsYXJnZS1zY3JlZW46IGZvbnQtc2l6ZSg4NjApO1xuXG4kbWVkaXVtLXNjcmVlbi11cDogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICRtZWRpdW0tc2NyZWVuIDQpO1xuJGxhcmdlLXNjcmVlbi11cDogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICRsYXJnZS1zY3JlZW4gOCk7XG4iLCIjeyRhbGwtYnV0dG9uLWlucHV0c30sXG5idXR0b24ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogJGJhc2UtYm9yZGVyLXJhZGl1cztcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogI2ZmZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYWN0aW9uLWNvbG9yLCAxNSUpO1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cbn1cblxuYS5idXR0b24sXG4jZm9vdGVyIGEuYnV0dG9uLFxuLnZpZXctdGF4b25vbXktdGVybSAudmlld3Mtc3VibWl0LWJ1dHRvbixcbi5wYWdlLWNhcnQgI2VkaXQtYWN0aW9ucyBhIHtcbiAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICRyaXQtb3JhbmdlO1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43ZW0gMC4yNWVtIDJlbTtcbiAgY29sb3I6ICRyaXQtb3JhbmdlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGZvbnQtZmFtaWx5OiAkbW9udHNlcnJhdDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIEBpbmNsdWRlIHRyaWFuZ2xlKC45Mzc1ZW0sICRyaXQtb3JhbmdlLCBkb3duLXJpZ2h0KTtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgaW5pdGlhbCBpbml0aWFsIDAuNmVtIDAuMzVlbSk7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2U7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkcml0LW9yYW5nZTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIEBpbmNsdWRlIGZvbnQtc21vb3RoaW5nKG9mZik7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSB0cmlhbmdsZSguOTM3NWVtLCAkd2hpdGUsIGRvd24tcmlnaHQpO1xuICAgIH1cbiAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXXtcblx0ICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcblx0ICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHQgICAgYm9yZGVyOiBtZWRpdW0gbm9uZTtcblx0ICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cdCAgICBjb2xvcjogJHJpdC1vcmFuZ2U7XG5cdCAgICBjdXJzb3I6IHBvaW50ZXI7XG5cdCAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdCAgICBmb250LWZhbWlseTogJG1vbnRzZXJyYXQ7XG5cdCAgICBmb250LXNpemU6IDFlbTtcblx0ICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdCAgICBsaW5lLWhlaWdodDogMTtcblx0ICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdCAgICBwYWRkaW5nOjA7XG5cdCAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdCAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHQgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0ICAgIG1hcmdpbjowO1xuXG5cdCAgICAmOmhvdmVye1xuXG5cdFx0ICAgIGNvbG9yOiAkd2hpdGU7XG5cblx0ICAgIH1cblxuXHQgICAgLnZpZXdzLXN1Ym1pdC1idXR0b24gJntcblxuXHRcdCAgICBtYXJnaW4tdG9wOiA0MHB4O1xuXG5cdCAgICB9XG5cdH1cblxuXG5cblx0LmZyb250IG1haW4gJjpiZWZvcmUsXG5cdG1haW4gLnVjLWNhcnQtdmlldy1mb3JtICY6YmVmb3Jle1xuXG5cdFx0dHJhbnNmb3JtOiBub25lO1xuXHQgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcblx0ICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG5cdH1cblxufVxuXG5tYWluICN1Yy1jYXJ0LXZpZXctZm9ybSAuZm9ybS1hY3Rpb25zIGF7XG5cblx0bWFyZ2luOjA7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cblxuXHQmOmJlZm9yZXtcblxuXHRcdHRyYW5zZm9ybTogbm9uZTtcblx0ICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG5cdCAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuXHR9XG59XG5cbi52aWV3LXRheG9ub215LXRlcm0gLnZpZXdzLXN1Ym1pdC1idXR0b24ge1xuXG5cdHBhZGRpbmc6IDAuMDZlbSAwLjdlbSAwIDJlbTtcblx0bWFyZ2luLXRvcDogMzhweDtcblx0aW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7bWFyZ2luLWJvdHRvbTogMnB4O31cblx0JjpiZWZvcmUgeyB0b3A6MC4zZW07IH1cblx0Jjpob3ZlciBpbnB1dHtcblxuXHQgICAgY29sb3I6ICR3aGl0ZTtcblxuICAgIH1cbiAgICBkaXNwbGF5Om5vbmU7XG59XG5cbiNmb290ZXIgYS5idXR0b257XG5cblx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOjIzM3B4O1xuXHRtYXJnaW4tYm90dG9tOjEwcHg7XG5cblx0QGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDUxNXB4KScpIHtcbiAgICAgIHdpZHRoOjEwMCU7XG4gICAgfVxufVxuXG5cbmEuYnV0dG9uLmJ1dHRvbi0tbm8tYXJyb3cge1xuICBwYWRkaW5nOiA3cHggMTNweCA1cHggMTNweDtcbiAgJjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmhvbWVwYWdlLWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDAuNWVtIDEuM2VtIDAuNGVtIDIuNWVtO1xuICAmOmJlZm9yZSB7XG4gICAgYm90dG9tOiAwLjhlbTtcbiAgICBsZWZ0OiAwLjg1ZW07XG4gIH1cbn1cbiIsImZpZWxkc2V0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkYmFzZS1ib3JkZXItY29sb3IsIDEwJSk7XG4gIGJvcmRlcjogJGJhc2UtYm9yZGVyO1xuICBtYXJnaW46IDAgMCAkc21hbGwtc3BhY2luZztcbiAgcGFkZGluZzogJGJhc2Utc3BhY2luZztcbn1cblxuaW5wdXQsXG5sYWJlbCxcbnNlbGVjdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xufVxuXG5sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nIC8gMjtcblxuICAmLnJlcXVpcmVkOjphZnRlciB7XG4gICAgY29udGVudDogXCIqXCI7XG4gIH1cblxuICBhYmJyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbiN7JGFsbC10ZXh0LWlucHV0c30sXG5zZWxlY3RbbXVsdGlwbGU9bXVsdGlwbGVdLFxudGV4dGFyZWEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICBib3JkZXI6ICRiYXNlLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGJhc2UtYm9yZGVyLXJhZGl1cztcbiAgYm94LXNoYWRvdzogJGZvcm0tYm94LXNoYWRvdztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgbWFyZ2luLWJvdHRvbTogJGJhc2Utc3BhY2luZyAvIDI7XG4gIHBhZGRpbmc6ICRiYXNlLXNwYWNpbmcgLyAzO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3I7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRiYXNlLWJvcmRlci1jb2xvciwgMTAlKTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGFjdGlvbi1jb2xvcjtcbiAgICBib3gtc2hhZG93OiAkZm9ybS1ib3gtc2hhZG93LWZvY3VzO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbn1cblxudGV4dGFyZWEge1xuICByZXNpemU6IHZlcnRpY2FsO1xufVxuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXJnaW4tcmlnaHQ6ICRzbWFsbC1zcGFjaW5nIC8gMjtcbn1cblxuaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICBwYWRkaW5nLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5zZWxlY3Qge1xuICBtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdpZHRoOiBhdXRvO1xufVxuIiwidWwsXG5vbCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuXG4gICYlZGVmYXVsdC11bCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuICAgIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nO1xuICAgIHBhZGRpbmctbGVmdDogJGJhc2Utc3BhY2luZztcbiAgfVxuXG4gICYlZGVmYXVsdC1vbCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuICAgIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nO1xuICAgIHBhZGRpbmctbGVmdDogJGJhc2Utc3BhY2luZztcbiAgfVxufVxuXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nO1xuXG4gIGR0IHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBtYXJnaW4tdG9wOiAkc21hbGwtc3BhY2luZztcbiAgfVxuXG4gIGRkIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cbiIsInRhYmxlIHtcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcImtlcm5cIiwgXCJsaWdhXCIsIFwidG51bVwiO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBtYXJnaW46ICRzbWFsbC1zcGFjaW5nIDA7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG50aCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZW4oJGJhc2UtYm9yZGVyLWNvbG9yLCAxNSUpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBwYWRkaW5nOiAkc21hbGwtc3BhY2luZyAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG50ZCB7XG4gIGJvcmRlci1ib3R0b206ICRiYXNlLWJvcmRlcjtcbiAgcGFkZGluZzogJHNtYWxsLXNwYWNpbmcgMDtcbn1cblxudHIsXG50ZCxcbnRoIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbiIsImJvZHkge1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IFwia2VyblwiLCBcImxpZ2FcIiwgXCJwbnVtXCI7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBjb2xvcjogJGJhc2UtZm9udC1jb2xvcjtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBmb250LWZhbWlseTogJGhlYWRpbmctZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogJGhlYWRpbmctbGluZS1oZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRzbWFsbC1zcGFjaW5nO1xufVxuXG5wIHtcbiAgbWFyZ2luOiAwIDAgJHNtYWxsLXNwYWNpbmc7XG59XG5cbmEge1xuICBjb2xvcjogJGFjdGlvbi1jb2xvcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gIG1haW4gJiwgc3Bhbi51bmRlcmxpbmUtb24taG92ZXIsIC5mb290ZXItcmlnaHQgJiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBib3R0b206IC0xcHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJpdC1vcmFuZ2U7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAxNTBtcyBlYXNlLWluLW91dCAwcztcbiAgICB9XG4gICAgJjpob3ZlcjpiZWZvcmUge1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgJltocmVmXj1cInRlbFwiXSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAmOmJlZm9yZSB7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cbmhyIHtcbiAgYm9yZGVyLWJvdHRvbTogJGJhc2UtYm9yZGVyO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBib3JkZXItdG9wOiBub25lO1xuICBtYXJnaW46ICRiYXNlLXNwYWNpbmcgMDtcbn1cblxuaW1nLFxucGljdHVyZSB7XG4gIG1hcmdpbjogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuIiwiaHRtbCB7XG4gIGJhY2tncm91bmQ6ICRmb290ZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuXG5ib2R5IHtcbiAgYmFja2dyb3VuZDogJGJhc2UtYmFja2dyb3VuZC1jb2xvcjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuOyBcbn1cblxuYiwgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGdyaWQtcm93KCk7XG59IFxuXG4vLyBGb250LWNvbG9yIHN0eWxlc1xuLmNvbG9yLS1vcmFuZ2Uge1xuICBjb2xvcjogJHJpdC1vcmFuZ2U7XG59XG5cbi5jb2xvci0td2hpdGUge1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLmNvbG9yLS1ibGFjayB7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4uY29sb3ItLWRhcmstZ3JheSB7XG4gIGNvbG9yOiAkZGFyay1ncmF5O1xufVxuXG4uY29sb3ItLW1lZGl1bS1ncmF5IHtcbiAgY29sb3I6ICRtZWRpdW0tZ3JheTtcbn1cblxuLmNvbG9yLS1saWdodC1ncmF5IHtcbiAgY29sb3I6ICRsaWdodC1ncmF5O1xufVxuXG4jcHJlbG9hZCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn0iLCIjYWRtaW4tbWVudSB7XG4gIEBpbmNsdWRlIGZvbnQtc21vb3RoaW5nKG9mZik7XG59IiwiLy8gRHJ1cGFsIE92ZXJyaWRlc1xudWwudGFicy5wcmltYXJ5IHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNiYmI7XG4gIHRleHQtYWxpZ246cmlnaHQ7XG4gIG1hcmdpbjogMDtcbiAgbGkuYWN0aXZlIGEge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYmJiO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZmZmO1xuICB9XG4gIGxpIGEge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZSBzb2xpZCBzb2xpZCBzb2xpZDtcbiAgfVxufVxuXG4uZWRpdC1ub2RlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDk5O1xuICBhIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0OElVUlBRMVJaVUVVZ2MzWm5JRkJWUWt4SlF5QWlMUzh2VnpOREx5OUVWRVFnVTFaSElERXVNUzh2UlU0aUlDSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OUhjbUZ3YUdsamN5OVRWa2N2TVM0eEwwUlVSQzl6ZG1jeE1TNWtkR1FpUGp4emRtY2dkbVZ5YzJsdmJqMGlNUzR4SWlCcFpEMGlUR0Y1WlhKZk1TSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklpQjRiV3h1Y3pwNGJHbHVhejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOTRiR2x1YXlJZ2VEMGlNSEI0SWlCNVBTSXdjSGdpSUhkcFpIUm9QU0l4Tm5CNElpQm9aV2xuYUhROUlqRTJjSGdpSUhacFpYZENiM2c5SWpFMk55NDJNemdnTVRZdU9UZzBJREUySURFMklpQmxibUZpYkdVdFltRmphMmR5YjNWdVpEMGlibVYzSURFMk55NDJNemdnTVRZdU9UZzBJREUySURFMklpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajQ4Y0dGMGFDQm1hV3hzUFNJalJqTTJSakF4SWlCa1BTSk5NVGd4TGpreU5pd3lOeTQ1TXpOc0xUTXVNalV6TERNdU1qY3hiQzA0TGpJek9TMDRMakkzT1d3ekxqSTFOUzB6TGpJM01Vd3hPREV1T1RJMkxESTNMamt6TTNvZ1RURTJOeTQ1TmpVc01qQXVORFExYkRFdU5qSXlMREV1TmpOc015NHlOVFV0TXk0eU56RnNMVEV1TXprdE1TNHpPVGRqTFRBdU5UWXpMVEF1TlRZMExURXVORGMwTFRBdU5UWTBMVEl1TURNMUxEQnNMVEV1TkRVeExERXVORFU1UXpFMk55NDFNeXd4T1M0ek1ESXNNVFkzTGpVekxESXdMakF3Tnl3eE5qY3VPVFkxTERJd0xqUTBOWG9nVFRFNE1pNDRNRGNzTWpndU9ERTViQzB6TGpJMU15d3pMakkzTVd3ekxqWXlOeXd3TGpnNE5HTXdMakkyTnl3d0xqQTJOU3d3TGpVd055MHdMakUzTlN3d0xqUTBPQzB3TGpRME0wd3hPREl1T0RBM0xESTRMamd4T1hvaUx6NDhMM04yWno0PScpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG59XG5cbi5yb3ctY29udGFpbmVyOmhvdmVyIC5lZGl0LW5vZGUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmZvcm0taXRlbSwgLmZvcm0tYWN0aW9ucyB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbmltZyB7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufSIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuXG5cbiRpZGJhci1mb3JlZ3JvdW5kLWNvbG9yOiAjZmZmO1xuJGlkYmFyLWJhY2tncm91bmQtY29sb3I6ICNmMzZlMjE7XG5cbiRpZGJhci1yaXQtbG9nby1jb2xvcjogJGlkYmFyLWZvcmVncm91bmQtY29sb3I7XG4kaWRiYXItbWVudS1idXR0b24taWNvbi1jb2xvcjogJGlkYmFyLWZvcmVncm91bmQtY29sb3I7XG4kaWRiYXItc2VhcmNoLWJ1dHRvbi1pY29uLWNvbG9yOiAkaWRiYXItZm9yZWdyb3VuZC1jb2xvcjtcbiRpZGJhci1zZWFyY2gtaWNvbi1jb2xvcjogJG1lZGl1bS1ncmF5O1xuXG4kbW9iaWxlLWJyZWFrOiA5NzlweDtcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCl7XG5cblx0LnNsaWNrbmF2X21lbnV7ZGlzcGxheTogbm9uZTt9XG59XG5cblxuI2lkZW50aXR5LWJhciB7XG4gIGJhY2tncm91bmQ6ICRpZGJhci1iYWNrZ3JvdW5kLWNvbG9yO1xuICBoZWlnaHQ6NTJweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgei1pbmRleDo5OTk5O1xuICBAaW5jbHVkZSBtYXgoJG1vYmlsZS1icmVhaykge1xuICAgIHotaW5kZXg6IDEwMDA7XG5cblxuXG5cbiAgfVxuXG5cbiAgQGluY2x1ZGUgbWluKCgkbW9iaWxlLWJyZWFrICsgMSkpIHtcbiAgICAvLyBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgYm9keS5hZG1pbmltYWwtbWVudSAmIHtcblxuICAgIEBpbmNsdWRlIG1pbigoJG1vYmlsZS1icmVhayArIDEpKSB7XG4gICAgICB0b3A6IGluaXRpYWw7XG4gICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgcmlnaHQ6IGluaXRpYWw7XG4gICAgfVxuICB9XG5cbiAgI01vYmlsZUNoZWNrIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29udGVudDogXCJtb2JpbGVcIjtcblxuICAgIEBpbmNsdWRlIG1pbigoJG1vYmlsZS1icmVhayArIDEpKSB7XG4gICAgICBjb250ZW50OiBcImRlc2t0b3BcIjtcbiAgICB9XG4gIH1cblxuICAqIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgc3ZnIHtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIGZpbGw6IG5vbmU7XG4gICAgc3Ryb2tlOiBub25lO1xuICB9XG5cbiAgLmNlbnRlciB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3coKTtcbiAgICBvdmVyZmxvdzpoaWRkZW47XG4gIH1cbiAgLnJpdC1sb2dvIHtcbiAgICBmbG9hdDpsZWZ0O1xuICAgIHdpZHRoOjM3MHB4O1xuICAgIHotaW5kZXg6IDk5OTk7XG5cbiAgICBzdmcge1xuICAgICAgbWF4LWhlaWdodDogNTFweDtcbiAgICAgIGZpbGw6ICRpZGJhci1yaXQtbG9nby1jb2xvcjtcbiAgICAgIHN0cm9rZTogbm9uZTtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiN7JG1vYmlsZS1icmVha30pIHtcbiAgICAgIHdpZHRoOjkzcHg7XG4gICAgICBvdmVyZmxvdzpoaWRkZW47XG4gICAgICBtYXJnaW46YXV0bztcbiAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgbGVmdDowO1xuICAgICAgcmlnaHQ6MDtcbiAgICAgIHRvcDogMDtcbiAgICB9XG4gIH1cblxuICAjcml0LWxvZ28tcml0IHtcbiAgICB3aWR0aDogOTNweDtcbiAgfVxuICAjcml0LWxvZ28tdGV4dCB7XG4gICAgd2lkdGg6IDI3MHB4O1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6I3skbW9iaWxlLWJyZWFrfSkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgI2lkYmFyLXNpdGUtbmFtZXtkaXNwbGF5Om5vbmU7fVxuXG4gIC5zZWFyY2gtY29udGFpbmVye1xuICAgIGZsb2F0OnJpZ2h0O1xuICAgIHdpZHRoOjE2MHB4O1xuICAgIHotaW5kZXg6IDk5OTk5O1xuICB9XG5cbiAgLnNlYXJjaC1mb3Jte1xuICAgIG1hcmdpbjoxM3B4IDAgMCAwO1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIHdpZHRoOjE2MHB4O1xuICAgIGJhY2tncm91bmQ6bm9uZTtcbiAgICBwYWRkaW5nOjA7XG4gIH1cblxuICAuZm9ybS1pdGVtIHtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBpbnB1dCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgcGFkZGluZzogN3B4IDI1cHggM3B4IDEwcHg7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmb250OiAxMXB4LzE2cHggJ0hlbHZldGljYScsIHNhbnMtc2VyaWY7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICBjb2xvcjogIzY3Njg2NztcblxuICAgICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAjNjc2ODY3O1xuICAgICAgfVxuXG4gICAgICAmOi1tb3otcGxhY2Vob2xkZXIgeyAvKiBGaXJlZm94IDE4LSAqL1xuICAgICAgICBjb2xvcjogIzY3Njg2NztcbiAgICAgIH1cblxuICAgICAgJjo6LW1vei1wbGFjZWhvbGRlciB7ICAvKiBGaXJlZm94IDE5KyAqL1xuICAgICAgICBjb2xvcjogIzY3Njg2NztcbiAgICAgIH1cblxuICAgICAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogIzY3Njg2NztcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2lkYmFyLXNlYXJjaC1jbG9zZS1idXR0b24ge1xuICAgIHdpZHRoOiAxN3B4O1xuICAgIGhlaWdodDogMTdweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogLTUlO1xuICAgIG1hcmdpbjogYXV0byAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB6LWluZGV4OiA5OTk5OTk7XG5cbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlLW91dDtcbiAgICAtbW96LXRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlLW91dDtcbiAgICAtby10cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZS1vdXQ7XG4gICAgLW1zLXRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlLW91dDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZS1vdXQ7XG5cbiAgICBzdmcge1xuICAgICAgd2lkdGg6IDE3cHg7XG4gICAgICBoZWlnaHQ6IDE3cHg7XG4gICAgfVxuICB9XG5cbiAgLmZvcm0tYWN0aW9ucyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGRpc3BsYXk6IGlubGluZTtcblxuICAgIGlucHV0IHtcblxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICBib3R0b206IDA7XG4gICAgICBtYXJnaW46IGF1dG8gMDtcbiAgICB9XG5cblxuXG5cblxuXG5cblxuXG4gIH1cblxuXG4gICNpZGJhci1zZWFyY2gtYnV0dG9uIHtcbiAgICBkaXNwbGF5Om5vbmU7XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiAzM3B4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogNXB4O1xuICAgIHRvcDogMTFweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICBjdXJzb3I6cG9pbnRlcjtcbiAgICB6LWluZGV4OjIwO1xuICAgIGJhY2tncm91bmQtc2l6ZTozMHB4O1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjphbGwgMjAwbXMgZWFzZS1vdXQ7XG4gICAgLW1vei10cmFuc2l0aW9uOmFsbCAyMDBtcyBlYXNlLW91dDtcbiAgICAtbXMtdHJhbnNpdGlvbjphbGwgMjAwbXMgZWFzZS1vdXQ7XG4gICAgLW8tdHJhbnNpdGlvbjphbGwgMjAwbXMgZWFzZS1vdXQ7XG4gICAgdHJhbnNpdGlvbjphbGwgMjAwbXMgZWFzZS1vdXQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIHN2ZyB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBmaWxsOiAkaWRiYXItc2VhcmNoLWJ1dHRvbi1pY29uLWNvbG9yO1xuICAgICAgc3Ryb2tlOiAkaWRiYXItc2VhcmNoLWJ1dHRvbi1pY29uLWNvbG9yO1xuICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgIH1cbiAgfVxuXG4gICNpZGJhci1tZW51LWJ1dHRvbntcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gICAgd2lkdGg6MzFweDtcbiAgICBoZWlnaHQ6MjlweDtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcblxuICAgIHRvcDoxNHB4O1xuICAgIHotaW5kZXg6MjA7XG4gICAgZGlzcGxheTpub25lO1xuICAgIGN1cnNvcjpwb2ludGVyO1xuXG4gICAgc3ZnIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMjRweDtcbiAgICAgIGZpbGw6ICRpZGJhci1tZW51LWJ1dHRvbi1pY29uLWNvbG9yO1xuICAgIH1cbiAgfVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gIC5yaXQtbG9nbywgICAjaWRiYXItc2l0ZS1uYW1le1xuXHQgIHRyYW5zaXRpb246IHRvcCA0MDBtcyBlYXNlO1xuXG5cbiAgfVxuXG5cblxuXG59XG5cblxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiN7JG1vYmlsZS1icmVha30pIHtcbiAgI2lkZW50aXR5LWJhciB7XG5cbiAgICAjaWRiYXItc2VhcmNoLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBibG9ja1xuICAgIH1cbiAgICAjaWRiYXItbWVudS1idXR0b24ge1xuICAgICAgZGlzcGxheTogYmxvY2tcbiAgICB9XG4gICAgLmNlbnRlciB7XG4gICAgICBwYWRkaW5nOiAwXG4gICAgfVxuXG4gICAgLnJpdC1sb2dvIGEge1xuICAgICAgZGlzcGxheTogYmxvY2tcbiAgICB9XG4gICAgLnJpdC1sb2dvIGltZyB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgICBoZWlnaHQ6IDI3cHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuXG4gICAgfVxuXG4gICAgLnNlYXJjaC1jb250YWluZXIge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAtMTAwJTtcbiAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2Utb3V0O1xuICAgICAgLW1vei10cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZS1vdXQ7XG4gICAgICAtbXMtdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2Utb3V0O1xuICAgICAgLW8tdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2Utb3V0O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2Utb3V0XG4gICAgfVxuICAgIC5zZWFyY2gtZm9ybSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1hcmdpbjogMFxuICAgIH1cbiAgICAuZm9ybS1pdGVtIGlucHV0IHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBoZWlnaHQ6IDUycHg7XG4gICAgICBmb250LXNpemU6IDE4cHhcbiAgICB9XG4gICAgLmZvcm0tYWN0aW9ucyBpbnB1dCB7XG4gICAgICBkaXNwbGF5OiBub25lXG4gICAgfVxuICAgICNpZGJhci1zaXRlLW5hbWV7XG5cblx0ICAgIGF7XG5cdCAgICAgICAgICBjb2xvcjogd2hpdGU7XG5cblx0ICAgIH1cblx0ICAgIHdpZHRoOiAxMThweDtcblx0ICAgIGZvbnQtc2l6ZTogMTFweDtcblx0ICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdCAgICBtYXJnaW46IDAgYXV0bztcblx0ICAgIC8vIG9wYWNpdHk6IDA7XG5cdCAgICBtYXJnaW4tdG9wOiA1cHg7XG5cdCAgICB0b3A6IDUycHg7XG5cdCAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdCAgICBsZWZ0OjA7XG5cdCAgICByaWdodDogMDtcblx0ICAgIGRpc3BsYXk6YmxvY2s7XG5cblx0ICB9XG4gIH1cblxuXG5cbiAgLnZpc2libGV7XG4gIC8vIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcblxuXG4gIH1cblxuICAuaGlkZGVue1xuICAgIC8vIG9wYWNpdHk6IDA7XG4gICAgLy8gZGlzcGxheTogbm9uZTtcblxuICAgIC8vIHRvcDogLTEwMHB4O1xuXG4gIH1cbn1cblxuXG4gIGJvZHkucml0YmFyLXNpdGUtbG9nbyAjaWRlbnRpdHktYmFyICNpZGJhci1zaXRlLW5hbWUge1xuICAgIHRvcDogMDsgfVxuICBib2R5LnJpdGJhci1zaXRlLWxvZ28gI2lkZW50aXR5LWJhciAucml0LWxvZ28ge1xuICAgIHRvcDogLTUycHg7IH1cblxuXG4jaWRiYXItc2VhcmNoLWNsb3NlLWJ1dHRvbiB7XG4gICNpY29uLWlkYmFyLWNsb3NlLWJ1dHRvbi1jaXJjbGUge1xuICAgIGZpbGw6ICNkZWRlZGU7XG4gIH1cbiAgI2ljb24taWRiYXItY2xvc2UtYnV0dG9uLXgge1xuICAgIGZpbGw6ICM2YjZiNmI7XG4gICAgc3Ryb2tlOiAjNmI2YjZiO1xuICB9XG59XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbi5pZGJhci1uZXctbWVudS1idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xcHg7XG4gIGxlZnQ6IDBweDtcblxuXG5cbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgb3V0bGluZTogbm9uZTtcbiAgLW1vei10cmFuc2l0aW9uOiAwLjJzO1xuICAtd2Via2l0LXRyYW5zaXRpb246IDAuMnM7XG4gIC1vLXRyYW5zaXRpb246IDAuMnM7XG4gIHRyYW5zaXRpb246IDAuMnM7XG5cbiAgJjpob3ZlciwgJjpmb2N1cywgJjp2aXNpdGVke1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG59XG4uaWRiYXItbmV3LW1lbnUtYnV0dG9uIHNwYW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IGF1dG87XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAtby10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuLmlkYmFyLW5ldy1tZW51LWJ1dHRvbiBzcGFuOmFmdGVyLFxuLmlkYmFyLW5ldy1tZW51LWJ1dHRvbiBzcGFuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAtOXB4O1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cbi5pZGJhci1uZXctbWVudS1idXR0b24gc3BhbjphZnRlciB7XG4gIHRvcDogOXB4O1xufVxuLmlkYmFyLW5ldy1tZW51LWJ1dHRvbiBzcGFuOmFmdGVyLFxuLmlkYmFyLW5ldy1tZW51LWJ1dHRvbiBzcGFuOmJlZm9yZSxcbi5pZGJhci1uZXctbWVudS1idXR0b24gc3BhbiB7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cblxuXG5cbn1cbi5pZGJhci1uZXctbWVudS1idXR0b24gc3BhbjpiZWZvcmUsXG4uaWRiYXItbmV3LW1lbnUtYnV0dG9uIHNwYW46YWZ0ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzLCAwLjJzO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzLCAwcztcbiAgLy8gdHJhbnNpdGlvbi1wcm9wZXJ0eTogdG9wLCB0cmFuc2Zvcm07XG59XG4ubW9iaWxlLW91dCAuaWRiYXItbmV3LW1lbnUtYnV0dG9uIHNwYW4ge1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4zcyAwcyBlYXNlO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5tb2JpbGUtb3V0IC5pZGJhci1uZXctbWVudS1idXR0b24gc3BhbjpiZWZvcmUsXG4ubW9iaWxlLW91dCAuaWRiYXItbmV3LW1lbnUtYnV0dG9uIHNwYW46YWZ0ZXIge1xuICB0b3A6IDA7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogMHMsIDAuMnM7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDBzLCAwLjJzO1xufVxuLm1vYmlsZS1vdXQgLmlkYmFyLW5ldy1tZW51LWJ1dHRvbiBzcGFuOmJlZm9yZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG4ubW9iaWxlLW91dCAuaWRiYXItbmV3LW1lbnUtYnV0dG9uIHNwYW46YWZ0ZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xufVxuXG5cblxuXG4jaWRiYXItbWVudS1vdmVybGF5e1xuICB6LWluZGV4OiA4MDA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA1MnB4O1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogMTAwJTtcbn1cblxuXG4jYWRtaW4tbWVudXtcbiAgei1pbmRleDogOTk5OTk5O1xufVxuXG4vLyBib2R5LmxvZ2dlZC1pbi5maXhlZC1oZWFkZXIye1xuLy8gICAjaGVhZGVye1xuLy8gICAgIC8vIHRvcDogODFweCAhaW1wb3J0YW50O1xuLy8gICAgICAgICB0b3A6IDI5cHggIWltcG9ydGFudDtcblxuLy8gICB9XG4vLyB9XG5cbiAgYm9keS5sb2dnZWQtaW4gI2hlYWRlcntcbiAgICB0b3A6IDgxcHggIWltcG9ydGFudDtcbiAgfVxuXG4gIGJvZHkuZml4ZWQtaGVhZGVyMi5sb2dnZWQtaW4gI2hlYWRlcntcbiAgICB0b3A6IDI5cHggIWltcG9ydGFudDtcbiAgfVxuXG4gIGJvZHkuZml4ZWQtaGVhZGVyMi5ub3QtbG9nZ2VkLWluICNoZWFkZXJ7XG4gICAgdG9wOiAwcHggIWltcG9ydGFudDtcbiAgfVxuIiwiQGluY2x1ZGUgbWF4KCRtb2JpbGUtYnJlYWspIHtcblxuXHQjYWRtaW4tbWVudXtkaXNwbGF5Om5vbmU7fVxuXG5cdGJvZHkuYWRtaW4tbWVudS5hZG1pbmltYWwtbWVudTpiZWZvcmV7XG5cblx0XHRoZWlnaHQ6MHB4O1xuXG5cdH1cblxufVxuXG5cbiNoZWFkZXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAvLyBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSk7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRvcDogNTJweDtcbiAgaGVpZ2h0OiAxMzJweDtcbiAgei1pbmRleDogOTk5OTtcblxuICB0cmFuc2l0aW9uOiBhbGwgNDAwbXMgZWFzZTtcblxuICBAaW5jbHVkZSBtYXgoJG1vYmlsZS1icmVhaykge1xuICAgIG1hcmdpbi10b3A6IDUycHg7XG4gICAgaGVpZ2h0OiAxMDRweDtcbiAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgfVxuXG4gIC5jb250YWluZXIsIC5oZWFkZXItbGVmdCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLmZpeGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGltZ3tcbiAgICAgICAgbWF4LWhlaWdodDogOTZweDtcblxuICAgIH1cbiAgICBAaW5jbHVkZSBtaW4oJG1vYmlsZS1icmVhayArIDEpIHtcbiAgICAgIGhlaWdodDogMTMycHg7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCAwIDAgMCk7XG4gICAgICB0cmFuc2l0aW9uOiB0b3AgNTAwbXMgZWFzZTtcblxuICAgICAgaW1nIHtcbiAgICAgICAgLy8gd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgLy8gaGVpZ2h0OiA3NXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIC8vIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAvLyBtYXgtaGVpZ2h0OiA3NXB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDUwMG1zIGVhc2U7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICAuaGVhZGVyLWxlZnQge1xuICAgIHBhZGRpbmctdG9wOiAzMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMXB4O1xuICAgIHRyYW5zaXRpb246IHBhZGRpbmcgNTAwbXMgZWFzZTtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbW9iaWxlLWJyZWFrKSB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1heCg5NzlweCkge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1heCgkbW9iaWxlLWJyZWFrKSB7XG4gICAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci1yaWdodCB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDgpO1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbW9iaWxlLWJyZWFrKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgQGluY2x1ZGUgbWF4KCRtb2JpbGUtYnJlYWspIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIG1pbigoJG1vYmlsZS1icmVhayArIDEpKSB7XG4gIC8vIGJvZHkuZml4ZWQtaGVhZGVyIHtcbiAgLy8gICAjaGVhZGVyIC5maXhlZCB7XG4gIC8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgMCAwIGluaXRpYWwgMCk7XG4gIC8vICAgICB6LWluZGV4OiA5OTk7XG4gIC8vICAgICBib3gtc2hhZG93OiAzcHggM3B4IDVweCByZ2JhKDAsMCwwLDAuMik7XG4gIC8vICAgfVxuXG4gIC8vICAgJi5hZG1pbmltYWwtbWVudSAjaGVhZGVyIC5maXhlZCB7XG4gIC8vICAgICB0b3A6IDI5cHg7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgYm9keS5maXhlZC1oZWFkZXIyIHtcbiAgICAjaGVhZGVye1xuICAgICAgdG9wOiAwcHg7XG4gICAgICBib3gtc2hhZG93OiAzcHggM3B4IDVweCByZ2JhKDAsMCwwLDAuMik7XG4gICAgICBoZWlnaHQ6IDE1N3B4O1xuXG4gICAgfVxuICB9XG5cbiAgYm9keS5zaHJ1bmstaGVhZGVyMiB7XG5cbiAgICAgI2hlYWRlciB7XG4gICAgICBoZWlnaHQ6MTA0cHg7XG4gICAgICAuZml4ZWQge1xuICAgICAgICBoZWlnaHQ6IDEwNHB4O1xuICAgICAgICBpbWd7XG4gICAgICAgICAgbWF4LWhlaWdodDogNzVweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuaGVhZGVyLWxlZnR7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxN3B4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbToxN3B4O1xuICAgICAgfVxuXG4gICAgICB1bCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgICBsaXtcbiAgICAgICAgICBtYXJnaW4tdG9wOi01cHg7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDQwMG1zIGVhc2U7XG5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gIH1cblxuXG5cbiAgLy8gYm9keS5zaHJ1bmstaGVhZGVyIHtcbiAgLy8gICAjaGVhZGVyIHtcbiAgLy8gICAgIC5maXhlZCB7XG4gIC8vICAgICAgIGhlaWdodDogMTA5cHg7XG4gIC8vICAgICB9XG4gIC8vICAgICAuY29udGFpbmVye1xuXG4gIC8vICAgICB9XG4gIC8vICAgICAuaGVhZGVyLWxlZnQsIC5oZWFkZXItcmlnaHQge1xuICAvLyAgICAgICBwYWRkaW5nLXRvcDogMTdweDtcbiAgLy8gICAgICAgcGFkZGluZy1ib3R0b206MTdweDtcbiAgLy8gICAgIH1cblxuICAvLyAgICAgdWwge1xuICAvLyAgICAgICBwYWRkaW5nLXRvcDogMXB4O1xuICAvLyAgICAgICBsaW5lLWhlaWdodDogMTlweDtcbiAgLy8gICAgIH1cbiAgLy8gICB9XG4gIC8vIH1cbn1cblxubWFpbntcbiAgLy8gbWFyZ2luLXRvcDogNzBweDtcbn1cbiIsIiNmb290ZXIge1xuICBiYWNrZ3JvdW5kOiAjMjgyODI4O1xuICBAaW5jbHVkZSBwYWQoJGJhc2Utc3BhY2luZyozIDApO1xuICBAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogMTAyNXB4KScpIHtcblx0ICBwYWRkaW5nLXRvcDoyZW07XG5cdH1cbiAgcGFkZGluZy1ib3R0b206MDtcbiAgY29sb3I6ICRtZWRpdW0tZ3JheTtcblxuICBAaW5jbHVkZSBtYXgoNTExcHgpIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgcHRiKCRiYXNlLXNwYWNpbmcpO1xuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICY6YmVmb3Jle1xuXHQgICAgZGlzcGxheTpub25lO1xuICAgIH1cbiAgfVxuXG4gIC5mb290ZXItbGVmdCwgLmZvb3Rlci1yaWdodCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoNjAwcHgpIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg3KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoJG1vYmlsZS1icmVhaykge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQpO1xuICAgIH1cbiAgfVxuXG4gIC5mb290ZXItcmlnaHR7XG5cdCBAaW5jbHVkZSBtZWRpYSg2MDBweCkge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDUpO1xuICAgIH1cblx0QGluY2x1ZGUgbWVkaWEoJG1vYmlsZS1icmVhaykge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQpO1xuICAgIH1cblxuICB9XG5cbiAgLmZvb3Rlci1sZWZ0IHtcbiAgICBzdmcge1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgbWF4LWhlaWdodDogNzJweDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHdpZHRoOjk1cHg7XG4gICAgICBjbGVhcjpib3RoO1xuICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIH1cbiAgICAjdHdjLWxvZ28tLWZvb3Rlcnt3aWR0aDphdXRvO31cblxuICAgIC50d2MtbG9nbyB7XG5cblx0ICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuXG4gICAgICBAaW5jbHVkZSBtYXgoNTExcHgpIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRiYXNlLXNwYWNpbmc7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgI3R3Yy1sb2dvLS1mb290ZXIge1xuICAgICAgZmlsbDogJGxpZ2h0LWdyYXk7XG4gICAgfVxuXG4gICAgLnJpdC1pbmZve1xuXG5cdCAgICBoZWlnaHQ6MjAwcHg7XG5cbiAgICB9XG5cblx0LmZvb3Rlci0tbG9nb3tcblxuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHR9XG5cbiAgICAucml0LWxvZ28ge1xuXHQgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgQGluY2x1ZGUgbWF4KDUxMXB4KSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgICNyaXQtbG9nby0tZm9vdGVyIHtcbiAgICAgIGZpbGw6ICRtZWRpdW0tZ3JheTtcbiAgICAgIGhlaWdodDogM2VtO1xuICAgICAgLypwYWRkaW5nLXRvcDogMTFweDsqL1xuICAgICAgbWFyZ2luLXRvcDogLjhlbTtcblxuICAgICAgQGluY2x1ZGUgbWF4KDUxMXB4KSB7XG4gICAgICAgIEBpbmNsdWRlIHplcm8oKTtcbiAgICAgICAgd2lkdGg6IDkzcHg7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICAuYnV0dG9ue1xuXHQgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHQgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0ICAgIHBhZGRpbmc6IDAuM2VtIDAuN2VtIDAuM2VtIDNlbTtcblx0ICAgIGZvbnQtZmFtaWx5OiAkbW9udHNlcnJhdDtcblx0ICAgIGZvbnQtc2l6ZToxNHB4O1xuXHR9XG5cbiAgICBhLmJ1dHRvbjo6YmVmb3Jle2JvcmRlcjpub25lO31cblxuICAgIC5jYXRhbG9ne1xuXG5cdCAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2NhdGFsb2dfaWNvbi5wbmcpO1xuXHQgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0ICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEycHggY2VudGVyO1xuXG5cbiAgICB9XG5cbiAgICAuY2F0YWxvZzpob3ZlcntcblxuXHQgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9jYXRhbG9nX2ljb25faG92ZXIucG5nKTtcblx0ICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdCAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMnB4IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuc3VwcG9ydHtcblxuXHQgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9zdXBwb3J0X2ljb24ucG5nKTtcblx0ICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdCAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMnB4IGNlbnRlcjtcblxuXG4gICAgfVxuXG4gICAgLnN1cHBvcnQ6aG92ZXJ7XG5cblx0ICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvc3VwcG9ydF9pY29uX2hvdmVyLnBuZyk7XG5cdCAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHQgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTJweCBjZW50ZXI7XG5cbiAgICB9XG5cbiAgICAubWFpbGluZ3tcblxuXHQgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9tYWlsaW5nX2ljb24ucG5nKTtcblx0ICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdCAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMnB4IGNlbnRlcjtcblxuXG4gICAgfVxuXG4gICAgLm1haWxpbmc6aG92ZXJ7XG5cblx0ICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvbWFpbGluZ19pY29uX2hvdmVyLnBuZyk7XG5cdCAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHQgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTJweCBjZW50ZXI7XG5cbiAgICB9XG5cbiAgICBwLmNvcHlyaWdodCB7XG4gICAgICBmb250LXNpemU6IGZvbnQtc2l6ZSg5KTtcblx0ICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdCAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgIC8qQGluY2x1ZGUgbWF4KDUxMXB4KSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyNXB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuICAgICAgfSovXG4gICAgfVxuICB9XG5cbiAgLmZvb3Rlci1taWRkbGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgQGluY2x1ZGUgbWVkaWEoJG1vYmlsZS1icmVhaykge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQpO1xuICAgIH1cbiAgfVxuXG4gIC5mb290ZXItcmlnaHQge1xuICAgIGxpbmUtaGVpZ2h0OiAyNXB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwYWRkaW5nLXRvcDoxM3B4O1xuXG4gICAgaDQge1xuICAgICAgZm9udC1mYW1pbHk6ICRtb250c2VycmF0O1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gICAgICBjb2xvcjogJGxpZ2h0LWdyYXk7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuXG4gICAgYXtcblx0ICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHR9XG5cblx0YS5zb2NpYWx7XG5cdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGJvcmRlcjogMnB4IHNvbGlkICMyODI4Mjg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzI4MjgyODtcblx0XHR0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTtcblx0XHRib3JkZXItcmFkaXVzOiA2cHg7XG5cdFx0aGVpZ2h0OjI5cHg7XG5cdFx0d2lkdGg6MzBweDtcblx0XHRiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGltZ3toZWlnaHQ6MjlweDtcblx0XHR3aWR0aDozMHB4O31cblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2RlZGVkZTtcblx0XHRcdGJvcmRlci1jb2xvcjogI2RlZGVkZTtcblxuXG5cblx0XHR9XG5cblx0XHQmW2hyZWYqPVwiZmFjZWJvb2tcIl0ge1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9mYWNlYm9vay1pY29uLnBuZyk7XG5cdFx0XHRoZWlnaHQ6MjlweDtcblx0XHRcdHdpZHRoOjMwcHg7XG5cdFx0fVxuXG5cdFx0JltocmVmKj1cInR3aXR0ZXJcIl0ge1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy90d2l0dGVyLWljb24ucG5nKTtcblx0XHRcdGhlaWdodDoyOXB4O1xuXHRcdFx0d2lkdGg6MzBweDtcblx0XHR9XG5cblx0XHQmW2hyZWYqPVwicGludGVyZXN0XCJdIHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvcGludGVyZXN0LWljb24ucG5nKTtcblx0XHRcdGhlaWdodDoyOXB4O1xuXHRcdFx0d2lkdGg6MzBweDtcblx0XHR9XG5cblx0XHQmW2hyZWYqPVwiaW5zdGFncmFtXCJdIHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvaW5zdGFncmFtLWljb24ucG5nKTtcblx0XHRcdGhlaWdodDoyOXB4O1xuXHRcdFx0d2lkdGg6MzBweDtcblx0XHR9XG5cblxuXG5cdH1cblxuXHQuY29udGFjdC1pbmZvLS1mb290ZXJ7fVxuXG4gIH1cblxuICAuY29udGFjdC1pbmZvLS1mb290ZXIge1xuICBcdCAgbWFyZ2luLWJvdHRvbTozMHB4O1xuICB9XG5cbiAgLmZvb3Rlci1wYXJ0bmVycy1jb250YWludGVye1xuXG5cdCAgYmFja2dyb3VuZDogIzIxMjIyMTtcblx0ICBwYWRkaW5nOjQwcHggMCAyMDBweDs7XG5cblx0ICBoNHtcblxuXHRcdCAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuXHRcdCAgY29sb3I6I2NjYztcblx0XHQgIGZvbnQtc2l6ZTogMTRweDtcblx0XHQgIGZvbnQtd2VpZ2h0Om5vcm1hbDtcblx0XHQgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0ICBvcGFjaXR5OiAuNDtcblx0XHQgIEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiA1ODBweCknKSB7XG5cdFx0ICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdCAgfVxuXHQgIH1cblxuXHQgIC5wYXJ0bmVyLWxpbmt7XG5cblx0XHQgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHQgIHdpZHRoOjI0LjYlO1xuXHRcdCAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHQgIHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHQgIEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiA5MTVweCknKSB7XG5cdFx0ICAgICAgd2lkdGg6IDQ5JTtcblxuXHRcdCAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0ICB9XG5cdFx0ICBAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogNTgwcHgpJykge1xuXHRcdCAgICAgIHdpZHRoOiAxMDAlO1xuXHRcdCAgfVxuXHQgIH1cbiAgfVxuXG5cblxuXG59XG4iLCIjYmFubmVyIHtcbiAgLyptYXJnaW4tYm90dG9tOiBlbSg1MCk7Ki9cblxuICAuY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBtYXgoMTIwMHB4KSB7XG4gICAgICBAaW5jbHVkZSBjb2xsYXBzZSgpO1xuICAgIH1cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuYmFubmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiA0NTBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAuc2xpZGVzIHtcbiAgICAgIGxpIHtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmJhbm5lci0tc2xpZGVzaG93IHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgLmJhbm5lci0tc2luZ2xlIHtcbiAgICBpbWcge1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYShtYXgtaGVpZ2h0OiA4MDBweCkge1xuICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICBAbWVkaWEobWF4LWhlaWdodDogNjUwcHgpIHtcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG59XG4iLCIuYmFja3RvdG9wIHtcbnBhZGRpbmc6IDdweDtcbndpZHRoOiA0NHB4O1xuaGVpZ2h0OiA0NHB4O1xuZGlzcGxheTogYmxvY2s7XG5wb3NpdGlvbjogZml4ZWQ7XG56LWluZGV4OiAxMDM7XG5ib3R0b206IC01MHB4O1xucmlnaHQ6IDIwcHg7XG50cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlIDBzO1xuY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0MSwgMTExLCAwLCAwLjYpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvYmFjay10by10b3AucG5nXCIpO1xuYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbmJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5ib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbi5iYWNrdG90b3Auc2hvd24ge1xuICBib3R0b206IDE0cHg7XG59IiwiI21haW4tbWVudS0tZm9vdGVyIHtcbiAgdWwge1xuICAgIG1heC13aWR0aDogMzAwcHg7XG4gIH1cblxuXG5cbiAgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMxMzEzMTtcbiAgICBsaXN0LXN0eWxlLXR5cGU6bm9uZTtcbiAgICBsaXN0LXN0eWxlLWltYWdlOiBub25lO1xuICAgIEBpbmNsdWRlIHplcm8oKTtcblxuXG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgQGluY2x1ZGUgdHJpYW5nbGUoMTVweCwgdHJhbnNwYXJlbnQsIGRvd24tcmlnaHQpO1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgMCAwIGluaXRpYWwpO1xuICAgICAgbWFyZ2luOiBhdXRvIDA7XG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMgZWFzZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKDE1cHgsICRyaXQtb3JhbmdlLCBkb3duLXJpZ2h0KTtcbiAgICB9XG5cbiAgICAmLmFjdGl2ZS10cmFpbCB7XG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6ICRyaXQtb3JhbmdlO1xuICAgICAgfVxuICAgICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKDE1cHgsICRyaXQtb3JhbmdlLCBkb3duLXJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkbGlnaHQtZ3JheTtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LWZhbWlseTogJG1vbnRzZXJyYXQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMgZWFzZTtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHJpdC1vcmFuZ2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1lbnUtbWxpZC00NTI1e2Rpc3BsYXk6bm9uZTt9XG59XG4iLCIjc2xpZGVzaG93LCAjY2Fyb3VzZWx7XG5cblx0LypoZWlnaHQ6NjAwcHg7Ki9cblx0bWFyZ2luLWJvdHRvbTogOTBweDtcblx0bWFyZ2luLXRvcDogMTg0cHg7XG5cdEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiAxNjM1cHgpJykge1xuXHRcdGhlaWdodDogYXV0bztcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHR9XG5cblx0QGluY2x1ZGUgbWF4KCRtb2JpbGUtYnJlYWspIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG59XG5cbi5mZWF0dXJlZC1zdG9yeS1jYXJvdXNlbCB7XG4gIG1heC1oZWlnaHQ6IDU5NXB4O1xuICBtaW4taGVpZ2h0OiAyMDRweDtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoMjAwMHB4KTtcbiAgZm9udC1zaXplOiBmb250LXNpemUoMTYpO1xuICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZS1pbi1vdXQgMHM7XG4gIC5zbGlkZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgJi5zbGljay1zbGlkZSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICB9XG5cbiAgLmhlYWRsaW5lIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRvcDogMjAlO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgZm9udC1zaXplOiAzNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIHBhZGRpbmctcmlnaHQ6IC41ZW07XG4gICAgdGV4dC1zaGFkb3c6IDFweCAycHggcmdiYSgwLDAsMCwwLjQpO1xuICAgIHdpZHRoOjMyJTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuXHRmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG5cbiAgICBkaXYge1xuICAgICAgQGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDExNjBweCknKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiA5NjBweCknKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblx0QGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDE3ODVweCknKSB7XG4gICAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgyOCk7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiAxNjM1cHgpJykge1xuICAgICAgZm9udC1zaXplOiBmb250LXNpemUoMjQpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogMTE1MHB4KScpIHtcbiAgICAgIGZvbnQtc2l6ZTogZm9udC1zaXplKDIwKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDEwMDBweCknKSB7XG4gICAgICB3aWR0aDo1MCU7XG4gICAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogNzUwcHgpJykge1xuICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgfVxuICAgIEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiA1NTBweCknKSB7XG4gICAgICBmb250LXNpemU6IC45ZW07XG4gICAgfVxuICAgIEBpbmNsdWRlIG1heCg0NzlweCkge1xuICAgICAgZm9udC1zaXplOiAuOGVtO1xuICAgICAgbGVmdDogNDUlO1xuICAgICAgdG9wOiAxMCU7XG4gICAgfVxuICB9XG5cbiAgLmJsdXJiIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRvcDogNDQlO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMS4zZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICB3aWR0aDogMjNlbTtcbiAgICB0ZXh0LXNoYWRvdzogMXB4IDJweCByZ2JhKDAsMCwwLDAuNCk7XG5cblx0QGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDE2MzVweCknKSB7XG4gICAgICAgdG9wOiA1NiU7XG4gICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDk2MHB4KScpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbXEoJyhtaW4td2lkdGg6IDk2MXB4KSBhbmQgKG1heC13aWR0aDogMTAyM3B4KScpIHtcbiAgICAgIHRvcDogNDglXG4gICAgfVxuICB9XG5cbiAgLnJlYWQtbW9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0b3A6IDY3JTtcbiAgICBmb250LXNpemU6IDEuMTVlbTtcblxuICAgIGEge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogLjllbTtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgOXB4IHJnYmEoMCwwLDAsMC4zKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtcSgnKG1pbi13aWR0aDogOTYxcHgpJykge1xuICAgICAgdG9wOiA4NSU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbXEoJyhtaW4td2lkdGg6IDEwMjRweCknKSB7XG4gICAgICB0b3A6IDc3JTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtcSgnKG1pbi13aWR0aDogMTI1MHB4KScpIHtcbiAgICAgIHRvcDogNzIlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1heCg4ODBweCkge1xuICAgICAgdG9wOiBpbml0aWFsO1xuICAgICAgYm90dG9tOiAxMyU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWF4KDQ3OXB4KSB7XG4gICAgICBsZWZ0OiA0NSU7XG4gICAgfVxuICAgIGRpc3BsYXk6bm9uZTtcbiAgfVxuXG4gIC5idXktbW9yZXtcblxuXHQgIC8qbWFyZ2luLWxlZnQ6IDE3MHB4OyovXG5cdCAgZGlzcGxheTogYmxvY2s7XG5cdCAgQGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDkwMHB4KScpIHtcbiAgICAgIFx0ZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgfVxuXG4gIEBpbmNsdWRlIG1heCg2ODVweCkge1xuICAgIC5zbGlkZSB7XG4gICAgICBtaW4taGVpZ2h0OiAyMDRweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgfVxuXG4gICAgLnBob3RvIHtcbiAgICAgIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qIFNsaWRlciAqL1xuXG4uc2xpY2stc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zbGljay1saXN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgICY6Zm9jdXMgeyBcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmLmRyYWdnaW5nIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjdXJzb3I6IGhhbmQ7XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLnNsaWNrLXRyYWNrIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgICYuc2xpY2stbG9hZGluZyBpbWcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmLmRyYWdnaW5nIGltZyB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC5zbGljay1pbml0aWFsaXplZCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuc2xpY2stdmVydGljYWwgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59IiwiLnNsaWNrLWRvdHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgdG9wOiBpbml0aWFsO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBtYXgtd2lkdGg6IDc1ZW07XG4gIHBhZGRpbmc6IDAgMC44MDllbTtcblxuICBAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogOTYwcHgpJykge1xuICAgICAgbWFyZ2luLWJvdHRvbTowcHg7XG5cbiAgfVxuXG5cbiAgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgNHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUoMTVweCwgJHdoaXRlLCBkb3duLXJpZ2h0KTtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgMCAwIDApO1xuICAgICAgfVxuICAgIH1cbiAgICAmLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKDE1cHgsICRyaXQtb3JhbmdlLCBkb3duLXJpZ2h0KVxuICAgIH1cbiAgfVxufVxuXG5cbi5zbGljay1zbGlkZSB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5zbGljay1hcnJvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IDE7XG4gIG1hcmdpbjogYXV0bztcbiAgd2lkdGg6IDIycHg7XG4gIGhlaWdodDogNDVweDtcbiAgZmlsbDogI2MwYzBjMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICYuc2xpY2stcHJldiB7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogaW5pdGlhbDtcbiAgfVxuICAmLnNsaWNrLW5leHQge1xuICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgcmlnaHQ6IDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgfVxufVxuXG4uc2VydmljZXMtLXNsaWRlciB7XG4gIG1heC1oZWlnaHQ6IDcwMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIEBpbmNsdWRlIG1heCg4NDlweCkge1xuICAgIG1heC1oZWlnaHQ6IDEwNTBweDtcbiAgfVxufVxuXG4ubW9yZS1zdG9yaWVzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAzNTBweDtcblxuICBoMyB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuICAuc2xpY2stZG90cyB7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogaW5pdGlhbDtcbiAgICBsZWZ0OiAxMTVweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgbGkge1xuICAgICAgYnV0dG9uOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKDE1cHgsICRtZWRpdW0tZ3JheSwgZG93bi1yaWdodCk7XG4gICAgICB9XG4gICAgICAmLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUoMTVweCwgJHJpdC1vcmFuZ2UsIGRvd24tcmlnaHQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ubW9yZS1zdG9yaWVzLXNsaWRlciB7XG4gIG1heC1oZWlnaHQ6IDMyMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIC52aWV3cy1yb3cge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gIH1cblxuICAuc2lkZWJhci0tcmlnaHQge1xuICAgIHBhZGRpbmctbGVmdDogMTRweDtcbiAgfVxuXG4gIC50aXRsZSB7XG4gICAgbGluZS1oZWlnaHQ6IDIzcHg7XG4gICAgYSB7XG4gICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYmx1cmIge1xuICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogJG1lZGl1bS1ncmF5O1xuICB9XG59XG4iLCIuYm9va19zaGVsZntcblxuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9zaGVsZi5wbmcnKTtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIGNlbnRlcjtcblx0YmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuXHRwYWRkaW5nLWJvdHRvbTogNjVweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRtYXJnaW4tYm90dG9tOiAxMjBweDtcblxuXHRAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogMTE1MHB4KScpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDk1MHB4KScpIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiA1MTBweCknKSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbToyMHB4O1xuICAgIH1cblxuXG5cblx0aDJ7XG5cblx0XHRAZXh0ZW5kIC5ibGFja215cmlhZDIwO1xuXHRcdGZvbnQtc2l6ZTogZm9udC1zaXplKDM0KTtcblx0XHRib3JkZXItYm90dG9tOnNvbGlkICNlYWVhZWEgMnB4O1xuXHRcdHBhZGRpbmctYm90dG9tOjE1cHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogNTVweDtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXG5cdFx0QGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDk1MHB4KScpIHtcblx0ICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcblx0ICAgIH1cblxuXHR9XG5cblx0LnZpZXctZm9vdGVye1xuXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDowcHg7XG5cdFx0dG9wOjA7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuXHRcdEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiA5NTBweCknKSB7XG5cdCAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xuXG5cdCAgICB9XG5cblx0fVxuXHQudmlld3Mtc2xpZGVzaG93LWN5Y2xlLW1haW4tZnJhbWV7XG5cblx0XHRoZWlnaHQ6MjAwcHggIWltcG9ydGFudDtcblx0XHRtYXJnaW46IDAgMjNweDtcblxuXHRcdEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiA0NzBweCknKSB7XG5cdFx0ICAgIGhlaWdodDogMTI1cHggIWltcG9ydGFudDtcblx0XHR9XG5cblx0fVxuXG5cdC52aWV3cy1zbGlkZXNob3ctY3ljbGUtbWFpbi1mcmFtZS1yb3cge3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCU7Ym94LXNpemluZzogYm9yZGVyLWJveH1cblx0LnZpZXdzLXNsaWRlc2hvdy1jeWNsZS1tYWluLWZyYW1lLXJvd1tzdHlsZV17XG5cblxuXHRcdHdpZHRoOjEwMCUgIWltcG9ydGFudDtcblxuXG5cdFx0QGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDUxMHB4KScpIHtcblx0ICAgICAgaGVpZ2h0OjE1MHB4ICFpbXBvcnRhbnQ7XG5cdCAgICB9XG5cblx0fVxuXG5cblxuXHQudmlld3Mtc2xpZGVzaG93LWN5Y2xlLW1haW4tZnJhbWUtcm93LWl0ZW17XG5cblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0d2lkdGg6MjQuNiU7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0YTpiZWZvcmV7XG5cblx0XHRcdGRpc3BsYXk6bm9uZTtcblxuXHRcdH1cblxuXHRcdGltZ3sgYm9yZGVyOiBzb2xpZCAjZWFlYWVhIDFweDt9XG5cblx0XHRAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogOTAwcHgpJykge1xuXHQgICAgICB3aWR0aDoyNCU7XG5cblx0ICAgICAgaW1ne1xuXG5cdFx0ICAgICAgbWF4LXdpZHRoOiA4NSU7XG5cblx0ICAgICAgfVxuXG5cdCAgICB9XG5cblx0ICAgIEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiA0MjBweCknKSB7XG5cdCAgICAgIHdpZHRoOjIzJTtcblxuXHQgICAgICBpbWd7XG5cblx0XHQgICAgICBtYXgtd2lkdGg6IDk1JTtcblxuXHQgICAgICB9XG5cblx0ICAgIH1cblx0fVxuXG5cdC52aWV3LWNvbnRlbnR7cG9zaXRpb246IHJlbGF0aXZlO31cblxuXG59XG5cblxuXG5cbi52aWV3cy1zbGlkZXNob3ctY29udHJvbHMtYm90dG9te1xuXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOjUwJTtcblx0d2lkdGg6MTAwJTtcblx0LypoZWlnaHQ6NDVweDsqL1xuXHR6LWluZGV4OiA1MDtcblxuXHRAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogNTEwcHgpJykge1xuICAgICAgdG9wOjIyJTtcbiAgICB9XG5cblxuXG5cblx0LnZpZXdzLXNsaWRlc2hvdy1jb250cm9scy10ZXh0LXBhdXNle2Rpc3BsYXk6bm9uZTt9XG5cblx0LnZpZXdzLXNsaWRlc2hvdy1jb250cm9scy10ZXh0LXByZXZpb3Vze1xuXG5cdFx0d2lkdGg6MjNweDtcblx0XHRoZWlnaHQ6NDVweDtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9zaGVsZi1sZWZ0LWFycm93LnBuZycpO1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0XHR0ZXh0LWluZGVudDogLTk5OTlweDtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDowcHg7XG5cblx0XHQmOmhvdmVye1xuXG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9zaGVsZi1sZWZ0LWFycm93LS1ob3Zlci5wbmcnKTtcblxuXHRcdH1cblx0fVxuXG5cdC52aWV3cy1zbGlkZXNob3ctY29udHJvbHMtdGV4dC1uZXh0e1xuXG5cdFx0d2lkdGg6MjNweDtcblx0XHRoZWlnaHQ6NDVweDtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9zaGVsZi1yaWdodC1hcnJvdy5wbmcnKTtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG5cdFx0dGV4dC1pbmRlbnQ6IC05OTk5cHg7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OjBweDtcblxuXHRcdCY6aG92ZXJ7XG5cblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL3NoZWxmLXJpZ2h0LWFycm93LS1ob3Zlci5wbmcnKTtcblxuXHRcdH1cblxuXHR9XG5cbn1cbiIsIkBtaXhpbiBxdWljay1saW5rcy1pY29uKCRpY29uLCAkbW9kaWZpZXI6IG5vbmUpIHtcbiAgQGlmICRtb2RpZmllciAhPSBub25lIHtcbiAgICAkbW9kaWZpZXI6IC0tI3skbW9kaWZpZXJ9O1xuICB9IEBlbHNlIHtcbiAgICAkbW9kaWZpZXI6IFwiXCI7XG4gIH1cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy8jeyRpY29ufS1pY29uI3skbW9kaWZpZXJ9LnBuZyk7XG59XG5cbiNxdWljay1saW5rcy0taGVhZGVyIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIGZvbnQtc2l6ZTogZm9udC1zaXplKDEyKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB1bCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi10b3A6IDI1cHg7XG5cblxuXG5cbiAgfVxuXG5cbiAgLnNocnVuay1oZWFkZXIyICYgdWx7bWFyZ2luLXRvcDogMDt9XG5cbiAgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICYucXVpY2stbGlua3Mtc2VhcmNoLWNhdGFsb2cgPiBhIHtcbiAgICAgIEBpbmNsdWRlIHF1aWNrLWxpbmtzLWljb24oc2VhcmNoLWNhdGFsb2cpO1xuICAgICAgJjpiZWZvcmUsICY6aG92ZXIsICYuYWN0aXZlLCAmLmFjdGl2ZS10cmFpbCB7XG4gICAgICAgIEBpbmNsdWRlIHF1aWNrLWxpbmtzLWljb24oc2VhcmNoLWNhdGFsb2csIGhvdmVyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5xdWljay1saW5rcy1tYWlsIGEge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgJi5xdWljay1saW5rcy1teS1hY2NvdW50IGEge1xuICAgICAgQGluY2x1ZGUgcXVpY2stbGlua3MtaWNvbihteS1hY2NvdW50KTtcbiAgICAgICY6YmVmb3JlLCAmOmhvdmVyLCAmLmFjdGl2ZSwgJi5hY3RpdmUtdHJhaWwge1xuICAgICAgICBAaW5jbHVkZSBxdWljay1saW5rcy1pY29uKG15LWFjY291bnQsIGhvdmVyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5xdWljay1saW5rcy1jYXJ0IGEge1xuICAgICAgQGluY2x1ZGUgcXVpY2stbGlua3MtaWNvbihjYXJ0KTtcbiAgICAgICY6YmVmb3JlLCAmOmhvdmVyLCAmLmFjdGl2ZSwgJi5hY3RpdmUtdHJhaWwge1xuICAgICAgICBAaW5jbHVkZSBxdWljay1saW5rcy1pY29uKGNhcnQsIGhvdmVyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5xdWljay1saW5rcy1zdXBwb3J0LXVzIGEge1xuICAgICAgQGluY2x1ZGUgcXVpY2stbGlua3MtaWNvbihnaWZ0KTtcbiAgICAgICY6YmVmb3JlLCAmOmhvdmVyLCAmLmFjdGl2ZSwgJi5hY3RpdmUtdHJhaWwge1xuICAgICAgICBAaW5jbHVkZSBxdWljay1saW5rcy1pY29uKGdpZnQsIGhvdmVyKTtcbiAgICAgIH1cbiAgICB9XG5cblxuXG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogIzg3ODc4NztcbiAgICBtYXJnaW4tbGVmdDogMjVweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuXG4gICAgJi5hY3RpdmUsICYuYWN0aXZlLXRyYWlsIHtcbiAgICAgIHNwYW4ge1xuICAgICAgICAvKmJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkcml0LW9yYW5nZTsqL1xuICAgICAgfVxuICAgIH1cbiAgICAmLmFjdGl2ZSwgJi5hY3RpdmUtdHJhaWwsICY6aG92ZXIsIC5wYWdlLXVzZXIgLnF1aWNrLWxpbmtzLW15LWFjY291bnQgJiB7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG4gIH1cblxuICAucGFnZS11c2VyICYgLnF1aWNrLWxpbmtzLW15LWFjY291bnQgYSB7XG5cblx0ICBjb2xvcjogIzAwMDtcblx0ICBAaW5jbHVkZSBxdWljay1saW5rcy1pY29uKG15LWFjY291bnQsIGhvdmVyKTtcbiAgfVxufVxuXG4ucXVpY2stbGlua3Mge1xuICB1bCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICBsaSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBAaW5jbHVkZSB6ZXJvKCk7XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nOiA0cHggMCA0cHggMzJweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IDJweDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmNvbnRleHR1YWwtbGlua3Mtd3JhcHBlciB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbiNxdWljay1saW5rcy0tZm9vdGVyIHtcbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG4gIGxpIHtcbiAgICAmLnF1aWNrLWxpbmtzLWFib3V0IGEge1xuICAgICAgQGluY2x1ZGUgcXVpY2stbGlua3MtaWNvbihhYm91dCwgZm9vdGVyKTtcbiAgICAgICY6YmVmb3JlLCAmOmhvdmVyLCAmLmFjdGl2ZSwgJi5hY3RpdmUtdHJhaWwge1xuICAgICAgICBAaW5jbHVkZSBxdWljay1saW5rcy1pY29uKGFib3V0LCBob3Zlcik7XG4gICAgICB9XG4gICAgfVxuICAgICYucXVpY2stbGlua3MtbWFpbCBhIHtcbiAgICAgIEBpbmNsdWRlIHF1aWNrLWxpbmtzLWljb24oZW1haWwsIGZvb3Rlcik7XG4gICAgICAmOmJlZm9yZSwgJjpob3ZlciwgJi5hY3RpdmUsICYuYWN0aXZlLXRyYWlsIHtcbiAgICAgICAgQGluY2x1ZGUgcXVpY2stbGlua3MtaWNvbihlbWFpbCwgaG92ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgICAmLnF1aWNrLWxpbmtzLXN0YWZmLWRpcmVjdG9yeSBhIHtcbiAgICAgIEBpbmNsdWRlIHF1aWNrLWxpbmtzLWljb24oc3RhZmYsIGZvb3Rlcik7XG4gICAgICAmOmJlZm9yZSwgJjpob3ZlciwgJi5hY3RpdmUsICYuYWN0aXZlLXRyYWlsIHtcbiAgICAgICAgQGluY2x1ZGUgcXVpY2stbGlua3MtaWNvbihzdGFmZiwgaG92ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgICAmLnF1aWNrLWxpbmtzLW1hcHMgYSB7XG4gICAgICBAaW5jbHVkZSBxdWljay1saW5rcy1pY29uKG1hcHMsIGZvb3Rlcik7XG4gICAgICAmOmJlZm9yZSwgJjpob3ZlciwgJi5hY3RpdmUsICYuYWN0aXZlLXRyYWlsIHtcbiAgICAgICAgQGluY2x1ZGUgcXVpY2stbGlua3MtaWNvbihtYXBzLCBob3Zlcik7XG4gICAgICB9XG4gICAgfVxuICAgICYucXVpY2stbGlua3Mtc3VwcG9ydC11cyBhIHtcbiAgICAgIEBpbmNsdWRlIHF1aWNrLWxpbmtzLWljb24oZ2lmdCwgZm9vdGVyKTtcbiAgICAgICY6YmVmb3JlLCAmOmhvdmVyLCAmLmFjdGl2ZSwgJi5hY3RpdmUtdHJhaWwge1xuICAgICAgICBAaW5jbHVkZSBxdWljay1saW5rcy1pY29uKGdpZnQsIGhvdmVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgbWF4KDUxMXB4KSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4ucXVpY2stbGlua3Mtc2VhcmNoLWNhdGFsb2d7XG5cblx0cG9zaXRpb246cmVsYXRpdmU7XG5cbn1cblxuLnF1aWNrLXNlYXJjaHtcblxuXG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHQvKm1hcmdpbi10b3A6IDE4cHg7Ki9cblx0dG9wOi03cHg7XG5cdHdpZHRoOjM0MHB4O1xuXHR6LWluZGV4OiAxMDA7XG5cdGhlaWdodDozNXB4O1xuXHRsZWZ0Oi0yOTBweDtcblx0b3ZlcmZsb3cteDogaGlkZGVuO1xuXG5cdC5zaHJ1bmstaGVhZGVyICZ7XG5cblx0XHRtYXJnaW4tdG9wOiAycHg7XG5cblx0fVxuXG5cdCYgZm9ybXtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRsZWZ0OiAzNDBweDtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIC42cyBlYXNlLWluLW91dDtcblx0XHQtbW96LXRyYW5zaXRpb246IGFsbCAuNnMgZWFzZS1pbi1vdXQ7XG5cdFx0LW8tdHJhbnNpdGlvbjogYWxsIC42cyBlYXNlLWluLW91dDtcblx0XHR0cmFuc2l0aW9uOiBhbGwgLjZzIGVhc2UtaW4tb3V0O1xuXG4gICAgfVxuXG4gICNibG9jay1tZW51LWJsb2NrLTUgJiBmb3Jte1xuICAgIGRpc3BsYXk6bm9uZTtcbiAgfVxuXHQuZm9ybS10ZXh0e1xuXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0d2lkdGg6MzA1cHg7XG5cdFx0aGVpZ2h0OjM1cHg7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdGxhYmVse2Rpc3BsYXk6bm9uZTt9XG5cblx0fVxuXG5cdC5mb3JtLWFjdGlvbnMsIC5mb3JtLWl0ZW17XG5cblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRmbG9hdDpsZWZ0O1xuXHRcdHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcblx0XHQuZm9ybS10ZXh0e1xuXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXG5cdFx0fVxuXHRcdC5mb3JtLXN1Ym1pdHtcblxuXHRcdFx0aGVpZ2h0OjM1cHg7XG5cdFx0XHR3aWR0aDozNXB4O1xuXG5cdFx0fVxuXG5cdFx0LnVpLWF1dG9jb21wbGV0ZSB7XG5cdFx0ICAgIGN1cnNvcjogZGVmYXVsdDtcblx0XHQgICAgbGVmdDogMDtcblx0XHQgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdCAgICB0b3A6IDA7XG5cdFx0fVxuXHR9XG5cblx0LmZvcm0tYWN0aW9uc3tcblxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogMDtcblxuXHR9XG5cblx0Ji5zaG93e1xuXG5cdFx0b3ZlcmZsb3cteTogdmlzaWJsZTtcblx0XHRoZWlnaHQ6YXV0bztcblx0XHRtaW4taGVpZ2h0OiAzNXB4O1xuXG5cdFx0Zm9ybXtcblxuXHRcdFx0bGVmdDogMHB4O1xuXG5cdFx0fVxuXHR9XG5cbiAgJi5zaG93LW1vYmlsZXtcblxuXHRcdG92ZXJmbG93LXk6IHZpc2libGU7XG5cdFx0aGVpZ2h0OmF1dG87XG5cdFx0bWluLWhlaWdodDogMzVweDtcbiAgICBsZWZ0OjA7XG4gICAgdG9wOjA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1heC13aWR0aDoxMDAlO1xuXG5cdFx0Zm9ybXtcblxuXHRcdFx0bGVmdDogMHB4O1xuICAgICAgbWF4LXdpZHRoOjEwMCU7XG5cblx0XHR9XG5cdH1cbn1cbiNibG9jay1tZW51LWJsb2NrLTUgLnF1aWNrLXNlYXJjaC5zaG93LW1vYmlsZSBmb3JtIHtcbiAgICBkaXNwbGF5OmJsb2NrO1xufVxuIiwiI3RpdGxlLWJhciB7XG4gIC8qZGlzcGxheTogbm9uZTsqL1xuICBoZWlnaHQ6IDExOHB4O1xuICBtYXJnaW4tdG9wOiAxODRweDtcbiAgQGluY2x1ZGUgbWF4KCRtb2JpbGUtYnJlYWspIHtcbiAgXHRtYXJnaW4tdG9wOiAwO1xuICB9XG4gIGJhY2tncm91bmQ6ICRzbW9rZTtcbiAgQGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDYwMHB4KScpIHtcblx0ICAgIGhlaWdodDphdXRvO1xuXHR9XG5cbiAgLnRpdGxlLWJhci0tbGVmdCB7XG4gICAgZm9udC1zaXplOiBmb250LXNpemUoMTYpO1xuICAgIGZvbnQtZmFtaWx5OiAkbW9udHNlcnJhdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHBhZGRpbmctdG9wOiA0NXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg4KTtcblx0QGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDYwMHB4KScpIHtcblx0ICAgIHBhZGRpbmctdG9wOiAyNXB4O1xuXHQgICAgcGFkZGluZy1ib3R0b206IDVweDtcblx0ICAgIHdpZHRoOjEwMCU7XG5cdH1cbiAgICAmLCBhIHtcbiAgICAgIGNvbG9yOiAkbWVkaXVtLWdyYXk7XG4gICAgfVxuXG4gICAgLmJyZWFkY3J1bWIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC0uNXB4O1xuICAgIH1cblxuICAgIGgxI3BhZ2UtdGl0bGUge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH1cbiAgfVxuXG4gIC50aXRsZS1iYXItLXJpZ2h0IHtcblx0aGVpZ2h0OjExOHB4O1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0KTtcbiAgICBAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogNjAwcHgpJykge1xuXHQgICAgZGlzcGxheTpub25lO1xuXHR9XG4gICAgaW1nIHtcbiAgICAgIG1heC13aWR0aDogMTE4cHg7XG4gICAgICBtYXgtaGVpZ2h0OiAxMTdweDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHRvcDogNTAlO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB9XG4gIH1cbn1cblxuLnVjLXByb2R1Y3Qtbm9kZSAjdGl0bGUtYmFyIC50aXRsZS1iYXItLWxlZnQge1xuXG5cdHdpZHRoOjEwMCU7XG5cbn1cbi51Yy1wcm9kdWN0LW5vZGUgI3RpdGxlLWJhciAudGl0bGUtYmFyLS1yaWdodHtkaXNwbGF5Om5vbmU7fVxuIiwiLnByb2R1Y3QtZGV0YWlscy1zZWN0aW9ue1xuXHRwYWRkaW5nLXRvcDo2MHB4O1xuXG5cdCN0YWJze1xuXG5cdFx0JiBhOmJlZm9yZSB7XG5cblx0XHRcdGRpc3BsYXk6bm9uZTtcblxuXHRcdH1cblxuXG5cdFx0bGl7ZGlzcGxheTppbmxpbmUtYmxvY2s7fVxuXHRcdC51aS10YWJzLWFuY2hvcntcblxuXHRcdFx0Ym9yZGVyOiBzb2xpZCAjOTc5NDk1IDJweDtcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0cGFkZGluZzowIDQ1cHg7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdGZvbnQtZmFtaWx5OiAkbW9udHNlcnJhdDtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRmb250LXNpemU6IGZvbnQtc2l6ZSgxNik7XG5cdFx0XHRjb2xvcjojOTc5NDk1O1xuXHRcdFx0aGVpZ2h0OjQwcHg7XG5cdFx0XHRsaW5lLWhlaWdodDogNDBweDtcblx0XHRcdGZvbnQtd2VpZ2h0OmJvbGQ7XG5cdFx0fVxuXG5cdFx0LnVpLXN0YXRlLWFjdGl2ZSAudWktdGFicy1hbmNob3J7XG5cblx0XHRcdGNvbG9yOiR3aGl0ZTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRyaXRfb3JhbmdlO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAkcml0X29yYW5nZTtcblxuXHRcdH1cblxuXHRcdC51aS10YWJzLXBhbmVse1xuXG5cdFx0XHRwYWRkaW5nOjcwcHggMDtcblxuXHRcdFx0aDF7XG5cdFx0XHRcdGZvbnQtc2l6ZTogZm9udC1zaXplKDM0KTtcblx0XHRcdFx0Y29sb3I6JGJsYWNrO1xuXHRcdFx0XHRib3JkZXItYm90dG9tOnNvbGlkICNlYWVhZWEgMnB4O1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbToyMHB4O1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiA1NXB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0fVxuXG5cdFx0XHQucHJvZHVjdC1kZXNjcmlwdGlvbntcblxuXHRcdFx0XHR3aWR0aDo2OSU7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDc1cHg7XG5cdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG5cdFx0XHR9XG5cblx0XHRcdC5wcm9kdWN0LWRldGFpbHN7XG5cblx0XHRcdFx0d2lkdGg6MzAlO1xuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdFx0dmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuXG5cdFx0XHR9XG5cblx0XHRcdEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiA3MjVweCknKSB7XG5cdFx0XHQgICAgLnByb2R1Y3QtZGVzY3JpcHRpb257XG5cblx0XHRcdFx0ICAgIHdpZHRoOjEwMCU7XG5cdFx0XHRcdCAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG5cdFx0XHQgICAgfVxuXHRcdFx0ICAgIC5wcm9kdWN0LWRldGFpbHN7XG5cblx0XHRcdFx0ICAgIHdpZHRoOjEwMCU7XG5cdFx0XHRcdCAgICBtYXJnaW4tdG9wOiAyMHB4O1xuXHRcdFx0ICAgIH1cblx0XHRcdH1cblxuXHRcdH1cblxuXG5cdFx0QGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDkwMHB4KScpIHtcblxuXHRcdCAgbGl7XG5cdFx0XHQgIHdpZHRoOiA0OSU7XG5cdFx0XHQgIG1hcmdpbi1ib3R0b206MTBweDtcblx0XHQgIH1cblxuXHRcdCAgLnVpLXRhYnMtYW5jaG9ye3dpZHRoOjEwMCU7fVxuXG5cblx0XHR9XG5cblx0XHRAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogNjAwcHgpJykge1xuXG5cdFx0ICBsaXtcblx0XHRcdCAgd2lkdGg6IDEwMCU7XG5cdFx0ICB9XG5cblxuXHRcdH1cblxuXG5cdH1cblxuXG5cbn1cblxuXG51bC50YWJzLnByaW1hcnl7XG5cblx0bGkgYXtcblxuXHRcdGJvcmRlcjogc29saWQgIzk3OTQ5NSAycHg7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0cGFkZGluZzowIDQ1cHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Zm9udC1mYW1pbHk6ICRtb250c2VycmF0O1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0Zm9udC1zaXplOiBmb250LXNpemUoMTYpO1xuXHRcdGNvbG9yOiM5Nzk0OTU7XG5cdFx0aGVpZ2h0OjQwcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDQwcHg7XG5cdFx0Zm9udC13ZWlnaHQ6Ym9sZDtcblx0fVxuXG5cdGxpLmFjdGl2ZSBhe1xuXG5cdFx0Ym9yZGVyOiBzb2xpZCAkcml0X29yYW5nZSAycHg7XG5cblx0fVxuXG5cblx0bGkgYTpob3Zlcixcblx0bGkgYS5hY3RpdmV7XG5cblx0XHRjb2xvcjokd2hpdGU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHJpdF9vcmFuZ2U7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkcml0X29yYW5nZTtcblxuXHR9XG5cblxufVxuXG4udG9ib2dnYW4tdW5pZmllZCAjbG9naW4tbGlua3N7XG5cblx0YXtcblxuXHRcdGJvcmRlcjogc29saWQgIzk3OTQ5NSAycHg7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0cGFkZGluZzowIDQ1cHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Zm9udC1mYW1pbHk6ICRtb250c2VycmF0O1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdGNvbG9yOiM5Nzk0OTU7XG5cdFx0aGVpZ2h0OjQwcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDQwcHg7XG5cdFx0Zm9udC13ZWlnaHQ6Ym9sZDtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdH1cblxuXHQvKmF7XG5cblx0XHRib3JkZXI6IHNvbGlkICRyaXRfb3JhbmdlIDJweDtcblxuXHR9Ki9cblxuXG5cdGE6aG92ZXIsXG5cdGEubHQtYWN0aXZlLFxuXHRhLmx0LWFjdGl2ZTpob3ZlcntcblxuXHRcdGNvbG9yOiR3aGl0ZTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkcml0X29yYW5nZTtcblx0XHRib3JkZXItY29sb3I6ICRyaXRfb3JhbmdlO1xuXG5cdH1cblxuXG59XG4iLCIjc2ItY29udGFpbmVyIHtcbiAgICB6LWluZGV4OiAxMDAwMDtcbn1cblxuXG4ucGFnZS11c2VyIG1haW57XG5cblx0cGFkZGluZy10b3A6NTVweDtcblx0cGFkZGluZy1ib3R0b206IDEzMHB4O1xuXG5cdEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiA5ODBweCknKSB7XG4gICAgICAgcGFkZGluZy10b3A6MjVweDtcbiAgICAgICBwYWRkaW5nLWJvdHRvbTozMHB4O1xuICAgIH1cblxuXHQjdXNlci1sb2dpbixcblx0I3VzZXItcGFzcyxcblx0I3VzZXItcmVnaXN0ZXItZm9ybXtcblxuXHRcdCNlZGl0LWN1dG9tdGV4dHtcblxuXHRcdFx0ZGlzcGxheTpub25lO1xuXG5cdFx0fVxuXG5cdFx0aW5wdXRbdHlwZT1cInN1Ym1pdFwiXXtcblxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0ICAgIGJvcmRlcjogMnB4IHNvbGlkICNmMzZlMjE7XG5cdFx0ICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblx0XHQgICAgY29sb3I6ICNmMzZlMjE7XG5cdFx0ICAgIGN1cnNvcjogcG9pbnRlcjtcblx0XHQgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdCAgICBmb250LWZhbWlseTogXCJNb250c2VycmF0XCIsc2Fucy1zZXJpZjtcblx0XHQgICAgZm9udC1zaXplOiAxNXB4O1xuXHRcdCAgICBmb250LXdlaWdodDogNDAwO1xuXHRcdCAgICBsaW5lLWhlaWdodDogMWVtO1xuXHRcdCAgICBtYXJnaW46IDA7XG5cdFx0ICAgIHBhZGRpbmc6IDEycHggMTZweDtcblx0XHQgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdCAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0ICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0ICAgIHRyYW5zaXRpb246IGFsbCA1MDBtcyBlYXNlIDBzO1xuXHRcdCAgICBtYXJnaW4tdG9wOiAxMHB4O1xuXHRcdH1cblxuXHRcdGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIge1xuXHRcdCAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjM2ZTIxO1xuXHRcdCAgICBjb2xvcjogI2ZmZjtcblx0XHR9XG5cblxuXG5cblx0XHQuZm9ybS10ZXh0LFxuXHRcdC5kZXNjcmlwdGlvbiB7XG5cblx0XHRcdHdpZHRoOjM1MHB4O1xuXG5cdFx0XHRAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogNjAwcHgpJykge1xuXHRcdCAgICAgIHdpZHRoOjEwMCU7XG5cdFx0ICAgIH1cblxuXHRcdH1cblxuXHR9XG5cblx0ZGl2LnBhc3N3b3JkLWNvbmZpcm0sIC5wYXNzd29yZC1zdHJlbmd0aHtcblxuXHRcdGRpc3BsYXk6bm9uZTtcblxuXHR9XG5cblx0I3JlZ2lzdGVyLWZvcm17XG5cblx0XHRmaWVsZHNldHtcblxuXHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHRtYXJnaW4tdG9wOiAyMHB4O1xuXG5cdFx0XHRsZWdlbmR7XG5cblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcblx0XHRcdFx0Zm9udC1zaXplOiAxZW07XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDAuMzc1ZW07XG5cblxuXHRcdFx0fVxuXG5cdFx0XHQuZmllbGRzZXQtZGVzY3JpcHRpb257XG5cblx0XHRcdFx0Zm9udC1zaXplOiAwLjg1ZW07XG5cblx0XHRcdH1cblx0XHR9XG5cblx0fVxuXG59XG5cblxuXG4ubm9kZS1wYWdlLFxuLm5vZGUtYWNjb3JkaW9uLXBhZ2V7XG5cblx0b2wsIHVse1xuXG5cdFx0bGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuXHRcdG1hcmdpbjogMCAwIDAuNzVlbSBmb250LXNpemUoMjApO1xuXHR9XG5cbn1cblxuLmhpZGUtYmVmb3Jle1xuXG5cdCY6YmVmb3Jle2Rpc3BsYXk6IG5vbmU7fVxuXG59XG5cbi5ub2RlLXdlYmZvcm17XG5cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nLXRvcDo1NXB4O3BhZGRpbmctYm90dG9tOjEzMHB4O1xuXG5cdEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiA5ODBweCknKSB7XG4gICAgICAgcGFkZGluZy10b3A6MjVweDtcbiAgICAgICBwYWRkaW5nLWJvdHRvbTozMHB4O1xuICAgIH1cblxuICAgIC5zdWJtaXNzaW9uLWNvbmZpcm1hdGlvbiB7XG5cdCAgICBiYWNrZ3JvdW5kOiAjZmZmIG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7XG5cdCAgICBkaXNwbGF5OiBub25lO1xuXHQgICAgaGVpZ2h0OiAxMDAlO1xuXHQgICAgcG9zaXRpb246IGFic29sdXRlO1xuXHQgICAgd2lkdGg6IDEwMCU7XG5cdCAgICB6LWluZGV4OiAxMDtcblx0fVxufVxuXG5cbi5ub2RlLXBhZ2VcbntcblxuXG5cblx0Lm5vdC1mcm9udCAme1xuXG5cdFx0cGFkZGluZy10b3A6NTVweDtwYWRkaW5nLWJvdHRvbToxMzBweDtcblxuXHRcdEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiA5ODBweCknKSB7XG5cdCAgICAgICBwYWRkaW5nLXRvcDoyNXB4O1xuXHQgICAgICAgcGFkZGluZy1ib3R0b206MzBweDtcblx0ICAgIH1cblxuXHR9XG5cblx0LmZpZWxkLW5hbWUtYm9keXtcblxuXHRcdGZvbnQtc2l6ZTpmb250LXNpemUoMTQpO1xuXHRcdGNvbG9yOiRsaWdodGlzaC1ncmF5O1xuXHRcdHdpZHRoOjY2JTtcblx0XHRmb250LWZhbWlseTogXCJIZWx2ZXRpY2FcIixcIlJvYm90b1wiLFwiQXJpYWxcIixzYW5zLXNlcmlmO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG5cblx0XHRAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogMTAyMHB4KScpIHtcblx0ICAgICAgd2lkdGg6MTAwJTtcblx0ICAgIH1cblxuXHRcdC5jb250ZW50LWVtcGhhc2l6ZXtcblxuXHRcdFx0QGV4dGVuZCAuYmxhY2tteXJpYWQyMDtcblxuXHRcdH1cblxuXHRcdC5ib29rc2VsbGVyLWNvbHtcblxuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHR3aWR0aDozMSU7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG5cblx0XHRcdGltZ3tcblxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOjI1cHg7XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQubWVkaWEtcm93e1xuXG5cdFx0XHRtYXJnaW4tYm90dG9tOiA1MHB4O1xuXG5cdFx0XHQubWVkaWEtcm93LWltYWdle1xuXG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0d2lkdGg6MjUlO1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XHRcdFx0fVxuXG5cdFx0XHQubWVkaWEtcm93LXRleHR7XG5cblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHR3aWR0aDo3MiU7XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcdFx0XHR9XG5cblx0XHR9XG5cdH1cblxuXHQvKiN3ZWJmb3JtLWNsaWVudC1mb3JtLTkxMjUgLmZvcm0tdGV4dCB7XG5cblx0XHR3aWR0aDo1MDBweDtcblxuXHRcdEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiA2MDBweCknKSB7XG5cdCAgICAgIHdpZHRoOjEwMCU7XG5cdCAgICB9XG5cblx0fVxuXG5cdC53ZWJmb3JtLWNsaWVudC1mb3Jte1xuXG5cdFx0cGFkZGluZy1yaWdodDogNDBweDtcblxuXHRcdEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiA2MDBweCknKSB7XG5cdCAgICAgIHBhZGRpbmc6MDs7XG5cdCAgICB9XG5cblx0XHQjd2ViZm9ybS1jb21wb25lbnQtbWVzc2FnZXtcblxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcblxuXHRcdH1cblxuXHRcdGlucHV0W3R5cGU9XCJzdWJtaXRcIl17XG5cblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0XHRmb250LWZhbWlseTogJ015cmlhZCBQcm8nO1xuXHRcdFx0Zm9udC1zaXplOmZvbnQtc2l6ZSgyMik7XG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0cGFkZGluZzogMC43NWVtIDJlbTtcblxuXHRcdH1cblx0fSovXG5cblx0LyouZmllbGQtbmFtZS1maWVsZC1zaWRlYmFye1xuXG5cdFx0d2lkdGg6MzMlO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG5cdFx0cGFkZGluZy1sZWZ0OiA0MHB4O1xuXHRcdCYgYXtcblxuXHRcdFx0Zm9udC1mYW1pbHk6JG1vbnRzZXJyYXQ7XG5cdFx0XHRmb250LXNpemU6IGZvbnQtc2l6ZSgxNik7XG5cdFx0XHRjb2xvcjojMDAwO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuXG5cdFx0XHQuc3VwcG9ydC10ZXh0e1xuXG5cdFx0XHRcdHBhZGRpbmctdG9wOjIwcHg7XG5cblx0XHRcdH1cblx0XHR9XG5cdH0qL1xuXG5cblx0LmZpZWxkLW5hbWUtZmllbGQtc2lkZWJhcntcblxuXHRcdHdpZHRoOjMyJTtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7XG5cdFx0cGFkZGluZzozNXB4O1xuXHRcdG1hcmdpbi1sZWZ0OiAxMHB4O1xuXG5cdFx0QGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDEwMjBweCknKSB7XG5cdCAgICAgIHdpZHRoOjEwMCU7XG5cdCAgICAgIG1hcmdpbjogMjBweCAwO1xuXHQgICAgfVxuXG5cdFx0aDR7XG5cblx0XHRcdEBleHRlbmQgLmJsYWNrbXlyaWFkMjA7XG5cdFx0XHRmb250LXNpemU6IGZvbnQtc2l6ZSgxNik7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG5cdFx0fVxuXG5cdFx0cHtcblxuXHRcdFx0Zm9udC1mYW1pbHk6J2hlbHZldGljYSc7XG5cdFx0XHRmb250LXNpemU6IGZvbnQtc2l6ZSgxNCk7XG5cdFx0XHRjb2xvcjokbGlnaHRpc2gtZ3JheTtcblxuXHRcdH1cblxuXHRcdCYgYS5zdXBwb3J0e1xuXG5cdFx0XHRmb250LWZhbWlseTokbW9udHNlcnJhdDtcblx0XHRcdGZvbnQtc2l6ZTogZm9udC1zaXplKDE2KTtcblx0XHRcdGNvbG9yOiMwMDA7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG5cblx0XHRcdC5zdXBwb3J0LXRleHR7XG5cblx0XHRcdFx0cGFkZGluZy10b3A6MjBweDtcblxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8qLm5vZGUtd2ViZm9ybSAme1xuXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDU1cHg7XG5cblx0XHR9Ki9cblx0fVxuXG5cblxufVxuLyojbm9kZS05MTI1e1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cbn0qL1xuXG5cblxuLm5vZGUtYWNjb3JkaW9uLXBhZ2V7XG5cblx0cGFkZGluZy10b3A6NTVweDtcblxuXHQuZmllbGQtbmFtZS1maWVsZC1hY2NvcmRpb24tZ3JvdXB7XG5cblx0XHQuZmllbGQtY29sbGVjdGlvbi12aWV3e1xuXG5cdFx0XHRwYWRkaW5nLXRvcDogMC40ZW07XG5cblx0XHR9XG5cblxuXHR9XG5cblx0JiA+IC5jb250ZW50ID4gLmZpZWxkLWNvbGxlY3Rpb24tY29udGFpbmVyIHtcblxuXHRcdHdpZHRoOjEwMCU7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcblx0XHRAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogMTAyNXB4KScpIHtcblx0ICAgICAgd2lkdGg6MTAwJTtcblx0ICAgIH1cblxuXHRcdD4gLmZpZWxkLW5hbWUtZmllbGQtYWNjb3JkaW9uLXNlY3Rpb24gPiAuZmllbGQtaXRlbXMgPiAuZmllbGQtaXRlbXtcblxuXHRcdFx0d2lkdGg6NDklO1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuXG5cdFx0XHRAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogNzAwcHgpJykge1xuXHRcdCAgICAgIHdpZHRoOjEwMCU7XG5cdFx0ICAgIH1cblxuXHRcdH1cblxuXG5cdH1cblxuXHQuZmllbGQtY29sbGVjdGlvbi1jb250YWluZXIsXG5cdC5maWVsZC1jb2xsZWN0aW9uLXZpZXd7Ym9yZGVyOm5vbmU7fVxuXG5cdC5maWVsZC1uYW1lLWZpZWxkLXNlY3Rpb24tdGl0bGV7XG5cdFx0Zm9udC1zaXplOiBmb250LXNpemUoMjQpO1xuXHRcdGNvbG9yOiMwMDA7XG5cdFx0Ym9yZGVyLWJvdHRvbTpzb2xpZCAjZWFlYWVhIDJweDtcblx0XHRwYWRkaW5nLWJvdHRvbToyMHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0fVxuXG5cdC5maWVsZC1uYW1lLWZpZWxkLWRpdmlkZWQtc2VjdGlvbi10aXRsZXtcblxuXHRcdEBleHRlbmQgLmJsYWNrbXlyaWFkMjA7XG5cdFx0Y3Vyc29yOnBvaW50ZXI7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjVweDtcblx0XHRwYWRkaW5nLWxlZnQ6NDBweDtcblxuXHRcdC8qXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvcGx1cy5wbmcnKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IDdweDtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyovXG5cdH1cblxuXHRkaXYuc3RlcC1udW1iZXJ7XG5cdCAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTM5MzkzO1xuXHQgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXHQgICAgY29sb3I6ICNmZmZmZmY7XG5cdCAgICBjdXJzb3I6IHBvaW50ZXI7XG5cdCAgICBmb250LWZhbWlseTogXCJNb250c2VycmF0XCI7XG5cdCAgICBmb250LXNpemU6IDI0cHg7XG5cdCAgICBmb250LXdlaWdodDogYm9sZDtcblx0ICAgIGhlaWdodDogNDBweDtcblx0ICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuXHQgICAgcG9zaXRpb246IGFic29sdXRlO1xuXHQgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXHQgICAgd2lkdGg6IDQwcHg7XG5cblx0XHRzcGFuLmNsb3NlZHtcblx0ICAgIGRpc3BsYXk6IGlubGluZTtcblx0XHR9XG5cblx0XHRzcGFuLm9wZW57XG5cdCAgICBkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdC5mYXFBY3RpdmV7XG5cblx0XHQvKmJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL21pbnVzLnBuZycpOyovXG5cblx0XHRkaXYuc3RlcC1udW1iZXIgc3Bhbi5jbG9zZWR7XG5cdCAgICBkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuXHRcdGRpdi5zdGVwLW51bWJlciBzcGFuLm9wZW57XG5cdCAgICBkaXNwbGF5OiBpbmxpbmU7XG5cdFx0fVxuXG5cdH1cblxuXHQuZmllbGQtbmFtZS1maWVsZC1kaXZpZGVkLXNlY3Rpb24tYm9keXtcblxuXHRcdGRpc3BsYXk6bm9uZTtcblx0XHRAZXh0ZW5kIC5ncmV5aGVsMTY7XG5cdFx0cGFkZGluZy1sZWZ0OiA0MHB4O1xuXHR9XG5cblx0LyouZmllbGQtbmFtZS1maWVsZC1zaWRlYmFye1xuXG5cdFx0d2lkdGg6MzMlO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcblx0XHRwYWRkaW5nOjM1cHg7XG5cdFx0bWFyZ2luLWxlZnQ6IDEwcHg7XG5cdFx0QGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDEwMjVweCknKSB7XG5cdCAgICAgIHdpZHRoOjEwMCU7XG5cdCAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdCAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuXHQgICAgfVxuXHRcdGg0e1xuXG5cdFx0XHRAZXh0ZW5kIC5ibGFja215cmlhZDIwO1xuXHRcdFx0Zm9udC1zaXplOiBmb250LXNpemUoMTYpO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuXHRcdH1cblxuXHRcdHB7XG5cblx0XHRcdGZvbnQtZmFtaWx5OidoZWx2ZXRpY2EnO1xuXHRcdFx0Zm9udC1zaXplOiBmb250LXNpemUoMTQpO1xuXHRcdFx0Y29sb3I6JGxpZ2h0aXNoLWdyYXk7XG5cblx0XHR9XG5cdH0qL1xufVxuLnZpZXctc3RhZmZ7XG5cdHBhZGRpbmctdG9wOjIwcHg7XG5cdHBhZGRpbmctYm90dG9tOjEzMHB4O1xuXG5cdEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiA5ODBweCknKSB7XG4gICAgICAgcGFkZGluZy1ib3R0b206MzBweDtcbiAgICB9XG5cblx0LnZpZXdzLXJvdy1vZGR7XG5cblx0XHRwYWRkaW5nLXJpZ2h0OjM1cHg7XG5cblx0fVxuXG5cdC52aWV3cy1yb3ctZXZlbntcblxuXHRcdHBhZGRpbmctbGVmdDozNXB4O1xuXG5cdH1cblxuXHQudmlld3Mtcm93e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjQ5JTt2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG5cblxuXHRcdEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiA4MDBweCknKSB7XG5cdCAgICAgIHdpZHRoOjEwMCU7XG5cdCAgICAgIHBhZGRpbmc6IDA7XG5cdCAgICB9XG5cblx0fVxuXG5cbn1cblxuLm5vZGUtc3RhZmZ7XG5cblx0QGV4dGVuZCAuZ3JleWhlbDE2O1xuXHRwYWRkaW5nLXRvcDo1NXB4O1xuXHRAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogOTgwcHgpJykge1xuICAgICAgIHBhZGRpbmctdG9wOjA7XG4gICAgfVxuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0aDJ7ZGlzcGxheTogbm9uZTt9XG5cblx0aW1ne2JvcmRlci1yYWRpdXM6IDUwJTttYXJnaW4tYm90dG9tOiAzMHB4O31cblxuXHQuZmllbGQtbmFtZS1maWVsZC1kaXNwbGF5LW5hbWV7XG5cblx0XHRAZXh0ZW5kIC5ibGFja215cmlhZDIwO1xuXG5cdH1cblxuXHQuZmllbGQtbmFtZS1ib2R5e1xuXG5cdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcblxuXHR9XG5cblx0LmZpZWxkLW5hbWUtZmllbGQtc3RhZmYtZW1haWx7Zm9udC1zaXplOmZvbnQtc2l6ZSgxNCk7ZGlzcGxheTogaW5saW5lLWJsb2NrO31cblxuXHQuZmllbGQtbmFtZS1maWVsZC1zdGFmZi1waG9uZXsgQGV4dGVuZCAuZmllbGQtbmFtZS1maWVsZC1zdGFmZi1lbWFpbDsgcGFkZGluZy1sZWZ0OiAyMHB4O3Bvc2l0aW9uOiByZWxhdGl2ZTt9XG5cblx0LmZpZWxkLW5hbWUtZmllbGQtc3RhZmYtcGhvbmUgLmZpZWxkLWl0ZW1zOmJlZm9yZXtjb250ZW50OiBcInxcIjt0ZXh0LWFsaWduOiBjZW50ZXI7cG9zaXRpb246IGFic29sdXRlO2xlZnQ6MTBweDt9XG5cblx0LmZpZWxkLW5hbWUtZmllbGQtc3RhZmYtZmF4e0BleHRlbmQgLmZpZWxkLW5hbWUtZmllbGQtc3RhZmYtcGhvbmU7fVxuXG5cdC5maWVsZC1uYW1lLWZpZWxkLXN0YWZmLWZheCAuZmllbGQtaXRlbXM6YmVmb3Jle2NvbnRlbnQ6IFwifFwiO3RleHQtYWxpZ246IGNlbnRlcjtwb3NpdGlvbjogYWJzb2x1dGU7bGVmdDoxMHB4O31cblxufVxuXG4ucGFnZS1ub2RlLTkxMjV7XG5cblx0LyogY29udGVudCBmb3Jtc1xuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblxuXG5cdGlucHV0W3R5cGU9XCJlbWFpbFwiXSwgaW5wdXRbdHlwZT1cIm51bWJlclwiXSwgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSwgaW5wdXRbdHlwZT1cInRleHRcIl0sIGlucHV0W3R5cGU9XCJ0ZWxcIl0sIGlucHV0W3R5cGU9XCJ1cmxcIl0sIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSwgdGV4dGFyZWEsIHNlbGVjdCB7XG5cdCAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG5cdCAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHQgICAgYm9yZGVyOiAwIG5vbmU7XG5cdCAgICBib3JkZXItcmFkaXVzOiAwO1xuXHQgICAgYm94LXNoYWRvdzogbm9uZTtcblx0ICAgIGNvbG9yOiAjNjc2ODY3O1xuXHQgICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhXCIsc2Fucy1zZXJpZjtcblx0ICAgIGZvbnQtc2l6ZTogMTRweDtcblx0ICAgIGxpbmUtaGVpZ2h0OiAxZW07XG5cdCAgICBwYWRkaW5nOiAxMHB4O1xuXHQgICAgd2lkdGg6IDEwMCU7XG5cdCAgICBtYXJnaW46IDA7XG5cdH1cblx0QGluY2x1ZGUgbWF4KCRtb2JpbGUtYnJlYWspIHtcbiAgXHRcdHNlbGVjdHtoZWlnaHQ6MzBweDt9XG4gICAgfVxuXG5cblx0Zm9ybS53ZWJmb3JtLWNsaWVudC1mb3JtIHtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogNDBweDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZWFlYWVhO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHQuc3VibWlzc2lvbi1jb25maXJtYXRpb257XG5cblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNlYWVhZWE7XG5cdFx0XHR3aWR0aDpjYWxjKDEwMCUgLSA0MHB4KTtcblx0XHRcdGhlaWdodDpjYWxjKDEwMCUgLSA0MHB4KTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR9XG5cblx0fVxuXG5cdGZvcm0ud2ViZm9ybS1jbGllbnQtZm9ybSBkaXYuZm9ybS1hY3Rpb25zIHtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogMzBweCAwIDAgMDtcblx0XHRjbGVhcjogYm90aDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cblxuXHRkaXYud2ViZm9ybS1jb21wb25lbnQge1xuXHRcdG1hcmdpbjogMCAwIDE1cHggMDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cdH1cblxuXHRkaXYud2ViZm9ybS1jb21wb25lbnQgPiBsYWJlbCB7XG5cdFx0cGFkZGluZzogMTBweCAyNXB4O1xuXHRcdHdpZHRoOiAyNSU7XG5cdFx0QGluY2x1ZGUgbWF4KCRtb2JpbGUtYnJlYWspIHtcblx0ICBcdFx0Jnt3aWR0aDogMzglO31cblx0ICAgIH1cblx0XHRmbG9hdDogbGVmdDtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRjb2xvcjogIzY3Njg2Nztcblx0ICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYVwiLHNhbnMtc2VyaWY7XG5cdCAgICBmb250LXNpemU6IDE0cHg7XG5cdCAgICBmb250LXdlaWdodDogNDAwO1xuXHQgICAgbWFyZ2luOiAwO1xuXHQgICAgbGluZS1oZWlnaHQ6MTtcblx0fVxuXG5cdGRpdi53ZWJmb3JtLWNvbXBvbmVudCBpbnB1dFt0eXBlPSdjaGVja2JveCddIHtcblx0XHRib3JkZXI6IDJweCAjOGY4ZjhiIHNvbGlkO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG5cdH1cblxuXHRkaXYud2ViZm9ybS1jb21wb25lbnQgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuXHRkaXYud2ViZm9ybS1jb21wb25lbnQgaW5wdXRbdHlwZT1cInRleHRcIl0sXG5cdGRpdi53ZWJmb3JtLWNvbXBvbmVudCB0ZXh0YXJlYSxcblx0ZGl2LndlYmZvcm0tY29tcG9uZW50IGRpdi5mb3JtLWNoZWNrYm94ZXMsXG5cdGRpdi53ZWJmb3JtLWNvbXBvbmVudCBkaXYuZm9ybS1yYWRpb3MsXG5cdGRpdi53ZWJmb3JtLWNvbXBvbmVudCBzcGFuLnVpLXNlbGVjdG1lbnUtYnV0dG9uLFxuXHRkaXYud2ViZm9ybS1jb21wb25lbnQgZGl2LmRlc2NyaXB0aW9uLFxuXHRkaXYud2ViZm9ybS1jb21wb25lbnQgc2VsZWN0IHtcblx0XHR3aWR0aDogNjIlICFpbXBvcnRhbnQ7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdH1cblxuXG5cblxuXG5cdGRpdi53ZWJmb3JtLWNvbXBvbmVudCBkaXYuZm9ybS1jaGVja2JveGVzLFxuXHRkaXYud2ViZm9ybS1jb21wb25lbnQgZGl2LmZvcm0tcmFkaW9zIHtcblx0XHRwYWRkaW5nOiAxMHB4IDAgMCAwO1xuXHR9XG5cblx0ZGl2LndlYmZvcm0tY29tcG9uZW50IGRpdi5mb3JtLWNoZWNrYm94ZXMgZGl2LmZvcm0taXRlbSxcblx0ZGl2LndlYmZvcm0tY29tcG9uZW50IGRpdi5mb3JtLXJhZGlvcyBkaXYuZm9ybS1pdGVtIHtcblx0XHRtYXJnaW46IDAgMTVweCAwIDA7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR9XG5cblx0ZGl2LndlYmZvcm0tY29tcG9uZW50IGRpdi5kZXNjcmlwdGlvbiB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IDEwcHggMCAwIDA7XG5cdFx0Zm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhXCI7XG5cdFx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRjb2xvcjogIzY3Njg2Nztcblx0XHRsaW5lLWhlaWdodDogMS40ZW07XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHR9XG5cblx0ZGl2LndlYmZvcm0tY29tcG9uZW50IGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcblx0ZGl2LndlYmZvcm0tY29tcG9uZW50IGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuXHRkaXYud2ViZm9ybS1jb21wb25lbnQgc2VsZWN0IHtcblx0XHRtYXgtd2lkdGg6IDM3NXB4O1xuXHR9XG5cblx0ZGl2LndlYmZvcm0tY29tcG9uZW50IHRleHRhcmVhIHtcblx0XHRyZXNpemU6IG5vbmU7XG5cdH1cblxuXHRkaXYud2ViZm9ybS1jb21wb25lbnQgc3Bhbi51aS1zZWxlY3RtZW51LWJ1dHRvbiB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bWF4LXdpZHRoOiAzNzVweDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0YmFja2dyb3VuZDogbm9uZSAjZjlmOWY5O1xuXHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0Y29sb3I6ICM1NTU7XG5cdH1cblxuXHRkaXYud2ViZm9ybS1jb21wb25lbnQgc3Bhbi51aS1zZWxlY3RtZW51LWJ1dHRvbiBzcGFuLnVpLXNlbGVjdG1lbnUtdGV4dCB7XG5cdFx0cGFkZGluZzogMTBweDtcblx0XHRmb250LWZhbWlseTogXCJIZWx2ZXRpY2FcIjtcblx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0Y29sb3I6ICM2NzY4Njc7XG5cdFx0bGluZS1oZWlnaHQ6IDFlbTtcblx0fVxuXG5cdC5idXR0b24sIGJ1dHRvbiwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSwgaW5wdXRbdHlwZT1cInJlc2V0XCJdLCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdIHtcblx0ICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHQgICAgYm9yZGVyOiAycHggc29saWQgI2YzNmUyMTtcblx0ICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblx0ICAgIGNvbG9yOiAjZjM2ZTIxO1xuXHQgICAgY3Vyc29yOiBwb2ludGVyO1xuXHQgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHQgICAgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLHNhbnMtc2VyaWY7XG5cdCAgICBmb250LXNpemU6IDE1cHg7XG5cdCAgICBmb250LXdlaWdodDogNDAwO1xuXHQgICAgbGluZS1oZWlnaHQ6IDFlbTtcblx0ICAgIG1hcmdpbjogMDtcblx0ICAgIHBhZGRpbmc6IDEycHggMTZweDtcblx0ICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblx0ICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0ICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdCAgICB0cmFuc2l0aW9uOiBhbGwgNTAwbXMgZWFzZSAwcztcblx0fVxuXG5cdC5idXR0b246aG92ZXIsIGJ1dHRvbjpob3ZlciwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciwgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmhvdmVyLCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmhvdmVyIHtcblx0ICAgIGJhY2tncm91bmQtY29sb3I6ICNmMzZlMjE7XG5cdCAgICBjb2xvcjogI2ZmZjtcblx0fVxuXG5cdC5ub2RlLXdlYmZvcm0gLnNiSG9sZGVyIHsgZGlzcGxheTogaW5saW5lLWJsb2NrO21hcmdpbi1ib3R0b206IDA7fVxuXHQud2ViZm9ybS1jb21wb25lbnQ6OmFmdGVyLCAudmlldy1jb250ZW50OjphZnRlciwgLmNsZWFyZml4OjphZnRlciwgLmNvbnRhaW5lcjo6YWZ0ZXIsIC5yb3c6OmFmdGVyIHtcblx0ICAgIGNsZWFyOiBib3RoO1xuXHQgICAgY29udGVudDogXCJcIjtcblx0ICAgIGRpc3BsYXk6IHRhYmxlO1xuXHR9XG59XG5cbi8qY29udGFjdCBzaWRlYmFyICovXG5cbiNub2RlLTkxMjV7XG5cblx0LndlYmZvcm0tY2xpZW50LWZvcm17XG5cblx0XHR3aWR0aDo2MCU7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdEBpbmNsdWRlIG1heCgkbW9iaWxlLWJyZWFrKSB7XG5cdCAgXHRcdCZ7d2lkdGg6MTAwJTt9XG5cdCAgICB9XG5cdH1cblxuXHQuZmllbGQtbmFtZS1ib2R5e1xuXG5cdFx0d2lkdGg6IDM5JTtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0cGFkZGluZy1sZWZ0OiA5MHB4O1xuXG5cdFx0QGluY2x1ZGUgbWF4KCRtb2JpbGUtYnJlYWspIHtcblx0ICBcdFx0JntkaXNwbGF5OiBub25lO31cblx0ICAgIH1cblxuXHR9XG5cblx0LmNvbnRhY3QtaGVhZGluZ3tcblxuXHRcdEBleHRlbmQgLmJsYWNrbXlyaWFkMjA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcblx0fVxuXG5cdC5jb250YWN0LXBob25le1xuXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9waG9uZS1pY29uLnBuZyk7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLWxlZnQ6IDQwcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcblx0XHRtYXJnaW4tdG9wOiAxNXB4O1xuXHRcdGNvbG9yOiM2NzY3Njc7XG5cdH1cblxuXHQuY29udGFjdC1mYXh7XG5cblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2ZheC1pY29uLnBuZyk7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLWxlZnQ6IDQwcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcblx0XHRjb2xvcjojNjc2NzY3O1xuXHR9XG5cblx0LmNvbnRhY3QtZW1haWx7XG5cblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2VtYWlsLWljb24ucG5nKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IDRweDtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctbGVmdDogNDBweDtcblx0XHRtYXJnaW4tYm90dG9tOiA0MHB4O1xuXG5cblx0fVxuXG5cdC5jb250YWN0LXNvY2lhbHtcblxuXHRcdGF7XG5cblx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0XHRcdCY6YmVmb3Jle2Rpc3BsYXk6IG5vbmU7fVxuXHRcdH1cblxuXHR9XG5cbn1cblxuXG4jYm90dG9tLXBhZ2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYWVhZWE7XG4gICAgcGFkZGluZzogNDBweCAwO1xuXG4gICAgaDE6Zmlyc3QtY2hpbGQsIGgyOmZpcnN0LWNoaWxkLCBoMzpmaXJzdC1jaGlsZCwgaDQ6Zmlyc3QtY2hpbGQge1xuXHQgICAgbWFyZ2luLXRvcDogMDtcblx0ICAgIHBhZGRpbmctdG9wOiAwO1xuXHR9XG5cdGgzIHtcblx0ICAgIGNvbG9yOiAjMDAwO1xuXHQgICAgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLHNhbnMtc2VyaWY7XG5cdCAgICBmb250LXNpemU6IDE4cHg7XG5cdCAgICBmb250LXdlaWdodDogNDAwO1xuXHQgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuXHQgICAgbWFyZ2luOiAwIDAgMjBweDtcblx0ICAgIHBhZGRpbmc6IDIwcHggMCAwO1xuXHQgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0fVxuICAgIHAge1xuXHQgICAgY29sb3I6ICM4ODg7XG5cdCAgICBmb250LXNpemU6IDE0cHg7XG5cdCAgICBsaW5lLWhlaWdodDogMS43ZW07XG5cdCAgICBtYXJnaW46IDAgMCAyMHB4O1xuXHR9XG5cblx0LmJ1dHRvbntcblxuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cblx0XHQmOmJlZm9yZXtcblxuXHRcdFx0dHJhbnNmb3JtOiBub25lO1xuXHRcdCAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHRcdCAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdGJvdHRvbTouOGVtO1xuXHRcdH1cblxuXHR9XG5cbn1cbiIsIkBDSEFSU0VUIFwiVVRGLThcIjtcclxuLnNiSG9sZGVye1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0Ym9yZGVyOiBzb2xpZCAxcHggI2NkY2NjYjtcclxuXHRmb250LWZhbWlseTogSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xyXG5cdGZvbnQtc2l6ZTogMTNweDtcclxuXHRmb250LXdlaWdodDogbm9ybWFsO1xyXG5cdGhlaWdodDogMzBweDtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0d2lkdGg6IDIwMHB4O1xyXG5cdFxyXG5cdCYgYTpiZWZvcmUgeyBkaXNwbGF5Om5vbmU7IH1cclxuXHRcclxuXHQubm9kZS13ZWJmb3JtICZ7XHJcblx0XHRcclxuXHRcdHdpZHRoOjMwMHB4O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcclxuXHR9XHJcbn1cclxuLnNiSG9sZGVyOmZvY3VzIC5zYlNlbGVjdG9ye1xyXG5cdFxyXG59XHJcbi5zYlNlbGVjdG9ye1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdGhlaWdodDogMzBweDtcclxuXHRsZWZ0OiAwO1xyXG5cdGxpbmUtaGVpZ2h0OiAzMHB4O1xyXG5cdG91dGxpbmU6IG5vbmU7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dGV4dC1pbmRlbnQ6IDEwcHg7XHJcblx0dG9wOiAwO1xyXG5cdHdpZHRoOiAyMDVweDtcclxufVxyXG4uc2JTZWxlY3RvcjpsaW5rLCAuc2JTZWxlY3Rvcjp2aXNpdGVkLCAuc2JTZWxlY3Rvcjpob3ZlcntcclxuXHRjb2xvcjogIzdmN2I3YiAgIWltcG9ydGFudDtcclxuXHRvdXRsaW5lOiBub25lO1xyXG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxufVxyXG4uc2JUb2dnbGV7XHJcblx0YmFja2dyb3VuZDogdXJsKC4uL2ltZy9zZWxlY3QtYXJyb3cucG5nKSBjZW50ZXIgNHB4IG5vLXJlcGVhdDtcclxuXHRkaXNwbGF5OiBibG9jaztcclxuXHRoZWlnaHQ6IDI5cHg7XHJcblx0b3V0bGluZTogbm9uZTtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0cmlnaHQ6IDA7XHJcblx0dG9wOiAwO1xyXG5cdHdpZHRoOiAzMHB4O1xyXG5cdGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggI2NkY2NjYjtcclxuXHRcclxuXHQgXHJcblx0XHJcbn1cclxuLnNiVG9nZ2xlOmhvdmVye1xyXG5cdGJhY2tncm91bmQ6IHVybCguLi9pbWcvc2VsZWN0LWFycm93LnBuZykgY2VudGVyIDRweCBuby1yZXBlYXQ7XHJcbn1cclxuLnNiVG9nZ2xlT3BlbntcclxuXHRiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL3NlbGVjdC1hcnJvdy5wbmcpIGNlbnRlciA0cHggbm8tcmVwZWF0O1xyXG59XHJcbi5zYlRvZ2dsZU9wZW46aG92ZXJ7XHJcblx0YmFja2dyb3VuZDogdXJsKC4uL2ltZy9zZWxlY3QtYXJyb3cucG5nKSBjZW50ZXIgNHB4IG5vLXJlcGVhdDtcclxufVxyXG4uc2JIb2xkZXJEaXNhYmxlZHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG5cdGJvcmRlcjogc29saWQgMXB4ICNjZGNjY2I7XHJcbn1cclxuLnNiSG9sZGVyRGlzYWJsZWQgLnNiSG9sZGVye1xyXG5cdFxyXG59XHJcbi5zYkhvbGRlckRpc2FibGVkIC5zYlRvZ2dsZXtcclxuXHRcclxufVxyXG4uc2JPcHRpb25ze1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0Ym9yZGVyOiBzb2xpZCAxcHggI2NkY2NjYjtcclxuXHRsaXN0LXN0eWxlOiBub25lO1xyXG5cdGxlZnQ6IC0xcHg7XHJcblx0bWFyZ2luOiAwO1xyXG5cdHBhZGRpbmc6IDA7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogMzBweDtcclxuXHR3aWR0aDogMjAwcHg7XHJcblx0ei1pbmRleDogMTtcclxuXHRvdmVyZmxvdy15OiBhdXRvO1xyXG5cdFxyXG5cdC5ub2RlLXdlYmZvcm0gJntcclxuXHRcdFxyXG5cdFx0d2lkdGg6IDMwMHB4O1xyXG5cdFx0XHJcblx0fVxyXG59XHJcbnVsLnNiT3B0aW9ucyB7XHJcblx0XHJcblx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XHJcblx0XHJcbn1cclxuXHJcbi5zYk9wdGlvbnMgbGl7XHJcblx0cGFkZGluZzogMCA3cHg7XHJcbn1cclxuLnNiT3B0aW9ucyBhe1xyXG5cdGJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggI2NkY2NjYjtcclxuXHRkaXNwbGF5OiBibG9jaztcclxuXHRvdXRsaW5lOiBub25lO1xyXG5cdHBhZGRpbmc6IDdweCAwIDdweCAzcHg7XHJcbn1cclxuLnNiT3B0aW9ucyBhOmxpbmssIC5zYk9wdGlvbnMgYTp2aXNpdGVke1xyXG5cdGNvbG9yOiAjN2Y3YjdiICAhaW1wb3J0YW50O1xyXG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxufVxyXG4uc2JPcHRpb25zIGE6aG92ZXIsXHJcbi5zYk9wdGlvbnMgYTpmb2N1cyxcclxuLnNiT3B0aW9ucyBhLnNiRm9jdXN7XHJcblx0Y29sb3I6ICM3ZjdiN2IgICFpbXBvcnRhbnQ7XHJcbn1cclxuLnNiT3B0aW9ucyBsaS5sYXN0IGF7XHJcblx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcclxufVxyXG4uc2JPcHRpb25zIC5zYkRpc2FibGVke1xyXG5cdGJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggI2NkY2NjYjtcclxuXHRjb2xvcjogIzk5OTtcclxuXHRkaXNwbGF5OiBibG9jaztcclxuXHRwYWRkaW5nOiA3cHggMCA3cHggM3B4O1xyXG59XHJcbi5zYk9wdGlvbnMgLnNiR3JvdXB7XHJcblx0Ym9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAjY2RjY2NiO1xyXG5cdGNvbG9yOiAjN2Y3YjdiO1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cdHBhZGRpbmc6IDdweCAwIDdweCAzcHg7XHJcbn1cclxuLnNiT3B0aW9ucyAuc2JTdWJ7XHJcblx0cGFkZGluZy1sZWZ0OiAxN3B4O1xyXG59IiwiYWJiciB7XG4gIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDtcbiAgY3Vyc29yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5cbi5wYWdlLWNhcnQgbWFpbntcblxuXHRAZXh0ZW5kIC5ncmV5aGVsMTY7XG5cdC5yZWdpb24tY29udGVudHtcblx0XHRwYWRkaW5nLXRvcDogNTVweDtcblx0XHRwYWRkaW5nLWJvdHRvbToxMzBweDtcblx0fVxuXG5cdCN1Yy1jYXJ0LXZpZXctZm9ybXsgXG5cblx0XHQjZWRpdC1hY3Rpb25ze1xuXG5cdFx0XHRAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogNTgwcHgpJykge1xuXHRcdCAgICAgIC5mb3JtLXN1Ym1pdCxcblx0XHQgICAgICBhe1xuXG5cdFx0XHQgICAgICB3aWR0aDoxMDAlO1xuXHRcdFx0ICAgICAgbWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHQgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHQgICAgICBtYXJnaW4tYm90dG9tOjEwcHg7XG5cdFx0ICAgICAgICB9XG5cdFx0ICAgIH1cblx0XHR9XG5cdH1cblxuXHQjdWMtY2FydC12aWV3LWZvcm0gdGFibGV7XG5cblx0XHR0cntiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDt9XG5cblx0XHR0aHtcblxuXHRcdFx0QGV4dGVuZCAuYmxhY2ttb25zMjA7XG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHQqe2JvcmRlcjpub25lO31cblxuXHRcdH1cblxuXHRcdHRoOm50aC1jaGlsZCgxKSxcblx0XHR0aDpudGgtY2hpbGQoMil7XG5cblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cblx0XHR9XG5cblxuXHRcdHRke1xuXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG5cdFx0fVxuXG5cdFx0LnByaWNle3RleHQtYWxpZ246IGNlbnRlcjt9XG5cdFx0LnF0eSBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG5cdFx0ICAgIG1hcmdpbjogMCBhdXRvO1xuXHRcdCAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0ICAgIHdpZHRoOiBhdXRvO1xuXHRcdH1cblxuXG5cblx0XHR0ZC5zdWJ0b3RhbHtcblxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDExNXB4O1xuXHRcdFx0aGVpZ2h0Ojc1cHg7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG5cdFx0XHQjc3VidG90YWwtdGl0bGV7XG5cblx0XHRcdFx0bWFyZ2luLXJpZ2h0OjYwcHg7XG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiA2ODBweCknKSB7XG5cblx0XHRcdC5yZW1vdmUsXG5cdFx0XHR0aDpudGgtY2hpbGQoMSl7XG5cblx0XHRcdFx0LypkaXNwbGF5Om5vbmU7Ki9cblx0XHRcdFx0Zm9udC1zaXplOiAwO1xuXHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cblxuXHRcdFx0fVxuXG5cdFx0XHQucmVtb3ZlIGlucHV0W3R5cGU9XCJzdWJtaXRcIl17XG5cblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9pY29uLWNsb3NlLnBuZyk7XG5cdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG5cdFx0XHRcdGhlaWdodDoxN3B4O1xuXHRcdFx0XHR3aWR0aDoxN3B4O1xuXHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMDtcblxuXHRcdFx0fVxuXG5cblx0ICAgIH1cblxuXHQgICAgQGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDQ1MHB4KScpIHtcblxuXHRcdCAgICAucXR5IGlucHV0e1xuXG5cdFx0XHQgICAgcGFkZGluZzogLjI1ZW0gMDtcblx0XHRcdCAgICBtYXgtd2lkdGg6IDM1cHg7XG5cdFx0ICAgIH1cblxuXHRcdH1cblxuXG5cblx0fVxuXG5cdC5yZWdpb24tY29udGVudCBpbnB1dFt0eXBlPVwidGV4dFwiXSxcblx0LnJlZ2lvbi1jb250ZW50IGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXXtcblxuXHRcdHdpZHRoOmF1dG87XG5cblx0fVxuXG5cdGJ1dHRvbiwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgaW5wdXRbdHlwZT1cInJlc2V0XCJdLCBpbnB1dFt0eXBlPVwic3VibWl0XCJde1xuXHQgIGxpbmUtaGVpZ2h0OiAyNXB4O1xuXHQgIGJvcmRlcjogMnB4IHNvbGlkICNiNGIyYjE7XG5cdCAgcGFkZGluZzogMC4zNWVtIDJlbSAwLjI1ZW0gMC43ZW0gO1xuXHQgIGNvbG9yOiAkd2hpdGU7XG5cdCAgcG9zaXRpb246IHJlbGF0aXZlO1xuXHQgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlO1xuXHQgIGJvcmRlci1yYWRpdXM6IDJweDtcblx0ICBmb250LWZhbWlseTogJG1vbnRzZXJyYXQ7XG5cdCAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHQgIGJhY2tncm91bmQtY29sb3I6ICNiNGIyYjE7XG5cdCAgbWFyZ2luLWxlZnQ6IDEwcHg7XG5cdCAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0ICBmb250LXdlaWdodDogbm9ybWFsO1xuXG5cdCAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy93aGl0ZS1jYXJ0LXRyaWFuZ2xlLnBuZyk7XG5cdCAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0ICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxNXB4KSBjZW50ZXI7XG5cblx0ICAmOmhvdmVyIHtcblx0ICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHQgICAgY29sb3I6ICNiNGIyYjE7XG5cdCAgICBAaW5jbHVkZSBmb250LXNtb290aGluZyhvZmYpO1xuXHQgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9ncmV5LWNhcnQtdHJpYW5nbGUucG5nKTtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHQgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMTVweCkgY2VudGVyO1xuXG5cdCAgfVxuXG5cblxuXHR9XG59XG5cbiN1Yy1jYXJ0LXBhbmUtY291cG9uLFxuI2NvdXBvbi1wYW5le1xuXG5cdHBhZGRpbmc6IDAuNzVlbTtcblxuXHRoM3tkaXNwbGF5Om5vbmV9XG5cblx0LmZvcm0taXRlbXtcblxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG5cdFx0d2lkdGg6IDIxJTtcblxuXG5cdFx0bGFiZWwsIC5kZXNjcmlwdGlvbntcblxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdFx0fVxuXHR9XG5cblx0LmZvcm0tc3VibWl0e1xuXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcblx0XHRtYXJnaW4tdG9wOiAzMHB4O1xuXHR9XG5cblx0QGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDExNzBweCknKSB7XG4gICAgICAuZm9ybS1pdGVte1xuXG5cdCAgXHRkaXNwbGF5OmJsb2NrO1xuXHQgIFx0bGFiZWwsIC5kZXNjcmlwdGlvbntcblxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRtaW4td2lkdGg6IDM1MHB4O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcblxuXHRcdH1cblx0ICB9XG5cblx0ICAuZm9ybS1zdWJtaXR7XG5cblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG5cdFx0bWFyZ2luOiAwcHg7XG5cdCAgfVxuXG5cbiAgICB9XG5cblxuXG59XG5cbiNsb2dpbi1mb3Jte1xuXG5cdG1hcmdpbi10b3A6IDMwcHg7XG5cblxufVxuXG4udWMtY2FydC1jaGVja291dC1mb3Jte1xuXG5cdCNjb3Vwb24tcGFuZXtwYWRkaW5nOiAxLjVlbSAwO31cblx0ZmllbGRzZXQge1xuXHQgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdCAgICBib3JkZXI6IG5vbmU7XG5cdCAgICBwYWRkaW5nOiAxLjVlbSAwO1xuXG5cdCAgICBsZWdlbmR7XG5cblx0XHQgICAgd2lkdGg6MTAwJTtcblx0XHQgICAgZGlzcGxheTpibG9jaztcblxuXHQgICAgfVxuXG5cdCAgICAuZmllbGRzZXQtbGVnZW5ke1xuXG5cdFx0ICAgIGZvbnQtc2l6ZTogZm9udC1zaXplKDM0KTtcblx0XHRcdGNvbG9yOiRibGFjaztcblx0XHRcdGJvcmRlci1ib3R0b206c29saWQgI2VhZWFlYSAycHg7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbToyMHB4O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogNTVweDtcblx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0ICAgIHdpZHRoOjEwMCU7XG5cdFx0ICAgIGRpc3BsYXk6YmxvY2s7XG5cdCAgICB9XG5cblxuXHR9XG5cblxuXHQjY2FydC1wYW5le1xuXG5cdFx0dHJ7YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7fVxuXG5cdFx0dGgucXR5LFxuXHRcdHRoLnByaWNlLFxuXHRcdHRkLnF0eSxcblx0XHR0ZC5wcmljZXt0ZXh0LWFsaWduOiBjZW50ZXI7fVxuXG5cdFx0dGQuc3VidG90YWx7XG5cblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAxMCU7XG5cdFx0XHRoZWlnaHQ6NzVweDtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cblx0XHRcdCNzdWJ0b3RhbC10aXRsZXtcblxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6NjBweDtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXHR9XG5cblxuXG5cdCNkZWxpdmVyeS1wYW5lLCAjYmlsbGluZy1wYW5le1xuXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHdpZHRoOiA0OSU7XG5cdFx0dmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuXG5cdH1cblxuXHQjZGVsaXZlcnktcGFuZXtwYWRkaW5nLXJpZ2h0OjEuNWVtfVxuXG5cdCNxdW90ZSBwcmV7ZGlzcGxheTpub25lO31cblxuXHQudWMtc3RvcmUtYWRkcmVzcy1maWVsZCAuZm9ybS1pdGVtIGxhYmVsIHtcblx0ICAgIGZsb2F0OiBub25lO1xuXHQgICAgcGFkZGluZy1sZWZ0OiAwO1xuXHQgICAgdGV4dC1hbGlnbjogbGVmdDtcblx0fVxuXG5cblxuXHRidXR0b24sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIGlucHV0W3R5cGU9XCJyZXNldFwiXSwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXXtcblx0ICBsaW5lLWhlaWdodDogMjVweDtcblx0ICBib3JkZXI6IDJweCBzb2xpZCAjYjRiMmIxO1xuXHQgIHBhZGRpbmc6IDAuMzVlbSAyZW0gMC4yNWVtIDAuN2VtIDtcblx0ICBjb2xvcjogJHdoaXRlO1xuXHQgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTtcblx0ICBib3JkZXItcmFkaXVzOiAycHg7XG5cdCAgZm9udC1mYW1pbHk6ICRtb250c2VycmF0O1xuXHQgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0ICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjRiMmIxO1xuXHQgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuXHQgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdCAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcblxuXHQgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvd2hpdGUtY2FydC10cmlhbmdsZS5wbmcpO1xuXHQgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdCAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMTVweCkgY2VudGVyO1xuXG5cdCAgJjpob3ZlciB7XG5cdCAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0ICAgIGNvbG9yOiAjYjRiMmIxO1xuXHQgICAgQGluY2x1ZGUgZm9udC1zbW9vdGhpbmcob2ZmKTtcblx0ICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvZ3JleS1jYXJ0LXRyaWFuZ2xlLnBuZyk7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0ICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDE1cHgpIGNlbnRlcjtcblxuXHQgIH1cblxuXG5cblx0fVxuXHQjcXVvdGVzLXBhbmUgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXXtcblx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHR9XG5cblxuXHQjcGF5bWVudC1wYW5lLCAjYmlsbGluZy1hZGRyZXNzLXBhbmV7XG5cblx0XHQubWVzc2FnZXN7ZGlzcGxheTpub25lO31cblxuXG5cdH1cblxuXHQjd2ViZm9ybS1jbGllbnQtZm9ybS05MTMwe1xuXG5cdFx0LmZvcm0tdHlwZS1jaGVja2JveHtcblxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0d2lkdGg6MzMlO1xuXG5cdFx0XHRAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogOTAwcHgpJykge1xuXHRcdCAgICAgICB3aWR0aDo0OSU7XG5cdFx0ICAgIH1cblxuXHRcdFx0QGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDYwMHB4KScpIHtcblx0XHQgICAgICAgZm9udC1zaXplOmZvbnQtc2l6ZSgxMik7XG5cdFx0ICAgIH1cblxuXHRcdH1cblxuXG5cdH1cblxuXHRAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogNTAwcHgpJykge1xuXG5cdFx0I3BheW1lbnQtcGFuZSAjbGluZS1pdGVtcy1kaXZ7XG5cblx0XHRcdGZsb2F0Om5vbmU7XG5cblx0XHRcdHRhYmxle3dpZHRoOjEwMCU7fVxuXG5cdFx0fVxuXG5cdH1cblxufVxuXG4ub3JkZXItcmV2aWV3LXRhYmxle1xuXG5cdG1heC13aWR0aDogMTAwJTtcblx0d2lkdGg6MTAwJTtcblxuXHR0ZHtwYWRkaW5nOjMwcHggMjVweDt9XG5cblx0dGgucXR5LFxuXHR0aC5wcmljZSxcblx0dGQucXR5LFxuXHR0ZC5wcmljZXt0ZXh0LWFsaWduOiBjZW50ZXI7fVxuXG5cdC5wYW5lLXRpdGxlLXJvd3tcblxuXHRcdGZvbnQtZmFtaWx5OiAkbW9udHNlcnJhdDtcblx0XHRmb250LXNpemU6IGZvbnQtc2l6ZSgxNik7XG5cdFx0Y29sb3I6JGJsYWNrO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuXG5cdH1cblxuXHQgLnJldmlldy1idXR0b24tcm93e1xuXG5cdFx0IGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdCB0ZHtwYWRkaW5nOjFlbTt9XG5cdCB9XG5cblx0QGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDUwMHB4KScpIHtcblxuXHRcdC50aXRsZS1jb2x7XG5cblx0XHRcdHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cblx0XHR9XG5cblx0fVxuXG59XG4iLCIvKlxuICogalF1ZXJ5IEZsZXhTbGlkZXIgdjIuNi4wXG4gKiBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vZmxleHNsaWRlci9cbiAqXG4gKiBDb3B5cmlnaHQgMjAxMiBXb29UaGVtZXNcbiAqIEZyZWUgdG8gdXNlIHVuZGVyIHRoZSBHUEx2MiBhbmQgbGF0ZXIgbGljZW5zZS5cbiAqIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMi4wLmh0bWxcbiAqXG4gKiBDb250cmlidXRpbmcgYXV0aG9yOiBUeWxlciBTbWl0aCAoQG1ibXVmZmZpbilcbiAqXG4gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBGT05ULUZBQ0VcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2ZsZXhzbGlkZXItaWNvbic7XG4gIHNyYzogdXJsKCcuLi9mb250cy9mbGV4c2xpZGVyLWljb24uZW90Jyk7XG4gIHNyYzogdXJsKCcuLi9mb250cy9mbGV4c2xpZGVyLWljb24uZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCcuLi9mb250cy9mbGV4c2xpZGVyLWljb24ud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJy4uL2ZvbnRzL2ZsZXhzbGlkZXItaWNvbi50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnLi4vZm9udHMvZmxleHNsaWRlci1pY29uLnN2ZyNmbGV4c2xpZGVyLWljb24nKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogUkVTRVRTXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4uZmxleC1jb250YWluZXIgYTpob3Zlcixcbi5mbGV4LXNsaWRlciBhOmhvdmVyIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5zbGlkZXMsXG4uc2xpZGVzID4gbGksXG5vbC5mbGV4LWNvbnRyb2wtbmF2LFxudWwuZmxleC1kaXJlY3Rpb24tbmF2IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuLmZsZXgtcGF1c2VwbGF5IHNwYW4ge1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBCQVNFIFNUWUxFU1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLmZsZXhzbGlkZXIge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4uZmxleHNsaWRlciAuc2xpZGVzID4gbGkge1xuICBkaXNwbGF5OiBub25lO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi5mbGV4c2xpZGVyIC5zbGlkZXMgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmZsZXhzbGlkZXIgLnNsaWRlczphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXFwwMDIwXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjbGVhcjogYm90aDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBsaW5lLWhlaWdodDogMDtcbiAgaGVpZ2h0OiAwO1xufVxuaHRtbFt4bWxuc10gLmZsZXhzbGlkZXIgLnNsaWRlcyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuKiBodG1sIC5mbGV4c2xpZGVyIC5zbGlkZXMge1xuICBoZWlnaHQ6IDElO1xufVxuLm5vLWpzIC5mbGV4c2xpZGVyIC5zbGlkZXMgPiBsaTpmaXJzdC1jaGlsZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIERFRkFVTFQgVEhFTUVcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi5mbGV4c2xpZGVyIHtcbiAgbWFyZ2luOiAwIDAgNjBweDtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6b29tOiAxO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDRweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAnJyAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAtbW96LWJveC1zaGFkb3c6ICcnIDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIC1vLWJveC1zaGFkb3c6ICcnIDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGJveC1zaGFkb3c6ICcnIDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG4uZmxleHNsaWRlciAuc2xpZGVzIHtcbiAgem9vbTogMTtcbn1cbi5mbGV4c2xpZGVyIC5zbGlkZXMgaW1nIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xufVxuLmZsZXgtdmlld3BvcnQge1xuICBtYXgtaGVpZ2h0OiAyMDAwcHg7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDFzIGVhc2U7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDFzIGVhc2U7XG4gIC1tcy10cmFuc2l0aW9uOiBhbGwgMXMgZWFzZTtcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDFzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAxcyBlYXNlO1xufVxuLmxvYWRpbmcgLmZsZXgtdmlld3BvcnQge1xuICBtYXgtaGVpZ2h0OiAzMDBweDtcbn1cbi5jYXJvdXNlbCBsaSB7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLmZsZXgtZGlyZWN0aW9uLW5hdiB7XG4gICpoZWlnaHQ6IDA7XG4gIEBpbmNsdWRlIG1heCg1MDBweCl7XG5cblx0ICBkaXNwbGF5Om5vbmU7XG5cbiAgfVxufVxuLmZsZXgtZGlyZWN0aW9uLW5hdiBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgbWFyZ2luOiAtMjBweCAwIDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHotaW5kZXg6IDEwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gIHRleHQtc2hhZG93OiAxcHggMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICAtbXMtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbn1cbi5mbGV4LWRpcmVjdGlvbi1uYXYgYTpiZWZvcmUge1xuICBmb250LWZhbWlseTogXCJmbGV4c2xpZGVyLWljb25cIjtcbiAgZm9udC1zaXplOiAzM3B4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbnRlbnQ6ICdcXGYwMDEnO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICB0ZXh0LXNoYWRvdzogMXB4IDFweCAwIHJnYmEoMCwgMCwgMCwgMC4zKTtcbn1cbi5mbGV4LWRpcmVjdGlvbi1uYXYgYS5mbGV4LW5leHQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjAwMic7XG59XG4uZmxleC1kaXJlY3Rpb24tbmF2IC5mbGV4LXByZXYge1xuICBsZWZ0OiAtNTBweDtcbn1cbi5mbGV4LWRpcmVjdGlvbi1uYXYgLmZsZXgtbmV4dCB7XG4gIHJpZ2h0OiAtNTBweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uaGVyby1zbGlkZXNob3c6aG92ZXIgLmZsZXgtZGlyZWN0aW9uLW5hdiAuZmxleC1wcmV2IHtcbiAgb3BhY2l0eTogMC43O1xuICBsZWZ0OiAxMHB4O1xuXG4gIEBpbmNsdWRlIG1pbigyMDAwcHgpe1xuXG5cdCAgbGVmdDoxNSU7XG5cbiAgfVxuXG5cbn1cbi5oZXJvLXNsaWRlc2hvdzpob3ZlciAuZmxleC1kaXJlY3Rpb24tbmF2IC5mbGV4LXByZXY6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLmhlcm8tc2xpZGVzaG93OmhvdmVyIC5mbGV4LWRpcmVjdGlvbi1uYXYgLmZsZXgtbmV4dCB7XG4gIG9wYWNpdHk6IDAuNztcbiAgcmlnaHQ6IDEwcHg7XG4gIEBpbmNsdWRlIG1pbigyMDAwcHgpe1xuXG5cdCAgcmlnaHQ6MTUlO1xuXG4gIH1cbn1cbi5oZXJvLXNsaWRlc2hvdzpob3ZlciAuZmxleC1kaXJlY3Rpb24tbmF2IC5mbGV4LW5leHQ6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLmZsZXgtZGlyZWN0aW9uLW5hdiAuZmxleC1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAhaW1wb3J0YW50O1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgei1pbmRleDogLTE7XG59XG4uZmxleC1wYXVzZXBsYXkgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogNXB4O1xuICBsZWZ0OiAxMHB4O1xuICBvcGFjaXR5OiAwLjg7XG4gIHotaW5kZXg6IDEwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAjMDAwO1xufVxuLmZsZXgtcGF1c2VwbGF5IGE6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IFwiZmxleHNsaWRlci1pY29uXCI7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb250ZW50OiAnXFxmMDA0Jztcbn1cbi5mbGV4LXBhdXNlcGxheSBhOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5mbGV4LXBhdXNlcGxheSBhLmZsZXgtcGxheTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMDAzJztcbn1cbi5mbGV4LWNvbnRyb2wtbmF2IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB6LWluZGV4OiAyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uZmxleC1jb250cm9sLW5hdiBsaSB7XG4gIG1hcmdpbjogMCAxMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHpvb206IDE7XG4gICpkaXNwbGF5OiBpbmxpbmU7XG59XG4uZmxleC1jb250cm9sLXBhZ2luZyBsaSBhIHtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZmxleC1jb250cm9sLXBhZ2luZyBsaSBhOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBAaW5jbHVkZSB0cmlhbmdsZSgxNXB4LCAkd2hpdGUsIGRvd24tcmlnaHQpO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMgZWFzZTtcbn1cbi5mbGV4LWNvbnRyb2wtcGFnaW5nIGxpIGE6aG92ZXI6YWZ0ZXIge1xuICBAaW5jbHVkZSB0cmlhbmdsZSgxNXB4LCAkbGlnaHQtZ3JheSwgZG93bi1yaWdodCk7XG59XG4uZmxleC1jb250cm9sLXBhZ2luZyBsaSBhLmZsZXgtYWN0aXZlOmFmdGVyIHtcbiAgQGluY2x1ZGUgdHJpYW5nbGUoMTVweCwgJHJpdC1vcmFuZ2UsIGRvd24tcmlnaHQpO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4uZmxleC1jb250cm9sLXRodW1icyB7XG4gIG1hcmdpbjogNXB4IDAgMDtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5mbGV4LWNvbnRyb2wtdGh1bWJzIGxpIHtcbiAgd2lkdGg6IDI1JTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMDtcbn1cbi5mbGV4LWNvbnRyb2wtdGh1bWJzIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvcGFjaXR5OiAuNztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAxcyBlYXNlO1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAxcyBlYXNlO1xuICAtbXMtdHJhbnNpdGlvbjogYWxsIDFzIGVhc2U7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAxcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMXMgZWFzZTtcbn1cbi5mbGV4LWNvbnRyb2wtdGh1bWJzIGltZzpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4uZmxleC1jb250cm9sLXRodW1icyAuZmxleC1hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogUkVTUE9OU0lWRVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODYwcHgpIHtcbiAgLmZsZXgtZGlyZWN0aW9uLW5hdiAuZmxleC1wcmV2IHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGxlZnQ6IDEwcHg7XG4gIH1cbiAgLmZsZXgtZGlyZWN0aW9uLW5hdiAuZmxleC1uZXh0IHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHJpZ2h0OiAxMHB4O1xuICB9XG59XG4iLCIuaGVyby1zbGlkZXNob3cge1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICB1bC5mbGV4LWRpcmVjdGlvbi1uYXZ7XG5cblx0Lypwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0aGVpZ2h0OiAxMDAlO1xuXHR3aWR0aDogMTAwJTsqL1xuXG4gIH1cblxuICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoMjAwMHB4KTtcbiAgQGluY2x1ZGUgbWF4KDU1OXB4KSB7XG4gICAgYmFja2dyb3VuZDogIzAwMDtcbiAgfVxuXG4gIC5zbGlkZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8qLnZpZXdzLWZpZWxkLXRpdGxlLTEge1xuICAgIHNwYW4ge1xuICAgICAgcGFkZGluZzogMWVtO1xuICAgICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgQGluY2x1ZGUgbWluKDY2MHB4KSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtcm93KCk7XG4gICAgICAgIHBhZGRpbmc6IDFlbTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogaW5pdGlhbDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfSovXG5cbiAgLnZpZXdzLWZpZWxkLXRpdGxlLTEge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdG9wOiAyMCU7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBmb250LXNpemU6IDM2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgcGFkZGluZy1yaWdodDogLjVlbTtcbiAgICB0ZXh0LXNoYWRvdzogMXB4IDJweCByZ2JhKDAsMCwwLDAuNCk7XG4gICAgd2lkdGg6MzIlO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcblxuICAgIGRpdiB7XG4gICAgICBAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogMTE2MHB4KScpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDk2MHB4KScpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXHRAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogMTc4NXB4KScpIHtcbiAgICAgIGZvbnQtc2l6ZTogZm9udC1zaXplKDI4KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDE2MzVweCknKSB7XG4gICAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgyNCk7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiAxMTUwcHgpJykge1xuICAgICAgZm9udC1zaXplOiBmb250LXNpemUoMjApO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogMTAwMHB4KScpIHtcbiAgICAgIHdpZHRoOjUwJTtcbiAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgfVxuICAgIEBpbmNsdWRlIG1xKCcobWF4LXdpZHRoOiA3NTBweCknKSB7XG4gICAgICBmb250LXNpemU6IDFlbTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDU1MHB4KScpIHtcbiAgICAgIGZvbnQtc2l6ZTogLjllbTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWF4KDQ3OXB4KSB7XG4gICAgICBmb250LXNpemU6IC43ZW07XG4gICAgICBsZWZ0OiA0NyU7XG4gICAgICB0b3A6IDEwJTtcbiAgICB9XG4gIH1cblxuICAuYmx1cmIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdG9wOiA0NCU7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIHdpZHRoOiAyM2VtO1xuICAgIHRleHQtc2hhZG93OiAxcHggMnB4IHJnYmEoMCwwLDAsMC40KTtcblxuXHRAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogMTYzNXB4KScpIHtcbiAgICAgICB0b3A6IDU2JTtcbiAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogOTYwcHgpJykge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtcSgnKG1pbi13aWR0aDogOTYxcHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpJykge1xuICAgICAgdG9wOiA0OCVcbiAgICB9XG4gIH1cblxuICAucmVhZC1tb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRvcDogNjclO1xuICAgIGZvbnQtc2l6ZTogMS4xNWVtO1xuXG4gICAgYSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiAuOWVtO1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMCA5cHggcmdiYSgwLDAsMCwwLjMpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1xKCcobWluLXdpZHRoOiA5NjFweCknKSB7XG4gICAgICB0b3A6IDg1JTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtcSgnKG1pbi13aWR0aDogMTAyNHB4KScpIHtcbiAgICAgIHRvcDogNzclO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1xKCcobWluLXdpZHRoOiAxMjUwcHgpJykge1xuICAgICAgdG9wOiA3MiU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWF4KDg4MHB4KSB7XG4gICAgICB0b3A6IGluaXRpYWw7XG4gICAgICBib3R0b206IDEzJTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtYXgoNDc5cHgpIHtcbiAgICAgIGxlZnQ6IDQ1JTtcbiAgICB9XG4gICAgZGlzcGxheTpub25lO1xuICB9XG5cbiAgLmJ1eS1tb3Jle1xuXG5cdCAgLyptYXJnaW4tbGVmdDogMTcwcHg7Ki9cblx0ICBkaXNwbGF5OiBibG9jaztcblx0ICBAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogOTAwcHgpJykge1xuICAgICAgXHRkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblx0ICBAaW5jbHVkZSBtYXgoNTI1cHgpIHtcblx0ICAgICAgZGlzcGxheTpub25lO1xuXHQgICAgfVxuICB9XG5cblxuXG5cblxuXG59XG4iLCIjbW9iaWxlLW1lbnUge1xuICB3aWR0aDogMjkwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM0QoLTI5MHB4LCAwLCAwKTtcbiAgQGluY2x1ZGUgcG9zaXRpb24oZml4ZWQsIDUycHggaW5pdGlhbCBpbml0aWFsIDApO1xuICB6LWluZGV4OiAxMDAwO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNTJweCk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICBib2R5LmFkbWluaW1hbC1mcm9udGVuZCAmIHtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNTJweCk7XG4gICAgdG9wOiA1MnB4O1xuICB9XG5cbiAgdWwge1xuICAgIEBpbmNsdWRlIHplcm87XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxuXG4gIGxpIHtcbiAgICBAaW5jbHVkZSB6ZXJvO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAmLmxlYWYge1xuICAgICAgJi5hY3RpdmV7XG4gICAgICAgIGJhY2tncm91bmQ6ICNjY2M7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICAmLmFjdGl2ZS10cmFpbCB7XG4gICAgICAmID4gdWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWVudS1uYW1lLW1haW4tbWVudSBsaSB7XG5cbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYztcbiAgICAmLmV4cGFuZGVke1xuICAgIH1cbiAgICAmLmZpcnN0e1xuICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nOiAxOXB4IDEwcHggMTYuNXB4IDEwcHg7XG4gICAgY29sb3I6ICRkYXJrLWdyYXk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4O1xuICAgIHBhZGRpbmctbGVmdDoxOXB4O1xuXG4gIH1cbiAgbGkubGFzdCBhIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICB9XG4gIGxpLmhhcy1kcm9wZG93biA+IGE6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IHVybCgnLi4vaW1nL2Rvd24tYXJyb3cucG5nJyk7XG4gICAgZm9udC1zaXplOiAxNHB4LzE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1mYW1pbHk6ICRoZWx2ZXRpY2E7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBjb2xvcjogJG1lZGl1bS1ncmF5O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IGF1dG8gMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMjBweDtcbiAgfVxuXG5cblxuICBsaS5oYXMtZHJvcGRvd24gPiBhLm9wZW5lZDphZnRlciB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgIHJpZ2h0OiAxNXB4O1xuXG4gIH1cblxuICAubWVudS1uYW1lLW1lbnUtcXVpY2stbGlua3Mge1xuICAgIGxpOm50aC1vZi10eXBlKDIpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy9TZWNvbmQgbGV2ZWwgbmF2XG4gIHVsIHVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgbGkge1xuICAgICAgYmFja2dyb3VuZDogI2VhZWFlYjtcbiAgICAgIGF7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxOHB4O1xuICAgICAgfVxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjY2NjO1xuICAgICAgfVxuICAgICAgJi5oYXMtZHJvcGRvd257XG4gICAgICAgIGJhY2tncm91bmQ6ICNlYWVhZWIgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gICAgYSB7XG4gICAgICBjb2xvcjogJGRhcmstZ3JheTtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgICAgcGFkZGluZy10b3A6IDE5cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAzMnB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDE3cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuXG4gICAgfVxuICB9XG4gIC8vVGhpcmQgbGV2ZWwgbmF2XG4gIHVsIHVsIHVse1xuICAgIGxpe1xuICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICBhe1xuICAgICAgICBtYXJnaW4tbGVmdDogMzZweDtcbiAgICAgIH1cbiAgICAgICYuZmlyc3R7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGNkY2RjICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmJvZHkge1xuXG5cbiAgJi5tb2JpbGUtb3V0IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgI21vYmlsZS1tZW51IHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gICAgfVxuICB9XG59XG5cbmJvZHk6YWZ0ZXIsICNtb2JpbGUtbWVudSwgI2lkYmFyLW1lbnUtb3ZlcmxheSB7XG4gIEBpbmNsdWRlIG1pbigoJG1vYmlsZS1icmVhayArIDEpKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlLWluLW91dDtcbn1cblxuXG5cblxuLyojbW9iaWxlLW1lbnUge1xuICB3aWR0aDogMjc1cHg7XG4gIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUzRCgtMjc1cHgsIDAsIDApKTtcbiAgQGluY2x1ZGUgcG9zaXRpb24oZml4ZWQsIDUycHggaW5pdGlhbCBpbml0aWFsIDApO1xuICB6LWluZGV4OiAxMDAwO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNTJweCk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICBib2R5LmFkbWluaW1hbC1mcm9udGVuZCAmIHtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNTJweCk7XG4gICAgdG9wOiA1MnB4O1xuICB9XG5cbiAgdWwge1xuICAgIEBpbmNsdWRlIHplcm87XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxuXG4gIGxpIHtcbiAgICBAaW5jbHVkZSB6ZXJvO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICYuYWN0aXZlLXRyYWlsIHtcbiAgICAgIHVsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICAmID4gYSB7XG4vLyAgICAgICAgY29sb3I6ICR3aGl0ZTtcbi8vICAgICAgICBiYWNrZ3JvdW5kOiAkcml0LW9yYW5nZTtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VhZWFlYTtcbiAgICAgIH1cbiAgICAgICYuaGFzLWRyb3Bkb3duID4gYTphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoMGRlZykpO1xuLy8gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1lbnUtbmFtZS1tYWluLW1lbnUgbGkge1xuICAgIGJvcmRlci10b3A6IDA7XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nOiAxOXB4IDEwcHggMTYuNXB4IDEwcHg7XG4gICAgY29sb3I6ICRkYXJrLWdyYXk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWFlYWVhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1XG4gIH1cbiAgbGkubGFzdCBhIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICB9XG5cbiAgbGkubGFzdCBsaSBhIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VhZWFlYTtcbiAgfVxuXG4gIGxpLmhhcy1kcm9wZG93biA+IGE6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiw5dcIjtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtZmFtaWx5OiAkaGVsdmV0aWNhO1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiBhdXRvIDA7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgtNDVkZWcpKTtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAyMDBtcyBlYXNlKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDEwcHg7XG4gIH1cblxuICBsaS5oYXMtZHJvcGRvd24gPiBhLm9wZW46YWZ0ZXIge1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoMGRlZykpO1xuICB9XG5cbiAgLm1lbnUtbmFtZS1tZW51LXF1aWNrLWxpbmtzIHtcbiAgICBsaTpudGgtb2YtdHlwZSgxKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG5cbiAgdWwgdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBsaSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiAgICAgIEBpbmNsdWRlIHBscigyMHB4KTtcbiAgICB9XG4gICAgYSB7XG4gICAgICBjb2xvcjogJGRhcmstZ3JheTtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgICAgcGFkZGluZy10b3A6IDE5cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDE3cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkcml0LW9yYW5nZTtcblxuLy8gICAgICAgICY6YWZ0ZXIge1xuLy8gICAgICAgICAgY29udGVudDogXCJcIjtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKDEycHgsICR3aGl0ZSwgcmlnaHQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgMTBweCAwIGluaXRpYWwpO1xuLy8gICAgICAgICAgbWFyZ2luOiBhdXRvIDA7XG4vLyAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5ib2R5IHtcblx0d2lkdGg6MTAwJTtcblx0bWF4LXdpZHRoOiAxMDAlO1xuICAmOmFmdGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY29udGVudDogXCJcIjtcblxuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogOTk5O1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCkpO1xuICB9XG5cbiAgJi5tb2JpbGUtb3V0IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgI21vYmlsZS1tZW51IHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUzZCgwLDAsMCkpO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZTNkKDAsMCwwKSk7XG4gICAgfVxuICB9XG59XG5cbmJvZHk6YWZ0ZXIsICNtb2JpbGUtbWVudSB7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMjUwbXMgZWFzZS1pbi1vdXQpO1xufSovXG4iLCIjbWFpbi1tZW51LS1oZWFkZXIge1xuXG4gICNibG9jay1tZW51LWJsb2NrLTF7cG9zaXRpb246cmVsYXRpdmU7fVxuICB1bCB7XG4gICAgcGFkZGluZy10b3A6IDAuOWVtO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHotaW5kZXg6IDEwMDtcbiAgfVxuICBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC8qcG9zaXRpb246IHJlbGF0aXZlOyovXG4gICAgQGluY2x1ZGUgemVybztcbiAgICBwYWRkaW5nOiAwIGZvbnQtc2l6ZSgyOCkgNDRweDtcbiAgICB0cmFuc2l0aW9uOiBwYWRkaW5nIDUwMG1zIGVhc2U7XG5cbiAgICBAaW5jbHVkZSBtYXgoMTEwMHB4KSB7XG4gICAgICBAaW5jbHVkZSBwbHIoLjc1ZW0pO1xuXG4gICAgfVxuXG4gICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkaGVsdmV0aWNhO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgY29sb3I6ICMwMDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNTFweDtcbiAgICAgIHRyYW5zaXRpb246IHBhZGRpbmcgNTAwbXMgZWFzZTtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwLjJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206Zm9udC1zaXplKDMpO1xuICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItYm90dG9tLWNvbG9yIDIwMG1zIGVhc2U7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFjdGl2ZS10cmFpbCBhIHNwYW4sICY6aG92ZXIgYSBzcGFuIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRyaXQtb3JhbmdlO1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDgxcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAkb2ZmLXdoaXRlO1xuICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgcGFkZGluZy10b3A6IDA7XG5cbiAgICAgIC5zaHJ1bmstaGVhZGVyMiAme1xuXG5cdCAgICAgIHRvcDo2MnB4O1xuXG4gICAgICB9XG5cbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDAgMi41ZW07XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGNvbG9yOiAkbWVkaXVtLWdyYXk7XG5cbiAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmlhbmdsZSgxMnB4LCAjZGZkZmRlLCBkb3duLXJpZ2h0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIDAgMCBpbml0aWFsKTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0byAyLjVlbTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgQGluY2x1ZGUgcHRiKDAuOGVtKVxuICAgICAgICAgICAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAjZGZkZmRlO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2RmZGZkZTtcbiAgICAgICAgICBjb2xvcjogJG1lZGl1bS1ncmF5O1xuICAgICAgICAgIGE6YWZ0ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJG1lZGl1bS1ncmF5O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJiArIGxpIGEgc3BhbiB7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmFjdGl2ZSBhIHtcbiAgICAgICAgICBjb2xvcjogJHJpdC1vcmFuZ2U7XG4gICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcml0LW9yYW5nZTtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHJpdC1vcmFuZ2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpmaXJzdC1vZi10eXBlIGEgc3BhbiB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIgdWwge1xuXG5cdCAgdHJhbnNpdGlvbjogZGlzcGxheSAuM3MgZWFzZS1pbi1vdXQ7XG5cdCAgLW1vei10cmFuc2l0aW9uOiBkaXNwbGF5IC4zcyBlYXNlLWluLW91dDtcblx0ICAtd2Via2l0LXRyYW5zaXRpb246IGRpc3BsYXkgLjNzIGVhc2UtaW4tb3V0O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgbGkubWVudS1tbGlkLTQ1MjV7XG5cblx0ICB1bHtcblx0XHQgIG1heC13aWR0aDokZnVsbC13aWR0aDtcblx0XHQgIHdpZHRoOjEwMCU7XG5cdFx0ICByaWdodDowO1xuXHRcdCAgaGVpZ2h0OiBhdXRvO1xuXG5cblx0XHQgIGxpe1xuXG5cdFx0XHQgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdCAgZmxvYXQ6IGxlZnQ7XG5cdFx0XHQgIHdpZHRoOiAzMy4zJTtcblxuXHRcdCAgfVxuXHQgIH1cblxuICB9XG59XG4iLCIucHJvZHVjdHtcblxuXHRwYWRkaW5nOjUwcHggMCAyMHB4O1xuXG5cdC5wcm9kdWN0LXRlYXNlcntcblxuXHRcdHdpZHRoOjM4JTtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG5cdFx0bWFyZ2luLXJpZ2h0OiA2NXB4O1xuXHRcdGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcblxuXHRcdC5wcm9kdWN0LXRpdGxlIGF7XG5cblx0XHRcdGZvbnQtc2l6ZTozNHB4O1xuXHRcdFx0Y29sb3I6IzAwMDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXG5cdFx0XHQmOmJlZm9yZSB7XG5cblx0XHRcdFx0ZGlzcGxheTpub25lO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQucHJvZHVjdC1zdWJ0aXRsZXtmb250LXNpemU6IDEuNWVtO31cblxuXHRcdHByb2R1Y3QtdGhpcmR0aXRsZXt9XG5cblx0XHQucHJvZHVjdC1hdXRob3IsXG5cdFx0LnByb2R1Y3QtZWRpdG9ye1xuXHRcdFx0Zm9udC1mYW1pbHk6IGhlbHZldGljYTtcblx0XHRcdGNvbG9yOiM2NzY3Njc7XG5cdFx0XHRmb250LXNpemU6Zm9udC1zaXplKDE0KTtcblx0XHR9XG5cblx0XHQucHJvZHVjdC1kZXNjcmlwdGlvbntcblx0XHRcdG1hcmdpbi10b3A6IDQ1cHg7XG5cdFx0XHRjb2xvcjojNjY2NzY2O1xuXHRcdFx0Zm9udC1zaXplOmZvbnQtc2l6ZSgxNik7XG5cblxuXHRcdH1cblxuXHR9XG5cblx0LnNsaWNrVUN7XG5cblx0XHR3aWR0aDoyMSU7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0bWFyZ2luLXJpZ2h0OiA0NXB4O1xuXHRcdHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0YTpiZWZvcmV7ZGlzcGxheTpub25lO31cblx0XHQuc2xpY2stc2xpZGV7XG5cblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdGE6YmVmb3Jle2Rpc3BsYXk6bm9uZTt9XG5cdFx0XHRpbWd7XG5cblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnNsaWNrLWRvdHMge1xuXG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRsaSB7XG5cdFx0ICAgICAgYnV0dG9uOmJlZm9yZSB7XG5cdFx0ICAgICAgICBib3JkZXI6bm9uZTtcblx0XHQgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvZG90X29mZi5wbmcpO1xuXHRcdCAgICAgIH1cblx0XHQgICAgICAmLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlIHtcblx0XHQgICAgICAgIGJvcmRlcjpub25lO1xuXG5cdFx0ICAgICAgfVxuXG5cdFx0ICAgICAgYnV0dG9ue1xuXG5cdFx0XHQgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2RvdF9vZmYucG5nKTtcblx0XHRcdCAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG5cdFx0XHQgICAgICBoZWlnaHQ6MTJweDtcblx0XHRcdCAgICAgIHdpZHRoOjEycHg7XG5cdFx0ICAgICAgfVxuXG5cdFx0ICAgICAgJi5zbGljay1hY3RpdmUgYnV0dG9ue1xuXG5cdFx0XHQgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2RvdF9vbi5wbmcpO1xuXG5cdFx0ICAgICAgfVxuXG5cdFx0ICAgIH1cblx0XHR9XG5cblxuXHR9XG5cblx0LnByb2R1Y3QtZXh0cmFze1xuXG5cdFx0d2lkdGg6MzAlO1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcblx0XHRmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG5cdFx0QGluY2x1ZGUgbXEoJyhtYXgtd2lkdGg6IDExMTBweCknKSB7XG5cdCAgICAgIHdpZHRoOjIwJTtcblx0ICAgIH1cblx0XHQucHJvZHVjdC10ZXJtc3tcblxuXG5cdFx0XHRmb250LXNpemU6Zm9udC1zaXplKDE0KTtcblx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblxuXHRcdFx0YXtcblx0XHRcdFx0Y29sb3I6JHJpdC1vcmFuZ2U7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAxMnB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5wcm9kdWN0LXNoYXJle1xuXG5cdFx0XHRwYWRkaW5nLXRvcDogNXB4O1xuXG5cdFx0XHQuZXh0cmEtbGFiZWx7XG5cblx0XHRcdFx0bWFyZ2luLXJpZ2h0OjIwcHg7XG5cblx0XHRcdH1cblxuXHRcdFx0LnNvY2lhbHtcblxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdFx0XHRcdGhlaWdodDoyMnB4O1xuXG5cdFx0XHRcdCY6YmVmb3Jle2Rpc3BsYXk6bm9uZTt9XG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdC5wcm9kdWN0LXByaWNlLXRhZ3tcblxuXHRcdFx0Zm9udC1zaXplOmZvbnQtc2l6ZSgyMCk7XG5cdFx0XHRjb2xvcjokYmxhY2s7XG5cblx0XHR9XG5cblx0XHQuc3RyaWtlLXByaWNle1xuXG5cdFx0XHRmb250LXNpemU6Zm9udC1zaXplKDIwKTtcblx0XHRcdGNvbG9yOiM2NjY3NjY7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDVweDtcblx0XHR9XG5cblx0XHQuZXh0cmEtbGFiZWwsXG5cdFx0LmFkZC10by1jYXJ0IGxhYmVse1xuXG5cdFx0XHRmb250LWZhbWlseTpcImhlbHZldGljYVwiO1xuXHRcdFx0Y29sb3I6IzY3Njc2Nztcblx0XHRcdGZvbnQtc2l6ZTpmb250LXNpemUoMTQpO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblxuXG5cdFx0fVxuXG5cdFx0LnByb2R1Y3QtcHJpY2V7XG5cblx0XHRcdHBhZGRpbmctdG9wOjEwcHg7XG5cblx0XHR9XG5cblx0XHQuYWRkLXRvLWNhcnR7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdFx0LmZvcm0taXRlbXtwYWRkaW5nOjIwcHggMDt9XG5cblx0XHRcdGlucHV0W3R5cGU9XCJ0ZXh0XCJde1xuXG5cdFx0XHRcdHdpZHRoOjUzcHg7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuXHRcdFx0fVxuXG5cdFx0XHRsYWJlbHtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0fVxuXG5cdFx0XHRpbnB1dFt0eXBlPVwic3VibWl0XCJde1xuXG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0XHRcdGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcblx0XHRcdFx0Zm9udC1zaXplOmZvbnQtc2l6ZSgyMik7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0XHRcdHBhZGRpbmc6IDAuNzVlbSAyZW07XG5cblx0XHRcdH1cblxuXHRcdH1cblx0fVxuXG5cblx0LnByb2R1Y3QtZGV0YWlscy1zZWN0aW9ue1xuXG5cblxuXHRcdC5wcm9kdWN0LWRlc2NyaXB0aW9ue1xuXG5cdFx0XHRAZXh0ZW5kIC5ncmV5aGVsMTY7XG5cdFx0XHRmb250LXNpemU6IGZvbnQtc2l6ZSgxNCk7XG5cblx0XHRcdHN0cm9uZ3tcblxuXHRcdFx0XHRAZXh0ZW5kIC5ibGFja215cmlhZDIwO1xuXHRcdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0fVxuXHRcdH1cblxuXG5cdFx0LnByb2R1Y3QtZGV0YWlsc3tcblxuXHRcdFx0QGV4dGVuZCAuZ3JleWhlbDE2O1xuXHRcdFx0Zm9udC1zaXplOiBmb250LXNpemUoMTQpO1xuXG5cdFx0XHRsaW5lLWhlaWdodDogZm9udC1zaXplKDI4KTtcblx0XHRcdGg0e1xuXG5cdFx0XHRcdGZvbnQtZmFtaWx5OiAkbW9udHNlcnJhdDtcblx0XHRcdFx0Y29sb3I6IzAwMDtcblx0XHRcdFx0Zm9udC1zaXplOiBmb250LXNpemUoMTYpO1xuXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0LmRldGFpbC1idXR0b257XG5cblx0XHRcdC1tb3otYXBwZWFyYW5jZTogbm9uZTtcblx0XHQgICAgYmFja2dyb3VuZC1jb2xvcjogI2YzNmUyMTtcblx0XHQgICAgYm9yZGVyOiBtZWRpdW0gbm9uZTtcblx0XHQgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuXHRcdCAgICBjb2xvcjogI2ZmZjtcblx0XHQgICAgY3Vyc29yOiBwb2ludGVyO1xuXHRcdCAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0ICAgIGxpbmUtaGVpZ2h0OiAxO1xuXHRcdCAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuXHRcdCAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0ICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0ICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0ICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0ICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcblx0XHQgICAgZm9udC1zaXplOiAxLjM3NWVtO1xuXHRcdCAgICBmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdCAgICBwYWRkaW5nOiAwLjc1ZW0gMmVtO1xuXHRcdCAgICBtYXJnaW4tdG9wOiA0MHB4O1xuXG5cdFx0fVxuXG5cblx0fVxuXG5cdC5yZWxhdGVkLXByb2R1Y3RzIGgxIHtcblx0ICAgIGZvbnQtc2l6ZTogMi4xMjVlbTtcblx0ICAgIGNvbG9yOiAjMDAwO1xuXHQgICAgYm9yZGVyLWJvdHRvbTogc29saWQgI2VhZWFlYSAycHg7XG5cdCAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcblx0ICAgIG1hcmdpbi1ib3R0b206IDU1cHg7XG5cdCAgICBmb250LXdlaWdodDogbm9ybWFsO1xuXHR9XG5cblxuXHRAaW5jbHVkZSBtcSgnKG1heC13aWR0aDogODc1cHgpJykge1xuXHQgIC5wcm9kdWN0LXRlYXNlcixcblx0ICAuc2xpY2tVQyxcblx0ICAucHJvZHVjdC1leHRyYXN7XG5cblx0XHQgIHdpZHRoOjEwMCU7XG5cblx0ICB9XG5cblx0ICAucHJvZHVjdC10ZWFzZXJ7XG5cblx0XHQgIG1heC13aWR0aDogNDAwcHg7XG5cdFx0ICBtYXJnaW46IDIwcHggYXV0bztcblx0XHQgIGRpc3BsYXk6IGJsb2NrO1xuXG5cdCAgfVxuXG5cdH1cblxufVxuIiwiLnBhZ2UtbmV3c3tcblxuXHQubm9kZS1uZXdze1xuXHRcdHBhZGRpbmc6NTBweCAwIDA7XG5cblx0XHQubmV3cy1pbWFnZXtcblxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0d2lkdGg6IDIwJTtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcblxuXHRcdH1cblxuXHRcdC5uZXdzLWJvZHl7XG5cblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHdpZHRoOiA3OCU7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG5cblx0XHR9XG5cblx0XHRoMntcblx0XHRcdGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcblx0XHRcdGZvbnQtc2l6ZTozNHB4O1xuXHRcdFx0Y29sb3I6IzAwMDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHR9XG5cblx0XHQuZmllbGQtbmFtZS1ib2R5e1xuXG5cdFx0XHRjb2xvcjojNjY2NzY2O1xuXHRcdFx0Zm9udC1zaXplOmZvbnQtc2l6ZSgxNik7XG5cdFx0XHRtYXJnaW46IDAgMCAxLjI1ZW07XG5cdFx0XHRtaW4taGVpZ2h0OjExMHB4O1xuXG5cdFx0XHQuZmllbGQtZmllbGQtdGVhc2Vye1xuXG5cdFx0XHRcdG1hcmdpbjogMCAwIDEuMjVlbTtcblxuXHRcdFx0fVxuXG5cdFx0XHRhe1xuXG5cdFx0XHRcdGRpc3BsYXk6aW5saW5lO1xuXHRcdFx0XHR3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuXHRcdFx0fVxuXG5cdFx0fVxuXHR9XG59XG4iLCIucGFnZS1zZWFyY2gge1xuICBtYWluIHtcbiAgICBwYWRkaW5nLXRvcDogMjVweDtcbiAgfVxuXG4gICNzZWFyY2gtZm9ybSB7XG4gICAgYmFja2dyb3VuZDogJHNtb2tlO1xuICAgIHBhZGRpbmc6IDM1cHggMjVweDtcbiAgICBAaW5jbHVkZSBtaW4oJG1vYmlsZS1icmVhaykge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1heCgkbW9iaWxlLWJyZWFrKSB7XG4gICAgICBkaXNwbGF5Om5vbmU7XG4gICAgfVxuXG4gICAgbGFiZWwge1xuICAgICAgbWFyZ2luOiAwIDAgMjBweCAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgZm9udC1mYW1pbHk6ICRoZWx2ZXRpY2E7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBjb2xvcjogIzY3Njg2NztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjNlbTtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICAgIGZvbnQtZmFtaWx5OiAkbW9udHNlcnJhdDtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBjb2xvcjogJHJpdC1vcmFuZ2U7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgYm9yZGVyOiAycHggc29saWQgI2YzNmUyMTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDUwMG1zIGVhc2U7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcml0LW9yYW5nZTtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VhcmNoLWFkdmFuY2VkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciB7XG5cbiAgXHRtYXJnaW4tYm90dG9tOiBmb250LXNpemUoMjApO1xuXG4gICAgQGluY2x1ZGUgbWluKCRtb2JpbGUtYnJlYWspIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg4KTtcbiAgICAgIEBpbmNsdWRlIHNoaWZ0KDEpO1xuICAgIH1cblxuICAgIGgzIHtcbiAgICAgIG1hcmdpbjogMCAwIDIwcHggMDtcbiAgICAgIHBhZGRpbmc6IDIwcHggMTBweCAyMHB4IDA7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LWZhbWlseTogJG1vbnRzZXJyYXQ7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgY29sb3I6ICMyZDJkMmQ7XG4gICAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggI2JlYmViZSBzb2xpZDtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAyMHB4IDEwcHggMjBweCAwO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1mYW1pbHk6ICRtb250c2VycmF0O1xuICAgICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIHAuc2VhcmNoLXNuaXBwZXQge1xuICAgICAgY29sb3I6ICM4ODg7XG4gICAgICBmb250LXNpemU6IDAuOGVtO1xuICAgIH1cbiAgfVxuXG59XG5cbi5xdWljay1zZWFyY2ggLnNlYXJjaC1mb3JtLFxubWFpbiAuc2VhcmNoLWZvcm17XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0aGVpZ2h0OmF1dG87XG5cblx0JiA+IGRpdiA+IHNwYW57IGRpc3BsYXk6bm9uZTt9XG5cblx0c3Bhbi51aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGV7XG5cblx0XHRkaXNwbGF5Om5vbmU7XG5cblx0fVxuXG5cdHVsI3VpLWlkLTEudWktYXV0b2NvbXBsZXRlLnVpLWZyb250LnVpLW1lbnUudWktd2lkZ2V0LnVpLXdpZGdldC1jb250ZW50LnVpLWNvcm5lci1hbGwsXG5cdHVsI3VpLWlkLTIudWktYXV0b2NvbXBsZXRlLnVpLWZyb250LnVpLW1lbnUudWktd2lkZ2V0LnVpLXdpZGdldC1jb250ZW50LnVpLWNvcm5lci1hbGwsXG5cdHVsI3VpLWlkLTMudWktYXV0b2NvbXBsZXRlLnVpLWZyb250LnVpLW1lbnUudWktd2lkZ2V0LnVpLXdpZGdldC1jb250ZW50LnVpLWNvcm5lci1hbGx7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdGhlaWdodDphdXRvO1xuXHRcdG92ZXJmbG93OiBzY3JvbGw7XG5cdFx0Ym9yZGVyOnNvbGlkICRyaXQtb3JhbmdlIDFweDtcblx0XHR3aWR0aDozNDBweCAhaW1wb3J0YW50O1xuXHRcdG1pbi13aWR0aDozNDBweCAhaW1wb3J0YW50O1xuXHRcdG1heC1oZWlnaHQ6IDMwMHB4O1xuXHRcdGF7XG5cblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0d2lkdGg6MzAzcHg7XG5cblx0XHRcdCY6YmVmb3Jle1xuXG5cdFx0XHRcdGRpc3BsYXk6bm9uZTtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdH1cblxuXHQudWktYXV0b2NvbXBsZXRlLWZpZWxkLWdyb3VwLFxuXHQudWktYXV0b2NvbXBsZXRlLWZpZWxkLW5hbWV7ZGlzcGxheTpub25lO31cblxuXG59XG4iLCIuc2VydmVyLWVycm9yLXBhZ2Uge1xuICBoMSB7XG4gICAgZm9udC1zaXplOiAxNTBweDtcbiAgICBjb2xvcjogJGxpZ2h0LWdyYXk7XG4gICAgcGFkZGluZy10b3A6IDEyNXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA3NXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMTIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDE4NHB4O1xufSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FFQUEsNEVBQTRFO0FBRTVFO2dGQUNnRjtBQUVoRjs7OztHQUlHO0FBRUgsQUFBQSxJQUFJLENBQUM7RUFDSCxXQUFXLEVBQUUsSUFBSTtFQUFHLE9BQU87RUFDM0Isb0JBQW9CLEVBQUUsSUFBSTtFQUFHLE9BQU87RUFDcEMsd0JBQXdCLEVBQUUsSUFBSTtFQUFHLE9BQU8sRUFDekM7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOztHQUVHO0FBRUgsQUFBQSxJQUFJLENBQUM7RUFDSCxNQUFNLEVBQUUsQ0FBQyxHQUNWOztBQUVEOztHQUVHO0FBRUgsQUFBQSxPQUFPO0FBQ1AsQUFBQSxLQUFLO0FBQ0wsQUFBQSxNQUFNO0FBQ04sQUFBQSxNQUFNO0FBQ04sQUFBQSxHQUFHO0FBQ0gsQUFBQSxPQUFPLENBQUM7RUFDTixPQUFPLEVB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 */
