@charset "UTF-8";
/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
 * Remove default margin.
 */
body {
  margin: 0; }

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block; }

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none; }

/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent; }

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0; }

/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold; }

/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic; }

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%; }

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
  border: 0; }

/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden; }

/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px; }

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  height: 0; }

/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto; }

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible; }

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none; }

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default; }

/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
  line-height: normal; }

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  /* 2 */
  box-sizing: content-box; }

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto; }

/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold; }

/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0; }

/* @function map-deep-get($map, $keys...) {
  @each $key in $keys {
    $map: map-get($map, $key);
  }

  @return $map;
} */
html {
  box-sizing: border-box;
  color: #222;
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1em;
  line-height: 1.4; }

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

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh; }

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  text-rendering: optimizeLegibility; }

p {
  margin: 1em 0; }

ul,
ol {
  margin: 1em 0;
  padding-left: 1em; }

dl {
  margin: 1em 0; }
  dl dt {
    font-weight: bold;
    margin-top: .5em; }
  dl dd {
    margin: 0; }

a {
  transition: color 200ms linear; }

hr {
  border: 0;
  border-top: 1px solid gray;
  display: block;
  height: 1px;
  margin: 1em 0;
  padding: 0; }

img {
  max-width: 100%; }

audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle; }

code,
kbd,
pre,
samp {
  font-family: "Source Code Pro", "Menlo", "Monaco", "Consolas", "Courier New", monospace; }

samp {
  font-size: 90%; }

abbr {
  cursor: help; }

table {
  margin: 1em 0; }

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

th {
  padding: 1em;
  text-align: left; }

td {
  padding: 1em; }

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

textarea {
  resize: vertical; }

select {
  max-width: 100%;
  width: auto; }

[type='search'] {
  appearance: none; }

[type='radio'],
[type='checkbox'] {
  line-height: normal;
  margin: 4px 0 0;
  margin-top: 1px \9; }

[type='file'],
[type='range'] {
  display: block;
  width: 100%; }

[multiple],
[size] {
  height: auto; }

button,
[type='submit'] {
  appearance: none;
  border: 0;
  cursor: pointer;
  user-select: none;
  vertical-align: middle;
  white-space: nowrap; }

address {
  font-style: normal; }

main {
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  outline: 0; }

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

@font-face {
  font-family: 'nscc-icons';
  src: url("/assets/dist/fonts/nscc-icons/nscc-icons.eot?46703332");
  src: url("/assets/dist/fonts/nscc-icons/nscc-icons.eot?46703332#iefix") format("embedded-opentype"), url("/assets/dist/fonts/nscc-icons/nscc-icons.woff2?46703332") format("woff2"), url("/assets/dist/fonts/nscc-icons/nscc-icons.woff?46703332") format("woff"), url("/assets/dist/fonts/nscc-icons/nscc-icons.ttf?46703332") format("truetype"), url("/assets/dist/fonts/nscc-icons/nscc-icons.svg?46703332#nscc-icons") format("svg");
  font-weight: normal;
  font-style: normal; }

/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
  @font-face {
    font-family: 'nscc-icons';
    src: url('../font/nscc-icons.svg?46703332#nscc-icons') format('svg');
  }
}
*/
[class^="icon-"]:before, [class*=" icon-"]:before {
  font-family: "nscc-icons";
  font-style: normal;
  font-weight: normal;
  speak: none;
  display: inline-block;
  text-decoration: inherit;
  width: 1em;
  margin-right: .2em;
  text-align: center;
  /* opacity: .8; */
  /* For safety - reset parent styles, that can break glyph codes*/
  font-variant: normal;
  text-transform: none;
  /* fix buttons height, for twitter bootstrap */
  line-height: 1em;
  /* Animation center compensation - margins should be symmetric */
  /* remove if not needed */
  margin-left: .2em;
  /* you can be more comfortable with increased icons size */
  /* font-size: 120%; */
  /* Font smoothing. That was taken from TWBS */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* Uncomment for 3D effect */
  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ }

.icon-cw:before {
  content: '\e800'; }

/* '' */
.icon-plus:before {
  content: '\e801'; }

/* '' */
.icon-minus:before {
  content: '\e802'; }

/* '' */
.icon-down-dir:before {
  content: '\e803'; }

/* '' */
.icon-search:before {
  content: '\e804'; }

/* '' */
.icon-gplus:before {
  content: '\e805'; }

/* '' */
.icon-twitter:before {
  content: '\e806'; }

/* '' */
.icon-facebook:before {
  content: '\e807'; }

/* '' */
.icon-flickr:before {
  content: '\e808'; }

/* '' */
.icon-pinterest:before {
  content: '\e809'; }

/* '' */
.icon-instagram:before {
  content: '\e80a'; }

/* '' */
.icon-youtube:before {
  content: '\e80b'; }

/* '' */
.icon-angle-circled-right:before {
  content: '\e80c'; }

/* '' */
.icon-ok-circled:before {
  content: '\e80d'; }

/* '' */
.icon-left-open-big:before {
  content: '\e80e'; }

/* '' */
.icon-right-open-big:before {
  content: '\e80f'; }

/* '' */
.icon-attention:before {
  content: '\e810'; }

/* '' */
.icon-ok:before {
  content: '\e811'; }

/* '' */
.icon-up-bold:before {
  content: '\e812'; }

/* '' */
.icon-info-circled:before {
  content: '\e813'; }

/* '' */
.icon-bell:before {
  content: '\e814'; }

/* '' */
.icon-cancel:before {
  content: '\e815'; }

/* '' */
.icon-linkedin:before {
  content: '\e816'; }

/* '' */
.button, .e2ma_signup_form_button,
a.button,
a.e2ma_signup_form_button,
p > a.button,
p > a.e2ma_signup_form_button {
  background-color: #F59333;
  background-image: none;
  border: 0;
  border-radius: 2px;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-size: 0.938rem;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  letter-spacing: 1px;
  min-width: 180px;
  padding: 0.938rem 1.563rem;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  touch-action: manipulation;
  transition: all .3s;
  user-select: none;
  vertical-align: middle;
  white-space: nowrap; }
  .button:hover, .e2ma_signup_form_button:hover, .button:active, .e2ma_signup_form_button:active, .button:focus, .e2ma_signup_form_button:focus,
  a.button:hover,
  a.e2ma_signup_form_button:hover,
  a.button:active,
  a.e2ma_signup_form_button:active,
  a.button:focus,
  a.e2ma_signup_form_button:focus,
  p > a.button:hover,
  p > a.e2ma_signup_form_button:hover,
  p > a.button:active,
  p > a.e2ma_signup_form_button:active,
  p > a.button:focus,
  p > a.e2ma_signup_form_button:focus {
    color: #fff;
    background-color: #f7ad64; }
  .button:active, .e2ma_signup_form_button:active, .button:active:focus, .e2ma_signup_form_button:active:focus,
  a.button:active,
  a.e2ma_signup_form_button:active,
  a.button:active:focus,
  a.e2ma_signup_form_button:active:focus,
  p > a.button:active,
  p > a.e2ma_signup_form_button:active,
  p > a.button:active:focus,
  p > a.e2ma_signup_form_button:active:focus {
    text-decoration: none; }
  .button:focus, .e2ma_signup_form_button:focus,
  a.button:focus,
  a.e2ma_signup_form_button:focus,
  p > a.button:focus,
  p > a.e2ma_signup_form_button:focus {
    outline: 1px dotted rgba(0, 0, 0, 0.4);
    text-decoration: underline; }
  .button[disabled], .e2ma_signup_form_button[disabled], .button.is-disabled, .is-disabled.e2ma_signup_form_button,
  a.button[disabled],
  a.e2ma_signup_form_button[disabled],
  a.button.is-disabled,
  a.is-disabled.e2ma_signup_form_button,
  p > a.button[disabled],
  p > a.e2ma_signup_form_button[disabled],
  p > a.button.is-disabled,
  p > a.is-disabled.e2ma_signup_form_button {
    box-shadow: none;
    cursor: not-allowed;
    opacity: .65;
    pointer-events: none; }
  .button:before, .e2ma_signup_form_button:before,
  a.button:before,
  a.e2ma_signup_form_button:before,
  p > a.button:before,
  p > a.e2ma_signup_form_button:before {
    content: none; }
  .button.-primary, .e2ma_signup_form_button,
  a.button.-primary,
  a.e2ma_signup_form_button,
  p > a.button.-primary,
  p > a.e2ma_signup_form_button {
    background-color: #F59333;
    transition: background-color .25s ease-out; }
    .button.-primary:hover, .e2ma_signup_form_button:hover, .button.-primary:active, .e2ma_signup_form_button:active, .button.-primary:focus, .e2ma_signup_form_button:focus,
    a.button.-primary:hover,
    a.e2ma_signup_form_button:hover,
    a.button.-primary:active,
    a.e2ma_signup_form_button:active,
    a.button.-primary:focus,
    a.e2ma_signup_form_button:focus,
    p > a.button.-primary:hover,
    p > a.e2ma_signup_form_button:hover,
    p > a.button.-primary:active,
    p > a.e2ma_signup_form_button:active,
    p > a.button.-primary:focus,
    p > a.e2ma_signup_form_button:focus {
      background-color: #f7ad64; }
  .button.-secondary, .-secondary.e2ma_signup_form_button,
  a.button.-secondary,
  a.-secondary.e2ma_signup_form_button,
  p > a.button.-secondary,
  p > a.-secondary.e2ma_signup_form_button {
    background-color: #5C4D9C; }
    .button.-secondary:hover, .-secondary.e2ma_signup_form_button:hover,
    a.button.-secondary:hover,
    a.-secondary.e2ma_signup_form_button:hover,
    p > a.button.-secondary:hover,
    p > a.-secondary.e2ma_signup_form_button:hover {
      background-color: #7668b4; }
  .button.-tertiary, .-tertiary.e2ma_signup_form_button,
  a.button.-tertiary,
  a.-tertiary.e2ma_signup_form_button,
  p > a.button.-tertiary,
  p > a.-tertiary.e2ma_signup_form_button {
    background-color: #03123F; }
    .button.-tertiary:hover, .-tertiary.e2ma_signup_form_button:hover,
    a.button.-tertiary:hover,
    a.-tertiary.e2ma_signup_form_button:hover,
    p > a.button.-tertiary:hover,
    p > a.-tertiary.e2ma_signup_form_button:hover {
      background-color: #052070; }
    .button.-tertiary:focus, .-tertiary.e2ma_signup_form_button:focus,
    a.button.-tertiary:focus,
    a.-tertiary.e2ma_signup_form_button:focus,
    p > a.button.-tertiary:focus,
    p > a.-tertiary.e2ma_signup_form_button:focus {
      text-decoration: none; }
  .button.-large, .-large.e2ma_signup_form_button,
  a.button.-large,
  a.-large.e2ma_signup_form_button,
  p > a.button.-large,
  p > a.-large.e2ma_signup_form_button {
    font-size: 0.938em;
    padding: 0.938em 1.563em; }
  .button.-medium, .-medium.e2ma_signup_form_button,
  a.button.-medium,
  a.-medium.e2ma_signup_form_button,
  p > a.button.-medium,
  p > a.-medium.e2ma_signup_form_button {
    font-size: 0.938em;
    padding: 0.938em 1.563em; }
  .button.-small, .e2ma_signup_form_button,
  a.button.-small,
  a.e2ma_signup_form_button,
  p > a.button.-small,
  p > a.e2ma_signup_form_button {
    font-size: 0.938em;
    min-width: auto;
    padding: 0.563em 2.125em; }
  .button.-block, .-block.e2ma_signup_form_button,
  a.button.-block,
  a.-block.e2ma_signup_form_button,
  p > a.button.-block,
  p > a.-block.e2ma_signup_form_button {
    display: block;
    padding: 2em !important;
    width: 100%; }
  .button.-center, .-center.e2ma_signup_form_button,
  a.button.-center,
  a.-center.e2ma_signup_form_button,
  p > a.button.-center,
  p > a.-center.e2ma_signup_form_button {
    justify-self: center; }
  .button.-full, .-full.e2ma_signup_form_button,
  a.button.-full,
  a.-full.e2ma_signup_form_button,
  p > a.button.-full,
  p > a.-full.e2ma_signup_form_button {
    justify-self: stretch; }
  .button.-left, .-left.e2ma_signup_form_button,
  a.button.-left,
  a.-left.e2ma_signup_form_button,
  p > a.button.-left,
  p > a.-left.e2ma_signup_form_button {
    justify-self: left; }
  .button.-right, .-right.e2ma_signup_form_button,
  a.button.-right,
  a.-right.e2ma_signup_form_button,
  p > a.button.-right,
  p > a.-right.e2ma_signup_form_button {
    justify-self: right; }

.button-container {
  display: grid;
  width: 100%; }

.button-container + .button-container {
  margin-top: 1em; }

.baskerville {
  font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif"; }

.monospace {
  font-family: "Source Code Pro", "Menlo", "Monaco", "Consolas", "Courier New", monospace; }

.visually-hidden {
  display: none; }

ul,
ol {
  margin-left: 0.15em; }

li {
  color: #03123F;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.4;
  margin-bottom: 1em; }
  li:last-of-type {
    margin-bottom: 0; }
  .article li a {
    color: #5C4D9C;
    position: relative;
    text-decoration: none; }
    .article li a:before {
      position: absolute;
      margin: 0 auto;
      top: 100%;
      left: 0;
      width: 100%;
      height: 2px;
      background-color: #5C4D9C;
      content: '';
      opacity: 0.3;
      transform: scaleX(0.9);
      transition: all .3s; }
    .article li a:hover:before {
      opacity: 1;
      transform: scaleX(1); }

.loader {
  margin: 0px auto;
  position: relative;
  width: 80px; }
  .loader:before {
    content: '';
    display: block;
    padding-top: 100%; }
  .loader.hidden {
    display: none; }

.circular {
  animation: rotate 2s linear infinite;
  height: 100%;
  margin: auto;
  position: absolute;
  transform-origin: center center;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%; }

.path {
  animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
  stroke-dasharray: 1,200;
  stroke-dashoffset: 0;
  stroke-linecap: round; }

@keyframes rotate {
  100% {
    transform: rotate(360deg); } }

@keyframes dash {
  0% {
    stroke-dasharray: 1,200;
    stroke-dashoffset: 0; }
  50% {
    stroke-dasharray: 89,200;
    stroke-dashoffset: -35px; }
  100% {
    stroke-dasharray: 89,200;
    stroke-dashoffset: -124px; } }

@keyframes color {
  100%, 0% {
    stroke: #DDDDDD; }
  40% {
    stroke: #DDDDDD; }
  66% {
    stroke: white; }
  80%, 90% {
    stroke: #53565B; } }

h1 {
  color: #03123F;
  font-size: 4.625em;
  text-transform: uppercase; }

h2, h3 {
  font-family: "Open Sans Condensed", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-weight: 700;
  text-transform: uppercase; }

h2 {
  color: #03123F;
  font-size: 1.625em; }
  @media (min-width: 37.5em) {
    h2 {
      font-size: 2.25em; } }
  @media (min-width: 50em) {
    h2 {
      font-size: 2.625em; } }

h3 {
  font-size: 1.375em; }

h2, h3, h4, h5, h6 {
  color: #03123F; }
  .article h2, .article h3, .article h4, .article h5, .article h6 {
    margin-top: 1.250em; }

p {
  color: #03123F;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.4; }
  p.lead-paragraph {
    font-size: 1.188rem;
    margin-bottom: 2em;
    margin-top: 1em; }
  p.accent {
    font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
    font-style: italic; }
  p.meta {
    font-size: 0.75em; }

hr {
  border: 0;
  border-bottom: 1px solid #F5F5F0;
  height: 0;
  margin: 2em 0; }

ol ol li {
  list-style-type: lower-alpha; }

ol ol ol li {
  list-style-type: lower-roman; }

p > a {
  color: #5C4D9C;
  position: relative;
  text-decoration: none;
  display: inline-block; }
  p > a:before {
    position: absolute;
    margin: 0 auto;
    top: 100%;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #5C4D9C;
    content: '';
    opacity: 0.3;
    transform: scaleX(0.9);
    transition: all .3s; }
  p > a:hover:before {
    opacity: 1;
    transform: scaleX(1); }

a {
  transition: color 150ms linear;
  color: #03123F; }
  a.accent {
    font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
    font-style: italic; }
  a:hover {
    color: #052070; }

table {
  color: #03123F;
  font-weight: 300;
  line-height: 1.4;
  font-size: 1rem; }

figcaption {
  text-align: center;
  color: #2F3D47;
  font-size: 0.875rem;
  font-weight: 300;
  line-height: 1.4;
  margin-top: 5px;
  border-bottom: 1px solid #DDDDDD;
  display: inline-block;
  padding-bottom: 5px; }

fieldset {
  border: 0;
  margin: 0 0 2em;
  min-width: 0;
  padding: 0; }
  fieldset[disabled] .form-control, fieldset[disabled] .e2ma_signup_form_element > input {
    background-color: #eee;
    cursor: not-allowed;
    opacity: 1; }

legend {
  border: 0;
  border-bottom: 1px solid #e5e5e5;
  color: #333;
  display: block;
  font-size: 21px;
  line-height: inherit;
  margin-bottom: 20px;
  padding: 0;
  width: 100%; }

label, .e2ma_signup_form_label {
  display: inline-block;
  font-weight: bold;
  margin-bottom: 5px;
  max-width: 100%; }
  label.required:after, .required.e2ma_signup_form_label:after {
    content: '*'; }
  label[aria-hidden=true], .e2ma_signup_form_label[aria-hidden=true] {
    display: none; }
  label small, .e2ma_signup_form_label small {
    color: #7D7D7D;
    padding-left: 5px; }

.checkbox-inline label:after, .checkbox-inline .e2ma_signup_form_label:after {
  content: ''; }

.form-control, .e2ma_signup_form_element > input {
  background-color: white;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  color: #53565B;
  display: block;
  font-size: .875em;
  height: 46px;
  line-height: 1.33;
  padding: 10px 16px;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  width: 100%; }
  .form-control:focus, .e2ma_signup_form_element > input:focus {
    border-color: #eaeaea;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(234, 234, 234, 0.6);
    outline: 0; }
  .form-control::-webkit-input-placeholder, .e2ma_signup_form_element > input::-webkit-input-placeholder {
    color: #7D7D7D; }
  .form-control::-moz-placeholder, .e2ma_signup_form_element > input::-moz-placeholder {
    color: #7D7D7D; }
  .form-control:-moz-placeholder, .e2ma_signup_form_element > input:-moz-placeholder {
    color: #7D7D7D; }
  .form-control:-ms-input-placeholder, .e2ma_signup_form_element > input:-ms-input-placeholder {
    color: #7D7D7D; }
  .is-submitted .form-control:invalid, .is-submitted .e2ma_signup_form_element > input:invalid, .is-submitted .form-control:required:invalid, .is-submitted .e2ma_signup_form_element > input:required:invalid {
    border-color: #b03535;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px #d45252;
    outline: 0; }
  .form-control[disabled], .e2ma_signup_form_element > input[disabled], .form-control[readonly], .e2ma_signup_form_element > input[readonly] {
    background-color: #eee;
    cursor: not-allowed;
    opacity: 1; }

.form-control-group, .e2ma_signup_form_row {
  margin-bottom: 1em;
  margin-top: 1em;
  position: relative; }

.form-control.has-icon, .e2ma_signup_form_element > input.has-icon {
  padding-right: 45px; }

textarea {
  resize: vertical; }
  textarea.form-control {
    height: 150px; }

[type='radio'],
[type='checkbox'] {
  line-height: normal;
  margin: 4px 0 0;
  margin-top: 1px \9; }

[type='file'],
[type='range'] {
  display: block;
  width: 100%; }

[multiple],
[size] {
  height: auto; }

[type='file']:focus,
[type='radio']:focus,
[type='checkbox']:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px; }

select,
select.form-control {
  color: #7D7D7D;
  font-size: .875em;
  padding-right: 45px;
  position: relative;
  width: 100%;
  -webkit-appearance: none;
  -moz-appearance: none; }

select::-ms-expand {
  display: none; }

.form-control-select-wrapper {
  display: block;
  max-width: 100%;
  position: relative;
  width: auto; }

.form-control__instructions {
  color: #7D7D7D;
  display: block;
  font-weight: 300;
  font-size: .85em;
  margin-bottom: .5em; }

.field-icon {
  color: #53565B;
  font-size: 1.1em;
  pointer-events: none;
  position: absolute;
  right: 13px;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  z-index: 1; }

button,
[type='submit'] {
  border: 0;
  cursor: pointer;
  margin-bottom: 30px;
  user-select: none;
  vertical-align: middle;
  white-space: nowrap; }
  button:active, button:focus,
  [type='submit']:active,
  [type='submit']:focus {
    outline: thin dotted;
    outline-offset: -2px; }

.form-group {
  margin-bottom: 15px; }

.radio,
.checkbox {
  display: block;
  margin-bottom: 10px;
  margin-top: 10px;
  min-height: 20px;
  position: relative; }
  .radio label, .radio .e2ma_signup_form_label,
  .checkbox label,
  .checkbox .e2ma_signup_form_label {
    color: #53565B;
    cursor: pointer;
    font-size: .875em;
    font-weight: normal;
    margin-bottom: 0;
    padding-left: 20px; }

.radio [type='radio'],
.radio-inline [type='radio'],
.checkbox [type='checkbox'],
.checkbox-inline [type='checkbox'] {
  margin-left: -20px;
  margin-top: 4px \9;
  position: absolute; }

.radio + .radio,
.checkbox + .checkbox {
  margin-top: -5px; }

.radio-inline,
.checkbox-inline {
  cursor: pointer;
  display: inline-block;
  font-weight: normal;
  margin-bottom: 0;
  padding-left: 20px;
  vertical-align: middle; }

.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
  margin-left: 10px;
  margin-top: 0; }

[type='radio'][disabled],
[type='checkbox'][disabled],
[type='radio'].disabled,
[type='checkbox'].disabled,
[disabled] [type='radio'],
[disabled] [type='checkbox'] {
  cursor: not-allowed; }

.radio-inline.disabled,
.checkbox-inline.disabled,
[disabled] .radio-inline,
[disabled] .checkbox-inline {
  cursor: not-allowed; }

.radio.disabled label, .radio.disabled .e2ma_signup_form_label,
.checkbox.disabled label,
.checkbox.disabled .e2ma_signup_form_label,
[disabled] .radio label,
[disabled] .radio .e2ma_signup_form_label,
[disabled] .checkbox label,
[disabled] .checkbox .e2ma_signup_form_label {
  cursor: not-allowed; }

/*!
* Pikaday
* Copyright (c) 2014 David Bushell | BSD & MIT license | http://dbushell.com/
*/
.pika-single {
  background-color: white;
  border: 1px solid #ccc;
  border-bottom-color: #bbb;
  color: #7D7D7D;
  display: block;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  position: relative;
  z-index: 9999; }
  .pika-single:after {
    clear: both;
    content: '';
    display: table; }
  .pika-single.is-hidden {
    display: none; }
  .pika-single.is-bound {
    position: absolute;
    box-shadow: 0 5px 15px -5px rgba(0, 0, 0, 0.5); }
  .pika-single.dark {
    background-color: #53565B;
    border-color: #7D7D7D; }

.pika-lendar {
  float: left;
  margin: 8px;
  width: 240px; }

.pika-title {
  color: #DDDDDD;
  position: relative;
  text-align: center;
  text-transform: uppercase; }
  .dark .pika-title {
    color: white; }
  .pika-title select {
    cursor: pointer;
    filter: alpha(opacity=0);
    left: 0;
    margin: 0;
    opacity: 0;
    position: absolute;
    top: 5px;
    z-index: 9998; }

.pika-label {
  background-color: #fff;
  display: inline-block;
  font-size: 14px;
  font-weight: bold;
  line-height: 20px;
  margin: 0;
  overflow: hidden;
  padding: 5px 3px;
  position: relative;
  z-index: 9999; }
  .dark .pika-label {
    background-color: #53565B; }

.pika-prev,
.pika-next {
  background-color: transparent;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 75% 75%;
  border: 0;
  cursor: pointer;
  display: block;
  height: 30px;
  opacity: .5;
  outline: none;
  overflow: hidden;
  padding: 0;
  position: relative;
  text-indent: 20px;
  white-space: nowrap;
  width: 20px; }
  .pika-prev:hover,
  .pika-next:hover {
    opacity: 1; }
  .pika-prev.is-disabled,
  .pika-next.is-disabled {
    cursor: default;
    opacity: .2; }

.pika-prev,
.is-rtl .pika-next {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==");
  float: left; }

.pika-next,
.is-rtl .pika-prev {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=");
  float: right; }

.pika-select {
  display: inline-block; }

.pika-table {
  border: 0;
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%; }
  .pika-table tr {
    border-bottom: none !important; }
  .pika-table th,
  .pika-table td {
    border-right: none !important;
    padding: 0;
    width: 14.285714285714286%; }
    .dark .pika-table th, .dark
    .pika-table td {
      border-bottom-color: #7D7D7D; }
  .pika-table th {
    color: #5C4D9C;
    font-size: 12px;
    font-weight: bold;
    line-height: 25px;
    padding-bottom: 10px;
    text-align: center; }
    .dark .pika-table th {
      color: #6757ac; }
  .pika-table td:first-child {
    padding-top: 0 !important; }
  .pika-table td:last-child {
    padding-bottom: 0 !important; }
  .pika-table abbr {
    border-bottom: none;
    cursor: help; }

.pika-button {
  background-color: white;
  border-radius: 3px;
  box-sizing: border-box;
  color: #7D7D7D;
  cursor: pointer;
  display: block;
  font-size: 12px;
  line-height: 15px;
  margin: 0;
  outline: none;
  padding: 12px 5px 8px;
  text-align: center;
  width: 100%; }
  .dark .pika-button {
    background-color: #53565B;
    color: white; }
  .is-today .pika-button {
    color: #d0d0d0;
    font-weight: bold; }
    .dark .is-today .pika-button {
      color: #eaeaea; }
  .is-selected .pika-button {
    background-color: #DDDDDD;
    box-shadow: none;
    color: #fff;
    font-weight: bold; }
    .dark .is-selected .pika-button {
      background-color: #eaeaea; }
  .is-inrange .pika-button {
    background: white;
    border-radius: 0; }
  .is-startrange .pika-button,
  .is-endrange .pika-button {
    background-color: #DDDDDD;
    box-shadow: none;
    color: #fff;
    font-weight: bold; }
  .is-disabled .pika-button {
    color: #7D7D7D;
    cursor: default;
    opacity: .3;
    pointer-events: none; }
  .pika-button:hover {
    background-color: #F5F5F0 !important;
    box-shadow: none !important;
    border-radius: 0; }
    .dark .pika-button:hover {
      background-color: #DDDDDD !important; }

.pika-week {
  color: #DDDDDD;
  font-size: 11px; }

.datepicker-container {
  position: relative;
  display: block; }

.datepicker-control[readonly] {
  background-color: white;
  border-color: #DDDDDD;
  color: #7D7D7D;
  cursor: pointer; }

.datepicker-control.form-control--dark[readonly] {
  background-color: #7D7D7D;
  border-color: transparent;
  color: white; }

.datepicker-control.has-value {
  background-image: none; }

.remove-button {
  display: none;
  /*
    @include size(auto 37px);
    background-color: transparent;
    background-image: path('icon-close.svg');
    background-position: 0 50%;
    background-repeat: no-repeat;
    color: #a8a8a8;
    display: inline-block;
    font-size: 11px;
    padding: 0;
    padding-left: 22px;
    position: absolute;
    right: 14px;
    text-transform: uppercase;
    top: 18px;
  */ }

table {
  margin: 1em 0;
  max-width: 100%;
  width: 100%; }
  table tr {
    border-bottom: 1px solid #DDDDDD;
    max-width: 100%; }
  table th {
    display: none;
    max-width: 100%; }
  table td {
    display: block;
    padding: 0;
    max-width: 100%;
    vertical-align: top; }
    table td:first-child {
      padding-top: .5em; }
    table td:last-child {
      padding-bottom: .5em; }
    table td:before {
      content: attr(data-th) ": ";
      color: #2F3D47;
      font-size: 11px;
      font-weight: 400;
      text-transform: uppercase;
      line-height: 30px;
      display: inline-block;
      padding-right: 15px; }
      @media (min-width: 900px) {
        table td:before {
          display: none; } }
  @media (min-width: 900px) {
    table th:not(:last-child),
    table td:not(:last-child) {
      border-right: 1px solid #F5F5F0; } }
  table th, table td {
    text-align: left; }
    @media (min-width: 900px) {
      table th, table td {
        display: table-cell;
        padding: .25em .5em; }
        table th:first-child, table td:first-child {
          padding-left: 0; }
        table th:last-child, table td:last-child {
          padding-right: 0; } }

.video-embed {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden; }
  .video-embed::before {
    display: block;
    content: ""; }
  .video-embed .video-embed-item,
  .video-embed iframe,
  .video-embed embed,
  .video-embed object,
  .video-embed video {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0; }

.video-embed-21by9::before {
  padding-top: 42.85714%; }

.video-embed-16by9::before {
  padding-top: 56.25%; }

.video-embed-4by3::before {
  padding-top: 75%; }

.video-embed-1by1::before {
  padding-top: 100%; }

.grid, .callout, .event__list.-grid {
  display: grid;
  position: relative;
  z-index: 1;
  grid-template-columns: 100%;
  grid-template-rows: auto;
  grid-row-gap: 15px;
  grid-column-gap: 40px; }
  .grid.-small, .-small.callout, .callout.e2ma_signup_form_button, .-small.event__list.-grid, .event__list.-grid.e2ma_signup_form_button, .grid.e2ma_signup_form_button {
    grid-row-gap: 20px;
    grid-column-gap: 15px; }
  .grid.-footer, .-footer.callout, .-footer.event__list.-grid {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-footer, .-footer.callout, .-footer.event__list.-grid {
        grid-template-columns: 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-footer, .-footer.callout, .-footer.event__list.-grid {
        grid-template-columns: auto auto auto 130px; } }
  .grid.-col4, .-col4.callout, .-col4.event__list.-grid {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-col4, .-col4.callout, .-col4.event__list.-grid {
        grid-template-columns: 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-col4, .-col4.callout, .-col4.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr 1fr; } }
  .grid.-col5, .-col5.callout, .-col5.event__list.-grid {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-col5, .-col5.callout, .-col5.event__list.-grid {
        grid-template-columns: 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-col5, .-col5.callout, .-col5.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr 1fr 1fr; } }
  .grid.-col6, .-col6.callout, .-col6.event__list.-grid {
    grid-template-columns: 1fr 1fr; }
    @media (min-width: 50em) {
      .grid.-col6, .-col6.callout, .-col6.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-col6, .-col6.callout, .-col6.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; } }
  .grid.-col7, .-col7.callout, .-col7.event__list.-grid {
    grid-template-columns: 1fr 1fr; }
    @media (min-width: 50em) {
      .grid.-col7, .-col7.callout, .-col7.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-col7, .-col7.callout, .-col7.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr; } }
  .grid.-col8, .-col8.callout, .-col8.event__list.-grid {
    grid-template-columns: 1fr 1fr; }
    @media (min-width: 50em) {
      .grid.-col8, .-col8.callout, .-col8.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-col8, .-col8.callout, .-col8.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr; } }
  .grid.-featured-entry-grid, .-featured-entry-grid.callout, .callout.featured-entry__grid, .-featured-entry-grid.event__list.-grid, .event__list.-grid.featured-entry__grid, .grid.featured-entry__grid {
    grid-template-rows: auto auto;
    grid-column-gap: 40px; }
    @media (min-width: 50em) {
      .grid.-featured-entry-grid, .-featured-entry-grid.callout, .callout.featured-entry__grid, .-featured-entry-grid.event__list.-grid, .event__list.-grid.featured-entry__grid, .grid.featured-entry__grid {
        grid-template-columns: 1fr 2fr;
        grid-template-rows: 1fr; } }
  .grid.-listing-grid, .-listing-grid.callout, .event__list:not(.-grid) .callout.event, .schedule__list .callout.schedule, .event__list:not(.-grid) .grid.event, .event__list:not(.-grid) .event.event__list.-grid, .-listing-grid.event__list.-grid, .schedule__list .event__list.-grid.schedule, .schedule__list .grid.schedule {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-listing-grid, .-listing-grid.callout, .event__list:not(.-grid) .callout.event, .schedule__list .callout.schedule, .event__list:not(.-grid) .grid.event, .event__list:not(.-grid) .event.event__list.-grid, .-listing-grid.event__list.-grid, .schedule__list .event__list.-grid.schedule, .schedule__list .grid.schedule {
        grid-column-gap: 15px;
        grid-template-columns: 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-listing-grid, .-listing-grid.callout, .event__list:not(.-grid) .callout.event, .schedule__list .callout.schedule, .event__list:not(.-grid) .grid.event, .event__list:not(.-grid) .event.event__list.-grid, .-listing-grid.event__list.-grid, .schedule__list .event__list.-grid.schedule, .schedule__list .grid.schedule {
        grid-column-gap: 30px;
        grid-template-columns: 18.4% auto 25% 25%; } }
    @media (min-width: 67.1875em) {
      .grid.-listing-grid, .-listing-grid.callout, .event__list:not(.-grid) .callout.event, .schedule__list .callout.schedule, .event__list:not(.-grid) .grid.event, .event__list:not(.-grid) .event.event__list.-grid, .-listing-grid.event__list.-grid, .schedule__list .event__list.-grid.schedule, .schedule__list .grid.schedule {
        grid-column-gap: 40px;
        grid-template-columns: 18.4% auto 27.5% 23%; } }
  .grid.-col3, .-col3.callout, .-col3.event__list.-grid {
    grid-template-columns: 1fr 1fr; }
    @media (min-width: 37.5em) {
      .grid.-col3, .-col3.callout, .-col3.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr; } }
  .grid.-col3-2-1, .-col3-2-1.callout, .-col3-2-1.event__list.-grid {
    grid-template-columns: 1fr; }
    @media (min-width: 37.5em) {
      .grid.-col3-2-1, .-col3-2-1.callout, .-col3-2-1.event__list.-grid {
        grid-template-columns: 1fr 1fr; } }
    @media (min-width: 50em) {
      .grid.-col3-2-1, .-col3-2-1.callout, .-col3-2-1.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr; } }
  .grid.-col3-1, .-col3-1.callout, .event__list.-grid {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-col3-1, .-col3-1.callout, .event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-col3-1, .-col3-1.callout, .event__list.-grid {
        grid-column-gap: calc(40px * 1.5); } }
  .grid.-col2, .callout, .-col2.event__list.-grid, .event__list.-grid.callout {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-col2, .callout, .-col2.event__list.-grid, .event__list.-grid.callout {
        grid-template-columns: 1fr 1fr; } }
  .grid.-detail, .-detail.callout, .-detail.event__list.-grid {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-detail, .-detail.callout, .-detail.event__list.-grid {
        grid-template-columns: 1fr 250px; } }

[class*="-fixcols"] {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-wrap: wrap; }
  @media (min-width: 50em) {
    [class*="-fixcols"] {
      flex-direction: row;
      align-items: normal; } }
  [class*="-fixcols"] > div {
    max-width: 280px; }
    @media (min-width: 63.75em) {
      [class*="-fixcols"] > div {
        max-width: none; } }

@media (min-width: 50em) {
  .-fixcols2 > div {
    flex-basis: 50%; } }

@media (min-width: 50em) {
  .-fixcols3 > div {
    flex-basis: 50%; } }

@media (min-width: 74.9375em) {
  .-fixcols3 > div {
    flex-basis: 33%; } }

@media (min-width: 50em) {
  .-fixcols4 > div {
    flex-basis: 50%; } }

@media (min-width: 67.1875em) {
  .-fixcols4 > div {
    flex-basis: 33%; } }

@media (min-width: 74.9375em) {
  .-fixcols4 > div {
    flex-basis: 25%; } }

.accordion--nav {
  display: flex;
  justify-content: flex-end; }
  .accordion--nav label, .accordion--nav .e2ma_signup_form_label {
    font-weight: normal;
    color: #7D7D7D; }
  .accordion--nav input {
    position: relative;
    visibility: hidden; }
    .accordion--nav input:before {
      color: #2F3D47;
      display: block;
      font-family: "nscc-icons";
      font-size: 1.375em;
      line-height: 0.65;
      position: absolute;
      top: 0;
      right: 8px;
      transition: transform .5s, opacity .3s;
      visibility: visible;
      content: '\e803';
      transform: rotate(0deg);
      z-index: 20; }
  .accordion--nav input:checked:before {
    transform: rotate(180deg); }

.accordion .accordion__item {
  transition: background-color 150ms linear;
  border-bottom: 1px solid #2F3D47; }
  .accordion .accordion__item .accordion__item__details {
    height: 100%;
    max-height: 0;
    margin-left: 40px;
    margin-right: 40px;
    overflow: hidden;
    -webkit-transition: max-height .5s ease-in-out;
    transition: max-height .5s ease-in-out; }
    .accordion .accordion__item .accordion__item__details:after {
      content: '';
      display: block;
      height: 1.250em;
      width: 100%; }
    .accordion .accordion__item .accordion__item__details p {
      margin-bottom: 1.75em; }
    .accordion .accordion__item .accordion__item__details ul {
      padding-left: 1.85em; }
      .accordion .accordion__item .accordion__item__details ul li {
        color: #03123F; }
    .accordion .accordion__item .accordion__item__details p > a {
      color: #5C4D9C;
      position: relative;
      text-decoration: none; }
      .accordion .accordion__item .accordion__item__details p > a:before {
        position: absolute;
        margin: 0 auto;
        top: 100%;
        left: 0;
        width: 100%;
        height: 2px;
        background-color: #5C4D9C;
        content: '';
        opacity: 0;
        transform: scaleX(0.8);
        transition: all .3s; }
      .accordion .accordion__item .accordion__item__details p > a:hover:before {
        opacity: 1;
        transform: scaleX(1); }
  .accordion .accordion__item.-expanded .accordion__item__details {
    max-height: 500000px; }
  .accordion .accordion__item:not(.-expanded):hover {
    background-color: #F5F5F0; }

.accordion h4 {
  margin-top: 0;
  padding-left: 40px;
  padding-top: 3em;
  padding-bottom: 3em;
  padding-right: 60px; }

.accordion__item__handle {
  color: #03123F;
  font-size: 1.375rem;
  margin-top: 0;
  position: relative;
  transition: color .3s;
  cursor: pointer;
  padding: 2.5em 0; }
  .accordion__item__handle:hover {
    color: #03123F; }
  .accordion__item.-expanded .accordion__item__handle {
    color: #03123F; }
  .accordion__item__handle:before, .accordion__item__handle:after {
    color: #2F3D47;
    display: block;
    font-family: "nscc-icons";
    line-height: 1;
    position: absolute;
    right: 40px;
    top: calc(50% - 12px);
    transition: transform .3s, opacity .3s; }
  .accordion__item__handle:before {
    content: '\e803';
    transform: rotate(0deg);
    z-index: 20; }
    .accordion__item.-expanded .accordion__item__handle:before {
      transform: rotate(180deg); }

.breadcrumbs-wrapper {
  position: relative; }

.breadcrumb {
  font-size: .75rem;
  font-weight: 500;
  margin: 0 0 2.5em;
  position: relative; }
  .breadcrumb:after {
    clear: both;
    content: '';
    display: table; }
  @media (min-width: 50em) {
    .breadcrumb {
      margin-top: 2.5em; } }
  .breadcrumb .breadcrumb__item {
    font-size: .75rem;
    color: #7D7D7D;
    font-weight: 500;
    float: left;
    margin-bottom: 0; }
    .breadcrumb .breadcrumb__item:after {
      content: '/';
      padding: 0 4px; }
    .breadcrumb .breadcrumb__item.-active {
      color: #7D7D7D; }
      .breadcrumb .breadcrumb__item.-active:after {
        content: none; }
    .breadcrumb .breadcrumb__item a {
      color: #5C4D9C;
      text-decoration: none; }
      .breadcrumb .breadcrumb__item a:hover {
        text-decoration: underline; }

.callout {
  transition: background-color 150ms linear;
  color: #03123F;
  position: relative;
  text-decoration: none;
  padding: 20px 20px;
  margin-bottom: 20px; }
  @media (min-width: 63.75em) {
    .callout {
      padding: 20px 40px; } }

a.callout {
  background-color: #F5F5F0; }
  a.callout:hover {
    background-color: #ebebe1; }

.callout__image {
  display: block;
  height: auto;
  float: right;
  width: 100%; }
  @media (min-width: 50em) {
    .callout__image {
      width: auto; } }

.callout-block {
  color: white;
  display: block;
  overflow: hidden;
  position: relative;
  width: 100%; }
  .callout-block.-image:not(.-grey):before {
    transition: background-color 150ms linear;
    background-image: linear-gradient(to bottom, transparent, transparent, #072973);
    content: '';
    display: block;
    height: 100%;
    opacity: .7;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 10; }
  .callout-block.-image:hover .callout-block__content {
    height: 100%; }
  .callout-block.-image.-grey .callout-block__image {
    top: 90px; }
  .callout-block.-image.-grey:hover .callout-block__content {
    height: 100%; }
  .callout-block.-image .callout-block__image {
    display: block;
    height: auto;
    min-width: 100%;
    position: absolute;
    top: 35px;
    z-index: 0; }
  .callout-block.-color.-green {
    background-color: #DDDDDD; }
  .callout-block.-color.-black {
    background-color: #2F3D47; }
  .callout-block.-small, .callout-block.e2ma_signup_form_button {
    height: 200px; }
  .callout-block.-medium {
    height: 250px; }
    .callout-block.-medium p {
      font-weight: 700;
      margin: 0;
      text-transform: uppercase; }
  .callout-block.-large {
    border: 25px solid white;
    height: 360px; }
    @media (min-width: 50em) {
      .callout-block.-large {
        height: 460px; } }
  .callout-block.-horizontal {
    height: 250px;
    margin-bottom: 0; }
    @media (min-width: 57.1875em) {
      .callout-block.-horizontal {
        height: 130px; }
        .callout-block.-horizontal .callout-block__content__label {
          display: block;
          float: left;
          line-height: 1.3;
          margin: 0;
          width: 20%; }
        .callout-block.-horizontal .callout-block__content__headline {
          display: block;
          float: left;
          width: 65%; }
        .callout-block.-horizontal .callout-block__content__button {
          display: block;
          float: right;
          margin-top: 5px;
          width: 15%; } }

.callout-block.-image .callout-block__content {
  transition: height 150ms linear;
  height: 40px;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  justify-items: center;
  background-color: #03123F;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 20;
  text-align: center; }
  .callout-block.-image .callout-block__content:after {
    clear: both;
    content: '';
    display: table; }

.callout-block.-image.-grey .callout-block__content {
  background-color: #F5F5F0;
  height: 90px; }

.callout-block.-button .callout-block__content {
  height: 100%;
  background-color: #F5F5F0;
  border-bottom: 14px solid #F59333;
  padding: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center; }
  .callout-block.-button .callout-block__content .callout-block__content__button {
    margin-top: auto; }
  .callout-block.-button .callout-block__content img {
    max-height: 126px; }

.callout-block.-color .callout-block__content {
  padding: 0 25% 0 15%; }

.callout-block.-horizontal .callout-block__content {
  padding: 0 7%; }

.callout-block__content__headline {
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; }
  .callout-block.-image .callout-block__content__headline {
    color: white;
    margin: 10px auto; }
  .callout-block.-image.-grey .callout-block__content__headline {
    color: #03123F;
    font-size: 1.75em;
    margin: 10px auto; }
  .-button .callout-block__content__headline {
    padding-top: 20px; }
  .callout-block.-color .callout-block__content__headline {
    margin-bottom: .25em; }
  .callout-block.-small .callout-block__content__headline, .callout-block.e2ma_signup_form_button .callout-block__content__headline {
    font-size: 0.938em;
    line-height: 1.1; }
  .callout-block.-medium .callout-block__content__headline {
    font-family: "Open Sans Condensed", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 1.75em;
    line-height: 1.2; }
  .callout-block.-large .callout-block__content__headline {
    font-size: 2.75em;
    line-height: 1.1; }
    @media (min-width: 63.75em) {
      .callout-block.-large .callout-block__content__headline {
        font-size: 3.75em; } }
  .callout-block.-horizontal .callout-block__content__headline {
    font-size: 1.75em;
    line-height: 1.2; }
    @media (min-width: 57.1875em) {
      .callout-block.-horizontal .callout-block__content__headline {
        font-size: 2em;
        margin-bottom: 0; } }

.category-select {
  width: 50%; }

.embed {
  background-color: #000;
  cursor: pointer; }
  .embed .photo {
    opacity: .8;
    -webkit-transition: opacity;
    transition: opacity;
    width: 100%; }
    .embed .photo:hover {
      opacity: .4; }
  .embed iframe {
    border: 0;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%; }
  .embed.-modal-overlay[data-loaded=false]::before {
    background-color: transparent;
    background-image: -webkit-linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.6));
    background-image: linear-gradient(-90deg, transparent, rgba(0, 0, 0, 0.6));
    content: '';
    display: block;
    height: 100%;
    position: absolute;
    top: 0;
    -webkit-transition: all;
    transition: all;
    width: 100%;
    z-index: 2; }

.embed[data-loaded=false]::before {
  background: url("../../src/images/play.svg") no-repeat;
  content: '';
  height: 70px;
  left: 50%;
  margin: auto;
  position: absolute;
  top: 50%;
  transform: translateY(-50%) translateX(-50%);
  width: 70px;
  z-index: 1; }

.embed[data-loaded=false]:hover {
  -webkit-transition: opacity;
  transition: opacity; }
  .embed[data-loaded=false]:hover .photo {
    opacity: .4; }
  .embed[data-loaded=false]:hover::before {
    opacity: .8; }

.embed[data-loaded=true] {
  height: 0;
  padding-bottom: 56.25%; }
  .embed[data-loaded=true] .network-modal-content {
    display: none; }

.event__list:not(.-grid) .event-item:not(:first-child) {
  border-top: 1px solid #979797; }

.event__list:not(.-grid) .event:hover {
  background-color: #ebebe1; }

.event__list:not(.-grid) .event__arrow {
  display: none; }

.event__list.-grid {
  width: 100%; }
  .event__list.-grid .event__description {
    display: none; }
  .event__list.-grid .event {
    margin-top: 20px;
    padding: 0; }
    .event__list.-grid .event:hover .event__arrow {
      right: 10px; }
  .event__list.-grid img {
    width: 100%; }
  .event__list.-grid .button, .event__list.-grid .e2ma_signup_form_button {
    display: none; }
  .event__list.-grid .-promo {
    padding: 0 10px; }
  .event__list.-grid .event__meta {
    padding-right: 50px; }

.event {
  transition: background-color 150ms linear;
  align-items: center;
  color: #03123F;
  padding: 20px 20px;
  position: relative;
  text-decoration: none; }
  @media (min-width: 63.75em) {
    .event {
      padding: 20px 40px; } }
  .event > p {
    font-size: 0.813em; }

.event__image {
  justify-self: center; }
  @media (min-width: 50em) {
    .event__image {
      justify-self: auto; } }

.event__title {
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.125em;
  font-weight: 700; }

.event__meta {
  font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
  font-size: .938em;
  font-style: italic;
  position: relative; }
  .event__meta p {
    margin: 0; }

.event__arrow {
  transition: right 150ms linear;
  color: #5C4D9C;
  font-size: 64px;
  position: absolute;
  right: 20px;
  top: -20px; }

.event__cta {
  height: 100%;
  justify-content: center;
  display: flex;
  flex-direction: column;
  border-radius: 2px;
  padding: 20px; }
  .event__cta.-promo {
    background-color: #F59333; }
  .event__cta p {
    color: #F5F5F0;
    font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
    font-size: 1.125em;
    font-style: italic;
    margin: .5em 0;
    text-align: center; }

.featured-entry {
  color: white;
  overflow: hidden;
  position: relative;
  width: 100%; }
  .featured-entry:after {
    clear: both;
    content: '';
    display: table; }

.featured-entry__grid {
  height: 100%;
  align-items: center;
  padding: 40px 0; }
  @media (min-width: 63.75em) {
    .featured-entry__grid {
      padding: 40px 90px; } }

.featured-entry__content {
  position: relative;
  height: 100%;
  z-index: 20;
  text-align: center; }
  @media (min-width: 50em) {
    .featured-entry__content {
      text-align: right; } }

.featured-entry__content__headline {
  font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
  font-style: italic;
  font-size: 1.188em;
  line-height: 1; }

.featured-entry__image.-svg {
  height: 100%; }

.featured-entry__cta__content {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center; }
  @media (min-width: 50em) {
    .featured-entry__cta__content .button, .featured-entry__cta__content .e2ma_signup_form_button {
      align-self: flex-end; } }

.featured-event__container {
  padding: 20px 20px;
  margin: 20px 0; }
  @media (min-width: 63.75em) {
    .featured-event__container {
      padding: 20px 40px; } }
  .featured-event__container h2 {
    text-transform: uppercase; }
  .featured-event__container > p {
    font-size: 1.188em;
    margin-bottom: 20px;
    margin-top: 0; }

.featured-event {
  overflow: hidden;
  position: relative;
  width: 100%; }
  .featured-event:after {
    clear: both;
    content: '';
    display: table; }

.featured-event__content {
  position: relative;
  height: 100%;
  z-index: 20;
  text-align: center; }
  @media (min-width: 50em) {
    .featured-event__content {
      text-align: right; } }

.featured-event__content__headline {
  font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
  font-style: italic;
  font-size: 1.188em;
  line-height: 1; }

.featured-event__image {
  width: 100%; }

.featured-event__cta__content {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative; }
  @media (min-width: 50em) {
    .featured-event__cta__content {
      flex-direction: row; } }
  @media (min-width: 50em) {
    .featured-event__cta__content .button, .featured-event__cta__content .e2ma_signup_form_button {
      align-self: flex-end; } }

.featured-event__meta {
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-weight: 600;
  font-size: 1.063em;
  position: relative; }
  .featured-event__meta p {
    margin: 0;
    font-weight: 600; }

.global-footer__contact-info {
  line-height: 1.67em; }
  .global-footer__contact-info a {
    color: white;
    font-weight: 300;
    text-decoration: none;
    transition: color .25s; }
    .global-footer__contact-info a:hover {
      color: #DDDDDD; }

.global-footer__nav ul {
  padding: 0; }
  .global-footer__nav ul li {
    list-style: none; }

.global-footer__nav a {
  color: #DDDDDD;
  text-decoration: none;
  transition: color .25s; }
  .global-footer__nav a:hover {
    color: #7D7D7D; }

.global-footer__partners {
  margin: 0;
  padding: 0; }
  .global-footer__partners li {
    list-style: none;
    display: inline-block;
    margin: 0 .75em; }
  .global-footer__partners img,
  .global-footer__partners svg {
    max-height: 41px;
    width: auto; }
  .global-footer__partners svg path,
  .global-footer__partners svg rect,
  .global-footer__partners svg polygon {
    fill: #7D7D7D; }
  .global-footer__partners #tncc-logo {
    height: 32px; }
  .global-footer__partners #tnecampus-logo {
    height: 28px; }
  .global-footer__partners #pathway-logo {
    height: 20px; }
  .global-footer__partners #workforce-logo {
    height: 30px; }

@media (min-width: 50em) {
  .grid-title {
    display: block;
    float: left;
    position: relative;
    top: .8em;
    width: 30%; } }

.grid-filters {
  display: block; }
  @media (min-width: 50em) {
    .grid-filters {
      float: right;
      width: 70%; } }
  .grid-filters .grid-item {
    margin-bottom: 0; }

@media (min-width: 63.75em) {
  .grid-filters__group {
    border-left: 1px solid #F5F5F0;
    padding-left: gutter(9); } }

.grid-filters__group:first-of-type {
  border-left: none;
  padding-left: 0; }

.icon-links {
  padding-top: 40px;
  padding-bottom: 40px; }
  .icon-links a:not(:first-child):after {
    content: '';
    height: 100%;
    position: absolute;
    top: 0;
    left: -20px;
    border-left: 1px solid #979797; }
  .icon-links a {
    transition: background-color 150ms linear;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    text-align: center;
    position: relative;
    justify-content: space-evenly; }
    .icon-links a:hover {
      background-color: #F5F5F0; }
  .icon-links img {
    width: 60px; }
  .icon-links h4 {
    font-weight: 400;
    margin: 0; }

.label {
  font-size: .8125rem;
  font-weight: 500;
  margin: 1em 0;
  text-transform: uppercase;
  letter-spacing: 5px; }
  .label.-white {
    color: white; }
  .label.-gray {
    color: #7D7D7D; }
  .label.-green {
    color: white; }

.listing-block {
  display: block;
  min-height: 230px;
  outline: none;
  position: relative;
  text-decoration: none;
  width: 100%; }

.listing-block__image {
  opacity: .85;
  transition: opacity .5s;
  width: 100%;
  backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -webkit-backface-visibility: hidden; }
  .listing-block:hover .listing-block__image {
    opacity: 1;
    backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -webkit-backface-visibility: hidden; }
  .listing-block__image.-no-image {
    background-color: #DDDDDD;
    min-height: 176px; }

.listing-block__caption {
  color: #7D7D7D;
  display: block;
  font-size: 1em;
  margin-top: .5em; }

.listing-container {
  display: grid;
  grid-row-gap: 40px;
  grid-auto-rows: 1fr; }
  @media (min-width: 37.5em) {
    .listing-container {
      grid-row-gap: 60px; } }

.listing-item {
  display: grid;
  grid-column-gap: 40px;
  grid-template-columns: 100%; }
  @media (min-width: 50em) {
    .listing-item {
      grid-template-columns: 35% auto; } }
  .listing-item img {
    width: 100%; }

.listing-item__image {
  grid-column: 1;
  align-self: start; }

.listing-item__heading h1 {
  font-family: "Open Sans Condensed", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.188rem; }

.listing-item__heading p {
  margin: 0; }

.listing-item__subhead p {
  font-size: 0.875rem; }

.listing-item__content {
  display: flex;
  flex-direction: column; }
  @media (min-width: 50em) {
    .listing-item__content {
      grid-column: 2; } }
  .listing-item__content a {
    text-decoration: none; }

.listing-item__description {
  font-size: 0.875rem; }

.listing-item__tags {
  margin-top: auto;
  font-size: 0.75em;
  font-weight: 300;
  color: #03123F; }
  .listing-item__tags a {
    color: #03123F;
    text-decoration: underline;
    transition: color .2s; }
    .listing-item__tags a:hover {
      color: #082ea0; }

.listing-item__button {
  margin-top: auto; }

.logo {
  display: block;
  height: 103px;
  position: relative;
  z-index: 90;
  height: 85px;
  width: 85px; }
  @media (min-width: 63.75em) {
    .logo {
      height: 100%; } }
  .logo a {
    display: block;
    height: 100%;
    position: relative; }
  .logo img {
    opacity: 1;
    transition: opacity .2s;
    width: 100%;
    display: block;
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%); }
  .logo:hover img {
    opacity: .75; }
  .global-header .logo {
    top: 0;
    width: 77px;
    height: 103px; }
    @media (min-width: 63.75em) {
      .global-header .logo {
        float: left;
        width: 77px; } }
    @media (min-width: 67.1875em) {
      .global-header .logo {
        width: 77px; } }

.media {
  max-width: 868px;
  margin: 40px auto 50px;
  position: relative;
  text-align: center;
  width: 100%; }
  .media:after {
    clear: both;
    content: '';
    display: table; }
  @media (min-width: 50em) {
    .media {
      width: auto; } }
  @media (min-width: 72.75em) {
    .media {
      margin: 50px auto; } }
  .media .embed {
    padding-bottom: 56.25%;
    overflow: hidden;
    position: relative; }
    .media .embed .photo {
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      margin: auto; }
  @media (min-width: 72.75em) {
    .media.-wide {
      width: 1084px; } }
  @media (min-width: 480px) {
    .media.-left {
      float: left;
      margin-right: 40px; } }
  @media (min-width: 480px) and (max-width: 599px) {
    .media.-left {
      width: 50%; } }
  @media (min-width: 800px) {
    .media.-left {
      margin-left: -80px; } }
  .media .video-embed, .media img {
    width: 100%; }
  @media (min-width: 480px) {
    .media.-right {
      float: right;
      margin-left: 40px; } }
  @media (min-width: 480px) and (max-width: 599px) {
    .media.-right {
      width: 50%; } }
  @media (min-width: 800px) {
    .media.-right {
      margin-right: -80px; } }
  .media .video-embed, .media img {
    width: 100%; }
  @media (min-width: 800px) {
    .media.-right {
      margin-right: -40px; } }
  @media (min-width: 72.75em) {
    .media.-right {
      margin-top: 45px; } }
  .media.-width-75 {
    width: 75%; }
  .media.-width-66 {
    width: 66%; }
  .media.-width-50 {
    width: 50%; }
  .media.-width-33 {
    width: 33%; }
  .media.-width-25 {
    width: 25%; }
  .media .media__content {
    margin-top: 30px; }
    @media (min-width: 400px) {
      .media .media__content {
        margin: 28px auto 0;
        width: 75%; } }
    @media (min-width: 72.75em) {
      .media .media__content {
        margin: 48px auto 0;
        width: 69.58525%; } }

.overview {
  padding-bottom: 40px; }
  @media (min-width: 63.75em) {
    .overview {
      padding-bottom: 60px; } }
  .overview.-small, .overview.e2ma_signup_form_button {
    padding-bottom: 20px; }
    @media (min-width: 63.75em) {
      .overview.-small, .overview.e2ma_signup_form_button {
        padding-bottom: 40px; } }
  .overview p {
    font-size: 1em;
    margin: 0; }
    @media (min-width: 37.5em) {
      .overview p {
        font-size: 1.188em; } }

.burger {
  background: none;
  border: none;
  height: 103px;
  outline: none;
  position: absolute;
  right: 0;
  top: 0;
  padding-right: 20px; }
  .burger:after {
    clear: both;
    content: '';
    display: table; }
  .burger:active {
    background-color: transparent; }
  @media (min-width: 50em) {
    .burger {
      padding-right: 40px; } }
  @media (min-width: 63.75em) {
    .burger {
      display: none; } }

.burger__icon {
  display: block;
  float: right;
  margin: 0 auto;
  width: auto; }

.burger__icon__bar {
  background-color: #03123F;
  display: block;
  height: 3px;
  margin: 5px auto;
  transition: background-color .25s, margin .25s ease, transform .5s ease;
  width: 25px; }
  .burger:hover .burger__icon__bar {
    background-color: #0935b9; }
  .burger.is-active .burger__icon__bar.-top {
    -webkit-transform: translateY(8px) rotateZ(45deg);
    -moz-transform: translateY(8px) rotateZ(45deg);
    -ms-transform: translateY(8px) rotateZ(45deg);
    -o-transform: translateY(8px) rotateZ(45deg);
    transform: translateY(8px) rotateZ(45deg); }
  .burger.is-active .burger__icon__bar.-middle {
    width: 0; }
  .burger.is-active .burger__icon__bar.-bottom {
    -webkit-transform: translateY(-8px) rotateZ(-45deg);
    -moz-transform: translateY(-8px) rotateZ(-45deg);
    -ms-transform: translateY(-8px) rotateZ(-45deg);
    -o-transform: translateY(-8px) rotateZ(-45deg);
    transform: translateY(-8px) rotateZ(-45deg); }

.burger__text {
  color: #03123F;
  display: block;
  float: left;
  font-size: .75em;
  letter-spacing: 2px;
  margin-right: .75em;
  padding: .5em 0;
  text-transform: uppercase;
  transition: color .25s; }
  .burger:hover .burger__text {
    color: #0935b9; }

.nav-link {
  transition: color 150ms linear;
  display: block;
  -webkit-font-smoothing: antialiased;
  line-height: 1.4;
  position: relative;
  text-align: left;
  text-decoration: none;
  user-select: none;
  vertical-align: middle; }
  @media (min-width: 63.75em) {
    .nav-link {
      text-align: center; } }
  .nav-link:active, .nav-link:active:focus {
    text-decoration: none; }
  .nav-link:focus {
    text-decoration: none; }
  .nav-link.-primary, .nav-link.e2ma_signup_form_button {
    color: #03123F;
    font-size: 1rem;
    font-weight: 600;
    padding: 15px;
    z-index: 3; }
    @media (min-width: 63.75em) {
      .nav-link.-primary, .nav-link.e2ma_signup_form_button {
        height: 100%;
        padding: 41px 15px;
        font-size: .9rem; } }
    .primary-nav.expanded .nav-link.-primary, .primary-nav.expanded .nav-link.e2ma_signup_form_button {
      color: #03123F; }
      .primary-nav.expanded .nav-link.-primary:hover, .primary-nav.expanded .nav-link.e2ma_signup_form_button:hover {
        color: #041957; }
    .primary-nav > li:hover .nav-link.-primary, .primary-nav > li:hover .nav-link.e2ma_signup_form_button {
      color: #041957; }
    @media (min-width: 63.75em) {
      .primary-nav > .-current .nav-link.-primary:before, .primary-nav > .-current .nav-link.e2ma_signup_form_button:before {
        border-bottom: 4px solid #F59333;
        content: '';
        position: absolute;
        top: calc(41px + 16px + 5px);
        width: calc(100% - 30px); } }
    .nav-link.-primary i, .nav-link.e2ma_signup_form_button i {
      display: none; }
      @media (min-width: 63.75em) {
        .nav-link.-primary i, .nav-link.e2ma_signup_form_button i {
          display: inline; } }
    .primary-nav > li:hover .nav-link.-primary.-active, .primary-nav > li:hover .nav-link.-active.e2ma_signup_form_button,
    .primary-nav > li:hover .nav-link.-primary:hover,
    .primary-nav > li:hover .nav-link.e2ma_signup_form_button:hover,
    .primary-nav > li:hover .nav-link.-primary:active,
    .primary-nav > li:hover .nav-link.e2ma_signup_form_button:active,
    .primary-nav > li:hover .nav-link.-primary:focus,
    .primary-nav > li:hover .nav-link.e2ma_signup_form_button:focus {
      color: #0935b9; }
  .nav-link.-dropdown-link {
    color: #03123F;
    font-size: 15px;
    font-weight: 400;
    padding: .4em 1em; }
    @media (min-width: 63.75em) {
      .nav-link.-dropdown-link {
        font-size: 13px;
        padding-left: 13px;
        padding-right: 13px;
        padding-top: 10px; } }
    @media (min-width: 63.75em) {
      .primary-nav .nav-link.-dropdown-link {
        display: block;
        font-size: 15px;
        margin: 0 5% 14px 0;
        min-width: 140px;
        padding: 0;
        text-align: left; } }
    @media (min-width: 63.75em) {
      .nav-link.-dropdown-link.-active, .nav-link.-dropdown-link:hover, .nav-link.-dropdown-link:active, .nav-link.-dropdown-link:focus {
        color: #0935b9; } }
  .nav-link.-secondary {
    color: #DDDDDD;
    font-size: 13px;
    font-weight: 600;
    padding: 0 1em;
    text-transform: uppercase; }
    @media (min-width: 63.75em) {
      .nav-link.-secondary:hover, .nav-link.-secondary:active, .nav-link.-secondary:focus {
        color: white; } }
    .nav-link.-secondary:last-of-type {
      padding-right: 0; }

.nav-link-button {
  height: 52px;
  width: 52px;
  color: #7D7D7D;
  display: block;
  position: absolute;
  right: 0;
  text-align: center;
  top: 0; }
  @media (min-width: 63.75em) {
    .global-header .nav-link-button {
      display: none; } }
  .nav-link-button.is-active, .nav-link-button:hover, .nav-link-button:active, .nav-link-button:focus {
    color: #03123F;
    cursor: pointer; }
  .nav-link-button label, .nav-link-button .e2ma_signup_form_label {
    margin-bottom: 0;
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%); }
  .nav-link-button i.icon-plus,
  .nav-link-button i.icon-minus {
    display: block; }
  .nav-link-button i.icon-minus {
    display: none; }
  .nav-link-button i.icon-plus {
    display: block; }
  .nav-link-button.is-active i.icon-plus {
    display: none; }
  .nav-link-button.is-active i.icon-minus {
    display: block; }
  .nav-link-button.is-active + .nav-menu nav {
    display: block; }
  .primary-nav .nav-link-button {
    z-index: 3; }

.nav-menu {
  background-color: white;
  border-bottom: 7px solid #F59333;
  padding: 25px 20px;
  min-width: 420px; }
  @media (min-width: 63.75em) {
    .nav-menu {
      border-radius: 3px;
      border-top: 1px solid #DDDDDD;
      border-right: 1px solid #DDDDDD;
      border-left: 1px solid #DDDDDD;
      position: absolute; } }
  @media (min-width: 63.75em) {
    .primary-nav .nav-menu {
      margin-top: -1px;
      position: absolute;
      transition: all 0s;
      transition-delay: .35s;
      -webkit-box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.16);
      -moz-box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.16);
      box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.16); }
      .primary-nav .nav-menu:not(.edge):before {
        content: '';
        left: 19px;
        width: 0;
        height: 0;
        border-left: 21px solid transparent;
        border-right: 21px solid transparent;
        border-bottom: 21px solid #DDDDDD;
        top: -21px;
        position: absolute; }
      .primary-nav .nav-menu:not(.edge):after {
        content: '';
        left: 20px;
        width: 0;
        height: 0;
        border-left: 20px solid transparent;
        border-right: 20px solid transparent;
        border-bottom: 20px solid white;
        top: -20px;
        position: absolute; }
      .primary-nav .nav-menu.edge {
        right: 0; }
        .primary-nav .nav-menu.edge:before {
          content: '';
          right: 19px;
          width: 0;
          height: 0;
          border-left: 21px solid transparent;
          border-right: 21px solid transparent;
          border-bottom: 21px solid #DDDDDD;
          top: -21px;
          position: absolute; }
        .primary-nav .nav-menu.edge:after {
          content: '';
          right: 20px;
          width: 0;
          height: 0;
          border-left: 20px solid transparent;
          border-right: 20px solid transparent;
          border-bottom: 20px solid white;
          top: -20px;
          position: absolute; } }
  @media (min-width: 63.75em) {
    .primary-nav > li:hover .nav-menu:not(.-docs-tag) {
      display: block; } }
  @media (min-width: 63.75em) {
    .nav-menu .primary-nav > li:hover.-docs {
      display: block;
      position: relative;
      border: none; } }
  .nav-menu .container > nav {
    color: white;
    -webkit-columns: 220px 2;
    -moz-columns: 220px 2;
    columns: 220px 2;
    width: 100%; }
    .nav-menu .container > nav:after {
      clear: both;
      content: '';
      display: table; }
    @media (min-width: 63.75em) {
      .nav-menu .container > nav {
        border-left: 1px solid #53565B;
        float: right;
        margin: 40px 0;
        padding: 10px 55px;
        width: 52%; }
        .nav-menu .container > nav ul {
          float: left;
          width: 50%; } }
    .nav-menu .container > nav div {
      padding-bottom: 1.5em;
      page-break-inside: avoid;
      -webkit-column-break-inside: avoid; }
  .nav-menu h3 {
    color: white; }
  .nav-menu .nav-menu__section-overview {
    display: none; }
    @media (min-width: 63.75em) {
      .nav-menu .nav-menu__section-overview {
        color: white;
        display: block;
        float: left;
        min-height: 325px;
        padding: 50px 5% 0 22%;
        position: absolute;
        width: 48%; }
        .nav-menu .nav-menu__section-overview:after {
          clear: both;
          content: '';
          display: table; } }
    .nav-menu .nav-menu__section-overview h3 {
      font-size: 2.125em;
      line-height: 1;
      margin-top: 11px; }
    .nav-menu .nav-menu__section-overview p {
      color: #DDDDDD;
      font-size: .875em;
      line-height: 1.375;
      margin-bottom: 0;
      margin-top: 14px; }
    .nav-menu .nav-menu__section-overview .photo {
      background-color: #7D7D7D;
      left: 0;
      min-height: 165px;
      position: absolute;
      width: 38%; }
      @media (min-width: 67.1875em) {
        .nav-menu .nav-menu__section-overview .photo {
          min-height: 225px; } }
    .nav-menu .nav-menu__section-overview a {
      font-size: 14px;
      font-weight: 700;
      letter-spacing: .5px;
      padding-right: 20px;
      text-decoration: none; }

.primary-nav:after {
  clear: both;
  content: '';
  display: table; }

.global-header .primary-nav {
  padding-top: 56px;
  position: relative; }
  @media (min-width: 63.75em) {
    .global-header .primary-nav {
      background-color: transparent;
      float: right;
      margin-bottom: 0;
      padding-right: 55px;
      padding-top: 0;
      top: 0; } }

.primary-nav > .primary-nav__item {
  border-bottom: 1px solid #53565B;
  margin-bottom: 0;
  opacity: 1;
  position: relative;
  transition: opacity .3s; }
  .primary-nav > .primary-nav__item.-inactive {
    opacity: 0; }
  @media (min-width: 63.75em) {
    .primary-nav > .primary-nav__item {
      border-bottom: none;
      float: left;
      position: relative; } }

.global-search {
  display: flex;
  position: absolute;
  right: 0;
  top: 1em;
  width: 100%; }
  .global-search:after {
    clear: both;
    content: '';
    display: table; }
  @media (min-width: 63.75em) {
    .global-search {
      height: 100%;
      top: auto;
      width: auto; } }

input.global-search__box {
  align-self: center;
  background: #03123F;
  border: none;
  border-radius: 0;
  box-shadow: none;
  color: #F5F5F0;
  height: 25px;
  padding: .4em 1em;
  width: 100%;
  -webkit-appearance: none; }
  input.global-search__box::-webkit-input-placeholder {
    color: #DDDDDD; }
  input.global-search__box::-moz-placeholder {
    color: #DDDDDD; }
  input.global-search__box:-moz-placeholder {
    color: #DDDDDD; }
  input.global-search__box:-ms-input-placeholder {
    color: #DDDDDD; }
  @media (min-width: 63.75em) {
    input.global-search__box {
      background: transparent;
      border-bottom: 2px solid #0935b9;
      margin: 0 0.5em 0 0;
      padding: 0 1em 0 0;
      color: #2F3D47; }
      input.global-search__box::-webkit-input-placeholder {
        color: #53565B; }
      input.global-search__box::-moz-placeholder {
        color: #53565B; }
      input.global-search__box:-moz-placeholder {
        color: #53565B; }
      input.global-search__box:-ms-input-placeholder {
        color: #53565B; } }
  input.global-search__box:active, input.global-search__box:focus, input.global-search__box:active:focus {
    box-shadow: none;
    outline: 0; }
  @media (min-width: 63.75em) {
    input.global-search__box {
      margin: 0;
      padding: 0;
      transition: width .3s;
      width: 0; }
      .global-search.-active input.global-search__box {
        width: 500px;
        margin: 0 0.5em 0 0; } }

.global-search__button {
  background-color: transparent;
  color: #03123F;
  display: none;
  font-size: 1.375em;
  line-height: 1;
  margin-bottom: 0;
  position: relative;
  text-align: center;
  transition: color .3s;
  z-index: 90; }
  @media (min-width: 63.75em) {
    .global-search__button {
      display: block;
      padding: 36px 12px; } }
  @media (min-width: 63.75em) {
    .global-search__button {
      padding-right: 0; } }
  .global-search.-active .global-search__button, .global-search__button:hover {
    color: #0935b9; }
  .global-search__button:active, .global-search__button:active:focus, .global-search__button:focus {
    outline: 0;
    text-decoration: none; }

.secondary-nav {
  align-items: center;
  background-color: #03123F;
  display: flex;
  height: 35px;
  justify-content: center;
  margin-top: 0;
  padding-top: 0; }
  .secondary-nav:after {
    clear: both;
    content: '';
    display: table; }
  @media (min-width: 37.5em) {
    .secondary-nav {
      justify-content: flex-end;
      padding-right: 40px; } }

.docs-search {
  margin-top: 15px; }

input.docs-search__box {
  align-self: center;
  background: white;
  border: none;
  border-radius: 0;
  box-shadow: none;
  color: #03123F;
  height: 25px;
  padding: .4em 1em; }
  input.docs-search__box::-webkit-input-placeholder {
    color: #03123F; }
  input.docs-search__box::-moz-placeholder {
    color: #03123F; }
  input.docs-search__box:-moz-placeholder {
    color: #03123F; }
  input.docs-search__box:-ms-input-placeholder {
    color: #03123F; }
  input.docs-search__box:active, input.docs-search__box:focus, input.docs-search__box:active:focus {
    box-shadow: none;
    outline: 0; }

.docs-search__button {
  background-color: transparent;
  color: #03123F;
  display: none;
  font-size: 1.375em;
  line-height: 1;
  margin-bottom: 0;
  position: relative;
  text-align: center;
  transition: color .3s;
  z-index: 90; }
  .docs-search.-active .docs-search__button, .docs-search__button:hover {
    color: #0935b9; }
  .docs-search__button:active, .docs-search__button:active:focus, .docs-search__button:focus {
    outline: 0;
    text-decoration: none; }

.hero__content {
  align-items: center;
  display: flex;
  height: 100%;
  justify-content: center;
  position: relative;
  text-align: center;
  z-index: 20; }

h1.hero__content__headline {
  color: white;
  display: block;
  font-size: 2em;
  text-transform: uppercase;
  line-height: 1em; }
  @media (min-width: 20em) and (max-width: 37.4375em) {
    h1.hero__content__headline {
      font-size: 2.5em; } }
  @media (min-width: 37.5em) {
    h1.hero__content__headline {
      font-size: 3em;
      margin: 0; } }
  @media (min-width: 50em) {
    h1.hero__content__headline {
      font-size: 3.75em; } }
  @media (min-width: 63.75em) {
    h1.hero__content__headline {
      font-size: 4.5em; } }
  @media (min-width: 67.1875em) {
    h1.hero__content__headline {
      font-size: 5.25em; } }

h2.hero__content__headline {
  color: white;
  line-height: 50px;
  font-size: 2.25em;
  position: relative; }
  @media (min-width: 50em) {
    h2.hero__content__headline {
      line-height: 70px;
      font-size: 3.5em; } }

.hero__content__headline {
  display: inline-block;
  font-family: "Open Sans Condensed", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-weight: 700;
  margin: 0 25px 0 25px;
  padding: 0 10px; }
  @media (min-width: 50em) {
    .hero__content__headline {
      margin: 0; } }

.page-title {
  color: #2F3D47;
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.75em;
  font-weight: 400;
  letter-spacing: .5em;
  text-transform: uppercase; }
  @media (min-width: 50em) {
    .page-title {
      font-size: 2em; } }
  @media (min-width: 63.75em) {
    .page-title {
      font-size: 2.125em; } }
  .page-title.-small, .page-title.e2ma_signup_form_button {
    font-size: 1.625em; }
  .page-title.-white {
    color: white; }
  .page-title.-centered {
    text-align: center; }
  .page-title.-padded {
    margin: 3em 0; }
  .page-title.-padded-top {
    margin: 3em 0 0; }
  .page-title.-padded-bottom {
    margin: 0 0 3em; }

.photo-gallery-ProductNav_Wrapper {
  position: relative;
  padding: 0 11px;
  box-sizing: border-box; }

.photo-gallery-ProductNav {
  /* Make this scrollable when needed */
  overflow-x: auto;
  /* We don't want vertical scrolling */
  overflow-y: hidden;
  /* For WebKit implementations, provide inertia scrolling */
  -webkit-overflow-scrolling: touch;
  /* We don't want internal inline elements to wrap */
  white-space: nowrap;
  /* If JS present, let's hide the default scrollbar */
  /* positioning context for advancers */
  position: relative;
  font-size: 0; }
  .js .photo-gallery-ProductNav {
    /* Make an auto-hiding scroller for the 3 people using a IE */
    -ms-overflow-style: -ms-autohiding-scrollbar;
    /* Remove the default scrollbar for WebKit implementations */ }
    .js .photo-gallery-ProductNav::-webkit-scrollbar {
      display: none; }

.photo-gallery-ProductNav_Contents {
  float: left;
  transition: transform .2s ease-in-out;
  position: relative; }

.photo-gallery-ProductNav_Contents-no-transition {
  transition: none; }

.photo-gallery-ProductNav_Link {
  text-decoration: none;
  color: #888;
  font-size: 1.2rem;
  font-family: -apple-system, sans-serif;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 11px; }
  .photo-gallery-ProductNav_Link[aria-selected="true"] {
    color: #111; }
  .photo-gallery-ProductNav_Link img {
    max-width: initial; }

.photo-gallery-Advancer {
  /* Reset the button */
  appearance: none;
  background: transparent;
  padding: 0;
  border: 0;
  width: 80px;
  margin-bottom: 0;
  /* Now style it as needed */
  position: absolute;
  top: 0;
  bottom: 0;
  /* Set the buttons invisible by default */
  opacity: 0;
  transition: opacity .3s; }
  .photo-gallery-Advancer:focus {
    outline: 0; }
  .photo-gallery-Advancer:hover {
    cursor: pointer; }

.photo-gallery-Advancer_Left {
  background-image: linear-gradient(to right, #f5f5f0, transparent, transparent);
  left: 0; }
  [data-overflowing="both"] ~ .photo-gallery-Advancer_Left,
  [data-overflowing="left"] ~ .photo-gallery-Advancer_Left {
    opacity: 1; }

.photo-gallery-Advancer_Right {
  background-image: linear-gradient(to left, #f5f5f0, transparent, transparent);
  right: 0; }
  [data-overflowing="both"] ~ .photo-gallery-Advancer_Right,
  [data-overflowing="right"] ~ .photo-gallery-Advancer_Right {
    opacity: 1; }

.photo-gallery-Advancer_Icon {
  font-size: 50px;
  color: #03123F;
  opacity: .7; }

.photo-gallery-ProductNav_Indicator {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 4px;
  width: 100px;
  background-color: transparent;
  transform-origin: 0 0;
  transition: transform .2s ease-in-out, background-color .2s ease-in-out; }

@keyframes lum-fade {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@keyframes lum-fadeZoom {
  0% {
    transform: scale(0.5);
    opacity: 0; }
  100% {
    transform: scale(1);
    opacity: 1; } }

@keyframes lum-loader-rotate {
  0% {
    transform: translate(-50%, -50%) rotate(0); }
  50% {
    transform: translate(-50%, -50%) rotate(-180deg); }
  100% {
    transform: translate(-50%, -50%) rotate(-360deg); } }

@keyframes lum-loader-before {
  0% {
    transform: scale(1); }
  10% {
    transform: scale(1.2) translateX(6px); }
  25% {
    transform: scale(1.3) translateX(8px); }
  40% {
    transform: scale(1.2) translateX(6px); }
  50% {
    transform: scale(1); }
  60% {
    transform: scale(0.8) translateX(6px); }
  75% {
    transform: scale(0.7) translateX(8px); }
  90% {
    transform: scale(0.8) translateX(6px); }
  100% {
    transform: scale(1); } }

@keyframes lum-loader-after {
  0% {
    transform: scale(1); }
  10% {
    transform: scale(1.2) translateX(-6px); }
  25% {
    transform: scale(1.3) translateX(-8px); }
  40% {
    transform: scale(1.2) translateX(-6px); }
  50% {
    transform: scale(1); }
  60% {
    transform: scale(0.8) translateX(-6px); }
  75% {
    transform: scale(0.7) translateX(-8px); }
  90% {
    transform: scale(0.8) translateX(-6px); }
  100% {
    transform: scale(1); } }

.lum-lightbox {
  background: rgba(0, 0, 0, 0.6);
  z-index: 999; }

.lum-lightbox-inner {
  top: 2.5%;
  right: 2.5%;
  bottom: 2.5%;
  left: 2.5%; }

.lum-lightbox-inner img {
  position: relative; }

.lum-lightbox-inner .lum-lightbox-caption {
  margin: 0 auto;
  color: #fff;
  max-width: 700px;
  text-align: center; }

.lum-loading .lum-lightbox-loader {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 66px;
  height: 20px;
  animation: lum-loader-rotate 1800ms infinite linear; }

.lum-lightbox-loader:before, .lum-lightbox-loader:after {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  top: 50%;
  margin-top: -10px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.9); }

.lum-lightbox-loader:before {
  left: 0;
  animation: lum-loader-before 1800ms infinite linear; }

.lum-lightbox-loader:after {
  right: 0;
  animation: lum-loader-after 1800ms infinite linear;
  animation-delay: -900ms; }

.lum-lightbox.lum-opening {
  animation: lum-fade 180ms ease-out; }

.lum-lightbox.lum-opening .lum-lightbox-inner {
  animation: lum-fadeZoom 180ms ease-out; }

.lum-lightbox.lum-closing {
  animation: lum-fade 300ms ease-in;
  animation-direction: reverse; }

.lum-lightbox.lum-closing .lum-lightbox-inner {
  animation: lum-fadeZoom 300ms ease-in;
  animation-direction: reverse; }

.lum-img {
  transition: opacity 120ms ease-out; }

.lum-loading .lum-img {
  opacity: 0; }

.lum-gallery-button {
  overflow: hidden;
  text-indent: 150%;
  white-space: nowrap;
  background: transparent;
  border: 0;
  margin: 0;
  padding: 0;
  outline: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  height: 100px;
  max-height: 100%;
  width: 60px;
  cursor: pointer; }

.lum-previous-button {
  left: 12px; }

.lum-next-button {
  right: 12px; }

.lum-gallery-button:after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  width: 36px;
  height: 36px;
  border-top: 4px solid rgba(255, 255, 255, 0.8); }

.lum-previous-button:after {
  transform: translateY(-50%) rotate(-45deg);
  border-left: 4px solid rgba(255, 255, 255, 0.8);
  box-shadow: -2px 0 rgba(0, 0, 0, 0.2);
  left: 12%;
  border-radius: 3px 0 0 0; }

.lum-next-button:after {
  transform: translateY(-50%) rotate(45deg);
  border-right: 4px solid rgba(255, 255, 255, 0.8);
  box-shadow: 2px 0 rgba(0, 0, 0, 0.2);
  right: 12%;
  border-radius: 0 3px 0 0; }

@media (max-width: 29.9375em) {
  .quote {
    margin-left: 0;
    margin-right: 0; } }

@media (min-width: 30em) {
  .quote.-left {
    float: left;
    margin-left: 0;
    margin-top: -1em;
    max-width: 250px; } }

@media (min-width: 85.25em) {
  .quote.-left {
    margin-left: -100px; } }

@media (min-width: 30em) {
  .quote.-right {
    float: right;
    margin-right: 0;
    margin-top: -1em;
    max-width: 250px; } }

@media (min-width: 85.25em) {
  .quote.-right {
    margin-right: -100px; } }

.sidebar-container {
  background-color: #DDDDDD;
  padding: 20px;
  margin-top: 40px; }
  .sidebar-container h4 {
    font-family: "Open Sans Condensed", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 1.250em;
    font-weight: 700;
    text-transform: uppercase;
    margin-top: 0;
    padding: 20px 0; }

.sidebar-nav {
  background-color: white;
  display: block;
  width: 100%; }
  .sidebar-nav ul {
    font-size: .875rem;
    padding: 12px 20px; }

.sidebar-nav__title {
  background-color: #03123F;
  color: white;
  font-weight: 600;
  margin: 0;
  padding: 7px 15px;
  text-transform: uppercase; }

.sidebar-nav__item {
  font-size: .9375em;
  font-weight: 400;
  list-style: none; }
  .sidebar-nav__item a {
    color: #03123F;
    left: 0;
    position: relative;
    transition: color .2s; }
    .sidebar-nav__item a:hover {
      color: #082ea0; }
  .sidebar-nav__item.-active a {
    font-weight: 600; }

.schedule__list .schedule-item:not(:first-child),
.schedule__list .schedule__heading {
  border-top: 1px solid #979797; }

.schedule__list .schedule__arrow {
  display: none; }

.schedule {
  transition: background-color 150ms linear;
  align-items: center;
  color: #03123F;
  padding: 20px 20px;
  position: relative; }
  @media (min-width: 63.75em) {
    .schedule {
      padding: 20px 40px; } }
  .schedule > p {
    font-size: 0.813em; }

.schedule__title {
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.125em;
  font-weight: 700; }

.schedule__meta {
  position: relative; }
  .schedule__meta p {
    margin: 0; }
  .schedule__meta.-date {
    font-weight: 700; }

.schedule__cta {
  height: 100%;
  justify-content: center;
  display: flex;
  flex-direction: column;
  border-radius: 2px;
  padding: 20px; }
  .schedule__cta p {
    color: #F5F5F0;
    font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
    font-size: 1.125em;
    font-style: italic;
    margin: .5em 0; }

.schedule__heading {
  padding-top: 0;
  padding-bottom: 0;
  display: none; }
  .schedule__heading p {
    font-weight: 700;
    margin: 0; }
  @media (min-width: 63.75em) {
    .schedule__heading {
      display: grid; } }

.sidebar-callout {
  background-color: #5C4D9C;
  padding: 20px;
  margin: 20px 0;
  text-align: center; }
  .sidebar-callout a {
    font-style: normal;
    color: white; }
  .sidebar-callout .sidebar-callout__heading, .sidebar-callout img {
    color: white;
    font-family: "Open Sans Condensed", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 1.375em;
    margin-bottom: 20px;
    padding: 0; }

.tab-panel {
  height: 0;
  opacity: 0;
  overflow: hidden;
  transition: opacity .25s; }
  .tab-panel.is-active {
    height: auto;
    opacity: 1; }

.tablist {
  border-top: 1px solid #F5F5F0;
  border-left: none;
  margin-top: 0;
  padding: 4em 7%;
  position: relative; }
  @media (min-width: 50em) {
    .tablist {
      border-top: none;
      border-left: 1px solid #F5F5F0;
      margin-top: 4.5em;
      padding: .5em 0 4em 20%; } }
  .tablist ul {
    margin-bottom: 1.7em; }

.tablist__tab {
  font-size: .875rem;
  list-style: none;
  margin-bottom: 1.7em; }
  .tablist__tab a {
    color: #5C4D9C;
    position: relative;
    text-decoration: none;
    color: #7D7D7D;
    transition: color .25s; }
    .tablist__tab a:before {
      position: absolute;
      margin: 0 auto;
      top: 100%;
      left: 0;
      width: 100%;
      height: 2px;
      background-color: #5C4D9C;
      content: '';
      opacity: 0;
      transform: scaleX(0.8);
      transition: all .3s; }
    .tablist__tab a:hover:before {
      opacity: 1;
      transform: scaleX(1); }
  .tablist__tab.is-selected a {
    color: #53565B;
    cursor: text;
    font-weight: 700; }
    .tablist__tab.is-selected a:hover {
      color: #53565B;
      text-decoration: none; }
      .tablist__tab.is-selected a:hover:before {
        opacity: 0; }

.top-arrow {
  background-color: #DDDDDD;
  bottom: 3rem;
  color: white;
  cursor: pointer;
  display: none;
  font-size: 1.8em;
  margin: 0;
  opacity: 0.4;
  padding: 0;
  position: fixed;
  right: 3rem;
  transition: .25s opacity;
  z-index: 9999; }
  .top-arrow:hover {
    opacity: 0.65; }

.resources-title {
  padding-top: 40px;
  padding-bottom: 20px; }

.event-schedule-callout {
  background-color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  padding: 30px; }
  .event-schedule-callout h2 {
    text-align: center;
    padding-bottom: 10px; }

.featured-story {
  display: grid;
  grid-template-columns: auto;
  grid-template-rows: auto auto auto; }
  @media (min-width: 37.5em) {
    .featured-story {
      grid-template-columns: 1fr auto;
      grid-template-rows: auto auto; } }
  .featured-story .overview {
    grid-row: 1;
    grid-column: 1;
    padding-bottom: 40px; }
  .featured-story .featured-story-item {
    flex: auto;
    width: 95%;
    grid-row: 2;
    grid-column: 1; }
  .featured-story .social-callout {
    display: grid;
    text-align: center;
    background-color: white;
    padding: 20px 30px;
    grid-column: 1;
    grid-row: 3;
    grid-template-columns: auto;
    grid-template-rows: 1fr 1fr;
    margin-top: 20px;
    grid-column-gap: 40px; }
    @media (min-width: 20em) and (max-width: 37.4375em) {
      .featured-story .social-callout {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto; } }
    @media (min-width: 37.5em) {
      .featured-story .social-callout {
        margin-top: 0;
        grid-template-columns: auto;
        grid-template-rows: 1fr 1fr;
        grid-column: 2;
        grid-row: 2;
        align-self: start; } }
    @media (min-width: 50em) {
      .featured-story .social-callout {
        grid-row: 1 /span 2;
        align-self: stretch; } }
    .featured-story .social-callout .social-callout-top {
      grid-row: 1;
      grid-column: 1; }
    .featured-story .social-callout .social-callout-bottom {
      grid-row: 2;
      grid-column: 1; }
      @media (min-width: 20em) and (max-width: 37.4375em) {
        .featured-story .social-callout .social-callout-bottom {
          grid-row: 1;
          grid-column: 2; } }
      @media (min-width: 37.5em) {
        .featured-story .social-callout .social-callout-bottom {
          grid-column: 1;
          grid-row: 2; } }
      .featured-story .social-callout .social-callout-bottom i {
        min-width: 60px;
        font-size: 2em; }

.paginator {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  text-align: center;
  margin-top: 60px; }
  .paginator a, .paginator .current, .paginator .first-page, .paginator .last-page {
    padding: 10px; }
  .paginator a {
    border-top: 0.4px solid #DDDDDD;
    border-right: 0.2px solid #DDDDDD;
    border-bottom: 0.4px solid #DDDDDD;
    max-width: 44px;
    min-width: 44px;
    text-decoration: none;
    background-color: #F5F5F0;
    color: #03123F; }
  .paginator .current {
    border-top: 0.4px solid #DDDDDD;
    border-right: 0.2px solid #DDDDDD;
    border-bottom: 0.4px solid #DDDDDD;
    background-color: #DDDDDD;
    color: #7D7D7D;
    max-width: 44px;
    min-width: 44px; }
  .paginator .first-page {
    border: 0.6px solid #DDDDDD;
    border-radius: 8%;
    background-color: #F5F5F0;
    color: #03123F;
    margin-right: 10px;
    min-width: 65px; }
  .paginator .last-page {
    border: 0.6px solid #DDDDDD;
    border-radius: 8%;
    background-color: #F5F5F0;
    color: #03123F;
    margin-left: 10px;
    min-width: 65px; }
  .paginator .previous-page {
    border: 0.6px solid #DDDDDD;
    border-top-left-radius: 8%;
    border-bottom-left-radius: 8%; }
  .paginator .next-page {
    border-top: 0.6px solid #DDDDDD;
    border-right: 0.6px solid #DDDDDD;
    border-bottom: 0.6px solid #DDDDDD;
    border-top-right-radius: 8%;
    border-bottom-right-radius: 8%; }

.paginator-wrapper {
  display: flex;
  align-items: center;
  justify-content: center; }

p.contact-lead-p {
  margin: 2em;
  margin-left: 3em; }

input#phone {
  display: none; }

.judges-directory.-without-images .judge .judge-image {
  display: none !important; }

.judges-directory-filters {
  display: flex;
  flex-wrap: wrap; }
  .judges-directory-filters button,
  .judges-directory-filters select {
    margin-right: 1.25rem; }
  .judges-directory-filters button {
    margin-bottom: 0; }
  .judges-directory-filters select {
    padding-left: 1rem;
    width: auto;
    flex: 1; }
    .judges-directory-filters select:last-of-type {
      margin-right: 0; }
  .judges-directory-filters p {
    width: 100%; }

.judge-group {
  margin-bottom: 2rem; }
  .judge-group h3 {
    font-size: 2rem;
    margin: 0 0 2rem; }

.judge .judge-image {
  display: block;
  margin-bottom: 0.5rem; }
  .judge .judge-image img {
    padding: 5px;
    border: 1px solid #ccc;
    transition: all 0.3s ease-in-out; }
  .judge .judge-image:hover img {
    border-color: #aaa; }

.judge-detail-header {
  display: flex;
  justify-content: space-between; }
  .judge-detail-header > div:first-of-type {
    margin-right: 2rem; }
  .judge-detail-header h2 {
    margin-top: 0; }
  .judge-detail-header .image-wrapper {
    max-width: 40%; }
    @media (min-width: 37.5em) {
      .judge-detail-header .image-wrapper {
        max-width: none; } }

.separator.small {
  min-height: 3em; }

.separator.medium {
  min-height: 6em; }

.separator.large {
  min-height: 9em; }

.rss-wrapper {
  position: relative;
  font-size: 0.875em;
  display: inline-block;
  top: 0;
  right: 0; }
  .rss-wrapper + .breadcrumb {
    margin-top: 2.5em; }
  @media (min-width: 50em) {
    .rss-wrapper {
      position: absolute;
      z-index: 1; } }
  .rss-wrapper .fa {
    color: #F59333;
    margin-right: 5px;
    position: relative;
    top: 1px;
    font-size: 1.14em; }
  .rss-wrapper a {
    text-decoration: none; }
    .rss-wrapper a:hover {
      text-decoration: underline; }

.Carousel {
  position: absolute;
  width: 100%; }
  .Carousel .swiper-slide {
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover; }
    .Carousel .swiper-slide img {
      width: 100%;
      height: auto;
      position: absolute;
      /* Position the image in the middle of its container. */
      top: -9999px;
      right: -9999px;
      bottom: -9999px;
      left: -9999px;
      margin: auto;
      /* The following values determine the exact image behaviour. */
      /* You can simulate background-size: cover/contain/etc.
         by changing between min/max/standard width/height values.
         These values simulate background-size: cover
      */
      min-width: 100%;
      min-height: 100%; }
  .Carousel .swiper-button-prev,
  .Carousel .swiper-button-next {
    color: rgba(255, 255, 255, 0.5); }
  .Carousel .swiper-pagination-bullet-active {
    background: #fff; }

.map-wrapper {
  position: relative;
  overflow: hidden; }

.gm-style .selected {
  overflow: visible !important;
  opacity: 1 !important; }
  .gm-style .selected:before {
    content: '';
    background-color: rgba(255, 255, 255, 0.6);
    border-radius: 50%;
    border: 2px solid #fff;
    display: block;
    padding: 21px 22px;
    position: relative;
    left: -8px;
    top: -8px; }

#map-listing-info {
  width: 300px;
  min-width: 300px;
  height: 100%;
  background: #F5F5F0;
  position: absolute;
  z-index: 1;
  border-right: 2px solid #7D7D7D;
  transform: translateX(-100%);
  transition: transform 0.3s ease-in-out;
  overflow: scroll;
  padding: 0 20px; }
  #map-listing-info .fa-window-close {
    position: absolute;
    right: 10px;
    top: 10px; }
    #map-listing-info .fa-window-close:hover {
      cursor: pointer; }
  #map-listing-info.active {
    transform: translateX(0); }
  #map-listing-info p {
    font-size: 0.875em;
    line-height: 1.5; }
    #map-listing-info p:last-of-type {
      font-size: 0.75em; }

.clear-both {
  clear: both; }

.article {
  padding: 20px; }
  @media (min-width: 50em) {
    .article {
      padding: 20px 40px; } }

.article__title {
  color: #03123F;
  font-size: 1.375rem;
  text-transform: uppercase; }

.article__title-alt {
  font-size: 3rem;
  margin-bottom: 1em; }

.social-post-container .fab {
  font-size: 2em;
  margin-right: .5em; }

.connect-bar {
  padding: 3.875rem 0 !important; }
  .connect-bar .grid-item {
    margin-bottom: 0 !important; }

.connect-bar__title {
  color: white;
  font-size: 1.875rem;
  margin-bottom: .75em;
  text-align: center; }
  @media (min-width: 50em) {
    .connect-bar__title {
      margin-bottom: 0;
      text-align: left; } }

.connect-bar__social-icons {
  text-align: center; }
  @media (min-width: 50em) {
    .connect-bar__social-icons {
      text-align: right; } }

.connect-bar__icon {
  background-color: rgba(0, 0, 0, 0.2);
  color: white;
  display: inline-block;
  font-size: 1.25em;
  height: 50px;
  position: relative;
  text-align: center;
  transition: all .25s;
  width: 50px; }
  .connect-bar__icon:hover {
    background-color: rgba(0, 0, 0, 0.3); }
  .connect-bar__icon .icon {
    display: block;
    position: relative;
    top: 50%;
    transform: translateY(-50%); }

.e2ma_signup_form {
  padding: 0 !important; }

.event-detail-content {
  float: none !important;
  margin-left: auto !important;
  margin-right: auto !important; }

.global-footer, .e2ma_signup_form {
  background-color: #03123F;
  color: #F5F5F0;
  font-size: .813rem;
  font-weight: 300;
  padding: 60px 0 25px;
  text-align: center; }
  @media (min-width: 37.5em) {
    .global-footer, .e2ma_signup_form {
      text-align: left; } }
  .global-footer li, .e2ma_signup_form li {
    margin-bottom: 0; }
  .global-footer p, .e2ma_signup_form p {
    color: #F5F5F0;
    margin: 0;
    font-size: .813rem;
    font-weight: 300; }
  .global-footer .form-control, .e2ma_signup_form .form-control, .global-footer .e2ma_signup_form_element > input, .e2ma_signup_form .e2ma_signup_form_element > input {
    height: 31px;
    line-height: 1.33;
    padding: 6px 8px; }
  .global-footer .form-control-group, .e2ma_signup_form .form-control-group, .global-footer .e2ma_signup_form_row, .e2ma_signup_form .e2ma_signup_form_row {
    margin-bottom: 0.625em;
    margin-top: 0.625em; }

.global-footer__heading {
  color: #F5F5F0;
  font-size: .813rem;
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-weight: 700;
  text-transform: none; }

.global-footer__social {
  padding-bottom: 20px; }
  .global-footer__social .grid.-col3, .global-footer__social .-col3.callout, .global-footer__social .-col3.event__list.-grid {
    grid-template-columns: 50px 50px 50px; }
    @media (min-width: 63.75em) {
      .global-footer__social .grid.-col3, .global-footer__social .-col3.callout, .global-footer__social .-col3.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr; } }
  .global-footer__social a {
    color: #DDDDDD;
    text-decoration: none;
    transition: color .25s; }
    .global-footer__social a:hover {
      color: #7D7D7D; }
  .global-footer__social i {
    font-size: 32px; }
  .global-footer__social p {
    text-align: right;
    color: #7D7D7D;
    font-size: .6875rem;
    line-height: 1.3; }
  .global-footer__social #donate {
    padding-top: 50px; }

.global-footer__social-container {
  display: flex;
  justify-content: center; }

.global-footer__legal {
  text-align: center;
  margin-top: 60px; }

.global-header {
  background-color: white;
  max-height: 103px;
  overflow-y: hidden;
  position: relative;
  transition: max-height .5s ease, background-color .5s ease;
  z-index: 50; }
  @media (min-width: 63.75em) {
    .global-header {
      height: 103px;
      max-height: 103px;
      overflow-y: visible; } }
  .global-header.-expanded {
    background-color: white;
    max-height: 1000px;
    position: relative; }
    .primary-nav > li .global-header.-expanded.active {
      display: block; }
    .global-header.-expanded + main {
      opacity: 0.5; }
  .global-header > .container {
    height: 100%; }

.global-navigation {
  display: block;
  margin-bottom: 2.5em;
  margin-top: 2px; }
  .global-navigation:after {
    clear: both;
    content: '';
    display: table; }
  @media (min-width: 63.75em) {
    .global-navigation {
      margin-bottom: 0;
      margin-top: 0; } }

.hero {
  background-color: #2F3D47;
  position: relative; }
  .hero:after {
    clear: both;
    content: '';
    display: table; }
  .hero.-with-image {
    background-position: center center;
    background-size: cover;
    color: #fff;
    height: 360px;
    overflow: hidden; }
    @media (min-width: 50em) {
      .hero.-with-image {
        height: 435px; } }
    @media (min-width: 63.75em) {
      .hero.-with-image {
        height: 490px; } }
    .hero.-with-image:after {
      background-color: rgba(0, 0, 0, 0.3);
      bottom: 0;
      content: '';
      display: block;
      left: 0;
      pointer-events: none;
      position: absolute;
      top: 0;
      right: 0;
      z-index: 10; }
    .hero.-with-image.-top {
      background-position: top; }
  .hero .container {
    align-items: center;
    height: 100%;
    z-index: 20;
    max-width: 85vw;
    margin-left: auto;
    margin-right: auto; }
  .hero.-oversized {
    height: 770px !important; }
  .hero.-small, .hero.e2ma_signup_form_button {
    height: 250px; }
    .hero.-small .Carousel, .hero.e2ma_signup_form_button .Carousel {
      height: 250px; }
    @media (min-width: 50em) {
      .hero.-small, .hero.e2ma_signup_form_button {
        height: 320px; }
        .hero.-small .Carousel, .hero.e2ma_signup_form_button .Carousel {
          height: 320px; } }
    @media (min-width: 63.75em) {
      .hero.-small, .hero.e2ma_signup_form_button {
        height: 390px; }
        .hero.-small .Carousel, .hero.e2ma_signup_form_button .Carousel {
          height: 390px; } }
  .hero video {
    height: auto;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 1; }

.main-content,
.main-content.container {
  position: relative;
  z-index: 20; }

/* YouTube TV */
/* Base Canvas */
.ytv-canvas {
  display: block;
  background: #282828;
  overflow: hidden;
  font-family: arial, sans-serif; }

.ytv-canvas ::-webkit-scrollbar {
  border-left: 1px solid #000;
  width: 10px; }

.ytv-canvas ::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1); }

/* Video */
.ytv-video {
  position: absolute;
  top: 0;
  right: 300px;
  bottom: 0;
  left: 0;
  height: 100%; }

.ytv-video iframe {
  width: 100%;
  height: 100%;
  border: none;
  outline: none;
  display: block; }

/* List */
.ytv-list {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  height: 100%;
  width: 300px;
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  background-color: #F5F5F0; }

.ytv-list-inner {
  overflow: auto;
  position: absolute;
  top: 52px;
  right: 0;
  bottom: 0;
  left: 0;
  -webkit-overflow-scrolling: touch; }

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

.ytv-list .ytv-active a {
  border-left: 2px solid #fff;
  background: #DDDDDD !important; }

.ytv-list a {
  display: block;
  text-decoration: none;
  font-size: 11px;
  color: #FEFEFE;
  padding: 10px;
  padding-left: 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  border-bottom: 1px solid rgba(0, 0, 0, 0.5);
  border-left: 2px solid transparent; }

.ytv-list a b {
  max-height: 45px;
  overflow: hidden;
  display: block;
  text-overflow: ellipsis; }

.ytv-list li:first-child a {
  border-top: none; }

.ytv-list li:last-child a {
  border-bottom: none; }

.ytv-list a:hover,
.ytv-list-header .ytv-playlists a:hover {
  background: #DDDDDD !important; }

.ytv-list a:active,
.ytv-list-header .ytv-playlists a:active {
  background: rgba(0, 0, 0, 0.05); }

.ytv-list .ytv-content {
  padding-left: 125px; }

.ytv-list .ytv-thumb-stroke {
  position: absolute;
  top: 1px;
  left: 1px;
  bottom: 1px;
  right: 1px;
  z-index: 2;
  outline: 1px solid rgba(255, 255, 255, 0.1); }

.ytv-list .ytv-thumb {
  float: left;
  position: relative;
  outline: 1px solid rgba(0, 0, 0, 0.5); }

.ytv-list .ytv-thumb img {
  width: 120px;
  display: block; }

.ytv-list .ytv-thumb span {
  position: absolute;
  bottom: 5px;
  right: 5px;
  color: #eee;
  background: rgba(0, 0, 0, 0.7);
  font-size: 11px;
  font-weight: bold;
  padding: 0px 4px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px; }

.ytv-views {
  display: block;
  margin-top: 5px;
  font-size: 10px;
  font-weight: normal;
  opacity: 0.3; }

.ytv-list-header {
  height: 52px;
  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); }

.ytv-list-header a {
  background: rgba(255, 255, 255, 0.05);
  position: relative;
  z-index: 10;
  background-color: #F5F5F0 !important; }

.ytv-list-header img,
.ytv-list .ytv-playlists .ytv-thumb img {
  width: 30px;
  vertical-align: middle; }

.ytv-list-header span {
  padding-left: 10px;
  font-size: 12px;
  font-weight: bold; }

/* Playlists */
.ytv-playlists {
  z-index: 9;
  position: absolute;
  background: #282828;
  top: 52px;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: auto;
  display: none; }

.ytv-playlists img,
.ytv-list-header img {
  float: left; }

.ytv-playlists a span,
.ytv-list-header a span {
  white-space: nowrap;
  padding-left: 10px;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis; }

.ytv-list-header > a span {
  line-height: 30px; }

.ytv-list-header .ytv-playlists a {
  background: none; }

.ytv-playlist-open .ytv-playlists {
  display: block; }

/* Modifiers */
.ytv-relative {
  position: relative;
  width: 100%;
  height: 100%; }

.ytv-full {
  position: fixed;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important; }

.ytv-arrow {
  height: 10px;
  width: 0;
  position: relative;
  top: 10px;
  right: 5px;
  border: 10px solid transparent;
  float: right;
  border-top-color: rgba(0, 0, 0, 0.4);
  display: none; }

.ytv-has-playlists .ytv-arrow {
  display: inline-block; }

.ytv-playlist-open .ytv-arrow {
  border-color: transparent;
  border-bottom-color: rgba(0, 0, 0, 0.4);
  top: -10px; }

.ytv-list-header a:after,
.ytv-clear:after {
  content: ".";
  display: block;
  clear: both;
  visibility: hidden;
  line-height: 0;
  height: 0; }

.-docs {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto auto auto auto; }
  @media (min-width: 37.5em) {
    .-docs {
      grid-template-columns: auto 1fr; } }
  .-docs .main {
    grid-row: 3;
    grid-column: 1; }
    @media (min-width: 37.5em) {
      .-docs .main {
        grid-column: 2; } }
  .-docs .logo-bar {
    background-color: #F5F5F0;
    display: none; }
    @media (min-width: 37.5em) {
      .-docs .logo-bar {
        display: flex;
        text-align: center;
        width: 100%;
        grid-column: 1 /span 2;
        grid-row: 2;
        align-items: center; } }
    .-docs .logo-bar .-docs-head-logo {
      width: 100px;
      padding: 10px;
      height: 100%; }
  .-docs .global-footer, .-docs .e2ma_signup_form {
    grid-row: 4;
    grid-column: 1; }
    @media (min-width: 37.5em) {
      .-docs .global-footer, .-docs .e2ma_signup_form {
        grid-column: 1 /span 2; } }
  .-docs h1.hero__content__headline {
    font-size: 2em;
    line-height: 1.5em;
    margin: 0.5em;
    display: inline-block; }
    @media (min-width: 50em) {
      .-docs h1.hero__content__headline {
        font-size: 3em;
        padding: .2em; } }
  .-docs .secondary-nav {
    grid-row: 1;
    grid-column: 1; }
    @media (min-width: 37.5em) {
      .-docs .secondary-nav {
        grid-column: 1 /span 2; } }

.docs-header {
  grid-row: 2;
  grid-column: 1 /span 2; }
  @media (min-width: 37.5em) {
    .docs-header {
      grid-row: 3;
      grid-column: 1;
      width: 250px;
      background-color: #03123F; } }
  @media (min-width: 37.5em) {
    .docs-header .docs-nav {
      background-color: #03123F;
      padding: 0; } }
  .docs-header .docs-global-header {
    max-height: 85px;
    overflow-y: hidden;
    position: relative;
    z-index: 50; }
    @media (min-width: 37.5em) {
      .docs-header .docs-global-header {
        overflow-y: visible;
        height: 100vh;
        display: grid;
        grid-template-columns: auto;
        grid-template-rows: auto auto auto; } }
    .docs-header .docs-global-header.-expanded {
      background-color: #F5F5F0;
      max-height: 1000px;
      position: relative; }
      @media (min-width: 37.5em) {
        .docs-header .docs-global-header.-expanded {
          background-color: #03123F; } }
      .primary-nav > li .docs-header .docs-global-header.-expanded.active {
        display: block; }
      .docs-header .docs-global-header.-expanded + main {
        opacity: 0.5; }
    .docs-header .docs-global-header > .container {
      height: 100%; }
  .docs-header .burger {
    position: relative;
    float: right;
    height: 0;
    padding: 25px 10px 10px 10px;
    z-index: 100;
    grid-column: 1;
    align-self: start;
    max-width: 100px;
    display: block;
    color: #F5F5F0; }
    @media (min-width: 37.5em) {
      .docs-header .burger {
        display: none; } }
  @media (min-width: 63.75em) {
    .docs-header .primary-nav {
      padding-top: 20px;
      padding-right: 1em;
      padding-bottom: 1em; } }
  @media (min-width: 63.75em) {
    .docs-header .primary-nav > .primary-nav__item {
      float: none;
      position: relative; } }
  .docs-header .-docs-nav-logo {
    display: block;
    height: 80px; }
    @media (min-width: 37.5em) {
      .docs-header .-docs-nav-logo {
        display: none; } }
  .docs-header .nav-menu {
    background-color: transparent;
    border-bottom: none; }
    @media (min-width: 37.5em) {
      .docs-header .nav-menu {
        min-width: 0; } }
    @media (min-width: 63.75em) {
      .docs-header .nav-menu {
        border: none;
        position: relative; }
        .docs-header .nav-menu:not(.edge):before {
          content: none; }
        .docs-header .nav-menu:not(.edge):after {
          content: none; }
        .docs-header .nav-menu.edge {
          right: 0; }
          .docs-header .nav-menu.edge:before {
            content: none; }
          .docs-header .nav-menu.edge:after {
            content: none; } }
  .primary-nav > li:hover .docs-header {
    color: #041957; }
  @media (min-width: 63.75em) {
    .docs-header .nav-link {
      text-align: left; } }
  .docs-header .nav-link.-primary, .docs-header .nav-link.e2ma_signup_form_button {
    color: #03123F; }
    @media (min-width: 37.5em) {
      .docs-header .nav-link.-primary, .docs-header .nav-link.e2ma_signup_form_button {
        color: #DDDDDD; } }
    @media (min-width: 63.75em) {
      .docs-header .nav-link.-primary, .docs-header .nav-link.e2ma_signup_form_button {
        padding: 1em; } }
    .primary-nav.expanded .docs-header .nav-link.-primary, .primary-nav.expanded .docs-header .nav-link.e2ma_signup_form_button {
      color: #DDDDDD; }
      .primary-nav.expanded .docs-header .nav-link.-primary:hover, .primary-nav.expanded .docs-header .nav-link.e2ma_signup_form_button:hover {
        color: #F5F5F0; }
  .docs-header .nav-link i {
    display: none; }
    @media (min-width: 63.75em) {
      .docs-header .nav-link i {
        display: block; } }
  .primary-nav > li:hover .docs-header .nav-link.-active,
  .primary-nav > li:hover .docs-header .nav-link:hover,
  .primary-nav > li:hover .docs-header .nav-link:active,
  .primary-nav > li:hover .docs-header .nav-link:focus {
    color: #F5F5F0; }
  .docs-header .nav-link.-dropdown-link {
    color: #F5F5F0; }
  @media (min-width: 63.75em) {
    .primary-nav .docs-header .nav-link {
      text-align: left; } }
  @media (min-width: 63.75em) {
    .docs-header .nav-link.-active, .docs-header .nav-link:hover, .docs-header .nav-link:active, .docs-header .nav-link:focus {
      color: #F5F5F0; } }
  .docs-header .nav-link-button {
    color: #03123F;
    cursor: pointer; }
    @media (min-width: 37.5em) {
      .docs-header .nav-link-button {
        color: #DDDDDD; } }
    @media (min-width: 63.75em) {
      .docs-header .nav-link-button {
        display: block; } }
    .docs-header .nav-link-button:hover {
      color: blue; }
      @media (min-width: 37.5em) {
        .docs-header .nav-link-button:hover {
          color: #F5F5F0; } }
  .docs-header .docs-nav h2 {
    font-size: 1.2em;
    padding-top: 2em;
    padding-left: 1em;
    color: #53565B; }
    @media (min-width: 37.5em) {
      .docs-header .docs-nav h2 {
        color: #F5F5F0;
        grid-row: 2; } }
  .docs-header .docs-nav li {
    list-style: none;
    text-align: left;
    padding-left: 1.25em; }
    @media (min-width: 37.5em) {
      .docs-header .docs-nav li {
        padding-left: 0; } }
  .docs-header .docs-nav a {
    font-size: .9em;
    text-decoration: none;
    color: #53565B; }
    @media (min-width: 37.5em) {
      .docs-header .docs-nav a {
        color: #DDDDDD; } }
  .docs-header ul {
    padding-right: 1em;
    padding-bottom: 1em;
    background-color: #F5F5F0; }
    @media (min-width: 37.5em) {
      .docs-header ul {
        background-color: #03123F;
        grid-row: 3; } }
  .docs-header .-docs-head-logo {
    display: block; }
    @media (min-width: 37.5em) {
      .docs-header .-docs-head-logo {
        height: 85px; } }
  .docs-header .-docs-head-logo a {
    display: block;
    height: 80px; }
    @media (min-width: 37.5em) {
      .docs-header .-docs-head-logo a {
        display: none; } }
  .docs-header .global-header .primary-nav {
    padding-top: 20px; }
    @media (min-width: 63.75em) {
      .docs-header .global-header .primary-nav {
        float: none;
        padding-right: 1em; } }
  .docs-header .primary-nav .primary-nav__item {
    border-bottom: 1px solid #03123F; }
    @media (min-width: 37.5em) {
      .docs-header .primary-nav .primary-nav__item {
        border-bottom: 1px solid #F5F5F0; } }
    @media (min-width: 63.75em) {
      .docs-header .primary-nav .primary-nav__item {
        float: none; } }
  @media (min-width: 37.5em) {
    .docs-header .primary-nav__item:hover a {
      color: #DDDDDD; } }
  @media (min-width: 37.5em) {
    .docs-header .primary-nav > li:hover .nav-link.-primary, .docs-header .primary-nav > li:hover .nav-link.e2ma_signup_form_button {
      color: #F5F5F0; } }
  @media (min-width: 37.5em) {
    .docs-header .nav-menu li:hover a {
      color: #F5F5F0; } }
  .docs-header .primary-nav__item {
    max-width: 100vw; }

.four-o-four-pg .global-search {
  position: relative;
  margin: auto;
  display: grid;
  width: 90%;
  grid-template-rows: 100%;
  grid-template-columns: 1fr auto; }
  @media (min-width: 37.5em) {
    .four-o-four-pg .global-search {
      width: 70%; } }

.four-o-four-pg .button.-primary, .four-o-four-pg .e2ma_signup_form_button {
  grid-row: 1;
  grid-column: 2;
  margin-bottom: 0; }

.four-o-four-pg input#global-search {
  font-size: 1em;
  grid-column: 1;
  grid-row: 1; }

.styleguide__nav {
  background-color: darkgray;
  color: white;
  display: block; }
  .styleguide__nav ul {
    display: block;
    list-style: none; }
  .styleguide__nav li {
    list-style: none;
    display: inline-block; }
    .styleguide__nav li a {
      color: white;
      display: block;
      padding: .25em .5em; }

.sg__item {
  margin-top: 2em;
  margin-bottom: 2em; }

.sg__heading {
  border-bottom: 1px solid #ddd;
  color: gray;
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 70%;
  font-weight: normal;
  margin-bottom: 2em;
  padding: 1em 0; }

.sg__color {
  border: 1px solid #ddd;
  display: inline-block;
  padding: .3em;
  width: 5em; }
  .sg__color .sg__color__swatch {
    display: block;
    height: 4em;
    margin-bottom: .2em;
    width: 100%; }
    .sg__color .sg__color__swatch.-color--gray--xlight {
      background-color: #F5F5F0; }
    .sg__color .sg__color__swatch.-color--gray--light {
      background-color: #DDDDDD; }
    .sg__color .sg__color__swatch.-color--gray--base {
      background-color: #7D7D7D; }
    .sg__color .sg__color__swatch.-color--gray--dark {
      background-color: #53565B; }
    .sg__color .sg__color__swatch.-color--gray--xdark {
      background-color: #2F3D47; }
    .sg__color .sg__color__swatch.-color--green--base {
      background-color: #DDDDDD; }
    .sg__color .sg__color__swatch.-color--blue--base {
      background-color: #03123F; }
    .sg__color .sg__color__swatch.-color--orange--base {
      background-color: #F59333; }
    .sg__color .sg__color__swatch.-color--purple--base {
      background-color: #5C4D9C; }
    .sg__color .sg__color__swatch.-color--alert--levelInfo {
      background-color: #A7BF8B; }
    .sg__color .sg__color__swatch.-color--alert--levelNotice {
      background-color: #F59333; }
    .sg__color .sg__color__swatch.-color--alert--levelCritical {
      background-color: #F44336; }
  .sg__color .sg__color__label {
    font-size: 80%; }

.sg__icon {
  display: inline-block; }

.sg__todo {
  background-color: red;
  color: white;
  font-weight: bold;
  padding: .15em; }

.styleguide .section-wrapper {
  padding: 5em 0; }

.styleguide .hero.-with-image {
  margin-bottom: 0; }

.styleguide .logo.-display-only {
  background-color: #fff;
  height: 200px;
  padding: 1.5em;
  width: 205px; }

.container {
  max-width: 1250px; }
  @media (min-width: 1250px) {
    .container {
      margin-left: auto;
      margin-right: auto; } }
  .container.-full {
    max-width: none; }
  .container.-gray {
    background-color: #F5F5F0; }

.section-wrapper {
  background-color: transparent;
  margin-bottom: 20px;
  margin-top: 20px;
  padding: 20px 20px; }
  @media (min-width: 50em) {
    .section-wrapper {
      padding: 20px 40px; } }
  @media (min-width: 63.75em) {
    .global-header .section-wrapper {
      padding: 20px 30px; } }
  .section-wrapper.-white {
    background-color: white; }
  .section-wrapper.-gray {
    background-color: #F5F5F0; }
  .section-wrapper.-green {
    background-color: #DDDDDD; }
  .section-wrapper.-flush-bottom {
    margin-bottom: 0;
    padding-bottom: 0; }
  .section-wrapper.-flush-top {
    margin-top: 0;
    padding-top: 0; }
  .section-wrapper.-flush-left {
    padding-left: 0; }
  .section-wrapper.-flush-right {
    padding-right: 0; }
  .section-wrapper.-flush-all {
    margin: 0;
    padding: 0; }

.upcoming-events {
  background-color: #F5F5F0;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 20px 20px;
  margin: 20px 0; }
  @media (min-width: 63.75em) {
    .upcoming-events {
      padding: 20px 40px; } }

.upcoming-events__controls {
  align-self: center; }
  .upcoming-events__controls i {
    transition: color 150ms linear;
    color: #03123F;
    font-size: 40px;
    padding: 5px;
    cursor: pointer; }
    .upcoming-events__controls i:hover {
      color: #979797; }

.fb-comments {
  display: flex;
  justify-content: center; }

@media print {
  * {
    background: transparent !important;
    box-shadow: none !important;
    color: #000 !important;
    text-shadow: none !important; }
  a,
  a:visited {
    text-decoration: underline; }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid; }
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: .5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2, h3 {
    page-break-after: avoid; }
  /**
   * Add Site-specific styles below
   */ }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsIl9ub3JtYWxpemUuc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvX2JyZWFrcG9pbnQuc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fY29udGV4dC5zY3NzIiwiLi4vLi4vdmVuZG9yL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19oZWxwZXJzLnNjc3MiLCIuLi8uLi92ZW5kb3IvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX3BhcnNlcnMuc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL19xdWVyeS5zY3NzIiwiLi4vLi4vdmVuZG9yL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3NpbmdsZS5zY3NzIiwiLi4vLi4vdmVuZG9yL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvc2luZ2xlL19kZWZhdWx0LnNjc3MiLCIuLi8uLi92ZW5kb3IvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fZG91YmxlLnNjc3MiLCIuLi8uLi92ZW5kb3IvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RlZmF1bHQtcGFpci5zY3NzIiwiLi4vLi4vdmVuZG9yL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kb3VibGUtc3RyaW5nLnNjc3MiLCIuLi8uLi92ZW5kb3IvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RlZmF1bHQuc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL190cmlwbGUuc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3RyaXBsZS9fZGVmYXVsdC5zY3NzIiwiLi4vLi4vdmVuZG9yL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3Jlc29sdXRpb24uc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3Jlc29sdXRpb24vX3Jlc29sdXRpb24uc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fbm8tcXVlcnkuc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fcmVzcG9uZC10by5zY3NzIiwiZnJhbWV3b3JrL19mcmFtZXdvcmsuc2NzcyIsImZyYW1ld29yay9fZnVuY3Rpb25zLnNjc3MiLCJmcmFtZXdvcmsvX21peGlucy5zY3NzIiwiX2NvbmZpZy5zY3NzIiwiX2Jhc2Uuc2NzcyIsImZvbnRzL19mb250cy5zY3NzIiwiZm9udHMvX25zY2MtaWNvbnMuc2NzcyIsImF0b21zL19hdG9tcy5zY3NzIiwiYXRvbXMvX2J1dHRvbi5zY3NzIiwiYXRvbXMvX2dsb2JhbC5zY3NzIiwiYXRvbXMvX2xpc3RzLnNjc3MiLCJhdG9tcy9fbG9hZGVyLnNjc3MiLCJhdG9tcy9fdGV4dC5zY3NzIiwiYXRvbXMvX2Zvcm1zLnNjc3MiLCJhdG9tcy9fZGF0ZXBpY2tlci5zY3NzIiwiYXRvbXMvX3RhYmxlcy5zY3NzIiwiYXRvbXMvX3ZpZGVvLWVtYmVkLnNjc3MiLCJtb2xlY3VsZXMvX21vbGVjdWxlcy5zY3NzIiwibW9sZWN1bGVzL19ncmlkLnNjc3MiLCJtb2xlY3VsZXMvX2FjY29yZGlvbi5zY3NzIiwibW9sZWN1bGVzL19icmVhZGNydW1icy5zY3NzIiwibW9sZWN1bGVzL19jYWxsb3V0LnNjc3MiLCJtb2xlY3VsZXMvX2NhbGxvdXQtYmxvY2suc2NzcyIsIm1vbGVjdWxlcy9fY2F0ZWdvcnktc2VsZWN0LnNjc3MiLCJtb2xlY3VsZXMvX2VtYmVkLnNjc3MiLCJtb2xlY3VsZXMvX2V2ZW50LWJsb2NrLnNjc3MiLCJtb2xlY3VsZXMvX2ZlYXR1cmVkLWVudHJ5LnNjc3MiLCJtb2xlY3VsZXMvX2ZlYXR1cmVkLWV2ZW50LnNjc3MiLCJtb2xlY3VsZXMvZ2xvYmFsLWZvb3Rlci9fY29udGFjdC1pbmZvLnNjc3MiLCJtb2xlY3VsZXMvZ2xvYmFsLWZvb3Rlci9fbmF2LnNjc3MiLCJtb2xlY3VsZXMvZ2xvYmFsLWZvb3Rlci9fcGFydG5lcnMuc2NzcyIsIm1vbGVjdWxlcy9fZ3JpZC10aXRsZS5zY3NzIiwibW9sZWN1bGVzL19ncmlkLWZpbHRlcnMuc2NzcyIsIm1vbGVjdWxlcy9faWNvbi1saW5rcy5zY3NzIiwibW9sZWN1bGVzL19sYWJlbC5zY3NzIiwibW9sZWN1bGVzL19saXN0aW5nLWJsb2NrLnNjc3MiLCJtb2xlY3VsZXMvX2xpc3RpbmctaXRlbS5zY3NzIiwibW9sZWN1bGVzL19sb2dvLnNjc3MiLCJtb2xlY3VsZXMvX21lZGlhLnNjc3MiLCJtb2xlY3VsZXMvX292ZXJ2aWV3LnNjc3MiLCJtb2xlY3VsZXMvZ2xvYmFsLWhlYWRlci9fYnVyZ2VyLnNjc3MiLCJtb2xlY3VsZXMvZ2xvYmFsLWhlYWRlci9fbmF2LWxpbmsuc2NzcyIsIm1vbGVjdWxlcy9nbG9iYWwtaGVhZGVyL19uYXYtbGluay1idXR0b24uc2NzcyIsIm1vbGVjdWxlcy9nbG9iYWwtaGVhZGVyL19uYXYtbWVudS5zY3NzIiwibW9sZWN1bGVzL2dsb2JhbC1oZWFkZXIvX3ByaW1hcnktbmF2LnNjc3MiLCJtb2xlY3VsZXMvZ2xvYmFsLWhlYWRlci9fc2VhcmNoLWJ1dHRvbi5zY3NzIiwibW9sZWN1bGVzL2dsb2JhbC1oZWFkZXIvX3NlY29uZGFyeS1uYXYuc2NzcyIsIm1vbGVjdWxlcy9nbG9iYWwtaGVhZGVyL19kb2NzLXNlYXJjaC5zY3NzIiwibW9sZWN1bGVzL19oZXJvLWNvbnRlbnQuc2NzcyIsIm1vbGVjdWxlcy9fcGFnZS10aXRsZS5zY3NzIiwibW9sZWN1bGVzL19waG90by1nYWxsZXJ5LnNjc3MiLCJtb2xlY3VsZXMvX3F1b3RlLnNjc3MiLCJtb2xlY3VsZXMvX3NpZGViYXItbmF2LnNjc3MiLCJtb2xlY3VsZXMvX3NjaGVkdWxlLnNjc3MiLCJtb2xlY3VsZXMvX3NpZGViYXItY2FsbG91dC5zY3NzIiwibW9sZWN1bGVzL190YWItcGFuZWwuc2NzcyIsIm1vbGVjdWxlcy9fdGFibGlzdC5zY3NzIiwibW9sZWN1bGVzL190b3AtYXJyb3cuc2NzcyIsIm1vbGVjdWxlcy9fZXZlbnQtcmVzb3VyY2VzLnNjc3MiLCJtb2xlY3VsZXMvX2ZlYXR1cmVkLXN0b3J5LWJsb2NrLnNjc3MiLCJtb2xlY3VsZXMvX3BhZ2luYXRvci5zY3NzIiwibW9sZWN1bGVzL19jb250YWN0LXBhZ2Uuc2NzcyIsIm1vbGVjdWxlcy9fanVkZ2VzLWRpcmVjdG9yeS5zY3NzIiwibW9sZWN1bGVzL19zZXBhcmF0b3Iuc2NzcyIsIm1vbGVjdWxlcy9fcnNzLWZlZWQuc2NzcyIsIm1vbGVjdWxlcy9faGVyby1jYXJvdXNlbC5zY3NzIiwibW9sZWN1bGVzL19tYXAuc2NzcyIsIm1vbGVjdWxlcy9fY2xlYXItZmxvYXRzLnNjc3MiLCJvcmdhbmlzbXMvX29yZ2FuaXNtcy5zY3NzIiwib3JnYW5pc21zL19hcnRpY2xlLnNjc3MiLCJvcmdhbmlzbXMvX2Nvbm5lY3QtYmFyLnNjc3MiLCJvcmdhbmlzbXMvX2VtbWEuc2NzcyIsIm9yZ2FuaXNtcy9fZXZlbnQtZGV0YWlsLWNvbnRlbnQuc2NzcyIsIm9yZ2FuaXNtcy9fZ2xvYmFsLWZvb3Rlci5zY3NzIiwib3JnYW5pc21zL19nbG9iYWwtaGVhZGVyLnNjc3MiLCJvcmdhbmlzbXMvX2dsb2JhbC1uYXYuc2NzcyIsIm9yZ2FuaXNtcy9faGVyby5zY3NzIiwib3JnYW5pc21zL19tYWluLWNvbnRlbnQuc2NzcyIsIm9yZ2FuaXNtcy9fdmlkZW8tcGxheWxpc3Quc2NzcyIsIm9yZ2FuaXNtcy9fZG9jcy5zY3NzIiwib3JnYW5pc21zL19kb2NzLWhlYWRlci5zY3NzIiwib3JnYW5pc21zL180MDQuc2NzcyIsIl9zdHlsZWd1aWRlLnNjc3MiLCJvYmplY3RzL19vYmplY3RzLnNjc3MiLCJvYmplY3RzL19jb250YWluZXIuc2NzcyIsIm9iamVjdHMvX3NlY3Rpb24td3JhcHBlci5zY3NzIiwib2JqZWN0cy9fdXBjb21pbmctZXZlbnRzLnNjc3MiLCJvYmplY3RzL19mYi1jb21tZW50cy5zY3NzIiwiX292ZXJyaWRlLnNjc3MiLCJfcHJpbnQuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICdub3JtYWxpemUnO1xuLy8gaW1wb3J0IGFueSB2ZW5kb3IgcGFydGlhbHMgaGVyZVxuQGltcG9ydCAnLi4vLi4vdmVuZG9yL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50JztcbkBpbXBvcnQgJ2ZyYW1ld29yay9mcmFtZXdvcmsnO1xuQGltcG9ydCAnY29uZmlnJztcbkBpbXBvcnQgJ2Jhc2UnO1xuQGltcG9ydCAnZm9udHMvZm9udHMnO1xuQGltcG9ydCAnYXRvbXMvYXRvbXMnO1xuQGltcG9ydCAnbW9sZWN1bGVzL21vbGVjdWxlcyc7XG5AaW1wb3J0ICdvcmdhbmlzbXMvb3JnYW5pc21zJztcbkBpbXBvcnQgJ3N0eWxlZ3VpZGUnO1xuQGltcG9ydCAnb2JqZWN0cy9vYmplY3RzJztcbkBpbXBvcnQgJ292ZXJyaWRlJztcbkBpbXBvcnQgJ3ByaW50JzsiLCIvKiEgbm9ybWFsaXplLmNzcyB2My4wLjIgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemUgKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4gKiAgICB1c2VyIHpvb20uXG4gKi9cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICogYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cblxuaHIge1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZVxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IEZlYXR1cmVzXG4kYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhOiAgICAgIGFsbCAhZGVmYXVsdDtcbiRicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZTogICAgbWluLXdpZHRoICFkZWZhdWx0O1xuJGJyZWFrcG9pbnQtZGVmYXVsdC1wYWlyOiAgICAgICB3aWR0aCAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBUcmFuc2Zvcm1zXG4kYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGw6ICAgIGZhbHNlICFkZWZhdWx0O1xuJGJyZWFrcG9pbnQtdG8tZW1zOiAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRicmVha3BvaW50LXJlc29sdXRpb25zOiAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBObyBRdWVyeSBPcHRpb25zXG4kYnJlYWtwb2ludC1uby1xdWVyaWVzOiAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRGVmdGF1bHQgQmFzZSBGb250IFNpemVcbiRicmVha3BvaW50LWJhc2UtZm9udC1zaXplOiAgICAgMTZweCAhZGVmYXVsdDtcblxuLy8gTGVnYWN5IFN5bnRheCBTdXBwb3J0XG4kYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4OiAgICAgIGZhbHNlICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCAnYnJlYWtwb2ludC9jb250ZXh0JztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvaGVscGVycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L3BhcnNlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9uby1xdWVyeSc7XG5cbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcmVzcG9uZC10byc7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBNaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICAvLyBSZXNldCBjb250ZXh0c1xuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcblxuICAkYnJlYWtwb2ludDogYnJlYWtwb2ludCgkcXVlcnksIGZhbHNlKTtcblxuICAkcXVlcnktc3RyaW5nOiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnknKTtcbiAgJHF1ZXJ5LWZhbGxiYWNrOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnZmFsbGJhY2snKTtcblxuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnY29udGV4dCBob2xkZXInKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnkgY291bnQnKSAhZ2xvYmFsO1xuXG4gIC8vIEFsbG93IGZvciBhbiBhcy1uZWVkZWQgb3ZlcnJpZGUgb3IgdXNhZ2Ugb2Ygbm8gcXVlcnkgZmFsbGJhY2suXG4gIEBpZiAkbm8tcXVlcnkgIT0gZmFsc2Uge1xuICAgICRxdWVyeS1mYWxsYmFjazogJG5vLXF1ZXJ5O1xuICB9XG5cbiAgQGlmICRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSB7XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgfVxuXG4gIC8vIFByaW50IE91dCBRdWVyeSBTdHJpbmdcbiAgQGlmIG5vdCAkYnJlYWtwb2ludC1uby1xdWVyaWVzIHtcbiAgICBAbWVkaWEgI3skcXVlcnktc3RyaW5nfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzICE9IGZhbHNlIG9yICRicmVha3BvaW50LW5vLXF1ZXJpZXMgPT0gdHJ1ZSB7XG5cbiAgICAkdHlwZTogdHlwZS1vZigkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3MpO1xuICAgICRwcmludDogZmFsc2U7XG5cbiAgICBAaWYgKCR0eXBlID09ICdib29sJykge1xuICAgICAgJHByaW50OiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ3N0cmluZycpIHtcbiAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzIHtcbiAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ2xpc3QnKSB7XG4gICAgICBAZWFjaCAkd3JhcHBlciBpbiAkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3Mge1xuICAgICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09ICR3cmFwcGVyIHtcbiAgICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXcml0ZSBGYWxsYmFja1xuICAgIEBpZiAoJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlKSBhbmQgKCRwcmludCA9PSB0cnVlKSB7XG4gICAgICAkdHlwZS1mYWxsYmFjazogdHlwZS1vZigkcXVlcnktZmFsbGJhY2spO1xuXG4gICAgICBAaWYgKCR0eXBlLWZhbGxiYWNrICE9ICdib29sJykge1xuICAgICAgICAjeyRxdWVyeS1mYWxsYmFja30gJiB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG59XG5cblxuQG1peGluIG1xKCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBCcmVha3BvaW50IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKTtcbiRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBIYXMgQ29udGV4dFxuLy8gUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB5b3UgYXJlIGluc2lkZSBhIEJyZWFrcG9pbnQgcXVlcnlcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaGFzLWNvbnRleHQoKSB7XG4gIEBpZiBsZW5ndGgoJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCkge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgR2V0IENvbnRleHRcbi8vICRmZWF0dXJlOiBJbnB1dCBmZWF0dXJlIHRvIGdldCBpdCdzIGN1cnJlbnQgTVEgY29udGV4dC4gUmV0dXJucyBmYWxzZSBpZiBubyBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWdldC1jb250ZXh0KCRmZWF0dXJlKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSkge1xuICAgICRnZXQ6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICAgIC8vIFNwZWNpYWwgaGFuZGxpbmcgb2Ygbm8tcXVlcnkgZnJvbSBnZXQgc2lkZSBzbyAvZmFsc2UvIHByZXBlbmRzIGFyZW4ndCByZXR1cm5lZFxuICAgIEBpZiAkZmVhdHVyZSA9PSAnbm8tcXVlcnknIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRnZXQpID09ICdsaXN0JyBhbmQgbGVuZ3RoKCRnZXQpID4gMSBhbmQgbnRoKCRnZXQsIDEpID09IGZhbHNlIHtcbiAgICAgICAgJGdldDogbnRoKCRnZXQsIGxlbmd0aCgkZ2V0KSk7XG4gICAgICB9XG4gICAgfVxuICAgIEByZXR1cm4gJGdldDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIGJyZWFrcG9pbnQtaGFzLWNvbnRleHQoKSBhbmQgJGZlYXR1cmUgPT0gJ21lZGlhJyB7XG4gICAgICBAcmV0dXJuICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWE7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBmdW5jdGlvbiB0byBzZXQgY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpIHtcbiAgQGlmICR2YWx1ZSA9PSAnbW9ub2Nocm9tZScge1xuICAgICRmZWF0dXJlOiAnbW9ub2Nocm9tZSc7XG4gIH1cblxuICAkY3VycmVudDogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gIEBpZiAkY3VycmVudCBhbmQgbGVuZ3RoKCRjdXJyZW50KSA9PSAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICBAd2FybiBcIllvdSBoYXZlIGFscmVhZHkgcXVlcmllZCBhZ2FpbnN0IGAjeyRmZWF0dXJlfWAuIFVuZXhwZWN0ZWQgdGhpbmdzIG1heSBoYXBwZW4gaWYgeW91IHF1ZXJ5IGFnYWluc3QgdGhlIHNhbWUgZmVhdHVyZSBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc2FtZSBgYW5kYCBxdWVyeS4gQnJlYWtwb2ludCBpcyBvdmVyd3JpdGluZyB0aGUgY3VycmVudCBjb250ZXh0IHdpdGggYCN7JHZhbHVlfWBcIjtcbiAgfVxuXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpIHtcbiAgICAkdi1ob2xkZXI6ICgpO1xuICAgIEBmb3IgJGkgZnJvbSAxIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkdmFsdWUpO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGZlYXR1cmU6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2LWhvbGRlcjogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCR2LWhvbGRlcik7XG4gICAgQGZvciAkaSBmcm9tICRsZW5ndGggdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCAtIDEge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkdmFsdWUpO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGZlYXR1cmU6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBmdW5jdGlvbiB0byByZXNldCBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMge1xuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb252ZXJ0cyB0aGUgaW5wdXQgdmFsdWUgdG8gQmFzZSBFTXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkdmFsdWUpIHtcbiAgJHZhbHVlLXVuaXQ6IHVuaXQoJHZhbHVlKTtcblxuICAvLyBXaWxsIGNvbnZlcnQgcmVsYXRpdmUgRU1zIGludG8gcm9vdCBFTXMuXG4gIEBpZiAkYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZSBhbmQgdHlwZS1vZigkYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZSkgPT0gJ251bWJlcicgYW5kICR2YWx1ZS11bml0ID09ICdlbScge1xuICAgICRiYXNlLXVuaXQ6IHVuaXQoJGJyZWFrcG9pbnQtYmFzZS1mb250LXNpemUpO1xuXG4gICAgQGlmICRiYXNlLXVuaXQgPT0gJ3B4JyBvciAkYmFzZS11bml0ID09ICclJyBvciAkYmFzZS11bml0ID09ICdlbScgb3IgJGJhc2UtdW5pdCA9PSAncHQnIHtcbiAgICAgIEByZXR1cm4gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSkgLyBiYXNlLWNvbnZlcnNpb24oJGJyZWFrcG9pbnQtYmFzZS1mb250LXNpemUpICogMWVtO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnI3skYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZX0gaXMgbm90IHNldCBpbiB2YWxpZCB1bml0cyBmb3IgZm9udCBzaXplISc7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBiYXNlLWNvbnZlcnNpb24oJHZhbHVlKTtcbiAgfVxufVxuXG5AZnVuY3Rpb24gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSkge1xuICAkdW5pdDogdW5pdCgkdmFsdWUpO1xuXG4gIEBpZiAkdW5pdCA9PSAncHgnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDE2cHggKiAxZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJyUnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDEwMCUgKiAxZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJ2VtJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJ3B0JyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxMnB0ICogMWVtO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbi8vICAgIEB3YXJuICdFdmVyeXRoaW5nIGlzIHRlcnJpYmxlISBXaGF0IGhhdmUgeW91IGRvbmU/ISc7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIGhhdmUgYSBtaW4vbWF4IHBhaXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtbWluLW1heC1mZWF0dXJlczogJ2NvbG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2xvci1pbmRleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2Utd2lkdGgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9ub2Nocm9tZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVzb2x1dGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2lkdGgnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4tbWF4KCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LW1pbi1tYXgtZmVhdHVyZXMge1xuICAgIEBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBoYXZlIGEgc3RyaW5nIHZhbHVlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LXN0cmluZy1mZWF0dXJlczogICdvcmllbnRhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWFzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbHVtaW5vc2l0eSc7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXN0cmluZy12YWx1ZSgkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1zdHJpbmctZmVhdHVyZXMge1xuICAgIEBpZiBicmVha3BvaW50LW1pbi1tYXgoJGl0ZW0pIHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWluLSN7JGl0ZW19JyBvciAkZmVhdHVyZSA9PSAnbWF4LSN7JGl0ZW19JyB7XG4gICAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBpcyBhIG1lZGlhIHR5cGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtbWVkaWEtdHlwZXM6ICAnYWxsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JyYWlsbGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnZW1ib3NzZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFuZGhlbGQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAncHJpbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvamVjdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdzY3JlZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnc3BlZWNoJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R0eScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICd0dic7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LWlzLW1lZGlhKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRtZWRpYSBpbiAkYnJlYWtwb2ludC1tZWRpYS10eXBlcyB7XG4gICAgQGlmICgkZmVhdHVyZSA9PSAkbWVkaWEpIG9yICgkZmVhdHVyZSA9PSAnbm90ICN7JG1lZGlhfScpIG9yICgkZmVhdHVyZSA9PSAnb25seSAjeyRtZWRpYX0nKSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIHN0YW5kIGFsb25lXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LXNpbmdsZS1zdHJpbmctZmVhdHVyZXM6ICdjb2xvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3ItaW5kZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dyaWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vbm9jaHJvbWUnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LXNpbmdsZS1zdHJpbmctZmVhdHVyZXMge1xuICAgIEBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWlzLXJlc29sdXRpb24oJGZlYXR1cmUpIHtcbiAgJHJlc29sdXRpb25zOiAnZGV2aWNlLXBpeGVsLXJhdGlvJywgJ2Rwcic7XG5cbiAgQGlmICRicmVha3BvaW50LXJlc29sdXRpb25zIHtcbiAgICAkcmVzb2x1dGlvbnM6IGFwcGVuZCgkcmVzb2x1dGlvbnMsICdyZXNvbHV0aW9uJyk7XG4gIH1cblxuICBAZWFjaCAkcmVzbyBpbiAkcmVzb2x1dGlvbnMge1xuICAgIEBpZiBpbmRleCgkZmVhdHVyZSwgJHJlc28pIG9yIGluZGV4KCRmZWF0dXJlLCAnbWluLSN7JHJlc299Jykgb3IgaW5kZXgoJGZlYXR1cmUsICdtYXgtI3skcmVzb30nKSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBhcnNlciBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInBhcnNlcnMvcXVlcnlcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3NpbmdsZVwiO1xuQGltcG9ydCBcInBhcnNlcnMvZG91YmxlXCI7XG5AaW1wb3J0IFwicGFyc2Vycy90cmlwbGVcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3Jlc29sdXRpb25cIjtcblxuJE1lbW8tRXhpc3RzOiBmdW5jdGlvbi1leGlzdHMobWVtby1nZXQpIGFuZCBmdW5jdGlvbi1leGlzdHMobWVtby1zZXQpO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgRnVuY3Rpb25cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkY29udGV4dHMuLi4pIHtcbiAgJHJ1bjogdHJ1ZTtcbiAgJHJldHVybjogKCk7XG5cbiAgLy8gR3JhYiB0aGUgTWVtbyBPdXRwdXQgaWYgTWVtb2l6YXRpb24gY2FuIGJlIGEgdGhpbmdcbiAgQGlmICRNZW1vLUV4aXN0cyB7XG4gICAgJHJldHVybjogbWVtby1nZXQoYnJlYWtwb2ludCwgYnJlYWtwb2ludCAkcXVlcnkgJGNvbnRleHRzKTtcblxuICAgIEBpZiAkcmV0dXJuICE9IG51bGwge1xuICAgICAgJHJ1bjogZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQGlmIG5vdCAkTWVtby1FeGlzdHMgb3IgJHJ1biB7XG4gICAgLy8gSW50ZXJuYWwgVmFyaWFibGVzXG4gICAgJHF1ZXJ5LXN0cmluZzogJyc7XG4gICAgJHF1ZXJ5LWZhbGxiYWNrOiBmYWxzZTtcbiAgICAkcmV0dXJuOiAoKTtcblxuICAgIC8vIFJlc2VydmUgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJGhvbGRlci1jb250ZXh0OiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyO1xuICAgICRob2xkZXItcXVlcnktY291bnQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ7XG5cbiAgICAvLyBSZXNldCBHbG9iYWwgUHJpdmF0ZSBCcmVha3BvaW50IENvbnRleHRcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWdsb2JhbDtcblxuXG4gICAgLy8gVGVzdCB0byBzZWUgaWYgaXQncyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0XG4gICAgJG9yLWxpc3Q6IGlmKGxpc3Qtc2VwYXJhdG9yKCRxdWVyeSkgPT0gJ2NvbW1hJywgdHJ1ZSwgZmFsc2UpO1xuXG5cbiAgICBAaWYgKCRvci1saXN0ID09IGZhbHNlIGFuZCAkYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4ID09IGZhbHNlKSB7XG4gICAgICAkcXVlcnktc3RyaW5nOiBicmVha3BvaW50LXBhcnNlKCRxdWVyeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRsZW5ndGg6IGxlbmd0aCgkcXVlcnkpO1xuXG4gICAgICAkbGFzdDogbnRoKCRxdWVyeSwgJGxlbmd0aCk7XG4gICAgICAkcXVlcnktZmFsbGJhY2s6IGJyZWFrcG9pbnQtbm8tcXVlcnkoJGxhc3QpO1xuXG4gICAgICBAaWYgKCRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSkge1xuICAgICAgICAkbGVuZ3RoOiAkbGVuZ3RoIC0gMTtcbiAgICAgIH1cblxuICAgICAgQGlmICgkYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4ID09IHRydWUpIHtcbiAgICAgICAgJG1xOiAoKTtcblxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICRtcTogYXBwZW5kKCRtcSwgbnRoKCRxdWVyeSwgJGkpLCBjb21tYSk7XG4gICAgICAgIH1cblxuICAgICAgICAkcXVlcnktc3RyaW5nOiBicmVha3BvaW50LXBhcnNlKCRtcSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRxdWVyeS1zdHJpbmc6ICcnO1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICRxdWVyeS1zdHJpbmc6ICRxdWVyeS1zdHJpbmcgKyBpZigkaSA9PSAxLCAnJywgJywgJykgKyBicmVha3BvaW50LXBhcnNlKG50aCgkcXVlcnksICRpKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAkcmV0dXJuOiAoJ3F1ZXJ5JzogJHF1ZXJ5LXN0cmluZyxcbiAgICAgICAgJ2ZhbGxiYWNrJzogJHF1ZXJ5LWZhbGxiYWNrLFxuICAgICAgICAnY29udGV4dCBob2xkZXInOiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLFxuICAgICAgICAncXVlcnkgY291bnQnOiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50XG4gICAgKTtcbiAgICBAaWYgbGVuZ3RoKCRjb250ZXh0cykgPiAwIGFuZCBudGgoJGNvbnRleHRzLCAxKSAhPSBmYWxzZSB7XG4gICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlIHtcbiAgICAgICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgICAgIH1cbiAgICAgICRjb250ZXh0LW1hcDogKCk7XG4gICAgICBAZWFjaCAkY29udGV4dCBpbiAkY29udGV4dHMge1xuICAgICAgICAkY29udGV4dC1tYXA6IG1hcC1tZXJnZSgkY29udGV4dC1tYXAsICgkY29udGV4dDogYnJlYWtwb2ludC1nZXQtY29udGV4dCgkY29udGV4dCkpKTtcbiAgICAgIH1cbiAgICAgICRyZXR1cm46IG1hcC1tZXJnZSgkcmV0dXJuLCAoY29udGV4dDogJGNvbnRleHQtbWFwKSk7XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG5cbiAgICBAaWYgJE1lbW8tRXhpc3RzIHtcbiAgICAgICRob2xkZXI6IG1lbW8tc2V0KGJyZWFrcG9pbnQsIGJyZWFrcG9pbnQgJHF1ZXJ5ICRjb250ZXh0cywgJHJldHVybik7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEdlbmVyYWwgQnJlYWtwb2ludCBQYXJzZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UoJHF1ZXJ5KSB7XG4gIC8vIEluY3JlYXNlIG51bWJlciBvZiAnYW5kJyBxdWVyaWVzXG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQgKyAxICFnbG9iYWw7XG5cbiAgLy8gU2V0IHVwIE1lZGlhIFR5cGVcbiAgJHF1ZXJ5LXByaW50OiAnJztcblxuICAkZm9yY2UtYWxsOiAoKCRicmVha3BvaW50LWZvcmNlLW1lZGlhLWFsbCA9PSB0cnVlKSBhbmQgKCRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEgPT0gJ2FsbCcpKTtcbiAgJGVtcHR5LW1lZGlhOiB0cnVlO1xuICBAaWYgKCRmb3JjZS1hbGwgPT0gdHJ1ZSkgb3IgKCRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEgIT0gJ2FsbCcpIHtcbiAgICAvLyBGb3JjZSB0aGUgcHJpbnQgb2YgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZSBpZiAoZm9yY2UgYWxsIGlzIHRydWUgYW5kIGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBhbGwpIG9yIChkZWZhdWx0IG1lZGlhIHR5cGUgaXMgbm90IGFsbClcbiAgICAkcXVlcnktcHJpbnQ6ICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWE7XG4gICAgJGVtcHR5LW1lZGlhOiBmYWxzZTtcbiAgfVxuXG5cbiAgJHF1ZXJ5LXJlc29sdXRpb246IGZhbHNlO1xuXG4gICRxdWVyeS1ob2xkZXI6IGJyZWFrcG9pbnQtcGFyc2UtcXVlcnkoJHF1ZXJ5KTtcblxuXG5cbiAgLy8gTG9vcCBvdmVyIGVhY2ggcGFyc2VkIG91dCBxdWVyeSBhbmQgd3JpdGUgaXQgdG8gJHF1ZXJ5LXByaW50XG4gICRmaXJzdDogdHJ1ZTtcblxuICBAZWFjaCAkZmVhdHVyZSBpbiAkcXVlcnktaG9sZGVyIHtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJGZlYXR1cmUpO1xuXG4gICAgLy8gUGFyc2UgYSBzaW5nbGUgZmVhdHVyZVxuICAgIEBpZiAoJGxlbmd0aCA9PSAxKSB7XG4gICAgICAvLyBGZWF0dXJlIGlzIGN1cnJlbnRseSBhIGxpc3QsIGdyYWIgdGhlIGFjdHVhbCB2YWx1ZVxuICAgICAgJGZlYXR1cmU6IG50aCgkZmVhdHVyZSwgMSk7XG5cbiAgICAgIC8vIE1lZGlhIFR5cGUgbXVzdCBieSBjb252ZW50aW9uIGJlIHRoZSBmaXJzdCBpdGVtLCBzbyBpdCdzIHNhZmUgdG8gZmxhdCBvdmVycmlkZSAkcXVlcnktcHJpbnQsIHdoaWNoIHJpZ2h0IG5vdyBzaG91bGQgb25seSBiZSB0aGUgZGVmYXVsdCBtZWRpYSB0eXBlXG4gICAgICBAaWYgKGJyZWFrcG9pbnQtaXMtbWVkaWEoJGZlYXR1cmUpKSB7XG4gICAgICAgIEBpZiAoJGZvcmNlLWFsbCA9PSB0cnVlKSBvciAoJGZlYXR1cmUgIT0gJ2FsbCcpIHtcbiAgICAgICAgICAvLyBGb3JjZSB0aGUgcHJpbnQgb2YgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZSBpZiAoZm9yY2UgYWxsIGlzIHRydWUgYW5kIGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBhbGwpIG9yIChkZWZhdWx0IG1lZGlhIHR5cGUgaXMgbm90IGFsbClcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICRmZWF0dXJlO1xuICAgICAgICAgICRlbXB0eS1tZWRpYTogZmFsc2U7XG5cbiAgICAgICAgICAvLyBTZXQgQ29udGV4dFxuICAgICAgICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1lZGlhLCAkcXVlcnktcHJpbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUGFyc2UgYSBkb3VibGUgZmVhdHVyZVxuICAgIEBlbHNlIGlmICgkbGVuZ3RoID09IDIpIHtcbiAgICAgIEBpZiAoYnJlYWtwb2ludC1pcy1yZXNvbHV0aW9uKCRmZWF0dXJlKSAhPSBmYWxzZSkge1xuICAgICAgICAkcXVlcnktcmVzb2x1dGlvbjogJGZlYXR1cmU7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRwYXJzZWQ6IG51bGw7XG4gICAgICAgIC8vIElmIGl0J3MgYSBzdHJpbmcvbnVtYmVyIHBhaXIsXG4gICAgICAgIC8vIHdlIGNoZWNrIHRvIHNlZSBpZiBvbmUgaXMgYSBzaW5nbGUtc3RyaW5nIHZhbHVlLFxuICAgICAgICAvLyB0aGVuIHdlIHBhcnNlIGl0IGFzIGEgbm9ybWFsIGRvdWJsZVxuICAgICAgICAkYWxwaGE6IG50aCgkZmVhdHVyZSwgMSk7XG4gICAgICAgICRiZXRhOiBudGgoJGZlYXR1cmUsIDIpO1xuICAgICAgICBAaWYgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRhbHBoYSkgb3IgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRiZXRhKSB7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGFscGhhLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGJldGEsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUGFyc2UgYSB0cmlwbGUgZmVhdHVyZVxuICAgIEBlbHNlIGlmICgkbGVuZ3RoID09IDMpIHtcbiAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgIH1cblxuICB9XG5cbiAgQGlmICgkcXVlcnktcmVzb2x1dGlvbiAhPSBmYWxzZSkge1xuICAgICRxdWVyeS1wcmludDogYnJlYWtwb2ludC1idWlsZC1yZXNvbHV0aW9uKCRxdWVyeS1wcmludCwgJHF1ZXJ5LXJlc29sdXRpb24sICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgfVxuXG4gIC8vIExvb3AgdGhyb3VnaCBlYWNoIGZlYXR1cmUgdGhhdCdzIGJlZW4gZGV0ZWN0ZWQgc28gZmFyIGFuZCBhcHBlbmQgJ2ZhbHNlJyB0byB0aGUgdGhlIHZhbHVlIGxpc3QgdG8gaW5jcmVtZW50IHRoZWlyIGNvdW50ZXJzXG4gIEBlYWNoICRmLCAkdiBpbiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyIHtcbiAgICAkdi1ob2xkZXI6ICR2O1xuICAgICRsZW5ndGg6IGxlbmd0aCgkdi1ob2xkZXIpO1xuICAgIEBpZiBsZW5ndGgoJHYtaG9sZGVyKSA8ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgQGZvciAkaSBmcm9tICRsZW5ndGggdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgICAgIEBpZiAkZiA9PSAnbWVkaWEnIHtcbiAgICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEpO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiAkcXVlcnktcHJpbnQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1xdWVyeSgkcXVlcnkpIHtcbiAgLy8gUGFyc2UgZmVhdHVyZXMgb3V0IG9mIGFuIGluZGl2aWR1YWwgcXVlcnlcbiAgJGZlYXR1cmUtaG9sZGVyOiAoKTtcbiAgJHF1ZXJ5LWhvbGRlcjogKCk7XG4gICRsZW5ndGg6IGxlbmd0aCgkcXVlcnkpO1xuXG4gIEBpZiAkbGVuZ3RoID09IDIge1xuICAgIC8vIElmIHdlJ3ZlIGdvdCBhIHN0cmluZy9udW1iZXIsIG51bWJlci9zdHJpbmcsIGNoZWNrIHRvIHNlZSBpZiBpdCdzIGEgdmFsaWQgc3RyaW5nL251bWJlciBwYWlyIG9yIHR3byBzaW5nbGVzXG4gICAgQGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ251bWJlcicpIG9yICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ3N0cmluZycpIHtcblxuICAgICAgJG51bWJlcjogJyc7XG4gICAgICAkdmFsdWU6ICcnO1xuXG4gICAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycge1xuICAgICAgICAkbnVtYmVyOiBudGgoJHF1ZXJ5LCAyKTtcbiAgICAgICAgJHZhbHVlOiBudGgoJHF1ZXJ5LCAxKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJG51bWJlcjogbnRoKCRxdWVyeSwgMSk7XG4gICAgICAgICR2YWx1ZTogbnRoKCRxdWVyeSwgMik7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSBzdHJpbmcgdmFsdWUgY2FuIGJlIGEgc2luZ2xlIHZhbHVlLCBjaGVjayB0byBzZWUgaWYgdGhlIG51bWJlciBwYXNzZWQgaW4gaXMgYSB2YWxpZCBpbnB1dCBmb3Igc2FpZCBzaW5nbGUgdmFsdWUuIEZvcnR1bmF0ZWx5LCBhbGwgY3VycmVudCBzaW5nbGUtdmFsdWUgb3B0aW9ucyBvbmx5IGFjY2VwdCB1bml0bGVzcyBudW1iZXJzLCBzbyB0aGlzIGNoZWNrIGlzIGVhc3kuXG4gICAgICBAaWYgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCR2YWx1ZSkge1xuICAgICAgICBAaWYgdW5pdGxlc3MoJG51bWJlcikge1xuICAgICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCR2YWx1ZSwgJG51bWJlciwgc3BhY2UpO1xuICAgICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIElmIHRoZSBzdHJpbmcgaXMgYSBtZWRpYSB0eXBlLCBzcGxpdCB0aGUgcXVlcnlcbiAgICAgIEBpZiBicmVha3BvaW50LWlzLW1lZGlhKCR2YWx1ZSkge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMSkpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMikpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgICAvLyBJZiBpdCdzIG5vdCBhIHNpbmdsZSBmZWF0dXJlLCB3ZSdyZSBqdXN0IGdvaW5nIHRvIGFzc3VtZSBpdCdzIGEgcHJvcGVyIHN0cmluZy92YWx1ZSBwYWlyLCBhbmQgcm9sbCB3aXRoIGl0LlxuICAgICAgQGVsc2Uge1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkdmFsdWUsICRudW1iZXIsIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG5cbiAgICB9XG4gICAgLy8gSWYgdGhleSdyZSBib3RoIG51bWJlcnMsIHdlIGFzc3VtZSBpdCdzIGEgZG91YmxlIGFuZCByb2xsIHdpdGggdGhhdFxuICAgIEBlbHNlIGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ251bWJlcicpIHtcbiAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgIH1cbiAgICAvLyBJZiB0aGV5J3JlIGJvdGggc3RyaW5ncyBhbmQgbmVpdGhlciBhcmUgc2luZ2xlcywgd2Ugcm9sbCB3aXRoIHRoYXQuXG4gICAgQGVsc2UgaWYgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnc3RyaW5nJykge1xuICAgICAgQGlmIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDIpKSB7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHtcbiAgICAvLyBJZiB3ZSd2ZSBnb3QgdGhyZWUgaXRlbXMgYW5kIG5vbmUgaXMgYSBsaXN0LCB3ZSBjaGVjayB0byBzZWVcbiAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgIT0gJ2xpc3QnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSAhPSAnbGlzdCcgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMykpICE9ICdsaXN0JyB7XG4gICAgICAvLyBJZiBub25lIG9mIHRoZSBpdGVtcyBhcmUgc2luZ2xlIHN0cmluZyB2YWx1ZXMgYW5kIG5vbmUgb2YgdGhlIHZhbHVlcyBhcmUgbWVkaWEgdmFsdWVzLCB3ZSdyZSBnb29kLlxuICAgICAgQGlmIChub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAyKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMykpKSBhbmQgICgobm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAyKSkgYW5kIG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDMpKSkpIHtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMSksIG50aCgkcXVlcnksIDIpLCBzcGFjZSk7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCRmZWF0dXJlLWhvbGRlciwgbnRoKCRxdWVyeSwgMyksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgICAvLyBsZXQncyBjaGVjayB0byBzZWUgaWYgdGhlIGZpcnN0IGl0ZW0gaXMgYSBtZWRpYSB0eXBlXG4gICAgICBAZWxzZSBpZiBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAxKSk7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDIpLCBudGgoJHF1ZXJ5LCAzKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIGl0J3MgYSBzaW5nbGUgaXRlbSwgb3IgaWYgaXQncyBub3QgYSBzcGVjaWFsIGNhc2UgZG91YmxlIG9yIHRyaXBsZSwgd2UgY2FuIHNpbXBseSByZXR1cm4gdGhlIHF1ZXJ5LlxuICBAcmV0dXJuICRxdWVyeTtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwic2luZ2xlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIC8vIElmIGl0J3MgYSBzaW5nbGUgZmVhdHVyZSB0aGF0IGNhbiBzdGFuZCBhbG9uZSwgd2UgbGV0IGl0XG4gIEBpZiAoYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRmZWF0dXJlKSkge1xuICAgICRwYXJzZWQ6ICRmZWF0dXJlO1xuICAgIC8vIFNldCBDb250ZXh0XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICRmZWF0dXJlKTtcbiAgfVxuICAvLyBJZiBpdCdzIG5vdCBhIHN0YW5kIGFsb25lIGZlYXR1cmUsIHdlIHBhc3MgaXQgb2ZmIHRvIHRoZSBkZWZhdWx0IGhhbmRsZXIuXG4gIEBlbHNlIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQoJGZlYXR1cmUpO1xuICB9XG5cbiAgQHJldHVybiAkbGVhZGVyICsgJygnICsgJHBhcnNlZCArICcpJztcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQoJGZlYXR1cmUpIHtcbiAgJGRlZmF1bHQ6ICRicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZGVmYXVsdCwgJGZlYXR1cmUpO1xuXG4gIEBpZiAoJGJyZWFrcG9pbnQtdG8tZW1zID09IHRydWUpIGFuZCAodHlwZS1vZigkZmVhdHVyZSkgPT0gJ251bWJlcicpIHtcbiAgICBAcmV0dXJuICcjeyRkZWZhdWx0fTogI3ticmVha3BvaW50LXRvLWJhc2UtZW0oJGZlYXR1cmUpfSc7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJyN7JGRlZmF1bHR9OiAjeyRmZWF0dXJlfSc7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiZG91YmxlL2RlZmF1bHQtcGFpclwiO1xuQGltcG9ydCBcImRvdWJsZS9kb3VibGUtc3RyaW5nXCI7XG5AaW1wb3J0IFwiZG91YmxlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gICRmaXJzdDogbnRoKCRmZWF0dXJlLCAxKTtcbiAgJHNlY29uZDogbnRoKCRmZWF0dXJlLCAyKTtcblxuICAvLyBJZiB3ZSd2ZSBnb3QgdHdvIG51bWJlcnMsIHdlIGtub3cgd2UgbmVlZCB0byB1c2UgdGhlIGRlZmF1bHQgcGFpciBiZWNhdXNlIHRoZXJlIGFyZSBubyBtZWRpYSBxdWVyaWVzIHRoYXQgaGFzIGEgbWVkaWEgZmVhdHVyZSB0aGF0IGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YoJHNlY29uZCkgPT0gJ251bWJlcicge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdC1wYWlyKCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cbiAgLy8gSWYgdGhleSBhcmUgYm90aCBzdHJpbmdzLCB3ZSBzZW5kIGl0IHRocm91Z2ggdGhlIHN0cmluZyBwYXJzZXJcbiAgQGVsc2UgaWYgdHlwZS1vZigkZmlyc3QpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKCRzZWNvbmQpID09ICdzdHJpbmcnIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1zdHJpbmcoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuICAvLyBJZiBpdCdzIGEgc3RyaW5nL251bWJlciBwYWlyLCB3ZSBwYXJzZSBpdCBhcyBhIG5vcm1hbCBkb3VibGVcbiAgQGVsc2Uge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLWRlZmF1bHQoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxlYWRlciArICRwYXJzZWQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0LXBhaXIoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRkZWZhdWx0OiAkYnJlYWtwb2ludC1kZWZhdWx0LXBhaXI7XG4gICRtaW46ICcnO1xuICAkbWF4OiAnJztcblxuICAvLyBTb3J0IGludG8gbWluIGFuZCBtYXhcbiAgJG1pbjogbWluKCRmaXJzdCwgJHNlY29uZCk7XG4gICRtYXg6IG1heCgkZmlyc3QsICRzZWNvbmQpO1xuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1pbi0jeyRkZWZhdWx0fSwgJG1pbik7XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1heC0jeyRkZWZhdWx0fSwgJG1heCk7XG5cbiAgLy8gTWFrZSB0aGVtIEVNcyBpZiBuZWVkIGJlXG4gIEBpZiAoJGJyZWFrcG9pbnQtdG8tZW1zID09IHRydWUpIHtcbiAgICAkbWluOiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1pbik7XG4gICAgJG1heDogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtYXgpO1xuICB9XG5cbiAgQHJldHVybiAnKG1pbi0jeyRkZWZhdWx0fTogI3skbWlufSkgYW5kIChtYXgtI3skZGVmYXVsdH06ICN7JG1heH0pJztcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1zdHJpbmcoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRmZWF0dXJlOiAnJztcbiAgJHZhbHVlOiAnJztcblxuICAvLyBUZXN0IHRvIHNlZSB3aGljaCBpcyB0aGUgZmVhdHVyZSBhbmQgd2hpY2ggaXMgdGhlIHZhbHVlXG4gIEBpZiAoYnJlYWtwb2ludC1zdHJpbmctdmFsdWUoJGZpcnN0KSA9PSB0cnVlKSB7XG4gICAgJGZlYXR1cmU6ICRmaXJzdDtcbiAgICAkdmFsdWU6ICRzZWNvbmQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRmZWF0dXJlOiAkc2Vjb25kO1xuICAgICR2YWx1ZTogJGZpcnN0O1xuICB9XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSk7XG5cbiAgQHJldHVybiAnKCN7JGZlYXR1cmV9OiAjeyR2YWx1ZX0pJztcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1kZWZhdWx0KCRmaXJzdCwgJHNlY29uZCkge1xuICAkZmVhdHVyZTogJyc7XG4gICR2YWx1ZTogJyc7XG5cbiAgQGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnc3RyaW5nJyB7XG4gICAgJGZlYXR1cmU6ICRmaXJzdDtcbiAgICAkdmFsdWU6ICRzZWNvbmQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRmZWF0dXJlOiAkc2Vjb25kO1xuICAgICR2YWx1ZTogJGZpcnN0O1xuICB9XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSk7XG5cbiAgQGlmICgkYnJlYWtwb2ludC10by1lbXMgPT0gdHJ1ZSkge1xuICAgICR2YWx1ZTogYnJlYWtwb2ludC10by1iYXNlLWVtKCR2YWx1ZSk7XG4gIH1cblxuICBAcmV0dXJuICcoI3skZmVhdHVyZX06ICN7JHZhbHVlfSknXG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInRyaXBsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXRyaXBsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuXG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIC8vIHNlcGFyYXRlIHRoZSBzdHJpbmcgZmVhdHVyZXMgZnJvbSB0aGUgdmFsdWUgbnVtYmVyc1xuICAkc3RyaW5nOiBudWxsO1xuICAkbnVtYmVyczogbnVsbDtcbiAgQGVhY2ggJHZhbCBpbiAkZmVhdHVyZSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbCkgPT0gc3RyaW5nIHtcbiAgICAgICRzdHJpbmc6ICR2YWw7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRudW1iZXJzKSA9PSAnbnVsbCcge1xuICAgICAgICAkbnVtYmVyczogJHZhbDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJG51bWJlcnM6IGFwcGVuZCgkbnVtYmVycywgJHZhbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS10cmlwbGUtZGVmYXVsdCgkc3RyaW5nLCBudGgoJG51bWJlcnMsIDEpLCBudGgoJG51bWJlcnMsIDIpKTtcblxuICBAcmV0dXJuICRsZWFkZXIgKyAkcGFyc2VkO1xuXG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS10cmlwbGUtZGVmYXVsdCgkZmVhdHVyZSwgJGZpcnN0LCAkc2Vjb25kKSB7XG5cbiAgLy8gU29ydCBpbnRvIG1pbiBhbmQgbWF4XG4gICRtaW46IG1pbigkZmlyc3QsICRzZWNvbmQpO1xuICAkbWF4OiBtYXgoJGZpcnN0LCAkc2Vjb25kKTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtaW4tI3skZmVhdHVyZX0sICRtaW4pO1xuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtYXgtI3skZmVhdHVyZX0sICRtYXgpO1xuXG4gIC8vIE1ha2UgdGhlbSBFTXMgaWYgbmVlZCBiZVxuICBAaWYgKCRicmVha3BvaW50LXRvLWVtcyA9PSB0cnVlKSB7XG4gICAgJG1pbjogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtaW4pO1xuICAgICRtYXg6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWF4KTtcbiAgfVxuXG4gIEByZXR1cm4gJyhtaW4tI3skZmVhdHVyZX06ICN7JG1pbn0pIGFuZCAobWF4LSN7JGZlYXR1cmV9OiAjeyRtYXh9KSc7XG59XG4iLCJAaW1wb3J0IFwicmVzb2x1dGlvbi9yZXNvbHV0aW9uXCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LWJ1aWxkLXJlc29sdXRpb24oJHF1ZXJ5LXByaW50LCAkcXVlcnktcmVzb2x1dGlvbiwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIEBpZiAkYnJlYWtwb2ludC1yZXNvbHV0aW9ucyBhbmQgJHF1ZXJ5LXJlc29sdXRpb24ge1xuICAgICRyZXNvbHV0aW9uczogYnJlYWtwb2ludC1tYWtlLXJlc29sdXRpb25zKCRxdWVyeS1yZXNvbHV0aW9uKTtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHJlc29sdXRpb25zKTtcbiAgICAkcXVlcnktaG9sZGVyOiAnJztcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAkcXVlcnk6ICcjeyRxdWVyeS1wcmludH0gI3skbGVhZGVyfSN7bnRoKCRyZXNvbHV0aW9ucywgJGkpfSc7XG4gICAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6ICRxdWVyeTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogJyN7JHF1ZXJ5LWhvbGRlcn0sICN7JHF1ZXJ5fSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBSZXR1cm4gd2l0aCBhdHRhY2hlZCByZXNvbHV0aW9uXG4gICAgQHJldHVybiAkcXVlcnktcHJpbnQ7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LW1ha2UtcmVzb2x1dGlvbnMoJHJlc29sdXRpb24pIHtcbiAgJGxlbmd0aDogbGVuZ3RoKCRyZXNvbHV0aW9uKTtcblxuICAkb3V0cHV0OiAoKTtcblxuICBAaWYgJGxlbmd0aCA9PSAyIHtcbiAgICAkZmVhdHVyZTogJyc7XG4gICAgJHZhbHVlOiAnJztcblxuICAgIC8vIEZpbmQgd2hpY2ggaXMgbnVtYmVyXG4gICAgQGlmIHR5cGUtb2YobnRoKCRyZXNvbHV0aW9uLCAxKSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiBudGgoJHJlc29sdXRpb24sIDEpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkdmFsdWU6IG50aCgkcmVzb2x1dGlvbiwgMik7XG4gICAgfVxuXG4gICAgLy8gRGV0ZXJtaW5lIG1pbi9tYXgvc3RhbmRhcmRcbiAgICBAaWYgaW5kZXgoJHJlc29sdXRpb24sICdtaW4tcmVzb2x1dGlvbicpIHtcbiAgICAgICRmZWF0dXJlOiAnbWluLSc7XG4gICAgfVxuICAgIEBlbHNlIGlmIGluZGV4KCRyZXNvbHV0aW9uLCAnbWF4LXJlc29sdXRpb24nKSB7XG4gICAgICAkZmVhdHVyZTogJ21heC0nO1xuICAgIH1cblxuICAgICRzdGFuZGFyZDogJygjeyRmZWF0dXJlfXJlc29sdXRpb246ICN7JHZhbHVlfSknO1xuXG4gICAgLy8gSWYgd2UncmUgbm90IGRlYWxpbmcgd2l0aCBkcHB4LFxuICAgIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ2RwcHgnIHtcbiAgICAgICRiYXNlOiA5NmRwaTtcbiAgICAgIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2RwY20nIHtcbiAgICAgICAgJGJhc2U6IDI0My44NGRwY207XG4gICAgICB9XG4gICAgICAvLyBXcml0ZSBvdXQgZmVhdHVyZSB0ZXN0c1xuICAgICAgJHdlYmtpdDogJyc7XG4gICAgICAkbW96OiAnJztcbiAgICAgICR3ZWJraXQ6ICcoLXdlYmtpdC0jeyRmZWF0dXJlfWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAkYmFzZX0pJztcbiAgICAgICRtb3o6ICcoI3skZmVhdHVyZX0tbW96LWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAkYmFzZX0pJztcbiAgICAgIC8vIEFwcGVuZCB0byBvdXRwdXRcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkc3RhbmRhcmQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkd2Via2l0LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJG1veiwgc3BhY2UpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0OiAnJztcbiAgICAgICRtb3o6ICcnO1xuICAgICAgJHdlYmtpdDogJygtd2Via2l0LSN7JGZlYXR1cmV9ZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvIDFkcHB4fSknO1xuICAgICAgJG1vejogJygjeyRmZWF0dXJlfS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvIDFkcHB4fSknO1xuICAgICAgJGZhbGxiYWNrOiAnKCN7JGZlYXR1cmV9cmVzb2x1dGlvbjogI3skdmFsdWUgLyAxZHBweCAqIDk2ZHBpfSknO1xuICAgICAgLy8gQXBwZW5kIHRvIG91dHB1dFxuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRzdGFuZGFyZCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICR3ZWJraXQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkbW96LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJGZhbGxiYWNrLCBzcGFjZSk7XG4gICAgfVxuXG4gIH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1uby1xdWVyeSgkcXVlcnkpIHtcbiAgQGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSAnbGlzdCcge1xuICAgICRrZXl3b3JkOiBudGgoJHF1ZXJ5LCAxKTtcblxuICAgIEBpZiB0eXBlLW9mKCRrZXl3b3JkKSA9PSAnc3RyaW5nJyBhbmQgKCRrZXl3b3JkID09ICduby1xdWVyeScgb3IgJGtleXdvcmQgPT0gJ25vIHF1ZXJ5JyBvciAka2V5d29yZCA9PSAnZmFsbGJhY2snKSB7XG4gICAgICBAcmV0dXJuIG50aCgkcXVlcnksIDIpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IHRoZSBCcmVha3BvaW50cyB2YXJpYWJsZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJlc3BvbmQtdG8gQVBJIE1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiByZXNwb25kLXRvKCRjb250ZXh0LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpZiB0eXBlLW9mKCRicmVha3BvaW50cykgIT0gJ21hcCcge1xuICAgIC8vIEp1c3QgaW4gY2FzZSBzb21lb25lIHdyaXRlcyBnaWJiZXJpc2ggdG8gdGhlICRicmVha3BvaW50cyB2YXJpYWJsZS5cbiAgICBAd2FybiBcIllvdXIgYnJlYWtwb2ludHMgYXJlbid0IGEgbWFwISBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3NudWd1Zy9yZXNwb25kLXRvI2FwaSBpZiB5b3UnZCBsaWtlIGEgcmVtaW5kZXIgb24gaG93IHRvIHVzZSBSZXNwb25kLXRvXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkY29udGV4dCkge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsICRjb250ZXh0KSwgJG5vLXF1ZXJ5KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGNvbnRleHQpIHtcbiAgICBAd2FybiBcImAjeyRjb250ZXh0fWAgaXNuJ3QgYSBkZWZpbmVkIGJyZWFrcG9pbnQhIFBsZWFzZSBhZGQgaXQgdXNpbmcgYCRicmVha3BvaW50czogYWRkLWJyZWFrcG9pbnQoYCN7JGNvbnRleHR9YCwgJHZhbHVlKTtgXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiWW91IGhhdmVuJ3QgY3JlYXRlZCBhbnkgYnJlYWtwb2ludHMgeWV0ISBNYWtlIHNvbWUgYWxyZWFkeSEgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zbnVndWcvcmVzcG9uZC10byNhcGkgaWYgeW91J2QgbGlrZSBhIHJlbWluZGVyIG9uIGhvdyB0byB1c2UgUmVzcG9uZC10b1wiO1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQWRkIEJyZWFrcG9pbnQgdG8gQnJlYWtwb2ludHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGFkZC1icmVha3BvaW50KCRuYW1lLCAkYmtwdCwgJG92ZXJ3cml0ZTogZmFsc2UpIHtcbiAgJG91dHB1dDogKCRuYW1lOiAkYmtwdCk7XG4gIEBpZiBsZW5ndGgoJGJyZWFrcG9pbnRzKSA9PSAwIHtcbiAgICBAcmV0dXJuICRvdXRwdXQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBhbmQgJG92ZXJ3cml0ZSAhPSB0cnVlIHtcbiAgICAgIEB3YXJuIFwiWW91IGFscmVhZHkgaGF2ZSBhIGJyZWFrcG9pbnQgbmFtZWQgYCN7JG5hbWV9YCwgcGxlYXNlIGNob29zZSBhbm90aGVyIGJyZWFrcG9pbnQgbmFtZSwgb3IgcGFzcyBpbiBgJG92ZXJ3cml0ZTogdHJ1ZWAgdG8gb3ZlcndyaXRlIHRoZSBwcmV2aW91cyBicmVha3BvaW50LlwiO1xuICAgICAgQHJldHVybiAkYnJlYWtwb2ludHM7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBvciAkb3ZlcndyaXRlID09IHRydWUge1xuICAgICAgQHJldHVybiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkb3V0cHV0KTtcbiAgICB9XG4gIH1cbn0iLCIvLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vICBGdW5jdGlvbnNcbi8vL1xuLy8vICBUaGlzIGZpbGUgc2hvdWxkIG5vdCBiZSBlZGl0ZWQ7IGFkZCBjdXN0b20gZnVjdGlvbnMgYW5kIG1peGlucyB0byB0aGVpclxuLy8vICByZXNwZWN0aXZlIGZpbGVzLlxuLy8vXG4vLy8gIEBncm91cCBGcmFtZXdvcmtcbi8vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbXBvcnQgJ2Z1bmN0aW9ucyc7IC8vIEltcG9ydCBjdXN0b20gZnVuY3Rpb25zXG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gU3BsaXRzIGAkc3RyaW5nYCBpbnRvIHNldmVyYWwgcGFydHMgdXNpbmcgYCRkZWxpbWl0ZXJgXG4vLy9cbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWwgPGh0dHBzOi8vZ2l0aHViLmNvbS9IdWdvR2lyYXVkZWwvU2Fzc3lTdHJpbmdzPlxuLy8vIEBwYXJhbSAge1N0cmluZ30gJHN0cmluZyAgICAgICAgIC0gU3RyaW5nIHRvIHNwbGl0XG4vLy8gQHBhcmFtICB7U3RyaW5nfSAkZGVsaW1pdGVyIFsnJ10gLSBTdHJpbmcgdG8gdXNlIGFzIGEgZGVsaW1pdGVyIHRvIHNwbGl0IGAkc3RyaW5nYFxuLy8vIEByZXR1cm4ge0xpc3R9XG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIHN0ci1leHBsb2RlKCRzdHJpbmcsICRkZWxpbWl0ZXI6ICcnKSB7XG4gIEBpZiB0eXBlLW9mKCRzdHJpbmcpICE9ICdzdHJpbmcnIHtcbiAgICBAZXJyb3IgJ2BleHBsb2RlYCBmdW5jdGlvbiBleHBlY3RpbmcgYSBzdHJpbmc7ICN7dHlwZS1vZigkc3RyaW5nKX0gZ2l2ZW4uJztcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRkZWxpbWl0ZXIpICE9ICdzdHJpbmcnIHtcbiAgICBAZXJyb3IgJ2BleHBsb2RlYCBmdW5jdGlvbiBleHBlY3RpbmcgYSBzdHJpbmc7ICN7dHlwZS1vZigkZGVsaW1pdGVyKX0gZ2l2ZW4uJztcbiAgfVxuXG4gICRyZXN1bHQ6ICgpO1xuICAkbGVuZ3RoOiBzdHItbGVuZ3RoKCRzdHJpbmcpO1xuXG4gIEBpZiBzdHItbGVuZ3RoKCRkZWxpbWl0ZXIpID09IDAge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSkpO1xuICAgIH1cblxuICAgIEByZXR1cm4gJHJlc3VsdDtcbiAgfVxuXG4gICRydW5uaW5nOiB0cnVlO1xuICAkcmVtYWluaW5nOiAkc3RyaW5nO1xuXG4gIEB3aGlsZSAkcnVubmluZyB7XG4gICAgJGluZGV4OiBzdHItaW5kZXgoJHJlbWFpbmluZywgJGRlbGltaXRlcik7XG5cbiAgICBAaWYgJGluZGV4IHtcbiAgICAgICRzbGljZTogc3RyLXNsaWNlKCRyZW1haW5pbmcsIDEsICRpbmRleCAtIDEpO1xuICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsICRzbGljZSk7XG4gICAgICAkcmVtYWluaW5nOiBzdHItc2xpY2UoJHJlbWFpbmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkZGVsaW1pdGVyKSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcnVubmluZzogZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBhcHBlbmQoJHJlc3VsdCwgJHJlbWFpbmluZyk7XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gU3RyaXBzIHVuaXRzIGZyb20gZ2l2ZW4gdmFsdWVcbi8vL1xuLy8vIEBwYXJhbSAgeyp9ICR2YWx1ZSAtIEFueSB2YWx1ZSB3aXRoIHVuaXRzXG4vLy8gQHJldHVybiB7Kn0gICAgICAgIC0gVmFsdWUgd2l0aG91dCB1bml0c1xuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsdWUpIHtcbiAgQHJldHVybiAoJHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyAxKSk7XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gRmV0Y2hlcyBuZXN0ZWQga2V5c1xuLy8vXG4vLy8gQHBhcmFtICB7TWFwfSAgICAgJG1hcCAgLSBNYXBcbi8vLyBAcGFyYW0gIHtBcmdsaXN0fSAka2V5cyAtIEtleXMgdG8gZmV0Y2hcbi8vLyBAcmV0dXJuIHsqfVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8qIEBmdW5jdGlvbiBtYXAtZGVlcC1nZXQoJG1hcCwgJGtleXMuLi4pIHtcbiAgQGVhY2ggJGtleSBpbiAka2V5cyB7XG4gICAgJG1hcDogbWFwLWdldCgkbWFwLCAka2V5KTtcbiAgfVxuXG4gIEByZXR1cm4gJG1hcDtcbn0gKi9cbkBmdW5jdGlvbiBtYXAtZ2V0LWRlZXAoJG1hcCwgJGtleXMuLi4pIHtcbiAgQGlmIGxlbmd0aCgka2V5cykgPT0gMSB7XG4gICAgJGtleXM6IG50aCgka2V5cywgMSk7XG4gIH1cbiAgJHdhcm46IFwiI3tudGgoJGtleXMsIDEpfVwiO1xuICAkbGVuZ3RoOiBsZW5ndGgoJGtleXMpO1xuICAkZ2V0OiBtYXAtZ2V0KCRtYXAsIG50aCgka2V5cywgMSkpO1xuXG4gIEBpZiAkbGVuZ3RoID4gMSB7XG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgIEBpZiAkZ2V0ICE9IG51bGwgYW5kIHR5cGUtb2YoJGdldCkgPT0gJ21hcCcge1xuICAgICAgICAkd2FybjogJHdhcm4gKyBcIi0+I3tudGgoJGtleXMsICRpKX1cIjtcbiAgICAgICAgJGdldDogbWFwLWdldCgkZ2V0LCBudGgoJGtleXMsICRpKSk7XG5cbiAgICAgICAgQGlmICRnZXQgPT0gbnVsbCB7XG4gICAgICAgICAgQHJldHVybiBtYXAtZ2V0LWRlZXAtd2FybmluZygkd2FybiwgJGdldCwgbnRoKCRrZXlzLCAkaSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gbWFwLWdldC1kZWVwLXdhcm5pbmcoJHdhcm4sICRnZXQsIG50aCgka2V5cywgJGkpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRnZXQ7XG59XG5cbkBmdW5jdGlvbiBtYXAtZ2V0LWRlZXAtd2FybmluZygkd2FybiwgJGdldCwgJGtleSkge1xuICBAaWYgJGdldCA9PSBudWxsIHtcbiAgICBAd2FybiBcIk1hcCBoYXMgbm8gdmFsdWUgZm9yIGtleSBzZWFyY2ggYCN7JHdhcm59YFwiO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGdldCkgIT0gJ21hcCcge1xuICAgIEB3YXJuIFwiTm9uLW1hcCB2YWx1ZSBmb3VuZCBmb3Iga2V5IHNlYXJjaCBgI3skd2Fybn1gLCBjYW5ub3Qgc2VhcmNoIGZvciBrZXkgYCN7JGtleX1gXCI7XG4gIH1cbiAgQHJldHVybiBudWxsO1xufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIENyZWF0ZXMgYW4gYWxpYXMgZm9yIG5hdGl2ZSBgbWFwLWdldGAgYW5kIGN1c3RvbSBgbWFwLWRlZXAtZ2V0YFxuLy8vXG4vLy8gQHBhcmFtICB7TWFwfSAgICAgICRtYXAgICAgICAgIC0gTWFwXG4vLy8gQHBhcmFtICB7U3RyaW5nfSAgICRrZXkgICAgICAgIC0gS2V5IHZhbHVlXG4vLy8gQHBhcmFtICB7U3RyaW5nfSAgICRuZXN0ZWQta2V5IC0gTmVzdGVkIGtleSB2YWx1ZVxuLy8vIEByZXR1cm4ge0Z1bmN0aW9ufVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBnZXQoJG1hcCwgJGtleSwgJG5lc3RlZC1rZXk6ICcnKSB7XG4gIEBpZigkbmVzdGVkLWtleSA9PSAnJykge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAka2V5KTtcblxuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1kZWVwLWdldCgkbWFwLCAka2V5LCAkbmVzdGVkLWtleSk7XG5cbiAgfVxufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIENyZWF0ZXMgYSBzaG9ydGN1dCB0byByZXR1cm4gYSBicmVha3BvaW50IHZhbHVlXG4vLy9cbi8vLyBAcGFyYW0gIHtMaXN0fSAgICAgJGJyZWFrIC0gTGlzdCBvZiBicmVha3BvaW50c1xuLy8vIEByZXR1cm4ge0Z1bmN0aW9ufVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBicmVhaygkYnJlYWsuLi4pIHtcbiAgQHJldHVybiBtYXAtZ2V0LWRlZXAoJGJyZWFrcG9pbnRzLCAkYnJlYWspO1xufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIENyZWF0ZXMgYSBzaG9ydGN1dCB0byByZXR1cm4gYSBzZXR0aW5nIHZhbHVlXG4vLy9cbi8vLyBAcGFyYW0gIHtMaXN0fSAgICAgJHByb3BzICAgICAgICAgICAgIC0gTGlzdCBvZiBwcm9wZXJ0aWVzXG4vLy8gQHBhcmFtICB7TWFwfSAgICAgICRtYXAgICBbJHNldHRpbmdzXSAtIFNldHRpbmdzIG1hcFxuLy8vIEByZXR1cm4ge0Z1bmN0aW9ufVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBzZXR0aW5nKCRwcm9wcywgJG1hcDogJHNldHRpbmdzKSB7XG4gICRwcm9wcy1saXN0OiBzdHItZXhwbG9kZSgkcHJvcHMsICRkZWxpbWl0ZXI6ICcuJyk7XG5cbiAgQGlmIGxlbmd0aCgkcHJvcHMtbGlzdCkgPiAxIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQtZGVlcCgkbWFwLCAkcHJvcHMtbGlzdCk7XG5cbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsIG50aCgkcHJvcHMsIDEpKTtcblxuICB9XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gUmV0dXJucyB0aGUgYHdpZHRoYCBvciBgaGVpZ2h0YCBvZiBhbiBpY29uXG4vLy9cbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRuYW1lICAgICAgLSBJY29uIG5hbWVcbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRkaW1lbnNpb24gLSBgd2lkdGhgIG9yIGBoZWlnaHRgXG4vLy8gQHJldHVybiB7U3RyaW5nfSAgICAgICAgICAgICAgVmFsdWUgb2Ygc3BlY2lmaWNlZCBkaW1lbnNpb25cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AZnVuY3Rpb24gaWNvbigkbmFtZSwgJGRpbWVuc2lvbikge1xuICBAcmV0dXJuIG1hcC1nZXQtZGVlcCgkaWNvbnMsICRuYW1lLCAkZGltZW5zaW9uKTtcbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBSZXR1cm5zIGEgY29sb3IgdmFsdWVcbi8vL1xuLy8vIEBwYXJhbSAge1N0cmluZ30gICAkY29sb3IgICAgICAgICAtIENvbG9yIG5hbWU7IGtleSB2YWx1ZVxuLy8vIEBwYXJhbSAge1N0cmluZ30gICAkdG9uZSBbJ2Jhc2UnXSAtIENvbG9yIHRvbmU7IG5lc3RlZCBrZXkgdmFsdWVcbi8vLyBAcmV0dXJuIHtGdW5jdGlvbn1cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AZnVuY3Rpb24gY29sb3IoJGNvbG9yLCAkdG9uZTogJ2Jhc2UnKSB7XG4gIEByZXR1cm4gbWFwLWdldC1kZWVwKCRjb2xvcnMsICRjb2xvciwgJHRvbmUpO1xufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFJldHVybnMgYSBjb2xvciB2YWx1ZVxuLy8vXG4vLy8gQGRlcHJlY2F0ZWRcbi8vLyBAc2VlIHtGdW5jdGlvbn0gY29sb3Jcbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICAgJGNvbG9yICAgICAgICAgLSBDb2xvciBuYW1lOyBrZXkgdmFsdWVcbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICAgJHRvbmUgWydiYXNlJ10gLSBDb2xvciB0b25lOyBuZXN0ZWQga2V5IHZhbHVlXG4vLy8gQHJldHVybiB7RnVuY3Rpb259XG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIHBhbGV0dGUoJHBhbGV0dGUsICR0b25lOiAnYmFzZScpIHtcbiAgQHdhcm4gJ1RoZSBgcGFsZXR0ZWAgZnVuY3Rpb24gaGFzIGJlZW4gZGVwcmVjYXRlZDsgdXNlIGBjb2xvcmAgaW5zdGVhZC4nO1xuXG4gIEByZXR1cm4gbWFwLWdldC1kZWVwKCRwYWxldHRlcywgJHBhbGV0dGUsICR0b25lKTtcbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBDb252ZXJ0IGEgcGl4ZWwgdmFsdWUgdG8gYSBwZXJjZW50YWdlIHZhbHVlXG4vLy9cbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICR0YXJnZXQgIC0gUGl4ZWwgdmFsdWUgb2YgZWxlbWVudCB3aWR0aFxuLy8vIEBwYXJhbSAge1N0cmluZ30gJGNvbnRleHQgLSBQaXhlbCB2YWx1ZSBvZiBlbGVtZW50J3MgY29udGFpbmVyIHdpZHRoXG4vLy8gQHJldHVybiB7U3RyaW5nfSAgICAgICAgICAtIFBlcmNlbnRhZ2UgdmFsdWVcbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AZnVuY3Rpb24gcGVyY2VudCgkdGFyZ2V0LCAkY29udGV4dCkge1xuICBAcmV0dXJuICgkdGFyZ2V0IC8gJGNvbnRleHQpICogMTAwJTtcbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBDb252ZXJ0IGEgcGl4ZWwgdmFsdWUgdG8gYW4gZW0gdmFsdWVcbi8vL1xuLy8vIEZvciBhIHJlbGF0aW9uYWwgdmFsdWUsIHRoZSBpbnB1dCBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIGEgcGFyZW50IHZhbHVlLlxuLy8vIFRoZSBkZWZhdWx0IHBhcmVudCBpcyAxNnB4LiBUaGUgcGFyZW50IGNhbiBiZSBjaGFuZ2VkIGJ5IHBhc3NpbmcgYW5cbi8vLyBvcHRpb25hbCBzZWNvbmQgdmFsdWUuXG4vLy9cbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRwaXhlbCAgICAgICAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnRcbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRiYXNlIFsxNnB4XSAtIEJhc2UgcGl4ZWwgdmFsdWVcbi8vLyBAcmV0dXJuIHtTdHJpbmd9ICAgICAgICAgICAgICAtIGVtIHZhbHVlXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIGVtKCRwaXhlbCwgJGJhc2U6IDE2cHgpIHtcbiAgQHJldHVybiAoJHBpeGVsIC8gJGJhc2UpICogMWVtO1xufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFNsaWdodGx5IGxpZ2h0ZW4gYSBjb2xvciAoaHR0cDovL2NsLmx5LzFLMFQzZjNsME4yRylcbi8vL1xuLy8vIEBwYXJhbSAge1N0cmluZ30gJGNvbG9yICAgICAgLSBDb2xvciB0byB0aW50XG4vLy8gQHBhcmFtICB7U3RyaW5nfSAkcGVyY2VudGFnZSAtIFBlcmNlbnRhZ2Ugb2YgYCRjb2xvcmAgaW4gcmV0dXJuZWQgY29sb3Jcbi8vLyBAcmV0dXJuIHtTdHJpbmd9ICAgICAgICAgICAgIC0gSGV4IHZhbHVlXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudGFnZSkge1xuICBAcmV0dXJuIG1peCgkY29sb3IsIHdoaXRlLCAkcGVyY2VudGFnZSk7XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gU2xpZ2h0bHkgZGFya2VuIGEgY29sb3IgKGh0dHA6Ly9jbC5seS8xSzBUM2YzbDBOMkcpXG4vLy9cbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRjb2xvciAgICAgIC0gQ29sb3IgdG8gc2hhZGVcbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRwZXJjZW50YWdlIC0gUGVyY2VudGFnZSBvZiBgJGNvbG9yYCBpbiByZXR1cm5lZCBjb2xvclxuLy8vIEByZXR1cm4ge1N0cmluZ30gICAgICAgICAgICAgLSBIZXggdmFsdWVcbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudGFnZSkge1xuICBAcmV0dXJuIG1peCgkY29sb3IsIGJsYWNrLCAkcGVyY2VudGFnZSk7XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gUmV0dXJucyBhIFVSTCBwYXRoXG4vLy9cbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRzcmMgICAgICAgICAgLSBTb3VyY2UgaW1hZ2UgKGZpbGVuYW1lIGFuZCBleHRlbnNpb24pXG4vLy8gQHBhcmFtICB7U3RyaW5nfSAkZGlyIFtpbWFnZXNdIC0gRGlyZWN0b3J5IHdoZXJlIHRoZSBzb3VyY2UgaW1hZ2UgZXhpc3RzXG4vLy8gQHJldHVybiB7U3RyaW5nfSAgICAgICAgICAgICAgIC0gVVJMXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIHBhdGgoJHNyYywgJGRpcjogaW1hZ2VzKSB7XG4gICRzcmM6IHVucXVvdGUoJHNyYyk7XG5cbiAgQHJldHVybiB1cmwoLi4vI3skZGlyfS8jeyRzcmN9KTtcbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBFeHRlbmRzIFN1c3kgYnkgcmV0dXJuaW5nIGEgc3RhdGljIHNwYW4gd2lkdGggaW4gcGl4ZWxzIGFuZCB0aHVzLCByZXF1aXJlc1xuLy8vIFtTdXN5XShodHRwOi8vc3VzeS5vZGRiaXJkLm5ldC8pLlxuLy8vXG4vLy8gQHBhcmFtICB7TnVtYmVyfSAkY29sdW1ucyAgICAgICAgLSBOdW1iZXIgb2YgY29sdW1ucyB0byBzcGFuXG4vLy8gQHBhcmFtICB7TWFwfSAgICAkbGF5b3V0IFskc3VzeV0gLSBMYXlvdXQgbWFwXG4vLy8gQHJldHVybiB7U3RyaW5nfSAgICAgICAgICAgICAgICAgLSBQaXhlbCB3aWR0aFxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBzcGFuLXB4KCRjb2x1bW5zLCAkbGF5b3V0OiAkc3VzeSkge1xuICAvLyRjb2x1bW4td2lkdGg6IHN1c3ktZ2V0KGNvbnRhaW5lciwgJGxheW91dCkgLyBzdXN5LWdldChjb2x1bW5zLCAkbGF5b3V0KTtcbiAgLy9UT0RPOiBDU1MgR1JJRFxuIEByZXR1cm4gNDtcbiAgLy9AcmV0dXJuICRjb2x1bW4td2lkdGggKiAkY29sdW1ucztcbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBUaGlzIGlzIGEgc2hvcnRoYW5kIGZvciBjb252ZXJ0aW5nIG9uZSB0byB0aHJlZSBkaW1lbnNpb25zIGludG8gdGhlaXJcbi8vLyBmb3VyLXZhbHVlIHN5bnRheC4gSXQncyB1c2VkIGluIHRoZSBwb3NpdGlvbiBtaXhpbi5cbi8vL1xuLy8vIEBwYXJhbSAge1N0cmluZ30gJHNob3J0aGFuZCAtIFZhbHVlcyB0byB1bnBhY2tcbi8vLyBAcmV0dXJuIHtTdHJpbmd9XG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIHVucGFjaygkc2hvcnRoYW5kKSB7XG4gIEBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMSB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSlcbiAgICAgICAgICAgIG50aCgkc2hvcnRoYW5kLCAxKVxuICAgICAgICAgICAgbnRoKCRzaG9ydGhhbmQsIDEpXG4gICAgICAgICAgICBudGgoJHNob3J0aGFuZCwgMSk7XG5cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMiB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSlcbiAgICAgICAgICAgIG50aCgkc2hvcnRoYW5kLCAyKVxuICAgICAgICAgICAgbnRoKCRzaG9ydGhhbmQsIDEpXG4gICAgICAgICAgICBudGgoJHNob3J0aGFuZCwgMik7XG5cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSlcbiAgICAgICAgICAgIG50aCgkc2hvcnRoYW5kLCAyKVxuICAgICAgICAgICAgbnRoKCRzaG9ydGhhbmQsIDMpXG4gICAgICAgICAgICBudGgoJHNob3J0aGFuZCwgMik7XG5cbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkc2hvcnRoYW5kO1xuXG4gIH1cbn1cblxuLy8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyAgTWl4aW5zXG4vLy9cbi8vLyAgQGdyb3VwIEZyYW1ld29ya1xuLy8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGltcG9ydCAnbWl4aW5zJzsgLy8gSW1wb3J0IGN1c3RvbSBtaXhpbnNcblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgYW4gZWxlbWVudCB3aXRoaW4gYSBwYXJlbnQgZWxlbWVudCB3aXRoIGEgZGVmaW5lZCBoZWlnaHQuXG4vLy8gQW4gb3B0aW9uYWwgb2Zmc2V0IGlzIHVzZWQgdG8gc2hpZnQgdGhlIGVsZW1lbnQgdXAgb3IgZG93biwgY2F1c2luZyB0aGVcbi8vLyBlbGVtZW50IHRvIGxlYXZlIGl0cyBwb2ludCBvZiBjZW50ZXIuIEEgcG9zaXRpdmUgdmFsdWUgcHVsbHMgdGhlIGVsZW1lbnQgdXBcbi8vLyB3aGlsZSBhIG5lZ2F0aXZlIHZhbHVlIHB1c2hlcyBpdCBkb3duLlxuLy8vXG4vLy8gQGluY2x1ZGUgY2VudGVyZWQoKTsgLy8gYWJzb2x1dGUgY2VudGVyICgwKVxuLy8vIEBpbmNsdWRlIGNlbnRlcmVkKDEwcHgpOyAvLyAxMHB4IG9mZiBjZW50ZXIsIHB1bGxlZCB1cCAoLTEwcHgpXG4vLy8gQGluY2x1ZGUgY2VudGVyZWQoLTEwcHgpOyAvLyAxMHB4IG9mZiBjZW50ZXIsIHB1c2hlZCBkb3duICgxMHB4KVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBjZW50ZXJlZCgkb2Zmc2V0OiAwKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiA1MCU7XG5cbiAgQGlmICRvZmZzZXQgPT0gMCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG4gIH0gQGVsc2Uge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC01MCUgLSAjeyRvZmZzZXR9KSk7XG5cbiAgfVxufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXG4vLy8gaHR0cDovL2NsLmx5LzQzMEowUDNlMTgxUVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gSW1hZ2UgcmVwbGFjZW1lbnQgdGVjaG5pcXVlXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIGhpZGUtdGV4dCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMDtcbiAgfVxufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIEhpZGUgdmlzdWFsbHkgYW5kIGZyb20gc2NyZWVuIHJlYWRlcnNcbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVycywgYnV0IG1haW50YWluIGxheW91dFxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBpbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzXG4vLy8gaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiB2aXN1YWxseWhpZGRlbigkZm9jdXNhYmxlOiAnJykge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcblxuICBAaWYgJGZvY3VzYWJsZSA9PSAnZm9jdXNhYmxlJyB7XG4gICAgLy8gRXh0ZW5kcyB0aGUgLnZpc3VhbGx5aGlkZGVuIGNsYXNzIHRvIGFsbG93IHRoZSBlbGVtZW50IHRvIGJlIGZvY3VzYWJsZVxuICAgIC8vIHdoZW4gbmF2aWdhdGVkIHRvIHZpYSB0aGUga2V5Ym9hcmQ6IGh0dHBzOi8vd3d3LmRydXBhbC5vcmcvbm9kZS84OTc2MzhcblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgY2xpcDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFJlc2V0cyBicm93c2VyIGRlZmF1bHQgc3R5bGluZyBmb3IgbGlzdCBlbGVtZW50c1xuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBsaXN0LXJlc2V0IHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIE91dHB1dHMgdmVuZG9yLXByZWZpeGVkIHBsYWNlaG9sZGVycyBmb3Igc3R5bGluZy4gTXVzdCBiZSBuZXN0ZWQgaW4gYVxuLy8vIHJ1bGUtc2V0LlxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICRwbGFjZWhvbGRlcnM6ICc6LXdlYmtpdC1pbnB1dCcgJzotbW96JyAnLW1veicgJy1tcy1pbnB1dCc7XG5cbiAgQGVhY2ggJHBsYWNlaG9sZGVyIGluICRwbGFjZWhvbGRlcnMge1xuICAgICY6I3skcGxhY2Vob2xkZXJ9LXBsYWNlaG9sZGVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFNob3J0aGFuZCBub3RhdGlvbiBmb3Igc2V0dGluZyB0aGUgcG9zaXRpb24gb2YgZWxlbWVudHNcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcG9zaXRpb24gICAgW3JlbGF0aXZlXSAgICAgICAgICAgIC0gYHBvc2l0aW9uYCBDU1MgdmFsdWVcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGNvb3JkaW5hdGVzIFtudWxsIG51bGwgbnVsbCBudWxsXSAtIFNwYWNlIGRlbGltaXRlZCBsaXN0XG4vLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiB2YWx1ZXMgdGhhdCBmb2xsb3dcbi8vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBzdGFuZGFyZCBDU1Ncbi8vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0aGFuZCBub3RhdGlvbi5cbi8vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bGwgdmFsdWVzIHdpbGwgYmVcbi8vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAuZm9vIHtcbi8vLyAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAxMHB4IG51bGwgbnVsbCAxMHB4KTtcbi8vLyB9XG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHBvc2l0aW9uICgkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IG51bGwgbnVsbCBudWxsIG51bGwpIHtcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSBsaXN0IHtcbiAgICAkY29vcmRpbmF0ZXM6ICRwb3NpdGlvbjtcbiAgICAkcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJGNvb3JkaW5hdGVzOiB1bnBhY2soJGNvb3JkaW5hdGVzKTtcblxuICAkdG9wOiAgICBudGgoJGNvb3JkaW5hdGVzLCAxKTtcbiAgJHJpZ2h0OiAgbnRoKCRjb29yZGluYXRlcywgMik7XG4gICRib3R0b206IG50aCgkY29vcmRpbmF0ZXMsIDMpO1xuICAkbGVmdDogICBudGgoJGNvb3JkaW5hdGVzLCA0KTtcblxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuXG4gIEBpZiAoJHRvcCBhbmQgJHRvcCA9PSBhdXRvKSBvciAodHlwZS1vZigkdG9wKSA9PSBudW1iZXIpIHtcbiAgICB0b3A6ICR0b3A7XG4gIH1cblxuICBAaWYgKCRyaWdodCBhbmQgJHJpZ2h0ID09IGF1dG8pIG9yICh0eXBlLW9mKCRyaWdodCkgPT0gbnVtYmVyKSB7XG4gICAgcmlnaHQ6ICRyaWdodDtcbiAgfVxuXG4gIEBpZiAoJGJvdHRvbSBhbmQgJGJvdHRvbSA9PSBhdXRvKSBvciAodHlwZS1vZigkYm90dG9tKSA9PSBudW1iZXIpIHtcbiAgICBib3R0b206ICRib3R0b207XG4gIH1cblxuICBAaWYgKCRsZWZ0IGFuZCAkbGVmdCA9PSBhdXRvKSBvciAodHlwZS1vZigkbGVmdCkgPT0gbnVtYmVyKSB7XG4gICAgbGVmdDogJGxlZnQ7XG4gIH1cbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBTZXQgd2lkdGggYW5kIGhlaWdodCBpbiBhIHNpbmdsZSBzdGF0ZW1lbnQuIEFjY2VwdHMgYWxsIHVuaXRzLCBpbmNsdWRpbmdcbi8vLyBgYXV0b2AgYW5kIGBpbmhlcml0YCwgdW5pdGxlc3MgbnVtYmVycywgYW5kXG4vLy8gW2ludHJpbnNpYyBrZXl3b3Jkc10oaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzLXNpemluZy8jd2lkdGgtaGVpZ2h0LWtleXdvcmRzKVxuLy8vIGxpa2UgYGZpbGxgLCBgbWF4LWNvbnRlbnRgLCBgbWluLWNvbnRlbnRgIGFuZCBgZml0LWNvbnRlbnRgLiBZb3UgY2FuIGFsc29cbi8vLyB1c2UgdGhpcyBtaXhpbiB3aXRoIHRoZSBgY2FsYygpYCBDU1MgZnVuY3Rpb24uXG4vLy9cbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICR2YWx1ZSAtIFNwYWNlIGRlbGltaXRlZCBsaXN0IG9mIHZhbHVlczsgYHdpZHRoYCBhbmRcbi8vLyAgICAgICAgICAgICAgICAgICAgICAgICAgIGBoZWlnaHRgLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gLmZvbyB7XG4vLy8gICBAaW5jbHVkZSBzaXplKDMwMHB4IDEwMHB4KTtcbi8vLyB9XG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHNpemUoJHZhbHVlKSB7XG4gICR3aWR0aDogbnRoKCR2YWx1ZSwgMSk7XG4gICRoZWlnaHQ6ICR3aWR0aDtcblxuICBAaWYgbGVuZ3RoKCR2YWx1ZSkgPiAxIHtcbiAgICAkaGVpZ2h0OiBudGgoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCRoZWlnaHQpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skaGVpZ2h0fWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCRoZWlnaHRgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJHdpZHRoKSB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyR3aWR0aH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkd2lkdGhgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gT3V0cHV0cyBhIFBORyBmYWxsYmFjayB3aXRoIFNWRy4gUmVxdWlyZXMgZmVhdHVyZSBkZXRlY3Rpb24sIHN1Y2ggYXNcbi8vLyBNb2Rlcm5penIuXG4vLy9cbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRpbWFnZS1uYW1lIC0gRmlsZSBuYW1lIG9mIFNWRyBpbWFnZSwgd2l0aCBmaWxlIGV4dGVuc2lvblxuLy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbWl0dGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gLmZvbyB7XG4vLy8gICBAaW5jbHVkZSBzdmctd2l0aC1wbmcobG9nbyk7XG4vLy8gfVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBzdmctd2l0aC1wbmcoJGltYWdlLW5hbWUpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogcGF0aCgnI3skaW1hZ2UtbmFtZX0uc3ZnJywgc3ZnKTtcblxuICAubm8tc3ZnICYge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHBhdGgoJyN7JGltYWdlLW5hbWV9LnBuZycpO1xuICB9XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0eTogJ2FsbCcpIHtcbiAgJGxlbmd0aDogbGVuZ3RoKCRwcm9wZXJ0eSk7XG5cbiAgLy8gQGVhY2ggJHByb3AgaW4gJHByb3BlcnR5IHt9XG4gIC8vICN7JHByb3BlcnR5fSBzZXR0aW5nKCd0cmFuc2l0aW9uLnNwZWVkJykgc2V0dGluZygndHJhbnNpdGlvbi5tZXRob2QnKTtcblxuICB0cmFuc2l0aW9uOiAjeyRwcm9wZXJ0eX1cbiAgICAgICAgICAgICAgc2V0dGluZygndHJhbnNpdGlvbi5zcGVlZCcpXG4gICAgICAgICAgICAgIHNldHRpbmcoJ3RyYW5zaXRpb24ubWV0aG9kJyk7XG59XG4iLCIvLyBBZGQgY3VzdG9tIGZ1bmN0aW9ucyBoZXJlXG4iLCJAbWl4aW4gY29sdW1ucygkY29sdW1ucywgJGxheW91dCwgJGJyZWFrcG9pbnRzOiAoKSwgJHNwYW5zOiAoKSkge1xuICAmLi1jb2wjeyRjb2x1bW5zfSB7XG4gICAgLy9AaW5jbHVkZSBsYXlvdXQoJGxheW91dCkge1xuICAgIC8vICBAZWFjaCAkYnJlYWtwb2ludCwgJGNvbHMgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAvLyAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC4nICsgJGJyZWFrcG9pbnQpLCAkY29scykge1xuICAgIC8vICAgICAgPiAuZ3JpZC1pdGVtIHtcbiAgICAvLyAgICAgICAgQGluY2x1ZGUgc3BhbigxKTtcbiAgICAvLyAgICAgICAgbWFyZ2luLWJvdHRvbTogZ3V0dGVyKCRjb2x1bW5zKTtcbiAgICAvL1xuICAgIC8vICAgICAgICBAZWFjaCAkc3BhbiwgJHNwYW5NYXAgaW4gJHNwYW5zIHtcbiAgICAvLyAgICAgICAgICAmLi1zcGFuI3skc3Bhbn0ge1xuICAgIC8vICAgICAgICAgICAgQGluY2x1ZGUgc3BhbihzZXR0aW5nKCRicmVha3BvaW50LCAkc3Bhbk1hcCkpO1xuICAgIC8vICAgICAgICAgIH1cbiAgICAvLyAgICAgICAgfVxuICAgIC8vXG4gICAgLy8gICAgICAgIEBpZiAkY29scyA+IDEge1xuICAgIC8vICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgIC8vICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIC8vICAgICAgICAgIH1cbiAgICAvL1xuICAgIC8vICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGNvbHN9biksXG4gICAgLy8gICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAvLyAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAvLyAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgLy8gICAgICAgICAgfVxuICAgIC8vICAgICAgICB9XG4gICAgLy9cbiAgICAvLyAgICAgICAgQGNvbnRlbnQ7XG4gICAgLy8gICAgICB9XG4gICAgLy8gICAgfVxuICAgIC8vICB9XG4gICAgLy99XG4gIH1cbn1cblxuQG1peGluIGxpbmsoJGluaXRpYWxTY2FsZTogLjksICRpbml0aWFsT3BhY2l0eTogLjMpIHtcbiAgY29sb3I6IGNvbG9yKHB1cnBsZSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICY6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IocHVycGxlKTtcbiAgICBjb250ZW50OiAnJztcbiAgICBvcGFjaXR5OiAkaW5pdGlhbE9wYWNpdHk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoJGluaXRpYWxTY2FsZSk7XG4gICAgdHJhbnNpdGlvbjogYWxsIC4zcztcbiAgfVxuXG4gICY6aG92ZXI6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICB9XG59XG4iLCIvLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFZhcmlhYmxlc1xuLy8vXG4vLy8gRGVmaW5lIGFsbCBvZiB0aGUgc2l0ZSdzIHNpbmdsZSB2YXJpYWJsZXMgaGVyZS5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kYmFzZS1mb250LXNpemU6IDFlbTtcbiRiYXNlLWxpbmUtaGVpZ2h0OiAxLjQ7XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gQnJlYWtwb2ludCBTZXR0aW5nc1xuLy8vXG4vLy8gSWYgeW91J3JlIHVzaW5nIFtCcmVha3BvaW50XShodHRwczovL2dpdGh1Yi5jb20vYXQtaW1wb3J0L2JyZWFrcG9pbnQpLCB5b3Vcbi8vLyBjYW4gZGVmaW5lIGl0cyBzZXR0aW5ncyBoZXJlLlxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICRicmVha3BvaW50LW5vLXF1ZXJpZXM6IGZhbHNlOyAvLyB0cnVlIHRvIHJlcGxhY2UgYEBtZWRpYWAgd2l0aCBgLm5vLW1xYCBzdHlsZXNcbi8vICRicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrczogZmFsc2U7IC8vIHRydWUgdG8gYWRkIGAubm8tbXFgIHN0eWxlc1xuLy8gJG5vLXF1ZXJ5OiAnbm8tcXVlcnknICcubm8tbXEnO1xuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIExheW91dHNcbi8vL1xuLy8vIFN1c3kgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIG11bHRpcGxlIGdyaWQgbGF5b3V0cy4gVGhlIGAkZGVmYXVsdC1sYXlvdXRgXG4vLy8gbGF5b3V0IGlzIG1hcHBlZCB0byB0aGUgYCRzdXN5YCB2YXJpYWJsZSwgd2hpY2ggaXMgdGhlIHJlcXVpcmVkIG5hbWVzcGFjZVxuLy8vIHdpdGhpbiBTdXN5LiBWaWV3XG4vLy8gW1N1c3kncyBkb2N1bWVudGF0aW9uXShodHRwOi8vc3VzeWRvY3Mub2RkYmlyZC5uZXQvZW4vbGF0ZXN0LykgdG8gbGVhcm4gaG93XG4vLy8gdG8gY2FsbCBvdGhlciBsYXlvdXRzIGFuZCBmb3IgYWNjZXB0ZWQga2V5L3ZhbHVlIHBhaXJzLlxuLy8vXG4vLy8gSWYgeW91IGhhdmUgbm8gdXNlIGZvciBncmlkcyBvciBTdXN5LCB5b3UgbWF5IGlnbm9yZSB0aGVzZSBzZXR0aW5ncy5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kZGVmYXVsdC1sYXlvdXQ6IChcbiAgY29udGFpbmVyOiAxMjUwcHgsXG4gIGNvbHVtbnM6IDYsXG4gIGd1dHRlcnM6IC4yNSxcbiAgZ3V0dGVyLXBvc2l0aW9uOiBhZnRlclxuKTtcblxuJHN1c3k6ICRkZWZhdWx0LWxheW91dDtcblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBOZWF0IE92ZXJyaWRlc1xuLy8vXG4vLy8gSWYgeW91J3ZlIGNob29zZW4gdG8gdXNlIE5lYXQgaW4gZmF2b3Igb2YgU3VzeSwgeW91IG1heSBvdmVycmlkZSBpdHMgZGVmYXVsdFxuLy8vIHZhcmlhYmxlcyBoZXJlLiBOb3RlIHRoYXQgd2l0aCBOZWF0LCB5b3UgY2FuIG9ubHkgaGF2ZSBhIHNpbmdsZSBsYXlvdXQuIFZpZXdcbi8vLyBbTmVhdCdzIGRvY3VtZW50YXRpb25dKGh0dHA6Ly90aG91Z2h0Ym90LmdpdGh1Yi5pby9uZWF0LWRvY3MvbGF0ZXN0LykgdG9cbi8vLyBsZWFybiBtb3JlLlxuLy8vXG4vLy8gSWdub3JlIHRoZXNlIHNldHRpbmdzIGlmIHlvdSdyZSBub3QgdXNpbmcgTmVhdC5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAkY29sdW1uOiAxMDBweDtcbi8vICRndXR0ZXI6IDEwcHg7XG4vLyAkZ3JpZC1jb2x1bW5zOiAxMnB4O1xuLy8gJG1heC13aWR0aDogMTIwMHB4O1xuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFNldHRpbmdzXG4vLy9cbi8vLyBUaGUgc2V0dGluZ3MgbWFwIGFsbG93cyB5b3UgdG8gY29udmVuaWVudGx5IGRlZmluZSBhbGwgb2YgeW91ciB2YXJpYWJsZXMgaW5cbi8vLyBhIHNpbmdsZSBtYXAuXG4vLy9cbi8vLyBZb3UgbWF5IGhhdmUgYSBtYXAgbGlrZSBzbzpcbi8vLyBgYGBcbi8vLyAkc2V0dGluZ3M6IChcbi8vLyAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrLFxuLy8vICAgei1pbmRleDogKFxuLy8vICAgICBuYXY6IDIsXG4vLy8gICAgIGRlZmF1bHQ6IDFcbi8vLyAgIClcbi8vLyApO1xuLy8vIGBgYFxuLy8vXG4vLy8gQW5kIHRoZW4geW91IHdvdWxkIHNpbXBseSB1c2UgdGhlIGBzZXR0aW5nYCBmdW5jdGlvbiB0byBjYWxsIHlvdXIgZGVmaW5lZFxuLy8vIHNldHRpbmdzLCBsaWtlIHNvOlxuLy8vIGBgYFxuLy8vIC5mb28ge1xuLy8vICAgYm9yZGVyLXRvcDogc2V0dGluZyhib3JkZXIpO1xuLy8vICAgei1pbmRleDogc2V0dGluZyh6LWluZGV4LCBkZWZhdWx0KTtcbi8vLyB9XG4vLy8gYGBgXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJHNldHRpbmdzOiAoXG4gIGNvbG9yOiByZWQsXG4gIGJ1dHRvbjogKFxuICAgIHBhZGRpbmc6IDEwcHhcbiAgKSxcbiAgYnJlYWtwb2ludDogKFxuICAgIHhzbWFsbDogZW0oMzIwcHgpIGVtKDU5OXB4KSxcbiAgICBzbWFsbDogZW0oNjAwcHgpLFxuICAgIHNtYWxsT25seTogZW0oNjAwcHgpIGVtKDc5OXB4KSxcbiAgICBtZWRpdW06IGVtKDgwMHB4KSxcbiAgICBtZWRpdW1Pbmx5OiBlbSg4MDBweCkgZW0oMTAxOXB4KSxcbiAgICBsYXJnZTogZW0oMTAyMHB4KSxcbiAgICBsYXJnZU9ubHk6IGVtKDEwMjBweCkgZW0oMTA3NHB4KSxcbiAgICB4bGFyZ2U6IGVtKDEwNzVweCksXG4gICAgeGxhcmdlT25seTogZW0oMTA3NXB4KSBlbSgxMTk5cHgpLFxuICAgIHh4bGFyZ2U6IGVtKDExOTlweClcbiAgKSxcbiAgZ2xvYmFsOiAoXG4gICAgaGVhZGVyOiAoXG4gICAgICBib3JkZXJIZWlnaHQ6IDM1cHgsXG4gICAgICBoZWlnaHQ6IChcbiAgICAgICAgc21hbGw6IDEwM3B4LFxuICAgICAgICBtZWRpdW06IDEwM3B4LFxuICAgICAgICBsYXJnZTogMTAzcHhcbiAgICAgICksXG4gICAgICBsb2dvOiA3N3B4XG4gICAgKVxuICApLFxuICB0cmFuc2l0aW9uOiAoXG4gICAgbWV0aG9kOiBsaW5lYXIsXG4gICAgc3BlZWQ6IDE1MG1zXG4gICksXG4gIGd1dHRlclBhZGRpbmc6IDQwcHgsXG4gIGd1dHRlclBhZGRpbmdNZWRpdW06IDMwcHgsXG4gIGd1dHRlclBhZGRpbmdTbWFsbDogMjBweCxcbiAgZ3V0dGVyUGFkZGluZ0xhcmdlOiA2MHB4XG4pICFnbG9iYWw7XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gQnJlYWtwb2ludHNcbi8vL1xuLy8vIERlZmluZXMgY29tbW9ubHkgdXNlZCBicmVha3BvaW50cyBmb3IgbWVkaWEgcXVlcmllcy4gQnJlYWtwb2ludCB2YWx1ZXNcbi8vLyBzaG91bGQgdXNlIGBlbWAsIHdoaWNoIGlzIGNhbGN1bGF0ZWQgdXNpbmcgMTZweCBhcyB0aGUgYmFzZS4gQ29udGVudCBzaG91bGRcbi8vLyBkaWN0YXRlIHlvdXIgYnJlYWtwb2ludHMsIG5vdCBzY3JlZW4gd2lkdGhzIG9mIHBvcHVsYXIgZGV2aWNlcy5cbi8vL1xuLy8vIEhlcmUncyBhbiBleGFtcGxlIG9mIGhvdyBhIGAkYnJlYWtwb2ludHNgIG1hcCBjb3VsZCBsb29rOlxuLy8vXG4vLy8gYGBgXG4vLy8gJGJyZWFrcG9pbnRzOiAoXG4vLy8gICBmb286IGVtKDgzN3B4KSxcbi8vLyAgIGNvbXBvbmVudHM6IChcbi8vLyAgICAgbmF2aWdhdGlvbjogZW0oOTAwcHgpLFxuLy8vICAgICBzaWRlYmFyOiBlbSgxMDQ0cHgpXG4vLy8gICApLFxuLy8vICAgc2NyZWVuOiAoXG4vLy8gICAgIHhsLW1pbjogZW0oMTIwMHB4KSxcbi8vLyAgICAgbGctbWF4OiBlbSgxMjAwcHggLSAxcHgpLFxuLy8vICAgICBsZy1taW46IGVtKDgwMHB4KSxcbi8vLyAgICAgbWQtbWF4OiBlbSg4MDBweCAtIDFweClcbi8vLyAgIClcbi8vLyApO1xuLy8vIGBgYFxuLy8vXG4vLy8gSWYgeW91J3JlIHVzaW5nIFtCcmVha3BvaW50XShodHRwczovL2dpdGh1Yi5jb20vYXQtaW1wb3J0L2JyZWFrcG9pbnQpLCB5b3Vcbi8vLyBtYXkgd2lzaCB0byBhZGQgYSBuby1xdWVyeSBmYWxsYmFjayB0byB5b3VyIGJyZWFrcG9pbnRzLCBsaWtlIHNvOlxuLy8vXG4vLy8gYGxnLW1pbjogKGVtKDg3MHB4KSwgJG5vLXF1ZXJ5KWAuXG4vLy9cbi8vLyBNb3JlIGluZm9ybWF0aW9uIGFib3V0IEJyZWFrcG9pbnQncyBuby1xdWVyeSBmYWxsYmFja3MgY2FuIGJlIHJlYWRcbi8vLyBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL2F0LWltcG9ydC9icmVha3BvaW50L3dpa2kvTm8tUXVlcnktRmFsbGJhY2tzKS5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kYnJlYWtwb2ludHM6ICgpICFnbG9iYWw7XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gQ29sb3JzXG4vLy9cbi8vLyBDb2xvcnMgY2FuIGJlIGFkanVzdGVkIGJ5IHVzaW5nIFNhc3MncyBuYXRpdmUgY29sb3IgZnVuY3Rpb25zLCBzdWNoIGFzXG4vLy8gYGxpZ2h0ZW5gLCBgZGFya2VuYCBhbmQgYG1peGAuIEFzIGEgZ3VpZGVsaW5lLCBhZGp1c3QgY29sb3JzIGZvciBzcGVjaWZpY1xuLy8vIGNpcmN1bXN0YW5jZXMgd2hlcmUgdGhlIGNvbG9yIG1heSBvbmx5IGJlIHVzZWQgb25jZSwgc3VjaCBhcyBob3ZlciBzdGF0ZXNcbi8vLyBvciBzbGlnaHQgdmFyaWF0aW9ucyBpbiBmb250IGNvbG9yLlxuLy8vXG4vLy8gQ29sb3JzIGNhbiBiZSBjb25maWd1cmVkIGxpa2Ugc286XG4vLy9cbi8vLyBgYGBcbi8vLyAkY29sb3JzOiAoXG4vLy8gICBncmF5OiAoXG4vLy8gICAgIGxpZ2h0OiAjOTk5LFxuLy8vICAgICBiYXNlOiAjNjY2LFxuLy8vICAgICBkYXJrOiAjMzMzXG4vLy8gICApXG4vLy8gKTtcbi8vLyBgYGBcbi8vL1xuLy8vIGFuZCBjYWxsZWQgbGlrZSBzbzpcbi8vL1xuLy8vIGBgYFxuLy8vIC5mb28ge1xuLy8vICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSwgZGFyayk7XG4vLy8gICBjb2xvcjogY29sb3IoZ3JheSk7XG4vLy8gfVxuLy8vIGBgYFxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRjb2xvcnM6IChcbiAgZ3JheTogKFxuICAgIHhsaWdodCA6ICNGNUY1RjAsXG4gICAgbGlnaHQgIDogI0RERERERCxcbiAgICBiYXNlICAgOiAjN0Q3RDdELFxuICAgIGRhcmsgICA6ICM1MzU2NUIsXG4gICAgeGRhcmsgIDogIzJGM0Q0N1xuICApLFxuICBncmVlbjogKFxuICAgIGJhc2UgIDogI0RERERERCxcbiAgKSxcbiAgYmx1ZTogKFxuICAgIGJhc2UgIDogIzAzMTIzRixcbiAgKSxcbiAgb3JhbmdlOiAoXG4gICAgYmFzZSAgOiAjRjU5MzMzLFxuICApLFxuICBwdXJwbGU6IChcbiAgICBiYXNlICA6ICM1QzREOUMsXG4gICksXG4gIGFsZXJ0OiAoXG4gICAgbGV2ZWxJbmZvICAgIDogI0E3QkY4QixcbiAgICBsZXZlbE5vdGljZSAgOiAjRjU5MzMzLFxuICAgIGxldmVsQ3JpdGljYWw6ICNGNDQzMzZcbiAgKVxuKSAhZ2xvYmFsO1xuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIEZvbnQgRmFtaWxpZXNcbi8vL1xuLy8vIERlZmluZSBjdXN0b20gZm9udCB2YXJpYWJsZXMgaGVyZS4gYCRoZWx2ZXRpY2FgIGFuZCBgJG1vbm9zcGFjZWAgaGF2ZSBiZWVuXG4vLy8gZGVmaW5lZCB0byBzdGFydCwgYnV0IHlvdSBtYXkgcmUtY29uZmlndXJlIGFzIG5lZWRlZC5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRvcGVuU2FuczpcbiAgJ09wZW4gU2FucycsXG4gICdIZWx2ZXRpY2EgTmV1ZScsXG4gICdIZWx2ZXRpY2EnLFxuICAnUm9ib3RvJyxcbiAgJ0FyaWFsJyxcbiAgc2Fucy1zZXJpZjtcblxuJG9wZW5TYW5zQ29uZGVuc2VkOlxuICAnT3BlbiBTYW5zIENvbmRlbnNlZCcsXG4gICdIZWx2ZXRpY2EgTmV1ZScsXG4gICdIZWx2ZXRpY2EnLFxuICAnUm9ib3RvJyxcbiAgJ0FyaWFsJyxcbiAgc2Fucy1zZXJpZjtcblxuJGJhc2tlcnZpbGxlOlxuICAnQmFza2VydmlsbGUnLFxuICAnTGlicmUgQmFza2VydmlsbGUnLFxuICAnR2VvcmdpYScsXG4gICdUaW1lcycsXG4gICdUaW1lcyBOZXcgUm9tYW4nLFxuICAnc2VyaWYnO1xuXG5cbiRtb25vc3BhY2U6XG4gICdTb3VyY2UgQ29kZSBQcm8nLFxuICAnTWVubG8nLFxuICAnTW9uYWNvJyxcbiAgJ0NvbnNvbGFzJyxcbiAgJ0NvdXJpZXIgTmV3JyxcbiAgbW9ub3NwYWNlO1xuXG4kbnNjY0ljb25zOiAnbnNjYy1pY29ucyc7XG4iLCJodG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6ICMyMjI7XG4gIGZvbnQtZmFtaWx5OiAkb3BlblNhbnM7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogJGJhc2UtbGluZS1oZWlnaHQ7XG59XG5cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG5ib2R5IHtcbiAgLy8gYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSwgeGxpZ2h0KTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLWhlaWdodDogMTAwdmg7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIG1hcmdpbjogMDtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsgLy8gRml4IHRoZSBjaGFyYWN0ZXIgc3BhY2luZyBmb3IgaGVhZGluZ3Ncbn1cblxuaDEge31cblxuaDIge31cblxuaDMge31cblxuaDQge31cblxuaDUge31cblxuaDYge31cblxucCB7XG4gIG1hcmdpbjogMWVtIDA7XG59XG5cbnVsLFxub2wge1xuICBtYXJnaW46IDFlbSAwO1xuICBwYWRkaW5nLWxlZnQ6IDFlbTtcbn1cblxuZGwge1xuICBtYXJnaW46IDFlbSAwO1xuXG4gIGR0IHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBtYXJnaW4tdG9wOiAuNWVtO1xuICB9XG5cbiAgZGQge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG5hIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMgbGluZWFyO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHt9XG59XG5cbmhyIHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgZ3JheTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IDFlbSAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbmF1ZGlvLFxuY2FudmFzLFxuaWZyYW1lLFxuaW1nLFxuc3ZnLFxudmlkZW8ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5ibG9ja3F1b3RlIHt9XG5cbmNpdGUge31cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogJG1vbm9zcGFjZTtcbn1cblxuc2FtcCB7XG4gIGZvbnQtc2l6ZTogOTAlO1xufVxuXG5hYmJyIHtcbiAgY3Vyc29yOiBoZWxwO1xufVxuXG50YWJsZSB7XG4gIG1hcmdpbjogMWVtIDA7XG59XG5cbnRyLFxudGQsXG50aCB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbnRoIHtcbiAgcGFkZGluZzogMWVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG50ZCB7XG4gIHBhZGRpbmc6IDFlbTtcbn1cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxubGVnZW5kIHt9XG5cbmxhYmVsIHt9XG5cbnRleHRhcmVhIHtcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cblxuc2VsZWN0IHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogYXV0bztcbn1cblxuW3R5cGU9J3NlYXJjaCddIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuW3R5cGU9J3JhZGlvJ10sXG5bdHlwZT0nY2hlY2tib3gnXSB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbjogNHB4IDAgMDtcbiAgbWFyZ2luLXRvcDogMXB4IFxcOTtcbn1cblxuW3R5cGU9J2ZpbGUnXSxcblt0eXBlPSdyYW5nZSddIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5bbXVsdGlwbGVdLFxuW3NpemVdIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5idXR0b24sXG5bdHlwZT0nc3VibWl0J10ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbmFkZHJlc3Mge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbm1haW4ge1xuICAtbXMtZmxleDogMSAwIGF1dG87XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBvdXRsaW5lOiAwO1xufVxuXG5uYXYgdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCJAaW1wb3J0IFwibnNjYy1pY29uc1wiO1xuXG4iLCJAZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICduc2NjLWljb25zJztcbiAgc3JjOiB1cmwoJy9hc3NldHMvZGlzdC9mb250cy9uc2NjLWljb25zL25zY2MtaWNvbnMuZW90PzQ2NzAzMzMyJyk7XG4gIHNyYzogdXJsKCcvYXNzZXRzL2Rpc3QvZm9udHMvbnNjYy1pY29ucy9uc2NjLWljb25zLmVvdD80NjcwMzMzMiNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICB1cmwoJy9hc3NldHMvZGlzdC9mb250cy9uc2NjLWljb25zL25zY2MtaWNvbnMud29mZjI/NDY3MDMzMzInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgdXJsKCcvYXNzZXRzL2Rpc3QvZm9udHMvbnNjYy1pY29ucy9uc2NjLWljb25zLndvZmY/NDY3MDMzMzInKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICB1cmwoJy9hc3NldHMvZGlzdC9mb250cy9uc2NjLWljb25zL25zY2MtaWNvbnMudHRmPzQ2NzAzMzMyJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgIHVybCgnL2Fzc2V0cy9kaXN0L2ZvbnRzL25zY2MtaWNvbnMvbnNjYy1pY29ucy5zdmc/NDY3MDMzMzIjbnNjYy1pY29ucycpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi8qIENocm9tZSBoYWNrOiBTVkcgaXMgcmVuZGVyZWQgbW9yZSBzbW9vdGggaW4gV2luZG96emUuIDEwMCUgbWFnaWMsIHVuY29tbWVudCBpZiB5b3UgbmVlZCBpdC4gKi9cbi8qIE5vdGUsIHRoYXQgd2lsbCBicmVhayBoaW50aW5nISBJbiBvdGhlciBPUy1lcyBmb250IHdpbGwgYmUgbm90IGFzIHNoYXJwIGFzIGl0IGNvdWxkIGJlICovXG4vKlxuQG1lZGlhIHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKSB7XG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnbnNjYy1pY29ucyc7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnQvbnNjYy1pY29ucy5zdmc/NDY3MDMzMzIjbnNjYy1pY29ucycpIGZvcm1hdCgnc3ZnJyk7XG4gIH1cbn1cbiovXG5cbiBbY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlLCBbY2xhc3MqPVwiIGljb24tXCJdOmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBcIm5zY2MtaWNvbnNcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBzcGVhazogbm9uZTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgd2lkdGg6IDFlbTtcbiAgbWFyZ2luLXJpZ2h0OiAuMmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8qIG9wYWNpdHk6IC44OyAqL1xuXG4gIC8qIEZvciBzYWZldHkgLSByZXNldCBwYXJlbnQgc3R5bGVzLCB0aGF0IGNhbiBicmVhayBnbHlwaCBjb2RlcyovXG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAvKiBmaXggYnV0dG9ucyBoZWlnaHQsIGZvciB0d2l0dGVyIGJvb3RzdHJhcCAqL1xuICBsaW5lLWhlaWdodDogMWVtO1xuXG4gIC8qIEFuaW1hdGlvbiBjZW50ZXIgY29tcGVuc2F0aW9uIC0gbWFyZ2lucyBzaG91bGQgYmUgc3ltbWV0cmljICovXG4gIC8qIHJlbW92ZSBpZiBub3QgbmVlZGVkICovXG4gIG1hcmdpbi1sZWZ0OiAuMmVtO1xuXG4gIC8qIHlvdSBjYW4gYmUgbW9yZSBjb21mb3J0YWJsZSB3aXRoIGluY3JlYXNlZCBpY29ucyBzaXplICovXG4gIC8qIGZvbnQtc2l6ZTogMTIwJTsgKi9cblxuICAvKiBGb250IHNtb290aGluZy4gVGhhdCB3YXMgdGFrZW4gZnJvbSBUV0JTICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG4gIC8qIFVuY29tbWVudCBmb3IgM0QgZWZmZWN0ICovXG4gIC8qIHRleHQtc2hhZG93OiAxcHggMXB4IDFweCByZ2JhKDEyNywgMTI3LCAxMjcsIDAuMyk7ICovXG59XG5cbi5pY29uLWN3OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDAnOyB9IC8qICfuoIAnICovXG4uaWNvbi1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDEnOyB9IC8qICfuoIEnICovXG4uaWNvbi1taW51czpiZWZvcmUgeyBjb250ZW50OiAnXFxlODAyJzsgfSAvKiAn7qCCJyAqL1xuLmljb24tZG93bi1kaXI6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwMyc7IH0gLyogJ+6ggycgKi9cbi5pY29uLXNlYXJjaDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODA0JzsgfSAvKiAn7qCEJyAqL1xuLmljb24tZ3BsdXM6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwNSc7IH0gLyogJ+6ghScgKi9cbi5pY29uLXR3aXR0ZXI6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwNic7IH0gLyogJ+6ghicgKi9cbi5pY29uLWZhY2Vib29rOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDcnOyB9IC8qICfuoIcnICovXG4uaWNvbi1mbGlja3I6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwOCc7IH0gLyogJ+6giCcgKi9cbi5pY29uLXBpbnRlcmVzdDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODA5JzsgfSAvKiAn7qCJJyAqL1xuLmljb24taW5zdGFncmFtOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGEnOyB9IC8qICfuoIonICovXG4uaWNvbi15b3V0dWJlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGInOyB9IC8qICfuoIsnICovXG4uaWNvbi1hbmdsZS1jaXJjbGVkLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGMnOyB9IC8qICfuoIwnICovXG4uaWNvbi1vay1jaXJjbGVkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGQnOyB9IC8qICfuoI0nICovXG4uaWNvbi1sZWZ0LW9wZW4tYmlnOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGUnOyB9IC8qICfuoI4nICovXG4uaWNvbi1yaWdodC1vcGVuLWJpZzpiZWZvcmUgeyBjb250ZW50OiAnXFxlODBmJzsgfSAvKiAn7qCPJyAqL1xuLmljb24tYXR0ZW50aW9uOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTAnOyB9IC8qICfuoJAnICovXG4uaWNvbi1vazpiZWZvcmUgeyBjb250ZW50OiAnXFxlODExJzsgfSAvKiAn7qCRJyAqL1xuLmljb24tdXAtYm9sZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODEyJzsgfSAvKiAn7qCSJyAqL1xuLmljb24taW5mby1jaXJjbGVkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTMnOyB9IC8qICfuoJMnICovXG4uaWNvbi1iZWxsOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTQnOyB9IC8qICfuoJQnICovXG4uaWNvbi1jYW5jZWw6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxNSc7IH0gLyogJ+6glScgKi9cbi5pY29uLWxpbmtlZGluOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTYnOyB9IC8qICfuoJYnICovXG4iLCJAaW1wb3J0IFwiYnV0dG9uXCI7XG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5AaW1wb3J0IFwibGlzdHNcIjtcbkBpbXBvcnQgXCJsb2FkZXJcIjtcbkBpbXBvcnQgXCJ0ZXh0XCI7XG5AaW1wb3J0IFwiZm9ybXNcIjtcbkBpbXBvcnQgXCJkYXRlcGlja2VyXCI7XG5AaW1wb3J0IFwidGFibGVzXCI7XG5AaW1wb3J0IFwidmlkZW8tZW1iZWRcIjtcbiIsIi8vIFVzYWdlXG4vLyA8YSBjbGFzcz1cImJ1dHRvbiAtcHJpbWFyeVwiIHJvbGU9XCJidXR0b25cIiBocmVmPVwiI1wiIHJvbGU9XCJidXR0b25cIj5MaW5rPC9hPlxuLy8gPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiAtcHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIj5CdXR0b248L2J1dHRvbj5cbi8vIDxpbnB1dCBjbGFzcz1cImJ1dHRvbiAtcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiB2YWx1ZT1cIklucHV0XCI+XG4vLyA8aW5wdXQgY2xhc3M9XCJidXR0b24gLXByaW1hcnlcIiB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJTdWJtaXRcIj5cblxuLy8gU2V0dGluZ3NcbiRidXR0b246IChcbiAgYmFja2dyb3VuZENvbG9yOiAoXG4gICAgZGVmYXVsdDogY29sb3Iob3JhbmdlKSxcbiAgICBob3ZlcjogbGlnaHRlbihjb2xvcihvcmFuZ2UpLCAxMCUpXG4gICksXG4gIGNvbG9yOiAjZmZmLFxuICBmb250U2l6ZTogLjkzOHJlbSxcbiAgcGFkZGluZzogLjkzOHJlbSAxLjU2M3JlbSxcbiAgcHJpbWFyeTogKFxuICAgIGJhY2tncm91bmRDb2xvcjogKFxuICAgICAgZGVmYXVsdDogY29sb3Iob3JhbmdlKSxcbiAgICAgIGhvdmVyOiBsaWdodGVuKGNvbG9yKG9yYW5nZSksIDEwJSlcbiAgICApXG4gICksXG4gIHNlY29uZGFyeTogKFxuICAgIGJvcmRlckNvbG9yOiAoXG4gICAgICBkZWZhdWx0OiBjb2xvcihncmF5LCB4bGlnaHQpLFxuICAgICAgaG92ZXI6IGNvbG9yKG9yYW5nZSlcbiAgICApLFxuICAgIGNvbG9yOiAoXG4gICAgICBkZWZhdWx0OiBjb2xvcihncmF5LCBkYXJrKSxcbiAgICAgIGhvdmVyOiBjb2xvcihvcmFuZ2UpXG4gICAgKVxuICApLFxuICBsYXJnZTogKFxuICAgIGZvbnRTaXplOiAuOTM4ZW0sXG4gICAgcGFkZGluZzogLjkzOGVtIDEuNTYzZW1cbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgZm9udFNpemU6IC45MzhlbSxcbiAgICBwYWRkaW5nOiAuOTM4ZW0gMS41NjNlbVxuICApLFxuICBzbWFsbDogKFxuICAgIGZvbnRTaXplOiAuOTM4ZW0sXG4gICAgcGFkZGluZzogLjU2M2VtIDIuMTI1ZW1cbiAgKSxcbik7XG5cbi8vIERlZmluaXRpb25zXG4uYnV0dG9uLFxuYS5idXR0b24sXG5wID4gYS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBzZXR0aW5nKCdiYWNrZ3JvdW5kQ29sb3IuZGVmYXVsdCcsICRidXR0b24pO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgY29sb3I6IHNldHRpbmcoJ2NvbG9yJywgJGJ1dHRvbik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IHNldHRpbmcoJ2ZvbnRTaXplJywgJGJ1dHRvbik7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBtaW4td2lkdGg6IDE4MHB4O1xuICBwYWRkaW5nOiBzZXR0aW5nKCdwYWRkaW5nJywgJGJ1dHRvbik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgdHJhbnNpdGlvbjogYWxsIC4zcztcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgLy8gU3RhdGVzXG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiBzZXR0aW5nKCdjb2xvcicsICRidXR0b24pO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHNldHRpbmcoJ2JhY2tncm91bmRDb2xvci5ob3ZlcicsICRidXR0b24pO1xuICB9XG5cbiAgJjphY3RpdmUsXG4gICY6YWN0aXZlOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIHJnYmEoIzAwMCwgLjQpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5cbiAgJltkaXNhYmxlZF0sXG4gICYuaXMtZGlzYWJsZWQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAuNjU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogbm9uZTtcbiAgfVxuXG4gIC8vIFR5cGVzXG5cbiAgJi4tcHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogc2V0dGluZygncHJpbWFyeS5iYWNrZ3JvdW5kQ29sb3IuZGVmYXVsdCcsICRidXR0b24pO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjI1cyBlYXNlLW91dDtcblxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzZXR0aW5nKCdwcmltYXJ5LmJhY2tncm91bmRDb2xvci5ob3ZlcicsICRidXR0b24pO1xuICAgIH1cbiAgfVxuXG4gICYuLXNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IocHVycGxlKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihjb2xvcihwdXJwbGUpLCAxMCUpO1xuICAgIH1cbiAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC8vYm9yZGVyOiAycHggc29saWQgc2V0dGluZygnc2Vjb25kYXJ5LmJvcmRlckNvbG9yLmRlZmF1bHQnLCAkYnV0dG9uKTtcbiAgICAvL2NvbG9yOiBzZXR0aW5nKCdzZWNvbmRhcnkuY29sb3IuZGVmYXVsdCcsICRidXR0b24pO1xuICAgIC8vcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8vdHJhbnNpdGlvbjogMC41cztcbiAgICAvL1xuICAgIC8vJjphZnRlcixcbiAgICAvLyY6YmVmb3JlIHtcbiAgICAvLyAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgLy8gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLy8gIGNvbnRlbnQ6ICcnO1xuICAgIC8vICBoZWlnaHQ6IDEwMCU7XG4gICAgLy8gIGxlZnQ6IDA7XG4gICAgLy8gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvLyAgdG9wOiAwO1xuICAgIC8vICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgLy8gIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAvLyAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgLy8gIC1vLXRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgLy8gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgLy8gIHRyYW5zaXRpb246IDAuM3MgZWFzZS1pbjtcbiAgICAvLyAgd2lkdGg6IDEwMCU7XG4gICAgLy8gIHotaW5kZXg6IDM7XG4gICAgLy99XG4gICAgLy9cbiAgICAvLyY6YmVmb3JlIHtcbiAgICAvLyAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHNldHRpbmcoJ3NlY29uZGFyeS5ib3JkZXJDb2xvci5ob3ZlcicsICRidXR0b24pO1xuICAgIC8vICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHNldHRpbmcoJ3NlY29uZGFyeS5ib3JkZXJDb2xvci5ob3ZlcicsICRidXR0b24pO1xuICAgIC8vICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gICAgLy8gIC1tb3otdHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTtcbiAgICAvLyAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gICAgLy8gIC1vLXRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gICAgLy8gIHRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gICAgLy99XG4gICAgLy9cbiAgICAvLyY6YWZ0ZXIge1xuICAgIC8vICBib3JkZXItdG9wOiAycHggc29saWQgc2V0dGluZygnc2Vjb25kYXJ5LmJvcmRlckNvbG9yLmhvdmVyJywgJGJ1dHRvbik7XG4gICAgLy8gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHNldHRpbmcoJ3NlY29uZGFyeS5ib3JkZXJDb2xvci5ob3ZlcicsICRidXR0b24pO1xuICAgIC8vICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMCU7XG4gICAgLy8gIC1tb3otdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwJTtcbiAgICAvLyAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMCU7XG4gICAgLy8gIC1vLXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMCU7XG4gICAgLy8gIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMCU7XG4gICAgLy99XG4gICAgLy9cbiAgICAvLyY6aG92ZXIsXG4gICAgLy8mOmFjdGl2ZSxcbiAgICAvLyY6Zm9jdXMge1xuICAgIC8vICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDAsIDE2MCwgODAsIDApO1xuICAgIC8vICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAvLyAgY29sb3I6IHNldHRpbmcoJ3NlY29uZGFyeS5jb2xvci5ob3ZlcicsICRidXR0b24pO1xuICAgIC8vfVxuICAgIC8vXG4gICAgLy8mOmhvdmVyOmFmdGVyLFxuICAgIC8vJjpob3ZlcjpiZWZvcmUge1xuICAgIC8vICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLy8gIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAvLyAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLy8gIC1vLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLy8gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLy99XG4gICAgLy9cbiAgICAvLyYuLXdoaXRlIHtcbiAgICAvLyAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbiAgICAvLyAgY29sb3I6IHdoaXRlO1xuICAgIC8vICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xuICAgIC8vXG4gICAgLy8gICY6YmVmb3JlLFxuICAgIC8vICAmOmFmdGVyIHtcbiAgICAvLyAgICBjb250ZW50OiBub25lO1xuICAgIC8vICB9XG4gICAgLy9cbiAgICAvLyAgJjpob3ZlciB7XG4gICAgLy8gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAvLyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG4gICAgLy8gIH1cbiAgICAvL31cbiAgfVxuXG4gICYuLXRlcnRpYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihibHVlKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihjb2xvcihibHVlKSwgMTAlKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBTaXplc1xuXG4gICYuLWxhcmdlIHtcbiAgICBmb250LXNpemU6IHNldHRpbmcoJ2xhcmdlLmZvbnRTaXplJywgJGJ1dHRvbik7XG4gICAgcGFkZGluZzogc2V0dGluZygnbGFyZ2UucGFkZGluZycsICRidXR0b24pO1xuICB9XG5cbiAgJi4tbWVkaXVtIHtcbiAgICBmb250LXNpemU6IHNldHRpbmcoJ21lZGl1bS5mb250U2l6ZScsICRidXR0b24pO1xuICAgIHBhZGRpbmc6IHNldHRpbmcoJ21lZGl1bS5wYWRkaW5nJywgJGJ1dHRvbik7XG4gIH1cblxuICAmLi1zbWFsbCB7XG4gICAgZm9udC1zaXplOiBzZXR0aW5nKCdzbWFsbC5mb250U2l6ZScsICRidXR0b24pO1xuICAgIG1pbi13aWR0aDogYXV0bztcbiAgICBwYWRkaW5nOiBzZXR0aW5nKCdzbWFsbC5wYWRkaW5nJywgJGJ1dHRvbik7XG4gIH1cblxuICAvLyBTdHlsZXNcblxuICAmLi1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMmVtICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAmLi1jZW50ZXIge1xuICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICB9XG5cbiAgJi4tZnVsbCB7XG4gICAganVzdGlmeS1zZWxmOiBzdHJldGNoO1xuICB9XG5cbiAgJi4tbGVmdCB7XG4gICAganVzdGlmeS1zZWxmOiBsZWZ0O1xuICB9XG5cbiAgJi4tcmlnaHQge1xuICAgIGp1c3RpZnktc2VsZjogcmlnaHQ7XG4gIH1cbn1cblxuLmJ1dHRvbi1jb250YWluZXIge1xuICBkaXNwbGF5OiBncmlkO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmJ1dHRvbi1jb250YWluZXIgKyAuYnV0dG9uLWNvbnRhaW5lciB7XG4gIG1hcmdpbi10b3A6IDFlbTtcbn0iLCIvLyBGb250c1xuLmJhc2tlcnZpbGxlIHtcbiAgZm9udC1mYW1pbHk6ICRiYXNrZXJ2aWxsZTtcbn1cblxuLm1vbm9zcGFjZSB7XG4gIGZvbnQtZmFtaWx5OiAkbW9ub3NwYWNlO1xufVxuXG4udmlzdWFsbHktaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsInVsLCBvbCB7XG4gIG1hcmdpbi1sZWZ0OiAwLjE1ZW07XG59XG5cbmxpIHtcbiAgY29sb3I6ICMwMzEyM0Y7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuXG4gICY6bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmFydGljbGUgJiB7XG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBsaW5rKCk7XG4gICAgfVxuICB9XG59XG4iLCIubG9hZGVyIHtcbiAgbWFyZ2luOiAwcHggYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogODBweDtcblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDonJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLXRvcDogMTAwJTtcbiAgfVxuXG4gICYuaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5jaXJjdWxhciB7XG4gIGFuaW1hdGlvbjogcm90YXRlIDJzIGxpbmVhciBpbmZpbml0ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IGF1dG87XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbiAgdG9wOiAwOyBib3R0b206IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuXG4ucGF0aCB7XG4gIGFuaW1hdGlvbjpcbiAgICBkYXNoIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGUsXG4gICAgY29sb3IgNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDEsMjAwO1xuICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZXtcbiAgMTAwJXtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGRhc2h7XG4gIDAle1xuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDEsMjAwO1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuICB9XG4gIDUwJXtcbiAgICBzdHJva2UtZGFzaGFycmF5OiA4OSwyMDA7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0zNXB4O1xuICB9XG4gIDEwMCV7XG4gICAgc3Ryb2tlLWRhc2hhcnJheTogODksMjAwO1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMTI0cHg7XG4gIH1cbn1cbkBrZXlmcmFtZXMgY29sb3J7XG4gIDEwMCUsIDAle1xuICAgIHN0cm9rZTogY29sb3IoZ3JlZW4pO1xuICB9XG4gIDQwJXtcbiAgICBzdHJva2U6IGNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgfVxuICA2NiV7XG4gICAgc3Ryb2tlOiBsaWdodGVuKGNvbG9yKGdyZWVuKSwgMjUlKTtcbiAgfVxuICA4MCUsIDkwJXtcbiAgICBzdHJva2U6IGNvbG9yKGdyYXksIGRhcmspO1xuICB9XG59XG4iLCIvL1RPRE86IHJlc3BvbnNpdmUgZm9udCBzaXplcy5cblxuaDEge1xuICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIGZvbnQtc2l6ZTogNC42MjVlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuaDIsIGgzIHtcbiAgZm9udC1mYW1pbHk6ICRvcGVuU2Fuc0NvbmRlbnNlZDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuaDIge1xuICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIGZvbnQtc2l6ZTogMS42MjVlbTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgIGZvbnQtc2l6ZTogMi4yNWVtO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgZm9udC1zaXplOiAyLjYyNWVtO1xuICB9XG59XG5cbmgzIHtcbiAgZm9udC1zaXplOiAxLjM3NWVtO1xufVxuXG5oMiwgaDMsIGg0LCBoNSwgaDYge1xuICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIC5hcnRpY2xlICYge1xuICAgIG1hcmdpbi10b3A6IDEuMjUwZW07XG4gIH1cbn1cblxucCB7XG4gIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS40O1xuXG4gICYubGVhZC1wYXJhZ3JhcGgge1xuICAgIGZvbnQtc2l6ZTogMS4xODhyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgfVxuXG4gICYuYWNjZW50IHtcbiAgICBmb250LWZhbWlseTogJGJhc2tlcnZpbGxlO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuXG4gICYubWV0YSB7XG4gICAgZm9udC1zaXplOiAwLjc1ZW07XG4gIH1cbn1cblxuaHIge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcihncmF5LCB4bGlnaHQpO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogMmVtIDA7XG59XG5cbi8vIE9yZGVyZWQgTGlzdHNcblxub2wgb2wgbGkge1xuICBsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLWFscGhhO1xufVxuXG5vbCBvbCBvbCBsaSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItcm9tYW47XG59XG5cbi8vIElubGluZSBFbGVtZW50c1xuXG5wID4gYSB7XG4gIEBpbmNsdWRlIGxpbmsoKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5hIHtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgY29sb3I6IGNvbG9yKGJsdWUpO1xuXG4gICYuYWNjZW50IHtcbiAgICBmb250LWZhbWlseTogJGJhc2tlcnZpbGxlO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKGJsdWUpLCAxMCUpO1xuICB9XG59XG5cbnRhYmxlIHtcbiAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbmZpZ2NhcHRpb24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiBjb2xvcihncmF5LCB4ZGFyayk7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xufSIsIkBtaXhpbiBkaXNhYmxlZC1mb3JtLWNvbnRyb2wge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBvcGFjaXR5OiAxO1xufVxuXG5AbWl4aW4gaW5wdXQtZm9jdXMge1xuICAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0ZW4oY29sb3IoZ3JlZW4pLCA1JSk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksXG4gICAgMCAwIDhweCByZ2JhKGxpZ2h0ZW4oY29sb3IoZ3JlZW4pLCA1JSksIC42KTtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IDAgMCAyZW07XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZzogMDtcblxuICAmW2Rpc2FibGVkXSAuZm9ybS1jb250cm9sIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlZC1mb3JtLWNvbnRyb2w7XG4gIH1cbn1cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgY29sb3I6ICMzMzM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDIxcHg7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIG1heC13aWR0aDogMTAwJTtcblxuICAmLnJlcXVpcmVkOmFmdGVyIHtcbiAgICBjb250ZW50OiAnKic7XG4gIH1cblxuICAmW2FyaWEtaGlkZGVuPXRydWVdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgc21hbGwge1xuICAgIGNvbG9yOiBjb2xvcihncmF5KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgfVxufVxuXG4uY2hlY2tib3gtaW5saW5lIHtcbiAgbGFiZWwge1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgfVxuICB9XG59XG5cbiVmb3JtLWNvbnRyb2wge1xuICBAaW5jbHVkZSBpbnB1dC1mb2N1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoYmxhY2ssIC4wNzUpO1xuICBjb2xvcjogY29sb3IoZ3JheSwgZGFyayk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IC44NzVlbTtcbiAgaGVpZ2h0OiA0NnB4O1xuICBsaW5lLWhlaWdodDogMS4zMztcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cyxcbiAgYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzO1xuICB3aWR0aDogMTAwJTtcblxuICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IGNvbG9yKGdyYXkpO1xuICB9XG5cbiAgLmlzLXN1Ym1pdHRlZCAmIHtcbiAgICAmOmludmFsaWQsXG4gICAgJjpyZXF1aXJlZDppbnZhbGlkIHtcbiAgICAgIGJvcmRlci1jb2xvcjogI2IwMzUzNTtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKGJsYWNrLCAuMDc1KSwgMCAwIDhweCAjZDQ1MjUyO1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSxcbiAgJltyZWFkb25seV0ge1xuICAgIEBpbmNsdWRlIGRpc2FibGVkLWZvcm0tY29udHJvbDtcbiAgfVxufVxuXG4uZm9ybS1jb250cm9sLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBtYXJnaW4tdG9wOiAxZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZvcm0tY29udHJvbCB7XG4gIEBleHRlbmQgJWZvcm0tY29udHJvbDtcblxuICAmLmhhcy1pY29uIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0NXB4O1xuICB9XG59XG5cbnRleHRhcmVhIHtcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcblxuICAmLmZvcm0tY29udHJvbCB7XG4gICAgaGVpZ2h0OiAxNTBweDtcbiAgfVxufVxuXG5bdHlwZT0ncmFkaW8nXSxcblt0eXBlPSdjaGVja2JveCddIHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luOiA0cHggMCAwO1xuICBtYXJnaW4tdG9wOiAxcHggXFw5O1xufVxuXG5bdHlwZT0nZmlsZSddLFxuW3R5cGU9J3JhbmdlJ10ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cblttdWx0aXBsZV0sXG5bc2l6ZV0ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblt0eXBlPSdmaWxlJ10sXG5bdHlwZT0ncmFkaW8nXSxcblt0eXBlPSdjaGVja2JveCddIHtcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICB9XG59XG5cbnNlbGVjdCxcbnNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICBjb2xvcjogY29sb3IoZ3JheSk7XG4gIGZvbnQtc2l6ZTogLjg3NWVtO1xuICBwYWRkaW5nLXJpZ2h0OiA0NXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuc2VsZWN0OjotbXMtZXhwYW5kIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZvcm0tY29udHJvbC1zZWxlY3Qtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi5mb3JtLWNvbnRyb2xfX2luc3RydWN0aW9ucyB7XG4gIGNvbG9yOiBjb2xvcihncmF5KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogLjg1ZW07XG4gIG1hcmdpbi1ib3R0b206IC41ZW07XG59XG5cbi5maWVsZC1pY29uIHtcbiAgY29sb3I6IGNvbG9yKGdyYXksIGRhcmspO1xuICBmb250LXNpemU6IDEuMWVtO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTNweDtcbiAgdG9wOiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHotaW5kZXg6IDE7XG59XG5cbmJ1dHRvbixcblt0eXBlPSdzdWJtaXQnXSB7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogdGhpbiBkb3R0ZWQ7XG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIH1cbn1cblxuLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xufVxuXG4ucmFkaW8sXG4uY2hlY2tib3gge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWluLWhlaWdodDogMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGxhYmVsIHtcbiAgICBjb2xvcjogY29sb3IoZ3JheSwgZGFyayk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogLjg3NWVtO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIH1cbn1cblxuLnJhZGlvIFt0eXBlPSdyYWRpbyddLFxuLnJhZGlvLWlubGluZSBbdHlwZT0ncmFkaW8nXSxcbi5jaGVja2JveCBbdHlwZT0nY2hlY2tib3gnXSxcbi5jaGVja2JveC1pbmxpbmUgW3R5cGU9J2NoZWNrYm94J10ge1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gIG1hcmdpbi10b3A6IDRweCBcXDk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLnJhZGlvICsgLnJhZGlvLFxuLmNoZWNrYm94ICsgLmNoZWNrYm94IHtcbiAgbWFyZ2luLXRvcDogLTVweDtcbn1cblxuLnJhZGlvLWlubGluZSxcbi5jaGVja2JveC1pbmxpbmUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ucmFkaW8taW5saW5lICsgLnJhZGlvLWlubGluZSxcbi5jaGVja2JveC1pbmxpbmUgKyAuY2hlY2tib3gtaW5saW5lIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cblt0eXBlPSdyYWRpbyddW2Rpc2FibGVkXSxcblt0eXBlPSdjaGVja2JveCddW2Rpc2FibGVkXSxcblt0eXBlPSdyYWRpbyddLmRpc2FibGVkLFxuW3R5cGU9J2NoZWNrYm94J10uZGlzYWJsZWQsXG5bZGlzYWJsZWRdIFt0eXBlPSdyYWRpbyddLFxuW2Rpc2FibGVkXSBbdHlwZT0nY2hlY2tib3gnXSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5yYWRpby1pbmxpbmUuZGlzYWJsZWQsXG4uY2hlY2tib3gtaW5saW5lLmRpc2FibGVkLFxuW2Rpc2FibGVkXSAucmFkaW8taW5saW5lLFxuW2Rpc2FibGVkXSAuY2hlY2tib3gtaW5saW5lIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnJhZGlvLmRpc2FibGVkIGxhYmVsLFxuLmNoZWNrYm94LmRpc2FibGVkIGxhYmVsLFxuW2Rpc2FibGVkXSAucmFkaW8gbGFiZWwsXG5bZGlzYWJsZWRdIC5jaGVja2JveCBsYWJlbCB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4iLCIvKiFcbiogUGlrYWRheVxuKiBDb3B5cmlnaHQgKGMpIDIwMTQgRGF2aWQgQnVzaGVsbCB8IEJTRCAmIE1JVCBsaWNlbnNlIHwgaHR0cDovL2RidXNoZWxsLmNvbS9cbiovXG5cbi5waWthLXNpbmdsZSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2JiYjtcbiAgY29sb3I6IGNvbG9yKGdyYXkpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogOTk5OTtcblxuICAmLmlzLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICYuaXMtYm91bmQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3gtc2hhZG93OiAwIDVweCAxNXB4IC01cHggcmdiYSgwLDAsMCwuNSk7XG4gIH1cblxuICAmLmRhcmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIGRhcmspO1xuICAgIGJvcmRlci1jb2xvcjogY29sb3IoZ3JheSk7XG4gIH1cbn1cblxuLnBpa2EtbGVuZGFyIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogOHB4O1xuICB3aWR0aDogMjQwcHg7XG59XG5cbi5waWthLXRpdGxlIHtcbiAgY29sb3I6IGNvbG9yKGdyZWVuKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgLmRhcmsgJiB7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG5cbiAgc2VsZWN0IHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xuICAgIGxlZnQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNXB4O1xuICAgIHotaW5kZXg6IDk5OTg7XG4gIH1cbn1cblxuLnBpa2EtbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDVweCAzcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogOTk5OTtcblxuICAuZGFyayAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmF5LCBkYXJrKTtcbiAgfVxufVxuXG4ucGlrYS1wcmV2LFxuLnBpa2EtbmV4dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDc1JSA3NSU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAzMHB4O1xuICBvcGFjaXR5OiAuNTtcbiAgb3V0bGluZTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWluZGVudDogMjBweDsgLy8gaGlkZSB0ZXh0IHVzaW5nIHRleHQtaW5kZW50IHRyaWNrLCB1c2luZyB3aWR0aCB2YWx1ZSAoaXQncyBlbm91Z2gpXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdpZHRoOiAyMHB4O1xuXG4gICY6aG92ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAmLmlzLWRpc2FibGVkIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgb3BhY2l0eTogLjI7XG4gIH1cbn1cblxuLnBpa2EtcHJldixcbi5pcy1ydGwgLnBpa2EtbmV4dCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCUUFBQUFlQ0FZQUFBQXNFajVyQUFBQVVrbEVRVlI0MnUzVk1Rb0FJQkFEUWY4UGdqK09EOWhHMkN0T05KQjJ5bVFrS2UwSGJ3QVAweHVjRGlRV0FSSVRJREVCRW5NZ01ROFM4K0FxQklsNmtLZ0hpWHFRcUFlSmVwQm8vejM4Si9VMHVBSGxhQmtCbDlJNEd3QUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4ucGlrYS1uZXh0LFxuLmlzLXJ0bCAucGlrYS1wcmV2IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJRQUFBQWVDQVlBQUFBc0VqNXJBQUFBVTBsRVFWUjQydTNWT3dvQU1BZ0UwZHdmQW5OalUyNmJZa0JDRkd3ZmlMOVZWV29PK0JKNEdmM2d0c0VLS29GQk5UQ29DQVlWd2FBaUdOUUdNVUhNa2pHYmdqazJtSU9OdVhvMG5DOFhuQ2YxSlhnQXJWSVpBUWg1VEtZQUFBQUFTVVZPUks1Q1lJST0nKTtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ucGlrYS1zZWxlY3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5waWthLXRhYmxlIHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgdHIge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIHRoLFxuICB0ZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTQuMjg1NzE0Mjg1NzE0Mjg2JTtcblxuICAgIC5kYXJrICYge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogY29sb3IoZ3JheSk7XG4gICAgfVxuICB9XG5cbiAgdGgge1xuICAgIGNvbG9yOiBjb2xvcihwdXJwbGUpO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAuZGFyayAmIHtcbiAgICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKHB1cnBsZSksIDUlKTtcbiAgICB9XG4gIH1cblxuICB0ZCB7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIGFiYnIge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgY3Vyc29yOiBoZWxwO1xuICB9XG59XG5cbi5waWthLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiBjb2xvcihncmF5KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTVweDtcbiAgbWFyZ2luOiAwO1xuICBvdXRsaW5lOiBub25lO1xuICBwYWRkaW5nOiAxMnB4IDVweCA4cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG5cblxuICAuZGFyayAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmF5LCBkYXJrKTtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cblxuICAuaXMtdG9kYXkgJiB7XG4gICAgY29sb3I6IGRhcmtlbihjb2xvcihncmVlbiksIDUlKTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgIC5kYXJrICYge1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oY29sb3IoZ3JlZW4pLCA1JSk7XG4gICAgfVxuICB9XG5cbiAgLmlzLXNlbGVjdGVkICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyZWVuKTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgLmRhcmsgJiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKGNvbG9yKGdyZWVuKSwgNSUpO1xuICAgIH1cbiAgfVxuXG4gIC5pcy1pbnJhbmdlICYge1xuICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4oY29sb3IoZ3JlZW4pLCA1NSUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cblxuICAuaXMtc3RhcnRyYW5nZSAmLFxuICAuaXMtZW5kcmFuZ2UgJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JlZW4pO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAuaXMtZGlzYWJsZWQgJiB7XG4gICAgY29sb3I6IGNvbG9yKGdyYXkpO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBvcGFjaXR5OiAuMztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodCkgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgIC5kYXJrICYge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSwgbGlnaHQpICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbi5waWthLXdlZWsge1xuICBjb2xvcjogY29sb3IoZ3JheSwgbGlnaHQpO1xuICBmb250LXNpemU6IDExcHg7XG59XG5cblxuLmRhdGVwaWNrZXItY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmRhdGVwaWNrZXItY29udHJvbCB7XG4gICZbcmVhZG9ubHldIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yKGdyZWVuKTtcbiAgICBjb2xvcjogY29sb3IoZ3JheSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJi5mb3JtLWNvbnRyb2wtLWRhcmsge1xuICAgICZbcmVhZG9ubHldIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXkpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG4gIH1cblxuICAmLmhhcy12YWx1ZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxufVxuXG4ucmVtb3ZlLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIC8qXG4gICAgQGluY2x1ZGUgc2l6ZShhdXRvIDM3cHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHBhdGgoJ2ljb24tY2xvc2Uuc3ZnJyk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCA1MCU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBjb2xvcjogI2E4YThhODtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAyMnB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTRweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRvcDogMThweDtcbiAgKi9cbn1cbiIsIiRicmVha3BvaW50LWFscGhhOiA5MDBweDsgLy8gYWRqdXN0IHRvIHlvdXIgbmVlZHNcblxudGFibGUge1xuICBtYXJnaW46IDFlbSAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIHRyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3IoZ3JheSwgbGlnaHQpO1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICB9XG5cbiAgdGgge1xuICAgIGRpc3BsYXk6IG5vbmU7IC8vIGZvciBhY2Nlc3NpYmlsaXR5LCB1c2UgYSB2aXN1YWxseSBoaWRkZW4gbWV0aG9kIGhlcmUgaW5zdGVhZCEgVGhhbmtzLCByZWRkaXQhXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy10b3A6IC41ZW07XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogLjVlbTtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBhdHRyKGRhdGEtdGgpXCI6IFwiO1xuICAgICAgY29sb3I6IGNvbG9yKGdyYXksIHhkYXJrKTtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtYWxwaGEpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtYWxwaGEpIHtcbiAgICB0aDpub3QoOmxhc3QtY2hpbGQpLFxuICAgIHRkOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgY29sb3IoZ3JheSwgeGxpZ2h0KTtcbiAgICB9XG4gIH1cblxuICB0aCwgdGQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtYWxwaGEpIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICBwYWRkaW5nOiAuMjVlbSAuNWVtO1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgLy8mLnRhYmxlc29ydCB7XG4gIC8vICB0aCB7XG4gIC8vICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9jaGV2cm9uLXVwLWdyZXkuc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvY2hldnJvbi1kb3duLWdyZXkuc3ZnXCIpO1xuICAvLyAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0LCBuby1yZXBlYXQ7XG4gIC8vICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDE4cHggdG9wIDI2cHgscmlnaHQgMThweCBib3R0b20gMjZweDtcbiAgLy8gICAgYmFja2dyb3VuZC1zaXplOiAxMnB4IDhweCwgMTJweCA4cHg7XG4gIC8vICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgLy8gICAgY29sb3I6IGNvbG9yKGdyYXksIGJhc2UpO1xuICAvLyAgICBmb250LXNpemU6IDExcHg7XG4gIC8vICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIC8vICAgIGhlaWdodDogNzBweDtcbiAgLy8gICAgbGV0dGVyLXNwYWNpbmc6IDNweDtcbiAgLy8gICAgcGFkZGluZzogMWVtIDQwcHggLjY4ZW0gLjc1ZW07XG4gIC8vICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIC8vICB9XG4gIC8vfVxuXG59XG5cbiIsIi8vIENyZWRpdDogTmljb2xhcyBHYWxsYWdoZXIgYW5kIFNVSVQgQ1NTLlxuXG4udmlkZW8tZW1iZWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAmOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cblxuICAudmlkZW8tZW1iZWQtaXRlbSxcbiAgaWZyYW1lLFxuICBlbWJlZCxcbiAgb2JqZWN0LFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyOiAwO1xuICB9XG59XG5cbi52aWRlby1lbWJlZC0yMWJ5OSB7XG4gICY6OmJlZm9yZSB7XG4gICAgcGFkZGluZy10b3A6IHBlcmNlbnRhZ2UoOSAvIDIxKTtcbiAgfVxufVxuXG4udmlkZW8tZW1iZWQtMTZieTkge1xuICAmOjpiZWZvcmUge1xuICAgIHBhZGRpbmctdG9wOiBwZXJjZW50YWdlKDkgLyAxNik7XG4gIH1cbn1cblxuLnZpZGVvLWVtYmVkLTRieTMge1xuICAmOjpiZWZvcmUge1xuICAgIHBhZGRpbmctdG9wOiBwZXJjZW50YWdlKDMgLyA0KTtcbiAgfVxufVxuXG4udmlkZW8tZW1iZWQtMWJ5MSB7XG4gICY6OmJlZm9yZSB7XG4gICAgcGFkZGluZy10b3A6IHBlcmNlbnRhZ2UoMSAvIDEpO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiZ3JpZFwiO1xuXG5AaW1wb3J0IFwiYWNjb3JkaW9uXCI7XG5AaW1wb3J0IFwiYnJlYWRjcnVtYnNcIjtcbkBpbXBvcnQgXCJjYWxsb3V0XCI7XG5AaW1wb3J0IFwiY2FsbG91dC1ibG9ja1wiO1xuQGltcG9ydCBcImNhdGVnb3J5LXNlbGVjdFwiO1xuQGltcG9ydCBcImVtYmVkXCI7XG5AaW1wb3J0IFwiZXZlbnQtYmxvY2tcIjtcbkBpbXBvcnQgXCJmZWF0dXJlZC1lbnRyeVwiO1xuQGltcG9ydCBcImZlYXR1cmVkLWV2ZW50XCI7XG5AaW1wb3J0IFwiZ2xvYmFsLWZvb3Rlci9jb250YWN0LWluZm9cIjtcbkBpbXBvcnQgXCJnbG9iYWwtZm9vdGVyL25hdlwiO1xuQGltcG9ydCBcImdsb2JhbC1mb290ZXIvcGFydG5lcnNcIjtcbkBpbXBvcnQgXCJncmlkLXRpdGxlXCI7XG5AaW1wb3J0IFwiZ3JpZC1maWx0ZXJzXCI7XG5AaW1wb3J0IFwiaWNvbi1saW5rc1wiO1xuQGltcG9ydCBcImxhYmVsXCI7XG5AaW1wb3J0IFwibGlzdGluZy1ibG9ja1wiO1xuQGltcG9ydCBcImxpc3RpbmctaXRlbVwiO1xuQGltcG9ydCBcImxvZ29cIjtcbkBpbXBvcnQgXCJtZWRpYVwiO1xuQGltcG9ydCBcIm92ZXJ2aWV3XCI7XG5AaW1wb3J0IFwiZ2xvYmFsLWhlYWRlci9idXJnZXJcIjtcbkBpbXBvcnQgXCJnbG9iYWwtaGVhZGVyL25hdi1saW5rXCI7XG5AaW1wb3J0IFwiZ2xvYmFsLWhlYWRlci9uYXYtbGluay1idXR0b25cIjtcbkBpbXBvcnQgXCJnbG9iYWwtaGVhZGVyL25hdi1tZW51XCI7XG5AaW1wb3J0IFwiZ2xvYmFsLWhlYWRlci9wcmltYXJ5LW5hdlwiO1xuQGltcG9ydCBcImdsb2JhbC1oZWFkZXIvc2VhcmNoLWJ1dHRvblwiO1xuQGltcG9ydCBcImdsb2JhbC1oZWFkZXIvc2Vjb25kYXJ5LW5hdlwiO1xuQGltcG9ydCBcImdsb2JhbC1oZWFkZXIvZG9jcy1zZWFyY2hcIjtcbkBpbXBvcnQgXCJoZXJvLWNvbnRlbnRcIjtcbkBpbXBvcnQgXCJwYWdlLXRpdGxlXCI7XG5AaW1wb3J0IFwicGhvdG8tZ2FsbGVyeVwiO1xuQGltcG9ydCBcInF1b3RlXCI7XG5AaW1wb3J0IFwic2lkZWJhci1uYXZcIjtcbkBpbXBvcnQgXCJzY2hlZHVsZVwiO1xuQGltcG9ydCBcInNpZGViYXItY2FsbG91dFwiO1xuQGltcG9ydCBcInRhYi1wYW5lbFwiO1xuQGltcG9ydCBcInRhYmxpc3RcIjtcbkBpbXBvcnQgXCJ0b3AtYXJyb3dcIjtcbkBpbXBvcnQgXCJldmVudC1yZXNvdXJjZXNcIjtcbkBpbXBvcnQgXCJmZWF0dXJlZC1zdG9yeS1ibG9ja1wiO1xuQGltcG9ydCBcInBhZ2luYXRvclwiO1xuQGltcG9ydCBcImNvbnRhY3QtcGFnZVwiO1xuQGltcG9ydCBcImp1ZGdlcy1kaXJlY3RvcnlcIjtcbkBpbXBvcnQgXCJzZXBhcmF0b3JcIjtcbkBpbXBvcnQgXCJyc3MtZmVlZFwiO1xuQGltcG9ydCBcImhlcm8tY2Fyb3VzZWxcIjtcbkBpbXBvcnQgXCJtYXBcIjtcbkBpbXBvcnQgXCJjbGVhci1mbG9hdHNcIjtcbiIsIiRncmlkczogKFxuICBjb2wyOiAoXG4gICAgbGF5b3V0OiAoXG4gICAgICBndXR0ZXJzOiAyMy81MDAsXG4gICAgICBndXR0ZXItcG9zaXRpb246IGFmdGVyXG4gICAgKSxcbiAgICBicmVha3BvaW50czogKFxuICAgICAgeHNtYWxsOiAxLFxuICAgICAgc21hbGw6IDEsXG4gICAgICBtZWRpdW06IDIsXG4gICAgICBsYXJnZTogMlxuICAgICksXG4gICAgc3BhbnM6IChcbiAgICAgIDEgXzU6IChcbiAgICAgICAgeHNtYWxsOiBmdWxsLFxuICAgICAgICBzbWFsbDogZnVsbCxcbiAgICAgICAgbWVkaXVtOiAxLjUsXG4gICAgICAgIGxhcmdlOiAxLjVcbiAgICAgICksXG4gICAgICAyOiAoXG4gICAgICAgIHhzbWFsbDogZnVsbCxcbiAgICAgICAgc21hbGw6IGZ1bGwsXG4gICAgICAgIG1lZGl1bTogZnVsbCxcbiAgICAgICAgbGFyZ2U6IGZ1bGxcbiAgICAgIClcbiAgICApXG4gICksXG4gIGNvbDM6IChcbiAgICBsYXlvdXQ6IChcbiAgICAgIGd1dHRlcnM6IDcvMTAwLFxuICAgICAgZ3V0dGVyLXBvc2l0aW9uOiBhZnRlclxuICAgICksXG4gICAgYnJlYWtwb2ludHM6IChcbiAgICAgIHhzbWFsbDogMSxcbiAgICAgIHNtYWxsOiAxLFxuICAgICAgbWVkaXVtOiAzLFxuICAgICAgbGFyZ2U6IDNcbiAgICApLFxuICAgIHNwYW5zOiAoXG4gICAgICAyOiAoXG4gICAgICAgIHhzbWFsbDogZnVsbCxcbiAgICAgICAgc21hbGw6IGZ1bGwsXG4gICAgICAgIG1lZGl1bTogMS41LFxuICAgICAgICBsYXJnZTogMS41XG4gICAgICApXG4gICAgKVxuICApLFxuICBjb2w0OiAoXG4gICAgbGF5b3V0OiAoXG4gICAgICBndXR0ZXJzOiAxOS8yMDAsXG4gICAgICBndXR0ZXItcG9zaXRpb246IGFmdGVyXG4gICAgKSxcbiAgICBicmVha3BvaW50czogKFxuICAgICAgeHNtYWxsOiAxLFxuICAgICAgc21hbGxPbmx5OiAxLFxuICAgICAgbWVkaXVtT25seTogMyxcbiAgICAgIGxhcmdlOiA0XG4gICAgKSxcbiAgICBzcGFuczogKFxuICAgICAgMSBfNTogKFxuICAgICAgICB4c21hbGw6IGZ1bGwsXG4gICAgICAgIHNtYWxsOiBmdWxsLFxuICAgICAgICBtZWRpdW06IDEuNSxcbiAgICAgICAgbGFyZ2U6IDEuNVxuICAgICAgKSxcbiAgICAgIDI6IChcbiAgICAgICAgeHNtYWxsOiBmdWxsLFxuICAgICAgICBzbWFsbDogZnVsbCxcbiAgICAgICAgbWVkaXVtOiAxLFxuICAgICAgICBsYXJnZTogMlxuICAgICAgKSxcbiAgICAgIDIgXzU6IChcbiAgICAgICAgeHNtYWxsOiBmdWxsLFxuICAgICAgICBzbWFsbDogZnVsbCxcbiAgICAgICAgbWVkaXVtOiAyLjUsXG4gICAgICAgIGxhcmdlOiAyLjVcbiAgICAgIClcbiAgICApXG4gICksXG4gIGNvbDY6IChcbiAgICBsYXlvdXQ6IChcbiAgICAgIGd1dHRlcnM6IDE1LzEwMCxcbiAgICAgIGd1dHRlci1wb3NpdGlvbjogYWZ0ZXJcbiAgICApLFxuICAgIGJyZWFrcG9pbnRzOiAoXG4gICAgICB4c21hbGw6IDEsXG4gICAgICBzbWFsbE9ubHk6IDIsXG4gICAgICBtZWRpdW1Pbmx5OiA0LFxuICAgICAgbGFyZ2U6IDZcbiAgICApLFxuICAgIHNwYW5zOiAoXG4gICAgICA1OiAoXG4gICAgICAgIHhzbWFsbDogZnVsbCxcbiAgICAgICAgc21hbGxPbmx5OiBmdWxsLFxuICAgICAgICBtZWRpdW1Pbmx5OiAzLFxuICAgICAgICBsYXJnZTogNVxuICAgICAgKSxcbiAgICAgIDQgXzU6IChcbiAgICAgICAgeHNtYWxsOiBmdWxsLFxuICAgICAgICBzbWFsbE9ubHk6IDIsXG4gICAgICAgIG1lZGl1bU9ubHk6IDIuNSxcbiAgICAgICAgbGFyZ2U6IDQuNVxuICAgICAgKSxcbiAgICAgIDQ6IChcbiAgICAgICAgeHNtYWxsOiBmdWxsLFxuICAgICAgICBzbWFsbE9ubHk6IDIsXG4gICAgICAgIG1lZGl1bU9ubHk6IDIuNSxcbiAgICAgICAgbGFyZ2U6IDRcbiAgICAgICksXG4gICAgICAzOiAoXG4gICAgICAgIHhzbWFsbDogZnVsbCxcbiAgICAgICAgc21hbGxPbmx5OiAxLFxuICAgICAgICBtZWRpdW1Pbmx5OiAyLFxuICAgICAgICBsYXJnZTogM1xuICAgICAgKSxcbiAgICAgIDI6IChcbiAgICAgICAgeHNtYWxsOiBmdWxsLFxuICAgICAgICBzbWFsbE9ubHk6IDIsXG4gICAgICAgIG1lZGl1bU9ubHk6IDEuNSxcbiAgICAgICAgbGFyZ2U6IDJcbiAgICAgICksXG4gICAgICAxIF81OiAoXG4gICAgICAgIHhzbWFsbDogZnVsbCxcbiAgICAgICAgc21hbGxPbmx5OiAyLFxuICAgICAgICBtZWRpdW1Pbmx5OiAxLjUsXG4gICAgICAgIGxhcmdlOiAxLjVcbiAgICAgIClcbiAgICApXG4gIClcbik7XG5cbi5ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTAwJTtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xuICBncmlkLXJvdy1nYXA6IDE1cHg7XG4gIGdyaWQtY29sdW1uLWdhcDogNDBweDtcblxuICAmLi1zbWFsbCB7XG4gICAgZ3JpZC1yb3ctZ2FwOiAyMHB4O1xuICAgIGdyaWQtY29sdW1uLWdhcDogMTVweDtcbiAgfVxuXG4gICYuLWZvb3RlciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG8gYXV0byAxMzBweDtcbiAgICB9XG4gIH1cblxuICAmLi1jb2w0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyIDFmcjtcbiAgICB9XG4gIH1cblxuICAmLi1jb2w1IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyIDFmciAxZnI7XG4gICAgfVxuICB9XG5cbiAgJi4tY29sNiB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyIDFmciAxZnIgMWZyO1xuICAgIH1cbiAgfVxuXG4gICYuLWNvbDcge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmciAxZnIgMWZyIDFmciAxZnI7XG4gICAgfVxuICB9XG5cbiAgJi4tY29sOCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyIDFmcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmciAxZnIgMWZyIDFmciAxZnIgMWZyO1xuICAgIH1cbiAgfVxuXG4gICYuLWZlYXR1cmVkLWVudHJ5LWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvO1xuICAgIGdyaWQtY29sdW1uLWdhcDogc2V0dGluZygnZ3V0dGVyUGFkZGluZycpO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAyZnI7XG4gICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcbiAgICB9XG4gIH1cblxuICAmLi1saXN0aW5nLWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICBncmlkLWNvbHVtbi1nYXA6IDE1cHg7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIGdyaWQtY29sdW1uLWdhcDogMzBweDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTguNCUgYXV0byAyNSUgMjUlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC54bGFyZ2UnKSkge1xuICAgICAgZ3JpZC1jb2x1bW4tZ2FwOiA0MHB4O1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxOC40JSBhdXRvIDI3LjUlIDIzJTtcbiAgICB9XG4gIH1cblxuICAmLi1jb2wzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgICB9XG4gIH1cblxuICAmLi1jb2wzLTItMSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgICB9XG4gIH1cblxuICAmLi1jb2wzLTEge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBncmlkLWNvbHVtbi1nYXA6IGNhbGMoNDBweCAqIDEuNSk7XG4gICAgfVxuICB9XG5cbiAgJi4tY29sMiB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICB9XG4gIH1cblxuICAmLi1kZXRhaWwge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAyNTBweDtcbiAgICB9XG4gIH1cbn1cblxuW2NsYXNzKj1cIi1maXhjb2xzXCJdIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IG5vcm1hbDtcbiAgfVxuXG4gID4gZGl2IHtcbiAgICBtYXgtd2lkdGg6IDI4MHB4O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLi1maXhjb2xzMiB7XG4gID4gZGl2IHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGZsZXgtYmFzaXM6IDUwJTtcbiAgICB9XG4gIH1cbn1cblxuLi1maXhjb2xzMyB7XG4gID4gZGl2IHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGZsZXgtYmFzaXM6IDUwJTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQueHhsYXJnZScpKSB7XG4gICAgICBmbGV4LWJhc2lzOiAzMyU7XG4gICAgfVxuICB9XG59XG5cbi4tZml4Y29sczQge1xuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnhsYXJnZScpKSB7XG4gICAgICBmbGV4LWJhc2lzOiAzMyU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lnh4bGFyZ2UnKSkge1xuICAgICAgZmxleC1iYXNpczogMjUlO1xuICAgIH1cbiAgfVxufSIsIi5hY2NvcmRpb24tLW5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgbGFiZWwge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgY29sb3I6IGNvbG9yKGdyYXksIGJhc2UpO1xuICB9XG5cbiAgaW5wdXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb2xvcjogY29sb3IoZ3JheSwgeGRhcmspO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LWZhbWlseTogJG5zY2NJY29ucztcbiAgICAgIGZvbnQtc2l6ZTogMS4zNzVlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwLjY1O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDhweDtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNXMsIG9wYWNpdHkgLjNzO1xuXG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgY29udGVudDogJ1xcZTgwMyc7IC8vIERvd24gYXJyb3dcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgei1pbmRleDogMjA7XG4gICAgfVxuICB9XG5cbiAgaW5wdXQ6Y2hlY2tlZCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICB9XG4gIH1cbn1cblxuLmFjY29yZGlvbiB7XG4gIC5hY2NvcmRpb25fX2l0ZW0ge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvcik7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGNvbG9yKGdyYXksIHhkYXJrKTtcblxuICAgIC5hY2NvcmRpb25fX2l0ZW1fX2RldGFpbHMge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAtd2Via2l0LXRyYW5zaXRpb246IG1heC1oZWlnaHQgLjVzIGVhc2UtaW4tb3V0O1xuICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAuNXMgZWFzZS1pbi1vdXQ7XG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMS4yNTBlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjc1ZW07XG4gICAgICB9XG5cbiAgICAgIHVsIHtcbiAgICAgICAgLy8gcGFkZGluZzogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjg1ZW07XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgIC8vIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHAgPiBhIHtcbiAgICAgICAgQGluY2x1ZGUgbGluayguOCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi4tZXhwYW5kZWQge1xuICAgICAgLmFjY29yZGlvbl9faXRlbV9fZGV0YWlscyB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDUwMDAwMHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC4tZXhwYW5kZWQpOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyZXksIHhsaWdodCk7XG4gICAgfVxuICB9XG5cbiAgaDQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gICAgcGFkZGluZy10b3A6IDNlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogM2VtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7XG4gIH1cbn1cblxuLmFjY29yZGlvbl9faXRlbV9faGFuZGxlIHtcbiAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICBmb250LXNpemU6IDEuMzc1cmVtO1xuICBtYXJnaW4tdG9wOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIC4zcztcblxuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDIuNWVtIDA7XG5cblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIH1cblxuICAuYWNjb3JkaW9uX19pdGVtLi1leHBhbmRlZCAmIHtcbiAgICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIH1cblxuICAmOmJlZm9yZSxcbiAgJjphZnRlciB7XG4gICAgY29sb3I6IGNvbG9yKGdyYXksIHhkYXJrKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LWZhbWlseTogJG5zY2NJY29ucztcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTJweCk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcywgb3BhY2l0eSAuM3M7XG4gIH1cblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJ1xcZTgwMyc7IC8vIERvd24gYXJyb3dcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB6LWluZGV4OiAyMDtcblxuICAgIC5hY2NvcmRpb25fX2l0ZW0uLWV4cGFuZGVkICYge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICB9XG4gIH1cbn1cbiIsIi5icmVhZGNydW1icy13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyBcbn1cblxuLmJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luOiAwIDAgMi41ZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgbWFyZ2luLXRvcDogMi41ZW07XG4gIH1cblxuICAvLyBDb21wb25lbnRzXG5cbiAgLmJyZWFkY3J1bWJfX2l0ZW0ge1xuICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgIGNvbG9yOiBjb2xvcihncmF5KTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcvJztcbiAgICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgIH1cblxuICAgICYuLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogY29sb3IoZ3JheSk7XG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgY29sb3I6IGNvbG9yKHB1cnBsZSk7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIiRjYWxsb3V0OiAoXG4gIHNpemVzOiAoXG4gIClcbik7XG5cbi5jYWxsb3V0IHtcbiAgQGV4dGVuZCAuZ3JpZDtcbiAgQGV4dGVuZCAuLWNvbDI7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvcik7XG4gIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuICBtYXJnaW4tYm90dG9tOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcbiAgfVxufVxuXG5hLmNhbGxvdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmV5LCB4bGlnaHQpO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihjb2xvcihncmV5LCB4bGlnaHQpLCA1JSk7XG4gIH1cbn1cblxuLmNhbGxvdXRfX2ltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogYXV0bztcbiAgZmxvYXQ6IHJpZ2h0O1xuICB3aWR0aDogMTAwJTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpe1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59IiwiJGNhbGxvdXRCbG9jazogKFxuICBzaXplczogKFxuICAgIHNtYWxsOiAoXG4gICAgICBmb250U2l6ZTogLjkzOGVtLFxuICAgICAgbGluZUhlaWdodDogMS4xLFxuICAgICAgaGVpZ2h0OiAyMDBweFxuICAgICksXG4gICAgbWVkaXVtOiAoXG4gICAgICBmb250U2l6ZTogMS43NWVtLFxuICAgICAgbGluZUhlaWdodDogMS4yLFxuICAgICAgaGVpZ2h0OiAyNTBweFxuICAgICksXG4gICAgbGFyZ2U6IChcbiAgICAgIGJvcmRlcjogMjVweCBzb2xpZCB3aGl0ZSxcbiAgICAgIGZvbnRTaXplOiAzLjc1ZW0sXG4gICAgICBsaW5lSGVpZ2h0OiAxLjEsXG4gICAgICBoZWlnaHQ6IDQ2MHB4XG4gICAgKSxcbiAgICBob3Jpem9udGFsOiAoXG4gICAgICBoZWlnaHQ6IDEzMHB4XG4gICAgKVxuICApLFxuICBicmVha3BvaW50OiAoXG4gICAgbWVkaXVtOiBlbSg5MTVweClcbiAgKVxuKTtcblxuLmNhbGxvdXQtYmxvY2sge1xuICBjb2xvcjogd2hpdGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICYuLWltYWdlIHtcbiAgICAmOm5vdCguLWdyZXkpOmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50LCAjMDcyOTczKTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBvcGFjaXR5OiAuNztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgei1pbmRleDogMTA7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAuY2FsbG91dC1ibG9ja19fY29udGVudCB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLi1ncmV5IHtcbiAgICAgIC5jYWxsb3V0LWJsb2NrX19pbWFnZSB7XG4gICAgICAgIHRvcDogOTBweDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIC5jYWxsb3V0LWJsb2NrX19jb250ZW50IHtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY2FsbG91dC1ibG9ja19faW1hZ2Uge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDM1cHg7XG4gICAgICB6LWluZGV4OiAwO1xuICAgIH1cbiAgfVxuXG4gICYuLWNvbG9yIHtcbiAgICAmLi1ncmVlbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmVlbik7XG4gICAgfVxuXG4gICAgJi4tYmxhY2sge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSwgeGRhcmspO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNpemVzXG4gICYuLXNtYWxsIHtcbiAgICBoZWlnaHQ6IHNldHRpbmcoJ3NpemVzLnNtYWxsLmhlaWdodCcsICRjYWxsb3V0QmxvY2spO1xuICB9XG5cbiAgJi4tbWVkaXVtIHtcbiAgICBoZWlnaHQ6IHNldHRpbmcoJ3NpemVzLm1lZGl1bS5oZWlnaHQnLCAkY2FsbG91dEJsb2NrKTtcblxuICAgIHAge1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuICB9XG5cbiAgJi4tbGFyZ2Uge1xuICAgIGJvcmRlcjogMjVweCBzb2xpZCB3aGl0ZTtcbiAgICBoZWlnaHQ6IHNldHRpbmcoJ3NpemVzLmxhcmdlLmhlaWdodCcsICRjYWxsb3V0QmxvY2spIC0gMTAwcHg7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGhlaWdodDogc2V0dGluZygnc2l6ZXMubGFyZ2UuaGVpZ2h0JywgJGNhbGxvdXRCbG9jayk7XG4gICAgfVxuICB9XG5cbiAgJi4taG9yaXpvbnRhbCB7XG4gICAgaGVpZ2h0OiBzZXR0aW5nKCdzaXplcy5tZWRpdW0uaGVpZ2h0JywgJGNhbGxvdXRCbG9jayk7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nLCAkY2FsbG91dEJsb2NrKSkge1xuICAgICAgaGVpZ2h0OiBzZXR0aW5nKCdzaXplcy5ob3Jpem9udGFsLmhlaWdodCcsICRjYWxsb3V0QmxvY2spO1xuXG4gICAgICAuY2FsbG91dC1ibG9ja19fY29udGVudF9fbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDIwJTtcbiAgICAgIH1cblxuICAgICAgLmNhbGxvdXQtYmxvY2tfX2NvbnRlbnRfX2hlYWRsaW5lIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB3aWR0aDogNjUlO1xuICAgICAgfVxuXG4gICAgICAuY2FsbG91dC1ibG9ja19fY29udGVudF9fYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICAgICB3aWR0aDogMTUlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uY2FsbG91dC1ibG9ja19fY29udGVudCB7XG5cbiAgLmNhbGxvdXQtYmxvY2suLWltYWdlICYge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oaGVpZ2h0KTtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoYmx1ZSk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAyMDtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuY2FsbG91dC1ibG9jay4taW1hZ2UuLWdyZXkgJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JleSwgeGxpZ2h0KTtcbiAgICBoZWlnaHQ6IDkwcHg7XG4gIH1cblxuICAuY2FsbG91dC1ibG9jay4tYnV0dG9uICYge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmV5LCB4bGlnaHQpO1xuICAgIGJvcmRlci1ib3R0b206IDE0cHggc29saWQgY29sb3Iob3JhbmdlKTtcbiAgICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLmNhbGxvdXQtYmxvY2tfX2NvbnRlbnRfX2J1dHRvbiB7XG4gICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBtYXgtaGVpZ2h0OiAxMjZweDtcbiAgICB9XG4gIH1cblxuICAuY2FsbG91dC1ibG9jay4tY29sb3IgJiB7XG4gICAgcGFkZGluZzogMCAyNSUgMCAxNSU7XG4gIH1cblxuICAuY2FsbG91dC1ibG9jay4taG9yaXpvbnRhbCAmIHtcbiAgICBwYWRkaW5nOiAwIDclO1xuICB9XG59XG5cbi5jYWxsb3V0LWJsb2NrX19jb250ZW50X19oZWFkbGluZSB7XG4gIGZvbnQtZmFtaWx5OiAkb3BlblNhbnM7XG5cbiAgLmNhbGxvdXQtYmxvY2suLWltYWdlICYge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBtYXJnaW46IDEwcHggYXV0bztcbiAgfVxuXG4gIC5jYWxsb3V0LWJsb2NrLi1pbWFnZS4tZ3JleSAmIHtcbiAgICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gICAgZm9udC1zaXplOiAxLjc1ZW07XG4gICAgbWFyZ2luOiAxMHB4IGF1dG87XG4gIH1cblxuICAuLWJ1dHRvbiAmIHtcbiAgICBwYWRkaW5nLXRvcDogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG4gIH1cblxuICAuY2FsbG91dC1ibG9jay4tY29sb3IgJiB7XG4gICAgbWFyZ2luLWJvdHRvbTogLjI1ZW07XG4gIH1cblxuICAuY2FsbG91dC1ibG9jay4tc21hbGwgJiB7XG4gICAgZm9udC1zaXplOiBzZXR0aW5nKCdzaXplcy5zbWFsbC5mb250U2l6ZScsICRjYWxsb3V0QmxvY2spO1xuICAgIGxpbmUtaGVpZ2h0OiBzZXR0aW5nKCdzaXplcy5zbWFsbC5saW5lSGVpZ2h0JywgJGNhbGxvdXRCbG9jayk7XG4gIH1cblxuICAuY2FsbG91dC1ibG9jay4tbWVkaXVtICYge1xuICAgIGZvbnQtZmFtaWx5OiAkb3BlblNhbnNDb25kZW5zZWQ7XG4gICAgZm9udC1zaXplOiBzZXR0aW5nKCdzaXplcy5tZWRpdW0uZm9udFNpemUnLCAkY2FsbG91dEJsb2NrKTtcbiAgICBsaW5lLWhlaWdodDogc2V0dGluZygnc2l6ZXMubWVkaXVtLmxpbmVIZWlnaHQnLCAkY2FsbG91dEJsb2NrKTtcbiAgfVxuXG4gIC5jYWxsb3V0LWJsb2NrLi1sYXJnZSAmIHtcbiAgICBmb250LXNpemU6IHNldHRpbmcoJ3NpemVzLmxhcmdlLmZvbnRTaXplJywgJGNhbGxvdXRCbG9jaykgLSAxZW07XG4gICAgbGluZS1oZWlnaHQ6IHNldHRpbmcoJ3NpemVzLmxhcmdlLmxpbmVIZWlnaHQnLCAkY2FsbG91dEJsb2NrKTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBmb250LXNpemU6IHNldHRpbmcoJ3NpemVzLmxhcmdlLmZvbnRTaXplJywgJGNhbGxvdXRCbG9jayk7XG4gICAgfVxuICB9XG5cbiAgLmNhbGxvdXQtYmxvY2suLWhvcml6b250YWwgJiB7XG4gICAgZm9udC1zaXplOiBzZXR0aW5nKCdzaXplcy5tZWRpdW0uZm9udFNpemUnLCAkY2FsbG91dEJsb2NrKTtcbiAgICBsaW5lLWhlaWdodDogc2V0dGluZygnc2l6ZXMubWVkaXVtLmxpbmVIZWlnaHQnLCAkY2FsbG91dEJsb2NrKTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nLCAkY2FsbG91dEJsb2NrKSkge1xuICAgICAgZm9udC1zaXplOiAyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufSIsIi5jYXRlZ29yeS1zZWxlY3Qge1xuICB3aWR0aDogNTAlO1xufVxuIiwiLmVtYmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC5waG90byB7XG4gICAgb3BhY2l0eTogLjg7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHk7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IC40O1xuICAgIH1cbiAgfVxuXG4gIGlmcmFtZSB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAmLi1tb2RhbC1vdmVybGF5W2RhdGEtbG9hZGVkPWZhbHNlXTo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgxODBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDAsIDAsIDAsIC42KSk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KC05MGRlZywgdHJhbnNwYXJlbnQsIHJnYmEoMCwgMCwgMCwgLjYpKTtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbDtcbiAgICB0cmFuc2l0aW9uOiBhbGw7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMjtcbiAgfVxufVxuXG4uZW1iZWRbZGF0YS1sb2FkZWQ9ZmFsc2VdOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uL3NyYy9pbWFnZXMvcGxheS5zdmcnKSBuby1yZXBlYXQ7XG4gIGNvbnRlbnQ6ICcnO1xuICBoZWlnaHQ6IDcwcHg7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKTtcbiAgd2lkdGg6IDcwcHg7XG4gIHotaW5kZXg6IDE7XG59XG5cbi5lbWJlZFtkYXRhLWxvYWRlZD1mYWxzZV06aG92ZXIge1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHk7XG5cbiAgLnBob3RvIHtcbiAgICBvcGFjaXR5OiAuNDtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogLjg7XG4gIH1cbn1cblxuLmVtYmVkW2RhdGEtbG9hZGVkPXRydWVdIHtcbiAgaGVpZ2h0OiAwO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuXG4gIC5uZXR3b3JrLW1vZGFsLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIiRldmVudDogKFxuICBicmVha3BvaW50OiAoXG4gICAgeGxhcmdlOiBlbSgxMjAwcHgpXG4gICksXG4gIGhlaWdodDogMzU1cHgsXG4gIHBhZGRpbmc6IChcbiAgICBib3R0b206IDguNzUlLFxuICAgIGxlZnQ6IDExJSxcbiAgICB0b3A6IDYuMjUlLFxuICAgIHJpZ2h0OiAxMSVcbiAgKVxuKTtcblxuLmV2ZW50X19saXN0IHtcbiAgJjpub3QoLi1ncmlkKSB7XG4gICAgLmV2ZW50LWl0ZW06bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM5Nzk3OTc7XG4gICAgfVxuXG4gICAgLmV2ZW50IHtcbiAgICAgIEBleHRlbmQgLi1saXN0aW5nLWdyaWQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oY29sb3IoZ3JleSwgeGxpZ2h0KSwgNSUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5ldmVudF9fYXJyb3cge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmLi1ncmlkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAZXh0ZW5kIC5ncmlkO1xuICAgIEBleHRlbmQgLi1jb2wzLTE7XG5cbiAgICAuZXZlbnRfX2Rlc2NyaXB0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmV2ZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIC5ldmVudF9fYXJyb3cge1xuICAgICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuLXByb21vIHtcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICB9XG5cbiAgICAuZXZlbnRfX21ldGEge1xuICAgICAgcGFkZGluZy1yaWdodDogNTBweDtcbiAgICB9XG4gIH1cbn1cblxuLmV2ZW50IHtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKSBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKSBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gIH1cblxuICA+IHAge1xuICAgIGZvbnQtc2l6ZTogMC44MTNlbTtcbiAgfVxuXG59XG5cbi5ldmVudF9faW1hZ2Uge1xuICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICBqdXN0aWZ5LXNlbGY6IGF1dG87XG4gIH1cbn1cblxuLmV2ZW50X190aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiAkb3BlblNhbnM7XG4gIGZvbnQtc2l6ZTogMS4xMjVlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgLy9saW5lLWhlaWdodDogMS4xNTtcblxuICAvL0BpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAvLyAgZm9udC1zaXplOiAxLjc1ZW07XG4gIC8vICBsaW5lLWhlaWdodDogMS4xO1xuICAvL31cbiAgLy9cbiAgLy9AaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAvLyAgZm9udC1zaXplOiAxLjg3NWVtO1xuICAvL31cbiAgLy9cbiAgLy9AaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQueGxhcmdlJywgJGV2ZW50KSkge1xuICAvLyAgZm9udC1zaXplOiAyLjEyNWVtO1xuICAvLyAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8vfVxufVxuXG4uZXZlbnRfX21ldGEge1xuICBmb250LWZhbWlseTogJGJhc2tlcnZpbGxlO1xuICBmb250LXNpemU6IC45MzhlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgcCB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbi5ldmVudF9fYnV0dG9uIHtcblxufVxuXG4uZXZlbnRfX2Fycm93IHtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihyaWdodCk7XG4gIGNvbG9yOiBjb2xvcihwdXJwbGUpO1xuICBmb250LXNpemU6IDY0cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDIwcHg7XG4gIHRvcDogLTIwcHg7XG59XG5cbi5ldmVudF9fY3RhIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcblxuICAmLi1wcm9tbyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3Iob3JhbmdlKTtcblxuICB9XG5cbiAgcCB7XG4gICAgY29sb3I6IGNvbG9yKGdyZXksIHhsaWdodCk7XG4gICAgZm9udC1mYW1pbHk6ICRiYXNrZXJ2aWxsZTtcbiAgICBmb250LXNpemU6IDEuMTI1ZW07XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIG1hcmdpbjogLjVlbSAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuIiwiLmZlYXR1cmVkLWVudHJ5IHtcbiAgY29sb3I6IHdoaXRlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbn1cblxuLmZlYXR1cmVkLWVudHJ5X19ncmlkIHtcbiAgQGV4dGVuZCAuLWZlYXR1cmVkLWVudHJ5LWdyaWQ7XG4gIGhlaWdodDogMTAwJTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZycpIDA7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJykgOTBweDtcbiAgfVxufVxuXG4uZmVhdHVyZWQtZW50cnlfX2NvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMjA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxufVxuXG4uZmVhdHVyZWQtZW50cnlfX2NvbnRlbnRfX2hlYWRsaW5lIHtcbiAgZm9udC1mYW1pbHk6ICRiYXNrZXJ2aWxsZTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXNpemU6IDEuMTg4ZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uZmVhdHVyZWQtZW50cnlfX2ltYWdlLi1zdmcge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5mZWF0dXJlZC1lbnRyeV9fY3RhX19jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAuYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgIH1cbiAgfVxufSIsIi5mZWF0dXJlZC1ldmVudF9fY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKSBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcbiAgICBtYXJnaW46IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIDA7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJykgc2V0dGluZygnZ3V0dGVyUGFkZGluZycpO1xuICAgIH1cblxuICBoMiB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG4gID4gcCB7XG4gICAgZm9udC1zaXplOiAxLjE4OGVtO1xuICAgIG1hcmdpbi1ib3R0b206IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cblxuLmZlYXR1cmVkLWV2ZW50IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbi8vLmZlYXR1cmVkLWV2ZW50X19ncmlkIHtcbi8vICBAZXh0ZW5kIC4tZmVhdHVyZWQtZXZlbnQtZ3JpZDtcbi8vICBoZWlnaHQ6IDEwMCU7XG4vLyAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbi8vICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJykgMDtcbi8vXG4vLyAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbi8vICAgIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKSA5MHB4O1xuLy8gIH1cbi8vfVxuXG4uZmVhdHVyZWQtZXZlbnRfX2NvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMjA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxufVxuXG4uZmVhdHVyZWQtZXZlbnRfX2NvbnRlbnRfX2hlYWRsaW5lIHtcbiAgZm9udC1mYW1pbHk6ICRiYXNrZXJ2aWxsZTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXNpemU6IDEuMTg4ZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uZmVhdHVyZWQtZXZlbnRfX2ltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5mZWF0dXJlZC1ldmVudF9fY3RhX19jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuXG4gICAgLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICB9XG4gIH1cbn1cblxuLmZlYXR1cmVkLWV2ZW50X19tZXRhIHtcbiAgZm9udC1mYW1pbHk6ICRvcGVuU2FucztcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxLjA2M2VtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgcCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cbn0iLCIuZ2xvYmFsLWZvb3Rlcl9fY29udGFjdC1pbmZvIHtcbiAgbGluZS1oZWlnaHQ6IDEuNjdlbTtcblxuICBhIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgLjI1cztcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IGNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgICB9XG4gIH1cbn1cbiIsIi5nbG9iYWwtZm9vdGVyX19uYXYge1xuICB1bCB7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6IGNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgLjI1cztcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IGNvbG9yKGdyYXkpO1xuICAgIH1cbiAgfVxufVxuIiwiLmdsb2JhbC1mb290ZXJfX3BhcnRuZXJzIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuXG4gIGxpIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgLjc1ZW07XG4gIH1cblxuICBpbWcsXG4gIHN2ZyB7XG4gICAgbWF4LWhlaWdodDogNDFweDtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gIHN2ZyBwYXRoLFxuICBzdmcgcmVjdCxcbiAgc3ZnIHBvbHlnb24ge1xuICAgIGZpbGw6IGNvbG9yKGdyYXkpO1xuICB9XG5cbiAgI3RuY2MtbG9nbyB7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICB9XG5cbiAgI3RuZWNhbXB1cy1sb2dvIHtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gIH1cblxuICAjcGF0aHdheS1sb2dvIHtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gIH1cblxuICAjd29ya2ZvcmNlLWxvZ28ge1xuICAgIGhlaWdodDogMzBweDtcbiAgfVxufVxuIiwiLmdyaWQtdGl0bGUge1xuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAuOGVtO1xuICAgIHdpZHRoOiAzMCU7XG4gIH1cbn1cbiIsIi5ncmlkLWZpbHRlcnMge1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgd2lkdGg6IDcwJTtcbiAgfVxuXG4gIC5ncmlkLWl0ZW0ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLmdyaWQtZmlsdGVyc19fZ3JvdXAge1xuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgY29sb3IoZ3JheSwgeGxpZ2h0KTtcbiAgICBwYWRkaW5nLWxlZnQ6IGd1dHRlcig5KTtcbiAgfVxuXG4gICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG59XG4iLCIuaWNvbi1saW5rcyB7XG4gIHBhZGRpbmctdG9wOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gIHBhZGRpbmctYm90dG9tOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG5cbiAgYTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgJjphZnRlcntcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogLTIwcHg7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICM5Nzk3OTc7XG4gICAgfVxuICB9XG4gIGEge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvcik7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyZXksIHhsaWdodCk7XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogNjBweDtcbiAgfVxuXG4gIGg0IHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufSIsIi5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogLjgxMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG1hcmdpbjogMWVtIDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiA1cHg7XG5cbiAgJi4td2hpdGUge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gICYuLWdyYXkge1xuICAgIGNvbG9yOiBjb2xvcihncmF5KTtcbiAgfVxuXG4gICYuLWdyZWVuIHtcbiAgICBjb2xvcjogbGlnaHRlbihjb2xvcihncmVlbiksIDIwJSk7XG4gIH1cbn1cbiIsIi5saXN0aW5nLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1pbi1oZWlnaHQ6IDIzMHB4O1xuICBvdXRsaW5lOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5saXN0aW5nLWJsb2NrX19pbWFnZSB7XG4gIG9wYWNpdHk6IC44NTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXM7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAubGlzdGluZy1ibG9jazpob3ZlciAmIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gICYuLW5vLWltYWdlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmF5LCBsaWdodCk7XG4gICAgbWluLWhlaWdodDogMTc2cHg7XG4gIH1cbn1cblxuLmxpc3RpbmctYmxvY2tfX2NhcHRpb24ge1xuICBjb2xvcjogY29sb3IoZ3JheSk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDFlbTtcbiAgbWFyZ2luLXRvcDogLjVlbTtcbn1cbiIsIi5saXN0aW5nLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtcm93LWdhcDogc2V0dGluZygnZ3V0dGVyUGFkZGluZycpO1xuICBncmlkLWF1dG8tcm93czogMWZyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgIGdyaWQtcm93LWdhcDogc2V0dGluZygnZ3V0dGVyUGFkZGluZ0xhcmdlJyk7XG4gICAgfVxuICB9XG5cbi5saXN0aW5nLWl0ZW0ge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWNvbHVtbi1nYXA6IDQwcHg7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTAwJTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM1JSBhdXRvO1xuICB9XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4ubGlzdGluZy1pdGVtX19pbWFnZSB7XG4gIGdyaWQtY29sdW1uOiAxO1xuICBhbGlnbi1zZWxmOiBzdGFydDtcbn1cblxuLmxpc3RpbmctaXRlbV9faGVhZGluZyB7XG4gIGgxIHtcbiAgICBmb250LWZhbWlseTogJG9wZW5TYW5zQ29uZGVuc2VkO1xuICAgIGZvbnQtc2l6ZTogMS4xODhyZW07XG4gIH1cbiAgcCB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbi5saXN0aW5nLWl0ZW1fX3N1YmhlYWQgcCB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG59XG5cbi5saXN0aW5nLWl0ZW1fX2NvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIGdyaWQtY29sdW1uOiAyO1xuICB9XG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuXG4ubGlzdGluZy1pdGVtX19kZXNjcmlwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG59XG5cbi5saXN0aW5nLWl0ZW1fX3RhZ3Mge1xuICBtYXJnaW4tdG9wOiBhdXRvO1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgY29sb3I6IGNvbG9yKGJsdWUpO1xuXG4gIGEge1xuICAgIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAuMnM7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKGJsdWUpLCAyMCUpO1xuICAgIH1cbiAgfVxufVxuXG4ubGlzdGluZy1pdGVtX19idXR0b24ge1xuICBtYXJnaW4tdG9wOiBhdXRvO1xufSIsIi5sb2dvIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogc2V0dGluZygnZ2xvYmFsLmhlYWRlci5oZWlnaHQubWVkaXVtJyk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogOTA7XG4gIGhlaWdodDogODVweDtcbiAgd2lkdGg6IDg1cHg7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgaW1nIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjJzO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDUwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH1cblxuICAmOmhvdmVyIGltZyB7XG4gICAgb3BhY2l0eTogLjc1O1xuICB9XG5cbiAgLmdsb2JhbC1oZWFkZXIgJiB7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiA3N3B4O1xuICAgIGhlaWdodDogMTAzcHg7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogNzdweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQueGxhcmdlJykpIHtcbiAgICAgIHdpZHRoOiA3N3B4O1xuICAgIH1cbiAgfVxufSIsIiRtZWRpYTogKFxuICBmbG9hdHM6IGxlZnQgcmlnaHQsXG4gIHdpZGU6IChcbiAgICBicmVha3BvaW50OiBlbSgxMDg0cHggKyBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJykgKyBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJykpLFxuICAgIHdpZHRoOiAxMDg0cHhcbiAgKVxuKTtcblxuLm1lZGlhIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1heC13aWR0aDogODY4cHg7XG4gIG1hcmdpbjogNDBweCBhdXRvIDUwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnd2lkZS5icmVha3BvaW50JywgJG1lZGlhKSkge1xuICAgIG1hcmdpbjogNTBweCBhdXRvO1xuICB9XG5cbiAgLmVtYmVkIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIFxuICAgIC5waG90byB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgfVxuICB9XG5cbiAgLy8gTW9kaWZpZXJzXG5cbiAgJi4td2lkZSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCd3aWRlLmJyZWFrcG9pbnQnLCAkbWVkaWEpKSB7XG4gICAgICB3aWR0aDogc2V0dGluZygnd2lkZS53aWR0aCcsICRtZWRpYSk7XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJGRpcmVjdGlvbiBpbiBzZXR0aW5nKCdmbG9hdHMnLCAkbWVkaWEpIHtcbiAgICAkY2xhc3NuYW1lOiAtI3skZGlyZWN0aW9ufTtcbiAgICAkb3Bwb3NpdGU6IGlmKCRkaXJlY3Rpb24gPT0gJ2xlZnQnLCByaWdodCwgbGVmdCk7XG5cbiAgICAmLiN7JGNsYXNzbmFtZX0ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCg0ODBweCkge1xuICAgICAgICBmbG9hdDogJGRpcmVjdGlvbjtcbiAgICAgICAgbWFyZ2luLSN7JG9wcG9zaXRlfTogc2V0dGluZygnZ3V0dGVyUGFkZGluZycpO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHdpZHRoIDQ4MHB4IDU5OXB4KSB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoODAwcHgpIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IC0je3NldHRpbmcoJ2d1dHRlclBhZGRpbmcnKSAqIDJ9O1xuICAgICAgfVxuICAgIH1cblxuICAgIC52aWRlby1lbWJlZCwgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gICYuLXJpZ2h0IHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KDgwMHB4KSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0je3NldHRpbmcoJ2d1dHRlclBhZGRpbmcnKX07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCd3aWRlLmJyZWFrcG9pbnQnLCAkbWVkaWEpKSB7XG4gICAgICBtYXJnaW4tdG9wOiA0NXB4O1xuICAgIH1cbiAgfVxuXG4gICYuLXdpZHRoLTc1IHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG5cbiAgJi4td2lkdGgtNjYge1xuICAgIHdpZHRoOiA2NiU7XG4gIH1cblxuICAmLi13aWR0aC01MCB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuXG4gICYuLXdpZHRoLTMzIHtcbiAgICB3aWR0aDogMzMlO1xuICB9XG5cbiAgJi4td2lkdGgtMjUge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cblxuXG4gIC8vIENvbXBvbmVudHNcblxuICAubWVkaWFfX2NvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KDQwMHB4KSB7XG4gICAgICBtYXJnaW46IDI4cHggYXV0byAwO1xuICAgICAgd2lkdGg6IDc1JTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ3dpZGUuYnJlYWtwb2ludCcsICRtZWRpYSkpIHtcbiAgICAgIG1hcmdpbjogNDhweCBhdXRvIDA7XG4gICAgICB3aWR0aDogcGVyY2VudCg2MDRweCwgODY4cHgpO1xuICAgIH1cbiAgfVxufSIsIi5vdmVydmlldyAge1xuICBwYWRkaW5nLWJvdHRvbTogc2V0dGluZygnZ3V0dGVyUGFkZGluZycpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgcGFkZGluZy1ib3R0b206IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdMYXJnZScpO1xuICB9XG5cbiAgJi4tc21hbGx7XG4gICAgcGFkZGluZy1ib3R0b206IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gICAgfVxuICB9XG5cbiAgcCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4xODhlbTtcbiAgICB9XG4gIH1cbn0iLCIuYnVyZ2VyIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBoZWlnaHQ6IHNldHRpbmcoJ2dsb2JhbC5oZWFkZXIuaGVpZ2h0Lm1lZGl1bScpO1xuICBvdXRsaW5lOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAmOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmJ1cmdlcl9faWNvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB3aWR0aDogYXV0bztcbn1cblxuLmJ1cmdlcl9faWNvbl9fYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoYmx1ZSk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDNweDtcbiAgbWFyZ2luOiA1cHggYXV0bztcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMjVzLCBtYXJnaW4gLjI1cyBlYXNlLCB0cmFuc2Zvcm0gLjVzIGVhc2U7XG4gIHdpZHRoOiAyNXB4O1xuXG4gIC5idXJnZXI6aG92ZXIgJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihjb2xvcihibHVlKSwgMjUlKTtcbiAgfVxuXG4gIC5idXJnZXIuaXMtYWN0aXZlICYuLXRvcCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KSByb3RhdGVaKDQ1ZGVnKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHJvdGF0ZVooNDVkZWcpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KSByb3RhdGVaKDQ1ZGVnKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KSByb3RhdGVaKDQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KSByb3RhdGVaKDQ1ZGVnKTtcbiAgfVxuXG4gIC5idXJnZXIuaXMtYWN0aXZlICYuLW1pZGRsZSB7XG4gICAgd2lkdGg6IDA7XG4gIH1cblxuICAuYnVyZ2VyLmlzLWFjdGl2ZSAmLi1ib3R0b20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpIHJvdGF0ZVooLTQ1ZGVnKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KSByb3RhdGVaKC00NWRlZyk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KSByb3RhdGVaKC00NWRlZyk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpIHJvdGF0ZVooLTQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCkgcm90YXRlWigtNDVkZWcpO1xuICB9XG59XG5cbi5idXJnZXJfX3RleHQge1xuICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgZm9udC1zaXplOiAuNzVlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgbWFyZ2luLXJpZ2h0OiAuNzVlbTtcbiAgcGFkZGluZzogLjVlbSAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0cmFuc2l0aW9uOiBjb2xvciAuMjVzO1xuXG4gIC5idXJnZXI6aG92ZXIgJiB7XG4gICAgY29sb3I6IGxpZ2h0ZW4oY29sb3IoYmx1ZSksIDI1JSk7XG4gIH1cbn1cbiIsIi5uYXYtbGluayB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC8vIFN0YXRlc1xuXG4gICY6YWN0aXZlLFxuICAmOmFjdGl2ZTpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gVHlwZXNcblxuICAmLi1wcmltYXJ5IHtcbiAgICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyJykgc2V0dGluZygnZ3V0dGVyJykgMTVweDtcbiAgICB6LWluZGV4OiAzO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDQxcHggMTVweDtcbiAgICAgIGZvbnQtc2l6ZTogLjlyZW07XG4gICAgfVxuXG4gICAgLnByaW1hcnktbmF2LmV4cGFuZGVkICYge1xuICAgICAgY29sb3I6IGNvbG9yKGJsdWUpO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IGxpZ2h0ZW4oY29sb3IoYmx1ZSksIDUlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpbWFyeS1uYXYgPiBsaTpob3ZlciAmIHtcbiAgICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKGJsdWUpLCA1JSk7XG4gICAgfVxuXG4gICAgLnByaW1hcnktbmF2ID4gLi1jdXJyZW50ICYge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCBjb2xvcihvcmFuZ2UpO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IGNhbGMoNDFweCArIDE2cHggKyA1cHgpO1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGkge1xuICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5wcmltYXJ5LW5hdiA+IGxpOmhvdmVyICYuLWFjdGl2ZSxcbiAgICAucHJpbWFyeS1uYXYgPiBsaTpob3ZlciAmOmhvdmVyLFxuICAgIC5wcmltYXJ5LW5hdiA+IGxpOmhvdmVyICY6YWN0aXZlLFxuICAgIC5wcmltYXJ5LW5hdiA+IGxpOmhvdmVyICY6Zm9jdXMge1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oY29sb3IoYmx1ZSksIDI1JSk7XG4gICAgfVxuICB9XG5cbiAgJi4tZHJvcGRvd24tbGluayB7XG4gICAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHBhZGRpbmc6IC40ZW0gMWVtO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIHBhZGRpbmctbGVmdDogMTNweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEzcHg7XG4gICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICB9XG5cbiAgICAucHJpbWFyeS1uYXYgJiB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBtYXJnaW46IDAgNSUgMTRweCAwO1xuICAgICAgICBtaW4td2lkdGg6IDE0MHB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuICAgIH1cblxuICAgICYuLWFjdGl2ZSxcbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgICAgY29sb3I6IGxpZ2h0ZW4oY29sb3IoYmx1ZSksIDI1JSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi4tc2Vjb25kYXJ5IHtcbiAgICBjb2xvcjogY29sb3IoZ3JleSwgbGlnaHQpO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHBhZGRpbmc6IDAgMWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgICAgY29sb3I6IGxpZ2h0ZW4oY29sb3IoZ3JleSwgbGlnaHQpLCAyNSUpO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuICB9XG59XG4iLCIubmF2LWxpbmstYnV0dG9uIHtcbiAgQGluY2x1ZGUgc2l6ZSg1MnB4KTtcbiAgY29sb3I6IGNvbG9yKGdyYXkpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0b3A6IDA7XG5cbiAgLmdsb2JhbC1oZWFkZXIgJiB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi5pcy1hY3RpdmUsXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogNTAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgfVxuXG4gIGkuaWNvbi1wbHVzLFxuICBpLmljb24tbWludXMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgaS5pY29uLW1pbnVzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgaS5pY29uLXBsdXMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgJi5pcy1hY3RpdmUge1xuICAgIGkuaWNvbi1wbHVzIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgaS5pY29uLW1pbnVzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICsgLm5hdi1tZW51IG5hdiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICAucHJpbWFyeS1uYXYgJiB7XG4gICAgei1pbmRleDogMztcbiAgfVxufVxuIiwiLm5hdi1tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1ib3R0b206IDdweCBzb2xpZCBjb2xvcihvcmFuZ2UpO1xuICBwYWRkaW5nOiAyNXB4IDIwcHg7XG4gIG1pbi13aWR0aDogNDIwcHg7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGNvbG9yKGdyZXksIGxpZ2h0KTtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBjb2xvcihncmV5LCBsaWdodCk7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBjb2xvcihncmV5LCBsaWdodCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgLnByaW1hcnktbmF2ICYge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDBzOyAvLyAwcyB0cmFuc2l0aW9uIHNvIHRoYXQgd2UgY2FuIGdldCB0aGUgdHJhbnNpdGlvbi1kZWxheSBidXQgd2l0aG91dCBhbnkgYW5pbWF0aW9uLlxuICAgICAgdHJhbnNpdGlvbi1kZWxheTogLjM1cztcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggN3B4IDAgcmdiYSgwLDAsMCwwLjE2KTtcbiAgICAgIC1tb3otYm94LXNoYWRvdzogMCAycHggN3B4IDAgcmdiYSgwLDAsMCwwLjE2KTtcbiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDdweCAwIHJnYmEoMCwwLDAsMC4xNik7XG5cbiAgICAgICY6bm90KC5lZGdlKTpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgbGVmdDogMTlweDtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDIxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogMjFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMjFweCBzb2xpZCAjREREREREO1xuICAgICAgICB0b3A6IC0yMXB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB9XG5cbiAgICAgICY6bm90KC5lZGdlKTphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBsZWZ0OiAyMHB4O1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBib3JkZXItbGVmdDogMjBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAyMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItYm90dG9tOiAyMHB4IHNvbGlkIHdoaXRlO1xuICAgICAgICB0b3A6IC0yMHB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB9XG5cbiAgICAgICYuZWRnZSB7XG4gICAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICByaWdodDogMTlweDtcbiAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDIxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAyMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDIxcHggc29saWQgI0RERERERDtcbiAgICAgICAgICB0b3A6IC0yMXB4O1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICBib3JkZXItbGVmdDogMjBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDIwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMjBweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgICB0b3A6IC0yMHB4O1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5wcmltYXJ5LW5hdiA+IGxpOmhvdmVyICYge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAmOm5vdCguLWRvY3MtdGFnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5wcmltYXJ5LW5hdiA+IGxpOmhvdmVyIHtcbiAgICAmLi1kb2NzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gIC5jb250YWluZXIgPiBuYXYge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAtd2Via2l0LWNvbHVtbnM6IDIyMHB4IDI7XG4gICAgLW1vei1jb2x1bW5zOiAyMjBweCAyO1xuICAgIGNvbHVtbnM6IDIyMHB4IDI7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBjb2xvcihncmF5LCBkYXJrKTtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIG1hcmdpbjogNDBweCAwO1xuICAgICAgcGFkZGluZzogMTBweCA1NXB4O1xuICAgICAgd2lkdGg6IDUyJTtcblxuICAgICAgdWwge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkaXZ7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMS41ZW07XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cbiAgfVxuXG4gIGgzIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cblxuICAubmF2LW1lbnVfX3NlY3Rpb24tb3ZlcnZpZXcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWluLWhlaWdodDogMzI1cHg7XG4gICAgICBwYWRkaW5nOiA1MHB4IDUlIDAgMjIlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDQ4JTtcbiAgICB9XG5cbiAgICBoMyB7XG4gICAgICBmb250LXNpemU6IDIuMTI1ZW07XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIG1hcmdpbi10b3A6IDExcHg7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBjb2xvcjogY29sb3IoZ3JheSwgbGlnaHQpO1xuICAgICAgZm9udC1zaXplOiAuODc1ZW07XG4gICAgICBsaW5lLWhlaWdodDogMS4zNzU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgbWFyZ2luLXRvcDogMTRweDtcblxuICAgIH1cblxuICAgIC5waG90byB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmF5KTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBtaW4taGVpZ2h0OiAxNjVweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAzOCU7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC54bGFyZ2UnKSkge1xuICAgICAgICBtaW4taGVpZ2h0OiAyMjVweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIC8vYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9jaGV2cm9uLXJpZ2h0LWdyZWVuLnBuZykgbm8tcmVwZWF0IHJpZ2h0IDVweDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLjVweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59IiwiLnByaW1hcnktbmF2IHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgLmdsb2JhbC1oZWFkZXIgJiB7XG4gICAgcGFkZGluZy10b3A6IDU2cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDU1cHg7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHRvcDogMDtcbiAgICB9XG4gIH1cblxuICA+IC5wcmltYXJ5LW5hdl9faXRlbSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGNvbG9yKGdyYXksIGRhcmspO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3M7XG5cbiAgICAmLi1pbmFjdGl2ZSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICB9XG59XG4iLCIuZ2xvYmFsLXNlYXJjaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMWVtO1xuICB3aWR0aDogMTAwJTtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiBhdXRvO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbmlucHV0Lmdsb2JhbC1zZWFyY2hfX2JveCB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogY29sb3IoYmx1ZSk7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgY29sb3I6IGNvbG9yKGdyZXksIHhsaWdodCk7XG4gIGhlaWdodDogMjVweDtcbiAgcGFkZGluZzogLjRlbSAxZW07XG4gIHdpZHRoOiAxMDAlO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiBjb2xvcihncmV5LCBsaWdodCk7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBsaWdodGVuKGNvbG9yKGJsdWUpLCAyNSUpO1xuICAgIG1hcmdpbjogMCAwLjVlbSAwIDA7XG4gICAgcGFkZGluZzogMCAxZW0gMCAwO1xuICAgIGNvbG9yOiBjb2xvcihncmF5LCB4ZGFyayk7XG5cbiAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogY29sb3IoZ3JheSwgZGFyayk7XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRyYW5zaXRpb246IHdpZHRoIC4zcztcbiAgICB3aWR0aDogMDtcblxuICAgIC5nbG9iYWwtc2VhcmNoLi1hY3RpdmUgJiB7XG4gICAgICB3aWR0aDogNTAwcHg7XG4gICAgICBtYXJnaW46IDAgMC41ZW0gMCAwO1xuICAgIH1cbiAgfVxufVxuXG4uZ2xvYmFsLXNlYXJjaF9fYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1zaXplOiAxLjM3NWVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGNvbG9yIC4zcztcbiAgei1pbmRleDogOTA7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAzNnB4IDEycHg7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG5cbiAgLy8gU3RhdGVzXG5cbiAgLmdsb2JhbC1zZWFyY2guLWFjdGl2ZSAmLFxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogbGlnaHRlbihjb2xvcihibHVlKSwgMjUlKTtcbiAgfVxuXG4gICY6YWN0aXZlLFxuICAmOmFjdGl2ZTpmb2N1cyxcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbn1cbiIsIi5zZWNvbmRhcnktbmF2IHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGJsdWUpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IHNldHRpbmcoJ2dsb2JhbC5oZWFkZXIuYm9yZGVySGVpZ2h0Jyk7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgcGFkZGluZy1yaWdodDogc2V0dGluZygnZ3V0dGVyUGFkZGluZycpO1xuICB9XG5cbn1cbiIsIi5kb2NzLXNlYXJjaCB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG59XG5cbmlucHV0LmRvY3Mtc2VhcmNoX19ib3gge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgaGVpZ2h0OiAyNXB4O1xuICBwYWRkaW5nOiAuNGVtIDFlbTtcblxuICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICB9XG5cbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLmRvY3Mtc2VhcmNoX19idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LXNpemU6IDEuMzc1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogY29sb3IgLjNzO1xuICB6LWluZGV4OiA5MDtcblxuICAvLyBTdGF0ZXNcblxuICAuZG9jcy1zZWFyY2guLWFjdGl2ZSAmLFxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogbGlnaHRlbihjb2xvcihibHVlKSwgMjUlKTtcbiAgfVxuXG4gICY6YWN0aXZlLFxuICAmOmFjdGl2ZTpmb2N1cyxcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbn0iLCIuaGVyb19fY29udGVudCB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB6LWluZGV4OiAyMDtcbn1cblxuaDEuaGVyb19fY29udGVudF9faGVhZGxpbmUge1xuICBjb2xvcjogd2hpdGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQueHNtYWxsJykpIHtcbiAgICBmb250LXNpemU6IDIuNWVtO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICBmb250LXNpemU6IDNlbTtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICBmb250LXNpemU6IDMuNzVlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgZm9udC1zaXplOiA0LjVlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC54bGFyZ2UnKSkge1xuICAgIGZvbnQtc2l6ZTogNS4yNWVtO1xuICB9XG59XG5cbmgyLmhlcm9fX2NvbnRlbnRfX2hlYWRsaW5lIHtcbiAgY29sb3I6IHdoaXRlO1xuICBsaW5lLWhlaWdodDogNTBweDtcbiAgZm9udC1zaXplOiAyLjI1ZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICBsaW5lLWhlaWdodDogNzBweDtcbiAgICBmb250LXNpemU6IDMuNWVtO1xuICB9XG59XG5cbi5oZXJvX19jb250ZW50X19oZWFkbGluZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICRvcGVuU2Fuc0NvbmRlbnNlZDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luOiAwIDI1cHggMCAyNXB4O1xuICBwYWRkaW5nOiAwIDEwcHg7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59IiwiLy9UT0RPOiBnZXQgZm9udCBhbmQgc2l6ZSB3aGVuIEkgZ2V0IGNvbXBzLlxuLnBhZ2UtdGl0bGUge1xuICBjb2xvcjogY29sb3IoZ3JheSwgeGRhcmspO1xuICBmb250LWZhbWlseTogJG9wZW5TYW5zO1xuICBmb250LXNpemU6IDEuNzVlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC41ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgIGZvbnQtc2l6ZTogMi4xMjVlbTtcbiAgfVxuXG4gICYuLXNtYWxsIHtcbiAgICBmb250LXNpemU6IDEuNjI1ZW07XG4gIH1cblxuICAmLi13aGl0ZSB7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG5cbiAgJi4tY2VudGVyZWQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICYuLXBhZGRlZCB7XG4gICAgbWFyZ2luOiAzZW0gMDtcbiAgfVxuXG4gICYuLXBhZGRlZC10b3Age1xuICAgIG1hcmdpbjogM2VtIDAgMDtcbiAgfVxuXG4gICYuLXBhZGRlZC1ib3R0b20ge1xuICAgIG1hcmdpbjogMCAwIDNlbTtcbiAgfVxufVxuIiwiLnBob3RvLWdhbGxlcnktUHJvZHVjdE5hdl9XcmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwIDExcHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5waG90by1nYWxsZXJ5LVByb2R1Y3ROYXYge1xuICAvKiBNYWtlIHRoaXMgc2Nyb2xsYWJsZSB3aGVuIG5lZWRlZCAqL1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICAvKiBXZSBkb24ndCB3YW50IHZlcnRpY2FsIHNjcm9sbGluZyAqL1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIC8qIEZvciBXZWJLaXQgaW1wbGVtZW50YXRpb25zLCBwcm92aWRlIGluZXJ0aWEgc2Nyb2xsaW5nICovXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgLyogV2UgZG9uJ3Qgd2FudCBpbnRlcm5hbCBpbmxpbmUgZWxlbWVudHMgdG8gd3JhcCAqL1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAvKiBJZiBKUyBwcmVzZW50LCBsZXQncyBoaWRlIHRoZSBkZWZhdWx0IHNjcm9sbGJhciAqL1xuICAuanMgJiB7XG4gICAgLyogTWFrZSBhbiBhdXRvLWhpZGluZyBzY3JvbGxlciBmb3IgdGhlIDMgcGVvcGxlIHVzaW5nIGEgSUUgKi9cbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcbiAgICAvKiBSZW1vdmUgdGhlIGRlZmF1bHQgc2Nyb2xsYmFyIGZvciBXZWJLaXQgaW1wbGVtZW50YXRpb25zICovXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgLyogcG9zaXRpb25pbmcgY29udGV4dCBmb3IgYWR2YW5jZXJzICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLy8gQ3J1c2ggdGhlIHdoaXRlc3BhY2UgaGVyZVxuICBmb250LXNpemU6IDA7XG59XG5cbi5waG90by1nYWxsZXJ5LVByb2R1Y3ROYXZfQ29udGVudHMge1xuICBmbG9hdDogbGVmdDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4ycyBlYXNlLWluLW91dDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucGhvdG8tZ2FsbGVyeS1Qcm9kdWN0TmF2X0NvbnRlbnRzLW5vLXRyYW5zaXRpb24ge1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4ucGhvdG8tZ2FsbGVyeS1Qcm9kdWN0TmF2X0xpbmsge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjODg4O1xuICAvLyBSZXNldCB0aGUgZm9udCBzaXplXG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDQ0cHg7XG4gIHBhZGRpbmc6IDAgMTFweDtcblxuICAmW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcbiAgICBjb2xvcjogIzExMTtcbiAgfVxuXG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiBpbml0aWFsO1xuICB9XG59XG5cbi5waG90by1nYWxsZXJ5LUFkdmFuY2VyIHtcbiAgLyogUmVzZXQgdGhlIGJ1dHRvbiAqL1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICB3aWR0aDogODBweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgLyogTm93IHN0eWxlIGl0IGFzIG5lZWRlZCAqL1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICAvKiBTZXQgdGhlIGJ1dHRvbnMgaW52aXNpYmxlIGJ5IGRlZmF1bHQgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3M7XG59XG5cbi5waG90by1nYWxsZXJ5LUFkdmFuY2VyX0xlZnQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNmNWY1ZjAsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCk7XG4gIGxlZnQ6IDA7XG4gIFtkYXRhLW92ZXJmbG93aW5nPVwiYm90aFwiXSB+ICYsXG4gIFtkYXRhLW92ZXJmbG93aW5nPVwibGVmdFwiXSB+ICYge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnBob3RvLWdhbGxlcnktQWR2YW5jZXJfUmlnaHQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgI2Y1ZjVmMCwgdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50KTtcbiAgcmlnaHQ6IDA7XG4gIFtkYXRhLW92ZXJmbG93aW5nPVwiYm90aFwiXSAgfiAmLFxuICBbZGF0YS1vdmVyZmxvd2luZz1cInJpZ2h0XCJdIH4gJiB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ucGhvdG8tZ2FsbGVyeS1BZHZhbmNlcl9JY29uIHtcbiAgZm9udC1zaXplOiA1MHB4O1xuICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIG9wYWNpdHk6IC43O1xufVxuXG4ucGhvdG8tZ2FsbGVyeS1Qcm9kdWN0TmF2X0luZGljYXRvciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDRweDtcbiAgd2lkdGg6IDEwMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzIGVhc2UtaW4tb3V0LCBiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLWluLW91dDtcbn1cblxuQGtleWZyYW1lcyBsdW0tZmFkZSB7XG4gIDAlIHsgb3BhY2l0eTogMDsgfVxuICAxMDAlIHsgb3BhY2l0eTogMTsgfVxufVxuXG5Aa2V5ZnJhbWVzIGx1bS1mYWRlWm9vbSB7XG4gIDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjUpOyBvcGFjaXR5OiAwOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyBvcGFjaXR5OiAxOyB9XG59XG5cbkBrZXlmcmFtZXMgbHVtLWxvYWRlci1yb3RhdGUge1xuICAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSgwKTsgfVxuICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoLTE4MGRlZyk7IH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSgtMzYwZGVnKTsgfVxufVxuXG5Aa2V5ZnJhbWVzIGx1bS1sb2FkZXItYmVmb3JlIHtcbiAgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDEwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4yKSB0cmFuc2xhdGVYKDZweCk7IH1cbiAgMjUlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjMpIHRyYW5zbGF0ZVgoOHB4KTsgfVxuICA0MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMikgdHJhbnNsYXRlWCg2cHgpOyB9XG4gIDUwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgNjAlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjgpIHRyYW5zbGF0ZVgoNnB4KTsgfVxuICA3NSUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuNykgdHJhbnNsYXRlWCg4cHgpOyB9XG4gIDkwJSB7IHRyYW5zZm9ybTogc2NhbGUoMC44KSB0cmFuc2xhdGVYKDZweCk7IH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbn1cblxuQGtleWZyYW1lcyBsdW0tbG9hZGVyLWFmdGVyIHtcbiAgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDEwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4yKSB0cmFuc2xhdGVYKC02cHgpOyB9XG4gIDI1JSB7IHRyYW5zZm9ybTogc2NhbGUoMS4zKSB0cmFuc2xhdGVYKC04cHgpOyB9XG4gIDQwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4yKSB0cmFuc2xhdGVYKC02cHgpOyB9XG4gIDUwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgNjAlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjgpIHRyYW5zbGF0ZVgoLTZweCk7IH1cbiAgNzUlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjcpIHRyYW5zbGF0ZVgoLThweCk7IH1cbiAgOTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjgpIHRyYW5zbGF0ZVgoLTZweCk7IH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbn1cblxuLmx1bS1saWdodGJveCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgei1pbmRleDogOTk5O1xufVxuXG4ubHVtLWxpZ2h0Ym94LWlubmVyIHtcbiAgdG9wOiAyLjUlO1xuICByaWdodDogMi41JTtcbiAgYm90dG9tOiAyLjUlO1xuICBsZWZ0OiAyLjUlO1xufVxuXG4ubHVtLWxpZ2h0Ym94LWlubmVyIGltZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmx1bS1saWdodGJveC1pbm5lciAubHVtLWxpZ2h0Ym94LWNhcHRpb24ge1xuICBtYXJnaW46IDAgYXV0bztcbiAgY29sb3I6ICNmZmY7XG4gIG1heC13aWR0aDogNzAwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmx1bS1sb2FkaW5nIC5sdW0tbGlnaHRib3gtbG9hZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHdpZHRoOiA2NnB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGFuaW1hdGlvbjogbHVtLWxvYWRlci1yb3RhdGUgMTgwMG1zIGluZmluaXRlIGxpbmVhcjtcbn1cblxuLmx1bS1saWdodGJveC1sb2FkZXI6YmVmb3JlLCAubHVtLWxpZ2h0Ym94LWxvYWRlcjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuXG4ubHVtLWxpZ2h0Ym94LWxvYWRlcjpiZWZvcmUge1xuICBsZWZ0OiAwO1xuICBhbmltYXRpb246IGx1bS1sb2FkZXItYmVmb3JlIDE4MDBtcyBpbmZpbml0ZSBsaW5lYXI7XG59XG5cbi5sdW0tbGlnaHRib3gtbG9hZGVyOmFmdGVyIHtcbiAgcmlnaHQ6IDA7XG4gIGFuaW1hdGlvbjogbHVtLWxvYWRlci1hZnRlciAxODAwbXMgaW5maW5pdGUgbGluZWFyO1xuICBhbmltYXRpb24tZGVsYXk6IC05MDBtcztcbn1cblxuLmx1bS1saWdodGJveC5sdW0tb3BlbmluZyB7XG4gIGFuaW1hdGlvbjogbHVtLWZhZGUgMTgwbXMgZWFzZS1vdXQ7XG59XG5cbi5sdW0tbGlnaHRib3gubHVtLW9wZW5pbmcgLmx1bS1saWdodGJveC1pbm5lciB7XG4gIGFuaW1hdGlvbjogbHVtLWZhZGVab29tIDE4MG1zIGVhc2Utb3V0O1xufVxuXG4ubHVtLWxpZ2h0Ym94Lmx1bS1jbG9zaW5nIHtcbiAgYW5pbWF0aW9uOiBsdW0tZmFkZSAzMDBtcyBlYXNlLWluO1xuICBhbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlO1xufVxuXG4ubHVtLWxpZ2h0Ym94Lmx1bS1jbG9zaW5nIC5sdW0tbGlnaHRib3gtaW5uZXIge1xuICBhbmltYXRpb246IGx1bS1mYWRlWm9vbSAzMDBtcyBlYXNlLWluO1xuICBhbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlO1xufVxuXG4ubHVtLWltZyB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTIwbXMgZWFzZS1vdXQ7XG59XG5cbi5sdW0tbG9hZGluZyAubHVtLWltZyB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5sdW0tZ2FsbGVyeS1idXR0b24ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWluZGVudDogMTUwJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBvdXRsaW5lOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIGhlaWdodDogMTAwcHg7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiA2MHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5sdW0tcHJldmlvdXMtYnV0dG9uIHtcbiAgbGVmdDogMTJweDtcbn1cblxuLmx1bS1uZXh0LWJ1dHRvbiB7XG4gIHJpZ2h0OiAxMnB4O1xufVxuXG4ubHVtLWdhbGxlcnktYnV0dG9uOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGJvcmRlci10b3A6IDRweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG59XG5cbi5sdW0tcHJldmlvdXMtYnV0dG9uOmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgYm94LXNoYWRvdzogLTJweCAwIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgbGVmdDogMTIlO1xuICBib3JkZXItcmFkaXVzOiAzcHggMCAwIDA7XG59XG5cbi5sdW0tbmV4dC1idXR0b246YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICBib3gtc2hhZG93OiAycHggMCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIHJpZ2h0OiAxMiU7XG4gIGJvcmRlci1yYWRpdXM6IDAgM3B4IDAgMDtcbn1cblxuLy8vKiBUaGlzIG1lZGlhIHF1ZXJ5IG1ha2VzIHNjcmVlbnMgbGVzcyB0aGFuIDQ2MHB4IHdpZGUgZGlzcGxheSBpbiBhIFwiZnVsbHNjcmVlblwiLWVzcXVlIG1vZGUuIFVzZXJzIGNhbiB0aGVuIHNjcm9sbCBhcm91bmQgaW5zaWRlIHRoZSBsaWdodGJveCB0byBzZWUgdGhlIGVudGlyZSBpbWFnZS4gKi9cbi8vQG1lZGlhIChtYXgtd2lkdGg6IDQ2MHB4KSB7XG4vLyAgLmx1bS1saWdodGJveC1pbWFnZS13cmFwcGVyIHtcbi8vICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8gICAgb3ZlcmZsb3c6IGF1dG87XG4vLyAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4vLyAgfVxuLy9cbi8vICAubHVtLWxpZ2h0Ym94LWNhcHRpb24ge1xuLy8gICAgd2lkdGg6IDEwMCU7XG4vLyAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgICBib3R0b206IDA7XG4vLyAgfVxuLy9cbi8vICAubHVtLWxpZ2h0Ym94LWlubmVyIGltZyB7XG4vLyAgICBtYXgtd2lkdGg6IG5vbmU7XG4vLyAgICBtYXgtaGVpZ2h0OiBub25lO1xuLy8gICAgZGlzcGxheTogYmxvY2s7XG4vLyAgfVxuLy99XG4iLCIkcXVvdGU6IChcbiAgYnJlYWtwb2ludDogKFxuICAgIG1heDogZW0oNDgwcHggLSAxcHgpLFxuICAgIG1pbjogZW0oNDgwcHgpLFxuICAgIG9mZnNldDogZW0oMTA4NHB4ICsgc2V0dGluZygnZ3V0dGVyUGFkZGluZycpICsgc2V0dGluZygnZ3V0dGVyUGFkZGluZycpICsgMjAwcHgpXG4gICksXG4gIGZsb2F0czogbGVmdCByaWdodCxcbiAgbWF4V2lkdGg6IDI1MHB4LFxuICBvZmZzZXQ6IC0xMDBweFxuKTtcblxuLnF1b3RlIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgnbWF4LXdpZHRoJyBzZXR0aW5nKCdicmVha3BvaW50Lm1heCcsICRxdW90ZSkpIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cblxuICBAZWFjaCAkZGlyZWN0aW9uIGluIHNldHRpbmcoJ2Zsb2F0cycsICRxdW90ZSkge1xuICAgICRjbGFzc25hbWU6IC0jeyRkaXJlY3Rpb259O1xuXG4gICAgJi4jeyRjbGFzc25hbWV9IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5taW4nLCAkcXVvdGUpKSB7XG4gICAgICAgIGZsb2F0OiAkZGlyZWN0aW9uO1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTFlbTtcbiAgICAgICAgbWF4LXdpZHRoOiBzZXR0aW5nKCdtYXhXaWR0aCcsICRxdW90ZSk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5vZmZzZXQnLCAkcXVvdGUpKSB7XG4gICAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiBzZXR0aW5nKCdvZmZzZXQnLCAkcXVvdGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLnNpZGViYXItY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JlZW4pO1xuICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcbiAgbWFyZ2luLXRvcDogc2V0dGluZygnZ3V0dGVyUGFkZGluZycpO1xuXG4gIGg0IHtcbiAgICBmb250LWZhbWlseTogJG9wZW5TYW5zQ29uZGVuc2VkO1xuICAgIGZvbnQtc2l6ZTogMS4yNTBlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKSAwO1xuICB9XG59XG5cbi5zaWRlYmFyLW5hdiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG5cbiAgdWwge1xuICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHg7XG4gIH1cbn1cblxuLnNpZGViYXItbmF2X190aXRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGJsdWUpO1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogN3B4IDE1cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5zaWRlYmFyLW5hdl9faXRlbSB7XG4gIGZvbnQtc2l6ZTogLjkzNzVlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICBhIHtcbiAgICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgLjJzO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogbGlnaHRlbihjb2xvcihibHVlKSwgMjAlKTtcbiAgICB9XG4gIH1cblxuICAmLi1hY3RpdmUgYSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxufVxuIiwiJHNjaGVkdWxlOiAoXG4gIGJyZWFrcG9pbnQ6IChcbiAgICB4bGFyZ2U6IGVtKDEyMDBweClcbiAgKSxcbiAgaGVpZ2h0OiAzNTVweCxcbiAgcGFkZGluZzogKFxuICAgIGJvdHRvbTogOC43NSUsXG4gICAgbGVmdDogMTElLFxuICAgIHRvcDogNi4yNSUsXG4gICAgcmlnaHQ6IDExJVxuICApXG4pO1xuXG4uc2NoZWR1bGVfX2xpc3Qge1xuICAuc2NoZWR1bGUtaXRlbTpub3QoOmZpcnN0LWNoaWxkKSxcbiAgLnNjaGVkdWxlX19oZWFkaW5nIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzk3OTc5NztcbiAgfVxuXG4gIC5zY2hlZHVsZSB7XG4gICAgQGV4dGVuZCAuLWxpc3RpbmctZ3JpZDtcbiAgfVxuXG4gIC5zY2hlZHVsZV9fYXJyb3cge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxufVxuXG4uc2NoZWR1bGUge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKSBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gIH1cblxuICA+IHAge1xuICAgIGZvbnQtc2l6ZTogMC44MTNlbTtcbiAgfVxuXG59XG5cbi5zY2hlZHVsZV9fdGl0bGUge1xuICBmb250LWZhbWlseTogJG9wZW5TYW5zO1xuICBmb250LXNpemU6IDEuMTI1ZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5zY2hlZHVsZV9fbWV0YSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBwIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAmLi1kYXRlIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICB9XG59XG5cbi5zY2hlZHVsZV9fY3RhIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcblxuICBwIHtcbiAgICBjb2xvcjogY29sb3IoZ3JleSwgeGxpZ2h0KTtcbiAgICBmb250LWZhbWlseTogJGJhc2tlcnZpbGxlO1xuICAgIGZvbnQtc2l6ZTogMS4xMjVlbTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbWFyZ2luOiAuNWVtIDA7XG4gIH1cbn1cblxuLnNjaGVkdWxlX19oZWFkaW5nIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBkaXNwbGF5OiBub25lO1xuXG4gIHAge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICB9XG59IiwiLnNpZGViYXItY2FsbG91dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHB1cnBsZSk7XG4gIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuICBtYXJnaW46IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBhIHtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG5cbiAgLnNpZGViYXItY2FsbG91dF9faGVhZGluZywgaW1nIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC1mYW1pbHk6ICRvcGVuU2Fuc0NvbmRlbnNlZDtcbiAgICBmb250LXNpemU6IDEuMzc1ZW07XG4gICAgbWFyZ2luLWJvdHRvbTogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuIiwiLnRhYi1wYW5lbCB7XG4gIGhlaWdodDogMDtcbiAgb3BhY2l0eTogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMjVzO1xuXG4gICYuaXMtYWN0aXZlIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuIiwiLnRhYmxpc3Qge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgY29sb3IoZ3JheSwgeGxpZ2h0KTtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBhZGRpbmc6IDRlbSA3JTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgIG1hcmdpbi10b3A6IDQuNWVtO1xuICAgIHBhZGRpbmc6IC41ZW0gMCA0ZW0gMjAlO1xuICB9XG5cbiAgdWwge1xuICAgIG1hcmdpbi1ib3R0b206IDEuN2VtO1xuICB9XG59XG5cbi50YWJsaXN0X190YWIge1xuICBmb250LXNpemU6IC44NzVyZW07XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1ib3R0b206IDEuN2VtO1xuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmsoLjgsIDApO1xuICAgIGNvbG9yOiBjb2xvcihncmF5KTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAuMjVzO1xuICB9XG5cbiAgJi5pcy1zZWxlY3RlZCB7XG4gICAgYSB7XG4gICAgICBjb2xvcjogY29sb3IoZ3JheSwgZGFyayk7XG4gICAgICBjdXJzb3I6IHRleHQ7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IGNvbG9yKGdyYXksIGRhcmspO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi50b3AtYXJyb3cge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmF5LCBsaWdodCk7XG4gIGJvdHRvbTogM3JlbTtcbiAgY29sb3I6IHdoaXRlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMS44ZW07XG4gIG1hcmdpbjogMDtcbiAgb3BhY2l0eTogMC40O1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAzcmVtO1xuICB0cmFuc2l0aW9uOiAuMjVzIG9wYWNpdHk7XG4gIHotaW5kZXg6IDk5OTk7XG5cbiAgJjpob3ZlciB7XG4gICAgb3BhY2l0eTogMC42NTtcbiAgfVxufVxuIiwiLnJlc291cmNlcy10aXRsZSB7XG4gICAgcGFkZGluZy10b3A6IDQwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG59XG4uZXZlbnQtc2NoZWR1bGUtY2FsbG91dCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBwYWRkaW5nOiAzMHB4O1xuICAgICAgICBoMiB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICAgICAgfVxufSIsIi5mZWF0dXJlZC1zdG9yeSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0bztcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG8gYXV0bztcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG87XG4gIH1cblxuICAub3ZlcnZpZXcge1xuICAgIGdyaWQtcm93OiAxO1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xuICB9XG5cbiAgLmZlYXR1cmVkLXN0b3J5LWl0ZW0ge1xuICAgIGZsZXg6IGF1dG87XG4gICAgd2lkdGg6IDk1JTtcbiAgICBncmlkLXJvdzogMjtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgfVxuXG4gIC5zb2NpYWwtY2FsbG91dCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgcGFkZGluZzogMjBweCAzMHB4O1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICAgIGdyaWQtcm93OiAzO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0bztcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmciAxZnI7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBncmlkLWNvbHVtbi1nYXA6IDQwcHg7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQueHNtYWxsJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0bztcbiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIDFmcjtcbiAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICBhbGlnbi1zZWxmOiBzdGFydDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGdyaWQtcm93OiAxIC9zcGFuIDI7XG4gICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIH0gXG5cbiAgICAuc29jaWFsLWNhbGxvdXQtdG9we1xuICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICBncmlkLWNvbHVtbjogMTtcbiAgICB9XG5cbiAgICAuc29jaWFsLWNhbGxvdXQtYm90dG9tIHtcbiAgICAgIGdyaWQtcm93OiAyO1xuICAgICAgZ3JpZC1jb2x1bW46IDE7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC54c21hbGwnKSkge1xuICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICBncmlkLXJvdzogMjtcbiAgICAgIH1cblxuICAgICAgaSB7XG4gICAgICAgIG1pbi13aWR0aDogNjBweDtcbiAgICAgICAgZm9udC1zaXplOiAyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIucGFnaW5hdG9yIHsgXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDYwcHg7XG5cbiAgICBhLCAuY3VycmVudCwgLmZpcnN0LXBhZ2UsIC5sYXN0LXBhZ2Uge1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgIH1cbiAgICBhIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMC40cHggc29saWQgI0RERERERDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwLjJweCBzb2xpZCAjREREREREO1xuICAgICAgICBib3JkZXItYm90dG9tOiAwLjRweCBzb2xpZCAjREREREREO1xuICAgICAgICBtYXgtd2lkdGg6IDQ0cHg7XG4gICAgICAgIG1pbi13aWR0aDogNDRweDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjVGNUYwO1xuICAgICAgICBjb2xvcjogIzAzMTIzRjtcbiAgICB9XG4gICAgLmN1cnJlbnQge1xuICAgICAgICBib3JkZXItdG9wOiAwLjRweCBzb2xpZCAjREREREREO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDAuMnB4IHNvbGlkICNEREREREQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDAuNHB4IHNvbGlkICNEREREREQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNEREREREQ7XG4gICAgICAgIGNvbG9yOiAjN0Q3RDdEO1xuICAgICAgICBtYXgtd2lkdGg6IDQ0cHg7XG4gICAgICAgIG1pbi13aWR0aDogNDRweDtcbiAgICB9XG4gICAgLmZpcnN0LXBhZ2Uge1xuICAgICAgICBib3JkZXI6IDAuNnB4IHNvbGlkICNEREREREQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDglO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjVGNUYwO1xuICAgICAgICBjb2xvcjogIzAzMTIzRjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICBtaW4td2lkdGg6IDY1cHg7XG4gICAgfVxuICAgIC5sYXN0LXBhZ2Uge1xuICAgICAgICBib3JkZXI6IDAuNnB4IHNvbGlkICNEREREREQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDglO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjVGNUYwO1xuICAgICAgICBjb2xvcjogIzAzMTIzRjtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgIG1pbi13aWR0aDogNjVweDtcbiAgICB9XG4gICAgLnByZXZpb3VzLXBhZ2Uge1xuICAgICAgICBib3JkZXI6IDAuNnB4IHNvbGlkICNEREREREQ7XG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDglO1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4JTtcbiAgICB9XG4gICAgLm5leHQtcGFnZSB7XG4gICAgICAgIGJvcmRlci10b3A6IDAuNnB4IHNvbGlkICNEREREREQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogMC42cHggc29saWQgI0RERERERDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMC42cHggc29saWQgI0RERERERDtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDglO1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogOCU7XG4gICAgfVxufVxuXG4ucGFnaW5hdG9yLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn0iLCJwLmNvbnRhY3QtbGVhZC1wIHtcbiAgICBtYXJnaW46IDJlbTtcbiAgICBtYXJnaW4tbGVmdDogM2VtO1xufVxuXG5pbnB1dCNwaG9uZSB7XG4gICAgZGlzcGxheTogbm9uZTsgXG59IiwiLmp1ZGdlcy1kaXJlY3Rvcnkge1xuICAmLi13aXRob3V0LWltYWdlcyB7XG4gICAgLmp1ZGdlIHtcbiAgICAgIC5qdWRnZS1pbWFnZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmp1ZGdlcy1kaXJlY3RvcnktZmlsdGVycyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcblxuICBidXR0b24sXG4gIHNlbGVjdCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjI1cmVtO1xuICB9XG5cbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgc2VsZWN0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZmxleDogMTtcblxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICBwIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4uanVkZ2UtZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gIGgzIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgbWFyZ2luOiAwIDAgMnJlbTtcbiAgfVxufVxuXG4uanVkZ2Uge1xuICAuanVkZ2UtaW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgIGltZyB7XG4gICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBpbWcge1xuICAgICAgICBib3JkZXItY29sb3I6ICNhYWE7ICAgICAgICBcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmp1ZGdlLWRldGFpbC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAycmVtO1xuICB9XG5cbiAgaDIge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICAuaW1hZ2Utd3JhcHBlciB7XG4gICAgbWF4LXdpZHRoOiA0MCU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cbiAgfVxufSIsIi5zZXBhcmF0b3Ige1xuICAmLnNtYWxsIHtcbiAgICBtaW4taGVpZ2h0OiAzZW07XG4gIH1cblxuICAmLm1lZGl1bSB7XG4gICAgbWluLWhlaWdodDogNmVtO1xuICB9XG5cbiAgJi5sYXJnZSB7XG4gICAgbWluLWhlaWdodDogOWVtO1xuICB9XG59IiwiLnJzcy13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdG9wOiAwO1xuICByaWdodDogMDtcblxuICArIC5icmVhZGNydW1iIHtcbiAgICBtYXJnaW4tdG9wOiAyLjVlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxO1xuICB9XG5cblxuICAuZmEge1xuICAgIGNvbG9yOiBjb2xvcihvcmFuZ2UpO1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDFweDtcbiAgICBmb250LXNpemU6IDEuMTRlbTtcbiAgfVxuXG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG59IiwiLkNhcm91c2VsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcblxuICAuc3dpcGVyLXNsaWRlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcblxuICAgIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIC8qIFBvc2l0aW9uIHRoZSBpbWFnZSBpbiB0aGUgbWlkZGxlIG9mIGl0cyBjb250YWluZXIuICovXG4gICAgICB0b3A6IC05OTk5cHg7XG4gICAgICByaWdodDogLTk5OTlweDtcbiAgICAgIGJvdHRvbTogLTk5OTlweDtcbiAgICAgIGxlZnQ6IC05OTk5cHg7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgICAvKiBUaGUgZm9sbG93aW5nIHZhbHVlcyBkZXRlcm1pbmUgdGhlIGV4YWN0IGltYWdlIGJlaGF2aW91ci4gKi9cbiAgICAgIC8qIFlvdSBjYW4gc2ltdWxhdGUgYmFja2dyb3VuZC1zaXplOiBjb3Zlci9jb250YWluL2V0Yy5cbiAgICAgICAgIGJ5IGNoYW5naW5nIGJldHdlZW4gbWluL21heC9zdGFuZGFyZCB3aWR0aC9oZWlnaHQgdmFsdWVzLlxuICAgICAgICAgVGhlc2UgdmFsdWVzIHNpbXVsYXRlIGJhY2tncm91bmQtc2l6ZTogY292ZXJcbiAgICAgICovXG4gICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5zd2lwZXItYnV0dG9uLXByZXYsIFxuICAuc3dpcGVyLWJ1dHRvbi1uZXh0IHtcbiAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwgMC41KTtcbiAgfVxuXG4gIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICB9XG59IiwiLm1hcC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZ20tc3R5bGUge1xuICAuc2VsZWN0ZWQge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAyMXB4IDIycHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsZWZ0OiAtOHB4O1xuICAgICAgdG9wOiAtOHB4O1xuICAgIH1cbiAgfVxufVxuXG4jbWFwLWxpc3RpbmctaW5mbyB7XG4gIHdpZHRoOiAzMDBweDtcbiAgbWluLXdpZHRoOiAzMDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBjb2xvcihncmV5LCB4bGlnaHQpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIGNvbG9yKGdyZXksIGJhc2UpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLWluLW91dDtcbiAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgcGFkZGluZzogMCAyMHB4O1xuXG4gIC5mYS13aW5kb3ctY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTBweDtcbiAgICB0b3A6IDEwcHg7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAmLmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG5cbiAgcCB7XG4gICAgZm9udC1zaXplOiAwLjg3NWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG5cbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBmb250LXNpemU6IDAuNzVlbTtcbiAgICB9XG4gIH1cbn0iLCIuY2xlYXItYm90aCB7XG4gIGNsZWFyOiBib3RoO1xufSIsIkBpbXBvcnQgXCJhcnRpY2xlXCI7XG5AaW1wb3J0IFwiY29ubmVjdC1iYXJcIjtcbkBpbXBvcnQgXCJlbW1hXCI7XG5AaW1wb3J0IFwiZXZlbnQtZGV0YWlsLWNvbnRlbnRcIjtcbkBpbXBvcnQgXCJnbG9iYWwtZm9vdGVyXCI7XG5AaW1wb3J0IFwiZ2xvYmFsLWhlYWRlclwiO1xuQGltcG9ydCBcImdsb2JhbC1uYXZcIjtcbkBpbXBvcnQgXCJoZXJvXCI7XG5AaW1wb3J0IFwibWFpbi1jb250ZW50XCI7XG5AaW1wb3J0IFwidmlkZW8tcGxheWxpc3RcIjtcbkBpbXBvcnQgXCJkb2NzXCI7XG5AaW1wb3J0IFwiZG9jcy1oZWFkZXJcIjtcbkBpbXBvcnQgXCI0MDRcIjtcbiIsIi5hcnRpY2xlIHtcbiAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJykgc2V0dGluZygnZ3V0dGVyUGFkZGluZycpO1xuICB9XG59XG5cbi5hcnRpY2xlX190aXRsZSB7XG4gIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmFydGljbGVfX3RpdGxlLWFsdCB7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuXG4uc29jaWFsLXBvc3QtY29udGFpbmVyIC5mYWIge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAuNWVtO1xufSIsIi5jb25uZWN0LWJhciB7XG4gIHBhZGRpbmc6IDMuODc1cmVtIDAgIWltcG9ydGFudDtcblxuICAuZ3JpZC1pdGVtIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmNvbm5lY3QtYmFyX190aXRsZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAxLjg3NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogLjc1ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cblxuLmNvbm5lY3QtYmFyX19zb2NpYWwtaWNvbnMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbn1cblxuLmNvbm5lY3QtYmFyX19pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjIpO1xuICBjb2xvcjogd2hpdGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjI1ZW07XG4gIGhlaWdodDogNTBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAuMjVzO1xuICB3aWR0aDogNTBweDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuMyk7XG4gIH1cblxuICAuaWNvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgfVxufVxuIiwiLmUybWFfc2lnbnVwX2Zvcm0ge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG5cbiAgQGV4dGVuZCAuZ2xvYmFsLWZvb3Rlcjtcbn1cblxuLmUybWFfc2lnbnVwX2Zvcm1fYnV0dG9uIHtcbiAgQGV4dGVuZCAgLmJ1dHRvbjtcbiAgQGV4dGVuZCAuLXByaW1hcnk7XG4gIEBleHRlbmQgLi1zbWFsbDtcbn1cblxuLmUybWFfc2lnbnVwX2Zvcm1fcm93IHtcbiAgQGV4dGVuZCAuZm9ybS1jb250cm9sLWdyb3VwO1xufVxuXG4uZTJtYV9zaWdudXBfZm9ybV9lbGVtZW50ID4gaW5wdXQge1xuICBAZXh0ZW5kIC5mb3JtLWNvbnRyb2w7XG59XG5cbi5lMm1hX3NpZ251cF9mb3JtX2xhYmVsIHtcbiAgQGV4dGVuZCBsYWJlbDtcbn0iLCIuZXZlbnQtZGV0YWlsLWNvbnRlbnQge1xuICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cbiIsIi5nbG9iYWwtZm9vdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoYmx1ZSk7XG4gIGNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICBmb250LXNpemU6IC44MTNyZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHBhZGRpbmc6IDYwcHggMCAyNXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG5cbiAgbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBwIHtcbiAgICBjb2xvcjogY29sb3IoZ3JheSwgeGxpZ2h0KTtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAuODEzcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIH1cblxuICAuZm9ybS1jb250cm9sIHtcbiAgICBoZWlnaHQ6IDMxcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzM7XG4gICAgcGFkZGluZzogNnB4IDhweDtcbiAgfVxuXG4gIC5mb3JtLWNvbnRyb2wtZ3JvdXAge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNjI1ZW07XG4gICAgbWFyZ2luLXRvcDogMC42MjVlbTtcbiAgfVxufVxuXG4uZ2xvYmFsLWZvb3Rlcl9faGVhZGluZyB7XG4gIGNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICBmb250LXNpemU6IC44MTNyZW07XG4gIGZvbnQtZmFtaWx5OiAkb3BlblNhbnM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4uZ2xvYmFsLWZvb3Rlcl9fc29jaWFsIHtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG5cbiAgLmdyaWQuLWNvbDMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNTBweCA1MHB4IDUwcHg7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogY29sb3IoZ3JheSwgbGlnaHQpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAuMjVzO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogY29sb3IoZ3JheSk7XG4gICAgfVxuICB9XG5cbiAgaSB7XG4gICAgZm9udC1zaXplOiAzMnB4O1xuICB9XG5cbiAgcCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgY29sb3I6IGNvbG9yKGdyYXkpO1xuICAgIGZvbnQtc2l6ZTogLjY4NzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgfVxuXG4gICNkb25hdGUge1xuICAgIHBhZGRpbmctdG9wOiA1MHB4O1xuICB9XG59XG5cbi5nbG9iYWwtZm9vdGVyX19zb2NpYWwtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5nbG9iYWwtZm9vdGVyX19sZWdhbCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogNjBweDtcbn0iLCIuZ2xvYmFsLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBtYXgtaGVpZ2h0OiBzZXR0aW5nKCdnbG9iYWwuaGVhZGVyLmhlaWdodC5tZWRpdW0nKTtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IG1heC1oZWlnaHQgLjVzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgLjVzIGVhc2U7XG4gIHotaW5kZXg6IDUwO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgaGVpZ2h0OiBzZXR0aW5nKCdnbG9iYWwuaGVhZGVyLmhlaWdodC5sYXJnZScpO1xuICAgIG1heC1oZWlnaHQ6IHNldHRpbmcoJ2dsb2JhbC5oZWFkZXIuaGVpZ2h0LmxhcmdlJyk7XG4gICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgfVxuXG4gICYuLWV4cGFuZGVke1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIG1heC1oZWlnaHQ6IDEwMDBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAucHJpbWFyeS1uYXYgPiBsaSAmLmFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICArIG1haW4ge1xuICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cbiAgfVxuXG4gID4gLmNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG4iLCIuZ2xvYmFsLW5hdmlnYXRpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMi41ZW07XG4gIG1hcmdpbi10b3A6IDJweDtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cbiIsIiRoZXJvOiAoXG4gIGJhY2tncm91bmRDb2xvcjogY29sb3IoZ3JheSwgeGRhcmspLFxuICBjb2xvcjogI2ZmZixcbiAgaGVpZ2h0OiAoXG4gICAgc3RhbmRhcmQ6IChcbiAgICAgIHNtYWxsOiAzNjBweCxcbiAgICAgIG1lZGl1bTogNDM1cHgsXG4gICAgICBsYXJnZTogNDkwcHhcbiAgICApLFxuICAgIG92ZXJzaXplZDogKFxuICAgICAgc21hbGw6ICcnLFxuICAgICAgbWVkaXVtOiAnJyxcbiAgICAgIGxhcmdlOiA3NzBweFxuICAgICksXG4gICAgc21hbGw6IChcbiAgICAgIHNtYWxsOiAyNTBweCxcbiAgICAgIG1lZGl1bTogMzIwcHgsXG4gICAgICBsYXJnZTogMzkwcHhcbiAgICApXG4gIClcbik7XG5cbi5oZXJvIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIGJhY2tncm91bmQtY29sb3I6IHNldHRpbmcoJ2JhY2tncm91bmRDb2xvcicsICRoZXJvKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICYuLXdpdGgtaW1hZ2Uge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBoZWlnaHQ6IHNldHRpbmcoJ2hlaWdodC5zdGFuZGFyZC5zbWFsbCcsICRoZXJvKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICBoZWlnaHQ6IHNldHRpbmcoJ2hlaWdodC5zdGFuZGFyZC5tZWRpdW0nLCAkaGVybyk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIGhlaWdodDogc2V0dGluZygnaGVpZ2h0LnN0YW5kYXJkLmxhcmdlJywgJGhlcm8pO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjMpO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgei1pbmRleDogMTA7XG4gICAgfVxuXG4gICAgJi4tdG9wIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcDtcbiAgICB9XG4gIH1cblxuICAuY29udGFpbmVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAyMDtcbiAgICBtYXgtd2lkdGg6IDg1dnc7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgJi4tb3ZlcnNpemVkIHtcbiAgICBoZWlnaHQ6IHNldHRpbmcoJ2hlaWdodC5vdmVyc2l6ZWQubGFyZ2UnLCAkaGVybykgIWltcG9ydGFudDtcbiAgfVxuXG4gICYuLXNtYWxsIHtcbiAgICBoZWlnaHQ6IHNldHRpbmcoJ2hlaWdodC5zbWFsbC5zbWFsbCcsICRoZXJvKTtcblxuICAgIC5DYXJvdXNlbCB7XG4gICAgICBoZWlnaHQ6IHNldHRpbmcoJ2hlaWdodC5zbWFsbC5zbWFsbCcsICRoZXJvKTsgICAgICBcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGhlaWdodDogc2V0dGluZygnaGVpZ2h0LnNtYWxsLm1lZGl1bScsICRoZXJvKTtcblxuICAgICAgLkNhcm91c2VsIHtcbiAgICAgICAgaGVpZ2h0OiBzZXR0aW5nKCdoZWlnaHQuc21hbGwubWVkaXVtJywgJGhlcm8pOyAgICAgIFxuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBoZWlnaHQ6IHNldHRpbmcoJ2hlaWdodC5zbWFsbC5sYXJnZScsICRoZXJvKTtcblxuICAgICAgLkNhcm91c2VsIHtcbiAgICAgICAgaGVpZ2h0OiBzZXR0aW5nKCdoZWlnaHQuc21hbGwubGFyZ2UnLCAkaGVybyk7ICAgICAgXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmlkZW8ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMTtcbiAgfVxufVxuIiwiLm1haW4tY29udGVudCxcbi5tYWluLWNvbnRlbnQuY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyMDtcbn1cbiIsIi8qIFlvdVR1YmUgVFYgKi9cblxuLyogQmFzZSBDYW52YXMgKi9cbi55dHYtY2FudmFze1xuXHRkaXNwbGF5OiBibG9jaztcblx0YmFja2dyb3VuZDogIzI4MjgyODtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Zm9udC1mYW1pbHk6IGFyaWFsLCBzYW5zLXNlcmlmO1xufVxuLnl0di1jYW52YXMgOjotd2Via2l0LXNjcm9sbGJhcntcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjMDAwO1xuXHR3aWR0aDogMTBweDtcbn1cbi55dHYtY2FudmFzIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7XG5cdGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4xKTtcbn1cblxuLyogVmlkZW8gKi9cbi55dHYtdmlkZW97XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRyaWdodDogMzAwcHg7XG5cdGJvdHRvbTogMDtcblx0bGVmdDogMDtcblx0aGVpZ2h0OiAxMDAlO1xufVxuLnl0di12aWRlbyBpZnJhbWV7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJvcmRlcjogbm9uZTtcblx0b3V0bGluZTogbm9uZTtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIExpc3QgKi9cbi55dHYtbGlzdHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAwO1xuXHRib3R0b206IDA7XG5cdGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMzAwcHg7XG4gICAgZm9udC1mYW1pbHk6ICRvcGVuU2FucztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpXG59XG4ueXR2LWxpc3QtaW5uZXJ7XG5cdG92ZXJmbG93OiBhdXRvO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogNTJweDtcblx0cmlnaHQ6IDA7XG5cdGJvdHRvbTogMDtcblx0bGVmdDogMDtcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuLnl0di1saXN0IHVse1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cbi55dHYtbGlzdCAueXR2LWFjdGl2ZSBhe1xuXHRib3JkZXItbGVmdDogMnB4IHNvbGlkICNmZmY7XG4gICAgLy8gYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjA1KTtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvcihncmF5LCBsaWdodCkgIWltcG9ydGFudDtcbn1cbi55dHYtbGlzdCBhe1xuXHRkaXNwbGF5OiBibG9jaztcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRmb250LXNpemU6IDExcHg7XG5cdGNvbG9yOiAjRkVGRUZFO1xuXHRwYWRkaW5nOiAxMHB4O1xuXHRwYWRkaW5nLWxlZnQ6IDhweDtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xKTtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC41KTtcblx0Ym9yZGVyLWxlZnQ6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi55dHYtbGlzdCBhIGJ7XG5cdG1heC1oZWlnaHQ6IDQ1cHg7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi55dHYtbGlzdCBsaTpmaXJzdC1jaGlsZCBheyBib3JkZXItdG9wOiBub25lOyB9XG4ueXR2LWxpc3QgbGk6bGFzdC1jaGlsZCBheyBib3JkZXItYm90dG9tOiBub25lOyB9XG4ueXR2LWxpc3QgYTpob3Zlcixcbi55dHYtbGlzdC1oZWFkZXIgLnl0di1wbGF5bGlzdHMgYTpob3ZlcnsgYmFja2dyb3VuZDogY29sb3IoZ3JheSwgbGlnaHQpICFpbXBvcnRhbnQ7IH1cbi55dHYtbGlzdCBhOmFjdGl2ZSxcbi55dHYtbGlzdC1oZWFkZXIgLnl0di1wbGF5bGlzdHMgYTphY3RpdmV7IGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wNSk7IH1cblxuLnl0di1saXN0IC55dHYtY29udGVudHsgcGFkZGluZy1sZWZ0OiAxMjVweDsgfVxuLnl0di1saXN0IC55dHYtdGh1bWItc3Ryb2tle1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMXB4O1xuXHRsZWZ0OiAxcHg7XG5cdGJvdHRvbTogMXB4O1xuXHRyaWdodDogMXB4O1xuXHR6LWluZGV4OiAyO1xuXHRvdXRsaW5lOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjEpO1xufVxuLnl0di1saXN0IC55dHYtdGh1bWJ7XG5cdGZsb2F0OiBsZWZ0O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG91dGxpbmU6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuNSk7XG59XG4ueXR2LWxpc3QgLnl0di10aHVtYiBpbWd7XG5cdHdpZHRoOiAxMjBweDtcblx0ZGlzcGxheTogYmxvY2s7XG59XG4ueXR2LWxpc3QgLnl0di10aHVtYiBzcGFue1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGJvdHRvbTogNXB4O1xuXHRyaWdodDogNXB4O1xuXHRjb2xvcjogI2VlZTtcblx0YmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjcpO1xuXHRmb250LXNpemU6IDExcHg7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRwYWRkaW5nOiAwcHggNHB4O1xuXG5cdC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4O1xuXHQtbW96LWJvcmRlci1yYWRpdXM6IDNweDtcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xufVxuLnl0di12aWV3c3tcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbi10b3A6IDVweDtcblx0Zm9udC1zaXplOiAxMHB4O1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRvcGFjaXR5OiAwLjM7XG59XG5cbi55dHYtbGlzdC1oZWFkZXJ7XG5cdGhlaWdodDogNTJweDtcblx0LXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuXHQtbW96LWJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi55dHYtbGlzdC1oZWFkZXIgYXtcblx0YmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjA1KTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodCkgIWltcG9ydGFudDtcbn1cbi55dHYtbGlzdC1oZWFkZXIgaW1nLFxuLnl0di1saXN0IC55dHYtcGxheWxpc3RzIC55dHYtdGh1bWIgaW1ne1xuXHR3aWR0aDogMzBweDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi55dHYtbGlzdC1oZWFkZXIgc3Bhbntcblx0cGFkZGluZy1sZWZ0OiAxMHB4O1xuXHRmb250LXNpemU6IDEycHg7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBQbGF5bGlzdHMgKi9cbi55dHYtcGxheWxpc3Rze1xuXHR6LWluZGV4OiA5O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGJhY2tncm91bmQ6ICMyODI4Mjg7XG5cdHRvcDo1MnB4O1xuXHRsZWZ0OiAwO1xuXHRyaWdodDogMDtcblx0Ym90dG9tOiAwO1xuXHRvdmVyZmxvdzogYXV0bztcblx0ZGlzcGxheTogbm9uZTtcbn1cbi55dHYtcGxheWxpc3RzIGltZyxcbi55dHYtbGlzdC1oZWFkZXIgaW1ne1xuXHRmbG9hdDogbGVmdDtcbn1cbi55dHYtcGxheWxpc3RzIGEgc3Bhbixcbi55dHYtbGlzdC1oZWFkZXIgYSBzcGFue1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi55dHYtbGlzdC1oZWFkZXIgPiBhIHNwYW57XG5cdGxpbmUtaGVpZ2h0OiAzMHB4O1xufVxuLnl0di1saXN0LWhlYWRlciAueXR2LXBsYXlsaXN0cyBhe1xuXHRiYWNrZ3JvdW5kOiBub25lO1xufVxuLnl0di1wbGF5bGlzdC1vcGVuIC55dHYtcGxheWxpc3Rze1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLyogTW9kaWZpZXJzICovXG4ueXR2LXJlbGF0aXZle1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG59XG4ueXR2LWZ1bGx7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcblx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG4ueXR2LWFycm93IHtcblx0aGVpZ2h0OiAxMHB4O1xuXHR3aWR0aDogMDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IDEwcHg7XG5cdHJpZ2h0OiA1cHg7XG5cdGJvcmRlcjogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0ZmxvYXQ6IHJpZ2h0O1xuXHRib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsMCwwLDAuNCk7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4ueXR2LWhhcy1wbGF5bGlzdHMgLnl0di1hcnJvd3tcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnl0di1wbGF5bGlzdC1vcGVuIC55dHYtYXJyb3d7XG5cdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwwLDAsMC40KTtcblx0dG9wOiAtMTBweDtcbn1cblxuLnl0di1saXN0LWhlYWRlciBhOmFmdGVyLFxuLnl0di1jbGVhcjphZnRlciB7XG5cdGNvbnRlbnQ6IFwiLlwiO1xuXHRkaXNwbGF5OiBibG9jaztcblx0Y2xlYXI6IGJvdGg7XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0bGluZS1oZWlnaHQ6IDA7XG5cdGhlaWdodDogMDtcbn0iLCIuLWRvY3Mge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG8gYXV0byBhdXRvO1xuICAgIFxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnI7XG4gICAgfVxuXG4gICAgLm1haW4ge1xuICAgICAgICBncmlkLXJvdzogMztcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmxvZ28tYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSwgeGxpZ2h0KTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgL3NwYW4gMjtcbiAgICAgICAgICAgIGdyaWQtcm93OiAyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC4tZG9jcy1oZWFkLWxvZ28ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5nbG9iYWwtZm9vdGVyIHtcbiAgICAgICAgZ3JpZC1yb3c6IDQ7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvc3BhbiAyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDEuaGVyb19fY29udGVudF9faGVhZGxpbmUge1xuICAgICAgICBmb250LXNpemU6IDJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICBtYXJnaW46IDAuNWVtO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDNlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IC4yZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2Vjb25kYXJ5LW5hdiB7XG4gICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgL3NwYW4gMjtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuZG9jcy1oZWFkZXIge1xuICAgIGdyaWQtcm93OiAyO1xuICAgIGdyaWQtY29sdW1uOiAxIC9zcGFuIDI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICBncmlkLXJvdzogMztcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIHdpZHRoOiAyNTBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoYmx1ZSk7XG4gICAgfVxuXG4gICAgLmRvY3MtbmF2IHtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoYmx1ZSk7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRvY3MtZ2xvYmFsLWhlYWRlciB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDg1cHg7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiA1MDtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG8gYXV0bztcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAmLi1leHBhbmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwMHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGJsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIC5wcmltYXJ5LW5hdiA+IGxpICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgICAgICArIG1haW4ge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIFxuICAgICAgICA+IC5jb250YWluZXIge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYnVyZ2VyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMjVweCAxMHB4IDEwcHggMTBweDtcbiAgICAgICAgei1pbmRleDogMTAwO1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgYWxpZ24tc2VsZjogc3RhcnQ7XG4gICAgICAgIG1heC13aWR0aDogMTAwcHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogY29sb3IoZ3JheSwgeGxpZ2h0KTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmltYXJ5LW5hdiB7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMWVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDFlbTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLnByaW1hcnktbmF2X19pdGVtIHtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuLWRvY3MtbmF2LWxvZ28ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiA4MHB4O1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5hdi1tZW51IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgJjpub3QoLmVkZ2UpOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgICAgICAmOm5vdCguZWRnZSk6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAgICAgJi5lZGdlIHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLnByaW1hcnktbmF2ID4gbGk6aG92ZXIgJiB7XG4gICAgICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKGJsdWUpLCA1JSk7XG4gICAgfVxuXG4gICAgLm5hdi1saW5rIHtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAmLi1wcmltYXJ5IHtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvcihibHVlKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogY29sb3IoZ3JheSwgbGlnaHQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByaW1hcnktbmF2LmV4cGFuZGVkICYge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCBsaWdodCk7XG4gICAgICAgIFxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogY29sb3IoZ3JheSwgeGxpZ2h0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBcbiAgICAgICAgaSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgXG4gICAgICAgIC5wcmltYXJ5LW5hdiA+IGxpOmhvdmVyICYuLWFjdGl2ZSxcbiAgICAgICAgLnByaW1hcnktbmF2ID4gbGk6aG92ZXIgJjpob3ZlcixcbiAgICAgICAgLnByaW1hcnktbmF2ID4gbGk6aG92ZXIgJjphY3RpdmUsXG4gICAgICAgIC5wcmltYXJ5LW5hdiA+IGxpOmhvdmVyICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodCk7XG4gICAgICAgIH1cbiAgICBcbiAgICAgICAgJi4tZHJvcGRvd24tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogY29sb3IoZ3JheSwgeGxpZ2h0KTtcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAucHJpbWFyeS1uYXYgJiB7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuLWFjdGl2ZSxcbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjphY3RpdmUsXG4gICAgICAgICY6Zm9jdXMge1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5hdi1saW5rLWJ1dHRvbiB7XG4gICAgICAgIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBjb2xvcjogY29sb3IoZ3JheSwgbGlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogYmx1ZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogY29sb3IoZ3JheSwgeGxpZ2h0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kb2NzLW5hdiBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgICAgIHBhZGRpbmctdG9wOiAyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMWVtO1xuICAgICAgICBjb2xvcjogY29sb3IoZ3JheSwgZGFyayk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgICAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZG9jcy1uYXYgbGkge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuMjVlbTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRvY3MtbmF2IGEge1xuICAgICAgICBmb250LXNpemU6IC45ZW07XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY29sb3I6IGNvbG9yKGdyYXksIGRhcmspO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBjb2xvcjogY29sb3IoZ3JheSwgbGlnaHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodCk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGJsdWUpO1xuICAgICAgICAgICAgZ3JpZC1yb3c6IDM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuLWRvY3MtaGVhZC1sb2dvIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIGhlaWdodDogODVweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC4tZG9jcy1oZWFkLWxvZ28gYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDgwcHg7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZ2xvYmFsLWhlYWRlciAucHJpbWFyeS1uYXYge1xuICAgICAgICBwYWRkaW5nLXRvcDogMjBweDtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpbWFyeS1uYXYgLnByaW1hcnktbmF2X19pdGVtIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGNvbG9yKGJsdWUpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3IoZ3JheSwgeGxpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmltYXJ5LW5hdl9faXRlbTpob3ZlciBhIHtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmltYXJ5LW5hdiA+IGxpOmhvdmVyIC5uYXYtbGluay4tcHJpbWFyeSB7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5hdi1tZW51IGxpOmhvdmVyIGEge1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBjb2xvcjogY29sb3IoZ3JheSwgeGxpZ2h0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmltYXJ5LW5hdl9faXRlbSB7XG4gICAgICAgIG1heC13aWR0aDogMTAwdnc7XG4gICAgfVxufSIsIi5mb3VyLW8tZm91ci1wZyB7XG5cbiAgICAuZ2xvYmFsLXNlYXJjaCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDEwMCU7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIHdpZHRoOiA3MCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYnV0dG9uLi1wcmltYXJ5IHtcbiAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIGlucHV0I2dsb2JhbC1zZWFyY2gge1xuICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIGdyaWQtcm93OiAxO1xuICAgIH1cbn0iLCJAbWl4aW4gc3dhdGNoZXMoJGNvbG9yczogKCkpIHtcbiAgQGVhY2ggJG5hbWUsICRzaGFkZXMgaW4gJGNvbG9ycyB7XG4gICAgQGVhY2ggJHNoYWRlLCAkdmFsdWUgaW4gJHNoYWRlcyB7XG4gICAgICAmLi1jb2xvci0tI3skbmFtZX0tLSN7JHNoYWRlfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnN0eWxlZ3VpZGVfX25hdiB7XG4gIGJhY2tncm91bmQtY29sb3I6IGRhcmtncmF5O1xuICBjb2xvcjogd2hpdGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIHVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICB9XG5cbiAgbGkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgYSB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IC4yNWVtIC41ZW07XG4gICAgfVxuICB9XG59XG5cbi5zZ19faXRlbSB7XG4gIG1hcmdpbi10b3A6IDJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMmVtO1xufVxuXG4uc2dfX2hlYWRpbmcge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgY29sb3I6IGdyYXk7XG4gIGZvbnQtZmFtaWx5OiAkb3BlblNhbnM7XG4gIGZvbnQtc2l6ZTogNzAlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiAyZW07XG4gIHBhZGRpbmc6IDFlbSAwO1xufVxuXG4uc2dfX2NvbG9yIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAuM2VtO1xuICB3aWR0aDogNWVtO1xuXG4gIC5zZ19fY29sb3JfX3N3YXRjaCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiA0ZW07XG4gICAgbWFyZ2luLWJvdHRvbTogLjJlbTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIHN3YXRjaGVzKCRjb2xvcnMpO1xuICB9XG5cbiAgLnNnX19jb2xvcl9fbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG59XG5cbi5zZ19faWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLnNnX190b2RvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAuMTVlbTtcbn1cblxuLy8gT3ZlcnJpZGVzXG5cbi5zdHlsZWd1aWRlIHtcbiAgLnNlY3Rpb24td3JhcHBlciB7XG4gICAgcGFkZGluZzogNWVtIDA7XG4gIH1cblxuICAuaGVyby4td2l0aC1pbWFnZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5sb2dvIHtcbiAgICAmLi1kaXNwbGF5LW9ubHkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICBwYWRkaW5nOiAxLjVlbTtcbiAgICAgIHdpZHRoOiAyMDVweDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gT2JqZWN0cyBtYXkgYmUgdXNlZCBpbiBhbnkgbnVtYmVyIG9mIHVucmVsYXRlZCBjb250ZXh0cyB0byB0aGUgb25lIHlvdSBjYW5cbi8vLyBjdXJyZW50bHkgc2VlIGl0IGluLiBNYWtpbmcgbW9kaWZpY2F0aW9ucyB0byB0aGVzZSB0eXBlcyBvZiBjbGFzcyBjb3VsZFxuLy8vIHBvdGVudGlhbGx5IGxlYWQgdG8gdW5pbnRlbmRlZCByZXN1bHRzIGluIGEgbG90IG9mIG90aGVyIHVucmVsYXRlZCBwbGFjZXMuXG4vLy8gVHJlYWQgY2FyZWZ1bGx5LlxuLy8vXG4vLy8gLSBPYmplY3RzIGFyZSBhYnN0cmFjdFxuLy8vIC0gVGhleSBjYW4gYmUgdXNlZCBpbiBhbnkgbnVtYmVyIG9mIHBsYWNlcyBhY3Jvc3MgdGhlIHByb2plY3Qg4oCUIHBsYWNlcyB5b3Vcbi8vLyAgIG1pZ2h0IG5vdCBoYXZlIGV2ZW4gc2VlblxuLy8vIC0gQXZvaWQgbW9kaWZ5aW5nIHRoZWlyIHN0eWxlc1xuLy8vIC0gQmUgY2FyZWZ1bCBhcm91bmQgYW55dGhpbmcgd2l0aCBhIGxvd2VyLWNhc2UgY2xhc3NuYW1lXG4vLy9cbi8vLyAjIyMgRm9ybWF0XG4vLy8gYC5vYmplY3QtbmFtZVs8ZWxlbWVudD58PG1vZGlmaWVyPl0ge31gXG4vLy9cbi8vLyAjIyMgRXhhbXBsZVxuLy8vIGBgYFxuLy8vIC5sYXlvdXQge31cbi8vLyAubGF5b3V0X19pdGVtIHt9XG4vLy8gLmxheW91dC0tZml4ZWQge31cbi8vLyBgYGBcbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbXBvcnQgJ2NvbnRhaW5lcic7XG5AaW1wb3J0ICdzZWN0aW9uLXdyYXBwZXInO1xuQGltcG9ydCBcInVwY29taW5nLWV2ZW50c1wiO1xuQGltcG9ydCBcImZiLWNvbW1lbnRzXCI7XG4iLCIuY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiBzZXR0aW5nKCdjb250YWluZXInLCAkZGVmYXVsdC1sYXlvdXQpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnY29udGFpbmVyJywgJGRlZmF1bHQtbGF5b3V0KSkge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuXG4gICAgJi4tZnVsbCB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgJi4tZ3JheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSwgeGxpZ2h0KTtcbiAgfVxufVxuIiwiLnNlY3Rpb24td3JhcHBlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBtYXJnaW4tYm90dG9tOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcbiAgbWFyZ2luLXRvcDogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG4gIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcbiAgfVxuXG4gIC8vQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgLy8gIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKSBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gIC8vfVxuXG4gIC5nbG9iYWwtaGVhZGVyICYge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKSBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nTWVkaXVtJylcbiAgICB9XG4gIH1cblxuICAmLi13aGl0ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIH1cblxuICAmLi1ncmF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICB9XG5cbiAgJi4tZ3JlZW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyZWVuKTtcbiAgfVxuXG4gICYuLWZsdXNoLWJvdHRvbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxuXG4gICYuLWZsdXNoLXRvcCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgfVxuXG4gICYuLWZsdXNoLWxlZnQge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gICYuLWZsdXNoLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgJi4tZmx1c2gtYWxsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuIiwiLnVwY29taW5nLWV2ZW50cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyZXksIHhsaWdodCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKSBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcbiAgbWFyZ2luOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKSAwO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJykgc2V0dGluZygnZ3V0dGVyUGFkZGluZycpO1xuICB9XG59XG5cbi51cGNvbWluZy1ldmVudHNfX2NvbnRyb2xzIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuXG4gIGkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogbGlnaHRlbihjb2xvcihncmF5KSwgMTAlKTtcbiAgICB9XG4gIH1cbn1cbiIsIi5mYi1jb21tZW50cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufSIsIiIsIkBtZWRpYSBwcmludCB7XG5cbiAgKiB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXG4gIH1cblxuICBhLFxuICBhOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5cbiAgcHJlLFxuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuXG4gIHRoZWFkIHsgLy8gaDVicC5jb20vdFxuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDtcbiAgfVxuXG4gIHRyLFxuICBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuXG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cblxuICBAcGFnZSB7XG4gICAgbWFyZ2luOiAuNWNtO1xuICB9XG5cbiAgcCxcbiAgaDIsXG4gIGgzIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMztcbiAgfVxuXG4gIGgyLFxuICBoMyB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gIH1cblxuICAvKipcbiAgICogQWRkIFNpdGUtc3BlY2lmaWMgc3R5bGVzIGJlbG93XG4gICAqL1xuXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQ0FBLDREQUE0RDtBQUU1RDs7OztHQUlHO0FBRUgsQUFBQSxJQUFJLENBQUM7RUFDSCxXQUFXLEVBQUUsVUFBVTtFQUFFLE9BQU87RUFDaEMsb0JBQW9CLEVBQUUsSUFBSTtFQUFFLE9BQU87RUFDbkMsd0JBQXdCLEVBQUUsSUFBSTtFQUFFLE9BQU8sRUFDeEM7O0FBRUQ7O0dBRUc7QUFFSCxBQUFBLElBQUksQ0FBQztFQUNILE1BQU0sRUFBRSxDQUFDLEdBQ1Y7O0FBRUQ7Z0ZBQ2dGO0FBRWhG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 */
