/**
 * ----------------------
 * Un.titled
 * Main - Global
 * ----------------------
 */
/**
 * Dependencies
 */
/*!
 * baguetteBox.js
 * @author  feimosi
 * @version %%INJECT_VERSION%%
 * @url https://github.com/feimosi/baguetteBox.js
 */
#baguetteBox-overlay {
  display: none;
  opacity: 0;
  position: fixed;
  overflow: hidden;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1000000;
  background-color: #222;
  background-color: rgba(0, 0, 0, 0.8);
  transition: opacity 0.5s ease;
}
#baguetteBox-overlay.visible {
  opacity: 1;
}
#baguetteBox-overlay .full-image {
  display: inline-block;
  position: relative;
  width: 100%;
  height: 100%;
  text-align: center;
}
#baguetteBox-overlay .full-image figure {
  display: inline;
  margin: 0;
  height: 100%;
}
#baguetteBox-overlay .full-image img {
  display: inline-block;
  width: auto;
  height: auto;
  max-height: 100%;
  max-width: 100%;
  vertical-align: middle;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
}
#baguetteBox-overlay .full-image figcaption {
  display: block;
  position: absolute;
  bottom: 0;
  width: 100%;
  text-align: center;
  line-height: 1.8;
  white-space: normal;
  color: #ccc;
  background-color: #000;
  background-color: rgba(0, 0, 0, 0.6);
  font-family: sans-serif;
}
#baguetteBox-overlay .full-image:before {
  content: "";
  display: inline-block;
  height: 50%;
  width: 1px;
  margin-right: -1px;
}

#baguetteBox-slider {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  white-space: nowrap;
  transition: left 0.4s ease, transform 0.4s ease;
}
#baguetteBox-slider.bounce-from-right {
  animation: bounceFromRight 0.4s ease-out;
}
#baguetteBox-slider.bounce-from-left {
  animation: bounceFromLeft 0.4s ease-out;
}

@keyframes bounceFromRight {
  0% {
    margin-left: 0;
  }
  50% {
    margin-left: -30px;
  }
  100% {
    margin-left: 0;
  }
}
@keyframes bounceFromLeft {
  0% {
    margin-left: 0;
  }
  50% {
    margin-left: 30px;
  }
  100% {
    margin-left: 0;
  }
}
.baguetteBox-button#previous-button, .baguetteBox-button#next-button {
  top: 50%;
  top: calc(50% - 30px);
  width: 44px;
  height: 60px;
}

.baguetteBox-button {
  position: absolute;
  cursor: pointer;
  outline: none;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 15%;
  background-color: #323232;
  background-color: rgba(50, 50, 50, 0.5);
  color: #ddd;
  font: 1.6em sans-serif;
  transition: background-color 0.4s ease;
}
.baguetteBox-button:focus, .baguetteBox-button:hover {
  background-color: rgba(50, 50, 50, 0.9);
}
.baguetteBox-button#next-button {
  right: 2%;
}
.baguetteBox-button#previous-button {
  left: 2%;
}
.baguetteBox-button#close-button {
  top: 20px;
  right: 2%;
  right: calc(2% + 6px);
  width: 30px;
  height: 30px;
}
.baguetteBox-button svg {
  position: absolute;
  left: 0;
  top: 0;
}

/*
    Preloader
    Borrowed from http://tobiasahlin.com/spinkit/
*/
.baguetteBox-spinner {
  width: 40px;
  height: 40px;
  display: inline-block;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -20px;
  margin-left: -20px;
}

.baguetteBox-double-bounce1,
.baguetteBox-double-bounce2 {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: #fff;
  opacity: 0.6;
  position: absolute;
  top: 0;
  left: 0;
  animation: bounce 2s infinite ease-in-out;
}

.baguetteBox-double-bounce2 {
  animation-delay: -1s;
}

@keyframes bounce {
  0%, 100% {
    transform: scale(0);
  }
  50% {
    transform: scale(1);
  }
}
/*! normalize.scss v0.1.0 | MIT License | based on 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;
}

:root {
  --reflex-columns: 12;
  --reflex-grid-spacing: 15px;
  --reflex-xs: 576px;
  --reflex-sm: 768px;
  --reflex-md: 992px;
  --reflex-lg: 1200px;
  --reflex-xlg: 1600px;
  --reflex-xxs-max: 575px;
  --reflex-xs-max: 767px;
  --reflex-sm-max: 991px;
  --reflex-md-max: 1199px;
  --reflex-lg-max: 1599px;
}

.container,
.container-full {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 30px;
  padding-left: 30px;
}
.container .grid,
.container-full .grid {
  margin-right: -15px;
  margin-left: -15px;
}

@media (min-width: 576px) {
  .container {
    max-width: 576px;
  }
}
@media (min-width: 768px) {
  .container {
    max-width: 768px;
  }
}
@media (min-width: 992px) {
  .container {
    max-width: 992px;
  }
}
@media (min-width: 1200px) {
  .container {
    max-width: 1200px;
  }
}
@media (min-width: 1600px) {
  .container {
    max-width: 1600px;
  }
}

.grid {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  display: block;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  padding: 0;
  margin: 0 auto;
  position: relative;
  letter-spacing: -0.31em;
  *letter-spacing: normal;
  word-spacing: -0.43em;
  list-style-type: none;
}
.grid::before, .grid::after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  letter-spacing: normal;
  word-spacing: normal;
  white-space: normal;
}

[class*=col-] {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  letter-spacing: normal;
  word-spacing: normal;
  white-space: normal;
  position: relative;
  width: 100%;
  vertical-align: top;
  padding: 15px;
  display: inline-block;
  *display: inline;
  zoom: 1;
}
[class*=col-]::before, [class*=col-]::after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  letter-spacing: normal;
  word-spacing: normal;
  white-space: normal;
}
[class*=col-] .grid {
  -ms-flex: 1 1 auto;
  -webkit-flex: 1 1 auto;
  flex: 1 1 auto;
  margin: -15px;
}

.col-12 {
  width: 100%;
  *width: 99.9%;
}

.col-11 {
  width: 91.6666666667%;
  *width: 91.5666666667%;
}

.col-10 {
  width: 83.3333333333%;
  *width: 83.2333333333%;
}

.col-9 {
  width: 75%;
  *width: 74.9%;
}

.col-8 {
  width: 66.6666666667%;
  *width: 66.5666666667%;
}

.col-7 {
  width: 58.3333333333%;
  *width: 58.2333333333%;
}

.col-6 {
  width: 50%;
  *width: 49.9%;
}

.col-5 {
  width: 41.6666666667%;
  *width: 41.5666666667%;
}

.col-4 {
  width: 33.3333333333%;
  *width: 33.2333333333%;
}

.col-3 {
  width: 25%;
  *width: 24.9%;
}

.col-2 {
  width: 16.6666666667%;
  *width: 16.5666666667%;
}

.col-1 {
  width: 8.3333333333%;
  *width: 8.2333333333%;
}

@media (min-width: 576px) {
  .col-xs-12 {
    width: 100%;
    *width: 99.9%;
  }
  .col-xs-11 {
    width: 91.6666666667%;
    *width: 91.5666666667%;
  }
  .col-xs-10 {
    width: 83.3333333333%;
    *width: 83.2333333333%;
  }
  .col-xs-9 {
    width: 75%;
    *width: 74.9%;
  }
  .col-xs-8 {
    width: 66.6666666667%;
    *width: 66.5666666667%;
  }
  .col-xs-7 {
    width: 58.3333333333%;
    *width: 58.2333333333%;
  }
  .col-xs-6 {
    width: 50%;
    *width: 49.9%;
  }
  .col-xs-5 {
    width: 41.6666666667%;
    *width: 41.5666666667%;
  }
  .col-xs-4 {
    width: 33.3333333333%;
    *width: 33.2333333333%;
  }
  .col-xs-3 {
    width: 25%;
    *width: 24.9%;
  }
  .col-xs-2 {
    width: 16.6666666667%;
    *width: 16.5666666667%;
  }
  .col-xs-1 {
    width: 8.3333333333%;
    *width: 8.2333333333%;
  }
}
@media (min-width: 768px) {
  .col-sm-12 {
    width: 100%;
    *width: 99.9%;
  }
  .col-sm-11 {
    width: 91.6666666667%;
    *width: 91.5666666667%;
  }
  .col-sm-10 {
    width: 83.3333333333%;
    *width: 83.2333333333%;
  }
  .col-sm-9 {
    width: 75%;
    *width: 74.9%;
  }
  .col-sm-8 {
    width: 66.6666666667%;
    *width: 66.5666666667%;
  }
  .col-sm-7 {
    width: 58.3333333333%;
    *width: 58.2333333333%;
  }
  .col-sm-6 {
    width: 50%;
    *width: 49.9%;
  }
  .col-sm-5 {
    width: 41.6666666667%;
    *width: 41.5666666667%;
  }
  .col-sm-4 {
    width: 33.3333333333%;
    *width: 33.2333333333%;
  }
  .col-sm-3 {
    width: 25%;
    *width: 24.9%;
  }
  .col-sm-2 {
    width: 16.6666666667%;
    *width: 16.5666666667%;
  }
  .col-sm-1 {
    width: 8.3333333333%;
    *width: 8.2333333333%;
  }
}
@media (min-width: 992px) {
  .col-md-12 {
    width: 100%;
    *width: 99.9%;
  }
  .col-md-11 {
    width: 91.6666666667%;
    *width: 91.5666666667%;
  }
  .col-md-10 {
    width: 83.3333333333%;
    *width: 83.2333333333%;
  }
  .col-md-9 {
    width: 75%;
    *width: 74.9%;
  }
  .col-md-8 {
    width: 66.6666666667%;
    *width: 66.5666666667%;
  }
  .col-md-7 {
    width: 58.3333333333%;
    *width: 58.2333333333%;
  }
  .col-md-6 {
    width: 50%;
    *width: 49.9%;
  }
  .col-md-5 {
    width: 41.6666666667%;
    *width: 41.5666666667%;
  }
  .col-md-4 {
    width: 33.3333333333%;
    *width: 33.2333333333%;
  }
  .col-md-3 {
    width: 25%;
    *width: 24.9%;
  }
  .col-md-2 {
    width: 16.6666666667%;
    *width: 16.5666666667%;
  }
  .col-md-1 {
    width: 8.3333333333%;
    *width: 8.2333333333%;
  }
}
@media (min-width: 1200px) {
  .col-lg-12 {
    width: 100%;
    *width: 99.9%;
  }
  .col-lg-11 {
    width: 91.6666666667%;
    *width: 91.5666666667%;
  }
  .col-lg-10 {
    width: 83.3333333333%;
    *width: 83.2333333333%;
  }
  .col-lg-9 {
    width: 75%;
    *width: 74.9%;
  }
  .col-lg-8 {
    width: 66.6666666667%;
    *width: 66.5666666667%;
  }
  .col-lg-7 {
    width: 58.3333333333%;
    *width: 58.2333333333%;
  }
  .col-lg-6 {
    width: 50%;
    *width: 49.9%;
  }
  .col-lg-5 {
    width: 41.6666666667%;
    *width: 41.5666666667%;
  }
  .col-lg-4 {
    width: 33.3333333333%;
    *width: 33.2333333333%;
  }
  .col-lg-3 {
    width: 25%;
    *width: 24.9%;
  }
  .col-lg-2 {
    width: 16.6666666667%;
    *width: 16.5666666667%;
  }
  .col-lg-1 {
    width: 8.3333333333%;
    *width: 8.2333333333%;
  }
}
@media (min-width: 1600px) {
  .col-xlg-12 {
    width: 100%;
    *width: 99.9%;
  }
  .col-xlg-11 {
    width: 91.6666666667%;
    *width: 91.5666666667%;
  }
  .col-xlg-10 {
    width: 83.3333333333%;
    *width: 83.2333333333%;
  }
  .col-xlg-9 {
    width: 75%;
    *width: 74.9%;
  }
  .col-xlg-8 {
    width: 66.6666666667%;
    *width: 66.5666666667%;
  }
  .col-xlg-7 {
    width: 58.3333333333%;
    *width: 58.2333333333%;
  }
  .col-xlg-6 {
    width: 50%;
    *width: 49.9%;
  }
  .col-xlg-5 {
    width: 41.6666666667%;
    *width: 41.5666666667%;
  }
  .col-xlg-4 {
    width: 33.3333333333%;
    *width: 33.2333333333%;
  }
  .col-xlg-3 {
    width: 25%;
    *width: 24.9%;
  }
  .col-xlg-2 {
    width: 16.6666666667%;
    *width: 16.5666666667%;
  }
  .col-xlg-1 {
    width: 8.3333333333%;
    *width: 8.2333333333%;
  }
}
.col-auto {
  -ms-flex: 1 0 0px;
  -webkit-flex: 1 0 0px;
  flex: 1 0 0px;
  width: auto;
}

@media (min-width: 576px) {
  .col-xs-auto {
    -ms-flex: 1 0 0px;
    -webkit-flex: 1 0 0px;
    flex: 1 0 0px;
    width: auto;
  }
}
@media (min-width: 768px) {
  .col-sm-auto {
    -ms-flex: 1 0 0px;
    -webkit-flex: 1 0 0px;
    flex: 1 0 0px;
    width: auto;
  }
}
@media (min-width: 992px) {
  .col-md-auto {
    -ms-flex: 1 0 0px;
    -webkit-flex: 1 0 0px;
    flex: 1 0 0px;
    width: auto;
  }
}
@media (min-width: 1200px) {
  .col-lg-auto {
    -ms-flex: 1 0 0px;
    -webkit-flex: 1 0 0px;
    flex: 1 0 0px;
    width: auto;
  }
}
@media (min-width: 1600px) {
  .col-xlg-auto {
    -ms-flex: 1 0 0px;
    -webkit-flex: 1 0 0px;
    flex: 1 0 0px;
    width: auto;
  }
}
.order-12 {
  -ms-flex-order: 12;
  -webkit-order: 12;
  order: 12;
}

.order-11 {
  -ms-flex-order: 11;
  -webkit-order: 11;
  order: 11;
}

.order-10 {
  -ms-flex-order: 10;
  -webkit-order: 10;
  order: 10;
}

.order-9 {
  -ms-flex-order: 9;
  -webkit-order: 9;
  order: 9;
}

.order-8 {
  -ms-flex-order: 8;
  -webkit-order: 8;
  order: 8;
}

.order-7 {
  -ms-flex-order: 7;
  -webkit-order: 7;
  order: 7;
}

.order-6 {
  -ms-flex-order: 6;
  -webkit-order: 6;
  order: 6;
}

.order-5 {
  -ms-flex-order: 5;
  -webkit-order: 5;
  order: 5;
}

.order-4 {
  -ms-flex-order: 4;
  -webkit-order: 4;
  order: 4;
}

.order-3 {
  -ms-flex-order: 3;
  -webkit-order: 3;
  order: 3;
}

.order-2 {
  -ms-flex-order: 2;
  -webkit-order: 2;
  order: 2;
}

.order-1 {
  -ms-flex-order: 1;
  -webkit-order: 1;
  order: 1;
}

.order-0 {
  -ms-flex-order: 0;
  -webkit-order: 0;
  order: 0;
}

@media (min-width: 576px) {
  .order-xs-12 {
    -ms-flex-order: 12;
    -webkit-order: 12;
    order: 12;
  }
  .order-xs-11 {
    -ms-flex-order: 11;
    -webkit-order: 11;
    order: 11;
  }
  .order-xs-10 {
    -ms-flex-order: 10;
    -webkit-order: 10;
    order: 10;
  }
  .order-xs-9 {
    -ms-flex-order: 9;
    -webkit-order: 9;
    order: 9;
  }
  .order-xs-8 {
    -ms-flex-order: 8;
    -webkit-order: 8;
    order: 8;
  }
  .order-xs-7 {
    -ms-flex-order: 7;
    -webkit-order: 7;
    order: 7;
  }
  .order-xs-6 {
    -ms-flex-order: 6;
    -webkit-order: 6;
    order: 6;
  }
  .order-xs-5 {
    -ms-flex-order: 5;
    -webkit-order: 5;
    order: 5;
  }
  .order-xs-4 {
    -ms-flex-order: 4;
    -webkit-order: 4;
    order: 4;
  }
  .order-xs-3 {
    -ms-flex-order: 3;
    -webkit-order: 3;
    order: 3;
  }
  .order-xs-2 {
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }
  .order-xs-1 {
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
  }
  .order-xs-0 {
    -ms-flex-order: 0;
    -webkit-order: 0;
    order: 0;
  }
}
@media (min-width: 768px) {
  .order-sm-12 {
    -ms-flex-order: 12;
    -webkit-order: 12;
    order: 12;
  }
  .order-sm-11 {
    -ms-flex-order: 11;
    -webkit-order: 11;
    order: 11;
  }
  .order-sm-10 {
    -ms-flex-order: 10;
    -webkit-order: 10;
    order: 10;
  }
  .order-sm-9 {
    -ms-flex-order: 9;
    -webkit-order: 9;
    order: 9;
  }
  .order-sm-8 {
    -ms-flex-order: 8;
    -webkit-order: 8;
    order: 8;
  }
  .order-sm-7 {
    -ms-flex-order: 7;
    -webkit-order: 7;
    order: 7;
  }
  .order-sm-6 {
    -ms-flex-order: 6;
    -webkit-order: 6;
    order: 6;
  }
  .order-sm-5 {
    -ms-flex-order: 5;
    -webkit-order: 5;
    order: 5;
  }
  .order-sm-4 {
    -ms-flex-order: 4;
    -webkit-order: 4;
    order: 4;
  }
  .order-sm-3 {
    -ms-flex-order: 3;
    -webkit-order: 3;
    order: 3;
  }
  .order-sm-2 {
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }
  .order-sm-1 {
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
  }
  .order-sm-0 {
    -ms-flex-order: 0;
    -webkit-order: 0;
    order: 0;
  }
}
@media (min-width: 992px) {
  .order-md-12 {
    -ms-flex-order: 12;
    -webkit-order: 12;
    order: 12;
  }
  .order-md-11 {
    -ms-flex-order: 11;
    -webkit-order: 11;
    order: 11;
  }
  .order-md-10 {
    -ms-flex-order: 10;
    -webkit-order: 10;
    order: 10;
  }
  .order-md-9 {
    -ms-flex-order: 9;
    -webkit-order: 9;
    order: 9;
  }
  .order-md-8 {
    -ms-flex-order: 8;
    -webkit-order: 8;
    order: 8;
  }
  .order-md-7 {
    -ms-flex-order: 7;
    -webkit-order: 7;
    order: 7;
  }
  .order-md-6 {
    -ms-flex-order: 6;
    -webkit-order: 6;
    order: 6;
  }
  .order-md-5 {
    -ms-flex-order: 5;
    -webkit-order: 5;
    order: 5;
  }
  .order-md-4 {
    -ms-flex-order: 4;
    -webkit-order: 4;
    order: 4;
  }
  .order-md-3 {
    -ms-flex-order: 3;
    -webkit-order: 3;
    order: 3;
  }
  .order-md-2 {
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }
  .order-md-1 {
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
  }
  .order-md-0 {
    -ms-flex-order: 0;
    -webkit-order: 0;
    order: 0;
  }
}
@media (min-width: 1200px) {
  .order-lg-12 {
    -ms-flex-order: 12;
    -webkit-order: 12;
    order: 12;
  }
  .order-lg-11 {
    -ms-flex-order: 11;
    -webkit-order: 11;
    order: 11;
  }
  .order-lg-10 {
    -ms-flex-order: 10;
    -webkit-order: 10;
    order: 10;
  }
  .order-lg-9 {
    -ms-flex-order: 9;
    -webkit-order: 9;
    order: 9;
  }
  .order-lg-8 {
    -ms-flex-order: 8;
    -webkit-order: 8;
    order: 8;
  }
  .order-lg-7 {
    -ms-flex-order: 7;
    -webkit-order: 7;
    order: 7;
  }
  .order-lg-6 {
    -ms-flex-order: 6;
    -webkit-order: 6;
    order: 6;
  }
  .order-lg-5 {
    -ms-flex-order: 5;
    -webkit-order: 5;
    order: 5;
  }
  .order-lg-4 {
    -ms-flex-order: 4;
    -webkit-order: 4;
    order: 4;
  }
  .order-lg-3 {
    -ms-flex-order: 3;
    -webkit-order: 3;
    order: 3;
  }
  .order-lg-2 {
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }
  .order-lg-1 {
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
  }
  .order-lg-0 {
    -ms-flex-order: 0;
    -webkit-order: 0;
    order: 0;
  }
}
@media (min-width: 1600px) {
  .order-xlg-12 {
    -ms-flex-order: 12;
    -webkit-order: 12;
    order: 12;
  }
  .order-xlg-11 {
    -ms-flex-order: 11;
    -webkit-order: 11;
    order: 11;
  }
  .order-xlg-10 {
    -ms-flex-order: 10;
    -webkit-order: 10;
    order: 10;
  }
  .order-xlg-9 {
    -ms-flex-order: 9;
    -webkit-order: 9;
    order: 9;
  }
  .order-xlg-8 {
    -ms-flex-order: 8;
    -webkit-order: 8;
    order: 8;
  }
  .order-xlg-7 {
    -ms-flex-order: 7;
    -webkit-order: 7;
    order: 7;
  }
  .order-xlg-6 {
    -ms-flex-order: 6;
    -webkit-order: 6;
    order: 6;
  }
  .order-xlg-5 {
    -ms-flex-order: 5;
    -webkit-order: 5;
    order: 5;
  }
  .order-xlg-4 {
    -ms-flex-order: 4;
    -webkit-order: 4;
    order: 4;
  }
  .order-xlg-3 {
    -ms-flex-order: 3;
    -webkit-order: 3;
    order: 3;
  }
  .order-xlg-2 {
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }
  .order-xlg-1 {
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
  }
  .order-xlg-0 {
    -ms-flex-order: 0;
    -webkit-order: 0;
    order: 0;
  }
}
.offset-11 {
  margin-left: 91.6666666667%;
  *margin-left: 91.5666666667%;
}

.offset-10 {
  margin-left: 83.3333333333%;
  *margin-left: 83.2333333333%;
}

.offset-9 {
  margin-left: 75%;
  *margin-left: 74.9%;
}

.offset-8 {
  margin-left: 66.6666666667%;
  *margin-left: 66.5666666667%;
}

.offset-7 {
  margin-left: 58.3333333333%;
  *margin-left: 58.2333333333%;
}

.offset-6 {
  margin-left: 50%;
  *margin-left: 49.9%;
}

.offset-5 {
  margin-left: 41.6666666667%;
  *margin-left: 41.5666666667%;
}

.offset-4 {
  margin-left: 33.3333333333%;
  *margin-left: 33.2333333333%;
}

.offset-3 {
  margin-left: 25%;
  *margin-left: 24.9%;
}

.offset-2 {
  margin-left: 16.6666666667%;
  *margin-left: 16.5666666667%;
}

.offset-1 {
  margin-left: 8.3333333333%;
  *margin-left: 8.2333333333%;
}

@media (min-width: 576px) {
  .offset-xs-11 {
    margin-left: 91.6666666667%;
    *margin-left: 91.5666666667%;
  }
  .offset-xs-10 {
    margin-left: 83.3333333333%;
    *margin-left: 83.2333333333%;
  }
  .offset-xs-9 {
    margin-left: 75%;
    *margin-left: 74.9%;
  }
  .offset-xs-8 {
    margin-left: 66.6666666667%;
    *margin-left: 66.5666666667%;
  }
  .offset-xs-7 {
    margin-left: 58.3333333333%;
    *margin-left: 58.2333333333%;
  }
  .offset-xs-6 {
    margin-left: 50%;
    *margin-left: 49.9%;
  }
  .offset-xs-5 {
    margin-left: 41.6666666667%;
    *margin-left: 41.5666666667%;
  }
  .offset-xs-4 {
    margin-left: 33.3333333333%;
    *margin-left: 33.2333333333%;
  }
  .offset-xs-3 {
    margin-left: 25%;
    *margin-left: 24.9%;
  }
  .offset-xs-2 {
    margin-left: 16.6666666667%;
    *margin-left: 16.5666666667%;
  }
  .offset-xs-1 {
    margin-left: 8.3333333333%;
    *margin-left: 8.2333333333%;
  }
  .offset-xs-0 {
    margin-left: 0;
    *margin-left: -0.1%;
  }
}
@media (min-width: 768px) {
  .offset-sm-11 {
    margin-left: 91.6666666667%;
    *margin-left: 91.5666666667%;
  }
  .offset-sm-10 {
    margin-left: 83.3333333333%;
    *margin-left: 83.2333333333%;
  }
  .offset-sm-9 {
    margin-left: 75%;
    *margin-left: 74.9%;
  }
  .offset-sm-8 {
    margin-left: 66.6666666667%;
    *margin-left: 66.5666666667%;
  }
  .offset-sm-7 {
    margin-left: 58.3333333333%;
    *margin-left: 58.2333333333%;
  }
  .offset-sm-6 {
    margin-left: 50%;
    *margin-left: 49.9%;
  }
  .offset-sm-5 {
    margin-left: 41.6666666667%;
    *margin-left: 41.5666666667%;
  }
  .offset-sm-4 {
    margin-left: 33.3333333333%;
    *margin-left: 33.2333333333%;
  }
  .offset-sm-3 {
    margin-left: 25%;
    *margin-left: 24.9%;
  }
  .offset-sm-2 {
    margin-left: 16.6666666667%;
    *margin-left: 16.5666666667%;
  }
  .offset-sm-1 {
    margin-left: 8.3333333333%;
    *margin-left: 8.2333333333%;
  }
  .offset-sm-0 {
    margin-left: 0;
    *margin-left: -0.1%;
  }
}
@media (min-width: 992px) {
  .offset-md-11 {
    margin-left: 91.6666666667%;
    *margin-left: 91.5666666667%;
  }
  .offset-md-10 {
    margin-left: 83.3333333333%;
    *margin-left: 83.2333333333%;
  }
  .offset-md-9 {
    margin-left: 75%;
    *margin-left: 74.9%;
  }
  .offset-md-8 {
    margin-left: 66.6666666667%;
    *margin-left: 66.5666666667%;
  }
  .offset-md-7 {
    margin-left: 58.3333333333%;
    *margin-left: 58.2333333333%;
  }
  .offset-md-6 {
    margin-left: 50%;
    *margin-left: 49.9%;
  }
  .offset-md-5 {
    margin-left: 41.6666666667%;
    *margin-left: 41.5666666667%;
  }
  .offset-md-4 {
    margin-left: 33.3333333333%;
    *margin-left: 33.2333333333%;
  }
  .offset-md-3 {
    margin-left: 25%;
    *margin-left: 24.9%;
  }
  .offset-md-2 {
    margin-left: 16.6666666667%;
    *margin-left: 16.5666666667%;
  }
  .offset-md-1 {
    margin-left: 8.3333333333%;
    *margin-left: 8.2333333333%;
  }
  .offset-md-0 {
    margin-left: 0;
    *margin-left: -0.1%;
  }
}
@media (min-width: 1200px) {
  .offset-lg-11 {
    margin-left: 91.6666666667%;
    *margin-left: 91.5666666667%;
  }
  .offset-lg-10 {
    margin-left: 83.3333333333%;
    *margin-left: 83.2333333333%;
  }
  .offset-lg-9 {
    margin-left: 75%;
    *margin-left: 74.9%;
  }
  .offset-lg-8 {
    margin-left: 66.6666666667%;
    *margin-left: 66.5666666667%;
  }
  .offset-lg-7 {
    margin-left: 58.3333333333%;
    *margin-left: 58.2333333333%;
  }
  .offset-lg-6 {
    margin-left: 50%;
    *margin-left: 49.9%;
  }
  .offset-lg-5 {
    margin-left: 41.6666666667%;
    *margin-left: 41.5666666667%;
  }
  .offset-lg-4 {
    margin-left: 33.3333333333%;
    *margin-left: 33.2333333333%;
  }
  .offset-lg-3 {
    margin-left: 25%;
    *margin-left: 24.9%;
  }
  .offset-lg-2 {
    margin-left: 16.6666666667%;
    *margin-left: 16.5666666667%;
  }
  .offset-lg-1 {
    margin-left: 8.3333333333%;
    *margin-left: 8.2333333333%;
  }
  .offset-lg-0 {
    margin-left: 0;
    *margin-left: -0.1%;
  }
}
@media (min-width: 1600px) {
  .offset-xlg-11 {
    margin-left: 91.6666666667%;
    *margin-left: 91.5666666667%;
  }
  .offset-xlg-10 {
    margin-left: 83.3333333333%;
    *margin-left: 83.2333333333%;
  }
  .offset-xlg-9 {
    margin-left: 75%;
    *margin-left: 74.9%;
  }
  .offset-xlg-8 {
    margin-left: 66.6666666667%;
    *margin-left: 66.5666666667%;
  }
  .offset-xlg-7 {
    margin-left: 58.3333333333%;
    *margin-left: 58.2333333333%;
  }
  .offset-xlg-6 {
    margin-left: 50%;
    *margin-left: 49.9%;
  }
  .offset-xlg-5 {
    margin-left: 41.6666666667%;
    *margin-left: 41.5666666667%;
  }
  .offset-xlg-4 {
    margin-left: 33.3333333333%;
    *margin-left: 33.2333333333%;
  }
  .offset-xlg-3 {
    margin-left: 25%;
    *margin-left: 24.9%;
  }
  .offset-xlg-2 {
    margin-left: 16.6666666667%;
    *margin-left: 16.5666666667%;
  }
  .offset-xlg-1 {
    margin-left: 8.3333333333%;
    *margin-left: 8.2333333333%;
  }
  .offset-xlg-0 {
    margin-left: 0;
    *margin-left: -0.1%;
  }
}
.wrap {
  -ms-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

.no-wrap {
  -ms-flex-wrap: nowrap;
  -webkit-flex-wrap: nowrap;
  flex-wrap: nowrap;
}
.no-wrap [class*=col-] {
  -ms-flex-negative: 1;
  -webkit-flex-shrink: 1;
  flex-shrink: 1;
}

.wrap-reverse {
  -ms-flex-wrap: wrap-reverse;
  -webkit-flex-wrap: wrap-reverse;
  flex-wrap: wrap-reverse;
}

.direction-row {
  -ms-flex-direction: row;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.direction-row-reverse {
  -ms-flex-direction: row-reverse;
  -webkit-flex-direction: row-reverse;
  flex-direction: row-reverse;
}

.direction-column {
  -ms-flex-direction: column;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.direction-column-reverse {
  -ms-flex-direction: column-reverse;
  -webkit-flex-direction: column-reverse;
  flex-direction: column-reverse;
}

.align-start {
  -ms-flex-align: start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
}

.align-end {
  -ms-flex-align: end;
  -webkit-align-items: flex-end;
  align-items: flex-end;
}
.align-end [class*=col-] {
  vertical-align: bottom;
}

.align-center {
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
}
.align-center [class*=col-] {
  vertical-align: middle;
}

.align-baseline {
  -ms-flex-align: baseline;
  -webkit-align-items: baseline;
  align-items: baseline;
}

.align-content-start {
  -ms-flex-line-pack: start;
  -webkit-align-content: flex-start;
  align-content: flex-start;
}

.align-content-end {
  -ms-flex-line-pack: end;
  -webkit-align-content: flex-end;
  align-content: flex-end;
}
.align-content-end [class*=col-] {
  vertical-align: bottom;
}

.align-content-center {
  -ms-flex-line-pack: center;
  -webkit-align-content: center;
  align-content: center;
}

.align-content-space-between {
  -ms-flex-line-pack: justify;
  -webkit-align-content: space-between;
  align-content: space-between;
}

.align-content-space-around {
  -ms-flex-line-pack: distribute;
  -webkit-align-content: space-around;
  align-content: space-around;
}

.align-self-stretch {
  -ms-flex-item-align: stretch;
  -webkit-align-self: stretch;
  align-self: stretch;
}

.align-self-start {
  -ms-flex-item-align: start;
  -webkit-align-self: flex-start;
  align-self: flex-start;
}

.align-self-end {
  -ms-flex-item-align: end;
  -webkit-align-self: flex-end;
  align-self: flex-end;
  vertical-align: bottom;
}

.align-self-center {
  -ms-flex-item-align: center;
  -webkit-align-self: center;
  align-self: center;
  vertical-align: middle;
}

.align-self-baseline {
  -ms-flex-item-align: baseline;
  -webkit-align-self: baseline;
  align-self: baseline;
  vertical-align: baseline;
}

.justify-start {
  -ms-flex-pack: start;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
}
.justify-start.grid {
  text-align: left;
}

.justify-end {
  -ms-flex-pack: end;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}
.justify-end.grid {
  text-align: right;
  -moz-text-align-last: right;
  text-align-last: right;
}
.justify-end.grid [class*=col-] {
  text-align: left;
  text-align: start;
  -moz-text-align-last: left;
  -moz-text-align-last: start;
  text-align-last: left;
  text-align-last: start;
}

.justify-center {
  -ms-flex-pack: center;
  -webkit-justify-content: center;
  justify-content: center;
}
.justify-center.grid {
  text-align: center;
  -moz-text-align-last: center;
  text-align-last: center;
}
.justify-center.grid [class*=col-] {
  text-align: left;
  text-align: start;
  -moz-text-align-last: left;
  -moz-text-align-last: start;
  text-align-last: left;
  text-align-last: start;
}

.justify-space-between {
  -ms-flex-pack: justify;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}
.justify-space-between.grid {
  text-align: justify;
  -moz-text-align-last: justify;
  text-align-last: justify;
}
.justify-space-between.grid [class*=col-] {
  text-align: left;
  text-align: start;
  -moz-text-align-last: left;
  -moz-text-align-last: start;
  text-align-last: left;
  text-align-last: start;
}

.justify-space-around {
  -ms-flex-pack: distribute;
  -webkit-justify-content: space-around;
  justify-content: space-around;
}
.justify-space-around.grid {
  text-align: justify;
  -moz-text-align-last: justify;
  text-align-last: justify;
}
.justify-space-around.grid [class*=col-] {
  text-align: left;
  text-align: start;
  -moz-text-align-last: left;
  -moz-text-align-last: start;
  text-align-last: left;
  text-align-last: start;
}

.grid-bleed [class*=col-] {
  padding: 0;
}

.col-grid {
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-direction: column;
  -webkit-flex-direction: column;
  flex-direction: column;
}
.col-grid.direction-row {
  -ms-flex-direction: row;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.col-bleed {
  padding: 0;
}

.col-bleed-x {
  padding: 15px 0;
}

.col-bleed-y {
  padding: 0 15px;
}

.flex-img {
  display: block;
  -ms-flex: 0 0 auto;
  -webkit-flex: 0 0 auto;
  flex: 0 0 auto;
  max-width: 100%;
  height: auto;
  width: 100%;
  *width: auto;
}

.flex-footer {
  width: 100%;
  margin-top: auto;
  margin-bottom: 0;
}
.flex-footer > :last-child {
  margin-bottom: 0;
}

@media (min-width: 0px) and (max-width: 575px) {
  .hidden-xxs {
    display: none;
  }
}

@media (min-width: 576px) {
  .hidden-xs-up {
    display: none;
  }
}

@media (max-width: 767px) {
  .hidden-xs-down {
    display: none;
  }
}

@media (min-width: 576px) and (max-width: 767px) {
  .hidden-xs {
    display: none;
  }
}

@media (min-width: 768px) {
  .hidden-sm-up {
    display: none;
  }
}

@media (max-width: 991px) {
  .hidden-sm-down {
    display: none;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .hidden-sm {
    display: none;
  }
}

@media (min-width: 992px) {
  .hidden-md-up {
    display: none;
  }
}

@media (max-width: 1199px) {
  .hidden-md-down {
    display: none;
  }
}

@media (min-width: 992px) and (max-width: 1199px) {
  .hidden-md {
    display: none;
  }
}

@media (min-width: 1200px) {
  .hidden-lg-up {
    display: none;
  }
}

@media (max-width: 1599px) {
  .hidden-lg-down {
    display: none;
  }
}

@media (min-width: 1200px) and (max-width: 1599px) {
  .hidden-lg {
    display: none;
  }
}

@media (min-width: 1600px) {
  .hidden-xlg {
    display: none;
  }
}

/**
 * Config
 */
/**
 * ----------------------
 * Un.titled
 * Config - Fonts
 * ----------------------
 */
@font-face {
  font-family: "open_sansbold";
  src: url("../font/opensans-bold-webfont.woff2") format("woff2"), url("../font/opensans-bold-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "open_sansregular";
  src: url("../font/opensans-regular-webfont.woff2") format("woff2"), url("../font/opensans-regular-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}
/**
 * ----------------------
 * Un.titled
 * Config - Vars
 * ----------------------
 */
:root {
  --c-primary: #1f1d1e;
  --c-secondary: #ffb7a3;
  --c-white: #ffffff;
  --c-black: #000000;
  --c-grey: #F9F9F9;
  --c-text: #1f1d1e;
  --c-bg: #fff;
  --c-pompeii: #862633;
  --c-m_red: #af1e2d;
  --c-b_red: #bf2e00;
  --c-stone: transparentize(#445a3e, 0.9);
  --c-blue: #56abb0;
  --c-s_blue: #004f71;
  --c-green: #445a3e;
  --c-slate: #625754;
  --c-exhibition: #006400;
  --c-talks: #7A007A;
  --c-tours: #444444;
  --c-evening: #445a3e;
  --c-families: #17597E;
  --c-workshops: #008080;
  --c-offsite-touring: #b68cc1;
  --c-soane-lates: #862633;
  --c-course: #DF3600;
  --font-oslo: "open_sansregular", -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  --font-body: "open_sansregular", -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  --font-bold: "open_sansbold", -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  --font-title: "open_sansbold", -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  --font-title-reg: "open_sansregular", -apple-system, BlinkMacSystemFont,
    "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue",
    sans-serif;
  --font-title: "open_sansbold", -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  --fontSize: 100%;
  --fontSmall: 70%;
  --lineHeight: 1.5;
  --bump: 30px;
  --baseUnit: 8px;
  --fontSizeBody: 18px;
  --lineHeightBody: 27px;
  --containerWidth: 100rem;
  --containerWidth: 1245px;
  --easing: cubic-bezier(0.83, 0, 0.17, 1);
  --transition: 0.3s var(--easing);
}

/**
 * Breakpoints
 */
/**
 * Helpers
 */
/**
 * ----------------------
 * Un.titled
 * Helpers - Focus Visible
 * ----------------------
 */
/**
 * Focus Visible
 * https://github.com/WICG/focus-visible
 * Override base focus styles for mouse and touch interactions
 */
/**
 * ----------------------
 * Un.titled
 * Helpers - Font Smoothing
 * ----------------------
 */
/** 
 * Font Smoothing
 * Enables font smoothing for capable browsers.
 * Optionally force font-smoothing on non-retina devices.
 * @param {boolean} $force [false]
 * @return {string}
 */
/**
 * ----------------------
 * Un.titled
 * Helpers - Global mixins
 * ----------------------
 */
@keyframes shakeHorizontal {
  10%, 90% {
    transform: translate3d(-1px, 0, 0);
  }
  20%, 80% {
    transform: translate3d(2px, 0, 0);
  }
  30%, 50%, 70% {
    transform: translate3d(-1px, 0, 0);
  }
  40%, 60% {
    transform: translate3d(2px, 0, 0);
  }
}
@keyframes shakeVertical {
  10%, 90% {
    transform: translate3d(0, -1px, 0);
  }
  20%, 80% {
    transform: translate3d(0, 2px, 0);
  }
  30%, 50%, 70% {
    transform: translate3d(0, -1px, 0);
  }
  40%, 60% {
    transform: translate3d(0, 2px, 0);
  }
}
/**
 * ----------------------
 * Un.titled
 * Helpers - Table
 * ----------------------
 */
/**
 * Responsive Table
 * Creates a responsive table
 * Accepts a list of headers to replace main 
 * table headers on mobile.
 * @param {map} $headers
 * @return {string}
 */
body.baguetteBox-open #baguetteBox-overlay .full-image {
  display: inline-flex;
  justify-content: center;
  align-items: center;
}
body.baguetteBox-open #baguetteBox-overlay .full-image figure {
  height: auto;
  display: inline-block;
  position: relative;
}
body.baguetteBox-open #baguetteBox-overlay .full-image figcaption {
  top: auto;
  background-color: rgba(255, 255, 255, 0.7);
  color: var(--c-text);
  width: 100%;
}
body.baguetteBox-open #baguetteBox-overlay .full-image figcaption:before {
  content: "i";
  position: relative;
  color: var(--c-white);
  z-index: 4;
  cursor: help !important;
  height: 19px;
  width: 19px;
  border: 0;
  padding: 0;
  border-radius: 50%;
  background-color: var(--c-black);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-content: center;
  font-size: 15px;
  margin: 0 10px 0 0;
}

/* Arrows */
.slick-prev,
.slick-next {
  font-size: 0;
  line-height: 0;
  cursor: pointer;
  color: transparent;
  border: none;
  outline: none;
  z-index: 1;
  position: absolute;
  top: 50%;
  transform: translate(0, -50%);
}
.m-entity__quote-with-image .slick-prev,
.m-entity__quote-with-image .slick-next {
  width: 32px;
  height: 32px;
  padding: 0;
  box-shadow: 0 2px 10px 2px rgba(31, 29, 30, 0.05);
  background-color: var(--c-white);
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (max-width: 767px) {
  .m-entity__quote-with-image .slick-prev,
  .m-entity__quote-with-image .slick-next {
    bottom: 0;
    top: 100%;
    width: 36px;
    height: 36px;
  }
}
.m-entity__quote-with-image .slick-prev:before,
.m-entity__quote-with-image .slick-next:before {
  opacity: 0.75;
  height: 56px;
  width: 56px;
}
.m-banner--carousel .slick-prev,
.m-banner--carousel .slick-next {
  background: transparent;
}
.slick-prev:before,
.slick-next:before {
  display: flex;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  background-color: transparent;
}
.slick-prev:hover, .slick-prev:focus, .slick-prev:hover, .slick-prev:focus,
.slick-next:hover,
.slick-next:focus,
.slick-next:hover,
.slick-next:focus {
  color: transparent;
  outline: none;
  background: transparent;
}
.slick-prev:hover:before, .slick-prev:focus:before, .slick-prev:hover:before, .slick-prev:focus:before,
.slick-next:hover:before,
.slick-next:focus:before,
.slick-next:hover:before,
.slick-next:focus:before {
  opacity: 1;
}
.slick-prev:focus,
.slick-next:focus {
  outline: 3px dashed var(--c-black);
}
.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before {
  opacity: 0.25;
}

.m-entity__quote-with-image .slick-prev {
  left: -70px;
}
@media (max-width: 767px) {
  .m-entity__quote-with-image .slick-prev {
    left: 0;
  }
}
.m-entity__quote-with-image .slick-prev:before {
  content: "";
  background-image: url("../img/left-control.png");
}
.m-banner--carousel .slick-prev {
  left: var(--bump);
}
@media (max-width: 767px) {
  .m-banner--carousel .slick-prev {
    left: calc(var(--bump) / 3);
  }
}
.m-banner--carousel .slick-prev:before {
  content: "";
  background-image: url("../img/left-chevron.svg");
  width: 17px;
  height: 30px;
}
.m-banner--carousel .slick-prev:after {
  content: "";
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
  transform: translate(-7.5%, -15%);
  background-color: black;
  height: 150%;
  width: 110%;
  z-index: -1;
  opacity: 0.7;
  border-radius: 10%;
  filter: blur(17.5px);
}

.m-entity__quote-with-image .slick-next {
  right: -70px;
}
@media (max-width: 767px) {
  .m-entity__quote-with-image .slick-next {
    right: 0;
  }
}
.m-entity__quote-with-image .slick-next:before {
  content: "";
  background-image: url("../img/right-control.png");
}
.m-banner--carousel .slick-next {
  right: var(--bump);
}
@media (max-width: 767px) {
  .m-banner--carousel .slick-next {
    right: calc(var(--bump) / 3);
  }
}
.m-banner--carousel .slick-next:before {
  content: "";
  background-image: url("../img/right-chevron.svg");
  width: 17px;
  height: 30px;
}
.m-banner--carousel .slick-next:after {
  content: "";
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
  transform: translate(-7.5%, -15%);
  background-color: black;
  height: 150%;
  width: 110%;
  z-index: -1;
  opacity: 0.7;
  border-radius: 10%;
  filter: blur(17.5px);
}

/* Dots */
.slick-dotted.slick-slider {
  margin-bottom: 30px;
}

.slick-dots {
  display: flex;
  justify-content: center;
  gap: calc(var(--bump) / 6);
  width: 100%;
  margin: 0;
  list-style: none;
  text-align: center;
}
.slick-dots li {
  position: relative;
  margin: calc(var(--bump) / 2) 0;
  padding: 0;
  cursor: pointer;
}
.slick-dots li button {
  font-size: 0;
  line-height: 0;
  padding: 0;
  margin: 0;
  cursor: pointer;
  color: transparent;
  border: 0;
  outline: none;
  background: transparent;
  display: flex;
  align-content: center;
}
.slick-dots li button:before {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  opacity: 0.1;
  border-radius: 25px;
  text-align: center;
  background: var(--c-black);
}
.slick-dots li button:hover, .slick-dots li button:focus {
  outline: none;
}
.slick-dots li button:hover:before, .slick-dots li button:focus:before {
  opacity: 1;
}
.slick-dots li.slick-active > button:before {
  opacity: 0.5;
}

/**
 * Base
 */
/**
 * ----------------------
 * Un.titled
 * Base - Defaults
 * ----------------------
 */
.grid {
  max-width: var(--containerWidth);
}

.container-full > .grid {
  max-width: none;
}

ul.menu,
ul.plain {
  list-style: none;
  margin: 0;
  padding: 0;
}
ul.menu li,
ul.plain li {
  list-style: none;
  margin: 0;
  padding: 0;
}

img {
  backface-visibility: hidden;
  transition: var(--transition);
}
img.lazy {
  opacity: 0;
}
@media not all and (-webkit-min-device-pixel-ratio: 0), not all and (min-resolution: 0.001dpcm) {
  @supports (-webkit-appearance: none) {
    img.lazy {
      opacity: 1;
    }
  }
}
img.loaded {
  opacity: 1;
}

.svg {
  transition: all var(--transition);
}

.hidden {
  display: none !important;
  visibility: hidden !important;
}

.video-container,
.media-vimeo-video {
  position: relative;
  padding-bottom: 56.25%;
  padding-top: 25px;
  height: 0;
}
.video-container iframe,
.media-vimeo-video iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.ct__page .o-header {
  position: relative;
  color: var(--c-black);
}
.ct__page .o-header .a-nav-toggle__wrapper:before,
.ct__page .o-header .o-header__logo:before {
  display: none;
}
@media (max-width: 575px) {
  .ct__page .o-header {
    color: var(--c-white);
  }
}

.ct__homepage .o-homepage section.m-entity__text-block .m-entity__text__title,
.ct__homepage .o-homepage section.m-entity__text-block .m-entity__text-block__body-text {
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
}

body.member header.o-header {
  position: relative;
}

.screen-readers {
  text-align: left;
  text-indent: -9999px;
  display: block;
  height: 0;
}

.sliding-popup-bottom .eu-cookie-withdraw-tab {
  left: 2px;
  transform: none;
  top: auto;
  bottom: 100%;
}

/**
 * ----------------------
 * Un.titled
 * Base - Typography
 * ----------------------
 */
/**
 * Config
 */
/**
 * Heading
 */
h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  margin-top: 0;
  font-family: var(--font-title);
  font-weight: bold;
  color: var(--c-pompeii);
}

h1,
.h1 {
  font-size: clamp(34px, 5vw, 42px);
  line-height: clamp(44px, 5vw, 57px);
}

h2,
.h2 {
  font-size: clamp(28px, 2.5vw, 34px);
  line-height: clamp(38px, 5vw, 44px);
}
h2.alt,
.h2.alt {
  color: #fff;
}
h2.fixednav,
.h2.fixednav {
  clear: both;
}

h3,
.h3 {
  font-size: clamp(22px, 2.5vw, 28px);
  line-height: clamp(32px, 5vw, 38px);
}
h3.story,
.h3.story {
  font-family: var(font-title-reg);
}
h3.story strong,
.h3.story strong {
  font-family: "droid_sansbold";
}

h4,
.h4 {
  font-size: clamp(20px, 2.5vw, 22px);
  line-height: clamp(29px, 5vw, 32px);
}

h5,
.h5,
h6,
.h6 {
  font-size: clamp(18px, 2.5vw, 18px);
  line-height: clamp(27px, 5vw, 27px);
}
@media (max-width: 575px) {
  h5,
  .h5,
  h6,
  .h6 {
    margin-bottom: 0.5rem;
  }
}

/**
 * Paragraphs
 */
p {
  margin: 1.5em 0;
  font-size: 18px;
  line-height: 27px;
}
p:first-of-type {
  margin-top: 0;
}
p:last-of-type {
  margin-bottom: 0;
}

/**
 * Lists
 */
ul,
ol {
  margin: 1.5rem 0;
  list-style-position: inside;
  padding-left: 0;
}

/**
 * Links
 */
a {
  color: inherit;
  font-weight: inherit;
  text-decoration: underline;
  outline: 0;
  color: var(--c-pompeii);
}
a:hover, a:focus, a:active {
  text-decoration: none;
  color: currentColor;
}
a.ext:after {
  content: " ";
  display: inline-block;
  height: 15px;
  width: 15px;
  background: url("../img/ext.png") center center no-repeat;
  background-size: cover;
  margin-left: 5px;
}
a.alt.ext:after {
  background-image: url("../img/ext-alt.png");
}
a.alt.ext:hover:after {
  background-image: url("../img/ext.png");
}
a:focus {
  outline: 1px dashed currentColor;
}
.js-focus-visible a:focus:not(.focus-visible) {
  outline: 0;
}
a.no-link {
  pointer-events: none;
}

.no-click {
  pointer-events: none;
  cursor: default;
}

::-moz-selection {
  background-color: var(--c-secondary);
  color: var(--c-primary);
}

::selection {
  background-color: var(--c-secondary);
  color: var(--c-primary);
}

/**
 * Buttons
 */
button:focus {
  outline: 1px dashed currentColor;
}
.js-focus-visible button:focus:not(.focus-visible) {
  outline: 0;
}

/**
 * Inline
 */
strong {
  font-weight: bold;
  font-family: var(--fontBold);
}

em {
  font-family: var(--fontItalic);
  font-style: italic;
}

span {
  font-family: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  font-size: inherit;
}

address {
  font-family: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  font-size: inherit;
  font-style: normal;
}

small {
  font-size: 90%;
}

hr {
  border: solid var(--c-primary);
  border-width: 0 0 1px 0;
  width: 100%;
}

figure {
  margin: 0;
}

/**
 * ----------------------
 * Un.titled
 * Base - Drupal 8 specific
 * ----------------------
 */
.pager {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: var(--bump);
  flex-wrap: wrap;
}
.pager li {
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (max-width: 767px) {
  .pager {
    margin-top: calc(var(--bump) / 2);
  }
}
.pager li {
  display: inline-block;
}
.pager li a {
  display: block;
  padding: 0 5px;
  font-size: 18px;
  line-height: 25px;
}
.pager li a:hover {
  color: var(--c-primary);
  text-decoration: none;
}
.pager li:last-child a {
  border-right: 0;
  padding-right: 5px;
}
.pager li.is-active a {
  color: var(--c-primary);
  font-family: var(--font-bold);
  text-decoration: none;
}

.admin-functions {
  position: sticky;
  top: 0;
  width: 100%;
  background-color: var(--c-primary);
  max-width: 100%;
  z-index: 31;
}
.toolbar-tray-open .admin-functions {
  top: 79px;
}
@media (max-width: 991px) {
  .toolbar-tray-open .admin-functions {
    top: 39px;
  }
}
.admin-functions [class*=col-] {
  padding: 0 calc(var(--bump) / 2);
}
.admin-functions ul {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 0;
  margin: calc(var(--bump) / 2) 0;
  padding: 0;
}
.admin-functions ul li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.admin-functions ul li {
  margin-right: var(--bump);
  display: inline-block;
}
.admin-functions ul li a {
  color: var(--c-white);
}
.admin-functions__admin .m-block--page-title-block {
  display: none;
}
.admin-functions__admin .m-block--system-breadcrumb-block {
  display: none;
}

.toolbar-tray-open > .toolbar {
  background-color: #2d2d2d;
  box-shadow: none;
}

.toolbar-loading #toolbar-administration {
  overflow: visible;
}

.visually-hidden {
  position: absolute !important;
  clip: rect(1px, 1px, 1px, 1px);
  overflow: hidden;
  height: 1px;
  width: 1px;
  word-wrap: normal;
}

a.skip-main {
  left: -999px;
  position: absolute;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
  z-index: -999;
}

a.skip-main:focus,
a.skip-main:active {
  font-weight: bold;
  color: var(--c-white);
  background-color: var(--c-primary);
  left: auto;
  top: auto;
  width: 30%;
  height: auto;
  overflow: auto;
  margin: 10px 35%;
  padding: 5px;
  text-align: center;
  font-size: 1.2em;
  z-index: 999;
}

.ajax-progress-throbber {
  display: none;
}

/**
 * ----------------------
 * Un.titled
 * Base - Main
 * ----------------------
 */
/**
 * Styles
 */
html,
body {
  -moz-font-smoothing: grayscale;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  color: var(--c-text);
  font-size: 18px;
  line-height: 27px;
  height: 100%;
  font-family: var(--font-body);
}

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

body {
  display: flex;
  flex-direction: column;
}
body[data-nav=open], body[data-searchoverlay=open], body.freeze {
  overflow: hidden;
}

/**
* Atoms
*/
/**
 * ----------------------
 * Un.titled
 * Atoms - Grid
 * ----------------------
 */
/**
 * Styling
 */
.a-grid {
  display: grid;
  gap: calc(var(--bump) / 2);
}
.a-grid--1 {
  grid-template-columns: 1fr;
}
.a-grid--2 {
  grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 767px) {
  .a-grid--2 {
    grid-template-columns: 1fr;
  }
}
.a-grid--3 {
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 767px) {
  .a-grid--3 {
    grid-template-columns: 1fr;
  }
}
.a-grid--4 {
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 575px) {
  .a-grid--4 {
    grid-template-columns: repeat(2, 1fr);
  }
}

/**
 * ----------------------
 * Un.titled
 * Atoms - Nav Toggle
 * ----------------------
 */
/**
 * Config
 */
/**
 * Styles
 */
.a-nav-toggle {
  border: 0;
  padding: 0;
  background-color: transparent;
  width: 25px;
  height: 20px;
  transition: var(--transition);
  position: relative;
  display: block;
  outline: none;
  margin-left: auto;
}
.a-nav-toggle:focus {
  outline: 1px dotted var(--c-primary);
}
.a-nav-toggle__wrapper {
  position: relative;
  height: 44px;
  width: 44px;
  opacity: 1;
  background-color: transparent;
  border: 0;
  transition: none;
  margin: 0 0 0 var(--bump);
}
@media (max-width: 767px) {
  .a-nav-toggle__wrapper {
    margin: 0 0 0 auto;
  }
}
[data-nav=open] .a-nav-toggle__wrapper {
  z-index: 2;
}
[data-searchoverlay=open] .a-nav-toggle__wrapper, [data-nav=open] .a-nav-toggle__wrapper {
  position: absolute;
}
.a-nav-toggle__wrapper:hover .a-nav-toggle__line-2 {
  width: 15px;
}
.a-nav-toggle__line {
  display: block;
  background: var(--c-white);
  width: 25px;
  height: 3px;
  position: absolute;
  left: 0;
  border-radius: 50px;
  transition: var(--transition);
}
[data-nav=open] .a-nav-toggle__line {
  background: var(--c-white) !important;
}
.a-nav-toggle__line-1 {
  top: 0;
}
[data-nav=open] .a-nav-toggle__line-1 {
  transform: translateY(10px) translateX(0) rotate(45deg);
}
.a-nav-toggle__line-2 {
  top: 50%;
}
[data-nav=open] .a-nav-toggle__line-2 {
  opacity: 0;
}
.a-nav-toggle__line-3 {
  top: 100%;
}
[data-nav=open] .a-nav-toggle__line-3 {
  transform: translateY(-10px) translateX(0) rotate(-45deg);
}

/**
 * ----------------------
 * Un.titled
 * Atoms - Buttons
 * ----------------------
 */
/**
 * Config
 **/
/**
 * Styles
 **/
.a-btn {
  font-family: var(--font-title);
  font-weight: bold;
  padding: 8px 20px;
  color: var(--c-white);
  background: var(--c-pompeii);
  display: inline-block;
  text-decoration: none;
  text-transform: uppercase;
  border: 1px solid var(--c-pompeii);
  font-size: 16px;
  line-height: 25px;
}
@media (max-width: 767px) {
  .a-btn {
    text-align: center;
    -moz-text-align-last: center;
         text-align-last: center;
  }
}
.a-btn:hover, .a-btn:active {
  background: var(--c-white);
  color: var(--c-pompeii);
  border: 1px solid var(--c-pompeii);
}
.a-btn:focus {
  outline: 1px dashed var(--c-black);
}
.a-btn--alt {
  font-family: var(--font-title);
  font-weight: bold;
  padding: 8px 20px;
  color: var(--c-white);
  background: var(--c-pompeii);
  display: inline-block;
  text-decoration: none;
  text-transform: uppercase;
  border: 1px solid var(--c-pompeii);
  font-size: 16px;
  line-height: 25px;
  background: var(--c-pompeii);
  color: #fff;
  text-transform: uppercase;
  min-width: 120px;
  text-align: left;
  -moz-text-align-last: left;
       text-align-last: left;
}
@media (max-width: 767px) {
  .a-btn--alt {
    text-align: center;
    -moz-text-align-last: center;
         text-align-last: center;
  }
}
.a-btn--alt:hover, .a-btn--alt:active {
  background: var(--c-white);
  color: var(--c-pompeii);
  border: 1px solid var(--c-pompeii);
}
.a-btn--alt:focus {
  outline: 1px dashed var(--c-black);
}
.a-btn--alt:hover, .a-btn--alt:active {
  background: #fff;
  color: var(--c-pompeii);
}
.a-btn--alt:focus {
  outline: 1px dashed var(--c-black);
  color: #fff;
}
.a-btn--arrow {
  font-family: var(--font-title);
  font-weight: bold;
  padding: 8px 20px;
  color: var(--c-white);
  background: var(--c-pompeii);
  display: inline-block;
  text-decoration: none;
  text-transform: uppercase;
  border: 1px solid var(--c-pompeii);
  font-size: 16px;
  line-height: 25px;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  transition: 0.3s var(--easing);
  white-space: nowrap;
}
@media (max-width: 767px) {
  .a-btn--arrow {
    text-align: center;
    -moz-text-align-last: center;
         text-align-last: center;
  }
}
.a-btn--arrow:hover, .a-btn--arrow:active {
  background: var(--c-white);
  color: var(--c-pompeii);
  border: 1px solid var(--c-pompeii);
}
.a-btn--arrow:focus {
  outline: 1px dashed var(--c-black);
}
.a-btn--arrow::after {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  margin-left: 5px;
  background-image: url("../img/arrow-up.svg");
  background-repeat: no-repeat;
  height: 14px;
  width: 10px;
  background-position: center;
  transition: 0.3s var(--easing);
}
.a-btn--arrow:hover::after {
  content: "";
  animation: shakeVertical 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  perspective: 1000px;
}
.a-btn--black {
  color: var(--c-white);
  background: var(--c-black);
}
.a-btn--black:hover {
  color: var(--c-black);
  background-color: var(--c-white);
}
.a-btn--red {
  color: var(--c-white);
  background: var(--c-b_red);
  border: 1px solid var(--c-white);
}
.a-btn--red:hover {
  background-color: var(--c-white);
  color: var(--c-b_red);
  border: 1px solid var(--c-b_red);
}
.a-btn--white {
  background-color: var(--c-white);
  color: var(--c-pompeii);
  border: 1px solid var(--c-pompeii);
}
.a-btn--white:hover {
  color: var(--c-white);
  background: var(--c-pompeii);
  border: 1px solid var(--c-white);
}
.a-btn--underline {
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 28px;
  color: var(--c-pompeii);
}
.a-btn--underline:hover {
  color: var(--c-pompeii);
}

.btn {
  font-family: var(--font-title);
  font-weight: bold;
  padding: 8px 20px;
  color: var(--c-white);
  background: var(--c-pompeii);
  display: inline-block;
  text-decoration: none;
  text-transform: uppercase;
  border: 1px solid var(--c-pompeii);
  font-size: 16px;
  line-height: 25px;
}
@media (max-width: 767px) {
  .btn {
    text-align: center;
    -moz-text-align-last: center;
         text-align-last: center;
  }
}
.btn:hover, .btn:active {
  background: var(--c-white);
  color: var(--c-pompeii);
  border: 1px solid var(--c-pompeii);
}
.btn:focus {
  outline: 1px dashed var(--c-black);
}
.btn--alt {
  font-family: var(--font-title);
  font-weight: bold;
  padding: 8px 20px;
  color: var(--c-white);
  background: var(--c-pompeii);
  display: inline-block;
  text-decoration: none;
  text-transform: uppercase;
  border: 1px solid var(--c-pompeii);
  font-size: 16px;
  line-height: 25px;
  background: var(--c-pompeii);
  color: #fff;
  text-transform: uppercase;
  min-width: 120px;
  text-align: center;
}
@media (max-width: 767px) {
  .btn--alt {
    text-align: center;
    -moz-text-align-last: center;
         text-align-last: center;
  }
}
.btn--alt:hover, .btn--alt:active {
  background: var(--c-white);
  color: var(--c-pompeii);
  border: 1px solid var(--c-pompeii);
}
.btn--alt:focus {
  outline: 1px dashed var(--c-black);
}
.btn--alt:hover, .btn--alt:active {
  background: #fff;
  color: var(--c-pompeii);
}
.btn--alt:focus {
  outline: 1px dashed var(--c-black);
  color: #fff;
}

/**
 * ----------------------
 * Un.titled
 * Atoms - Image credits
 * ----------------------
 */
.a-image-credit {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 1;
  height: calc(var(--bump) + 5px);
  width: calc(var(--bump) + 5px);
  border: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.a-image-credit[data-visible=false] {
  height: 0;
  opacity: 0;
}
@media (max-width: 767px) {
  .a-image-credit {
    display: none;
  }
}
.a-image-credit span {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--c-black);
  color: var(--c-white);
  height: calc(var(--bump) / 1.5);
  width: calc(var(--bump) / 1.5);
  border-radius: 20px;
  font-size: 15px;
  padding: 0px 8px;
}
.a-image-credit:focus::before, .a-image-credit:active::before, .a-image-credit:hover::before {
  opacity: 1;
}
.a-image-credit__text {
  height: 0;
  padding: 0;
  opacity: 0;
}
.a-image-credit__text[data-visible=true] {
  height: 100%;
  padding: calc(var(--bump) / 4) 0;
  opacity: 1;
}
@media (max-width: 767px) {
  .a-image-credit__text {
    height: 100%;
    padding: calc(var(--bump) / 4) calc(var(--bump) / 2);
    opacity: 1;
  }
}
.a-image-credit__text:before {
  content: "i";
  display: inline;
  background-color: var(--c-black);
  color: var(--c-white);
  font-size: 15px;
  padding: 0px 8px;
  border-radius: 20px;
  vertical-align: top;
  margin: 0 5px 0 0;
}

/**
* ----------------------
* Un.titled
* Atoms - Breadcrumbs
* ----------------------
*/
/**
* Styling
*/
.a-breadcrumb {
  margin-bottom: var(--bump);
  padding: calc(var(--bump) / 2) 0;
}
@media (max-width: 575px) {
  .a-breadcrumb {
    margin-bottom: calc(var(--bump) / 2);
  }
}
.a-breadcrumb ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.a-breadcrumb ol li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.a-breadcrumb ol li {
  margin-right: calc(var(--bump) / 6);
  white-space: nowrap;
}
.a-breadcrumb ol li::after {
  content: "/";
  margin-left: calc(var(--bump) / 10);
}
.a-breadcrumb ol li:last-child::after {
  display: none;
}

/**
* ----------------------
* Un.titled
* Atoms - Search button
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-search-button {
  position: relative;
  background-color: transparent;
  border: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-left: var(--bumpSmall);
  font-size: var(--fontSizeLg);
  height: 44px;
  width: 44px;
}
@media (max-width: 991px) {
  .a-search-button {
    flex-direction: column-reverse;
    padding-top: 0;
    padding-bottom: 0;
  }
}
@media (max-width: 767px) {
  .a-search-button {
    margin-left: auto;
  }
}
[data-searchoverlay=open] .a-search-button {
  z-index: 2;
}
[data-nav=open] .a-search-button {
  display: none;
}
.a-search-button:hover {
  color: var(--c-secondary);
}
.a-search-button span {
  line-height: 1;
}
@media (min-width: 993px) and (max-width: 1199px) {
  .a-search-button span {
    display: none;
    visibility: hidden;
  }
}
@media (max-width: 991px) {
  .a-search-button span {
    font-size: var(--fontSizeSm);
  }
}
.a-search-button svg {
  width: 20px;
  height: 20px;
  fill: var(--c-secondary);
  display: block;
  visibility: visible;
}
@media (max-width: 767px) {
  .a-search-button svg {
    margin-left: 0;
    height: 20px;
  }
}
[data-searchoverlay=open] .a-search-button svg {
  display: none;
  visibility: hidden;
}
.a-search-button .a-search-button__close {
  margin-left: auto;
  display: none;
  visibility: hidden;
}
.a-search-button .a-search-button__close::before, .a-search-button .a-search-button__close::after {
  content: "";
  display: block;
  background: var(--c-white);
  width: 25px;
  height: 3px;
  position: absolute;
  right: 0;
  border-radius: 0;
  transition: var(--transition);
}
.a-search-button .a-search-button__close::before {
  transform: translateY(13px) translateX(0) rotate(45deg);
}
.a-search-button .a-search-button__close::after {
  transform: translateY(13px) translateX(0) rotate(-45deg);
}
[data-searchoverlay=open] .a-search-button .a-search-button__close {
  display: flex;
  position: relative;
  visibility: visible;
  color: var(--c-black);
  text-align: left;
  text-indent: -9999px;
  height: 32px;
  width: 32px;
  margin: 0;
}
[data-searchoverlay=open] .a-search-button .a-search-button__close::before, [data-searchoverlay=open] .a-search-button .a-search-button__close::after {
  display: block;
}

/**
 * Molecules
 */
/**
 * ----------------------
 * Un.titled
 * Molecules - Emergency Message
 * ----------------------
 */
/**
 * Config
 **/
@keyframes slideInUp {
  0% {
    opacity: 0;
    transform: translateY(100%);
  }
  80% {
    transform: scale(1.02);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
/**
 * Styling
 **/
.m-emmsg {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background-color: var(--c-primary);
  z-index: 100;
  color: var(--c-white);
  padding: calc(var(--bump) / 2) 0;
  max-height: 30vh;
  border-top: 1px solid var(--c-white);
  display: none;
}
.m-emmsg[data-state=visible] {
  opacity: 0;
  display: block;
  transform: translateY(100%);
  animation: slideInUp 0.2s 0.3s cubic-bezier(0.77, 0.29, 0.35, 0.72) 1 forwards;
}
@media (max-width: 767px) {
  .m-emmsg {
    overflow: scroll;
  }
}
@media (max-width: 575px) {
  .m-emmsg {
    padding: 0;
  }
}
.m-emmsg h3 {
  margin-bottom: 0.5rem;
  width: 85%;
}
.m-emmsg p {
  width: 85%;
}
.m-emmsg button {
  background-color: transparent;
  border: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding: 0;
  position: absolute;
  top: calc(var(--bump) / 2);
  right: calc(var(--bump) / 2);
  height: 35px;
  width: 35px;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: var(--transition);
}
.m-emmsg button path {
  fill: var(--c-white);
  transition: var(--transition);
}
.m-emmsg button:hover {
  background-color: var(--c-white);
}
.m-emmsg button:hover path {
  fill: var(--c-secondary);
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Entities
 * ----------------------
 */
.m-entity {
  margin: calc(var(--bump) * 2) 0;
  /**
   * ----------------------
   * Un.titled
   * Molecules - Node body copy
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Image
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Entity views
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Quotes
   * ----------------------
   */
  /**
   * Config
   */
  /**
   * Styles
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Accordions
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Gallery
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Image & Text
   * ----------------------
   */
  /**
  * ----------------------
  * Un.titled
  * Molecules - Downloads
  * ----------------------
  */
  /**
  * Config
  */
  /**
  * Styling
  */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Embed
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Person Card
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Quote With Image
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - CTA
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Entity Linked logos
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Entity Video
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - sponsors ECK
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Highlighted content ECK
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules -  Logo list ECK EXhibiton content type
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Imrpoved Image Row ECK
   * ----------------------
   */
}
.m-entity-features .m-entity__featured__title {
  font-size: 28px !important;
}
.m-entity__sponsors {
  margin: 0;
}
.m-entity__feature-medallist {
  display: flex;
}
.ct__homepage .m-entity {
  margin: 25px 0;
}
@media (max-width: 767px) {
  .ct__homepage .m-entity.m-entity__homepage-signpost-with-image, .ct__homepage .m-entity.m-entity__featured-event {
    margin: 0;
  }
}
@media (max-width: 767px) {
  .m-entity {
    margin: var(--bump) 0;
  }
}
.m-entity iframe {
  width: 100%;
}
.m-entity img {
  width: 100%;
  height: auto;
  display: block;
}
.m-entity__cta a {
  text-align: unset;
  -moz-text-align-last: left;
       text-align-last: left;
}
.m-entity__body p a, .m-entity__text p a, .m-entity__accordion p a, .m-entity__image-text p a {
  text-decoration: underline;
}
.m-entity__body p a:hover, .m-entity__text p a:hover, .m-entity__accordion p a:hover, .m-entity__image-text p a:hover {
  text-decoration: none;
}
.m-entity__text ul {
  margin-left: 15px;
}
.m-entity__text ul li {
  list-style: none;
  position: relative;
  margin-bottom: 10px;
}
.m-entity__text ul li::before {
  content: "";
  border-radius: 50%;
  height: 7px;
  width: 7px;
  display: block;
  position: absolute;
  left: -15px;
  top: 11px;
  background-color: var(--c-primary);
}
.m-entity__chapter ul, .m-entity__body ul, .m-entity__accordion ul {
  margin-left: 15px;
}
.m-entity__chapter ul li, .m-entity__body ul li, .m-entity__accordion ul li {
  list-style: none;
  position: relative;
  margin-bottom: 10px;
}
.m-entity__chapter ul li::before, .m-entity__body ul li::before, .m-entity__accordion ul li::before {
  content: "";
  border-radius: 50%;
  height: 7px;
  width: 7px;
  display: block;
  position: absolute;
  left: -15px;
  top: 11px;
  background-color: var(--c-primary);
}
.m-entity__title {
  font-family: var(--font-title-reg);
  font-weight: bold;
  font-size: 22px;
  line-height: 32px;
  margin-bottom: 13px;
}
.m-entity__body {
  margin-top: 0;
}
.m-entity__image-wrapper {
  position: relative;
}
.m-entity__image-wrapper__image-credit {
  position: absolute;
  top: auto;
  background-color: rgba(255, 255, 255, 0.7);
  color: var(--c-text);
  width: 100%;
  transform: translateY(-100%);
  padding: calc(var(--bump) / 3);
}
.m-entity__image-wrapper__image-credit:before {
  content: "i";
  position: relative;
  color: var(--c-white);
  z-index: 4;
  cursor: help !important;
  height: 19px;
  width: 19px;
  border: 0;
  padding: 0;
  border-radius: 50%;
  background-color: var(--c-black);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-content: center;
  font-size: 15px;
}
.m-entity__view:first-child {
  margin-top: 0;
}
.m-entity__view:last-child {
  margin-bottom: 0;
}
.m-entity__quote {
  border-left: 2px solid var(--c-pompeii);
  padding-left: 18px;
}
.m-entity__quote blockquote {
  font-family: var(--font-title);
  margin: 0;
  padding: 0 0 calc(var(--bump) / 2);
}
.m-entity__quote blockquote p {
  margin-bottom: 0;
  color: var(--c-pompeii);
}
.m-entity__quote-info {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
}
.m-entity__quote cite {
  font-family: var(--fontBody);
  font-style: italic;
}
.m-entity__quote cite .name {
  font-weight: bold;
}
.m-entity__quote .rating {
  display: inline-flex;
  margin-right: calc(var(--bump) / 2);
}
.m-entity__quote .rating__star {
  width: 24px;
  height: 24px;
  margin-right: 5px;
  stroke: var(--c-primary);
}
.m-entity__quote .rating__star:last-child {
  margin-right: 0;
}
.m-entity__quote .rating--1 .rating__star:nth-child(-n+1) path {
  fill: var(--c-primary);
  stroke: var(--c-primary);
}
.m-entity__quote .rating--2 .rating__star:nth-child(-n+2) path {
  fill: var(--c-primary);
  stroke: var(--c-primary);
}
.m-entity__quote .rating--3 .rating__star:nth-child(-n+3) path {
  fill: var(--c-primary);
  stroke: var(--c-primary);
}
.m-entity__quote .rating--4 .rating__star:nth-child(-n+4) path {
  fill: var(--c-primary);
  stroke: var(--c-primary);
}
.m-entity__quote .rating--5 .rating__star:nth-child(-n+5) path {
  fill: var(--c-primary);
  stroke: var(--c-primary);
}
.m-entity__accordion {
  /* title opened */
  /* title closed */
}
.m-entity__accordion .accordion {
  border-bottom: 1px solid rgba(31, 29, 30, 0.3);
}
.m-entity__accordion .accordion__header {
  display: flex;
  width: 100%;
  color: var(--c-pompeii);
  line-height: 24px;
  text-align: inherit;
  font-family: var(--font-title);
  font-weight: bold;
  border: 0;
  background-color: transparent;
  -moz-text-align-last: left;
       text-align-last: left;
  justify-content: space-between;
  align-items: center;
  padding: 17px 0;
  border-top: 1px solid rgba(31, 29, 30, 0.3);
  text-shadow: none;
}
.m-entity__accordion .accordion__header::after {
  content: "";
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  height: calc(var(--bump) / 2);
  width: calc(var(--bump) / 2);
  min-width: calc(var(--bump) / 2);
  background-size: auto !important;
}
.m-entity__accordion .accordion__header:focus, .m-entity__accordion .accordion__header[aria-expanded=true] {
  font-weight: bold;
  outline: none;
}
.m-entity__accordion .accordion__title {
  margin: 0;
}
.m-entity__accordion .js-accordion__panel {
  display: none;
}
.m-entity__accordion .accordion__panel {
  display: block;
  overflow: hidden;
  opacity: 1;
  transition: visibility 0s ease, max-height 0.2s ease, opacity 0.2s ease;
  max-height: 100em;
  visibility: visible;
  transition-delay: 0s;
}
.m-entity__accordion .accordion__panel[aria-hidden=true] {
  display: block;
  max-height: 0;
  opacity: 0;
  visibility: hidden;
  transition-delay: 0.2s, 0s, 0s;
}
.m-entity__accordion .accordion__panel p:last-child {
  margin-bottom: var(--bump);
}
.m-entity__accordion [aria-expanded=true]:after {
  background-image: url(/themes/pippip/dist/img/Minus.svg);
}
.m-entity__accordion [aria-expanded=false]:after {
  background-image: url(/themes/pippip/dist/img/Add.svg);
}
.m-entity__gallery__grid {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 767px) {
  .m-entity__gallery__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 13px;
  }
}
.m-entity__gallery__grid a {
  position: relative;
}
.m-entity__gallery__grid a:hover {
  opacity: 0.7;
}
.m-entity__gallery__grid a:hover span {
  background: #862633;
  color: #fff;
}
.m-entity__gallery__grid a > span {
  transition: all 0.2s ease-in-out;
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  justify-content: center;
  height: 25px;
  width: 25px;
  background: hsla(0, 0%, 100%, 0.6);
  color: #862633;
  font-size: 25px;
  line-height: 23px;
  transition: 0.15s var(--easing);
}
.m-entity__gallery__grid a > span:after {
  content: "+";
  position: absolute;
  top: 6.25%;
  transform: translateY(-12.5%);
  transition: 0.15s var(--easing);
}
.m-entity__image-text {
  display: grid;
  grid-template-columns: 50% 1fr;
  gap: calc(var(--bump) / 1.5);
  align-items: center;
}
@media (max-width: 991px) {
  .m-entity__image-text {
    grid-template-columns: 1fr;
    gap: calc(var(--bump) / 2);
  }
}
@media (min-width: 993px) {
  .m-entity__image-text .image-right {
    order: 2;
  }
}
.m-entity__image-text__image {
  position: relative;
}
.m-entity__image-text--caption {
  position: absolute;
  bottom: 0;
  display: flex;
  /* text-align: center; */
  background-color: rgba(255, 255, 255, 0.9);
  width: 100%;
  padding: 14px;
}
.m-entity__image-text__title {
  font-family: var(--font-title-reg);
  font-weight: bold;
  font-size: 22px;
  line-height: 32px;
  margin-bottom: 13px;
}
@media (max-width: 767px) {
  .m-entity__image-text__title {
    justify-content: flex-start;
  }
}
.m-entity__image-text__grid {
  gap: 24px;
}
.m-entity__downloads a:hover {
  color: var(--c-pompeii);
}
.m-entity__downloads .file {
  padding-left: 0;
  background-image: none;
  font-family: var(--font-title-reg) !important;
}
.m-entity__embed iframe {
  width: 100%;
}
.m-entity__text-block {
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
}
@media (max-width: 767px) {
  .m-entity__text-block {
    text-align: left;
    -moz-text-align-last: left;
         text-align-last: left;
  }
}
.m-entity__text-block__body-text ~ .m-entity__text-block__links {
  margin-top: var(--bump);
}
.m-entity__text-block__body-text h1,
.m-entity__text-block__body-text h2,
.m-entity__text-block__body-text h3,
.m-entity__text-block__body-text h4,
.m-entity__text-block__body-text h5,
.m-entity__text-block__body-text h6 {
  margin: 0;
}
.m-entity__text-block__links {
  display: flex;
  gap: 24px;
  justify-content: center;
  flex-direction: row;
}
@media (max-width: 767px) {
  .m-entity__text-block__links {
    flex-direction: column;
  }
}
.m-entity__person-card .grid [class*=col-] {
  display: grid;
  grid-template-columns: 40% 1fr;
  gap: calc(var(--bump) * 4);
  align-items: center;
}
@media (max-width: 991px) {
  .m-entity__person-card .grid [class*=col-] {
    grid-template-columns: 1fr;
    gap: calc(var(--bump) / 2);
  }
}
.m-entity__person-card__title {
  margin: 0 0 calc(var(--bump) / 2);
  font-family: var(--font-title-reg);
  font-weight: normal;
  font-size: 28px;
  line-height: 38px;
}
.m-entity__person-card__content > p ~ a.a-btn {
  margin: 24px 0 0;
}
.m-entity__person-card__grid {
  gap: 24px;
}
.m-entity__quote-with-image__container {
  display: grid !important;
  grid-template-columns: 30% 1fr;
  gap: calc(var(--bump) * 4);
  align-items: center;
  grid-auto-flow: dense;
  width: 100%;
}
@media (max-width: 767px) {
  .m-entity__quote-with-image__container {
    grid-template-columns: 1fr;
    gap: calc(var(--bump) / 2);
  }
}
.m-entity__quote-with-image__quote p {
  font-family: var(--font-body);
  font-size: 22px;
  font-style: italic;
  letter-spacing: 0;
  line-height: 30px;
  color: var(--c-black);
}
.m-entity__quote-with-image__author {
  font-family: var(--font-body);
  font-size: 18px;
  letter-spacing: 0;
  line-height: 24px;
  margin: calc(var(--bump) / 2) 0 0;
  color: var(--c-black);
}
.m-entity__quote-with-image__role {
  font-family: var(--font-bold);
  font-weight: bold;
}
.m-entity__quote-with-image__image-wrapper {
  max-width: 285px;
  width: 100%;
}
@media (max-width: 767px) {
  .m-entity__quote-with-image__image-wrapper {
    max-width: 100%;
  }
}
.m-entity__quote-with-image__image-wrapper img {
  width: 100%;
}
.m-entity__quote-with-image__cta {
  margin: 24px 0 0;
}
.m-entity__featured {
  color: var(--c-white);
}
.m-entity__featured p a {
  color: var(--c-white);
}
.ct__medal-landing .m-entity__featured, .ct__exhibition-landing-page .m-entity__featured, .m-entity__featured-exhibition .m-entity__featured {
  margin: 0 0 calc(var(--bump) * 1.5);
}
.m-entity__featured__title {
  color: var(--c-white);
}
.ct__listing .m-entity__featured__title {
  color: var(--c-pompeii);
  font-family: var(--font-body);
  flex-grow: 1;
}
.ct__homepage .m-entity__featured__title {
  margin: 0 0 calc(var(--bump) / 2);
}
.m-entity__featured__title:not(.ct__homepage .m-entity__featured__title):after {
  content: "";
  display: block;
  background-color: var(--c-bg);
  width: 60px;
  height: 1px;
  transform: translateY(0.415em);
}
.m-entity__homepage-signpost-with-image .m-entity__featured__title {
  margin-top: 0;
  font-family: var(--font-body);
  font-weight: bold;
  color: var(--c-pompeii);
  font-size: clamp(34px, 5vw, 42px);
  line-height: clamp(44px, 5vw, 57px);
}
.m-entity__featured__subtitle {
  color: var(--c-white);
}
.ct__listing .m-entity__featured__subtitle {
  color: var(--c-pompeii);
  font-family: var(--font-body);
}
.ct__homepage .m-entity__featured__subtitle {
  margin: 0 0 var(--bump);
}
.ct__homepage .m-entity__featured__subtitle:after {
  content: "";
  display: block;
  background-color: var(--c-bg);
  width: 60px;
  height: 2px;
  transform: translateY(calc(var(--bump) / 2));
}
.m-entity__featured__booking-links {
  display: flex;
  justify-content: space-between;
  gap: calc(var(--bump) / 2);
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
}
@media (max-width: 767px) {
  .m-entity__featured__booking-links {
    width: 100%;
    flex-direction: column;
  }
  .m-entity__featured__booking-links .a-btn {
    width: 100%;
  }
}
.m-entity__featured__container {
  display: flex;
  background-color: var(--c-b_red);
}
.ct__exhibition-landing-page .m-entity__featured__container, .ct__medal-landing .m-entity__featured__container, .ct__listing .m-entity__featured__container, .ct__homepage .m-entity__featured__container {
  margin: 0;
}
@media (max-width: 767px) {
  .ct__exhibition-landing-page .m-entity__featured__container, .ct__medal-landing .m-entity__featured__container, .ct__listing .m-entity__featured__container, .ct__homepage .m-entity__featured__container {
    margin: 0;
  }
}
@media (max-width: 767px) {
  .m-entity__featured__container {
    margin: -15px;
  }
}
.ct__homepage .m-entity__featured__container {
  max-width: 100%;
}
.m-entity__homepage-signpost-with-image .m-entity__featured__container {
  background-color: var(--c-white);
  flex-direction: row;
}
@media (max-width: 767px) {
  .ct__listing .m-entity__featured__container {
    margin: 0;
  }
}
@media (max-width: 767px) {
  .m-entity__featured__container {
    flex-direction: column;
  }
}
.m-entity__featured__image {
  padding: 0;
}
@media (max-width: 767px) {
  .m-entity__homepage-signpost-with-image .m-entity__featured__image {
    padding: 0 0 calc(var(--bump) / 2);
  }
}
@media (max-width: 767px) {
  .ct__exhibition-landing-page .m-entity__featured__image, .ct__medal-landing .m-entity__featured__image {
    padding: var(--bump) calc(var(--bump) / 2) calc(var(--bump) / 2);
  }
}
.ct__homepage .m-entity__featured__image, .ct__listing .m-entity__featured__image {
  display: flex;
  align-items: center;
}
@media (max-width: 767px) {
  .ct__homepage .m-entity__featured__image, .ct__listing .m-entity__featured__image {
    padding: 0 0 calc(var(--bump) / 2);
  }
}
.m-entity__featured__image picture {
  margin: auto;
  width: 100%;
  height: 100%;
}
.m-entity__featured__image picture img {
  width: 100%;
  height: 100%;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
}
.m-entity__featured__info {
  max-width: calc(var(--containerWidth) / 2);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.m-entity__featured__info h1, .m-entity__featured__info h2, .m-entity__featured__info h3, .m-entity__featured__info h4, .m-entity__featured__info h5, .m-entity__featured__info h6 {
  color: var(--c-white);
}
.ct__homepage .m-entity__featured__info {
  padding: var(--bump) calc(var(--bump) / 2) var(--bump) var(--bump);
}
@media (max-width: 767px) {
  .ct__homepage .m-entity__featured__info {
    padding: calc(var(--bump) / 3) calc(var(--bump) / 2) var(--bump);
  }
}
.m-entity__homepage-signpost-with-image .m-entity__featured__info {
  padding: var(--bump) calc(var(--bump) / 2) var(--bump) var(--bump);
}
.m-entity__homepage-signpost-with-image .m-entity__featured__info .m-entity__featured__title {
  color: var(--c-pompeii);
}
@media (max-width: 767px) {
  .m-entity__homepage-signpost-with-image .m-entity__featured__info {
    padding: 0 calc(var(--bump) / 2) calc(var(--bump) / 2);
  }
}
.m-entity__featured__info > p,
.m-entity__featured__info .m-entity__featured__field-times,
.m-entity__featured__info .m-entity__featured__field-run-date,
.m-entity__featured__info .m-entity__featured__type {
  margin: 0 0 calc(var(--bump) / 2);
}
.m-entity__featured__info > p p:last-of-type,
.m-entity__featured__info > p h2:last-of-type,
.m-entity__featured__info .m-entity__featured__field-times p:last-of-type,
.m-entity__featured__info .m-entity__featured__field-times h2:last-of-type,
.m-entity__featured__info .m-entity__featured__field-run-date p:last-of-type,
.m-entity__featured__info .m-entity__featured__field-run-date h2:last-of-type,
.m-entity__featured__info .m-entity__featured__type p:last-of-type,
.m-entity__featured__info .m-entity__featured__type h2:last-of-type {
  margin: 0;
}
.m-entity__featured__info p > strong {
  font-family: var(--font-bold);
}
@media (max-width: 767px) {
  .m-entity__featured__info {
    padding: 0 calc(var(--bump) / 2) calc(var(--bump) / 2);
    width: 100%;
    max-width: 100%;
    height: 100%;
  }
}
.m-entity__featured__type {
  margin: 0 0 calc(var(--bump) / 2);
}
.m-entity__featured__type a {
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 28px;
  color: var(--c-pompeii);
  text-decoration: none;
  color: var(--c-white);
  font-family: var(--font-bold);
}
.m-entity__featured__type a:hover {
  color: var(--c-pompeii);
}
.ct__homepage .m-entity__featured__type {
  display: none;
}
.m-entity__featured__type--home-page {
  display: none;
}
.ct__homepage .m-entity__featured__type--home-page {
  display: block;
}
.ct__homepage .m-entity__featured__type--home-page a {
  text-decoration: underline;
  font-family: var(--font-body);
}
.ct__homepage .m-entity__featured__type--home-page a:hover {
  color: var(--c-white);
  text-decoration: none;
}
.m-entity__featured__ctas {
  display: flex;
  flex-direction: column;
  gap: calc(var(--bump) / 2);
  align-items: flex-start;
}
@media (max-width: 767px) {
  .m-entity__featured__ctas {
    width: 100%;
  }
  .m-entity__featured__ctas .a-btn {
    width: 100%;
  }
}
.m-entity__linked-logos .m-logos {
  gap: 29px 38px;
}
.m-entity video {
  width: 100%;
  height: auto;
}
.m-entity .m-entity__video__embed iframe {
  width: 100%;
  height: 448px;
}
@media (max-width: 991px) {
  .m-entity .m-entity__video__embed iframe {
    height: 355px;
  }
}
@media (max-width: 575px) {
  .m-entity .m-entity__video__embed iframe {
    height: 200px;
  }
}
.m-entity__latest-articles {
  position: relative;
  margin: 0;
  padding: 41px 0 0 0;
}
.m-entity__latest-articles__image {
  position: absolute;
  opacity: 0.08;
  width: 100%;
  top: 0;
  bottom: 0;
}
.m-entity__latest-articles__image img {
  height: 100%;
  width: 100%;
}
.m-entity__latest-articles__container {
  display: flex;
  width: 100%;
  justify-content: space-between;
  position: relative;
  z-index: 2;
  left: 0px;
  right: 0px;
}
.m-entity__latest-articles__container .view__latest_news .views-row:first-of-type .m-entity__latest-articles__teaser__link,
.m-entity__latest-articles__container .view__latest_blog .views-row:first-of-type .m-entity__latest-articles__teaser__link {
  margin: 0 0 calc(var(--bump) * 1.5);
}
.m-entity__latest-articles__container .view__latest_news .views-row:first-of-type .m-entity__latest-articles__teaser__link:after,
.m-entity__latest-articles__container .view__latest_blog .views-row:first-of-type .m-entity__latest-articles__teaser__link:after {
  content: "";
  height: 1px;
  background-color: var(--c-pompeii);
  width: 100%;
  position: absolute;
  left: 0;
  bottom: 0;
  transform: translateY(20px);
}
@media (max-width: 767px) {
  .m-entity__latest-articles__container .view__latest_news .views-row:first-of-type .m-entity__latest-articles__teaser__link:after,
  .m-entity__latest-articles__container .view__latest_blog .views-row:first-of-type .m-entity__latest-articles__teaser__link:after {
    display: none;
  }
}
@media (max-width: 767px) {
  .m-entity__latest-articles__container .view__latest_news .views-row:not(:first-child),
  .m-entity__latest-articles__container .view__latest_blog .views-row:not(:first-child) {
    display: none;
  }
}
.m-entity__latest-articles__teaser {
  margin: 0 0 0 calc(var(--bump) * 5);
}
@media (max-width: 767px) {
  .m-entity__latest-articles__teaser {
    margin: auto;
  }
}
.m-entity__latest-articles__teaser__date {
  position: absolute;
  left: calc(var(--bump) / 2);
  color: var(--c-pompeii);
}
@media (max-width: 767px) {
  .m-entity__latest-articles__teaser__date {
    position: relative;
    left: 0;
    margin: 0 0 calc(var(--bump) / 3);
  }
}
.m-entity__latest-articles__teaser__title {
  position: relative;
  color: var(--c-primary);
  margin: 0 0 calc(var(--baseUnit) * 5);
}
.m-entity__latest-articles__teaser__title:after {
  content: "";
  height: 1px;
  background-color: var(--c-black);
  width: 60px;
  position: absolute;
  left: 0;
  bottom: 0;
  transform: translateY(20px);
}
.m-entity__latest-articles__teaser__body {
  margin: 0 0 calc(var(--bump) / 2);
}
.m-entity__latest-articles__teaser__link {
  position: relative;
  display: block;
}
.m-entity__large-signpost {
  position: relative;
}
.m-entity__large-signpost .overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.5);
  display: block;
  margin: 15px;
}
@media (max-width: 767px) {
  .m-entity__large-signpost {
    overflow: hidden;
  }
}
.m-entity__large-signpost > .grid > .col-sm-12 > picture {
  position: relative;
}
.m-entity__large-signpost__container {
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  color: var(--c-white);
  z-index: 2;
  margin: auto;
}
@media (max-width: 767px) {
  .m-entity__large-signpost__container {
    justify-content: flex-end;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    padding: var(--bump) var(--bump) var(--bump) 0;
  }
  .m-entity__large-signpost__container .grid {
    margin: 0;
    align-content: flex-end;
  }
}
.m-entity__large-signpost__container > .grid {
  width: 100%;
}
.m-entity__large-signpost__content, .m-entity__large-signpost__cta {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.m-entity__large-signpost__content {
  align-items: flex-start;
}
.m-entity__large-signpost__content h2 {
  font-family: var(--font-bold);
  color: var(--c-white);
}
.m-entity__related-content__container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: calc(var(--baseUnit) * 3);
}
@media (max-width: 767px) {
  .m-entity__related-content__container {
    grid-template-columns: repeat(1, 1fr);
  }
}
.m-entity__related-content__container .o-teaser {
  width: 100%;
  padding: 0;
}
.m-entity__previous-winners__container {
  display: grid;
  gap: calc(var(--bump) / 2);
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 767px) {
  .m-entity__previous-winners__container {
    grid-template-columns: repeat(1, 1fr);
  }
}
.m-entity__previous-winners .o-teaser {
  width: 100%;
}
.m-entity__sponsors .m-sponsors {
  display: grid;
  gap: 29px 38px;
  align-items: flex-end;
}
.m-entity__highlighted-content {
  background-color: #862633;
  padding: 16px 24px;
}
.m-entity__highlighted-content a {
  color: white;
  text-decoration: underline;
}
.m-entity__highlighted-content a:hover {
  text-decoration: none;
}
.m-entity__highlighted-content .a-btn {
  background-color: black;
  padding: 0;
  margin-top: 24px;
}
.m-entity__highlighted-content .a-btn:hover {
  background-color: white;
}
.m-entity__highlighted-content .a-btn a {
  color: white;
  text-decoration: none;
  padding: 8px 20px;
  min-height: 41px;
  display: flex;
  text-align: left;
  -moz-text-align-last: left;
       text-align-last: left;
  justify-content: center;
}
.m-entity__highlighted-content .a-btn a:hover {
  color: black;
}
.m-entity__highlighted-content h2,
.m-entity__highlighted-content h3,
.m-entity__highlighted-content p {
  color: white;
}
.m-entity__highlighted-content ul {
  margin-left: 15px;
}
.m-entity__highlighted-content ul li {
  position: relative;
}
.m-entity__highlighted-content ul li::marker {
  content: "";
}
.m-entity__highlighted-content ul li::before {
  content: "" !important;
  border-radius: 50%;
  height: 7px;
  width: 7px;
  display: block;
  position: absolute;
  left: -15px;
  top: 18px;
  background-color: white;
}
.m-entity__medallist-signposts__container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  justify-content: space-between;
  gap: calc(var(--baseUnit) * 3);
}
@media (max-width: 767px) {
  .m-entity__medallist-signposts__container {
    grid-template-columns: repeat(1, 1fr);
  }
}
.m-entity__exhibition-signposts__container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  justify-content: space-between;
  gap: calc(var(--baseUnit) * 3);
}
@media (max-width: 767px) {
  .m-entity__exhibition-signposts__container {
    grid-template-columns: repeat(1, 1fr);
  }
}
.m-entity__logo-list {
  word-spacing: normal;
  letter-spacing: normal;
}
.m-entity__logo-list .m-donors {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1%;
}
.m-entity__logo-list .m-donors a {
  position: relative;
}
.m-entity__logo-list .m-donors .donor_logo {
  height: 100%;
}
.m-entity__logo-list .m-donors .donor_logo img {
  width: 100%;
  height: 100%;
}
.m-entity__logo-list .m-donors .donor_logo:hover {
  opacity: 0.6;
  transition: 0.15s cubic-bezier(0.83, 0, 0.17, 1);
}
.m-entity__logo-list .m-donors .donor_logo:hover span {
  background: #862633;
  color: white;
}
.m-entity__logo-list .m-donors span {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  justify-content: center;
  height: 25px;
  width: 25px;
  background: hsla(0, 0%, 100%, 0.6);
  color: #862633;
  font-size: 25px;
  line-height: 23px;
  transition: 0.15s cubic-bezier(0.83, 0, 0.17, 1);
}
.m-entity__logo-list .m-donors span::after {
  content: "+";
  position: absolute;
  top: 6.25%;
  transform: translateY(-12.5%);
  transition: 0.15s cubic-bezier(0.83, 0, 0.17, 1);
}
.m-entity__improved-image-row {
  display: block;
}
.m-entity__improved-image-row picture img {
  width: 100%;
}
.m-entity__improved-image-row p {
  margin-top: 16px;
}
.m-entity__chapter p {
  margin: 0 0 var(--bump);
}
.m-entity__chapter p:last-of-type {
  margin: 0 0 var(--bump);
}
.m-entity__chapter__title {
  display: flex;
  justify-content: space-between;
}
.m-entity__chapter__title .scroll.top {
  font-size: 18px;
  line-height: 25px;
  font-family: var(--font-body);
}
@media (max-width: 767px) {
  .m-entity__chapter__title {
    flex-direction: column;
    gap: calc(var(--bump) / 2);
  }
}
.m-entity__story__image img {
  width: 100%;
}
.m-entity__story__image__wrapper {
  display: flex;
  gap: calc(var(--baseUnit) * 2);
  align-items: center;
  margin: 0 0 var(--bump);
}
.m-entity__collection__title {
  display: flex;
  justify-content: space-between;
}
.m-entity__collection__title .scroll.top {
  font-size: 18px;
  line-height: 25px;
  font-family: var(--font-body);
  font-weight: normal;
}
@media (max-width: 767px) {
  .m-entity__collection__title {
    flex-direction: column;
    gap: calc(var(--bump) / 2);
  }
}
.m-entity__collection .listing.collection {
  display: grid;
  gap: calc(var(--bump) / 2);
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 767px) {
  .m-entity__collection .listing.collection {
    grid-template-columns: repeat(2, 1fr);
  }
}
.m-entity__collection .listing.collection li {
  list-style: none;
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Forms
 * ----------------------
 */
input,
input[type=text],
input[type=password],
input[type=email],
input[type=submit],
textarea,
select {
  font-family: var(--fontBody);
  color: var(--c-primary);
  resize: none;
  padding: calc(var(--bump) / 2) var(--bump);
  -webkit-border-radius: 0px;
  border-radius: 0;
  outline: 0;
  border: 1px solid var(--c-primary);
  transition: all var(--transition);
  background-color: var(--c-white);
}
input:focus,
input[type=text]:focus,
input[type=password]:focus,
input[type=email]:focus,
input[type=submit]:focus,
textarea:focus,
select:focus {
  border: 1px solid var(--c-secondary);
}

input[type=search],
input[type=text],
input[type=submit] {
  -webkit-appearance: none;
}

.form-actions input,
input[type=submit] {
  cursor: pointer;
}

button {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

.js-form-item {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  margin-bottom: calc(var(--bump) / 2);
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Main nav
 * ----------------------
 */
[data-nav=open] .m-main-nav:not(.m-main-nav__modal) {
  margin: 0 50px 0 0;
}
@media (max-width: 767px) {
  [data-nav=open] .m-main-nav:not(.m-main-nav__modal) {
    margin: 0;
  }
}
.m-main-nav > ul {
  display: flex;
  align-items: center;
  flex-flow: row wrap;
  align-content: center;
  justify-content: flex-end;
  -moz-column-gap: calc(var(--bump) / 2 + 1px);
       column-gap: calc(var(--bump) / 2 + 1px);
  width: 100%;
}
@media (max-width: 767px) {
  .m-main-nav > ul {
    display: none;
  }
}
.m-main-nav > ul > li:last-of-type > a {
  margin: auto calc(var(--smallBump) / 2);
}
.m-main-nav > ul > li.menu-item-li {
  display: flex;
  justify-content: center;
  position: relative;
  font-family: var(--font-title);
  font-size: 18px;
  line-height: 28px;
  font-weight: bold;
  text-decoration: none;
  text-transform: uppercase;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.m-main-nav > ul > li.menu-item-li:last-of-type {
  margin-right: 0;
}
.m-main-nav > ul > li.menu-item-li > a {
  padding: 0;
  color: var(--c-white);
  text-decoration: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
}
.m-main-nav > ul > li.menu-item-li:after {
  content: "";
  position: absolute;
  margin: 0 auto;
  bottom: 0;
  width: 0;
  height: 2px;
  background-color: var(--c-white);
}
.m-main-nav > ul > li.menu-item-li:hover:after {
  width: 100%;
}
.m-main-nav > ul > li > a.menu-item-li {
  display: flex;
  position: relative;
  margin: calc(var(--bump) / 4) 0;
}
.m-main-nav__modal {
  display: none;
}
[data-nav=open] .m-main-nav__modal {
  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;
  position: fixed;
  top: 95px;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: var(--c-pompeii);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  z-index: 1;
  overflow-y: scroll;
}
.m-main-nav__modal > ul {
  display: flex;
  align-items: center;
  flex-direction: column;
  align-content: center;
  gap: calc(var(--bump) / 2);
  padding: var(--bump) 0;
  max-width: 500px;
  width: 100%;
}
@media (max-width: 767px) {
  .m-main-nav__modal > ul {
    max-width: 70%;
    width: 100%;
  }
}
.m-main-nav__modal > ul > li.menu-item-li {
  font-size: clamp(18px, 4vw, 28px);
  line-height: clamp(28px, 5vw, 38px);
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Banner
 * ----------------------
 */
.m-no-banner {
  margin-top: calc(var(--bump) * 3);
}
@media (max-width: 767px) {
  .m-no-banner {
    margin-top: var(--bump);
  }
}

.m-banner-homepage {
  position: relative;
  /* browser specific letter spacing css fixes for text circle */
}
@media (max-width: 767px) {
  .m-banner-homepage {
    margin: 0;
  }
}
.m-banner-homepage__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  color: var(--c-white);
  z-index: 1;
  background-color: rgba(0, 0, 0, 0.3);
}
.m-banner-homepage__content__grid {
  margin: auto;
  width: 100%;
}
.m-banner-homepage__image {
  position: relative;
}
.m-banner-homepage__image-credit {
  position: absolute;
  bottom: 0;
  display: block;
  width: 100%;
  background-color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
  line-height: 16px;
}
.m-banner-homepage__image-credit .grid .col-12 {
  padding: 0;
}
.m-banner-homepage__image--video-present {
  display: block;
  top: 0;
  position: absolute;
  bottom: 0;
  opacity: 1;
  transition: var(--transition);
}
.m-banner-homepage__image--video-present[data-playstate=play] {
  opacity: 0;
}
@media (max-width: 767px) {
  .m-banner-homepage__image--video-present[data-playstate=play] {
    opacity: 1;
  }
}
@media (max-width: 767px) {
  .m-banner-homepage__image--video-present {
    position: relative;
    display: block;
  }
}
.m-banner-homepage__video-icon {
  position: absolute;
  bottom: 2px;
  cursor: pointer;
  z-index: 1;
}
.m-banner-homepage__video-icon.playing .m-banner__video-icon--item.play {
  display: none;
}
.m-banner-homepage__video-icon.paused .m-banner__video-icon--item.pause {
  display: none;
}
.m-banner-homepage__video-icon--item {
  background-color: #fff;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  padding: 10px;
  grid-gap: 10px;
}
.m-banner-homepage__video-icon--item h4 {
  margin-bottom: 0;
}
.m-banner-homepage__video-container {
  width: 100%;
  height: 100%;
  z-index: -1;
  position: relative;
  padding-bottom: 57.175%;
  display: block;
  opacity: 0;
}
.m-banner-homepage__video-container[data-playstate=play] {
  opacity: 1;
}
.m-banner-homepage__video-container[data-playstate=pause] {
  opacity: 0;
}
@media (max-width: 767px) {
  .m-banner-homepage__video-container {
    display: none;
  }
}
.m-banner-homepage__video-container--controls {
  position: absolute;
  right: 0;
  bottom: 40px;
  z-index: 1;
  background: transparent;
  border: none;
}
@media (max-width: 1299px) {
  .m-banner-homepage__video-container--controls {
    right: 50px;
  }
}
.m-banner-homepage__video-container--controls-container {
  margin: 0;
  width: 100%;
  display: flex;
  align-self: center;
}
@media (max-width: 767px) {
  .m-banner-homepage__video-container--controls-container {
    display: none;
  }
}
.m-banner-homepage__video-container--pause {
  display: none;
}
[data-playstate=play] .m-banner-homepage__video-container--pause {
  display: block;
}
.m-banner-homepage__video-container--play {
  display: none;
}
[data-playstate=pause] .m-banner-homepage__video-container--play {
  display: block;
}
.m-banner-homepage__body {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-direction: column;
  position: relative;
}
.m-banner-homepage__body[data-playstate=play] {
  opacity: 0;
}
.m-banner-homepage__body[data-playstate=pause] {
  opacity: 1;
}
.m-banner-homepage__body:after {
  content: "";
  display: block;
  position: absolute;
  top: -7.5px;
  left: -7.5%;
  background-color: black;
  height: 150%;
  width: 110%;
  z-index: -1;
  opacity: 0.65;
  border-radius: 39px;
  filter: blur(65px);
}
.m-banner-homepage__body .h1,
.m-banner-homepage__body h1 {
  font-size: clamp(34px, 4vw, 42px);
  line-height: clamp(44px, 5vw, 52px);
  margin: 0 0 calc(var(--bump) / 3);
  font-family: var(--font-title-reg);
}
.m-banner-homepage__body .h2,
.m-banner-homepage__body h2 {
  font-size: clamp(18px, 4vw, 18px);
  line-height: clamp(25px, 4vw, 25px);
  font-family: var(--font-title-reg);
  font-weight: normal;
}
.m-banner-homepage__body .h1,
.m-banner-homepage__body h1,
.m-banner-homepage__body h2,
.m-banner-homepage__body .h2 {
  color: var(--c-white);
}
.m-banner-homepage__copy {
  font-size: var(--fontlarge);
  line-height: var(--smallLineHeight);
  font-family: var(--fontSemiBold);
  margin: 0 0 1rem;
}
.m-banner-homepage__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  overflow: hidden;
  background-color: var(--c-black);
  opacity: 0.3;
}
.m-banner-homepage video {
  width: 100%;
  height: 100%;
  z-index: -1;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.m-banner-homepage img {
  width: 100%;
  height: 100%;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
}
.m-banner-homepage .a-btn {
  display: block;
  width: auto;
}
.m-banner-homepage #container {
  margin: 0%;
}
.m-banner-homepage #circle {
  position: absolute;
  right: 0;
  top: 0;
  width: 100%;
  height: 100%;
}
.m-banner-homepage #circle text {
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: normal;
  letter-spacing: 0.8px;
}
@media not all and (-webkit-min-device-pixel-ratio: 0), not all and (min-resolution: 0.001dpcm) {
  .m-banner-homepage #circle text {
    letter-spacing: 0.175px;
  }
}
@-moz-document url-prefix() {
  .m-banner-homepage #circle text {
    letter-spacing: 0.175px;
  }
}
.m-banner-homepage #circle svg {
  position: absolute;
  top: -75px;
  left: -69px;
  bottom: 0;
  right: 0;
  width: 230px;
  height: 230px;
  -webkit-animation-name: rotate;
  animation-name: rotate;
  -webkit-animation-duration: 5s;
  animation-duration: 5s;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
}
[data-playstate=play] .m-banner-homepage #circle svg, .m-banner-homepage #circle svg:hover {
  animation-name: none;
}
@-webkit-keyframes rotate {
  from {
    -webkit-transform: rotate(360deg);
  }
  to {
    -webkit-transform: rotate(0);
  }
}
@-moz-keyframes rotate {
  from {
    -moz-transform: rotate(360deg);
  }
  to {
    -moz-transform: rotate(0);
  }
}
@-ms-keyframes rotate {
  from {
    -ms-transform: rotate(360deg);
  }
  to {
    -ms-transform: rotate(0);
  }
}
@-o-keyframes rotate {
  from {
    -o-transform: rotate(360deg);
  }
  to {
    -o-transform: rotate(0);
  }
}
@keyframes rotate {
  from {
    transform: rotate(360deg);
  }
  to {
    transform: rotate(0);
  }
}

.m-exhibition-content {
  margin: 12px 0 8px 0;
}

.m-banner-default {
  position: relative;
  margin-bottom: 70px;
}
.m-banner-default--video .m-banner__image--video-present {
  display: block;
  top: 0;
  position: absolute;
  bottom: 0;
  opacity: 1;
  transition: var(--transition);
}
.m-banner-default--video .m-banner__image--video-present[data-playstate=play] {
  opacity: 1;
}
@media (max-width: 767px) {
  .m-banner-default--video .m-banner__image--video-present[data-playstate=play] {
    opacity: 1;
  }
}
@media (max-width: 767px) {
  .m-banner-default--video .m-banner__image--video-present {
    display: block;
  }
}
@media (max-width: 991px) {
  .m-banner-default--video .m-banner__image--video-present {
    display: block;
    width: 100%;
  }
}
@media (max-width: 767px) {
  .m-banner-default {
    display: flex;
    flex-direction: column-reverse;
    margin-bottom: 24px;
  }
}
.m-banner-default__video-icon {
  position: absolute;
  bottom: 2px;
  cursor: pointer;
  z-index: 1;
}
.m-banner-default__video-icon.playing .m-banner__video-icon--item.play {
  display: none;
}
.m-banner-default__video-icon.paused .m-banner__video-icon--item.pause {
  display: none;
}
.m-banner-default__video-icon--item {
  background-color: #fff;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  padding: 10px;
  grid-gap: 10px;
}
.m-banner-default__video-icon--item h4 {
  margin-bottom: 0;
}
.m-banner-default__video-container {
  width: 100%;
  height: 100%;
  z-index: -1;
  position: relative;
  padding-bottom: 37.625%;
  display: block;
}
.m-banner-default__video-container.ct-banner-video {
  width: 100%;
  height: 100%;
  z-index: -1;
  position: unset;
  padding-bottom: 37.625%;
  display: block;
}
@media (max-width: 767px) {
  .m-banner-default__video-container.ct-banner-video {
    z-index: 1;
  }
}
.m-banner-default__video-container.ct-banner-video .video-modal.active .video-container video {
  height: auto;
}
.m-banner-default__video-container.ct-banner-video .video-modal.active .video-container button {
  background-image: url("../img/icon-pause.svg");
  right: 40px;
  top: -15px;
}
.m-banner-default__video-container.ct-banner-video .video-modal.active .video-container button[data-playstate=pause] {
  background-image: url("../img/icon-play.svg");
}
.m-banner-default__video-container--controls {
  position: absolute;
  transform: translateY(-100%);
  z-index: 1;
  background: var(--c-primary);
  color: var(--c-white);
  border: none;
  display: flex;
  gap: calc(var(--bump) / 2);
  align-items: center;
  justify-content: center;
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
  padding: calc(var(--bump) / 2);
  font-size: 32px;
  line-height: 32px;
}
@media (max-width: 767px) {
  .m-banner-default__video-container--controls {
    font-size: 16px;
    line-height: 25px;
    font-family: var(--font-bold);
    gap: calc(var(--bump) / 3);
  }
}
.m-banner-default__video-container--controls svg {
  width: 29px;
  height: 36px;
}
@media (max-width: 767px) {
  .m-banner-default__video-container--controls svg {
    width: 13px;
    height: 17px;
  }
}
.m-banner-default__video-container--controls.button-control[data-playstate=play] {
  display: flex;
}
.m-banner-default__video-container--controls.button-control[data-playstate=pause] {
  display: flex;
}
.m-banner-default__video-container--controls[data-playstate=play] {
  display: none;
}
.m-banner-default__video-container--controls[data-playstate=pause] {
  display: flex;
}
.m-banner-default__video-container--controls--mobile {
  position: relative;
  transform: none;
  width: 100%;
}
.m-banner-default__video-container--controls-container {
  position: absolute;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.m-banner-default__video-container--controls-container[data-playstate=play] {
  display: none;
}
.m-banner-default__video-container--controls-container[data-playstate=pause] {
  display: flex;
}
@media (max-width: 767px) {
  .m-banner-default__video-container--controls-container {
    height: unset;
    bottom: 0;
    position: fixed;
    z-index: 1;
  }
}
.m-banner-default__video-container--controls-container--mobile {
  position: relative;
  width: 100%;
  margin: calc(var(--bump) / 2) 0;
  height: auto;
  display: none;
}
@media (max-width: 767px) {
  .m-banner-default__video-container--controls-container--mobile {
    display: block;
  }
}
.m-banner-default__image {
  position: relative;
}
.m-banner-default__image-credit {
  position: absolute;
  bottom: 0;
  display: block;
  width: 100%;
  background-color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
  line-height: 16px;
}
.m-banner-default__image-credit .grid .col-12 {
  padding: 0;
}
.m-banner-default__image--video-present {
  display: none;
}
.m-banner-default__body {
  margin: 0;
  position: absolute;
  bottom: 0;
  width: 100%;
  height: -moz-fit-content;
  height: fit-content;
  z-index: 1;
  background-color: rgba(255, 255, 255, 0.9);
}
.m-banner-default__body__content {
  min-height: 152px;
  align-items: center;
  display: grid;
}
@media (max-width: 767px) {
  .m-banner-default__body__content {
    min-height: 72px;
  }
}
.m-banner-default--no-image .m-banner-default__body {
  position: relative;
  bottom: auto;
}
@media (max-width: 767px) {
  .m-banner-default__body {
    position: relative;
  }
}
.m-banner-default__body.is-sticky {
  bottom: auto;
  background-color: var(--c-white);
  width: 100% !important;
}
.m-banner-default__body .taxonomy-term h2 {
  margin: 0;
  line-height: 0;
}
.m-banner-default__body .taxonomy-term a {
  font-size: var(--fontSizeBody);
  line-height: var(--lineHeightBody);
  color: var(--c-text);
  text-decoration: none;
}
.m-banner-default__body .taxonomy-term a:hover {
  text-decoration: underline;
}
.m-banner-default__body h1 {
  font-family: var(--font-body);
  font-weight: normal;
  margin: 0;
}
.m-banner-default__body p {
  color: var(--c-pompeii);
}
.m-banner-default__booking {
  display: flex;
  justify-content: center;
  align-items: center;
}
.m-banner-default__booking .a-btn {
  display: block;
  width: 100%;
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
}
.m-banner-default__taxonomy {
  display: flex;
  justify-content: flex-start;
  gap: calc(var(--bump) / 2);
  flex-flow: row wrap;
}
.m-banner-default__quick-links {
  display: flex;
  flex-flow: row wrap;
  -moz-column-gap: calc(var(--baseUnit) * 3);
       column-gap: calc(var(--baseUnit) * 3);
  margin: 0;
}
.m-banner-default__quick-links li {
  text-decoration: none;
  list-style: none;
}
.m-banner-default__quick-links li a:hover {
  color: var(--c-pompeii);
}
.m-banner-default img {
  width: 100%;
  height: auto;
  display: block;
}
.m-banner-default video {
  width: 100%;
  height: 100%;
  z-index: -1;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  -o-object-fit: cover;
     object-fit: cover;
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Linked logos
 * ----------------------
 */
.m-logos a {
  display: block;
}
.m-logos a:hover {
  opacity: 0.7;
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Social links
 * ----------------------
 */
/**
 * Styling
 */
.m-social-links {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: calc(var(--bump) / 3);
  flex-flow: row wrap;
}
.m-social-links__link {
  height: calc(var(--bump) * 1.47);
  width: calc(var(--bump) * 1.47);
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.m-social-links__link:last-child {
  margin-right: 0;
}
.m-social-links__link svg {
  width: 33px;
  height: 33px;
  -o-object-fit: cover;
     object-fit: cover;
}
.m-social-links__link rect {
  transition: 0.5s var(--easing);
  fill: var(--c-primary);
}
.m-social-links__link path {
  fill: var(--c-white);
}
.m-social-links__link:hover rect {
  opacity: 0.6;
}
.m-social-links__link:hover path {
  opacity: 0.6;
}

.m-search-overlay {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}
@media (max-width: 767px) {
  .m-search-overlay {
    position: relative;
    top: 95px;
    padding-bottom: 95px;
  }
}
.m-search-overlay p:last-of-type {
  margin-bottom: calc(var(--bump) * 2);
}
@media (max-width: 767px) {
  .m-search-overlay p:last-of-type {
    margin-bottom: var(--bump);
  }
}
.m-search-overlay p a {
  color: var(--c-white);
}
.m-search-overlay .m-block--views-exposed-filter-blocksite-search-search-block {
  width: 100%;
  margin: 0 0 var(--bump);
}
.m-search-overlay .m-block__suggested-pages.m-suggested-pages a {
  font-family: var(--font-title);
  font-weight: bold;
  padding: 8px 20px;
  color: var(--c-white);
  background: var(--c-pompeii);
  display: inline-block;
  text-decoration: none;
  text-transform: uppercase;
  border: 1px solid var(--c-pompeii);
  font-size: 16px;
  line-height: 25px;
  font-family: var(--font-title);
  font-weight: bold;
  padding: 8px 20px;
  color: var(--c-white);
  background: var(--c-pompeii);
  display: inline-block;
  text-decoration: none;
  text-transform: uppercase;
  border: 1px solid var(--c-pompeii);
  font-size: 16px;
  line-height: 25px;
  background: var(--c-pompeii);
  color: #fff;
  text-transform: uppercase;
  min-width: 120px;
  text-align: center;
  border: 1px var(--c-white) solid;
}
@media (max-width: 767px) {
  .m-search-overlay .m-block__suggested-pages.m-suggested-pages a {
    text-align: center;
    -moz-text-align-last: center;
         text-align-last: center;
  }
}
.m-search-overlay .m-block__suggested-pages.m-suggested-pages a:hover, .m-search-overlay .m-block__suggested-pages.m-suggested-pages a:active {
  background: var(--c-white);
  color: var(--c-pompeii);
  border: 1px solid var(--c-pompeii);
}
.m-search-overlay .m-block__suggested-pages.m-suggested-pages a:focus {
  outline: 1px dashed var(--c-black);
}
@media (max-width: 767px) {
  .m-search-overlay .m-block__suggested-pages.m-suggested-pages a {
    text-align: center;
    -moz-text-align-last: center;
         text-align-last: center;
  }
}
.m-search-overlay .m-block__suggested-pages.m-suggested-pages a:hover, .m-search-overlay .m-block__suggested-pages.m-suggested-pages a:active {
  background: var(--c-white);
  color: var(--c-pompeii);
  border: 1px solid var(--c-pompeii);
}
.m-search-overlay .m-block__suggested-pages.m-suggested-pages a:focus {
  outline: 1px dashed var(--c-black);
}
.m-search-overlay .m-block__suggested-pages.m-suggested-pages a:hover, .m-search-overlay .m-block__suggested-pages.m-suggested-pages a:active {
  background: #fff;
  color: var(--c-pompeii);
}
.m-search-overlay .m-block__suggested-pages.m-suggested-pages a:focus {
  outline: 1px dashed var(--c-black);
  color: #fff;
}
@media (max-width: 767px) {
  .m-search-overlay .m-block__suggested-pages.m-suggested-pages a {
    width: auto;
  }
}
.m-search-overlay form {
  display: flex;
  gap: 8px;
}
.m-search-overlay form .js-form-item {
  margin: 0;
  width: 100%;
}
.m-search-overlay form .js-form-item input {
  width: 100%;
}
.m-search-overlay form .a-btn.js-form-submit {
  position: relative;
  display: flex;
  align-items: center;
  gap: 5px;
  height: 100%;
  background-color: var(--c-primary);
  color: var(--c-white);
  font-size: 18px;
  line-height: 28px;
}
@media (max-width: 767px) {
  [data-searchoverlay=open] .m-search-overlay form .a-btn.js-form-submit {
    text-align: left;
    text-indent: -9999px;
  }
}
.m-search-overlay form .a-btn.js-form-submit:hover {
  background-color: var(--c-white);
  color: var(--c-pompeii);
}
.m-search-overlay form .a-btn.js-form-submit:hover:after {
  background-image: url("../img/search.svg");
  filter: invert(30%) grayscale(100%) brightness(70%) contrast(4);
}
.m-search-overlay form .a-btn.js-form-submit:after {
  content: "";
  background-image: url("../img/search.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  display: block;
  height: 32px;
  width: 32px;
}
@media (max-width: 767px) {
  .m-search-overlay form .a-btn.js-form-submit:after {
    height: 21px;
    width: 21px;
  }
}
.m-search-overlay .m-search-copy {
  width: 50%;
}
@media (max-width: 767px) {
  .m-search-overlay .m-search-copy {
    width: 100%;
  }
}
.m-search-overlay__wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: var(--c-pompeii);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  z-index: -10;
  opacity: 0;
  visibility: hidden;
}
@media (max-width: 767px) {
  .m-search-overlay__wrapper {
    overflow-y: scroll;
  }
}
[data-searchoverlay=open] .m-search-overlay__wrapper {
  z-index: 1;
  opacity: 1;
  visibility: visible;
}
.m-search-overlay__wrapper > .grid {
  margin: 0;
}
.m-search-overlay__title {
  color: var(--c-white);
  font-family: var(--font-body);
  font-weight: normal;
}
.m-search-overlay__suggested-pages {
  font-size: 18px;
  line-height: 25px;
  color: var(--c-white);
  margin: 0 0 var(--bump);
}
.m-search-overlay__suggested-pages__links {
  display: flex;
  flex-flow: row wrap;
  -moz-column-gap: 8px;
       column-gap: 8px;
  row-gap: 12px;
}
.m-search-overlay__suggested-pages__links a {
  font-family: var(--font-title);
  font-weight: bold;
  padding: 8px 20px;
  color: var(--c-white);
  background: var(--c-pompeii);
  display: inline-block;
  text-decoration: none;
  text-transform: uppercase;
  border: 1px solid var(--c-pompeii);
  font-size: 16px;
  line-height: 25px;
  color: var(--c-white);
  background: var(--c-pompeii);
  border: 1px solid var(--c-white);
}
@media (max-width: 767px) {
  .m-search-overlay__suggested-pages__links a {
    text-align: center;
    -moz-text-align-last: center;
         text-align-last: center;
  }
}
.m-search-overlay__suggested-pages__links a:hover, .m-search-overlay__suggested-pages__links a:active {
  background: var(--c-white);
  color: var(--c-pompeii);
  border: 1px solid var(--c-pompeii);
}
.m-search-overlay__suggested-pages__links a:focus {
  outline: 1px dashed var(--c-black);
}
.m-search-overlay__suggested-pages__links a:hover {
  background-color: var(--c-white);
  color: var(--c-pompeii);
  border: 1px solid var(--c-pompeii);
}

#sliding-popup.sliding-popup-bottom {
  background-color: var(--c-black);
  box-shadow: 0 -2px 28px 0 rgba(29, 29, 27, 0.06);
  width: 100%;
}
#sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-message {
  max-width: 65%;
}
@media (max-width: 1199px) {
  #sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-message {
    max-width: 60%;
  }
}
@media (max-width: 991px) {
  #sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-message {
    max-width: 50%;
  }
}
@media (max-width: 767px) {
  #sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-message {
    max-width: 100%;
  }
}
#sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-message h2 {
  line-height: 1.2;
  font-size: clamp(18px, 7vw, var(--fontSizeHeadingFour));
}
#sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-message p {
  display: inline;
  color: var(--c-darkGrey);
}
#sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-message a {
  text-decoration: underline;
}
#sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-more-button {
  cursor: pointer;
  display: inline;
  height: auto;
  margin: 0;
  padding: 0;
  border: none;
  text-decoration: underline;
  background: none;
  color: var(--c-darkGrey);
  font-family: var(--fontRegular);
  font-size: var(--fontSize);
  line-height: var(--lineHeight);
  font-size: 12px;
  line-height: 16.8px;
}
#sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-content {
  margin: 15px auto;
  padding: 15px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-direction: row;
  max-width: var(--containerWidth);
}
@media (max-width: 767px) {
  #sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-content {
    flex-direction: column;
  }
}
#sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-buttons {
  max-width: 35%;
  transform: translateX(-10%);
  display: flex;
  align-items: flex-end;
  gap: calc(var(--bump) / 2);
}
@media (max-width: 1199px) {
  #sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-buttons {
    max-width: 40%;
  }
}
@media (max-width: 991px) {
  #sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-buttons {
    max-width: 50%;
  }
}
@media (max-width: 767px) {
  #sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-buttons {
    max-width: 100%;
    width: 100%;
    transform: none;
  }
}
#sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-secondary-button {
  font-family: var(--font-title);
  font-weight: bold;
  padding: 8px 20px;
  color: var(--c-white);
  background: var(--c-pompeii);
  display: inline-block;
  text-decoration: none;
  text-transform: uppercase;
  border: 1px solid var(--c-pompeii);
  font-size: 16px;
  line-height: 25px;
  border: 1px solid var(--c-white);
  background-color: var(--c-black);
}
@media (max-width: 767px) {
  #sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-secondary-button {
    text-align: center;
    -moz-text-align-last: center;
         text-align-last: center;
  }
}
#sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-secondary-button:hover, #sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-secondary-button:active {
  background: var(--c-white);
  color: var(--c-pompeii);
  border: 1px solid var(--c-pompeii);
}
#sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-secondary-button:focus {
  outline: 1px dashed var(--c-black);
}
#sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-default-button {
  position: relative;
  font-family: var(--font-title);
  font-weight: bold;
  padding: 8px 20px;
  color: var(--c-white);
  background: var(--c-pompeii);
  display: inline-block;
  text-decoration: none;
  text-transform: uppercase;
  border: 1px solid var(--c-pompeii);
  font-size: 16px;
  line-height: 25px;
  text-shadow: none;
  box-shadow: none;
  border-radius: 0;
}
@media (max-width: 767px) {
  #sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-default-button {
    text-align: center;
    -moz-text-align-last: center;
         text-align-last: center;
  }
}
#sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-default-button:hover, #sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-default-button:active {
  background: var(--c-white);
  color: var(--c-pompeii);
  border: 1px solid var(--c-pompeii);
}
#sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-default-button:focus {
  outline: 1px dashed var(--c-black);
}
#sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-default-button:hover {
  background-color: transparent;
  text-decoration: none;
}
@media (max-width: 767px) {
  #sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-default-button {
    max-width: 100%;
    margin: 30px 0 0 0;
  }
}
#sliding-popup.sliding-popup-bottom > .eu-cookie-compliance-banner .eu-cookie-compliance-default-button:after {
  position: absolute;
  right: 0;
  background-position: right;
  transform: translateX(100%);
}

/**
 * Organisims
 */
.o-node--background {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  opacity: 0.4;
  background: linear-gradient(0deg, rgba(248, 248, 248, 0) 0%, #f8f8f8 100%);
  z-index: -2;
}
.o-node--background:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  transform: translateY(-100%);
  box-shadow: inset 0px 200px 25px -150px var(--c-white);
  width: 100%;
  padding-bottom: 62.5%;
  z-index: 1;
}
.o-node--background:after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-image: url("../img/menu-background-2x.png");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  padding-bottom: 62.5%;
  opacity: 0.5;
}
.o-node.o-medal-landing .m-entity {
  margin: 40px 0;
}
.o-node.o-medal-landing .m-entity h2 {
  letter-spacing: normal;
  word-spacing: normal;
}
.o-node.o-medal-landing .m-banner-default {
  margin-bottom: 40px;
}

.o-homepage-content > :nth-child(even) .m-entity__featured__container {
  flex-direction: row-reverse;
}

/**
 * ----------------------
 * Un.titled
 * Organisms - Header
 * ----------------------
 */
.o-header {
  position: relative;
  width: 100%;
  z-index: 5;
  transition: all 0.3s var(--easing);
  background-color: var(--c-pompeii);
  color: var(--c-white);
}
.o-header__logo {
  position: relative;
  display: flex;
  align-items: center;
  margin-right: auto;
  flex-shrink: 1;
  padding-right: calc(var(--bump) / 2);
  margin-bottom: 0;
  min-height: 44px;
  transition: 0.15s var(--easing);
}
.o-header__logo:hover {
  opacity: 0.75;
}
[data-nav=open] .o-header__logo {
  z-index: 2;
}
.o-header__logo svg {
  width: 100%;
  max-width: 151px;
  min-width: 100px;
  height: 58px;
}
[data-nav=open] .o-header__logo svg path {
  fill: var(--c-white);
}
[data-nav=open] .o-header__logo svg path:nth-of-type(1), [data-nav=open] .o-header__logo svg path:nth-of-type(2) {
  display: none;
}
.o-header__logo svg path:nth-of-type(1), .o-header__logo svg path:nth-of-type(2) {
  display: none;
}
.o-header__inner {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  align-content: center;
}
@media (max-width: 767px) {
  .o-header__inner {
    padding: 0;
  }
}
.o-header__book a {
  font-family: var(--font-title);
  font-weight: bold;
  padding: 8px 20px;
  color: var(--c-white);
  background: var(--c-pompeii);
  display: inline-block;
  text-decoration: none;
  text-transform: uppercase;
  border: 1px solid var(--c-pompeii);
  font-size: 16px;
  line-height: 25px;
  background: var(--c-pompeii);
  color: #fff;
  text-transform: uppercase;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .o-header__book a {
    text-align: center;
    -moz-text-align-last: center;
         text-align-last: center;
  }
}
.o-header__book a:hover, .o-header__book a:active {
  background: var(--c-white);
  color: var(--c-pompeii);
  border: 1px solid var(--c-pompeii);
}
.o-header__book a:focus {
  outline: 1px dashed var(--c-black);
}
.o-header__book a:hover, .o-header__book a:active {
  background: #fff;
  color: var(--c-pompeii);
}
.o-header__book a:focus {
  outline: 1px dashed var(--c-black);
  color: #fff;
}
@media (max-width: 767px) {
  .o-header__book {
    display: none;
  }
}
.o-header__search-wrapper {
  text-decoration: none;
}

/**
 * ----------------------
 * Un.titled
 * Organisms - Footer
 * ----------------------
 */
.o-footer {
  color: var(--c-white);
  background-color: var(--c-pompeii);
  padding: 0 0 calc(var(--bump) / 3) 0;
}
.o-footer a {
  color: var(--c-white);
}
.o-footer p {
  font-size: 18px;
  line-height: 30px;
}
.o-footer__section-title {
  color: var(--c-white);
  font-size: 20px;
  line-height: 28px;
  margin: 0 0 calc(var(--bump) / 6);
}
@media (max-width: 991px) {
  .o-footer__find-us, .o-footer__stay-in-touch, .o-footer__social {
    width: 100%;
    max-width: 344px;
  }
}
.o-footer__stay-in-touch ul li {
  list-style: none;
}
.o-footer__stay-in-touch ul li a {
  text-decoration: none;
}
.o-footer__row__top h1,
.o-footer__row__top .h1,
.o-footer__row__top h2,
.o-footer__row__top .h2,
.o-footer__row__top h3,
.o-footer__row__top .h3,
.o-footer__row__top h4,
.o-footer__row__top .h4,
.o-footer__row__top h5,
.o-footer__row__top .h5,
.o-footer__row__top h6,
.o-footer__row__top .h6 {
  color: var(--c-white);
  font-size: clamp(18px, 2.5vw, 20px);
  line-height: 28px;
  margin: 0 0 calc(var(--bump) / 3);
}
.o-footer__row__top p {
  font-family: var(--font-body);
  font-size: clamp(18px, 2.5vw, 18px);
  line-height: clamp(28px, 5vw, 32px);
  margin: 0 0 calc(var(--bump) / 3);
}
.o-footer__row__top ul {
  margin: 0;
}
.o-footer__row__top ul li {
  list-style-type: none;
}
.o-footer__row__top a {
  font-family: var(--font-body);
  line-height: 32px;
  text-decoration: none;
}
.o-footer__row__top a:hover {
  text-decoration: underline;
}
.o-footer__row__top nav {
  text-align: left;
  -moz-text-align-last: left;
       text-align-last: left;
}
.o-footer__row__pre-footer {
  padding: calc(var(--bump) / 2);
  background-color: var(--c-black);
  margin: 0 0 calc(var(--bump) * 1.5);
  padding: var(--bump) 0 var(--bump);
}
@media (max-width: 767px) {
  .o-footer__row__pre-footer {
    padding: 0 0 var(--bump);
    margin: 0 0 calc(var(--bump) / 2);
  }
}
.o-footer__row__pre-footer > .grid {
  display: flex;
  flex-direction: row;
}
@media (max-width: 991px) {
  .o-footer__row__pre-footer > .grid {
    flex-direction: column;
    align-items: center;
  }
}
.o-footer__row__pre-footer > .grid > [class*=col-] {
  text-align: left;
  -moz-text-align-last: left;
       text-align-last: left;
}
@media (max-width: 991px) {
  .o-footer__row__pre-footer > .grid > [class*=col-] {
    text-align: center;
    -moz-text-align-last: center;
         text-align-last: center;
  }
}
.o-footer__menu ul {
  display: flex;
  flex-wrap: wrap;
}
@media (max-width: 991px) {
  .o-footer__menu ul {
    flex-direction: column;
  }
}
.o-footer__menu ul li {
  padding: 0 50px 0 0;
}
@media (max-width: 991px) {
  .o-footer__menu ul li {
    margin: 20px 0 0;
    padding: 0;
  }
  .o-footer__menu ul li:first-of-type {
    margin: 0;
  }
}
.o-footer__menu ul li > a {
  font-family: var(--font-bold);
  font-size: 18px;
  line-height: 22px;
  font-weight: bold;
  text-decoration: none;
  text-transform: uppercase;
}
.o-footer__menu ul li > a:hover {
  text-decoration: underline;
}
.o-footer__social {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: var(--bump);
}
@media (max-width: 991px) {
  .o-footer__social {
    align-items: center;
  }
}
.o-footer__social__back-to-top {
  font-family: var(--font-title);
  font-weight: bold;
  padding: 8px 20px;
  color: var(--c-white);
  background: var(--c-pompeii);
  display: inline-block;
  text-decoration: none;
  text-transform: uppercase;
  border: 1px solid var(--c-pompeii);
  font-size: 16px;
  line-height: 25px;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  transition: 0.3s var(--easing);
  white-space: nowrap;
  display: inline-flex;
  justify-content: center;
  gap: calc(var(--bump) / 3);
  align-items: center;
  background-color: transparent;
  border: 1px solid var(--c-white);
  color: var(--c-white);
}
@media (max-width: 767px) {
  .o-footer__social__back-to-top {
    text-align: center;
    -moz-text-align-last: center;
         text-align-last: center;
  }
}
.o-footer__social__back-to-top:hover, .o-footer__social__back-to-top:active {
  background: var(--c-white);
  color: var(--c-pompeii);
  border: 1px solid var(--c-pompeii);
}
.o-footer__social__back-to-top:focus {
  outline: 1px dashed var(--c-black);
}
.o-footer__social__back-to-top::after {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  margin-left: 5px;
  background-image: url("../img/arrow-up-white.svg");
  background-repeat: no-repeat;
  height: 14px;
  width: 10px;
  background-position: center;
  transition: 0.3s var(--easing);
}
.o-footer__social__back-to-top:hover {
  background-color: var(--c-white);
  color: var(--c-black);
}
.o-footer__social__back-to-top:hover::after {
  content: "";
  animation: shakeVertical 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  perspective: 1000px;
}
.o-footer__social__back-to-top:hover:after {
  background-image: url("../img/arrow-up-black.svg");
}
.o-footer__social .m-footer---social-links {
  width: 100%;
}
.o-footer__credits {
  display: flex;
  justify-content: flex-end;
}
.o-footer__credits span {
  font-family: var(--font-body);
}
.o-footer__credits span a {
  color: rgba(255, 255, 255, 0.7);
}
.o-footer__separator {
  width: 100%;
  height: 1px;
  background-color: var(--c-bg);
}

/**
 * ----------------------
 * Un.titled
 * Organisms - Views
 * ----------------------
 */
.o-view__listing {
  display: grid;
  gap: calc(var(--bump) / 2);
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 767px) {
  .o-view__listing {
    grid-template-columns: repeat(1, 1fr);
  }
}
.o-view__listing .views-row article {
  height: 100%;
}
.o-view__listing .views-row article .o-teaser {
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}

.view__what_s_on form,
.view__video form,
.view__article form,
.view__what_s_on_archive form {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-direction: column;
  width: 100%;
}
.view__what_s_on form .form-select ul,
.view__video form .form-select ul,
.view__article form .form-select ul,
.view__what_s_on_archive form .form-select ul {
  display: flex;
  flex-flow: row wrap;
  gap: calc(var(--baseUnit) * 1.5);
  margin: 0;
}
.view__what_s_on form .form-select ul li,
.view__video form .form-select ul li,
.view__article form .form-select ul li,
.view__what_s_on_archive form .form-select ul li {
  list-style: none;
}
.view__what_s_on form .js-form-item-type .form-select ul li > a,
.view__video form .js-form-item-type .form-select ul li > a,
.view__article form .js-form-item-type .form-select ul li > a,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a {
  font-family: var(--font-title);
  font-weight: bold;
  padding: 8px 20px;
  color: var(--c-white);
  background: var(--c-pompeii);
  display: inline-block;
  text-decoration: none;
  text-transform: uppercase;
  border: 1px solid var(--c-pompeii);
  font-size: 16px;
  line-height: 25px;
  background-color: var(--c-white);
  color: var(--c-pompeii);
  border-width: 1px;
  border-style: solid;
}
@media (max-width: 767px) {
  .view__what_s_on form .js-form-item-type .form-select ul li > a,
  .view__video form .js-form-item-type .form-select ul li > a,
  .view__article form .js-form-item-type .form-select ul li > a,
  .view__what_s_on_archive form .js-form-item-type .form-select ul li > a {
    text-align: center;
    -moz-text-align-last: center;
         text-align-last: center;
  }
}
.view__what_s_on form .js-form-item-type .form-select ul li > a:hover, .view__what_s_on form .js-form-item-type .form-select ul li > a:active,
.view__video form .js-form-item-type .form-select ul li > a:hover,
.view__video form .js-form-item-type .form-select ul li > a:active,
.view__article form .js-form-item-type .form-select ul li > a:hover,
.view__article form .js-form-item-type .form-select ul li > a:active,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a:hover,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a:active {
  background: var(--c-white);
  color: var(--c-pompeii);
  border: 1px solid var(--c-pompeii);
}
.view__what_s_on form .js-form-item-type .form-select ul li > a:focus,
.view__video form .js-form-item-type .form-select ul li > a:focus,
.view__article form .js-form-item-type .form-select ul li > a:focus,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a:focus {
  outline: 1px dashed var(--c-black);
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[All]"].bef-link--selected,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[All]"].bef-link--selected,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[All]"].bef-link--selected,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[All]"].bef-link--selected {
  background-color: var(--c-pompeii);
  color: var(--c-white);
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[All]"].bef-link--selected:hover,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[All]"].bef-link--selected:hover,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[All]"].bef-link--selected:hover,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[All]"].bef-link--selected:hover {
  color: var(--c-white) !important;
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[8]"],
.view__video form .js-form-item-type .form-select ul li > a[name*="type[8]"],
.view__article form .js-form-item-type .form-select ul li > a[name*="type[8]"],
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[8]"] {
  border-color: var(--c-exhibition);
  color: var(--c-exhibition);
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[8]"]:hover,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[8]"]:hover,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[8]"]:hover,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[8]"]:hover {
  color: var(--c-exhibition) !important;
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[8]"].bef-link--selected,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[8]"].bef-link--selected,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[8]"].bef-link--selected,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[8]"].bef-link--selected {
  background-color: var(--c-exhibition);
  color: var(--c-white);
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[8]"].bef-link--selected:hover,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[8]"].bef-link--selected:hover,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[8]"].bef-link--selected:hover,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[8]"].bef-link--selected:hover {
  color: var(--c-white) !important;
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[9]"],
.view__video form .js-form-item-type .form-select ul li > a[name*="type[9]"],
.view__article form .js-form-item-type .form-select ul li > a[name*="type[9]"],
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[9]"] {
  border-color: var(--c-talks);
  color: var(--c-talks);
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[9]"]:hover,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[9]"]:hover,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[9]"]:hover,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[9]"]:hover {
  color: var(--c-talks) !important;
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[9]"].bef-link--selected,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[9]"].bef-link--selected,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[9]"].bef-link--selected,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[9]"].bef-link--selected {
  background-color: var(--c-talks);
  color: var(--c-white);
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[9]"].bef-link--selected:hover,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[9]"].bef-link--selected:hover,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[9]"].bef-link--selected:hover,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[9]"].bef-link--selected:hover {
  color: var(--c-white) !important;
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[10]"],
.view__video form .js-form-item-type .form-select ul li > a[name*="type[10]"],
.view__article form .js-form-item-type .form-select ul li > a[name*="type[10]"],
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[10]"] {
  border-color: var(--c-tours);
  color: var(--c-tours);
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[10]"]:hover,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[10]"]:hover,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[10]"]:hover,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[10]"]:hover {
  color: var(--c-tours) !important;
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[10]"].bef-link--selected,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[10]"].bef-link--selected,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[10]"].bef-link--selected,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[10]"].bef-link--selected {
  background-color: var(--c-tours);
  color: var(--c-white);
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[10]"].bef-link--selected:hover,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[10]"].bef-link--selected:hover,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[10]"].bef-link--selected:hover,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[10]"].bef-link--selected:hover {
  color: var(--c-white) !important;
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[13]"],
.view__video form .js-form-item-type .form-select ul li > a[name*="type[13]"],
.view__article form .js-form-item-type .form-select ul li > a[name*="type[13]"],
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[13]"] {
  border-color: var(--c-families);
  color: var(--c-families);
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[13]"]:hover,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[13]"]:hover,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[13]"]:hover,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[13]"]:hover {
  color: var(--c-families) !important;
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[13]"].bef-link--selected,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[13]"].bef-link--selected,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[13]"].bef-link--selected,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[13]"].bef-link--selected {
  background-color: var(--c-families);
  color: var(--c-white);
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[13]"].bef-link--selected:hover,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[13]"].bef-link--selected:hover,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[13]"].bef-link--selected:hover,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[13]"].bef-link--selected:hover {
  color: var(--c-white) !important;
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[11]"],
.view__video form .js-form-item-type .form-select ul li > a[name*="type[11]"],
.view__article form .js-form-item-type .form-select ul li > a[name*="type[11]"],
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[11]"] {
  border-color: var(--c-workshops);
  color: var(--c-workshops);
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[11]"]:hover,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[11]"]:hover,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[11]"]:hover,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[11]"]:hover {
  color: var(--c-workshops) !important;
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[11]"].bef-link--selected,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[11]"].bef-link--selected,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[11]"].bef-link--selected,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[11]"].bef-link--selected {
  background-color: var(--c-workshops);
  color: var(--c-white);
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[11]"].bef-link--selected:hover,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[11]"].bef-link--selected:hover,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[11]"].bef-link--selected:hover,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[11]"].bef-link--selected:hover {
  color: var(--c-white) !important;
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[14]"],
.view__video form .js-form-item-type .form-select ul li > a[name*="type[14]"],
.view__article form .js-form-item-type .form-select ul li > a[name*="type[14]"],
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[14]"] {
  border-color: var(--c-offsite-touring);
  color: var(--c-offsite-touring);
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[14]"]:hover,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[14]"]:hover,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[14]"]:hover,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[14]"]:hover {
  color: var(--c-offsite-touring) !important;
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[14]"].bef-link--selected,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[14]"].bef-link--selected,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[14]"].bef-link--selected,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[14]"].bef-link--selected {
  background-color: var(--c-offsite-touring);
  color: var(--c-white);
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[14]"].bef-link--selected:hover,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[14]"].bef-link--selected:hover,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[14]"].bef-link--selected:hover,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[14]"].bef-link--selected:hover {
  color: var(--c-white) !important;
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[12]"],
.view__video form .js-form-item-type .form-select ul li > a[name*="type[12]"],
.view__article form .js-form-item-type .form-select ul li > a[name*="type[12]"],
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[12]"] {
  border-color: var(--c-soane-lates);
  color: var(--c-soane-lates);
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[12]"]:hover,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[12]"]:hover,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[12]"]:hover,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[12]"]:hover {
  color: var(--c-soane-lates) !important;
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[12]"].bef-link--selected,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[12]"].bef-link--selected,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[12]"].bef-link--selected,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[12]"].bef-link--selected {
  background-color: var(--c-soane-lates);
  color: var(--c-white);
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[12]"].bef-link--selected:hover,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[12]"].bef-link--selected:hover,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[12]"].bef-link--selected:hover,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[12]"].bef-link--selected:hover {
  color: var(--c-white) !important;
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[282]"],
.view__video form .js-form-item-type .form-select ul li > a[name*="type[282]"],
.view__article form .js-form-item-type .form-select ul li > a[name*="type[282]"],
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[282]"] {
  border-color: var(--c-course);
  color: var(--c-course);
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[282]"].bef-link--selected,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[282]"].bef-link--selected,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[282]"].bef-link--selected,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[282]"].bef-link--selected {
  background-color: var(--c-course);
  color: var(--c-white);
}
.view__what_s_on form .js-form-item-type .form-select ul li > a[name*="type[282]"].bef-link--selected:hover,
.view__video form .js-form-item-type .form-select ul li > a[name*="type[282]"].bef-link--selected:hover,
.view__article form .js-form-item-type .form-select ul li > a[name*="type[282]"].bef-link--selected:hover,
.view__what_s_on_archive form .js-form-item-type .form-select ul li > a[name*="type[282]"].bef-link--selected:hover {
  color: var(--c-white) !important;
}
.view__what_s_on form .js-form-item-run-date .form-select ul,
.view__video form .js-form-item-run-date .form-select ul,
.view__article form .js-form-item-run-date .form-select ul,
.view__what_s_on_archive form .js-form-item-run-date .form-select ul {
  -moz-column-gap: calc(var(--baseUnit) * 6);
       column-gap: calc(var(--baseUnit) * 6);
  padding-right: calc(var(--baseUnit) * -3);
}
.view__what_s_on form .js-form-item-run-date .form-select li,
.view__video form .js-form-item-run-date .form-select li,
.view__article form .js-form-item-run-date .form-select li,
.view__what_s_on_archive form .js-form-item-run-date .form-select li {
  position: relative;
}
.view__what_s_on form .js-form-item-run-date .form-select li:first-child,
.view__video form .js-form-item-run-date .form-select li:first-child,
.view__article form .js-form-item-run-date .form-select li:first-child,
.view__what_s_on_archive form .js-form-item-run-date .form-select li:first-child {
  padding-left: 24px;
  border-left: 1px solid #D8D8D8;
  height: calc(var(--baseUnit) * 3);
}
.view__what_s_on form .js-form-item-run-date .form-select li:after,
.view__video form .js-form-item-run-date .form-select li:after,
.view__article form .js-form-item-run-date .form-select li:after,
.view__what_s_on_archive form .js-form-item-run-date .form-select li:after {
  content: "";
  background-color: #D8D8D8;
  position: absolute;
  right: calc(var(--baseUnit) * -3);
  height: calc(var(--baseUnit) * 3);
  width: 1px;
}
.view__what_s_on form .js-form-item-run-date .form-select li > a,
.view__video form .js-form-item-run-date .form-select li > a,
.view__article form .js-form-item-run-date .form-select li > a,
.view__what_s_on_archive form .js-form-item-run-date .form-select li > a {
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 28px;
  color: var(--c-pompeii);
  color: var(--c-primary);
  text-decoration: none;
  letter-spacing: 0;
  text-transform: none;
}
.view__what_s_on form .js-form-item-run-date .form-select li > a:hover,
.view__video form .js-form-item-run-date .form-select li > a:hover,
.view__article form .js-form-item-run-date .form-select li > a:hover,
.view__what_s_on_archive form .js-form-item-run-date .form-select li > a:hover {
  color: var(--c-pompeii);
}
.view__what_s_on form .js-form-item-run-date .form-select li > a.bef-link--selected,
.view__video form .js-form-item-run-date .form-select li > a.bef-link--selected,
.view__article form .js-form-item-run-date .form-select li > a.bef-link--selected,
.view__what_s_on_archive form .js-form-item-run-date .form-select li > a.bef-link--selected {
  color: var(--c-pompeii);
  font-family: var(--font-bold);
  text-decoration: underline;
}
.view__what_s_on .form-actions,
.view__video .form-actions,
.view__article .form-actions,
.view__what_s_on_archive .form-actions {
  display: none;
}
.view__what_s_on .js-form-item-for ul li > a,
.view__video .js-form-item-for ul li > a,
.view__article .js-form-item-for ul li > a,
.view__what_s_on_archive .js-form-item-for ul li > a {
  font-family: var(--font-title);
  font-weight: bold;
  padding: 8px 20px;
  color: var(--c-white);
  background: var(--c-pompeii);
  display: inline-block;
  text-decoration: none;
  text-transform: uppercase;
  border: 1px solid var(--c-pompeii);
  font-size: 16px;
  line-height: 25px;
  border-width: 1px;
  border-style: solid;
  background-color: var(--c-white);
  color: var(--c-pompeii);
}
@media (max-width: 767px) {
  .view__what_s_on .js-form-item-for ul li > a,
  .view__video .js-form-item-for ul li > a,
  .view__article .js-form-item-for ul li > a,
  .view__what_s_on_archive .js-form-item-for ul li > a {
    text-align: center;
    -moz-text-align-last: center;
         text-align-last: center;
  }
}
.view__what_s_on .js-form-item-for ul li > a:hover, .view__what_s_on .js-form-item-for ul li > a:active,
.view__video .js-form-item-for ul li > a:hover,
.view__video .js-form-item-for ul li > a:active,
.view__article .js-form-item-for ul li > a:hover,
.view__article .js-form-item-for ul li > a:active,
.view__what_s_on_archive .js-form-item-for ul li > a:hover,
.view__what_s_on_archive .js-form-item-for ul li > a:active {
  background: var(--c-white);
  color: var(--c-pompeii);
  border: 1px solid var(--c-pompeii);
}
.view__what_s_on .js-form-item-for ul li > a:focus,
.view__video .js-form-item-for ul li > a:focus,
.view__article .js-form-item-for ul li > a:focus,
.view__what_s_on_archive .js-form-item-for ul li > a:focus {
  outline: 1px dashed var(--c-black);
}
.view__what_s_on .js-form-item-for ul li > a.bef-link--selected,
.view__video .js-form-item-for ul li > a.bef-link--selected,
.view__article .js-form-item-for ul li > a.bef-link--selected,
.view__what_s_on_archive .js-form-item-for ul li > a.bef-link--selected {
  background-color: var(--c-pompeii);
  color: var(--c-white);
}
.view__what_s_on .js-form-item-for ul li > a.bef-link--selected:hover,
.view__video .js-form-item-for ul li > a.bef-link--selected:hover,
.view__article .js-form-item-for ul li > a.bef-link--selected:hover,
.view__what_s_on_archive .js-form-item-for ul li > a.bef-link--selected:hover {
  color: var(--c-white) !important;
}

header .m-entity__view {
  display: flex;
  gap: calc(var(--baseUnit) * 5);
  flex-flow: row wrap;
  margin: 0 0 var(--bump);
}
header .m-entity__view .views-field-field-run-date {
  position: relative;
}
header .m-entity__view .views-field-field-run-date:after {
  content: "";
  background-color: #D8D8D8;
  width: 1px;
  height: 100%;
  position: absolute;
  top: 0;
  right: calc(var(--bump) / -2);
}

.view__what_s_on__filters {
  display: flex;
  flex-flow: row wrap;
  width: 100%;
  -moz-column-gap: calc(var(--baseUnit) * 6);
       column-gap: calc(var(--baseUnit) * 6);
}
.view__what_s_on__archive-link {
  display: block;
  position: relative;
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 28px;
  color: var(--c-pompeii);
  color: var(--c-primary);
  text-decoration: none;
  letter-spacing: 0;
  text-transform: none;
}
.view__what_s_on__archive-link:hover {
  color: var(--c-pompeii);
}
.view__what_s_on__archive-link:after {
  content: "";
  background-color: #D8D8D8;
  position: absolute;
  right: calc(var(--baseUnit) * -3);
  height: calc(var(--baseUnit) * 3);
  width: 1px;
}

.view__what_s_on_archive__filters {
  display: flex;
  -moz-column-gap: calc(var(--baseUnit) * 5);
       column-gap: calc(var(--baseUnit) * 5);
  align-items: flex-start;
}
.view__what_s_on_archive__whats-on-link {
  display: block;
  position: relative;
  font-family: var(--font-bold);
  font-size: 18px;
  line-height: 28px;
  color: var(--c-pompeii);
  text-decoration: underline;
  letter-spacing: 0;
  text-transform: none;
}
.view__what_s_on_archive__whats-on-link:hover {
  color: var(--c-pompeii);
}

.view__site_search header h1 {
  font-size: clamp(28px, 2.5vw, 34px);
  line-height: clamp(38px, 5vw, 44px);
  font-family: var(--font-body);
}
.view__site_search form {
  display: none;
}
.view__site_search .views-row {
  border-bottom: 1px solid #1f1d1e;
  padding-bottom: 30px;
  margin-bottom: 30px;
}
.view__site_search .views-row h2.h4 {
  font-family: var(--font-body);
}
.view__site_search .views-row h2.h4 a {
  text-decoration: none;
}
.view__site_search .views-row h2.h4 a:hover {
  text-decoration: underline;
}

.view__what_s_on_archive__filters {
  display: flex;
  -moz-column-gap: calc(var(--baseUnit) * 5);
       column-gap: calc(var(--baseUnit) * 5);
  justify-content: flex-end;
  align-items: flex-start;
  margin-bottom: calc(var(--bump) / 2);
}
@media (max-width: 767px) {
  .view__what_s_on_archive__filters {
    flex-direction: column;
    justify-content: flex-start;
    row-gap: calc(var(--baseUnit) * 1.25);
  }
}

.archive-filters__years a {
  display: none;
}
.archive-filters__years select {
  padding: 0;
  width: 200px;
  color: var(--c-pompeii);
  font-family: var(--font-regular);
}
.archive-filters__years select option {
  color: var(--c-primary);
}

/**
 * ----------------------
 * Un.titled
 * Organisms - Search results
 * ----------------------
 */
#search-form {
  display: none;
  visibility: hidden;
}

.o-search-results-wrapper h2 {
  display: none;
}
.o-search-results-wrapper .result__title {
  margin-bottom: 0;
}
.o-search-results-wrapper__list {
  margin-bottom: calc(var(--bump) * 2);
}
.o-search-results-wrapper__list ol {
  list-style: none;
  margin: 0;
  padding: 0;
}
.o-search-results-wrapper__list ol li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.o-search-results-wrapper__list ol li {
  margin-bottom: var(--bump);
}

/**
 * ----------------------
 * Un.titled
 * Organisms - sidebar
 * ----------------------
 */
.o-sidebar {
  padding: var(--bump) 20px calc(var(--bump) * 1.5);
}
.o-sidebar__info-box {
  background-color: var(--c-b_red);
  color: var(--c-white);
}
.o-sidebar__info-box a {
  color: var(--c-white);
  font-family: var(--font-body);
  font-weight: normal;
  text-decoration: underline;
}
.o-sidebar__info-box a:hover {
  text-decoration: none;
}
.o-sidebar__info-box h2 {
  color: var(--c-white);
}
.o-sidebar__info-box h2:last-of-type {
  margin: 0;
}
.o-sidebar__info-box p:last-of-type {
  margin: 1.5em 0;
}
.o-sidebar__info-box .taxonomy-term h2 {
  font-size: clamp(18px, 2.5vw, 18px);
  line-height: clamp(27px, 5vw, 27px);
}
.o-sidebar__info-box .taxonomy-term h2 a {
  color: var(--c-white);
  font-family: var(--font-body);
  font-weight: normal;
  text-decoration: underline;
}
.o-sidebar__info-box .taxonomy-term h2 a:hover {
  text-decoration: none;
}
.o-sidebar__title {
  color: var(--c-white);
}
.o-sidebar__booking-link {
  width: 100%;
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
  margin: calc(var(--bump) / 2) 0 0;
  padding: 8px 15px;
  transition: 0.3s var(--easing);
  text-decoration: none;
  text-transform: none;
}
.o-sidebar__booking-link:hover {
  color: var(--c-pompeii) !important;
  background-color: var(--c-white);
}
.o-sidebar__booking-link[href^=http]:hover {
  color: var(--c-pompeii);
  background-color: transparent;
}
.o-sidebar__booking-link[href^=http]:hover:after {
  background: url("../img/ext-alt-red.png") 50% no-repeat;
  transition: 0.3s var(--easing);
}
.o-sidebar__booking-link[href^=http]:after {
  content: " ";
  display: inline-block;
  height: 15px;
  width: 15px;
  background: url("../img/ext-alt-white.png") 50% no-repeat;
  background-size: cover;
  margin-left: 5px;
}
.o-sidebar__booking-link--external[href^=http]:after {
  background: url("../img/ext-alt-red.png") 50% no-repeat;
}
.o-sidebar__booking-link--external:hover {
  text-decoration: underline;
}
.o-sidebar__tickets-link {
  color: var(--c-pompeii);
}
.o-sidebar__tickets-link:hover {
  color: var(--c-pompeii);
}
.o-sidebar__tickets-link[href^=http]:after {
  content: " ";
  display: inline-block;
  height: 15px;
  width: 15px;
  background: url("../img/ext-alt-red.png") 50% no-repeat;
  background-size: cover;
  margin-left: 5px;
}
.o-sidebar__subnav {
  background-color: var(--c-grey);
  color: var(--c-primary);
}
.o-sidebar__subnav h3 {
  margin: 0;
}
.o-sidebar__subnav h3 a {
  color: var(--c-primary);
  text-decoration: none;
  font-family: var(--font-bold);
}
.o-sidebar__subnav h3:after {
  content: "";
  display: block;
  height: 2px;
  width: 60px;
  background-color: var(--c-primary);
  margin: calc(var(--bump) / 2) 0;
}
.o-sidebar__subnav__menu ul li a {
  color: var(--c-primary);
  text-decoration: none;
}
.o-sidebar__subnav__menu ul li a:hover {
  text-decoration: underline;
}

/**
 * ----------------------
 * Un.titled
 * Organisms - Teasers
 * ----------------------
 */
.o-teaser {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  height: 100%;
}
.o-teaser__thumb {
  display: block;
  width: 100%;
  position: relative;
}
.o-teaser__thumb .a-image-credit {
  left: calc(var(--bump) / 1.5);
}
.o-teaser__thumb img {
  width: 100%;
  height: auto;
  display: block;
  transition: var(--transition);
}
.o-teaser__thumb:hover img {
  opacity: 0.6;
}
.o-teaser__date p, .o-teaser__price p {
  margin: 0;
}
.o-teaser__date p:last-of-type, .o-teaser__price p:last-of-type {
  margin: 0;
}
.o-teaser__date:last-of-type, .o-teaser__price:last-of-type {
  margin: 0 0 calc(var(--bump) / 2);
}
.o-teaser__content {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 24px calc(var(--bump) / 2);
  margin: 0 auto;
  background-color: var(--c-grey);
  width: 100%;
  height: 100%;
}
@media (max-width: 767px) {
  .o-teaser__content {
    margin: 0;
  }
}
.o-teaser__content > p:last-of-type {
  margin-bottom: var(--bump);
}
@media (max-width: 767px) {
  .o-teaser__content > p:last-of-type {
    margin-bottom: calc(var(--bump) / 2);
  }
}
.o-teaser__title {
  position: relative;
  text-align: left;
  -moz-text-align-last: left;
       text-align-last: left;
  font-weight: normal;
  margin: 0 0 var(--bump);
  font-size: clamp(22px, 2.5vw, 22px);
  line-height: clamp(32px, 5vw, 32px);
}
.o-teaser__title--listing:after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  bottom: 0;
  transform: translateY(12px);
  height: 1px;
  width: 32px;
  background-color: var(--c-black);
}
.o-teaser__title a {
  font-family: var(--font-bold);
  text-decoration: none;
}
@media (max-width: 767px) {
  .o-teaser__title {
    text-align: left;
    -moz-text-align-last: left;
         text-align-last: left;
  }
}
.o-teaser__buttons {
  margin-top: auto;
  display: flex;
  flex-flow: row wrap;
  align-self: flex-start;
  gap: calc(var(--baseUnit) * 1.5);
}
@media (max-width: 767px) {
  .o-teaser__buttons {
    width: 100%;
  }
}
.o-teaser__event-type {
  position: absolute;
  bottom: 0;
  left: 0;
  color: var(--c-white);
  width: 100%;
  font-family: var(--font-bold);
  padding: calc(var(--bump) / 3) calc(var(--bump) / 2);
  background-color: var(--c-white);
}
.o-teaser__event-type.exhibitions {
  background-color: var(--c-exhibition);
}
.o-teaser__event-type.talks {
  background-color: var(--c-talks);
}
.o-teaser__event-type.tours {
  background-color: var(--c-tours);
}
.o-teaser__event-type.evening-opening {
  background-color: var(--c-evening);
}
.o-teaser__event-type.families {
  background-color: var(--c-families);
}
.o-teaser__event-type.workshops {
  background-color: var(--c-workshops);
}
.o-teaser__event-type.courses-and-classes {
  background-color: var(--c-course);
}
.o-teaser__event-type.offsite-touring {
  background-color: var(--c-offsite-touring);
}
.o-teaser__event-type.soane-lates {
  background-color: var(--c-soane-lates);
}

/**
 * Templates
 */
@media (max-width: 767px) {
  .m-collection-image img {
    width: 100%;
  }
}

/*---------------------------------- 
   collections overlay import
  ----------------------------------*/
.collection-overlay {
  overflow: scroll;
  display: none;
  position: fixed;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.8);
  z-index: 500;
  text-align: center;
  cursor: pointer;
  padding-top: 8%;
}
.collection-overlay .insert:not(.search-overlay) {
  cursor: default;
  display: block;
  background: #fff;
  padding: 2em;
  width: 100%;
  max-width: 800px;
  border-radius: 3px;
  margin-bottom: 2em;
  text-align: left;
  position: relative;
}
.collection-overlay .insert:not(.search-overlay) h3,
.collection-overlay .insert:not(.search-overlay) .h3 {
  margin-top: 0;
}
.collection-overlay .insert:not(.search-overlay) ul.book-links li {
  display: block;
  padding: 0.5em 0;
  border-bottom: 1px solid var(--c-pompeii);
  text-align: right;
}
.collection-overlay .insert:not(.search-overlay) ul.book-links li .date {
  float: left;
  padding: 0.5em 0;
}
.collection-overlay .insert:not(.search-overlay) ul.book-links li:last-child {
  border-bottom: 0;
}
.collection-overlay .insert:not(.search-overlay) .close {
  display: block;
  position: absolute;
  top: 1.5em;
  right: 1.5em;
  height: 40px;
  width: 40px;
  cursor: pointer;
  text-align: left;
  text-indent: -9999px;
}
.collection-overlay .insert:not(.search-overlay) .close:after {
  text-indent: 0;
  font-family: var(--font-oslo);
  content: "+";
  transform: rotate(45deg);
  color: var(--c-pompeii);
  height: 40px;
  width: 40px;
  display: block;
  float: right;
  text-align: center;
  line-height: 40px;
  transition: all 0.2s ease-in-out;
  font-size: 60px;
}
.collection-overlay .insert:not(.search-overlay) .close:hover:after {
  transform: rotate(-45deg);
  color: var(--c-text);
  line-height: 40px;
}

.collection-overlay .insert.collection-image {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  max-width: 100%;
  margin-bottom: 0;
  border-radius: 0;
  overflow: scroll;
}
.collection-overlay .insert.collection-image .image {
  width: 50%;
  height: 100%;
  float: left;
  margin-right: 2em;
  text-align: center;
  position: relative;
}
@media (max-width: 767px) {
  .collection-overlay .insert.collection-image .image {
    width: 100%;
    height: auto;
    margin: 0 auto;
  }
}
.collection-overlay .insert.collection-image .image img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  vertical-align: middle;
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}
@media (max-width: 767px) {
  .collection-overlay .insert.collection-image .image img {
    margin: unset;
    position: unset;
  }
}
.collection-overlay .insert.collection-image .image-container {
  display: flex;
  height: 100%;
}
@media (max-width: 767px) {
  .collection-overlay .insert.collection-image .image-container {
    flex-flow: column;
  }
}
.collection-overlay .insert.collection-image .content {
  float: left;
  width: 40%;
  margin: auto;
}
@media (max-width: 767px) {
  .collection-overlay .insert.collection-image .content {
    width: 100%;
    margin: 0 auto;
  }
}
.collection-overlay .insert.collection-image .nav {
  outline: 0;
  font-size: 0;
  color: #fff;
  border: 0;
  cursor: pointer;
  position: absolute;
  right: 1%;
  top: 45%;
  background-color: #fff;
  border-radius: 50%;
  width: 80px;
  height: 80px;
  transform: rotate(-90deg) scale(0.8);
}
.collection-overlay .insert.collection-image .nav:after, .collection-overlay .insert.collection-image .nav:before {
  content: "";
  position: absolute;
  left: 10px;
  width: 0;
  height: 0;
  border: 30px solid transparent;
  border-bottom: 0;
}
.collection-overlay .insert.collection-image .nav:before {
  top: 30px;
  border-top-color: var(--c-pompeii);
  top: 31px;
}
.collection-overlay .insert.collection-image .nav:after {
  top: 30px;
  border-top-color: #fff;
}
.collection-overlay .insert.collection-image .nav.prev-image {
  left: 1%;
  transform: rotate(90deg) scale(0.8);
}
.collection-overlay .insert.collection-image .nav:hover {
  opacity: 0.6;
}

.modal-open-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  width: 100%;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .modal-open-wrapper {
    display: none;
    visibility: hidden;
  }
}

.modal-open-mobile {
  display: none;
  visibility: hidden;
}
@media screen and (max-width: 767px) {
  .modal-open-mobile {
    display: block;
    visibility: visible;
  }
}

.modal-open:not(body) {
  background-image: url("../images/icon-play.svg");
  background-position: 20px center;
  background-size: 30px;
  background-color: #000;
  color: var(--c-white);
  border: 0;
  text-transform: uppercase;
  font-size: 1.75em;
  padding: 15px 20px 15px 20px;
  border-radius: 2px;
  cursor: pointer;
  transition: 0.2s ease-in-out;
  margin-top: -5em;
}
@media screen and (max-width: 767px) {
  .modal-open:not(body) {
    background-size: 20px;
    margin-top: 1em;
    display: block;
    width: 100%;
  }
}
.modal-open:not(body):hover {
  background-color: var(--c-pompeii);
}

.video-modal {
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 11;
  background-color: #000;
  padding-top: 150px;
  display: none;
}
.video-modal.active {
  display: block;
}
.video-modal button {
  position: absolute;
  transform: translateY(-100%);
  top: 0;
  right: 0;
  background-color: transparent;
  text-align: left;
  text-indent: -9999px;
  border: 0;
  background-image: url("../img/close.svg");
  background-size: cover;
  display: block;
  height: 40px;
  width: 40px;
  cursor: pointer;
  border-radius: 2px;
  transition: 0.2s ease-in-out;
}
.video-modal button:hover {
  background-color: var(--c-pompeii);
}
.video-modal > .grid {
  margin: auto;
}
.video-modal .file {
  padding-top: 4em;
}
.video-modal iframe {
  width: 100%;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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USxpQkRGSztFSHFsQlg7QUFDRjs7QUk1a0JBO0VDMFhJLDhCRHpYb0I7RUMwWHBCLDJCRDFYb0I7RUMyWHBCLHNCRDNYb0I7RUFDcEI7RUNvR0E7RUFDQTtFQUNBO0VBNENBLG1CQURvQjtFQUVwQix1QkFGb0I7RUFHcEIsZUFIb0I7RUQ5SXBCO0VBQ0E7RUFDQTtFQ05JO0dBQ0E7RUFDQTtFRGNKO0FKK2tCSjtBSXRsQkk7RUNnWEEsOEJEOVd3QjtFQytXeEIsMkJEL1d3QjtFQ2dYeEIsc0JEaFh3QjtFQ0hwQjtFQUNBO0VBQ0E7QUw2bEJSOztBSWhsQkE7RUNrV0ksOEJEaldvQjtFQ2tXcEIsMkJEbFdvQjtFQ21XcEIsc0JEbldvQjtFQ2hCaEI7RUFDQTtFQUNBO0VEZ0JKO0VBQ0E7RUFDQTtFQUNBLGFEckJrQjtFQ29DZDtHQUNBO0VBQ0E7QUp5a0JSO0FJeGxCSTtFQzBWQSw4QkR4VndCO0VDeVZ4QiwyQkR6VndCO0VDMFZ4QixzQkQxVndCO0VDekJwQjtFQUNBO0VBQ0E7QUxxbkJSO0FJemxCSTtFQzRFSTtFQUdKO0VBQ0E7RUQ5RUk7QUo2bEJSOztBS3JxQlE7RUFDSTtHQUVJO0FMdXFCaEI7O0FLMXFCUTtFQUNJO0dBRUk7QUw0cUJoQjs7QUsvcUJRO0VBQ0k7R0FFSTtBTGlyQmhCOztBS3ByQlE7RUFDSTtHQUVJO0FMc3JCaEI7O0FLenJCUTtFQUNJO0dBRUk7QUwyckJoQjs7QUs5ckJRO0VBQ0k7R0FFSTtBTGdzQmhCOztBS25zQlE7RUFDSTtHQUVJO0FMcXNCaEI7O0FLeHNCUTtFQUNJO0dBRUk7QUwwc0JoQjs7QUs3c0JRO0VBQ0k7R0FFSTtBTCtzQmhCOztBS2x0QlE7RUFDSTtHQUVJO0FMb3RCaEI7O0FLdnRCUTtFQUNJO0dBRUk7QUx5dEJoQjs7QUs1dEJRO0VBQ0k7R0FFSTtBTDh0QmhCOztBSXpvQkE7RUN4RlE7SUFDSTtLQUVJO0VMb3VCZDtFS3Z1Qk07SUFDSTtLQUVJO0VMd3VCZDtFSzN1Qk07SUFDSTtLQUVJO0VMNHVCZDtFSy91Qk07SUFDSTtLQUVJO0VMZ3ZCZDtFS252Qk07SUFDSTtLQUVJO0VMb3ZCZDtFS3Z2Qk07SUFDSTtLQUVJO0VMd3ZCZDtFSzN2Qk07SUFDSTtLQUVJO0VMNHZCZDtFSy92Qk07SUFDSTtLQUVJO0VMZ3dCZDtFS253Qk07SUFDSTtLQUVJO0VMb3dCZDtFS3Z3Qk07SUFDSTtLQUVJO0VMd3dCZDtFSzN3Qk07SUFDSTtLQUVJO0VMNHdCZDtFSy93Qk07SUFDSTtLQUVJO0VMZ3hCZDtBQUNGO0FJeHJCQTtFQzVGUTtJQUNJO0tBRUk7RUxzeEJkO0VLenhCTTtJQUNJO0tBRUk7RUwweEJkO0VLN3hCTTtJQUNJO0tBRUk7RUw4eEJkO0VLanlCTTtJQUNJO0tBRUk7RUxreUJkO0VLcnlCTTtJQUNJO0tBRUk7RUxzeUJkO0VLenlCTTtJQUNJO0tBRUk7RUwweUJkO0VLN3lCTTtJQUNJO0tBRUk7RUw4eUJkO0VLanpCTTtJQUNJO0tBRUk7RUxrekJkO0VLcnpCTTtJQUNJO0tBRUk7RUxzekJkO0VLenpCTTtJQUNJO0tBRUk7RUwwekJkO0VLN3pCTTtJQUNJO0tBRUk7RUw4ekJkO0VLajBCTTtJQUNJO0tBRUk7RUxrMEJkO0FBQ0Y7QUl0dUJBO0VDaEdRO0lBQ0k7S0FFSTtFTHcwQmQ7RUszMEJNO0lBQ0k7S0FFSTtFTDQwQmQ7RUsvMEJNO0lBQ0k7S0FFSTtFTGcxQmQ7RUtuMUJNO0lBQ0k7S0FFSTtFTG8xQmQ7RUt2MUJNO0lBQ0k7S0FFSTtFTHcxQmQ7RUszMUJNO0lBQ0k7S0FFSTtFTDQxQmQ7RUsvMUJNO0lBQ0k7S0FFSTtFTGcyQmQ7RUtuMkJNO0lBQ0k7S0FFSTtFTG8yQmQ7RUt2MkJNO0lBQ0k7S0FFSTtFTHcyQmQ7RUszMkJNO0lBQ0k7S0FFSTtFTDQyQmQ7RUsvMkJNO0lBQ0k7S0FFSTtFTGczQmQ7RUtuM0JNO0lBQ0k7S0FFSTtFTG8zQmQ7QUFDRjtBSXB4QkE7RUNwR1E7SUFDSTtLQUVJO0VMMDNCZDtFSzczQk07SUFDSTtLQUVJO0VMODNCZDtFS2o0Qk07SUFDSTtLQUVJO0VMazRCZDtFS3I0Qk07SUFDSTtLQUVJO0VMczRCZDtFS3o0Qk07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TG81Q047RUtwNENNO0lBbEJKLDJCQUZhO0tBSVQ7RUx3NUNOO0VLeDRDTTtJQWxCSiwyQkFGYTtLQUlUO0VMNDVDTjtFSzU0Q007SUFsQkosZ0JBRmE7S0FJVDtFTGc2Q047RUtoNUNNO0lBbEJKLDJCQUZhO0tBSVQ7RUxvNkNOO0VLcDVDTTtJQWxCSiwwQkFGYTtLQUlUO0VMdzZDTjtFS3g1Q007SUFsQkosY0FMUztLQU9MO0VMNDZDTjtBQUNGO0FJMzFDQTtFQ2xFUTtJQWxCSiwyQkFGYTtLQUlUO0VMazdDTjtFS2w2Q007SUFsQkosMkJBRmE7S0FJVDtFTHM3Q047RUt0NkNNO0lBbEJKLGdCQUZhO0tBSVQ7RUwwN0NOO0VLMTZDTTtJQWxCSiwyQkFGYTtLQUlUO0VMODdDTjtFSzk2Q007SUFsQkosMkJBRmE7S0FJVDtFTGs4Q047RUtsN0NNO0lBbEJKLGdCQUZhO0tBSVQ7RUxzOENOO0VLdDdDTTtJQWxCSiwyQkFGYTtLQUlUO0VMMDhDTjtFSzE3Q007SUFsQkosMkJBRmE7S0FJVDtFTDg4Q047RUs5N0NNO0lBbEJKLGdCQUZhO0tBSVQ7RUxrOUNOO0VLbDhDTTtJQWxCSiwyQkFGYTtLQUlUO0VMczlDTjtFS3Q4Q007SUFsQkosMEJBRmE7S0FJVDtFTDA5Q047RUsxOENNO0lBbEJKLGNBTFM7S0FPTDtFTDg5Q047QUFDRjtBSXo0Q0E7RUN0RVE7SUFsQkosMkJBRmE7S0FJVDtFTG8rQ047RUtwOUNNO0lBbEJKLDJCQUZhO0tBSVQ7RUx3K0NOO0VLeDlDTTtJQWxCSixnQkFGYTtLQUlUO0VMNCtDTjtFSzU5Q007SUFsQkosMkJBRmE7S0FJVDtFTGcvQ047RUtoK0NNO0lBbEJKLDJCQUZhO0tBSVQ7RUxvL0NOO0VLcCtDTTtJQWxCSixnQkFGYTtLQUlUO0VMdy9DTjtFS3grQ007SUFsQkosMkJBRmE7S0FJVDtFTDQvQ047RUs1K0NNO0lBbEJKLDJCQUZhO0tBSVQ7RUxnZ0ROO0VLaC9DTTtJQWxCSixnQkFGYTtLQUlUO0VMb2dETjtFS3AvQ007SUFsQkosMkJBRmE7S0FJVDtFTHdnRE47RUt4L0NNO0lBbEJKLDBCQUZhO0tBSVQ7RUw0Z0ROO0VLNS9DTTtJQWxCSixjQUxTO0tBT0w7RUxnaEROO0FBQ0Y7QUl2N0NBO0VDMUVRO0lBbEJKLDJCQUZhO0tBSVQ7RUxzaEROO0VLdGdETTtJQWxCSiwyQkFGYTtLQUlUO0VMMGhETjtFSzFnRE07SUFsQkosZ0JBRmE7S0FJVDtFTDhoRE47RUs5Z0RNO0lBbEJKLDJCQUZhO0tBSVQ7RUxraUROO0VLbGhETTtJQWxCSiwyQkFGYTtLQUlUO0VMc2lETjtFS3RoRE07SUFsQkosZ0JBRmE7S0FJVDtFTDBpRE47RUsxaERNO0lBbEJKLDJCQUZhO0tBSVQ7RUw4aUROO0VLOWhETTtJQWxCSiwyQkFGYTtLQUlUO0VMa2pETjtFS2xpRE07SUFsQkosZ0JBRmE7S0FJVDtFTHNqRE47RUt0aURNO0lBbEJKLDJCQUZhO0tBSVQ7RUwwakROO0VLMWlETTtJQWxCSiwwQkFGYTtLQUlUO0VMOGpETjtFSzlpRE07SUFsQkosY0FMUztLQU9MO0VMa2tETjtBQUNGO0FJcitDQTtFQzlFUTtJQWxCSiwyQkFGYTtLQUlUO0VMd2tETjtFS3hqRE07SUFsQkosMkJBRmE7S0FJVDtFTDRrRE47RUs1akRNO0lBbEJKLGdCQUZhO0tBSVQ7RUxnbEROO0VLaGtETTtJQWxCSiwyQkFGYTtLQUlUO0VMb2xETjtFS3BrRE07SUFsQkosMkJBRmE7S0FJVDtFTHdsRE47RUt4a0RNO0lBbEJKLGdCQUZhO0tBSVQ7RUw0bEROO0VLNWtETTtJQWxCSiwyQkFGYTtLQUlUO0VMZ21ETjtFS2hsRE07SUFsQkosMkJBRmE7S0FJVDtFTG9tRE47RUtwbERNO0lBbEJKLGdCQUZhO0tBSVQ7RUx3bUROO0VLeGxETTtJQWxCSiwyQkFGYTtLQUlUO0VMNG1ETjtFSzVsRE07SUFsQkosMEJBRmE7S0FJVDtFTGduRE47RUtobURNO0lBbEJKLGNBTFM7S0FPTDtFTG9uRE47QUFDRjtBTTl0REE7RUR3TEksbUJDdkxtQjtFRHdMbkIsdUJDeExtQjtFRHlMbkIsZUN6TG1CO0FOa3VEdkI7O0FNL3REQTtFRG9MSSxxQkNuTG1CO0VEb0xuQix5QkNwTG1CO0VEcUxuQixpQkNyTG1CO0FOb3VEdkI7QU0vdERJO0VEMkpBLG9CQzFKeUI7RUQySnpCLHNCQzNKeUI7RUQ0SnpCLGNDNUp5QjtBTm11RDdCOztBTS90REE7RUR5S0ksMkJDeEttQjtFRHlLbkIsK0JDekttQjtFRDBLbkIsdUJDMUttQjtBTm91RHZCOztBTTd0REE7RUR1S0ksdUJDdEt3QjtFRHVLeEIsMkJDdkt3QjtFRHdLeEIsbUJDeEt3QjtBTmt1RDVCOztBTS90REE7RURtS0ksK0JDbEt3QjtFRG1LeEIsbUNDbkt3QjtFRG9LeEIsMkJDcEt3QjtBTm91RDVCOztBTWp1REE7RUQrSkksMEJDOUp3QjtFRCtKeEIsOEJDL0p3QjtFRGdLeEIsc0JDaEt3QjtBTnN1RDVCOztBTW51REE7RUQySkksa0NDMUp3QjtFRDJKeEIsc0NDM0p3QjtFRDRKeEIsOEJDNUp3QjtBTnd1RDVCOztBTWp1REE7RURvTFE7RUF0QkosK0JDN0pxQjtFRDhKckIsdUJDOUpxQjtBTnN1RHpCOztBTW51REE7RURrTFE7RUF4QkosNkJDekpxQjtFRDBKckIscUJDMUpxQjtBTnd1RHpCO0FNcHVEUTtFQUNJO0FOc3VEWjs7QU1qdURBO0VEeUtRLHNCQ3hLaUI7RUQ4SXJCLDJCQzlJcUI7RUQrSXJCLG1CQy9JcUI7QU5zdUR6QjtBTWx1RFE7RUFDSTtBTm91RFo7O0FNL3REQTtFRDhKUSx3QkM3SmlCO0VEbUlyQiw2QkNuSXFCO0VEb0lyQixxQkNwSXFCO0FOb3VEekI7O0FNN3REQTtFRHNLUTtFQTlCSixpQ0N2SXVCO0VEd0l2Qix5QkN4SXVCO0FOa3VEM0I7O0FNL3REQTtFRG9LUTtFQWhDSiwrQkNuSXVCO0VEb0l2Qix1QkNwSXVCO0FOb3VEM0I7QU1qdURJO0VBQ0k7QU5tdURSOztBTS90REE7RURpS1EsMEJDaEttQjtFRDBIdkIsNkJDMUh1QjtFRDJIdkIscUJDM0h1QjtBTm91RDNCOztBTWp1REE7RUR5SlE7RUFsQ0osb0NDdEh1QjtFRHVIdkIsNEJDdkh1QjtBTnN1RDNCOztBTW51REE7RUR1SlE7RUFwQ0osbUNDbEh1QjtFRG1IdkIsMkJDbkh1QjtBTnd1RDNCOztBTWp1REE7RURtSVEsNEJDbElnQjtFRG9HcEIsMkJDcEdvQjtFRHFHcEIsbUJDckdvQjtBTnN1RHhCOztBTW51REE7RUQySFE7RUExQkosOEJDaEdvQjtFRGlHcEIsc0JDakdvQjtBTnd1RHhCOztBTXJ1REE7RUR5SFE7RUE1QkosNEJDNUZvQjtFRDZGcEIsb0JDN0ZvQjtFQUNwQjtBTjB1REo7O0FNdnVEQTtFRHNIUSwyQkNySGdCO0VEdUZwQiwwQkN2Rm9CO0VEd0ZwQixrQkN4Rm9CO0VBQ3BCO0FONHVESjs7QU16dURBO0VEaUhRLDZCQ2hIZ0I7RURrRnBCLDRCQ2xGb0I7RURtRnBCLG9CQ25Gb0I7RUFDcEI7QU44dURKOztBTXZ1REE7RURtSUk7RUFDQTtFQUNBO0FMd21ESjtBTXp1RFE7RUFDSTtBTjJ1RFo7O0FNdHVEQTtFRCtISTtFQUNBO0VBQ0E7QUwybURKO0FNeHVEUTtFQUNJO0VBQ0E7RUFDQTtBTjB1RFo7QU14dURZO0VEMUZSO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBTHEwREo7O0FNenVEQTtFRHFISTtFQUNBO0VBQ0E7QUx3bkRKO0FNM3VEUTtFQUNJO0VBQ0E7RUFDQTtBTjZ1RFo7QU0zdURZO0VEMUdSO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBTHcxREo7O0FNNXVEQTtFRDJHSTtFQUNBO0VBQ0E7QUxxb0RKO0FNOXVEUTtFQUNJO0VBQ0E7RUFDQTtBTmd2RFo7QU05dURZO0VEMUhSO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBTDIyREo7O0FNL3VEQTtFRGlHSTtFQUNBO0VBQ0E7QUxrcERKO0FNanZEUTtFQUNJO0VBQ0E7RUFDQTtBTm12RFo7QU1qdkRZO0VEMUlSO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBTDgzREo7O0FNNXVESTtFQUNJO0FOK3VEUjs7QU10dURBO0VEckZJO0VBQ0E7RUFDQTtFQWtEQSwwQkNtQ3dCO0VEbEN4Qiw4QkNrQ3dCO0VEakN4QixzQkNpQ3dCO0FO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O0FlbnhFSTs7Ozs7RUFJSTtFQUNBO0VBQ0E7QWZzeEVSO0FlL3dFUTs7Ozs7RUFDSTtBZnF4RVo7QWVqeEVJOztFQUNJO0Fmb3hFUjtBZWh4RVE7O0VBQ0k7QWZteEVaOztBZTV3RVE7RUFDSTtBZit3RVo7QWdCcHpESTtFRDVkSTtJQUlRO0VmZ3hFZDtBQUNGO0FlOXdFWTtFQUNJO0VBQ0E7QWZneEVoQjtBZTV3RVE7RUFDSTtBZjh3RVo7QWdCaDBESTtFRC9jSTtJQUlRO0VmK3dFZDtBQUNGO0FlN3dFWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FmK3dFaEI7QWU1d0VZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWY4d0VoQjs7QWV4d0VRO0VBQ0k7QWYyd0VaO0FnQjkxREk7RUQ5YUk7SUFJUTtFZjR3RWQ7QUFDRjtBZTF3RVk7RUFDSTtFQUNBO0FmNHdFaEI7QWV2d0VRO0VBQ0k7QWZ5d0VaO0FnQjEyREk7RURoYUk7SUFJUTtFZjB3RWQ7QUFDRjtBZXh3RVk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBZjB3RWhCO0FldndFWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FmeXdFaEI7O0FlbndFQTtBQUNBO0VBQ0k7QWZzd0VKOztBZW53RUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBZnN3RUo7QWVwd0VJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QWZzd0VSO0FlcHdFUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWZzd0VaO0FlcHdFWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWZzd0VoQjtBZW53RVk7RUFFSTtBZm93RWhCO0FlbndFZ0I7RUFDSTtBZnF3RXBCO0FlOXZFZ0I7RUFDSTtBZmd3RXBCOztBQXI4RUE7O0VBQUE7QWlCakNBOzs7OztF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O0E0Qmx2SE07RUFDRTtBNUJvdkhSO0E0Qi91SEk7RUFDRTtBNUJpdkhOO0E0Qi91SE07RUFDRTtFQUNBO0VBQ0E7QTVCaXZIUjtBNEIvdUhRO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E1Qml2SFY7QTRCeHVISTtFQUNFO0E1QjB1SE47QTRCeHVITTtFQUNFO0VBQ0E7RUFDQTtBNUIwdUhSO0E0Qnh1SFE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTVCMHVIVjtBNEJwdUhFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBNUJzdUhKO0E2QngxSEE7RUFDRTtBN0IwMUhGO0E4QjMxSEE7RUFDRTtBOUI2MUhGO0E4QnQxSEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBOUJ3MUhKO0E4QnQxSEk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBOUJ3MUhOO0ErQngzSEU7RUFDRTtBL0IwM0hKO0ErQngzSEU7RUFDRTtBL0IwM0hKO0FnQzkySEE7RUFDRTtFQUNBO0FoQ2czSEY7QWdDLzJIRTtFQUNFO0VBQ0E7RUFDQTtBaENpM0hKO0FnQy8ySEk7RUFDRTtFQUNBO0FoQ2kzSE47QWdDNzJIRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FoQysySEo7QWdDNTJIRTtFQUNFO0VBQ0E7QWhDODJISjtBZ0M1MkhJO0VBQ0U7QWhDODJITjtBZ0MxMkhFO0VBQ0U7RUFDQTtBaEM0MkhKO0FnQzEySEk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBaEM0MkhOO0FnQzEySE07RUFDRTtBaEM0MkhSO0FnQ2g2SEk7RUFDRTtFQUNBO0FoQ2s2SE47QWdDcDZISTtFQUNFO0VBQ0E7QWhDczZITjtBZ0N4NkhJO0VBQ0U7RUFDQTtBaEMwNkhOO0FnQzU2SEk7RUFDRTtFQUNBO0FoQzg2SE47QWdDaDdISTtFQUNFO0VBQ0E7QWhDazdITjtBaUMxN0hBO0VBbUVFO0VBSUE7QWpDdTNIRjtBaUM3N0hFO0VBQ0U7QWpDKzdISjtBaUM3N0hFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7T0FBQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWpDKzdISjtBaUM3N0hJO0VBQ0U7RXRCREo7RUFDQTtFQUNBO0VzQkNJO0VBQ0E7RUFDQTtFQUNBO0FqQ2k4SE47QWlDOTdISTtFQUVFO0VBQ0E7QWpDKzdITjtBaUMzN0hFO0VBQ0U7QWpDNjdISjtBaUMxN0hFO0VBQ0U7QWpDNDdISjtBaUN6N0hFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWpDMjdISjtBaUN6N0hJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBakMyN0hOO0FpQ3g3SEk7RUFDRTtBakMwN0hOO0FpQ3I3SEU7RUFDRTtBakN1N0hKO0FpQ3A3SEU7RUFDRTtBakNzN0hKO0FrQzkvSEU7RUFDRTtFQUNBO0VBQ0E7QWxDZ2dJSjtBZ0I5OUdJO0VrQnJpQkY7SUFNSTtJQUNBO0VsQ2lnSUo7QUFDRjtBa0MvL0hJO0VBQ0U7QWxDaWdJTjtBa0MvL0hNO0VBQ0U7QWxDaWdJUjtBa0M5L0hNO0VBQ0U7RUFDQTtBbENnZ0lSO0FrQzcvSE07RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbEMrL0hSO0FrQzcvSFE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FsQysvSFY7QW1DMWlJQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FuQzRpSUY7QWdCMWdISTtFbUJ0aUJKO0lBT0k7SUFDQTtFbkM2aUlGO0FBQ0Y7QWdCaGhISTtFbUIzaEJBO0lBQ0U7RW5DOGlJSjtBQUNGO0FtQzNpSUU7RUFDRTtBbkM2aUlKO0FtQzNpSUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbkM2aUlKO0FtQzFpSUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FuQzRpSUo7QWdCeGlISTtFbUJ6Z0JGO0lBUUk7RW5DNmlJSjtBQUNGO0FtQzFpSUU7RUFDRTtBbkM0aUlKO0FvQzVrSUk7RUFDRTtBcEM4a0lOO0FvQzNrSUU7RUFDRTtFQUNBO0VBQ0E7QXBDNmtJSjtBcUM3bElFO0VBQ0U7QXJDK2xJSjtBK0N2bUlBO0VBQ0U7RUFDQTtPQUFBO0EvQ3ltSUY7QWdCL2pISTtFK0I1aUJKO0lBS0k7SUFDQTtTQUFBO0UvQzBtSUY7QUFDRjtBK0N2bUlJO0VBQ0U7QS9DeW1JTjtBK0N0bUlJOzs7Ozs7RUFNRTtBL0N3bUlOO0ErQ3BtSUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBL0NzbUlKO0FnQnRsSEk7RStCcGhCRjtJQU9JO0UvQ3VtSUo7QUFDRjtBc0MvbklRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QXRDaW9JWjtBZ0JqbUhJO0VzQnBpQkk7SUFPUTtJQUNBO0V0Q2tvSWQ7QUFDRjtBc0M5bklJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBdENnb0lSO0FzQzNuSVk7RUFDSTtBdEM2bkloQjtBc0N4bklJO0VBQ0U7QXRDMG5JTjtBdUN4cElJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F2QzBwSU47QWdCNW5ISTtFdUJwaUJBO0lBU0k7SUFDQTtFdkMycElOO0FBQ0Y7QXVDdnBJTTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBdkN5cElSO0F1Q3JwSUk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXZDdXBJTjtBdUNwcElJO0VBQ0U7RUFDQTtBdkNzcElOO0F1Q25wSUk7RUFDSTtFQUNBO0F2Q3FwSVI7QWdCMXBISTtFdUI3ZkE7SUFLTTtFdkNzcElSO0FBQ0Y7QXVDcnBJTTtFQUNFO0F2Q3VwSVI7QXVDcHBJSTtFQUNFO0F2Q3NwSU47QWdEbHRJQTtFQUNFO0FoRG90SUY7QWdEanRJSTtFQUNFO0FoRG10SU47QWdEL3NJRTtFQUdFO0FoRCtzSUo7QWdENXNJRTtFQUNFO0FoRDhzSUo7QWdENXNJSTtFQUNFO0VBQ0E7RUFDQTtBaEQ4c0lOO0FnRDNzSUk7RUFDRTtBaEQ2c0lOO0FnRHpzSU07RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7QWhEMHNJUjtBZ0R0c0lJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FoRHdzSU47QWdEcHNJRTtFQUNFO0FoRHNzSUo7QWdEcnNJSTtFQUNFO0VBQ0E7QWhEdXNJTjtBZ0Rwc0lJO0VBQ0U7QWhEc3NJTjtBZ0Rwc0lNO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0FoRHFzSVI7QWdEaHNJRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7T0FBQTtBaERrc0lKO0FnQmx1SEk7RWdDcmVGO0lBT0k7SUFDQTtFaERvc0lKO0VnRG5zSUk7SUFDRTtFaERxc0lOO0FBQ0Y7QWdEanNJRTtFQUNFO0VBQ0E7QWhEbXNJSjtBZ0Rqc0lJO0VBSUU7QWhEZ3NJTjtBZ0JsdkhJO0VnQ2xkQTtJQU9JO0VoRGlzSU47QUFDRjtBZ0J2dkhJO0VnQ3RkRjtJQWdCSTtFaERpc0lKO0FBQ0Y7QWdEL3JJSTtFQUVFO0FoRGdzSU47QWdENXJJSTtFQUNFO0VBQ0E7QWhEOHJJTjtBZ0Jud0hJO0VnQ3hiQTtJQUVJO0VoRDZySU47QUFDRjtBZ0J4d0hJO0VnQ3RkRjtJQXFDSTtFaEQ2cklKO0FBQ0Y7QWdEMXJJRTtFQUNFO0FoRDRySUo7QWdCaHhISTtFZ0MxYUE7SUFJSTtFaEQwcklOO0FBQ0Y7QWdCcnhISTtFZ0NsYUE7SUFHSTtFaER3cklOO0FBQ0Y7QWdEcnJJSTtFQUVFO0VBQ0E7QWhEc3JJTjtBZ0I5eEhJO0VnQzNaQTtJQUtJO0VoRHdySU47QUFDRjtBZ0RycklJO0VBQ0U7RUFDQTtFQUNBO0FoRHVySU47QWdEcnJJTTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0tBQUE7QWhEdXJJUjtBZ0RscUlFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBaERvcUlKO0FnRG5xSUk7RUFDRTtBaERxcUlOO0FnRGxxSUk7RUFFRTtBaERtcUlOO0FnQjN6SEk7RWdDMVdBO0lBS007RWhEb3FJUjtBQUNGO0FnRC9wSUk7RUFDRTtBaERpcUlOO0FnRC9wSU07RUFDRTtBaERpcUlSO0FnQnQwSEk7RWdDL1ZBO0lBUUk7RWhEaXFJTjtBQUNGO0FnRDlwSUk7Ozs7RUFJRTtBaERncUlOO0FnRDdwSVE7Ozs7Ozs7O0VBQ0U7QWhEc3FJVjtBZ0RocUlNO0VBQ0U7QWhEa3FJUjtBZ0I5MUhJO0VnQ3BYRjtJQXFESTtJQUNBO0lBQ0E7SUFDQTtFaERpcUlKO0FBQ0Y7QWdEOXBJRTtFQUNFO0FoRGdxSUo7QWdEOXBJSTtFekI5S0Y7RUFDQTtFQUNBO0VBQ0E7RXlCNktJO0VBQ0E7RUFDQTtBaERtcUlOO0F1QmgxSUU7RUFDRTtBdkJrMUlKO0FnRG5xSUk7RUFDRTtBaERxcUlOO0FnRGxxSUk7RUFDRTtBaERvcUlOO0FnRGxxSU07RUFDRTtBaERvcUlSO0FnRG5xSVE7RUFDRTtFQUNBO0FoRHFxSVY7QWdEcHFJVTtFQUNFO0VBQ0E7QWhEc3FJWjtBZ0QvcElFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QWhEaXFJSjtBZ0I1NEhJO0VnQ3pSRjtJQU9JO0VoRGtxSUo7RWdEaHFJSTtJQUNFO0VoRGtxSU47QUFDRjtBeUN6N0lFO0VBQ0U7QXpDMjdJSjtBMEM5N0lBO0VBQ0U7RUFDQTtBMUNnOElGO0EwQzc3SUU7RUFDRTtFQUNBO0ExQys3SUo7QWdCLzVISTtFMEJsaUJGO0lBSUk7RTFDaThJSjtBQUNGO0FnQnA2SEk7RTBCbGlCRjtJQU9JO0UxQ204SUo7QUFDRjtBaUR0OUlBO0VBQ0U7RUFDQTtFQUVBO0FqRHU5SUY7QWlEcjlJRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWpEdTlJSjtBaUR0OUlJO0VBQ0U7RUFDQTtBakR3OUlOO0FpRHI5SUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBakR1OUlKO0FpRGo5SVU7O0VBQ0U7QWpEbzlJWjtBaURsOUlZOztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWpEcTlJZDtBZ0JqOUhJO0VpQ2hnQlU7O0lBQ0U7RWpEcTlJZDtBQUNGO0FnQnY5SEk7RWlDemZJOztJQUNFO0VqRG85SVI7QUFDRjtBaUQvOElFO0VBQ0U7QWpEaTlJSjtBZ0JoK0hJO0VpQ2xmRjtJQUlJO0VqRGs5SUo7QUFDRjtBaURoOUlJO0VBQ0U7RUFDQTtFQUNBO0FqRGs5SU47QWdCMStISTtFaUMzZUE7SUFNSTtJQUNBO0lBQ0E7RWpEbTlJTjtBQUNGO0FpRGg5SUk7RUFDRTtFQUNBO0VBQ0E7QWpEazlJTjtBaURoOUlNO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBakRrOUlSO0FpRDk4SUk7RUFDRTtBakRnOUlOO0FpRDc4SUk7RUFDRTtFQUNBO0FqRCs4SU47QWtEcGpKQTtFQUNJO0FsRHNqSko7QWtEcmpKSTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7QWxEb2pKUjtBZ0JwaElJO0VrQzdpQko7SUFpQlE7RWxEb2pKTjtBQUNGO0FrRGhqSlk7RUFDSTtBbERrakpoQjtBa0RsaUpJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FsRG9pSlI7QWdCN2lJSTtFa0N0Z0JBO0lBa0JRO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFbERxaUpWO0VrRHBpSlU7SUFDSTtJQUNBO0VsRHNpSmQ7QUFDRjtBa0RuaUpRO0VBQ0k7QWxEcWlKWjtBa0RqaUpJO0VBRUk7RUFDQTtFQUNBO0FsRGtpSlI7QWtEL2hKSTtFQUNJO0FsRGlpSlI7QWtEaGlKUTtFQUNJO0VBQ0E7QWxEa2lKWjtBbUR0bkpJO0VBQ0k7RUFDQTtFQUNBO0FuRHduSlI7QWdCL2tJSTtFbUM1aUJBO0lBTVE7RW5EeW5KVjtBQUNGO0FtRHhuSlE7RUFDSTtFQUNBO0FuRDBuSlo7QW9Ebm9KSTtFQUNJO0VBQ0E7RUFDQTtBcERxb0pSO0FnQjdsSUk7RW9DM2lCQTtJQU1RO0VwRHNvSlY7QUFDRjtBb0Rwb0pJO0VBQ0k7QXBEc29KUjtBMkMzb0pFO0VBQ0U7RUFDQTtFQUNBO0EzQzZvSko7QTRDaHBKQTtFQUNFO0VBQ0E7QTVDa3BKRjtBNENqcEpFO0VBQ0U7RUFFQTtBNUNrcEpKO0E0Q2pwSkk7RUFDRTtBNUNtcEpOO0E0Q2hwSkU7RUFDRTtFQUNBO0VBQ0E7QTVDa3BKSjtBNENqcEpJO0VBQ0U7QTVDbXBKTjtBNENqcEpJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7T0FBQTtFQUNBO0E1Q21wSk47QTRDbHBKTTtFQUNFO0E1Q29wSlI7QTRDaHBKRTs7O0VBR0U7QTVDa3BKSjtBNENocEpFO0VBQ0U7QTVDa3BKSjtBNENqcEpJO0VBQ0U7QTVDbXBKTjtBNENscEpNO0VBQ0U7QTVDb3BKUjtBNENscEpNO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E1Q29wSlI7QXFEL3NKSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FyRGl0SlI7QWdCenFJSTtFcUM1aUJBO0lBT1E7RXJEa3RKVjtBQUNGO0FzRDF0Skk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBdEQ0dEpSO0FnQnBySUk7RXNDNWlCQTtJQU9RO0V0RDZ0SlY7QUFDRjtBNkNodUpBO0VBQ0U7RUFDQTtBN0NrdUpGO0E2Q2p1SkU7RUFDRTtFQUNBO0VBQ0E7QTdDbXVKSjtBNkNsdUpJO0VBQ0U7QTdDb3VKTjtBNkNsdUpJO0VBQ0U7QTdDb3VKTjtBNkNudUpNO0VBQ0U7RUFDQTtBN0NxdUpSO0E2Q251Sk07RUFDRTtFQUNBO0E3Q3F1SlI7QTZDcHVKUTtFQUNFO0VBQ0E7QTdDc3VKVjtBNkNsdUpJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E3Q291Sk47QTZDbHVKTTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTdDb3VKUjtBOENoeEpBO0VBQ0U7QTlDa3hKRjtBOENoeEpJO0VBQ0U7QTlDa3hKTjtBOEMvd0pFO0VBQ0U7QTlDaXhKSjtBdUQ5eEpJO0VBQ0k7QXZEZ3lKUjtBdUQveEpRO0VBQ0k7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Z0tWO0E0RC8vSk07RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTVEaWdLUjtBNERoZ0tRO0VBQ0U7QTVEa2dLVjtBNEQ5L0pJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTVEZ2dLTjtBNEQ5L0pNO0VBQ0U7QTVEZ2dLUjtBNEQ3L0pNO0VBQ0U7QTVEKy9KUjtBZ0I1a0pJO0U0Q2pjQTtJQWtCSTtFNUQrL0pOO0FBQ0Y7QTRENy9KTTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBNUQrL0pSO0FnQnpsSkk7RTRDNWFFO0lBU0k7RTVEZ2dLUjtBQUNGO0E0RDkvSlE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBNURnZ0tWO0FnQnBtSkk7RTRDaGFJO0lBT0k7RTVEaWdLVjtBQUNGO0E0RDcvSk07RUFDRTtBNUQrL0pSO0E0RDkvSlE7RUFDRTtBNURnZ0tWO0E0RDUvSk07RUFDRTtBNUQ4L0pSO0E0RDcvSlE7RUFDRTtBNUQrL0pWO0E0RDEvSkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E1RDQvSko7QTREei9KSTtFQUNFO0E1RDIvSk47QTREeC9KSTtFQUNFO0E1RDAvSk47QTREdi9KSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBNUR5L0pOO0E0RHQvSkk7O0VBRUU7RUFDQTtFQUNBO0VBQ0E7QTVEdy9KTjtBNERyL0pJOztFQUVFO0VBQ0E7RUFDQTtFQUNBO0E1RHUvSk47QTREcC9KSTs7OztFQUlFO0E1RHMvSk47QTREbi9KRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0E1RHEvSko7QTREbi9KRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBNURxL0pKO0E0RGwvSkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E1RG8vSko7QTREai9KRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0tBQUE7QTVEbS9KSjtBNERoL0pFO0VBQ0U7RUFDQTtBNURrL0pKO0E0RC8rSkU7RUFDRTtBNURpL0pKO0E0RDkrSkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E1RGcvSko7QTRENytKRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0E1RCsrSko7QTREMytKRTtFQUNFO0lBQ0U7RTVENitKSjtBQUNGO0E0RDErSkU7RUFDRTtJQUNFO0U1RDQrSko7QUFDRjtBNER6K0pFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E1RDIrSko7QTREeitKSTtFQUVFO0E1RDArSk47QTREdCtKRTtFQUNFO0lBQ0U7RTVEdytKSjtFNER0K0pFO0lBQ0U7RTVEdytKSjtBQUNGO0E0RHQrSkU7RUFDRTtJQUNFO0U1RHcrSko7RTREdCtKRTtJQUNFO0U1RHcrSko7QUFDRjtBNER0K0pFO0VBQ0U7SUFDRTtFNUR3K0pKO0U0RHQrSkU7SUFDRTtFNUR3K0pKO0FBQ0Y7QTREdCtKRTtFQUNFO0lBQ0U7RTVEdytKSjtFNER0K0pFO0lBQ0U7RTVEdytKSjtBQUNGO0E0RHQrSkU7RUFDRTtJQUNFO0U1RHcrSko7RTREdCtKRTtJQUNFO0U1RHcrSko7QUFDRjs7QTREbitKQTtFQUNFO0E1RHMrSkY7O0E0RG4rSkE7RUFDRTtFQUNBO0E1RHMrSkY7QTREcCtKSTtFQUdFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBNURvK0pOO0E0RGwrSk07RUFDRTtBNURvK0pSO0FnQm56Skk7RTRDbExFO0lBR0k7RTVEcytKUjtBQUNGO0FnQnh6Skk7RTRDNUxBO0lBbUJJO0U1RHErSk47QUFDRjtBZ0I3ekpJO0U0QzVMQTtJQXVCSTtJQUNBO0U1RHMrSk47QUFDRjtBZ0JuMEpJO0U0Q2hNSjtJQXVDSTtJQUNBO0lBQ0E7RTVEZytKRjtBQUNGO0E0RDU5Skk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBNUQ4OUpOO0E0RDU5SlE7RUFDRTtBNUQ4OUpWO0E0RDE5SlE7RUFDRTtBNUQ0OUpWO0E0RHo5Sk07RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTVEMjlKUjtBNEQxOUpRO0VBQ0U7QTVENDlKVjtBNER4OUpJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E1RDA5Sk47QTREejlKTTtFQUNHO0VBQ0g7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBNUQyOUpOO0FnQmozSkk7RTRDaEhFO0lBUUU7RTVENjlKTjtBQUNGO0E0RHo5SlU7RUFDRTtBNUQyOUpaO0E0RHo5SlU7RUFDRTtFQUNBO0VBQ0E7QTVEMjlKWjtBNER2OUpZO0VBQ0U7QTVEeTlKZDtBNERqOUpNO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO09BQUE7RUFDQTtFQUNBO0VBQ0E7QTVEbTlKUjtBZ0JsNUpJO0U0Q2hGRTtJQWtCSTtJQUNBO0lBQ0E7SUFDQTtFNURvOUpSO0FBQ0Y7QTREbDlKUTtFQUNFO0VBQ0E7QTVEbzlKVjtBZ0I5NUpJO0U0Q3hESTtJQUtJO0lBQ0E7RTVEcTlKVjtBQUNGO0E0RGw5SlU7RUFDRTtBNURvOUpaO0E0RGo5SlU7RUFDRTtBNURtOUpaO0E0RDk4SlE7RUFDRTtBNURnOUpWO0E0RDc4SlE7RUFDRTtBNUQrOEpWO0E0RDU4SlE7RUFDRTtFQUNBO0VBQ0E7QTVEODhKVjtBNEQzOEpRO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E1RDY4SlY7QTREMzhKVTtFQUNFO0E1RDY4Slo7QTREMThKVTtFQUNFO0E1RDQ4Slo7QWdCbjhKSTtFNEN0Qkk7SUFrQkk7SUFDQTtJQUNBO0lBQ0E7RTVEMjhKVjtBQUNGO0E0RHo4SlU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E1RDI4Slo7QWdCbDlKSTtFNENFTTtJQVFJO0U1RDQ4Slo7QUFDRjtBNERyOEpFO0VBQ0U7QTVEdThKSjtBNER0OEpJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTVEdzhKTjtBNER0OEpRO0VBQ0U7QTVEdzhKVjtBNERuOEpJO0VBQ0U7QTVEcThKTjtBNERqOEpFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUFBO0VBQ0E7RUFDQTtBNURtOEpKO0E0RGw4Skk7RUFDRTtFQUNBO0VBQ0E7QTVEbzhKTjtBZ0J2L0pJO0U0Q2dEQTtJQUtJO0U1RHM4Sk47QUFDRjtBNERuOEpJO0VBQ0U7RUFDQTtBNURxOEpOO0FnQmhnS0k7RTRDd0NGO0lBdUJJO0U1RHE4Sko7QUFDRjtBNERuOEpJO0VBQ0U7RUFDQTtFQUNBO0E1RHE4Sk47QTREajhKTTtFQUNFO0VBQ0E7QTVEbThKUjtBNERoOEpNO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QTVEazhKUjtBNERoOEpRO0VBQ0U7QTVEazhKVjtBNEQ3N0pJO0VBQ0U7RUFDQTtFQUNBO0E1RCs3Sk47QTRENTdKSTtFQUNFO0E1RDg3Sk47QTREMTdKRTtFQUNFO0VBQ0E7RUFDQTtBNUQ0N0pKO0E0RDE3Skk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtPQUFBO0E1RDQ3Sk47QTREeDdKRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0E1RDA3Sko7QTREdjdKRTtFQUNFO0VBQ0E7RUFDQTtPQUFBO0VBQ0E7QTVEeTdKSjtBNER2N0pJO0VBQ0U7RUFDQTtBNUR5N0pOO0E0RHY3SlE7RUFDRTtBNUR5N0pWO0E0RG43SkU7RUFDRTtFQUNBO0VBQ0E7QTVEcTdKSjtBNERsN0pFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0tBQUE7QTVEbzdKSjs7QTZEMW5MQTs7Ozs7RUFBQTtBQVFFO0VBQ0U7QTdEMm5MSjtBNkR6bkxJO0VBQ0U7QTdEMm5MTjs7QThEdm9MQTs7Ozs7RUFBQTtBQU9BOztFQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E5RHlvTEY7QThEdm9MRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBOUR5b0xKO0E4RHZvTEk7RUFDRTtBOUR5b0xOO0E4RHRvTEk7RUFDRTtFQUNBO0VBQ0E7S0FBQTtBOUR3b0xOO0E4RHJvTEk7RUFDRTtFQUNBO0E5RHVvTE47QThEcG9MSTtFQUNFO0E5RHNvTE47QThEbG9MTTtFQUNFO0E5RG9vTFI7QThEbG9MTTtFQUNFO0E5RG9vTFI7O0ErRHJyTEE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBL0R3ckxGO0FnQi9vS0k7RStDN2lCSjtJQU9JO0lBQ0E7SUFDQTtFL0R5ckxGO0FBQ0Y7QStEdHJMSTtFQUNFO0EvRHdyTE47QWdCenBLSTtFK0NoaUJBO0lBSUk7RS9EeXJMTjtBQUNGO0ErRHRyTEk7RUFDRTtBL0R3ckxOO0ErRHByTEU7RUFDRTtFQUNBO0EvRHNyTEo7QStEanJMTTtFeENyQko7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQVZBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFxQkE7RUFDQTtFQUNBO0V3Q1RNO0VBQ0E7RUFDQTtBL0Qwc0xSO0FnQm5zS0k7RStDNWdCRTtJeENSRjtJQUNBO1NBQUE7RXZCMnRMRjtBQUNGO0F1Qnp0TEU7RUFFRTtFQUNBO0VBQ0E7QXZCMHRMSjtBdUJ2dExFO0VBQ0U7QXZCeXRMSjtBZ0JqdEtJO0UrQzVnQkU7SXhDUkY7SUFDQTtTQUFBO0V2Qnl1TEY7QUFDRjtBdUJ2dUxFO0VBRUU7RUFDQTtFQUNBO0F2Qnd1TEo7QXVCcnVMRTtFQUNFO0F2QnV1TEo7QXVCOXRMRTtFQUVFO0VBQ0E7QXZCK3RMSjtBdUI1dExFO0VBQ0U7RUFDQTtBdkI4dExKO0FnQnZ1S0k7RStDNWdCRTtJQVFJO0UvRCt1TFI7QUFDRjtBK0QxdUxFO0VBQ0U7RUFDQTtBL0Q0dUxKO0ErRDF1TEk7RUFDRTtFQUNBO0EvRDR1TE47QStEMXVMTTtFQUNFO0EvRDR1TFI7QStEdnVMTTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBL0R5dUxSO0FnQmx3S0k7RStDcGVNO0lwRG5EUjtJQUNBO0VYNnhMQTtBQUNGO0ErRHZ1TFE7RUFDRTtFQUNBO0EvRHl1TFY7QStEeHVMVTtFQUNFO0VBQ0E7QS9EMHVMWjtBK0R0dUxRO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBL0R3dUxWO0FnQjF4S0k7RStDdGRJO0lBV0k7SUFDQTtFL0R5dUxWO0FBQ0Y7QStEbnVMRTtFQUNFO0EvRHF1TEo7QWdCbnlLSTtFK0NuY0Y7SUFHSTtFL0R1dUxKO0FBQ0Y7QStEcHVMRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBL0RzdUxKO0FnQnp6S0k7RStDNWJGO0lBa0JJO0UvRHV1TEo7QUFDRjtBK0RydUxJO0VBQ0U7RUFDQTtFQUNBO0EvRHV1TE47QStEcHVMSTtFQUNFO0EvRHN1TE47QStEbHVMRTtFQUNFO0VBQ0E7RUFDQTtBL0RvdUxKO0ErRGp1TEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBL0RtdUxKO0ErRGp1TEk7RUFDRTtFQUNBO0VBQ0E7T0FBQTtFQUNBO0EvRG11TE47QStEanVMTTtFeEN2Sko7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFd0MrSU07RUFDQTtFQUNBO0EvRDZ1TFI7QWdCdjJLSTtFK0MxWUU7SXhDMUlGO0lBQ0E7U0FBQTtFdkIrM0xGO0FBQ0Y7QXVCNzNMRTtFQUVFO0VBQ0E7RUFDQTtBdkI4M0xKO0F1QjMzTEU7RUFDRTtBdkI2M0xKO0ErRHp2TFE7RUFDRTtFQUNBO0VBQ0E7QS9EMnZMVjs7QWdFdDZMSTtFQUNJO0VBQ0E7RUFDQTtBaEV5NkxSO0FnRXI2TGdCO0VBQ0k7QWhFdTZMcEI7QWdCbjRLSTtFZ0RyaUJZO0lBR1E7RWhFeTZMdEI7QUFDRjtBZ0J4NEtJO0VnRHJpQlk7SUFNUTtFaEUyNkx0QjtBQUNGO0FnQjc0S0k7RWdEcmlCWTtJQVNRO0VoRTY2THRCO0FBQ0Y7QWdFNTZMb0I7RUFDSTtFQUNBO0FoRTg2THhCO0FnRTU2TG9CO0VBQ0k7RUFDQTtBaEU4Nkx4QjtBZ0U1NkxvQjtFQUNJO0FoRTg2THhCO0FnRTE2TGdCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBaEU0NkxwQjtBZ0V6NkxnQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FoRTI2THBCO0FnQnQ3S0k7RWdENWZZO0lBU1E7RWhFNjZMdEI7QUFDRjtBZ0UxNkxnQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWhFNDZMcEI7QWdCbDhLSTtFZ0QvZVk7SUFRUTtFaEU2Nkx0QjtBQUNGO0FnQnY4S0k7RWdEL2VZO0lBV1E7RWhFKzZMdEI7QUFDRjtBZ0I1OEtJO0VnRC9lWTtJQWNRO0lBQ0E7SUFDQTtFaEVpN0x0QjtBQUNGO0FnRTk2TGdCO0V6Q3RFZDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0V5QzhEa0I7RUFDQTtBaEUwN0xwQjtBZ0JsK0tJO0VnRDNkWTtJekN6RFo7SUFDQTtTQUFBO0V2QjAvTEY7QUFDRjtBdUJ4L0xFO0VBRUU7RUFDQTtFQUNBO0F2QnkvTEo7QXVCdC9MRTtFQUNFO0F2QncvTEo7QWdFcjhMZ0I7RUFDSTtFekM3RWxCO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RXlDcUVrQjtFQUNBO0VBQ0E7QWhFaTlMcEI7QWdCamdMSTtFZ0RyZFk7SXpDL0RaO0lBQ0E7U0FBQTtFdkJ5aE1GO0FBQ0Y7QXVCdmhNRTtFQUVFO0VBQ0E7RUFDQTtBdkJ3aE1KO0F1QnJoTUU7RUFDRTtBdkJ1aE1KO0FnRTc5TG9CO0VBQ0k7RUFDQTtBaEUrOUx4QjtBZ0JuaExJO0VnRHJkWTtJQWFRO0lBQ0E7RWhFKzlMdEI7QUFDRjtBZ0U3OUxvQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FoRSs5THhCOztBQTVnTUE7O0VBQUE7QWlFL0RFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBakVpbE1KO0FpRS9rTUk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWpFaWxNTjtBaUU5a01JO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FqRWdsTU47QWlFNWtNSTtFQUNFO0FqRThrTU47QWlFN2tNSTtFQUNFO0VBQ0Y7QWpFK2tNSjtBaUU1a01JO0VBQ0U7QWpFOGtNTjs7QWlFdmtNSTtFQUNFO0FqRTBrTU47O0FrRXBvTUE7Ozs7O0VBQUE7QUFPQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbEVzb01GO0FrRXBvTUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWxFc29NSjtBa0Vwb01JO0VBQ0U7QWxFc29NTjtBa0Vub01JO0VBQ0U7QWxFcW9NTjtBa0Vsb01JO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QWxFb29NTjtBa0Vqb01RO0VBQ0U7QWxFbW9NVjtBa0Vsb01VO0VBRUU7QWxFbW9NWjtBa0Uvbk1RO0VBRUU7QWxFZ29NVjtBa0Uxbk1FO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QWxFNG5NSjtBZ0I1b0xJO0VrRHBmRjtJQU9JO0VsRTZuTUo7QUFDRjtBa0V6bk1JO0UzQ3pERjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBcUJBO0VBQ0E7RUFDQTtFMkMwQkk7QWxFd29NTjtBZ0JscUxJO0VrRHhlQTtJM0M1Q0E7SUFDQTtTQUFBO0V2QjByTUY7QUFDRjtBdUJ4ck1FO0VBRUU7RUFDQTtFQUNBO0F2QnlyTUo7QXVCdHJNRTtFQUNFO0F2QndyTUo7QXVCL3FNRTtFQUVFO0VBQ0E7QXZCZ3JNSjtBdUI3cU1FO0VBQ0U7RUFDQTtBdkIrcU1KO0FnQnhyTEk7RWtEemVGO0lBT0k7RWxFOHBNSjtBQUNGO0FrRTNwTUU7RUFDRTtBbEU2cE1KOztBbUU3dU1BOzs7OztFQUFBO0FBT0M7RUFDRztFQUNBO0VBQ0E7QW5FK3VNSjtBbUU3dU1JO0VBQ0k7QW5FK3VNUjtBbUU1dU1JO0VBQ0k7RUFDQTtBbkU4dU1SO0FtRTN1TUk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBbkU2dU1SO0FnQnp0TEk7RW1EamhCQTtJQUlRO0lBQ0E7RW5FMHVNVjtBQUNGO0FtRXJ1TVk7RUFDSTtBbkV1dU1oQjtBbUV0dU1nQjtFQUNJO0FuRXd1TXBCO0FtRS90TVk7Ozs7Ozs7Ozs7OztFQVlJO0VBQ0E7RUFDQTtFQUNBO0FuRWl1TWhCO0FtRTl0TVk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBbkVndU1oQjtBbUU3dE1ZO0VBQ0k7QW5FK3RNaEI7QW1FOXRNZ0I7RUFDSTtBbkVndU1wQjtBbUU1dE1ZO0VBQ0k7RUFDQTtFQUNBO0FuRTh0TWhCO0FtRTV0TWdCO0VBQ0k7QW5FOHRNcEI7QW1FMXRNWTtFQUNJO0VBQ0E7T0FBQTtBbkU0dE1oQjtBbUV4dE1RO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QW5FMHRNWjtBZ0JweExJO0VtRDFjSTtJQU9RO0lBQ0E7RW5FMnRNZDtBQUNGO0FtRXp0TVk7RUFDSTtFQUNBO0FuRTJ0TWhCO0FnQjl4TEk7RW1EL2JRO0lBS1E7SUFDQTtFbkU0dE1sQjtBQUNGO0FtRTF0TWdCO0VBQ0k7RUFDQTtPQUFBO0FuRTR0TXBCO0FnQnh5TEk7RW1EdGJZO0lBS1E7SUFDQTtTQUFBO0VuRTZ0TXRCO0FBQ0Y7QW1FdHRNUTtFQUNJO0VBQ0E7QW5Fd3RNWjtBZ0JsekxJO0VtRHhhSTtJQUtNO0VuRXl0TVo7QUFDRjtBbUV4dE1ZO0VBQ0k7QW5FMHRNaEI7QWdCMXpMSTtFbURqYVE7SUFJUTtJQUNBO0VuRTJ0TWxCO0VtRTF0TWtCO0lBQ0k7RW5FNHRNdEI7QUFDRjtBbUV6dE1nQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbkUydE1wQjtBbUUxdE1vQjtFQUNJO0FuRTR0TXhCO0FtRXJ0TUk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FuRXV0TVI7QWdCcjFMSTtFbUR2WUE7SUFRUTtFbkV3dE1WO0FBQ0Y7QW1FdHRNUTtFNUNyS047RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQWdFQTtLQUFBO1VBQUE7RUFDQTtFQUNBO0U0QzJGVTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbkVxdU1aO0FnQmozTEk7RW1ENVhJO0k1Q3hKSjtJQUNBO1NBQUE7RXZCeTRNRjtBQUNGO0F1QnY0TUU7RUFFRTtFQUNBO0VBQ0E7QXZCdzRNSjtBdUJyNE1FO0VBQ0U7QXZCdTRNSjtBdUJsMU1FO0VaOURBO0VBQ0E7RUFDQSx3Qlk2RGtCO0VBQ2hCO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7QXZCcTFNSjtBbUU5dk1ZO0VBRUk7RUFDQTtBbkUrdk1oQjtBdUJwMU1FO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBdkJzMU1KO0FtRXJ3TWdCO0VBQ0k7QW5FdXdNcEI7QW1FbHdNUTtFQUNJO0FuRW93TVo7QW1FaHdNSTtFQUNJO0VBQ0E7QW5Fa3dNUjtBbUVqd01RO0VBQ0k7QW5FbXdNWjtBbUVsd01ZO0VBQ0k7QW5Fb3dNaEI7QW1FL3ZNSTtFQUNJO0VBQ0E7RUFDQTtBbkVpd01SOztBb0V6OU1BOzs7OztFQUFBO0FBUUk7RUFDSTtFQUNBO0VBQ0E7QXBFMDlNUjtBZ0J4N0xJO0VvRHJpQkE7SUFNUTtFcEUyOU1WO0FBQ0Y7QW9FeDlNWTtFQUNJO0FwRTA5TWhCO0FvRXo5TWdCO0VBQ0k7RUFDQTtFQUNBO0FwRTI5TXBCOztBb0UvOE1JOzs7O0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBcEVxOU1SO0FvRWw5TVk7Ozs7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBcEV1OU1oQjtBb0VyOU1nQjs7OztFQUNJO0FwRTA5TXBCO0FvRWo5TXdCOzs7O0U3Qy9DdEI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFNkN1QzBCO0VBQ0E7RUFDQTtFQUNBO0FwRWcrTTVCO0FnQm4vTEk7RW9EbGZvQjs7OztJN0NsQ3BCO0lBQ0E7U0FBQTtFdkI4Z05GO0FBQ0Y7QXVCNWdORTs7Ozs7OztFQUVFO0VBQ0E7RUFDQTtBdkJtaE5KO0F1QmhoTkU7Ozs7RUFDRTtBdkJxaE5KO0FvRWwvTWdDOzs7O0VBQ0k7RUFDQTtBcEV1L01wQztBb0V0L01vQzs7OztFQUNJO0FwRTIvTXhDO0FvRXYvTTRCOzs7O0VBQ0k7RUFDQTtBcEU0L01oQztBb0UxL01nQzs7OztFQUNJO0FwRSsvTXBDO0FvRTcvTWdDOzs7O0VBQ0k7RUFDQTtBcEVrZ05wQztBb0VqZ05vQzs7OztFQUNJO0FwRXNnTnhDO0FvRWxnTjRCOzs7O0VBQ0k7RUFDQTtBcEV1Z05oQztBb0VyZ05nQzs7OztFQUNJO0FwRTBnTnBDO0FvRXhnTmdDOzs7O0VBQ0k7RUFDQTtBcEU2Z05wQztBb0U1Z05vQzs7OztFQUNJO0FwRWloTnhDO0FvRTdnTjRCOzs7O0VBQ0k7RUFDQTtBcEVraE5oQztBb0VoaE5nQzs7OztFQUNJO0FwRXFoTnBDO0FvRW5oTmdDOzs7O0VBQ0k7RUFDQTtBcEV3aE5wQztBb0V2aE5vQzs7OztFQUNJO0FwRTRoTnhDO0FvRXhoTjRCOzs7O0VBQ0k7RUFDQTtBcEU2aE5oQztBb0UzaE5nQzs7OztFQUNJO0FwRWdpTnBDO0FvRTloTmdDOzs7O0VBQ0k7RUFDQTtBcEVtaU5wQztBb0VsaU5vQzs7OztFQUNJO0FwRXVpTnhDO0FvRW5pTjRCOzs7O0VBQ0k7RUFDQTtBcEV3aU5oQztBb0V0aU5nQzs7OztFQUNJO0FwRTJpTnBDO0FvRXppTmdDOzs7O0VBQ0k7RUFDQTtBcEU4aU5wQztBb0U3aU5vQzs7OztFQUNJO0FwRWtqTnhDO0FvRTlpTjRCOzs7O0VBQ0k7RUFDQTtBcEVtak5oQztBb0Vqak5nQzs7OztFQUNJO0FwRXNqTnBDO0FvRXBqTmdDOzs7O0VBQ0k7RUFDQTtBcEV5ak5wQztBb0V4ak5vQzs7OztFQUNJO0FwRTZqTnhDO0FvRXpqTjRCOzs7O0VBQ0k7RUFDQTtBcEU4ak5oQztBb0U1ak5nQzs7OztFQUNJO0FwRWlrTnBDO0FvRS9qTmdDOzs7O0VBQ0k7RUFDQTtBcEVva05wQztBb0Vu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aEI7QXNFbGlPZ0I7RUFDSTtFQUNBO0VBRUE7RUFFQTtBdEVraU9wQjtBc0VqaU9vQjtFQUNJO0F0RW1pT3hCO0FzRTVoT0k7RUFDSTtBdEU4aE9SO0FzRTNoT0k7RUFDSTtFQUNBO0VBQ0E7T0FBQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXRFNmhPUjtBc0UzaE9RO0VBQ0k7RUFDQTtBdEU2aE9aO0FzRXpoT1k7RUFDSTtFQUNBO0F0RTJoT2hCO0FzRXpoT2dCO0VBQ0k7RUFDQTtBdEUyaE9wQjtBc0V4aE9ZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXRFMGhPaEI7QXNFcGhPZ0I7RUFDSTtBdEVzaE9wQjtBc0VsaE9ZO0VBQ0k7QXRFb2hPaEI7QXNFL2dPSTtFQUNJO0F0RWloT1I7QXNFaGhPUTtFQUNJO0F0RWtoT1o7QXNFOWdPWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F0RWdoT2hCO0FzRTNnT0k7RUFDSTtFQUNBO0F0RTZnT1I7QXNFM2dPUTtFQUNJO0F0RTZnT1o7QXNFNWdPWTtFQUNJO0VBQ0E7RUFDQTtBdEU4Z09oQjtBc0UzZ09ZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F0RTZnT2hCO0FzRXRnT29CO0VBQ0k7RUFDQTtBdEV3Z094QjtBc0V2Z093QjtFQUNJO0F0RXlnTzVCOztBdUV0cU9BOzs7OztFQUFBO0FBY0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F2RWlxT0Y7QXVFL3BPRTtFQUNFO0VBQ0E7RUFDQTtBdkVpcU9KO0F1RS9wT0k7RUFDRTtBdkVpcU9OO0F1RTlwT0k7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBdkVncU9OO0F1RTVwT007RUFDRTtBdkU4cE9SO0F1RXZwT0k7RUFDRTtBdkV5cE9OO0F1RXhwT007RUFDRTtBdkUwcE9SO0F1RXRwT0k7RUFDRTtBdkV3cE9OO0F1RXBwT0U7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXZFc3BPSjtBZ0I1cU5JO0V1RG5mRjtJ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RTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQSt0T0Y7QUE3dE9FO0VBakJGO0lBa0JJO0lBQ0E7SUFDQTtJQUNBO0VBZ3VPRjtBQUNGO0FBOXRPRTtFQUNFO0FBZ3VPSjs7QUE1dE9BO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0FBOHRPRjtBQTV0T0U7RUFDRTtBQTh0T0o7QUEzdE9FO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE2dE9KO0FBM3RPSTtFQUNFO0FBNnRPTjtBQXp0T0U7RUFDRTtBQTJ0T0o7QUF4dE9FO0VBQ0U7QUEwdE9KO0FBdnRPRTtFQUNFO0FBeXRPSixDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvZ2xvYmFsLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vbm9kZV9tb2R1bGVzL2JhZ3VldHRlYm94LmpzL3NyYy9iYWd1ZXR0ZUJveC5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL25vZGVfbW9kdWxlcy9ub3JtYWxpemUuc2Nzcy9ub3JtYWxpemUuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi9ub2RlX21vZHVsZXMvcmVmbGV4LWdyaWQvc2Nzcy9pbmNsdWRlcy9fdmFyaWFibGVzLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vbm9kZV9tb2R1bGVzL3JlZmxleC1ncmlkL3Njc3MvaW5jbHVkZXMvX2dyaWQuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi9ub2RlX21vZHVsZXMvcmVmbGV4LWdyaWQvc2Nzcy9pbmNsdWRlcy9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vbm9kZV9tb2R1bGVzL3JlZmxleC1ncmlkL3Njc3MvaW5jbHVkZXMvX2hlbHBlcnMuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9jb25maWcvX2ZvbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvY29uZmlnL192YXJzLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvaGVscGVycy9fZm9jdXMtdmlzaWJsZS5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2hlbHBlcnMvX2ZvbnQtc21vb3RoaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvaGVscGVycy9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvaGVscGVycy9fa2V5ZnJhbWVzLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvaGVscGVycy9fdGFibGUuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9oZWxwZXJzL19iYWd1ZXR0ZUJveC5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2hlbHBlcnMvX3NsaWNrLWNhcm91c2VsLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vbm9kZV9tb2R1bGVzL2luY2x1ZGUtbWVkaWEvZGlzdC9faW5jbHVkZS1tZWRpYS5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2Jhc2UvX2RlZmF1bHRzLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYmFzZS9fdHlwb2dyYXBoeS5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2Jhc2UvX2RydXBhbDguc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9iYXNlL19tYWluLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2dyaWQuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fbmF2LXRvZ2dsZS5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19idXR0b25zLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2ltYWdlLWNyZWRpdC5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19icmVhZGNydW1icy5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19zZWFyY2gtYnV0dG9uLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19lbW1zZy5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fZW50aXR5LnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2VudGl0aWVzL19ib2R5LnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2VudGl0aWVzL19pbWFnZS5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9lbnRpdGllcy9fdmlldy5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9lbnRpdGllcy9fcXVvdGUuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvZW50aXRpZXMvX2FjY29yZGlvbi5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9lbnRpdGllcy9fZ2FsbGVyeS5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9lbnRpdGllcy9faW1hZ2UtdGV4dC5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9lbnRpdGllcy9fZG93bmxvYWRzLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2VudGl0aWVzL19lbWJlZC5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9lbnRpdGllcy9fcGVyc29uLWNhcmQuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvZW50aXRpZXMvX3F1b3RlLXdpdGgtaW1hZ2Uuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvZW50aXRpZXMvX2N0YS5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9lbnRpdGllcy9fbGlua2VkLWxvZ29zLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2VudGl0aWVzL192aWRlby5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9lbnRpdGllcy9fc3BvbnNvcnMuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvZW50aXRpZXMvX2hpZ2hsaWdodGVkLWNvbnRlbnQuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvZW50aXRpZXMvX2xvZ28tbGlzdC5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9lbnRpdGllcy9faW1wcm92ZWQtaW1hZ2Utcm93LnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2VudGl0aWVzL190ZXh0LWJsb2NrLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2VudGl0aWVzL19mZWF0dXJlZC5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9lbnRpdGllcy9fbGF0ZXN0LWFydGljbGVzLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2VudGl0aWVzL19sYXJnZS1zaWducG9zdC5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9lbnRpdGllcy9fcmVsYXRlZC1jb250ZW50LnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2VudGl0aWVzL19wcmV2aW91cy13aW5uZXJzLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2VudGl0aWVzL19tZWRhbGxpc3Qtc2lnbnBvc3RzLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2VudGl0aWVzL19leGhpYml0aW9uLXNpZ25wb3N0cy5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9lbnRpdGllcy9fY2hhcHRlci5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9lbnRpdGllcy9fc3Rvcnkuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvZW50aXRpZXMvX2NvbGxlY3Rpb24uc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX2Zvcm1zLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19uYXYuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX2Jhbm5lci5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fbGlua2VkLWxvZ29zLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19zb2NpYWwtbGlua3Muc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX3NlYXJjaC1vdmVybGF5LnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19wb3B1cC5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fbm9kZS5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9faGVhZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3Mvb3JnYW5pc21zL19mb290ZXIuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX3ZpZXdzLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3Mvb3JnYW5pc21zL19zZWFyY2gtcmVzdWx0cy5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fc2lkZWJhci5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fdGVhc2VyLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1haW4gLSBHbG9iYWxcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIERlcGVuZGVuY2llc1xuICovXG5AaW1wb3J0ICd+YmFndWV0dGVib3guanMvc3JjL2JhZ3VldHRlQm94JztcbkBpbXBvcnQgJ35pbmNsdWRlLW1lZGlhL2Rpc3QvX2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnfm5vcm1hbGl6ZS5zY3NzL25vcm1hbGl6ZS5zY3NzJztcbkBpbXBvcnQgJ35yZWZsZXgtZ3JpZC9zY3NzL3JlZmxleC5zY3NzJztcbi8vIEBpbXBvcnQgJ35jaG9pY2VzLmpzL3B1YmxpYy9hc3NldHMvc3R5bGVzL2Nob2ljZXMubWluLmNzcyc7XG5cbi8qKlxuICogQ29uZmlnXG4gKi9cbkBpbXBvcnQgJ2NvbmZpZy9mb250cyc7XG5AaW1wb3J0ICdjb25maWcvdmFycyc7XG5cbi8qKlxuICogSGVscGVyc1xuICovXG5AaW1wb3J0ICdoZWxwZXJzL2ZvY3VzLXZpc2libGUnO1xuQGltcG9ydCAnaGVscGVycy9mb250LXNtb290aGluZyc7XG5AaW1wb3J0ICdoZWxwZXJzL21peGlucyc7XG5AaW1wb3J0ICdoZWxwZXJzL2tleWZyYW1lcyc7XG5AaW1wb3J0ICdoZWxwZXJzL3RhYmxlJztcbkBpbXBvcnQgJ2hlbHBlcnMvYmFndWV0dGVCb3gnO1xuQGltcG9ydCAnaGVscGVycy9zbGljay1jYXJvdXNlbCc7XG5cbi8qKlxuICogQmFzZVxuICovXG5AaW1wb3J0ICdiYXNlL2RlZmF1bHRzJztcbkBpbXBvcnQgJ2Jhc2UvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICdiYXNlL2RydXBhbDgnO1xuQGltcG9ydCAnYmFzZS9tYWluJztcblxuLyoqXG4qIEF0b21zXG4qL1xuQGltcG9ydCAnYXRvbXMvZ3JpZCc7XG5AaW1wb3J0ICdhdG9tcy9uYXYtdG9nZ2xlJztcbkBpbXBvcnQgJ2F0b21zL2J1dHRvbnMnO1xuQGltcG9ydCAnYXRvbXMvaW1hZ2UtY3JlZGl0JztcbkBpbXBvcnQgJ2F0b21zL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2F0b21zL3NlYXJjaC1idXR0b24nO1xuXG4vKipcbiAqIE1vbGVjdWxlc1xuICovXG5AaW1wb3J0ICdtb2xlY3VsZXMvZW1tc2cnO1xuQGltcG9ydCAnbW9sZWN1bGVzL2VudGl0eSc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvZm9ybXMnO1xuQGltcG9ydCAnbW9sZWN1bGVzL25hdic7XG5AaW1wb3J0ICdtb2xlY3VsZXMvYmFubmVyJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9saW5rZWQtbG9nb3MnO1xuQGltcG9ydCAnbW9sZWN1bGVzL3NvY2lhbC1saW5rcyc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvc2VhcmNoLW92ZXJsYXknO1xuQGltcG9ydCAnbW9sZWN1bGVzL3BvcHVwJztcblxuLyoqXG4gKiBPcmdhbmlzaW1zXG4gKi9cbkBpbXBvcnQgJ29yZ2FuaXNtcy9ub2RlJztcbkBpbXBvcnQgJ29yZ2FuaXNtcy9oZWFkZXInO1xuQGltcG9ydCAnb3JnYW5pc21zL2Zvb3Rlcic7XG5AaW1wb3J0ICdvcmdhbmlzbXMvdmlld3MnO1xuQGltcG9ydCAnb3JnYW5pc21zL3NlYXJjaC1yZXN1bHRzJztcbkBpbXBvcnQgJ29yZ2FuaXNtcy9zaWRlYmFyJztcbkBpbXBvcnQgJ29yZ2FuaXNtcy90ZWFzZXInO1xuXG4vKipcbiAqIFRlbXBsYXRlc1xuICovXG5cblxuXG5cblxuLm0tY29sbGVjdGlvbi1pbWFnZXtcbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpe1xuICAgIGltZ3tcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG5cblxuIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBcbiAgICBjb2xsZWN0aW9ucyBvdmVybGF5IGltcG9ydFxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiBcbi5jb2xsZWN0aW9uLW92ZXJsYXkge1xuICBvdmVyZmxvdzogc2Nyb2xsO1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICB6LWluZGV4OiA1MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nLXRvcDogOCU7XG4gIC5pbnNlcnQ6bm90KC5zZWFyY2gtb3ZlcmxheSkge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDgwMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaDMsXG4gICAgLmgzIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICAgIHVsLmJvb2stbGlua3Mge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogMC41ZW0gMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtcG9tcGVpaSk7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAuZGF0ZSB7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgcGFkZGluZzogMC41ZW0gMDtcbiAgICAgICAgfVxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLmNsb3NlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxLjVlbTtcbiAgICAgIHJpZ2h0OiAxLjVlbTtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgQGluY2x1ZGUgcm0tdGV4dDtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICB0ZXh0LWluZGVudDogMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtb3Nsbyk7XG4gICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wb21wZWlpKTtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogNjBweDtcbiAgICAgIH1cbiAgICAgICY6aG92ZXIge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLmNvbGxlY3Rpb24tb3ZlcmxheSB7XG4gIC5pbnNlcnQuY29sbGVjdGlvbi1pbWFnZSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIG92ZXJmbG93OiBzY3JvbGw7XG4gICAgLmltYWdlIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKXtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJyl7XG4gICAgICAgICAgICAgIG1hcmdpbjogdW5zZXQ7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiB1bnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuaW1hZ2UtY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJyl7XG4gICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY29udGVudCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKXtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgfVxuICAgIH1cbiAgICAubmF2IHtcbiAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgZm9udC1zaXplOiAwO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDElO1xuICAgICAgICB0b3A6IDQ1JTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICB3aWR0aDogODBweDtcbiAgICAgICAgaGVpZ2h0OiA4MHB4O1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpIHNjYWxlKDAuOCk7XG4gICAgICAgICY6YWZ0ZXIsXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMTBweDtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgYm9yZGVyOiAzMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICB0b3A6IDMwcHg7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jLXBvbXBlaWkpO1xuICAgICAgICAgICAgdG9wOiAzMXB4O1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdG9wOiAzMHB4O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuICAgICAgICAmLnByZXYtaW1hZ2Uge1xuICAgICAgICAgICAgbGVmdDogMSU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgc2NhbGUoMC44KTtcbiAgICAgICAgICAgIC8vICY6YWZ0ZXIge1xuICAgICAgICAgICAgLy8gfVxuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFZpZGVvIG1vZGFsIHBsYXllclxuLm1vZGFsLW9wZW4td3JhcHBlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG59XG5cbi5tb2RhbC1vcGVuLW1vYmlsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbn1cblxuLm1vZGFsLW9wZW46bm90KGJvZHkpIHtcbiAgLy8gQGluY2x1ZGUgYmctaW1nO1xuICAvLyBAaW5jbHVkZSBmb250LXRpdGxlLXJlZztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbi1wbGF5LnN2ZycpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMHB4IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiAzMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gIGJvcmRlcjogMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxLjc1ZW07XG4gIHBhZGRpbmc6IDE1cHggMjBweCAxNXB4IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiAwLjJzIGVhc2UtaW4tb3V0O1xuICBtYXJnaW4tdG9wOiAtNWVtO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcG9tcGVpaSk7XG4gIH1cbn1cblxuLnZpZGVvLW1vZGFsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDExO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBwYWRkaW5nLXRvcDogMTUwcHg7XG4gIC8vIG92ZXJmbG93OiBzY3JvbGw7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgJi5hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2Nsb3NlLnN2Z1wiKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogNDBweDtcbiAgICB3aWR0aDogNDBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIHRyYW5zaXRpb246IDAuMnMgZWFzZS1pbi1vdXQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcG9tcGVpaSk7XG4gICAgfVxuICB9XG5cbiAgJiA+IC5ncmlkIHtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cblxuICAuZmlsZSB7XG4gICAgcGFkZGluZy10b3A6IDRlbTtcbiAgfVxuXG4gIGlmcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn0iLCIvKiFcbiAqIGJhZ3VldHRlQm94LmpzXG4gKiBAYXV0aG9yICBmZWltb3NpXG4gKiBAdmVyc2lvbiAlJUlOSkVDVF9WRVJTSU9OJSVcbiAqIEB1cmwgaHR0cHM6Ly9naXRodWIuY29tL2ZlaW1vc2kvYmFndWV0dGVCb3guanNcbiAqL1xuXG4jYmFndWV0dGVCb3gtb3ZlcmxheSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDAwMDAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwuOCk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXMgZWFzZTtcblxuICAgICYudmlzaWJsZSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgLmZ1bGwtaW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIGZpZ3VyZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICBtYXJnaW46IDA7ICAgICAgLy8gbmVlZGVkIGZvciBtb2JpbGVcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTsgICAvLyBPcGVyYSAxMiBpbWFnZSBzdHJldGNoaW5nIGZpeFxuICAgICAgICB9XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIC8vIElFOCBmaXhcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLDAsMCwuNik7XG4gICAgICAgIH1cblxuICAgICAgICBmaWdjYXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS44O1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsLjYpO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiA1MCU7XG4gICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0Oi0xcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNiYWd1ZXR0ZUJveC1zbGlkZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0IC40cyBlYXNlLCB0cmFuc2Zvcm0gLjRzIGVhc2U7XG5cbiAgICAmLmJvdW5jZS1mcm9tLXJpZ2h0IHtcbiAgICAgICAgYW5pbWF0aW9uOiBib3VuY2VGcm9tUmlnaHQgLjRzIGVhc2Utb3V0O1xuICAgIH1cblxuICAgICYuYm91bmNlLWZyb20tbGVmdCB7XG4gICAgICAgIGFuaW1hdGlvbjogYm91bmNlRnJvbUxlZnQgLjRzIGVhc2Utb3V0O1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VGcm9tUmlnaHR7XG4gICAgMCUgeyBtYXJnaW4tbGVmdDogMDsgfVxuICAgIDUwJSB7IG1hcmdpbi1sZWZ0OiAtMzBweDsgfVxuICAgIDEwMCUgeyBtYXJnaW4tbGVmdDogMDsgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUZyb21MZWZ0e1xuICAgIDAlIHsgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICA1MCUgeyBtYXJnaW4tbGVmdDogMzBweDsgfVxuICAgIDEwMCUgeyBtYXJnaW4tbGVmdDogMDsgfVxufVxuXG4lYXJyb3ctYnV0dG9uIHtcbiAgICB0b3A6IDUwJTtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMzBweCk7XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgaGVpZ2h0OiA2MHB4O1xufVxuXG4uYmFndWV0dGVCb3gtYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDE1JTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzIzMjMyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTAsNTAsNTAsLjUpO1xuICAgIGNvbG9yOiAjZGRkO1xuICAgIGZvbnQ6IDEuNmVtIHNhbnMtc2VyaWY7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuNHMgZWFzZTtcblxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTAsNTAsNTAsLjkpO1xuICAgIH1cblxuICAgICYjbmV4dC1idXR0b24ge1xuICAgICAgICBAZXh0ZW5kICVhcnJvdy1idXR0b247XG4gICAgICAgIHJpZ2h0OiAyJTtcbiAgICB9XG5cbiAgICAmI3ByZXZpb3VzLWJ1dHRvbiB7XG4gICAgICAgIEBleHRlbmQgJWFycm93LWJ1dHRvbjtcbiAgICAgICAgbGVmdDogMiU7XG4gICAgfVxuXG4gICAgJiNjbG9zZS1idXR0b24ge1xuICAgICAgICB0b3A6IDIwcHg7XG4gICAgICAgIHJpZ2h0OiAyJTtcbiAgICAgICAgcmlnaHQ6IGNhbGMoMiUgKyA2cHgpO1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgIH1cblxuICAgIC8vIEZpcmVmb3ggZml4XG4gICAgc3ZnIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgfVxufVxuXG4vKlxuICAgIFByZWxvYWRlclxuICAgIEJvcnJvd2VkIGZyb20gaHR0cDovL3RvYmlhc2FobGluLmNvbS9zcGlua2l0L1xuKi9cblxuLmJhZ3VldHRlQm94LXNwaW5uZXIge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgICBtYXJnaW4tbGVmdDogLTIwcHg7XG59XG5cbi5iYWd1ZXR0ZUJveC1kb3VibGUtYm91bmNlMSxcbi5iYWd1ZXR0ZUJveC1kb3VibGUtYm91bmNlMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG9wYWNpdHk6IC42O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBhbmltYXRpb246IGJvdW5jZSAycyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbn1cblxuLmJhZ3VldHRlQm94LWRvdWJsZS1ib3VuY2UyIHtcbiAgICBhbmltYXRpb24tZGVsYXk6IC0xcztcbn1cblxuQGtleWZyYW1lcyBib3VuY2Uge1xuICAgIDAlLCAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB9IDUwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgfVxufVxuIiwiLyohIG5vcm1hbGl6ZS5zY3NzIHYwLjEuMCB8IE1JVCBMaWNlbnNlIHwgYmFzZWQgb24gZ2l0LmlvL25vcm1hbGl6ZSAqL1xuXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiAqICAgIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vKipcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IHZhcmlhYmxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gUHJlZml4XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBZb3UgY2FuIG9wdGlvbmFsbHkgbmFtZXNwYWNlIHJlZmxleCBjbGFzc2VzIHRvIGF2b2lkIGNsYXNoaW5nIHdpdGggb3RoZXIgY3NzIGZyYW1ld29ya3Ncbi8vIGUuZy4gc2V0dGluZyAkcmVmbGV4LXByZWZpeCBhcyBcInJlZmxleC1cIiBoZXJlIHdvdWxkIGNhdXNlIGNvbC1zbS02IHRvIGJlY29tZSByZWZsZXgtY29sLXNtLTZcbi8vIEV4YW1wbGU6ICRyZWZsZXgtcHJlZml4OiByZWZsZXgtO1xuLy8gQnkgZGVmYXVsdCB0aGlzIGlzIGFuIGVtcHR5IHN0cmluZ1xuJHJlZmxleC1wcmVmaXg6IG51bGwgIWRlZmF1bHQ7XG5cblxuLy8gTGVnYWN5IHN1cHBvcnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlZmxleCBhZGRzIGEgbG90IG9mIGNzcyBwcm9wZXJ0aWUgdG8gc3VwcG9ydCBvbGRlciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgZmxleGJveCBsYXlvdXQuXG4vLyBJZiB5b3UgcHJlZmVyIHRvIHVzZSB0aGlzIGFzIGEgcHVyZWx5IGZsZXhib3ggZ3JpZCB3aXRob3V0IGxlZ2FjeSBzdXBwb3J0IHRoZW4gc2V0IHRoaXMgdG8gZmFsc2VcbiRsZWdhY3ktc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IGhlbHBlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlZmxleCBoYXMgc29tZSBnZW5lcmljIHZpc2liaWxpdHkgY2xhc3NlcyB0byBoaWRlIGVsZW1lbnRzIGF0IGRpZmZlcmVudCBicmVha3BvaW50cy5cbi8vIElmIHlvdSB3YW50IHRvIGRpc2FibGUgdGhlc2UgdGhlbiBzZXQgdGhpcyB0byBmYWxzZVxuJHZpc2liaWxpdHktaGVscGVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gR3JpZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJHJlZmxleC1jb2x1bW5zOiAxMiAhZGVmYXVsdDsgLy8gbnVtYmVyIG9mIGNvbHVtbnNcblxuLy8gQnJlYWtwb2ludHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRyZWZsZXgteHM6IDU3NnB4ICFkZWZhdWx0O1xuJHJlZmxleC1zbTogNzY4cHggIWRlZmF1bHQ7XG4kcmVmbGV4LW1kOiA5OTJweCAhZGVmYXVsdDtcbiRyZWZsZXgtbGc6IDEyMDBweCAhZGVmYXVsdDtcbiRyZWZsZXgteGxnOiAxNjAwcHggIWRlZmF1bHQ7XG5cbiRyZWZsZXgteHhzLW1heDogKCRyZWZsZXgteHMgLSAxKTtcbiRyZWZsZXgteHMtbWF4OiAoJHJlZmxleC1zbSAtIDEpO1xuJHJlZmxleC1zbS1tYXg6ICgkcmVmbGV4LW1kIC0gMSk7XG4kcmVmbGV4LW1kLW1heDogKCRyZWZsZXgtbGcgLSAxKTtcbiRyZWZsZXgtbGctbWF4OiAoJHJlZmxleC14bGcgLSAxKTtcblxuJHJlZmxleC1icmVha3BvaW50czogKFxuICB4eHM6IDBweCxcbiAgeHM6ICRyZWZsZXgteHMsXG4gIHNtOiAkcmVmbGV4LXNtLFxuICBtZDogJHJlZmxleC1tZCxcbiAgbGc6ICRyZWZsZXgtbGcsXG4gIHhsZzogJHJlZmxleC14bGdcbik7XG5cbi8vIFNwYWNpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRyZWZsZXgtZ3JpZC1zcGFjaW5nOiAxNXB4ICFkZWZhdWx0O1xuXG4vLyBDdXN0b20gcHJvcGVydGllcyBzbyBvdGhlcnMgY2FuIHJlZmVyZW5jZSB0aGUgdmFyaWFibGVzLlxuOnJvb3Qge1xuICAtLXJlZmxleC1jb2x1bW5zOiAjeyAkcmVmbGV4LWNvbHVtbnMgfTtcbiAgLS1yZWZsZXgtZ3JpZC1zcGFjaW5nOiAjeyAkcmVmbGV4LWdyaWQtc3BhY2luZyB9O1xuICAtLXJlZmxleC14czogI3sgJHJlZmxleC14cyB9O1xuICAtLXJlZmxleC1zbTogI3sgJHJlZmxleC1zbSB9O1xuICAtLXJlZmxleC1tZDogI3sgJHJlZmxleC1tZCB9O1xuICAtLXJlZmxleC1sZzogI3sgJHJlZmxleC1sZyB9O1xuICAtLXJlZmxleC14bGc6ICN7ICRyZWZsZXgteGxnIH07XG4gIC0tcmVmbGV4LXh4cy1tYXg6ICN7ICRyZWZsZXgteHhzLW1heCB9O1xuICAtLXJlZmxleC14cy1tYXg6ICN7ICRyZWZsZXgteHMtbWF4IH07XG4gIC0tcmVmbGV4LXNtLW1heDogI3sgJHJlZmxleC1zbS1tYXggfTtcbiAgLS1yZWZsZXgtbWQtbWF4OiAjeyAkcmVmbGV4LW1kLW1heCB9O1xuICAtLXJlZmxleC1sZy1tYXg6ICN7ICRyZWZsZXgtbGctbWF4IH07XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IGNvbnRhaW5lcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWNvbnRhaW5lcixcbi4jeyRyZWZsZXgtcHJlZml4fWNvbnRhaW5lci1mdWxsIHtcbiAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBwYWRkaW5nLXJpZ2h0OiAoJHJlZmxleC1ncmlkLXNwYWNpbmcgKiAyKTtcbiAgICBwYWRkaW5nLWxlZnQ6ICgkcmVmbGV4LWdyaWQtc3BhY2luZyAqIDIpO1xuXG4gICAgLiN7JHJlZmxleC1wcmVmaXh9Z3JpZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLSRyZWZsZXgtZ3JpZC1zcGFjaW5nO1xuICAgICAgICBtYXJnaW4tbGVmdDogLSRyZWZsZXgtZ3JpZC1zcGFjaW5nO1xuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9Y29udGFpbmVyIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14cykge1xuICAgICAgICBtYXgtd2lkdGg6ICRyZWZsZXgteHM7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtc20pIHtcbiAgICAgICAgbWF4LXdpZHRoOiAkcmVmbGV4LXNtO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LW1kKSB7XG4gICAgICAgIG1heC13aWR0aDogJHJlZmxleC1tZDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1sZykge1xuICAgICAgICBtYXgtd2lkdGg6ICRyZWZsZXgtbGc7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteGxnKSB7XG4gICAgICAgIG1heC13aWR0aDogJHJlZmxleC14bGc7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IGdyaWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWdyaWQge1xuICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgQGluY2x1ZGUgZGlzcGxheS1mbGV4KCk7XG4gICAgQGluY2x1ZGUgZmxleC13cmFwKCk7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgc2V0dXAtd2hpdGVzcGFjZSgpO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtd2hpdGVzcGFjZSgpO1xuICAgIH1cblxuICAgIC8vIGhhbmRsZSB3aGVuIGxpc3RzIGFyZSB1c2VkIGFzIGEgZ3JpZFxuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBjb2wgZGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbltjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgQGluY2x1ZGUgcmVzZXQtd2hpdGVzcGFjZSgpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHBhZGRpbmc6ICRyZWZsZXgtZ3JpZC1zcGFjaW5nO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtd2hpdGVzcGFjZSgpO1xuICAgIH1cblxuICAgIC8vIGhhbmRsZSBncmlkcyBuZXN0ZWQgaW4gY29sdW1uc1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWdyaWQge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KDEsIDEsIGF1dG8pO1xuICAgICAgICBtYXJnaW46IC0kcmVmbGV4LWdyaWQtc3BhY2luZztcbiAgICB9XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICpkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIHpvb206IDE7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IGdyaWQgZ2VuZXJhdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgbWFrZS1yZWZsZXgtZ3JpZChjb2wtKTtcblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteHMpIHtcbiAgICBAaW5jbHVkZSBtYWtlLXJlZmxleC1ncmlkKGNvbC14cy0pO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1zbSkge1xuICAgIEBpbmNsdWRlIG1ha2UtcmVmbGV4LWdyaWQoY29sLXNtLSk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LW1kKSB7XG4gICAgQGluY2x1ZGUgbWFrZS1yZWZsZXgtZ3JpZChjb2wtbWQtKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtbGcpIHtcbiAgICBAaW5jbHVkZSBtYWtlLXJlZmxleC1ncmlkKGNvbC1sZy0pO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14bGcpIHtcbiAgICBAaW5jbHVkZSBtYWtlLXJlZmxleC1ncmlkKGNvbC14bGctKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBjb2wtYXV0b1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9Y29sLWF1dG8ge1xuICAgIEBpbmNsdWRlIHNldHVwLWF1dG8tY29scygpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14cykge1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWNvbC14cy1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0dXAtYXV0by1jb2xzKCk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1zbSkge1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWNvbC1zbS1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0dXAtYXV0by1jb2xzKCk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1tZCkge1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWNvbC1tZC1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0dXAtYXV0by1jb2xzKCk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1sZykge1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWNvbC1sZy1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0dXAtYXV0by1jb2xzKCk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14bGcpIHtcbiAgICAuI3skcmVmbGV4LXByZWZpeH1jb2wteGxnLWF1dG8ge1xuICAgICAgICBAaW5jbHVkZSBzZXR1cC1hdXRvLWNvbHMoKTtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggb3JkZXIgaGVscGVycyBnZW5lcmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBtYWtlLW9yZGVyLWhlbHBlcnMoKTtcblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteHMpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9yZGVyLWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zLCAnLXhzJyk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LXNtKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1vcmRlci1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucywgJy1zbScpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1tZCkge1xuICAgIEBpbmNsdWRlIGxvb3Atb3JkZXItaGVscGVycygkcmVmbGV4LWNvbHVtbnMsICctbWQnKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtbGcpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9yZGVyLWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zLCAnLWxnJyk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LXhsZykge1xuICAgIEBpbmNsdWRlIGxvb3Atb3JkZXItaGVscGVycygkcmVmbGV4LWNvbHVtbnMsICcteGxnJyk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggb2Zmc2V0IGhlbHBlcnMgZ2VuZXJhdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgbWFrZS1vZmZzZXQtaGVscGVycygpO1xuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14cykge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSwgJy14cycpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1zbSkge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSwgJy1zbScpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1tZCkge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSwgJy1tZCcpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1sZykge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSwgJy1sZycpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14bGcpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9mZnNldC1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucyAtIDEsICcteGxnJyk7XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IG1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IGdyaWQgZ2VuZXJhdGlvbiBtaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBtYWtlLXJlZmxleC1ncmlkKCRjbGFzcykge1xuICAgIEBpbmNsdWRlIGxvb3AtcmVmbGV4LWNvbHVtbnMoJHJlZmxleC1jb2x1bW5zLCAkY2xhc3MsIHdpZHRoKTtcbn1cblxuQG1peGluIGNhbGMtcmVmbGV4LWNvbHVtbnMoJGluZGV4LCAkY2xhc3MsICR0eXBlKSB7XG4gICAgQGlmICR0eXBlID09IHdpZHRoIGFuZCAkaW5kZXggPiAwIHtcbiAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9I3skY2xhc3N9I3skaW5kZXh9IHtcbiAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKCgkaW5kZXggLyAkcmVmbGV4LWNvbHVtbnMpKTtcbiAgICAgICAgICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgICAgICAgICAgKndpZHRoOiBwZXJjZW50YWdlKCgkaW5kZXggLyAkcmVmbGV4LWNvbHVtbnMpKSAtIC4xOyAvLyBpZTcgY3NzIGhhY2tcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIGxvb3AtcmVmbGV4LWNvbHVtbnMoJGluZGV4LCAkY2xhc3MsICR0eXBlKSB7XG4gICAgQGlmICRpbmRleCA+PSAwIHtcbiAgICAgICAgQGluY2x1ZGUgY2FsYy1yZWZsZXgtY29sdW1ucygkaW5kZXgsICRjbGFzcywgJHR5cGUpO1xuICAgICAgICAvLyBuZXh0IGl0ZXJhdGlvblxuICAgICAgICBAaW5jbHVkZSBsb29wLXJlZmxleC1jb2x1bW5zKCgkaW5kZXggLSAxKSwgJGNsYXNzLCAkdHlwZSk7XG4gICAgfVxufVxuXG4vLyBkZWZhdWx0cyBmb3IgYXV0byBjb2xzXG5AbWl4aW4gc2V0dXAtYXV0by1jb2xzKCkge1xuICAgIEBpbmNsdWRlIGZsZXgoMSwgMCwgMHB4KTsgLy8gYSB1bml0IG9uIGxhc3QgdmFsdWUgaXMgcmVxdWlyZWQgYnkgSUUxMC0xMVxuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gaW5saW5lLWJsb2NrIHNwZWNpZmljIG1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIHNldHVwLXdoaXRlc3BhY2UoKSB7XG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0uMzFlbTtcbiAgICAgICAgKmxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICAgIHdvcmQtc3BhY2luZzogLS40M2VtO1xuICAgIH1cbn1cblxuQG1peGluIHJlc2V0LXdoaXRlc3BhY2UoKSB7XG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgd29yZC1zcGFjaW5nOiBub3JtYWw7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgfVxufVxuXG5AbWl4aW4gcmVzZXQtdGV4dC1hbGlnbigpIHtcbiAgICAvL1xuICAgIC8vIFdlIHdhbnQgdG8gcmVzZXQgYW55IHRleHQtYWxpZ24gcHJvcGVydGllcyBzZXQgYnkgdGhlIGdyaWRcbiAgICAvLyAocmVxdWlyZWQgZm9yIHRoZSBpbmxpbmUtYmxvY2sgZmFsbGJhY2spXG4gICAgLy8gYnV0IHdlIGRvbid0IHdhbnQgdG8gb3ZlcnJpZGUgYW55IHRleHQtYWxpZ24gcHJvcGVydGllc1xuICAgIC8vIHNldCBvbiB0aGUgaW5kaXZpZHVhbCBjb2wteCBlbGVtZW50XG4gICAgLy8gb3Igb24gYW55IG9mIGl0J3MgY2hpbGQgZWxlbWVudHNcbiAgICAvL1xuICAgIC8vIDEpIHNldCB0byBsZWZ0IGJ5IGRlZmF1bHQgKHdvcmtzIGV2ZXJ5d2hlcmUpXG4gICAgLy8gMikgc2V0IHRvIHN0YXJ0IChyZXNwZWN0cyByaWdodCB0byBsZWZ0IHRleHQpXG4gICAgLy9cbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgIC1tb3otdGV4dC1hbGlnbi1sYXN0OiBsZWZ0O1xuICAgIC1tb3otdGV4dC1hbGlnbi1sYXN0OiBzdGFydDtcbiAgICB0ZXh0LWFsaWduLWxhc3Q6IGxlZnQ7XG4gICAgdGV4dC1hbGlnbi1sYXN0OiBzdGFydDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIG9yZGVyIGNsYXNzIGdlbmVyYXRpb24gbWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gb3JkZXIoJG9yZGVyOiAwKSB7XG4gICAgLW1zLWZsZXgtb3JkZXI6ICRvcmRlcjtcbiAgICAtd2Via2l0LW9yZGVyOiAkb3JkZXI7XG4gICAgb3JkZXI6ICRvcmRlcjtcbn1cblxuQG1peGluIG1ha2Utb3JkZXItaGVscGVycygpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9yZGVyLWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zKTtcbn1cblxuQG1peGluIGxvb3Atb3JkZXItaGVscGVycygkaW5kZXgsICRicmVha3BvaW50OiBudWxsKSB7XG4gICAgQGlmICRpbmRleCA+PSAwIHtcbiAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9b3JkZXIjeyRicmVha3BvaW50fS0jeyRpbmRleH0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgb3JkZXIoJGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBuZXh0IGl0ZXJhdGlvblxuICAgICAgICBAaW5jbHVkZSBsb29wLW9yZGVyLWhlbHBlcnMoKCRpbmRleCAtIDEpLCAkYnJlYWtwb2ludCk7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gb2Zmc2V0IGNsYXNzIGdlbmVyYXRpb24gbWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIG9mZnNldCgkaW5kZXg6IDApIHtcbiAgICAkb2Zmc2V0OiAoJGluZGV4IC8gJHJlZmxleC1jb2x1bW5zKTtcbiAgICAvLyBjb252ZXJ0IHRvIHBlcmNlbnRhZ2Ugb25seSBpZiBub3QgemVyb1xuICAgIEBpZiAkb2Zmc2V0ICE9IDAge1xuICAgICAgICAkb2Zmc2V0OiBwZXJjZW50YWdlKCRvZmZzZXQpO1xuICAgIH1cbiAgICBtYXJnaW4tbGVmdDogJG9mZnNldDtcbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAqbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKCRpbmRleCAvICRyZWZsZXgtY29sdW1ucykpIC0gLjE7IC8vIGllNyBjc3MgaGFja1xuICAgIH1cbn1cblxuQG1peGluIG1ha2Utb2Zmc2V0LWhlbHBlcnMoKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1vZmZzZXQtaGVscGVycygkcmVmbGV4LWNvbHVtbnMgLSAxKTtcbn1cblxuQG1peGluIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJGluZGV4LCAkYnJlYWtwb2ludDogbnVsbCkge1xuICAgIEBpZiAkaW5kZXggPiAwIGFuZCAkYnJlYWtwb2ludCA9PSBudWxsIHtcbiAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9b2Zmc2V0I3skYnJlYWtwb2ludH0tI3skaW5kZXh9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG9mZnNldCgkaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIG5leHQgaXRlcmF0aW9uXG4gICAgICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoKCRpbmRleCAtIDEpLCAkYnJlYWtwb2ludCk7XG4gICAgfSBAZWxzZSBpZiAkaW5kZXggPj0gMCBhbmQgJGJyZWFrcG9pbnQgIT0gbnVsbCB7XG4gICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fW9mZnNldCN7JGJyZWFrcG9pbnR9LSN7JGluZGV4fSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBvZmZzZXQoJGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBuZXh0IGl0ZXJhdGlvblxuICAgICAgICBAaW5jbHVkZSBsb29wLW9mZnNldC1oZWxwZXJzKCgkaW5kZXggLSAxKSwgJGJyZWFrcG9pbnQpO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBtb2RpZmllciBtaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vXG4vLyBkaXNwbGF5XG4vLyAtLS1cblxuQG1peGluIGRpc3BsYXktZmxleCgpIHtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLy9cbi8vIGZsZXhcbi8vIC0tLVxuXG5AbWl4aW4gZmxleCgkZ3JvdzogMCwgJHNocmluazogMSwgJGJhc2lzOiBhdXRvKSB7XG4gICAgQGlmICRiYXNpcyA9PSAwIHtcbiAgICAgICAgLW1zLWZsZXg6ICRncm93ICRzaHJpbmsgYXV0bzsgLy9pZTEwIG5lZWRzIGF1dG9cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgLW1zLWZsZXg6ICRncm93ICRzaHJpbmsgJGJhc2lzO1xuICAgIH1cblxuICAgIC13ZWJraXQtZmxleDogJGdyb3cgJHNocmluayAkYmFzaXM7XG4gICAgZmxleDogJGdyb3cgJHNocmluayAkYmFzaXM7XG59XG5cbkBtaXhpbiBmbGV4LWdyb3coJGdyb3c6MSkge1xuICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAkZ3JvdztcbiAgICAtd2Via2l0LWZsZXgtZ3JvdzogJGdyb3c7XG4gICAgZmxleC1ncm93OiAkZ3Jvdztcbn1cblxuQG1peGluIGZsZXgtc2hyaW5rKCRzaHJpbms6MSkge1xuICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAkc2hyaW5rO1xuICAgIC13ZWJraXQtZmxleC1zaHJpbms6ICRzaHJpbms7XG4gICAgZmxleC1zaHJpbms6ICRzaHJpbms7XG59XG5cbkBtaXhpbiBmbGV4LWJhc2lzKCRiYXNpczphdXRvKSB7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICRiYXNpcztcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6ICRiYXNpcztcbiAgICBmbGV4LWJhc2lzOiAkYmFzaXM7XG59XG5cbkBtaXhpbiBmbGV4LWZsb3coJGRpcmVjdGlvbjogcm93LCAkd3JhcDogbm93cmFwKSB7XG4gICAgLW1zLWZsZXgtd3JhcDogJHdyYXA7XG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xuICAgIC13ZWJraXQtZmxleC1mbG93OiAkZGlyZWN0aW9uICR3cmFwO1xuICAgIGZsZXgtZmxvdzogJGRpcmVjdGlvbiAkd3JhcDtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkd3JhcDogd3JhcCkge1xuICAgIC1tcy1mbGV4LXdyYXA6ICR3cmFwO1xuICAgIC13ZWJraXQtZmxleC13cmFwOiAkd3JhcDtcbiAgICBmbGV4LXdyYXA6ICR3cmFwO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogcm93KSB7XG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xuICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG4gICAgZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG59XG5cbi8vXG4vLyBhbGlnblxuLy8gLS0tXG5cbkBtaXhpbiBhbGlnbi1pdGVtcygkYWxpZ246IHN0cmV0Y2gpIHtcbiAgICBAaW5jbHVkZSBtcy1hbGlnbi1pdGVtcygkYWxpZ24pO1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6ICRhbGlnbjtcbiAgICBhbGlnbi1pdGVtczogJGFsaWduO1xufVxuXG5AbWl4aW4gYWxpZ24tc2VsZigkYWxpZ246IHN0cmV0Y2gpIHtcbiAgICBAaW5jbHVkZSBtcy1hbGlnbi1zZWxmKCRhbGlnbik7XG4gICAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkYWxpZ247XG4gICAgYWxpZ24tc2VsZjogJGFsaWduO1xufVxuXG5AbWl4aW4gYWxpZ24tY29udGVudCgkYWxpZ246IHN0cmV0Y2gpIHtcbiAgICBAaW5jbHVkZSBtcy1hbGlnbi1jb250ZW50KCRhbGlnbik7XG4gICAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkYWxpZ247XG4gICAgYWxpZ24tY29udGVudDogJGFsaWduO1xufVxuXG4vL1xuLy8gaWUxMCBzeW50YXggZm9yIGFsaWduXG4vLyAtLS1cblxuQG1peGluIG1zLWFsaWduLWl0ZW1zKCRhbGlnbikge1xuICAgIEBpZiAkYWxpZ24gPT0gJ2ZsZXgtc3RhcnQnIHtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xuICAgIH0gQGVsc2UgaWYgJGFsaWduID09ICdmbGV4LWVuZCcge1xuICAgICAgICAtbXMtZmxleC1hbGlnbjogZW5kO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAtbXMtZmxleC1hbGlnbjogJGFsaWduO1xuICAgIH1cbn1cblxuQG1peGluIG1zLWFsaWduLXNlbGYoJGFsaWduKSB7XG4gICAgQGlmICRhbGlnbiA9PSAnZmxleC1zdGFydCcge1xuICAgICAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdGFydDtcbiAgICB9IEBlbHNlIGlmICRhbGlnbiA9PSAnZmxleC1lbmQnIHtcbiAgICAgICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogZW5kO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAtbXMtZmxleC1pdGVtLWFsaWduOiAkYWxpZ247XG4gICAgfVxufVxuXG5AbWl4aW4gbXMtYWxpZ24tY29udGVudCgkYWxpZ24pIHtcbiAgICBAaWYgJGFsaWduID09ICdmbGV4LXN0YXJ0JyB7XG4gICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogc3RhcnQ7XG4gICAgfSBAZWxzZSBpZiAkYWxpZ24gPT0gJ2ZsZXgtZW5kJyB7XG4gICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogZW5kO1xuICAgIH0gQGVsc2UgaWYgJGFsaWduID09ICdzcGFjZS1iZXR3ZWVuJyB7XG4gICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazoganVzdGlmeTtcbiAgICB9IEBlbHNlIGlmICRhbGlnbiA9PSAnc3BhY2UtYXJvdW5kJyB7XG4gICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogZGlzdHJpYnV0ZTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiAkYWxpZ247XG4gICAgfVxufVxuXG4vL1xuLy8ganVzdGlmeS1jb250ZW50XG4vL1xuLy8gVXNlcyBcInRleHQtYWxpZ25cIiBmb3IgdGhlIGZhbGxiYWNrIGlubGluZS1ibG9jayBncmlkXG4vLyBcInRleHQtYWxpZ25cIiBpcyBnbG9iYWxseSBzdXBwb3J0ZWQgYW5kIHdvcmtzIG9uIGFsbCByb3dzIGV4Y2VwdCB0aGUgbGFzdFxuLy8gXCJ0ZXh0LWFsaWduLWxhc3RcIiwgd2hlcmUgc3VwcG9ydGVkLCBoYW5kbGVzIHRoZSBsYXN0IGxpbmUgKGFuZCwgaGFwcGlseSwgZ3JpZHMgd2l0aCBvbmx5IG9uZSByb3cpXG4vLyAtLS1cblxuQG1peGluIGp1c3RpZnktY29udGVudC1zdGFydCgpIHtcbiAgICAtbXMtZmxleC1wYWNrOiBzdGFydDtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQtZW5kKCkge1xuICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuQG1peGluIGp1c3RpZnktY29udGVudC1jZW50ZXIoKSB7XG4gICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYmV0d2VlbigpIHtcbiAgICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuQG1peGluIGp1c3RpZnktY29udGVudC1zcGFjZS1hcm91bmQoKSB7XG4gICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZTtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmVzcG9uc2libGUgVmlzaWJpbGl0eVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIHJlc3BvbnNpdmUtdmlzaWJpbGl0eS1oZWxwZXJzKCkge1xuICAgIEBpZiAkdmlzaWJpbGl0eS1oZWxwZXJzID09IHRydWUge1xuICAgICAgICAvLyBXZSBuZWVkIHRvIGhhbmRsZSB4eHMgYW5kIHhsZyBicmVha3BvaW50cyBkaWZmZXJlbnRseVxuICAgICAgICAkbWFwLXJlZmxleC1icmVha3BvaW50czogbWFwLXJlbW92ZSgkcmVmbGV4LWJyZWFrcG9pbnRzLCB4eHMsIHhsZyk7XG5cbiAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9aGlkZGVuLXh4cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LW9ubHkoJ3h4cycpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGJwIGluIG1hcC1rZXlzKCRtYXAtcmVmbGV4LWJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1oaWRkZW4tI3skYnB9LXVwIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicCkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgXG5cbiAgICAgICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fWhpZGRlbi0jeyRicH0tZG93biB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRicCkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9aGlkZGVuLSN7JGJwfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRicCkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fWhpZGRlbi14bGcge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1vbmx5KCd4bGcnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cbi8vXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XG4vLyAoeHM6IDU3NnB4LCBzbTogNzY4cHgsIG1kOiA5OTJweClcbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRyZWZsZXgtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxuLy8gPj4gYnJlYWtwb2ludC1uZXh0KHNtKSAtPiBtZFxuLy8gPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludHM6ICh4czogNTc2cHgsIHNtOiA3NjhweCwgbWQ6IDk5MnB4KSkgLT4gbWRcbi8vID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCkpIC0+IG1kXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRyZWZsZXgtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gICAgQHJldHVybiBpZigkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XG59XG5cbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cbi8vID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDU3NnB4LCBzbTogNzY4cHgsIG1kOiA5OTJweCkpIC0+IDc2OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJHJlZmxleC1icmVha3BvaW50cykge1xuICAgICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgQHJldHVybiBpZigkbWluICE9MCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIGxhcmdlc3QgKGxhc3QpIGJyZWFrcG9pbnQuXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyBjYWxjdWxhdGVkIGFzIHRoZSBtaW5pbXVtIG9mIHRoZSBuZXh0IG9uZSBsZXNzIDAuMS5cbi8vID4+IGJyZWFrcG9pbnQtbWF4KHNtLCAoeHM6IDU3NnB4LCBzbTogNzY4cHgsIG1kOiA5OTJweCkpIC0+IDk5MXB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJHJlZmxleC1icmVha3BvaW50cykge1xuICAgICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gICAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAxLCBudWxsKTtcbn1cblxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRyZWZsZXgtYnJlYWtwb2ludHMpIHtcbiAgICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcblxuICAgIEBpZiAkbWluIHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkcmVmbGV4LWJyZWFrcG9pbnRzKSB7XG4gICAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG5cbiAgICBAaWYgJG1heCB7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJHJlZmxleC1icmVha3BvaW50cykge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBvdGhlciBtaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBib3gtc2l6aW5nKCRib3htb2RlbCkge1xuICAgIC13ZWJraXQtYm94LXNpemluZzogJGJveG1vZGVsO1xuICAgIC1tb3otYm94LXNpemluZzogJGJveG1vZGVsO1xuICAgIGJveC1zaXppbmc6ICRib3htb2RlbDtcbn1cbiIsIlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGdyaWQgbW9kaWZpZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gZmxleC13cmFwXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH13cmFwIHtcbiAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fW5vLXdyYXAge1xuICAgIEBpbmNsdWRlIGZsZXgtd3JhcChub3dyYXApO1xuXG4gICAgLy8gVGhpcyBpcyBtb3N0bHkgbmVlZGVkIHRvIHN0b3AgdGhlIGdyaWQgY29udGVudHMgb3ZlcmZsb3dpbmcgaW4gdGhlXG4gICAgLy8gaWUxMCBpbXBsZW1lbnRhdGlvbiBvZiBmbGV4Ym94IGJ1dCBpdCBjYW4ndCBodXJ0IGluIG90aGVyIGJyb3dzZXJzXG4gICAgLy8gYXMgaXQgaXMgdGhlIGRlc2lyZWQgYmVoYXZpb3VyIG9mIG5vbiB3cmFwcGluZyBmbGV4IGl0ZW1zXG4gICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtc2hyaW5rKDEpO1xuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9d3JhcC1yZXZlcnNlIHtcbiAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcC1yZXZlcnNlKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGZsZXgtZGlyZWN0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1kaXJlY3Rpb24tcm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1kaXJlY3Rpb24tcm93LXJldmVyc2Uge1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdy1yZXZlcnNlKTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9ZGlyZWN0aW9uLWNvbHVtbiB7XG4gICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9ZGlyZWN0aW9uLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4tcmV2ZXJzZSk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBhbGlnbiBpdGVtcyAoY3Jvc3MgYXhpcylcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLXN0YXJ0IHtcbiAgICBAaW5jbHVkZSBhbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tZW5kIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1pdGVtcyhmbGV4LWVuZCk7XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAvLyBmYWxsYmFjayB0byBsZWdhY3kgdmVydGljYWwtYWxpZ25cbiAgICAgICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1jZW50ZXIge1xuICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGNlbnRlcik7XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAvLyBmYWxsYmFjayB0byBsZWdhY3kgdmVydGljYWwtYWxpZ25cbiAgICAgICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1iYXNlbGluZSB7XG4gICAgQGluY2x1ZGUgYWxpZ24taXRlbXMoYmFzZWxpbmUpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gYWxpZ24gY29udGVudCAoY3Jvc3MgYXhpcylcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLWNvbnRlbnQtc3RhcnQge1xuICAgIEBpbmNsdWRlIGFsaWduLWNvbnRlbnQoZmxleC1zdGFydCk7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLWNvbnRlbnQtZW5kIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1jb250ZW50KGZsZXgtZW5kKTtcblxuICAgIC8vIGZhbGxiYWNrIHRvIGxlZ2FjeSB2ZXJ0aWNhbC1hbGlnblxuICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tY29udGVudC1jZW50ZXIge1xuICAgIEBpbmNsdWRlIGFsaWduLWNvbnRlbnQoY2VudGVyKTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tY29udGVudC1zcGFjZS1iZXR3ZWVuIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1jb250ZW50LXNwYWNlLWFyb3VuZCB7XG4gICAgQGluY2x1ZGUgYWxpZ24tY29udGVudChzcGFjZS1hcm91bmQpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gYWxpZ24tc2VsZlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tc2VsZi1zdHJldGNoIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1zZWxmKHN0cmV0Y2gpO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1zZWxmLXN0YXJ0IHtcbiAgICBAaW5jbHVkZSBhbGlnbi1zZWxmKGZsZXgtc3RhcnQpO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1zZWxmLWVuZCB7XG4gICAgQGluY2x1ZGUgYWxpZ24tc2VsZihmbGV4LWVuZCk7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tc2VsZi1jZW50ZXIge1xuICAgIEBpbmNsdWRlIGFsaWduLXNlbGYoY2VudGVyKTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1zZWxmLWJhc2VsaW5lIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1zZWxmKGJhc2VsaW5lKTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBqdXN0aWZ5LWNvbnRlbnQgKG1haW4gYXhpcylcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWp1c3RpZnktc3RhcnQge1xuICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudC1zdGFydCgpO1xuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgJi5ncmlkIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWp1c3RpZnktZW5kIHtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQtZW5kKCk7XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAmLmdyaWQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAtbW96LXRleHQtYWxpZ24tbGFzdDogcmlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduLWxhc3Q6IHJpZ2h0O1xuXG4gICAgICAgICAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNldC10ZXh0LWFsaWduKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWp1c3RpZnktY2VudGVyIHtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyKCk7XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAmLmdyaWQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgLW1vei10ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xuXG4gICAgICAgICAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNldC10ZXh0LWFsaWduKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWp1c3RpZnktc3BhY2UtYmV0d2VlbiB7XG4gICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW4oKTtcblxuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgICYuZ3JpZCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgICAgICAgICAgLW1vei10ZXh0LWFsaWduLWxhc3Q6IGp1c3RpZnk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduLWxhc3Q6IGp1c3RpZnk7XG5cbiAgICAgICAgICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc2V0LXRleHQtYWxpZ24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9anVzdGlmeS1zcGFjZS1hcm91bmQge1xuICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudC1zcGFjZS1hcm91bmQoKTtcblxuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgICYuZ3JpZCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgICAgICAgICAgLW1vei10ZXh0LWFsaWduLWxhc3Q6IGp1c3RpZnk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduLWxhc3Q6IGp1c3RpZnk7XG5cbiAgICAgICAgICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc2V0LXRleHQtYWxpZ24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGNvc21ldGljIGdyaWQgbW9kaWZpZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBSZW1vdmVzIGludGVybmFsIHBhZGRpbmcgZnJvbSBhbGwgY29sdW1ucyBpbiBhIGdyaWRcbi4jeyRyZWZsZXgtcHJlZml4fWdyaWQtYmxlZWQge1xuICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGNvbCBtb2RpZmllcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE1ha2VzIGEgY29sdW1uIGVsZW1lbnQgaW50byBhIGZsZXhib3ggY29sdW1uXG4uI3skcmVmbGV4LXByZWZpeH1jb2wtZ3JpZCB7XG4gICAgQGluY2x1ZGUgZGlzcGxheS1mbGV4KCk7XG4gICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcblxuICAgICYuI3skcmVmbGV4LXByZWZpeH1kaXJlY3Rpb24tcm93IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbiAgICB9XG59XG5cbi8vIFJlbW92ZXMgaW50ZXJuYWwgcGFkZGluZyBmcm9tIGFsbCBjb2x1bW5zIGluIGEgZ3JpZFxuLiN7JHJlZmxleC1wcmVmaXh9Y29sLWJsZWVkIHtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vLyBSZW1vdmVzIGhvcml6b250YWwgcGFkZGluZyBmcm9tIGFsbCBjb2x1bW5zIGluIGEgZ3JpZFxuLiN7JHJlZmxleC1wcmVmaXh9Y29sLWJsZWVkLXgge1xuICAgIHBhZGRpbmc6ICRyZWZsZXgtZ3JpZC1zcGFjaW5nIDA7XG59XG5cbi8vIFJlbW92ZXMgdmVydGljYWwgcGFkZGluZyBmcm9tIGFsbCBjb2x1bW5zIGluIGEgZ3JpZFxuLiN7JHJlZmxleC1wcmVmaXh9Y29sLWJsZWVkLXkge1xuICAgIHBhZGRpbmc6IDAgJHJlZmxleC1ncmlkLXNwYWNpbmc7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBjb2wtZ3JpZCBjb250ZW50c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9ZmxleC1pbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIEBpbmNsdWRlIGZsZXgoMCwgMCwgYXV0byk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAqd2lkdGg6IGF1dG87XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1mbGV4LWZvb3RlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IG1vZGlmaWVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgcmVzcG9uc2l2ZS12aXNpYmlsaXR5LWhlbHBlcnMoKTtcbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBDb25maWcgLSBGb250c1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5AbWl4aW4gZm9udC11IHtcbiAgICBAaW5jbHVkZSBmb250LWJvO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ29wZW5fc2Fuc2JvbGQnO1xuICBzcmM6IHVybCgnLi4vZm9udC9vcGVuc2Fucy1ib2xkLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgdXJsKCcuLi9mb250L29wZW5zYW5zLWJvbGQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnb3Blbl9zYW5zcmVndWxhcic7XG4gIHNyYzogdXJsKCcuLi9mb250L29wZW5zYW5zLXJlZ3VsYXItd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICB1cmwoJy4uL2ZvbnQvb3BlbnNhbnMtcmVndWxhci13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufSIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBDb25maWcgLSBWYXJzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cbjpyb290IHtcbiAgLS1jLXByaW1hcnk6ICMxZjFkMWU7XG4gIC0tYy1zZWNvbmRhcnk6ICNmZmI3YTM7XG4gIC0tYy13aGl0ZTogI2ZmZmZmZjtcbiAgLS1jLWJsYWNrOiAjMDAwMDAwO1xuICAtLWMtZ3JleTogI0Y5RjlGOTtcblxuICAtLWMtdGV4dDogIzFmMWQxZTtcbiAgLS1jLWJnOiAjZmZmO1xuICAtLWMtcG9tcGVpaTogIzg2MjYzMztcbiAgLS1jLW1fcmVkOiAjYWYxZTJkO1xuICAtLWMtYl9yZWQ6ICNiZjJlMDA7XG4gIC0tYy1zdG9uZTogdHJhbnNwYXJlbnRpemUoIzQ0NWEzZSwgMC45KTtcbiAgLS1jLWJsdWU6ICM1NmFiYjA7XG4gIC0tYy1zX2JsdWU6ICMwMDRmNzE7XG4gIC0tYy1ncmVlbjogIzQ0NWEzZTtcbiAgLS1jLXNsYXRlOiAjNjI1NzU0O1xuXG4gIC0tYy1leGhpYml0aW9uOiAjMDA2NDAwO1xuICAtLWMtdGFsa3M6ICM3QTAwN0E7XG4gIC0tYy10b3VyczogIzQ0NDQ0NDtcbiAgLS1jLWV2ZW5pbmc6ICM0NDVhM2U7XG4gIC0tYy1mYW1pbGllczogIzE3NTk3RTtcbiAgLS1jLXdvcmtzaG9wczogIzAwODA4MDtcbiAgLS1jLW9mZnNpdGUtdG91cmluZzogI2I2OGNjMTtcbiAgLS1jLXNvYW5lLWxhdGVzOiAjODYyNjMzO1xuICAtLWMtY291cnNlOiAjREYzNjAwO1xuXG4gIFxuXG4gIC0tZm9udC1vc2xvOiAnb3Blbl9zYW5zcmVndWxhcicsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJyxcbiAgICBSb2JvdG8sIE94eWdlbiwgVWJ1bnR1LCBDYW50YXJlbGwsICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmO1xuICAtLWZvbnQtYm9keTogJ29wZW5fc2Fuc3JlZ3VsYXInLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsXG4gICAgUm9ib3RvLCBPeHlnZW4sIFVidW50dSwgQ2FudGFyZWxsLCAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcbiAgLS1mb250LWJvbGQ6ICdvcGVuX3NhbnNib2xkJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLFxuICAgIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsIENhbnRhcmVsbCwgJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWY7XG4gIC0tZm9udC10aXRsZTogJ29wZW5fc2Fuc2JvbGQnLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsXG4gICAgUm9ib3RvLCBPeHlnZW4sIFVidW50dSwgQ2FudGFyZWxsLCAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcbiAgLS1mb250LXRpdGxlLXJlZzogJ29wZW5fc2Fuc3JlZ3VsYXInLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsXG4gICAgJ1NlZ29lIFVJJywgUm9ib3RvLCBPeHlnZW4sIFVidW50dSwgQ2FudGFyZWxsLCAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJyxcbiAgICBzYW5zLXNlcmlmO1xuICAtLWZvbnQtdGl0bGU6ICdvcGVuX3NhbnNib2xkJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLFxuICAgIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsIENhbnRhcmVsbCwgJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWY7XG5cbiAgLS1mb250U2l6ZTogMTAwJTtcbiAgLS1mb250U21hbGw6IDcwJTtcbiAgLS1saW5lSGVpZ2h0OiAxLjU7XG4gIC0tYnVtcDogMzBweDtcbiAgLS1iYXNlVW5pdDogOHB4O1xuXG4gIC0tZm9udFNpemVCb2R5OiAxOHB4O1xuICAtLWxpbmVIZWlnaHRCb2R5OiAyN3B4O1xuXG4gIC0tY29udGFpbmVyV2lkdGg6IDEwMHJlbTtcblxuICAvLyBMYXlvdXRcbiAgLS1jb250YWluZXJXaWR0aDogMTI0NXB4O1xuXG4gIC8vIEFuaW1hdGlvbnNcbiAgLS1lYXNpbmc6IGN1YmljLWJlemllcigwLjgzLCAwLCAwLjE3LCAxKTtcbiAgLS10cmFuc2l0aW9uOiAwLjNzIHZhcigtLWVhc2luZyk7XG59XG5cbi8qKlxuICogQnJlYWtwb2ludHNcbiAqL1xuJGJyZWFrcG9pbnRzOiAoXG4gIHhzOiA1NzZweCxcbiAgc206IDc2OHB4LFxuICBtZDogOTkycHgsXG4gIGxnOiAxMjAwcHgsXG4gIHhsZzogMTYwMHB4LFxuKTtcbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBIZWxwZXJzIC0gRm9jdXMgVmlzaWJsZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogRm9jdXMgVmlzaWJsZVxuICogaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvZm9jdXMtdmlzaWJsZVxuICogT3ZlcnJpZGUgYmFzZSBmb2N1cyBzdHlsZXMgZm9yIG1vdXNlIGFuZCB0b3VjaCBpbnRlcmFjdGlvbnNcbiAqL1xuQG1peGluIGZvY3VzLXZpc2libGUoKSB7XG4gIC5qcy1mb2N1cy12aXNpYmxlICYge1xuICAgICY6bm90KC5mb2N1cy12aXNpYmxlKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBIZWxwZXJzIC0gRm9udCBTbW9vdGhpbmdcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKiogXG4gKiBGb250IFNtb290aGluZ1xuICogRW5hYmxlcyBmb250IHNtb290aGluZyBmb3IgY2FwYWJsZSBicm93c2Vycy5cbiAqIE9wdGlvbmFsbHkgZm9yY2UgZm9udC1zbW9vdGhpbmcgb24gbm9uLXJldGluYSBkZXZpY2VzLlxuICogQHBhcmFtIHtib29sZWFufSAkZm9yY2UgW2ZhbHNlXVxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5AbWl4aW4gZm9udC1zbW9vdGhpbmcoJGZvcmNlOiBmYWxzZSkge1xuICBAaWYgJGZvcmNlID09IHRydWUge1xuICAgIC1tb3otZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICB9IEBlbHNlIHtcbiAgICBAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSB7XG4gICAgICAtbW96LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogSGVscGVycyAtIEdsb2JhbCBtaXhpbnNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vLyBSZXNldCA8bGk+IGVsZW1lbnRzXG5AbWl4aW4gbGktcmVzZXQge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG5cbiAgbGkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLy8gUmVtb3ZlIHRleHQgZnJvbSBlbGVtZW50c1xuQG1peGluIHJtLXRleHQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0ZXh0LWluZGVudDogLTk5OTlweDtcbn1cblxuLy8gQmFja2dyb3VuZCBpbWFnZXNcbkBtaXhpbiBiZy1pbWcoJHNpemUpIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAkc2l6ZTtcbn1cblxuLy8gSUUgOSsgb25seVxuQG1peGluIGllKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBcXDApIGFuZCAobWluLXJlc29sdXRpb246ICs3MmRwaSkge1xuICAgICN7JHByb3BlcnR5fTogI3skdmFsdWV9O1xuICB9XG59XG5cbkBtaXhpbiBidG5SZXNldCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCJAa2V5ZnJhbWVzIHNoYWtlSG9yaXpvbnRhbCB7XHJcbiAgICAxMCUsIDkwJSB7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTFweCwgMCwgMCk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIDIwJSwgODAlIHtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgycHgsIDAsIDApO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgMzAlLCA1MCUsIDcwJSB7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTFweCwgMCwgMCk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICA0MCUsIDYwJSB7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMnB4LCAwLCAwKTtcclxuICAgIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBzaGFrZVZlcnRpY2FsIHtcclxuICAgIDEwJSwgOTAlIHtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMXB4LCAwKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgMjAlLCA4MCUge1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDJweCwgMCk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICAzMCUsIDUwJSwgNzAlIHtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMXB4LCAwKTtcclxuICAgIH1cclxuICBcclxuICAgIDQwJSwgNjAlIHtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAycHgsIDApO1xyXG4gICAgfVxyXG59IiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEhlbHBlcnMgLSBUYWJsZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogUmVzcG9uc2l2ZSBUYWJsZVxuICogQ3JlYXRlcyBhIHJlc3BvbnNpdmUgdGFibGVcbiAqIEFjY2VwdHMgYSBsaXN0IG9mIGhlYWRlcnMgdG8gcmVwbGFjZSBtYWluIFxuICogdGFibGUgaGVhZGVycyBvbiBtb2JpbGUuXG4gKiBAcGFyYW0ge21hcH0gJGhlYWRlcnNcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuQG1peGluIHJlc3BvbnNpdmUtdGFibGUoJGhlYWRlcnM6ICgpKSB7XG4gIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgdGFibGUsXG4gIHRoZWFkLFxuICB0Ym9keSxcbiAgdGgsXG4gIHRkLFxuICB0ciB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICB0aGVhZCB7XG4gICAgdHIge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtOTk5OXB4O1xuICAgICAgICBsZWZ0OiAtOTk5OXB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRyIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYmxhY2s7XG4gICAgICBib3JkZXItd2lkdGg6IDFweCAwO1xuICAgICAgcGFkZGluZzogc2l6ZSgzMHB4KSAwO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdGQge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luLXRvcDogc2l6ZSgxNnB4KTtcbiAgICB9XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIZWFkZXJzXG4gICAqL1xuICBAZWFjaCAkaGVhZGVyIGluICRoZWFkZXJzIHtcbiAgICAkaTogaW5kZXgoJGhlYWRlcnMsICRoZWFkZXIpO1xuXG4gICAgdGQ6bnRoLW9mLXR5cGUoI3skaX0pOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIGNvbnRlbnQ6ICRoZWFkZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJib2R5IHtcclxuICAgICYuYmFndWV0dGVCb3gtb3BlbiB7XHJcbiAgICAgICAgI2JhZ3VldHRlQm94IHtcclxuICAgICAgICAgICAgJi1vdmVybGF5IHtcclxuICAgICAgICAgICAgICAgIC5mdWxsLWltYWdlIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBmaWd1cmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgZmlnY2FwdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogYXV0bztcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMzY2LCAwLjcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcImlcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IGhlbHAgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTlweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxOXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYmxhY2spO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMTBweCAwIDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIvKiBBcnJvd3MgKi9cclxuLnNsaWNrLXByZXYsXHJcbi5zbGljay1uZXh0IHtcclxuICAgIGZvbnQtc2l6ZTogMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAwO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xyXG5cclxuICAgIC5tLWVudGl0eV9fcXVvdGUtd2l0aC1pbWFnZSAmIHtcclxuICAgICAgICB3aWR0aDogMzJweDtcclxuICAgICAgICBoZWlnaHQ6IDMycHg7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDJweCAxMHB4IDJweCByZ2JhKDMxLDI5LDMwLDAuMDUpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIFxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcclxuICAgICAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgICAgICB0b3A6IDEwMCU7XHJcbiAgICAgICAgICAgIHdpZHRoOiAzNnB4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDM2cHg7XHJcbiAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAuNzU7XHJcbiAgICAgICAgICAgIGhlaWdodDogNTZweDtcclxuICAgICAgICAgICAgd2lkdGg6IDU2cHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5tLWJhbm5lci0tY2Fyb3VzZWwgJiB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjpmb2N1cyxcclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjpmb2N1cyxcclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICY6Zm9jdXMge1xyXG4gICAgICAgIG91dGxpbmU6IDNweCBkYXNoZWQgdmFyKC0tYy1ibGFjayk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5zbGljay1kaXNhYmxlZCB7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAuMjU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuICAgIC5zbGljay1wcmV2IHtcclxuICAgICAgICAubS1lbnRpdHlfX3F1b3RlLXdpdGgtaW1hZ2UgJiB7XHJcbiAgICAgICAgICAgIGxlZnQ6IC03MHB4O1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvbGVmdC1jb250cm9sLnBuZ1wiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm0tYmFubmVyLS1jYXJvdXNlbCAmIHtcclxuICAgICAgICAgICAgbGVmdDogdmFyKC0tYnVtcCk7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKHZhcigtLWJ1bXApIC8gMyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2xlZnQtY2hldnJvbi5zdmdcIik7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTdweDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMzBweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNy41JSwgLTE1JSk7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMTUwJTtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMTAlO1xyXG4gICAgICAgICAgICAgICAgei1pbmRleDogLTE7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjc7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMCU7XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGJsdXIoMTcuNXB4KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2xpY2stbmV4dCB7XHJcbiAgICAgICAgLm0tZW50aXR5X19xdW90ZS13aXRoLWltYWdlICYge1xyXG4gICAgICAgICAgICByaWdodDogLTcwcHg7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XHJcbiAgICAgICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvcmlnaHQtY29udHJvbC5wbmdcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgIC5tLWJhbm5lci0tY2Fyb3VzZWwgJiB7XHJcbiAgICAgICAgICAgIHJpZ2h0OiB2YXIoLS1idW1wKTtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLWJ1bXApIC8gMyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3JpZ2h0LWNoZXZyb24uc3ZnXCIpO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDE3cHg7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTcuNSUsIC0xNSUpO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1MCU7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTEwJTtcclxuICAgICAgICAgICAgICAgIHotaW5kZXg6IC0xO1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC43O1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAlO1xyXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBibHVyKDE3LjVweCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuLyogRG90cyAqL1xyXG4uc2xpY2stZG90dGVkLnNsaWNrLXNsaWRlciB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG59XHJcblxyXG4uc2xpY2stZG90cyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBnYXA6IGNhbGModmFyKC0tYnVtcCkgLyA2KTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIG1hcmdpbjogY2FsYyh2YXIoLS1idW1wKSAvIDIpIDA7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA4cHg7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDhweDtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuMTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJsYWNrKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuc2xpY2stYWN0aXZlIHtcclxuICAgICAgICAgICAgJiA+IGJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XG4vL1xuLy8gICAgICAgIGh0dHBzOi8vZWR1YXJkb2JvdWNhcy5naXRodWIuaW8vaW5jbHVkZS1tZWRpYVxuLy9cbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxuLy8gICAgICAgICAgICAgICAgICBLaXR0eSBHaXJhdWRlbCAoQGtpdHR5Z2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZSc6IDMyMHB4LFxuICAndGFibGV0JzogNzY4cHgsXG4gICdkZXNrdG9wJzogMTAyNHB4XG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgJ3ByaW50JzogJ3ByaW50JyxcbiAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XG4vLy9cbiR1bml0LWludGVydmFsczogKFxuICAncHgnOiAxLFxuICAnZW0nOiAwLjAxLFxuICAncmVtJzogMC4xLFxuICAnJzogMFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICRtZXNzYWdlO1xuICAgICRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGltLWxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG4gICAgQGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAgICAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcbiAgICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XG4gIEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xuICAgIEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAgICAgQHJldHVybiAkb3BlcmF0b3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XG4gICRkaW1lbnNpb246ICd3aWR0aCc7XG5cbiAgQGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XG4gICAgJGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XG4gIH1cblxuICBAcmV0dXJuICRkaW1lbnNpb247XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XG4gIEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xuXG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgICR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XG4gIH0gQGVsc2Uge1xuICAgICR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gIH1cblxuICAkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xuXG4gIEBpZiBub3QgJGludGVydmFsIHtcbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gICAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAgIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgICAkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XG4gIH1cblxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XG4gIH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuXG4vLy9cbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2Vcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxuLy8vXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xuICAvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXG4gIC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gIEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xuICB9XG5cbiAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XG4gICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG5cbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XG59XG5cbi8vL1xuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2Vcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxuLy8vXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xuICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG4gICAgQHJldHVybiAoKTtcbiAgfVxuXG4gICRyZXN1bHQ6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcbiAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8vXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xuICAgICRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gIH1cblxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xuICAkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XG5cbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcbiAgICAkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cbiAgICBAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG4gICAgICBAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKVxuICAgIH1cblxuICAgIEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG4gICAgICAkZGlnaXRzOiAxO1xuICAgIH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xufVxuXG5cbi8vL1xuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxuLy8vXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcbiAgJHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcblxuICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XG4gICAgJF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XG59XG5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcbi8vLyBmb3IgaW5zdGFuY2UuXG4vLy9cbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcbiAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XG4gICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cbi8vL1xuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XG4gIEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcbiAgICAgIChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuICAgIEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXG4gICAgICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQmFzZSAtIERlZmF1bHRzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLmdyaWQge1xuICBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lcldpZHRoKTtcbn1cblxuLmNvbnRhaW5lci1mdWxsID4gLmdyaWQge1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG5cbnVsLm1lbnUsXG51bC5wbGFpbiB7XG4gIEBpbmNsdWRlIGxpLXJlc2V0O1xufVxuXG5pbWcge1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXG4gICYubGF6eSB7XG4gICAgb3BhY2l0eTogMDtcblxuICAgIEBtZWRpYSBub3QgYWxsIGFuZCAobWluLXJlc29sdXRpb246IDAuMDAxZHBjbSkge1xuICAgICAgQHN1cHBvcnRzICgtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmUpIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmxvYWRlZCB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uc3ZnIHtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xufVxuXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLy8gS2VlcCB2aWRlbyByYXRpbyBmb3IgZmx1aWQgd2lkdGhzXG4udmlkZW8tY29udGFpbmVyLFxuLm1lZGlhLXZpbWVvLXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICBwYWRkaW5nLXRvcDogMjVweDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGlmcmFtZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuXG4vLyBhbWVuZCBjb2xvdXIgdGhlbWUgZm9yIHNldCBjb250ZW50IHR5cGVzXG5cbi5jdF9fcGFnZSB7XG4gIFxuICAuby1oZWFkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogdmFyKC0tYy1ibGFjayk7XG5cbiAgICAuYS1uYXYtdG9nZ2xlX193cmFwcGVyLFxuICAgIC5vLWhlYWRlcl9fbG9nbyB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICB9XG4gIH1cbn1cblxuXG4uY3RfX2hvbWVwYWdlIHtcbiAgLm8taG9tZXBhZ2Uge1xuICAgIHNlY3Rpb24ge1xuICAgICAgJi5tLWVudGl0eV9fdGV4dC1ibG9jayB7XG4gICAgICAgIC5tLWVudGl0eV9fdGV4dF9fdGl0bGUsXG4gICAgICAgIC5tLWVudGl0eV9fdGV4dC1ibG9ja19fYm9keS10ZXh0IHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuYm9keSB7XG4gICYubWVtYmVyIHtcbiAgICBoZWFkZXIge1xuICAgICAgJi5vLWhlYWRlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gc2NyZWVuIHJlYWRlcnNcbi5zY3JlZW4tcmVhZGVycyB7XG4gIEBpbmNsdWRlIHJtLXRleHQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG59XG5cbi5zbGlkaW5nLXBvcHVwLWJvdHRvbSB7XG4gIC5ldS1jb29raWUtd2l0aGRyYXctdGFiIHtcbiAgICBsZWZ0OiAycHg7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206IDEwMCU7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBCYXNlIC0gVHlwb2dyYXBoeVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogQ29uZmlnXG4gKi9cblxuLyoqXG4gKiBIZWFkaW5nXG4gKi9cbmgxLFxuLmgxLFxuaDIsXG4uaDIsXG5oMyxcbi5oMyxcbmg0LFxuLmg0LFxuaDUsXG4uaDUsXG5oNixcbi5oNiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXRpdGxlKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiB2YXIoLS1jLXBvbXBlaWkpO1xufVxuXG5oMSxcbi5oMSB7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMzRweCwgNXZ3LCA0MnB4KTtcbiAgbGluZS1oZWlnaHQ6IGNsYW1wKDQ0cHgsIDV2dywgNTdweCk7XG59XG5cbmgyLFxuLmgyIHtcbiAgZm9udC1zaXplOiBjbGFtcCgyOHB4LCAyLjV2dywgMzRweCk7XG4gIGxpbmUtaGVpZ2h0OiBjbGFtcCgzOHB4LCA1dncsIDQ0cHgpO1xuXG4gICYuYWx0IHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuICAmLmZpeGVkbmF2IHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG5oMyxcbi5oMyB7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMjJweCwgMi41dncsIDI4cHgpO1xuICBsaW5lLWhlaWdodDogY2xhbXAoMzJweCwgNXZ3LCAzOHB4KTtcblxuICAmLnN0b3J5IHtcbiAgICBmb250LWZhbWlseTogdmFyKGZvbnQtdGl0bGUtcmVnKTtcbiAgICBzdHJvbmcge1xuICAgICAgZm9udC1mYW1pbHk6ICdkcm9pZF9zYW5zYm9sZCc7XG4gICAgfVxuICB9XG59XG5oNCxcbi5oNCB7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMjBweCwgMi41dncsIDIycHgpO1xuICBsaW5lLWhlaWdodDogY2xhbXAoMjlweCwgNXZ3LCAzMnB4KTtcbn1cblxuaDUsXG4uaDUsXG5oNixcbi5oNiB7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMThweCwgMi41dncsIDE4cHgpO1xuICBsaW5lLWhlaWdodDogY2xhbXAoMjdweCwgNXZ3LCAyN3B4KTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgfVxufVxuXG4vKipcbiAqIFBhcmFncmFwaHNcbiAqL1xucCB7XG4gIG1hcmdpbjogMS41ZW0gMDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMjdweDtcblxuICAmOmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vKipcbiAqIExpc3RzXG4gKi9cbnVsLFxub2wge1xuICBtYXJnaW46IDEuNXJlbSAwO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLyoqXG4gKiBMaW5rc1xuICovXG5hIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLy8gdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xuICBvdXRsaW5lOiAwO1xuICBjb2xvcjogdmFyKC0tYy1wb21wZWlpKTtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgLy8gYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJi5leHQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxNXB4O1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2V4dC5wbmcnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIH1cblxuICAmLmFsdC5leHQ6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2V4dC1hbHQucG5nJyk7XG4gIH1cbiAgJi5hbHQuZXh0OmhvdmVyOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9leHQucG5nJyk7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAxcHggZGFzaGVkIGN1cnJlbnRDb2xvcjtcblxuICAgIEBpbmNsdWRlIGZvY3VzLXZpc2libGUoKSB7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgIH1cbiAgfVxuXG4gICYubm8tbGluayB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbn1cblxuLm5vLWNsaWNrIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4gIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xufVxuXG4vKipcbiAqIEJ1dHRvbnNcbiAqL1xuYnV0dG9uIHtcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMXB4IGRhc2hlZCBjdXJyZW50Q29sb3I7XG5cbiAgICBAaW5jbHVkZSBmb2N1cy12aXNpYmxlKCkge1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBJbmxpbmVcbiAqL1xuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9sZCk7XG59XG5cbmVtIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRJdGFsaWMpO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbnNwYW4ge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBsZXR0ZXItc3BhY2luZzogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xufVxuXG5hZGRyZXNzIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogOTAlO1xufVxuXG5ociB7XG4gIGJvcmRlcjogc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQmFzZSAtIERydXBhbCA4IHNwZWNpZmljXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLy8gUGFnaW5hdGlvblxuLnBhZ2VyIHtcbiAgQGluY2x1ZGUgbGktcmVzZXQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1idW1wKTtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xuICB9XG5cbiAgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNXB4O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgYSB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9sZCk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQWRtbmluIHN0eWxlc1xuLmFkbWluLWZ1bmN0aW9ucyB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgei1pbmRleDogMzE7XG5cbiAgLnRvb2xiYXItdHJheS1vcGVuICYge1xuICAgIHRvcDogNzlweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICB0b3A6IDM5cHg7XG4gICAgfVxuICB9XG5cbiAgW2NsYXNzKj0nY29sLSddIHtcbiAgICBwYWRkaW5nOiAwIGNhbGModmFyKC0tYnVtcCkgLyAyKTtcbiAgfVxuXG4gIHVsIHtcbiAgICBAaW5jbHVkZSBsaS1yZXNldDtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiBjYWxjKHZhcigtLWJ1bXApIC8gMikgMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgbGkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1idW1wKTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19hZG1pbiB7XG4gICAgLm0tYmxvY2stLXBhZ2UtdGl0bGUtYmxvY2sge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAubS1ibG9jay0tc3lzdGVtLWJyZWFkY3J1bWItYmxvY2sge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuXG4udG9vbGJhci10cmF5LW9wZW4ge1xuICAmID4gLnRvb2xiYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDJkMmQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG4udG9vbGJhci1sb2FkaW5nIHtcbiAgI3Rvb2xiYXItYWRtaW5pc3RyYXRpb24ge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG59XG5cbi52aXN1YWxseS1oaWRkZW4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IDFweDtcbiAgd2lkdGg6IDFweDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG59XG5cbmEuc2tpcC1tYWluIHtcbiAgbGVmdDogLTk5OXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogYXV0bztcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHotaW5kZXg6IC05OTk7XG59XG5hLnNraXAtbWFpbjpmb2N1cyxcbmEuc2tpcC1tYWluOmFjdGl2ZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gIGxlZnQ6IGF1dG87XG4gIHRvcDogYXV0bztcbiAgd2lkdGg6IDMwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogYXV0bztcbiAgbWFyZ2luOiAxMHB4IDM1JTtcbiAgcGFkZGluZzogNXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIHotaW5kZXg6IDk5OTtcbn1cblxuLmFqYXgtcHJvZ3Jlc3MtdGhyb2JiZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEJhc2UgLSBNYWluXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBTdHlsZXNcbiAqL1xuaHRtbCxcbmJvZHkge1xuICBAaW5jbHVkZSBmb250LXNtb290aGluZyh0cnVlKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7XG59XG5cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICAvLyB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcbn1cblxuYm9keSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgJltkYXRhLW5hdj0nb3BlbiddLFxuICAmW2RhdGEtc2VhcmNob3ZlcmxheT0nb3BlbiddLFxuICAmLmZyZWV6ZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEF0b21zIC0gR3JpZFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogU3R5bGluZ1xuICovXG4uYS1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG5cbiAgJi0tMSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cblxuICAmLS0yIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIH1cbiAgfVxuXG4gICYtLTMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgfVxuICB9XG5cbiAgJi0tNCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEF0b21zIC0gTmF2IFRvZ2dsZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogQ29uZmlnXG4gKi9cbiRidW1wOiAyMHB4O1xuJGhlaWdodC1pY29uOiAkYnVtcDtcbiR3aWR0aC1saW5lOiAkYnVtcCAqIDEuMjU7XG4kaGVpZ2h0LWxpbmU6IDNweDtcblxuJHJvdGF0aW9uOiA0NWRlZztcbiR0cmFuc2xhdGVZOiBjYWxjKCRoZWlnaHQtaWNvbiAvIDIpO1xuJHRyYW5zbGF0ZVg6IDA7XG5cbi8qKlxuICogU3R5bGVzXG4gKi9cbi5hLW5hdi10b2dnbGUge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogJHdpZHRoLWxpbmU7XG4gIGhlaWdodDogJGhlaWdodC1pY29uO1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3V0bGluZTogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMXB4IGRvdHRlZCB2YXIoLS1jLXByaW1hcnkpO1xuICB9XG5cbiAgJl9fd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogNDRweDtcbiAgICB3aWR0aDogNDRweDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIG1hcmdpbjogMCAwIDAgdmFyKC0tYnVtcCk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XG4gICAgICBtYXJnaW46IDAgMCAwIGF1dG87XG4gICAgfVxuXG4gICAgW2RhdGEtbmF2PVwib3BlblwiXSAmIHtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuXG4gICAgW2RhdGEtc2VhcmNob3ZlcmxheT1cIm9wZW5cIl0gJixcbiAgICBbZGF0YS1uYXY9XCJvcGVuXCJdICYge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgLmEtbmF2LXRvZ2dsZV9fbGluZS0yIHtcbiAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fbGluZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZSk7XG4gICAgd2lkdGg6ICR3aWR0aC1saW5lO1xuICAgIGhlaWdodDogJGhlaWdodC1saW5lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cbiAgICBbZGF0YS1uYXY9XCJvcGVuXCJdICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZSkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmLTEge1xuICAgICAgdG9wOiAwO1xuXG4gICAgICBbZGF0YS1uYXY9J29wZW4nXSAmIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCR0cmFuc2xhdGVZKSB0cmFuc2xhdGVYKCR0cmFuc2xhdGVYKVxuICAgICAgICAgIHJvdGF0ZSgkcm90YXRpb24pO1xuICAgICAgfVxuICAgIH1cbiAgICAmLTIge1xuICAgICAgdG9wOiA1MCU7XG5cbiAgICAgIFtkYXRhLW5hdj0nb3BlbiddICYge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgICAmLTMge1xuICAgICAgdG9wOiAxMDAlO1xuXG4gICAgICBbZGF0YS1uYXY9J29wZW4nXSAmIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCR0cmFuc2xhdGVZICogLTEpIHRyYW5zbGF0ZVgoJHRyYW5zbGF0ZVgpXG4gICAgICAgICAgcm90YXRlKCRyb3RhdGlvbiAqIC0xKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBBdG9tcyAtIEJ1dHRvbnNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIENvbmZpZ1xuICoqL1xuXG5AbWl4aW4gYnRuIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdGl0bGUpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogOHB4IDIwcHg7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wb21wZWlpKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtcG9tcGVpaSk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDI1cHg7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZSk7XG4gICAgY29sb3I6IHZhcigtLWMtcG9tcGVpaSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1wb21wZWlpKTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tYy1ibGFjayk7XG4gIH1cbn1cblxuQG1peGluIGJ0bl9hbHQge1xuICBAaW5jbHVkZSBidG47XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcG9tcGVpaSk7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb2xvcjogdmFyKC0tYy1wb21wZWlpKTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tYy1ibGFjayk7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cbn1cblxuQG1peGluIGJ0bl93aCB7XG4gIEBpbmNsdWRlIGJ0bjtcbiAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb2xvcjogdmFyKC0tYy1wb21wZWlpKTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDNweCBkYXNoZWQgdmFyKC0tYy1ibGFjayk7XG4gIH1cbn1cblxuQG1peGluIGJ0bl91bmRlcmxpbmUge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMjhweDtcbiAgY29sb3I6IHZhcigtLWMtcG9tcGVpaSk7XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLWMtcG9tcGVpaSk7XG4gIH1cbn1cblxuQG1peGluIGJ0bi13LWljb24oJGltZzogZmFsc2UpIHtcbiAgQGluY2x1ZGUgYnRuO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICB0cmFuc2l0aW9uOiAwLjNzIHZhcigtLWVhc2luZyk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGJnLWltZyhjb250YWluKTtcbiAgICBjb250ZW50OiAnJztcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgkaW1nKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGhlaWdodDogMTRweDtcbiAgICB3aWR0aDogMTBweDtcbiAgICAvLyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9lbnZlbG9wZS5zdmcnKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogMC4zcyB2YXIoLS1lYXNpbmcpO1xuICB9XG59XG5cbkBtaXhpbiBidG4tdy1pY29uLWhvdmVyIHtcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGFuaW1hdGlvbjogc2hha2VWZXJ0aWNhbCAwLjgycyBjdWJpYy1iZXppZXIoMC4zNiwgMC4wNywgMC4xOSwgMC45NykgYm90aDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwZXJzcGVjdGl2ZTogMTAwMHB4O1xuICB9XG59XG5cbi8qKlxuICogU3R5bGVzXG4gKiovXG5cbi5hLWJ0biB7XG4gIEBpbmNsdWRlIGJ0bjtcbiAgJi0tYWx0IHtcbiAgICBAaW5jbHVkZSBidG5fYWx0O1xuICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0ZXh0LWFsaWduLWxhc3Q6IGxlZnQ7XG4gIH1cblxuICAmLS1hcnJvdyB7XG4gICAgQGluY2x1ZGUgYnRuLXctaWNvbignLi4vaW1nL2Fycm93LXVwLnN2ZycpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBAaW5jbHVkZSBidG4tdy1pY29uLWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gICYtLWJsYWNrIHtcbiAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ibGFjayk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLWJsYWNrKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIH1cbiAgfVxuXG4gICYtLXJlZCB7XG4gICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYl9yZWQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtd2hpdGUpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLWJfcmVkKTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYl9yZWQpO1xuICAgIH1cbiAgfVxuXG4gICYtLXdoaXRlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgY29sb3I6IHZhcigtLWMtcG9tcGVpaSk7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXBvbXBlaWkpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXBvbXBlaWkpO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy13aGl0ZSk7XG4gICAgfVxuICB9XG5cbiAgJi0tdW5kZXJsaW5lIHtcbiAgICBAaW5jbHVkZSBidG5fdW5kZXJsaW5lO1xuICB9XG5cbiAgLy8gJl9fdW5kZXJsaW5lIHt9XG59XG5cbi5idG4ge1xuICBAaW5jbHVkZSBidG47XG4gICYtLWFsdCB7XG4gICAgQGluY2x1ZGUgYnRuX2FsdDtcbiAgICBtaW4td2lkdGg6IDEyMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEF0b21zIC0gSW1hZ2UgY3JlZGl0c1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5hLWltYWdlLWNyZWRpdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tYnVtcCkgKyA1cHgpO1xuICB3aWR0aDogY2FsYyh2YXIoLS1idW1wKSArIDVweCk7XG4gIGJvcmRlcjogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgJltkYXRhLXZpc2libGU9XCJmYWxzZVwiXSB7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBzcGFuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ibGFjayk7XG4gICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1idW1wKSAvIDEuNSk7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tYnVtcCkgLyAxLjUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIHBhZGRpbmc6IDBweCA4cHg7XG4gIH1cblxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSxcbiAgJjpob3ZlciB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgJl9fdGV4dCB7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBcblxuICAgICZbZGF0YS12aXNpYmxlPVwidHJ1ZVwiXSB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWJ1bXApIC8gNCkgMDtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tYnVtcCkgLyA0KSBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiaVwiO1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ibGFjayk7XG4gICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICBwYWRkaW5nOiAwcHggOHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICBtYXJnaW46IDAgNXB4IDAgMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIEJyZWFkY3J1bWJzXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtYnJlYWRjcnVtYiB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWJ1bXApO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWJ1bXApIC8gMikgMDtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tYnVtcCkgLyAyKTtcbiAgfVxuXG4gIG9sIHtcbiAgICBAaW5jbHVkZSBsaS1yZXNldDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgbGkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWJ1bXApIC8gNik7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcvJztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tYnVtcCkgLyAxMCk7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcclxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiogVW4udGl0bGVkXHJcbiogQXRvbXMgLSBTZWFyY2ggYnV0dG9uXHJcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4qL1xyXG5cclxuLyoqXHJcbiogQ29uZmlnXHJcbiovXHJcblxyXG4vKipcclxuKiBTdHlsaW5nXHJcbiovXHJcbi5hLXNlYXJjaC1idXR0b24ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgQGluY2x1ZGUgYnRuUmVzZXQ7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWJ1bXBTbWFsbCk7XHJcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnRTaXplTGcpO1xyXG4gICAgaGVpZ2h0OiA0NHB4O1xyXG4gICAgd2lkdGg6IDQ0cHg7XHJcbiAgXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIH1cclxuXHJcbiAgICBbZGF0YS1zZWFyY2hvdmVybGF5PVwib3BlblwiXSAmIHtcclxuICAgICAgei1pbmRleDogMjtcclxuICAgIH1cclxuICAgIFtkYXRhLW5hdj1cIm9wZW5cIl0gJiB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcclxuICAgIH1cclxuICBcclxuICAgIHNwYW4ge1xyXG4gICAgICBsaW5lLWhlaWdodDogMTtcclxuICBcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJz5tZCcsICc8MTIwMHB4Jykge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XHJcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250U2l6ZVNtKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIFxyXG4gICAgc3ZnIHtcclxuICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgIGhlaWdodDogMjBweDtcclxuICAgICAgZmlsbDogdmFyKC0tYy1zZWNvbmRhcnkpO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIFtkYXRhLXNlYXJjaG92ZXJsYXk9XCJvcGVuXCJdICYge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgXHJcbiAgICAuYS1zZWFyY2gtYnV0dG9uX19jbG9zZSB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSxcclxuICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZSk7XHJcbiAgICAgICAgICB3aWR0aDogJHdpZHRoLWxpbmU7XHJcbiAgICAgICAgICBoZWlnaHQ6ICRoZWlnaHQtbGluZTtcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgICAgICAgIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxM3B4KSB0cmFuc2xhdGVYKCR0cmFuc2xhdGVYKVxyXG4gICAgICAgICAgcm90YXRlKCRyb3RhdGlvbik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTNweCkgdHJhbnNsYXRlWCgkdHJhbnNsYXRlWClcclxuICAgICAgICAgIHJvdGF0ZSgkcm90YXRpb24gKiAtMSk7XHJcbiAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgIFtkYXRhLXNlYXJjaG92ZXJsYXk9XCJvcGVuXCJdICYge1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbiAgICAgICAgICBjb2xvcjogdmFyKC0tYy1ibGFjayk7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgcm0tdGV4dDtcclxuICAgICAgICAgIGhlaWdodDogMzJweDtcclxuICAgICAgICAgIHdpZHRoOiAzMnB4O1xyXG4gICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAmOjpiZWZvcmUsXHJcbiAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgIiwiLyoqXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICogVW4udGl0bGVkXHJcbiAqIE1vbGVjdWxlcyAtIEVtZXJnZW5jeSBNZXNzYWdlXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICovXHJcblxyXG4vKipcclxuICogQ29uZmlnXHJcbiAqKi9cclxuQGtleWZyYW1lcyBzbGlkZUluVXAge1xyXG4gIDAlIHtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XHJcbiAgfVxyXG4gIDgwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xyXG4gIH1cclxuICAxMDAlIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogU3R5bGluZ1xyXG4gKiovXHJcbi5tLWVtbXNnIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcclxuICB6LWluZGV4OiAxMDA7XHJcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xyXG4gIHBhZGRpbmc6IGNhbGModmFyKC0tYnVtcCkgLyAyKSAwO1xyXG4gIG1heC1oZWlnaHQ6IDMwdmg7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtd2hpdGUpO1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICZbZGF0YS1zdGF0ZT0ndmlzaWJsZSddIHtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcclxuICAgIGFuaW1hdGlvbjogc2xpZGVJblVwIDAuMnMgMC4zcyBjdWJpYy1iZXppZXIoMC43NywgMC4yOSwgMC4zNSwgMC43MikgMVxyXG4gICAgICBmb3J3YXJkcztcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICBvdmVyZmxvdzogc2Nyb2xsO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG5cclxuICBoMyB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XHJcbiAgICB3aWR0aDogODUlO1xyXG4gIH1cclxuXHJcbiAgcCB7XHJcbiAgICB3aWR0aDogODUlO1xyXG4gIH1cclxuXHJcbiAgYnV0dG9uIHtcclxuICAgIEBpbmNsdWRlIGJ0blJlc2V0O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiBjYWxjKHZhcigtLWJ1bXApIC8gMik7XHJcbiAgICByaWdodDogY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xyXG4gICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgd2lkdGg6IDM1cHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XHJcblxyXG4gICAgcGF0aCB7XHJcbiAgICAgIGZpbGw6IHZhcigtLWMtd2hpdGUpO1xyXG4gICAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XHJcblxyXG4gICAgICBwYXRoIHtcclxuICAgICAgICBmaWxsOiB2YXIoLS1jLXNlY29uZGFyeSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyoqXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICogVW4udGl0bGVkXHJcbiAqIE1vbGVjdWxlcyAtIEVudGl0aWVzXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICovXHJcbiBcclxuXHJcbi5tLWVudGl0eSB7XHJcbiAgbWFyZ2luOiBjYWxjKHZhcigtLWJ1bXApICogMikgMDtcclxuICAmLWZlYXR1cmVze1xyXG4gICAgLm0tZW50aXR5X19mZWF0dXJlZF9fdGl0bGV7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjhweCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuICAmX19zcG9uc29yc3tcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcbiAgJl9fZmVhdHVyZS1tZWRhbGxpc3R7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH1cclxuXHJcbiAgLmN0X19ob21lcGFnZSAmIHtcclxuICAgIG1hcmdpbjogMjVweCAwO1xyXG5cclxuICAgICYubS1lbnRpdHlfX2hvbWVwYWdlLXNpZ25wb3N0LXdpdGgtaW1hZ2UsXHJcbiAgICAmLm0tZW50aXR5X19mZWF0dXJlZC1ldmVudCB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcclxuICAgICAgICBtYXJnaW46IDBcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgIG1hcmdpbjogdmFyKC0tYnVtcCkgMDtcclxuICB9XHJcblxyXG4gIGlmcmFtZSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIGltZyB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuXHJcbiAgJl9fY3RhIHtcclxuICAgIGEge1xyXG4gICAgICB0ZXh0LWFsaWduOiB1bnNldDtcclxuICAgICAgdGV4dC1hbGlnbi1sYXN0OiBsZWZ0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fYm9keSxcclxuICAmX190ZXh0LFxyXG4gICZfX2FjY29yZGlvbixcclxuICAmX19pbWFnZS10ZXh0IHtcclxuICAgIHAgYSB7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gICZfX3RleHQge1xyXG4gICAgdWwge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMTVweDtcclxuXHJcbiAgICAgIGxpIHtcclxuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICBoZWlnaHQ6IDdweDtcclxuICAgICAgICAgIHdpZHRoOiA3cHg7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIGxlZnQ6IC0xNXB4O1xyXG4gICAgICAgICAgdG9wOiAxMXB4O1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgXHJcbiAgfVxyXG4mX19jaGFwdGVyLFxyXG4gICZfX2JvZHksXHJcbiAgJl9fYWNjb3JkaW9uIHtcclxuICAgIHVsIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcblxyXG4gICAgICBsaSB7XHJcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuXHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgaGVpZ2h0OiA3cHg7XHJcbiAgICAgICAgICB3aWR0aDogN3B4O1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICBsZWZ0OiAtMTVweDtcclxuICAgICAgICAgIHRvcDogMTFweDtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX190aXRsZSB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC10aXRsZS1yZWcpO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICBsaW5lLWhlaWdodDogMzJweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDEzcHg7XHJcbiAgfVxyXG5cclxuICBAaW1wb3J0ICcuL2VudGl0aWVzL2JvZHknO1xyXG4gIEBpbXBvcnQgJy4vZW50aXRpZXMvaW1hZ2UnO1xyXG4gIEBpbXBvcnQgJy4vZW50aXRpZXMvdmlldyc7XHJcbiAgQGltcG9ydCAnLi9lbnRpdGllcy9xdW90ZSc7XHJcbiAgQGltcG9ydCAnLi9lbnRpdGllcy9hY2NvcmRpb24nO1xyXG4gIEBpbXBvcnQgJy4vZW50aXRpZXMvZ2FsbGVyeSc7XHJcbiAgQGltcG9ydCAnLi9lbnRpdGllcy9pbWFnZS10ZXh0JztcclxuICBAaW1wb3J0ICcuL2VudGl0aWVzL2Rvd25sb2Fkcyc7XHJcbiAgQGltcG9ydCAnLi9lbnRpdGllcy9lbWJlZCc7XHJcbiAgQGltcG9ydCAnLi9lbnRpdGllcy90ZXh0LWJsb2NrJztcclxuICBAaW1wb3J0ICcuL2VudGl0aWVzL3BlcnNvbi1jYXJkJztcclxuICBAaW1wb3J0ICcuL2VudGl0aWVzL3F1b3RlLXdpdGgtaW1hZ2UnO1xyXG4gIEBpbXBvcnQgJy4vZW50aXRpZXMvY3RhJztcclxuICBAaW1wb3J0ICcuL2VudGl0aWVzL2ZlYXR1cmVkJztcclxuICBAaW1wb3J0ICcuL2VudGl0aWVzL2xpbmtlZC1sb2dvcyc7XHJcbiAgQGltcG9ydCAnLi9lbnRpdGllcy92aWRlbyc7XHJcbiAgQGltcG9ydCAnLi9lbnRpdGllcy9sYXRlc3QtYXJ0aWNsZXMnO1xyXG4gIEBpbXBvcnQgJy4vZW50aXRpZXMvbGFyZ2Utc2lnbnBvc3QnO1xyXG4gIEBpbXBvcnQgJy4vZW50aXRpZXMvcmVsYXRlZC1jb250ZW50JztcclxuICBAaW1wb3J0ICcuL2VudGl0aWVzL3ByZXZpb3VzLXdpbm5lcnMnO1xyXG4gIEBpbXBvcnQgJy4vZW50aXRpZXMvc3BvbnNvcnMnO1xyXG4gIEBpbXBvcnQgJy4vZW50aXRpZXMvaGlnaGxpZ2h0ZWQtY29udGVudCc7XHJcbiAgQGltcG9ydCAnLi9lbnRpdGllcy9tZWRhbGxpc3Qtc2lnbnBvc3RzJztcclxuICBAaW1wb3J0ICcuL2VudGl0aWVzL2V4aGliaXRpb24tc2lnbnBvc3RzJztcclxuICBAaW1wb3J0ICcuL2VudGl0aWVzL2xvZ28tbGlzdCc7XHJcbiAgQGltcG9ydCAnLi9lbnRpdGllcy9pbXByb3ZlZC1pbWFnZS1yb3cnO1xyXG4gIEBpbXBvcnQgJy4vZW50aXRpZXMvY2hhcHRlcic7XHJcbiAgQGltcG9ydCAnLi9lbnRpdGllcy9zdG9yeSc7XHJcbiAgQGltcG9ydCAnLi9lbnRpdGllcy9jb2xsZWN0aW9uJztcclxufVxyXG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gTm9kZSBib2R5IGNvcHlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19ib2R5IHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBJbWFnZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2ltYWdlLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8vIHBpY3R1cmUge1xuICAvLyAgIGltZyB7XG4gIC8vICAgICBoZWlnaHQ6IDUzNXB4O1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gICZfX2ltYWdlLWNyZWRpdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAzNjYsIDAuNyk7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dCk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWJ1bXApIC8gMyk7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnaSc7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICB6LWluZGV4OiA0O1xuICAgICAgY3Vyc29yOiBoZWxwICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IDE5cHg7XG4gICAgICB3aWR0aDogMTlweDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWJsYWNrKTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgIH1cbiAgfVxufVxuLm0tZW50aXR5X19pbWFnZSB7XG4gIHBpY3R1cmUge1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gRW50aXR5IHZpZXdzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fdmlldyB7XG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIC52aWV3cy1yb3d7XG4gIC8vIEBpbmNsdWRlIG1lZGlhKCc8c20nKXtcbiAgLy8gICAmOm5vdCg6Zmlyc3QtY2hpbGQpe1xuICAvLyAgICAgZGlzcGxheTogbm9uZTtcbiAgLy8gICB9XG4gIC8vIH1cblxufVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIFF1b3Rlc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogQ29uZmlnXG4gKi9cblxuQG1peGluIHJhdGluZygkc3RhcnMpIHtcbiAgJjpudGgtY2hpbGQoLW4gKyAjeyRzdGFyc30pIHtcbiAgICBwYXRoIHtcbiAgICAgIGZpbGw6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICBzdHJva2U6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogU3R5bGVzXG4gKi9cblxuJl9fcXVvdGUge1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLWMtcG9tcGVpaSk7XG4gIHBhZGRpbmctbGVmdDogMThweDtcbiAgYmxvY2txdW90ZSB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdGl0bGUpO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIDAgY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xuXG4gICAgcCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgY29sb3I6IHZhcigtLWMtcG9tcGVpaSk7XG4gICAgfVxuICB9XG5cbiAgJi1pbmZvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gIGNpdGUge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9keSk7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuXG4gICAgLm5hbWUge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuICB9XG5cbiAgLnJhdGluZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG5cbiAgICAmX19zdGFyIHtcbiAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICBzdHJva2U6IHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZm9yICRzdGFycyBmcm9tIDEgdGhyb3VnaCA1IHtcbiAgICAgICYtLSN7JHN0YXJzfSB7XG4gICAgICAgIC5yYXRpbmdfX3N0YXIge1xuICAgICAgICAgIEBpbmNsdWRlIHJhdGluZygjeyRzdGFyc30pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gQWNjb3JkaW9uc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2FjY29yZGlvbiB7XG4gIC5hY2NvcmRpb24ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDMxLCAyOSwgMzAsIDAuMyk7XG4gIH1cbiAgLmFjY29yZGlvbl9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGNvbG9yOiB2YXIoLS1jLXBvbXBlaWkpO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdGl0bGUpO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0ZXh0LWFsaWduLWxhc3Q6IGxlZnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMTdweCAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDMxLCAyOSwgMzAsIDAuMyk7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIEBpbmNsdWRlIGJnLWltZyhjb3Zlcik7XG4gICAgICBoZWlnaHQ6IGNhbGModmFyKC0tYnVtcCkgLyAyKTtcbiAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG4gICAgICBtaW4td2lkdGg6IGNhbGModmFyKC0tYnVtcCkgLyAyKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogYXV0byAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJlthcmlhLWV4cGFuZGVkPSd0cnVlJ10ge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5hY2NvcmRpb25fX3RpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAuanMtYWNjb3JkaW9uX19wYW5lbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5hY2NvcmRpb25fX3BhbmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcyBlYXNlLCBtYXgtaGVpZ2h0IDAuMnMgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2U7XG4gICAgbWF4LWhlaWdodDogMTAwZW07XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcblxuICAgICZbYXJpYS1oaWRkZW49J3RydWUnXSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4ycywgMHMsIDBzO1xuICAgIH1cblxuICAgIHA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1idW1wKTtcbiAgICB9XG4gIH1cblxuICAvKiB0aXRsZSBvcGVuZWQgKi9cbiAgW2FyaWEtZXhwYW5kZWQ9J3RydWUnXTphZnRlciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC90aGVtZXMvcGlwcGlwL2Rpc3QvaW1nL01pbnVzLnN2Zyk7XG4gIH1cbiAgLyogdGl0bGUgY2xvc2VkICovXG4gIFthcmlhLWV4cGFuZGVkPSdmYWxzZSddOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3RoZW1lcy9waXBwaXAvZGlzdC9pbWcvQWRkLnN2Zyk7XG4gIH1cblxuICAvLyAvKiB0aXRsZSBzZWxlY3RlZCAqL1xuICAvLyBbYXJpYS1zZWxlY3RlZD1cInRydWVcIl06YWZ0ZXIge1xuICAvLyAgIGNvbnRlbnQ6IFwiIChzZWwpXCI7XG4gIC8vIH1cbiAgLy8gLyogdGl0bGUgbm9uIHNlbGVjdGVkICovXG4gIC8vIFthcmlhLXNlbGVjdGVkPVwiZmFsc2VcIl06YWZ0ZXIge1xuICAvLyAgIGNvbnRlbnQ6IFwiICh1bnNlbGMpXCI7XG4gIC8vIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBHYWxsZXJ5XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fZ2FsbGVyeSB7XG4gICZfX2dyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAyNHB4O1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICAgIGdhcDogMjBweCAxM3B4O1xuICAgIH1cblxuICAgIGEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHNwYW4ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjODYyNjMzO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIH1cblxuICAgICAgJiA+IHNwYW4ge1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAyNXB4O1xuICAgICAgICB3aWR0aDogMjVweDtcbiAgICAgICAgYmFja2dyb3VuZDogaHNsYSgwLCAwJSwgMTAwJSwgMC42KTtcbiAgICAgICAgY29sb3I6ICM4NjI2MzM7XG4gICAgICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIzcHg7XG4gICAgICAgIHRyYW5zaXRpb246IDAuMTVzIHZhcigtLWVhc2luZyk7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDYuMjUlO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTIuNSUpO1xuICAgICAgICAgIHRyYW5zaXRpb246IDAuMTVzIHZhcigtLWVhc2luZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBJbWFnZSAmIFRleHRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19pbWFnZS10ZXh0IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MCUgMWZyO1xuICBnYXA6IGNhbGModmFyKC0tYnVtcCkgLyAxLjUpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoJz5tZCcpIHtcbiAgICAuaW1hZ2UtcmlnaHQge1xuICAgICAgb3JkZXI6IDI7XG4gICAgfVxuICB9XG5cbiAgJl9faW1hZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICAmLS1jYXB0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLyogdGV4dC1hbGlnbjogY2VudGVyOyAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxNHB4O1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXRpdGxlLXJlZyk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEzcHg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgfVxuXG4gICZfX2dyaWQge1xuICAgIGdhcDogMjRweDtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIERvd25sb2Fkc1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbiZfX2Rvd25sb2FkcyB7XG4gIGEge1xuICAgIC8vIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXRpdGxlLXJlZykgIWltcG9ydGFudDtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXBvbXBlaWkpO1xuICAgIH1cbiAgfVxuICAuZmlsZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdGl0bGUtcmVnKSAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gRW1iZWRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19lbWJlZCB7XG4gIGlmcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8qKlxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqIFVuLnRpdGxlZFxyXG4gKiBNb2xlY3VsZXMgLSBQZXJzb24gQ2FyZFxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqL1xyXG5cclxuICZfX3BlcnNvbi1jYXJkIHtcclxuICAgIC5ncmlkIHtcclxuICAgICAgICBbY2xhc3MqPSdjb2wtJ10ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQwJSAxZnI7XHJcbiAgICAgICAgICAgIGdhcDogY2FsYyh2YXIoLS1idW1wKSAqIDQpO1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIFxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xyXG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XHJcbiAgICAgICAgICAgICAgICBnYXA6IGNhbGModmFyKC0tYnVtcCkgLyAyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmX190aXRsZSB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDAgY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXRpdGxlLXJlZyk7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICBmb250LXNpemU6IDI4cHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDM4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgJl9fY29udGVudCB7XHJcbiAgICAgICAgJiA+IHAge1xyXG4gICAgICAgICAgICAmIH4gYS5hLWJ0biB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDI0cHggMCAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfX2dyaWQge1xyXG4gICAgICBnYXA6IDI0cHg7XHJcbiAgICB9IFxyXG4gIH1cclxuICAiLCIvKipcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKiBVbi50aXRsZWRcclxuICogTW9sZWN1bGVzIC0gUXVvdGUgV2l0aCBJbWFnZVxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqL1xyXG5cclxuICZfX3F1b3RlLXdpdGgtaW1hZ2Uge1xyXG4gIFxyXG4gICAgJl9fY29udGFpbmVyIHtcclxuICAgICAgZGlzcGxheTogZ3JpZCAhaW1wb3J0YW50O1xyXG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDMwJSAxZnI7XHJcbiAgICAgIGdhcDogY2FsYyh2YXIoLS1idW1wKSAqIDQpO1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBncmlkLWF1dG8tZmxvdzogZGVuc2U7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gIFxyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xyXG4gICAgICAgIGdhcDogY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJl9fcXVvdGUge1xyXG4gICAgICBwIHtcclxuICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTtcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWJsYWNrKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfX2F1dGhvciB7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpO1xyXG4gICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xyXG4gICAgICBsaW5lLWhlaWdodDogMjRweDtcclxuICAgICAgbWFyZ2luOiBjYWxjKHZhcigtLWJ1bXApIC8gMikgMCAwO1xyXG4gICAgICBjb2xvcjogdmFyKC0tYy1ibGFjayk7XHJcbiAgICB9XHJcblxyXG4gICAgJl9fcm9sZSB7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvbGQpO1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIH1cclxuICBcclxuICAgICZfX2ltYWdlLXdyYXBwZXIge1xyXG4gICAgICAgIG1heC13aWR0aDogMjg1cHg7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICAgIGltZyB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICZfX2N0YSB7XHJcbiAgICAgIG1hcmdpbjogMjRweCAwIDA7XHJcbiAgICB9XHJcbiAgfSIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBDVEFcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEVudGl0eSBMaW5rZWQgbG9nb3NcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19saW5rZWQtbG9nb3Mge1xuICAubS1sb2dvcyB7XG4gICAgZ2FwOiAyOXB4IDM4cHg7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBFbnRpdHkgVmlkZW9cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xudmlkZW8ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLm0tZW50aXR5X192aWRlb19fZW1iZWQge1xuICBpZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDQ4cHg7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgIGhlaWdodDogMzU1cHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIHNwb25zb3JzIEVDS1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG4mX19zcG9uc29ycyB7XG4gIC5tLXNwb25zb3JzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogMjlweCAzOHB4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEhpZ2hsaWdodGVkIGNvbnRlbnQgRUNLXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9faGlnaGxpZ2h0ZWQtY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4NjI2MzM7XG4gIHBhZGRpbmc6IDE2cHggMjRweDtcbiAgYSB7XG4gICAgY29sb3I6IHdoaXRlO1xuXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG4gIC5hLWJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgfVxuICAgIGEge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgcGFkZGluZzogOHB4IDIwcHg7XG4gICAgICBtaW4taGVpZ2h0OiA0MXB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB0ZXh0LWFsaWduLWxhc3Q6IGxlZnQ7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGgyLFxuICBoMyxcbiAgcCB7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG4gIHVsIHtcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICBsaSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAmOjptYXJrZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgIH1cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgaGVpZ2h0OiA3cHg7XG4gICAgICAgIHdpZHRoOiA3cHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IC0xNXB4O1xuICAgICAgICB0b3A6IDE4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtICBMb2dvIGxpc3QgRUNLIEVYaGliaXRvbiBjb250ZW50IHR5cGVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuJl9fbG9nby1saXN0IHtcbiAgd29yZC1zcGFjaW5nOiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIC5tLWRvbm9ycyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xuICAgIGdhcDogMSU7XG4gICAgYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICAgIC5kb25vcl9sb2dvIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjE1cyBjdWJpYy1iZXppZXIoMC44MywgMCwgMC4xNywgMSk7XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICM4NjI2MzM7XG4gICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHNwYW4ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBoZWlnaHQ6IDI1cHg7XG4gICAgICB3aWR0aDogMjVweDtcbiAgICAgIGJhY2tncm91bmQ6IGhzbGEoMCwgMCUsIDEwMCUsIDAuNik7XG4gICAgICBjb2xvcjogIzg2MjYzMztcbiAgICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyM3B4O1xuICAgICAgdHJhbnNpdGlvbjogMC4xNXMgY3ViaWMtYmV6aWVyKDAuODMsIDAsIDAuMTcsIDEpO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDYuMjUlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEyLjUlKTtcbiAgICAgICAgdHJhbnNpdGlvbjogMC4xNXMgY3ViaWMtYmV6aWVyKDAuODMsIDAsIDAuMTcsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEltcnBvdmVkIEltYWdlIFJvdyBFQ0tcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuJl9faW1wcm92ZWQtaW1hZ2Utcm93IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBpY3R1cmUge1xuICAgIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbiAgcCB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgfVxufVxuIiwiLy8gJl9fdGV4dCxcclxuJl9fdGV4dC1ibG9jayB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIHRleHQtYWxpZ24tbGFzdDogbGVmdDtcclxuICB9XHJcblxyXG4gICZfX2JvZHktdGV4dCB7XHJcbiAgICAmIH4gLm0tZW50aXR5X190ZXh0LWJsb2NrX19saW5rcyB7XHJcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLWJ1bXApO1xyXG4gICAgfVxyXG5cclxuICAgIGgxLFxyXG4gICAgaDIsXHJcbiAgICBoMyxcclxuICAgIGg0LFxyXG4gICAgaDUsXHJcbiAgICBoNiB7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2xpbmtzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBnYXA6IDI0cHg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiJl9fZmVhdHVyZWQge1xyXG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcclxuXHJcbiAgcCB7XHJcbiAgICBhIHtcclxuICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmN0X19tZWRhbC1sYW5kaW5nICYsXHJcbiAgLmN0X19leGhpYml0aW9uLWxhbmRpbmctcGFnZSAmLFxyXG4gIC5tLWVudGl0eV9fZmVhdHVyZWQtZXhoaWJpdGlvbiAmIHtcclxuICAgIG1hcmdpbjogMCAwIGNhbGModmFyKC0tYnVtcCkgKiAxLjUpO1xyXG4gIH1cclxuXHJcbiAgJl9fdGl0bGUge1xyXG4gICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xyXG4gIFxyXG4gICAgLmN0X19saXN0aW5nICYge1xyXG4gICAgICBjb2xvcjogdmFyKC0tYy1wb21wZWlpKTtcclxuICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7XHJcbiAgICAgIGZsZXgtZ3JvdzogMTtcclxuICAgIH1cclxuXHJcbiAgICAuY3RfX2hvbWVwYWdlICYge1xyXG4gICAgICBtYXJnaW46IDAgMCBjYWxjKHZhcigtLWJ1bXApIC8gMik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpub3QoLmN0X19ob21lcGFnZSAmKSB7XHJcbiAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYmcpO1xyXG4gICAgICAgIHdpZHRoOiA2MHB4O1xyXG4gICAgICAgIGhlaWdodDogMXB4O1xyXG4gICAgICAgIC8vIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS1iYXNlVW5pdCkpO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKDAuODNlbSAvIDIpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5tLWVudGl0eV9faG9tZXBhZ2Utc2lnbnBvc3Qtd2l0aC1pbWFnZSAmIHtcclxuICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICBjb2xvcjogdmFyKC0tYy1wb21wZWlpKTtcclxuICAgICAgZm9udC1zaXplOiBjbGFtcCgzNHB4LCA1dncsIDQycHgpO1xyXG4gICAgICBsaW5lLWhlaWdodDogY2xhbXAoNDRweCwgNXZ3LCA1N3B4KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3N1YnRpdGxlIHtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcclxuICAgIC5jdF9fbGlzdGluZyAmIHtcclxuICAgICAgY29sb3I6IHZhcigtLWMtcG9tcGVpaSk7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpO1xyXG4gICAgfVxyXG5cclxuICAgIC5jdF9faG9tZXBhZ2UgJiB7XHJcbiAgICAgIG1hcmdpbjogMCAwIHZhcigtLWJ1bXApO1xyXG5cclxuICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1iZyk7XHJcbiAgICAgICAgd2lkdGg6IDYwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiAycHg7XHJcbiAgICAgICAgLy8gdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLWJhc2VVbml0KSk7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKGNhbGModmFyKC0tYnVtcCkgLyAyKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2Jvb2tpbmctbGlua3Mge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGdhcDogY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAuYS1idG4ge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19jb250YWluZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYl9yZWQpO1xyXG5cclxuICAgIC5jdF9fZXhoaWJpdGlvbi1sYW5kaW5nLXBhZ2UgJixcclxuICAgIC5jdF9fbWVkYWwtbGFuZGluZyAmLFxyXG4gICAgLmN0X19saXN0aW5nICYsXHJcbiAgICAuY3RfX2hvbWVwYWdlICYge1xyXG4gICAgICBtYXJnaW46IDA7XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgIG1hcmdpbjogLTE1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmN0X19ob21lcGFnZSAmIHtcclxuXHJcbiAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICBcclxuICAgIH1cclxuXHJcbiAgICAubS1lbnRpdHlfX2hvbWVwYWdlLXNpZ25wb3N0LXdpdGgtaW1hZ2UgJiB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgfVxyXG5cclxuICAgIC5jdF9fbGlzdGluZyAmIHtcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9faW1hZ2Uge1xyXG4gICAgcGFkZGluZzogMDtcclxuXHJcbiAgICAubS1lbnRpdHlfX2hvbWVwYWdlLXNpZ25wb3N0LXdpdGgtaW1hZ2UgJiB7XHJcbiAgICAgIC8vIHBhZGRpbmc6IDI1cHggMDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgICAgcGFkZGluZzogMCAwIGNhbGModmFyKC0tYnVtcCkgLyAyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jdF9fZXhoaWJpdGlvbi1sYW5kaW5nLXBhZ2UgJixcclxuICAgIC5jdF9fbWVkYWwtbGFuZGluZyAmIHtcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgICBwYWRkaW5nOiB2YXIoLS1idW1wKSBjYWxjKHZhcigtLWJ1bXApIC8gMikgY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmN0X19ob21lcGFnZSAmLFxyXG4gICAgLmN0X19saXN0aW5nICYge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMCBjYWxjKHZhcigtLWJ1bXApIC8gMik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwaWN0dXJlIHtcclxuICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG5cclxuICAgICAgaW1nIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XHJcblxyXG4gICAgICAgIC8vIC5jdF9fbGlzdGluZyAmIHsgLy9ubyBsb25nZXIgbmVjZXNzYXJ5IG5vdyB0aGF0IG9iamVjdCBmaXQgaXMgdXNlZCBvbiBpbWFnZXMgLSB3aWxsIGxlYXZlIGhlcmUgZm9yIG5vdyB0aG9cclxuICAgICAgICAvLyAgIGhlaWdodDogMzk1cHg7XHJcblxyXG4gICAgICAgIC8vICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgICAvLyAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIC8vICAgfVxyXG4gICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgLy8gLmN0X19tZWRhbC1sYW5kaW5nICYge1xyXG4gICAgICAgIC8vICAgaGVpZ2h0OiA0ODRweDtcclxuXHJcbiAgICAgICAgLy8gICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICAgIC8vICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgLy8gICB9XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19pbmZvIHtcclxuICAgIG1heC13aWR0aDogY2FsYyh2YXIoLS1jb250YWluZXJXaWR0aCkgLyAyKTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGgxLGgyLGgzLGg0LGg1LGg2e1xyXG4gICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLmN0X19ob21lcGFnZSAmIHtcclxuICAgICAgXHJcbiAgICAgIHBhZGRpbmc6IHZhcigtLWJ1bXApIGNhbGModmFyKC0tYnVtcCkgLyAyKSB2YXIoLS1idW1wKSB2YXIoLS1idW1wKTtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xyXG4gICAgICAgICAgcGFkZGluZzogY2FsYyh2YXIoLS1idW1wKSAvIDMpIGNhbGModmFyKC0tYnVtcCkgLyAyKSB2YXIoLS1idW1wKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICBcclxuXHJcbiAgICAubS1lbnRpdHlfX2hvbWVwYWdlLXNpZ25wb3N0LXdpdGgtaW1hZ2UgJiB7XHJcbiAgICAgIHBhZGRpbmc6IHZhcigtLWJ1bXApIGNhbGModmFyKC0tYnVtcCkgLyAyKSB2YXIoLS1idW1wKSB2YXIoLS1idW1wKTtcclxuXHJcbiAgICAgIC5tLWVudGl0eV9fZmVhdHVyZWRfX3RpdGxlIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYy1wb21wZWlpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xyXG4gICAgICAgIHBhZGRpbmc6IDAgY2FsYyh2YXIoLS1idW1wKSAvIDIpIGNhbGModmFyKC0tYnVtcCkgLyAyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYgPiBwLFxyXG4gICAgLm0tZW50aXR5X19mZWF0dXJlZF9fZmllbGQtdGltZXMsXHJcbiAgICAubS1lbnRpdHlfX2ZlYXR1cmVkX19maWVsZC1ydW4tZGF0ZSxcclxuICAgIC5tLWVudGl0eV9fZmVhdHVyZWRfX3R5cGUge1xyXG4gICAgICBtYXJnaW46IDAgMCBjYWxjKHZhcigtLWJ1bXApIC8gMik7XHJcbiAgICAgIHAsXHJcbiAgICAgIGgyIHtcclxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XHJcbiAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcCB7XHJcbiAgICAgICYgPiBzdHJvbmcge1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvbGQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgcGFkZGluZzogMCBjYWxjKHZhcigtLWJ1bXApIC8gMikgY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX190eXBlIHtcclxuICAgIG1hcmdpbjogMCAwIGNhbGModmFyKC0tYnVtcCkgLyAyKTtcclxuXHJcbiAgICBhIHtcclxuICAgICAgQGluY2x1ZGUgYnRuX3VuZGVybGluZTtcclxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvbGQpO1xyXG4gICAgfVxyXG5cclxuICAgIC5jdF9faG9tZXBhZ2UgJiB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgJi0taG9tZS1wYWdlIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgICAgIC5jdF9faG9tZXBhZ2UgJiB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpO1xyXG4gICAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19jdGFzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZ2FwOiBjYWxjKHZhcigtLWJ1bXApIC8gMik7XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gIFxyXG4gICAgICAuYS1idG4ge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19mZWF0dXJlLW1lZGFsbGlzdCB7XHJcbiAgICBcclxuICB9XHJcbn1cclxuIiwiJl9fbGF0ZXN0LWFydGljbGVzIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIC8vIHBhZGRpbmc6IGNhbGModmFyKC0tYmFzZVVuaXQpICogNSkgMDtcclxuICBwYWRkaW5nOiA0MXB4IDAgMCAwO1xyXG5cclxuICAmX19pbWFnZXtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIG9wYWNpdHk6IDAuMDg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHRvcDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGltZ3tcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcbiAgJl9fY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHotaW5kZXg6IDI7XHJcbiAgICBsZWZ0OiAwcHg7XHJcbiAgICByaWdodDogMHB4O1xyXG5cclxuICAgIC52aWV3X19sYXRlc3RfbmV3cyxcclxuICAgIC52aWV3X19sYXRlc3RfYmxvZyB7XHJcbiAgICAgIC52aWV3cy1yb3cge1xyXG4gICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XHJcbiAgICAgICAgICAubS1lbnRpdHlfX2xhdGVzdC1hcnRpY2xlc19fdGVhc2VyX19saW5rIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIDAgY2FsYyh2YXIoLS1idW1wKSAqIDEuNSk7XHJcblxyXG4gICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXBvbXBlaWkpO1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCl7XHJcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH19XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3RlYXNlciB7XHJcbiAgICBtYXJnaW46IDAgMCAwIGNhbGModmFyKC0tYnVtcCkgKiA1KTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICBtYXJnaW46IGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgJl9fZGF0ZSB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgbGVmdDogY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xyXG4gICAgICBjb2xvcjogdmFyKC0tYy1wb21wZWlpKTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgbWFyZ2luOiAwIDAgY2FsYyh2YXIoLS1idW1wKSAvIDMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJl9fdGl0bGUge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xyXG4gICAgICBtYXJnaW46IDAgMCBjYWxjKHZhcigtLWJhc2VVbml0KSAqIDUpO1xyXG5cclxuICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgaGVpZ2h0OiAxcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ibGFjayk7XHJcbiAgICAgICAgd2lkdGg6IDYwcHg7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfX2JvZHkge1xyXG4gICAgICBtYXJnaW46IDAgMCBjYWxjKHZhcigtLWJ1bXApIC8gMik7XHJcbiAgICB9XHJcblxyXG4gICAgJl9fbGluayB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIiZfX2xhcmdlLXNpZ25wb3N0IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIC5vdmVybGF5IHtcclxuICAgICAgICAvLyBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjUpO1xyXG4gICAgICAgIC8vIG9wYWNpdHk6IDAuNTtcclxuICAgICAgICAvLyAtd2Via2l0LW9wYWNpdHk6IDAuNTtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBtYXJnaW46IDE1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB9XHJcblxyXG4gICAgJiA+IC5ncmlkIHtcclxuICAgICAgICAmID4gLmNvbC1zbS0xMiB7XHJcbiAgICAgICAgICAgICYgPiBwaWN0dXJlIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgIC8vIC5vdmVybGF5IHtcclxuICAgICAgICAgICAgICAgIC8vICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICAgICAgLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIC8vICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICAvLyAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgICAvLyAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgICAgICAgICAgLy8gICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAvLyAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjUpO1xyXG4gICAgICAgICAgICAgICAgLy8gICAgIC8vIG9wYWNpdHk6IDAuNTtcclxuICAgICAgICAgICAgICAgIC8vICAgICAvLyAtd2Via2l0LW9wYWNpdHk6IDAuNTtcclxuICAgICAgICAgICAgICAgIC8vICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICZfX2NvbnRhaW5lciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XHJcbiAgICAgICAgei1pbmRleDogMjtcclxuICAgICAgICBtYXJnaW46IGF1dG87XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgICAgICAgICAgdG9wOiBhdXRvO1xyXG4gICAgICAgICAgICByaWdodDogYXV0bztcclxuICAgICAgICAgICAgYm90dG9tOiBhdXRvO1xyXG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1idW1wKSB2YXIoLS1idW1wKSB2YXIoLS1idW1wKSAwO1xyXG4gICAgICAgICAgICAuZ3JpZCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICBhbGlnbi1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJiA+IC5ncmlkIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfX2NvbnRlbnQsXHJcbiAgICAmX19jdGEge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAmX19jb250ZW50IHtcclxuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgICAgICBoMiB7XHJcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvbGQpO1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiJl9fcmVsYXRlZC1jb250ZW50IHtcclxuICAgICZfX2NvbnRhaW5lciB7XHJcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLDFmcik7XHJcbiAgICAgICAgZ2FwOiBjYWxjKHZhcigtLWJhc2VVbml0KSAqIDMpO1xyXG4gICAgXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xyXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLDFmcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5vLXRlYXNlcntcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiJl9fcHJldmlvdXMtd2lubmVycyB7XHJcbiAgICBcclxuICAgICZfX2NvbnRhaW5lciB7XHJcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICBnYXA6IGNhbGModmFyKC0tYnVtcCkgLyAyKTtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XHJcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIDFmcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLm8tdGVhc2Vye1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG59IiwiJl9fbWVkYWxsaXN0LXNpZ25wb3N0cyB7XHJcbiAgICAmX19jb250YWluZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgZ2FwOiBjYWxjKHZhcigtLWJhc2VVbml0KSAqIDMpO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XHJcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIDFmcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiJl9fZXhoaWJpdGlvbi1zaWducG9zdHMge1xyXG4gICAgJl9fY29udGFpbmVyIHtcclxuICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgIGdhcDogY2FsYyh2YXIoLS1iYXNlVW5pdCkgKiAzKTtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xyXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCAxZnIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIiZfX2NoYXB0ZXIge1xyXG4gICAgcCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDAgdmFyKC0tYnVtcCk7XHJcbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgMCB2YXIoLS1idW1wKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmX190aXRsZSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblxyXG4gICAgICAgIC5zY3JvbGwge1xyXG4gICAgICAgICAgICAmLnRvcCB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjVweDtcclxuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XHJcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICAgIGdhcDogY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIiZfX3N0b3J5IHtcclxuICAgICZfX2ltYWdlIHtcclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICZfX3dyYXBwZXIge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBnYXA6IGNhbGModmFyKC0tYmFzZVVuaXQpICogMik7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIHZhcigtLWJ1bXApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIiZfX2NvbGxlY3Rpb24ge1xyXG4gICAgXHJcbiAgICAmX190aXRsZSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblxyXG4gICAgICAgIC5zY3JvbGwge1xyXG4gICAgICAgICAgICAmLnRvcCB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjVweDtcclxuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpO1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICBnYXA6IGNhbGModmFyKC0tYnVtcCkgLyAyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmxpc3Rpbmcge1xyXG4gICAgICAgICYuY29sbGVjdGlvbiB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgICAgICAgIGdhcDogY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xyXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xyXG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBGb3Jtc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmlucHV0LFxuaW5wdXRbdHlwZT0ndGV4dCddLFxuaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSxcbmlucHV0W3R5cGU9J2VtYWlsJ10sXG5pbnB1dFt0eXBlPSdzdWJtaXQnXSxcbnRleHRhcmVhLFxuc2VsZWN0IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2R5KTtcbiAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gIHJlc2l6ZTogbm9uZTtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1idW1wKSAvIDIpIHZhcigtLWJ1bXApO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgb3V0bGluZTogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcblxuICAmOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXNlY29uZGFyeSk7XG4gIH1cbn1cblxuaW5wdXRbdHlwZT0nc2VhcmNoJ10sXG5pbnB1dFt0eXBlPSd0ZXh0J10sXG5pbnB1dFt0eXBlPSdzdWJtaXQnXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLmZvcm0tYWN0aW9ucyBpbnB1dCxcbmlucHV0W3R5cGU9J3N1Ym1pdCddIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5idXR0b24ge1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4uanMtZm9ybS1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIE1haW4gbmF2XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLm0tbWFpbi1uYXYge1xuICAmOm5vdCgubS1tYWluLW5hdl9fbW9kYWwpIHtcbiAgICBbZGF0YS1uYXY9XCJvcGVuXCJdICYge1xuICAgICAgbWFyZ2luOiAwIDUwcHggMCAwO1xuICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJiA+IHVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBjb2x1bW4tZ2FwOiBjYWxjKHZhcigtLWJ1bXApIC8gMiArIDFweCk7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICYgPiBsaSB7XG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICYgPiBhIHtcbiAgICAgICAgICBtYXJnaW46IGF1dG8gY2FsYyh2YXIoLS1zbWFsbEJ1bXApLzIpO1xuICAgICAgICB9XG4gICAgICB9XG4gIFxuICAgICAgJi5tZW51LWl0ZW0tbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC10aXRsZSk7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gIFxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gIFxuICAgICAgICAmID4gYSB7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgXG4gICAgICAmID4gYSB7XG4gICAgICAgICYubWVudS1pdGVtLWxpIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBtYXJnaW46IGNhbGModmFyKC0tYnVtcCkgLyA0KSAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fbW9kYWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBbZGF0YS1uYXY9J29wZW4nXSAmIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB0b3A6IDk1cHg7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXBvbXBlaWkpO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIH1cblxuICAgICYgPiB1bCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgICBnYXA6IGNhbGModmFyKC0tYnVtcCkgLyAyKTtcbiAgICAgIHBhZGRpbmc6IHZhcigtLWJ1bXApIDA7XG4gICAgICBtYXgtd2lkdGg6IDUwMHB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcbiAgICAgICAgbWF4LXdpZHRoOiA3MCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAmID4gbGkge1xuICAgICAgICAmLm1lbnUtaXRlbS1saSB7XG4gICAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxOHB4LCA0dncsIDI4cHgpO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBjbGFtcCgyOHB4LCA1dncsIDM4cHgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gQmFubmVyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLm0tbm8tYmFubmVyIHtcbiAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1idW1wKSAqIDMpO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tYnVtcCk7XG4gIH1cbn1cblxuLm0tYmFubmVyLWhvbWVwYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvLyBtYXJnaW46IDAgMCBjYWxjKHZhcigtLWJ1bXApIC8gMS4yKTtcblxuICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgJl9fY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgei1pbmRleDogMTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG5cbiAgICAmX19ncmlkIHtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuICAmX19pbWFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICYtY3JlZGl0IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgIC5ncmlkIHtcbiAgICAgICAgLmNvbC0xMiB7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYtLXZpZGVvLXByZXNlbnQge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0b3A6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cbiAgICAgICZbZGF0YS1wbGF5c3RhdGU9J3BsYXknXSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmX192aWRlbyB7XG4gICAgJi1pY29uIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMnB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgICYucGxheWluZyB7XG4gICAgICAgIC5tLWJhbm5lcl9fdmlkZW8taWNvbi0taXRlbS5wbGF5IHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLnBhdXNlZCB7XG4gICAgICAgIC5tLWJhbm5lcl9fdmlkZW8taWNvbi0taXRlbS5wYXVzZSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi0taXRlbSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIGdyaWQtZ2FwOiAxMHB4O1xuICAgICAgICBoNCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLWNvbnRhaW5lciB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZy1ib3R0b206IDU3LjE3NSU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICZbZGF0YS1wbGF5c3RhdGU9J3BsYXknXSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgICZbZGF0YS1wbGF5c3RhdGU9J3BhdXNlJ10ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAmLS1jb250cm9scyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogNDBweDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjwxMzAwcHhcIikge1xuICAgICAgICAgIHJpZ2h0OiA1MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi1jb250YWluZXIge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcblxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLS1wYXVzZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIFtkYXRhLXBsYXlzdGF0ZT0ncGxheSddICYge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYtLXBsYXkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBbZGF0YS1wbGF5c3RhdGU9J3BhdXNlJ10gJiB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJl9fYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLy8gei1pbmRleDogMjtcblxuICAgICZbZGF0YS1wbGF5c3RhdGU9J3BsYXknXSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgICZbZGF0YS1wbGF5c3RhdGU9J3BhdXNlJ10ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC03LjVweDtcbiAgICAgIGxlZnQ6IC03LjUlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgICBoZWlnaHQ6IDE1MCU7XG4gICAgICB3aWR0aDogMTEwJTtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDM5cHg7XG4gICAgICBmaWx0ZXI6IGJsdXIoNjVweCk7XG4gICAgfVxuXG4gICAgLmgxLFxuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMzRweCwgNHZ3LCA0MnB4KTtcbiAgICAgIGxpbmUtaGVpZ2h0OiBjbGFtcCg0NHB4LCA1dncsIDUycHgpO1xuICAgICAgbWFyZ2luOiAwIDAgY2FsYyh2YXIoLS1idW1wKSAvIDMpO1xuICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdGl0bGUtcmVnKTtcbiAgICB9XG5cbiAgICAuaDIsXG4gICAgaDIge1xuICAgICAgZm9udC1zaXplOiBjbGFtcCgxOHB4LCA0dncsIDE4cHgpO1xuICAgICAgbGluZS1oZWlnaHQ6IGNsYW1wKDI1cHgsIDR2dywgMjVweCk7XG4gICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC10aXRsZS1yZWcpO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB9XG5cbiAgICAuaDEsXG4gICAgaDEsXG4gICAgaDIsXG4gICAgLmgyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICB9XG4gIH1cbiAgJl9fY29weSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250bGFyZ2UpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zbWFsbExpbmVIZWlnaHQpO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250U2VtaUJvbGQpO1xuICAgIG1hcmdpbjogMCAwIDFyZW07XG4gIH1cbiAgJl9fb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ibGFjayk7XG4gICAgb3BhY2l0eTogMC4zO1xuICB9XG5cbiAgdmlkZW8ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICB9XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gIH1cblxuICAuYS1idG4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgI2NvbnRhaW5lciB7XG4gICAgbWFyZ2luOiAwJTtcbiAgfVxuXG4gICNjaXJjbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgI2NpcmNsZSB0ZXh0IHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC44cHg7XG4gIH1cblxuICAvKiBicm93c2VyIHNwZWNpZmljIGxldHRlciBzcGFjaW5nIGNzcyBmaXhlcyBmb3IgdGV4dCBjaXJjbGUgKi9cbiAgQG1lZGlhIG5vdCBhbGwgYW5kIChtaW4tcmVzb2x1dGlvbjogMC4wMDFkcGNtKSB7XG4gICAgI2NpcmNsZSB0ZXh0IHtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjE3NXB4O1xuICAgIH1cbiAgfVxuXG4gIEAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKSB7XG4gICAgI2NpcmNsZSB0ZXh0IHtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjE3NXB4O1xuICAgIH1cbiAgfVxuXG4gICNjaXJjbGUgc3ZnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtNzVweDtcbiAgICBsZWZ0OiAtNjlweDtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDIzMHB4O1xuICAgIGhlaWdodDogMjMwcHg7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlO1xuICAgIGFuaW1hdGlvbi1uYW1lOiByb3RhdGU7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDVzO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogNXM7XG4gICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG5cbiAgICBbZGF0YS1wbGF5c3RhdGU9J3BsYXknXSAmLFxuICAgICY6aG92ZXIge1xuICAgICAgYW5pbWF0aW9uLW5hbWU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZSB7XG4gICAgZnJvbSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgfVxuICB9XG4gIEAtbW96LWtleWZyYW1lcyByb3RhdGUge1xuICAgIGZyb20ge1xuICAgICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIH1cbiAgfVxuICBALW1zLWtleWZyYW1lcyByb3RhdGUge1xuICAgIGZyb20ge1xuICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICB9XG4gIH1cbiAgQC1vLWtleWZyYW1lcyByb3RhdGUge1xuICAgIGZyb20ge1xuICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgfVxuICB9XG4gIEBrZXlmcmFtZXMgcm90YXRlIHtcbiAgICBmcm9tIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIH1cbiAgfVxufVxuXG5cbi5tLWV4aGliaXRpb24tY29udGVudCB7XG4gIG1hcmdpbjogMTJweCAwIDhweCAwO1xufVxuXG4ubS1iYW5uZXItZGVmYXVsdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogNzBweDtcbiAgJi0tdmlkZW97XG4gICAgLm0tYmFubmVyX19pbWFnZS0tdmlkZW8tcHJlc2VudHtcbiAgICBcbiAgICBcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdG9wOiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXG4gICAgICAmW2RhdGEtcGxheXN0YXRlPSdwbGF5J10ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgLy8gcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICAgIC8vIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIFxuICBcblxuICBcbiAgICBcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIH1cbiAgJl9fdmlkZW8ge1xuICAgXG4gIFxuICAgICYtaWNvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDJweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICAmLnBsYXlpbmcge1xuICAgICAgICAubS1iYW5uZXJfX3ZpZGVvLWljb24tLWl0ZW0ucGxheSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5wYXVzZWQge1xuICAgICAgICAubS1iYW5uZXJfX3ZpZGVvLWljb24tLWl0ZW0ucGF1c2Uge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYtLWl0ZW0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICBncmlkLWdhcDogMTBweDtcbiAgICAgICAgaDQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi1jb250YWluZXIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzNy42MjUlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAmLmN0LWJhbm5lci12aWRlbyB7XG4gICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgcG9zaXRpb246IHVuc2V0O1xuICAgICAgcGFkZGluZy1ib3R0b206IDM3LjYyNSU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIEBpbmNsdWRlIG1lZGlhICgnPHNtJyl7XG4gICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgIH1cbiAgICAgIC52aWRlby1tb2RhbC5hY3RpdmV7XG4gICAgICAgIC52aWRlby1jb250YWluZXJ7XG4gICAgICAgICAgdmlkZW97XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgfVxuICAgICAgICAgIGJ1dHRvbntcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2ljb24tcGF1c2Uuc3ZnJyk7XG4gICAgICAgICAgICByaWdodDogNDBweDtcbiAgICAgICAgICAgIHRvcDogLTE1cHg7XG4gICAgICAgICAgICAmW2RhdGEtcGxheXN0YXRlPSdwbGF5J10ge1xuICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICZbZGF0YS1wbGF5c3RhdGU9J3BhdXNlJ10ge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9pY29uLXBsYXkuc3ZnJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi0tY29udHJvbHMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IGNhbGModmFyKC0tYnVtcCkgLyAyKTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tYnVtcCkgLyAyKTtcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzJweDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2xkKTtcbiAgICAgICAgICBnYXA6IGNhbGModmFyKC0tYnVtcCkgLyAzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgd2lkdGg6IDI5cHg7XG4gICAgICAgICAgaGVpZ2h0OiAzNnB4O1xuXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxM3B4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxN3B4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmJ1dHRvbi1jb250cm9se1xuICAgICAgICAgICZbZGF0YS1wbGF5c3RhdGU9J3BsYXknXSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIH1cbiAgXG4gICAgICAgICAgJltkYXRhLXBsYXlzdGF0ZT0ncGF1c2UnXSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLXBsYXlzdGF0ZT0ncGxheSddIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLXBsYXlzdGF0ZT0ncGF1c2UnXSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1vYmlsZSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtY29udGFpbmVyIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICZbZGF0YS1wbGF5c3RhdGU9J3BsYXknXSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICZbZGF0YS1wbGF5c3RhdGU9J3BhdXNlJ10ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICAgICAgLy8gZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGhlaWdodDogdW5zZXQ7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYtLW1vYmlsZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbjogY2FsYyh2YXIoLS1idW1wKSAvIDIpIDA7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19pbWFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICYtY3JlZGl0IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgIC5ncmlkIHtcbiAgICAgICAgLmNvbC0xMiB7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYtLXZpZGVvLXByZXNlbnQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX19ib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTowO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgei1pbmRleDogMTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gICAgJl9fY29udGVudCB7XG4gICAgICBtaW4taGVpZ2h0OiAxNTJweDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgbWluLWhlaWdodDogNzJweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubS1iYW5uZXItZGVmYXVsdC0tbm8taW1hZ2UgJiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAmLmlzLXN0aWNreSB7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnRheG9ub215LXRlcm0ge1xuICAgICAgaDIge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgfVxuXG4gICAgICBhIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250U2l6ZUJvZHkpO1xuICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZUhlaWdodEJvZHkpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgY29sb3I6IHZhcigtLWMtcG9tcGVpaSk7XG4gICAgfVxuICB9XG5cbiAgJl9fYm9va2luZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLmEtYnRuIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICAmX190YXhvbm9teSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgfVxuXG4gICZfX3F1aWNrLWxpbmtzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgY29sdW1uLWdhcDogY2FsYyh2YXIoLS1iYXNlVW5pdCkgKiAzKTtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBsaSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgYSB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXBvbXBlaWkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB2aWRlbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBMaW5rZWQgbG9nb3NcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4ubS1sb2dvcyB7XG4gIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAwLjc7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gU29jaWFsIGxpbmtzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBTdHlsaW5nXG4gKi9cbi5tLXNvY2lhbC1saW5rcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1idW1wKSAvIDMpO1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuXG4gICZfX2xpbmsge1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1idW1wKSAqIDEuNDcpO1xuICAgIHdpZHRoOiBjYWxjKHZhcigtLWJ1bXApICogMS40Nyk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgIHdpZHRoOiAzM3B4O1xuICAgICAgaGVpZ2h0OiAzM3B4O1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuXG4gICAgcmVjdCB7XG4gICAgICB0cmFuc2l0aW9uOiAwLjVzIHZhcigtLWVhc2luZyk7XG4gICAgICBmaWxsOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIH1cblxuICAgIHBhdGgge1xuICAgICAgZmlsbDogdmFyKC0tYy13aGl0ZSk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICByZWN0IHtcbiAgICAgICAgb3BhY2l0eTogLjY7XG4gICAgICB9XG4gICAgICBwYXRoIHtcbiAgICAgICAgb3BhY2l0eTogLjY7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIubS1zZWFyY2gtb3ZlcmxheSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0b3A6IDk1cHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogOTVweDtcclxuICB9XHJcblxyXG4gIHAge1xyXG4gICAgJjpsYXN0LW9mLXR5cGUge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLWJ1bXApICogMik7XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWJ1bXApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYSB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tLWJsb2NrLS12aWV3cy1leHBvc2VkLWZpbHRlci1ibG9ja3NpdGUtc2VhcmNoLXNlYXJjaC1ibG9jayB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbjogMCAwIHZhcigtLWJ1bXApO1xyXG4gIH1cclxuXHJcbiAgLm0tYmxvY2tfX3N1Z2dlc3RlZC1wYWdlcyB7XHJcbiAgICAmLm0tc3VnZ2VzdGVkLXBhZ2VzIHtcclxuICAgICAgYSB7XHJcbiAgICAgICAgQGluY2x1ZGUgYnRuO1xyXG4gICAgICAgIEBpbmNsdWRlIGJ0bl9hbHQ7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMjBweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggdmFyKC0tYy13aGl0ZSkgc29saWQ7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvcm0ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGdhcDogOHB4O1xyXG5cclxuICAgIC5qcy1mb3JtLWl0ZW0ge1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgaW5wdXQge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmEtYnRuIHtcclxuICAgICAgJi5qcy1mb3JtLXN1Ym1pdCB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBnYXA6IDVweDtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XHJcbiAgICAgICAgICBbZGF0YS1zZWFyY2hvdmVybGF5PVwib3BlblwiXSAmIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgcm0tdGV4dDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XHJcbiAgICAgICAgICBjb2xvcjogdmFyKC0tYy1wb21wZWlpKTtcclxuICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9zZWFyY2guc3ZnJyk7XHJcbiAgICAgICAgICAgIGZpbHRlcjogaW52ZXJ0KDMwJSkgZ3JheXNjYWxlKDEwMCUpIGJyaWdodG5lc3MoNzAlKSBjb250cmFzdCg0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9zZWFyY2guc3ZnJyk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICBoZWlnaHQ6IDMycHg7XHJcbiAgICAgICAgICB3aWR0aDogMzJweDtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDIxcHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiAyMXB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm0tc2VhcmNoLWNvcHkge1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX193cmFwcGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXBvbXBlaWkpO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICB6LWluZGV4OiAtMTA7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcclxuICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG4gICAgfVxyXG5cclxuICAgIFtkYXRhLXNlYXJjaG92ZXJsYXk9J29wZW4nXSAmIHtcclxuICAgICAgei1pbmRleDogMTtcclxuICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICAmID4gLmdyaWQge1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX190aXRsZSB7XHJcbiAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgfVxyXG5cclxuICAmX19zdWdnZXN0ZWQtcGFnZXMge1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDI1cHg7XHJcbiAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XHJcbiAgICBtYXJnaW46IDAgMCB2YXIoLS1idW1wKTtcclxuXHJcbiAgICAmX19saW5rcyB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgICAgIGNvbHVtbi1nYXA6IDhweDtcclxuICAgICAgcm93LWdhcDogMTJweDtcclxuXHJcbiAgICAgIGEge1xyXG4gICAgICAgIEBpbmNsdWRlIGJ0bjtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1wb21wZWlpKTtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXdoaXRlKTtcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcclxuICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXBvbXBlaWkpO1xyXG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1wb21wZWlpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiI3NsaWRpbmctcG9wdXAge1xyXG4gICAgJi5zbGlkaW5nLXBvcHVwLWJvdHRvbSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ibGFjayk7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCAtMnB4IDI4cHggMCByZ2IoMjkgMjkgMjcgLyA2JSk7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgXHJcbiAgICAgICAgJiA+IC5ldS1jb29raWUtY29tcGxpYW5jZS1iYW5uZXIge1xyXG4gICAgICAgICAgICAuZXUtY29va2llLWNvbXBsaWFuY2Uge1xyXG4gICAgICAgICAgICAgICAgJi1tZXNzYWdlIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDY1JTtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDYwJTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA1MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaDIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDE4cHgsIDd2dywgdmFyKC0tZm9udFNpemVIZWFkaW5nRm91cikpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBwIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYy1kYXJrR3JleSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICYtbW9yZS1idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLWRhcmtHcmV5KTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udFJlZ3VsYXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNpemUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lSGVpZ2h0KTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE2LjhweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgJi1jb250ZW50IHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDE1cHggYXV0bztcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXJXaWR0aCk7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICYtYnV0dG9ucyB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAzNSU7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMCUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG4gICAgICAgICAgICAgICAgICAgIGdhcDogY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA0MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogNTAlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICYtc2Vjb25kYXJ5LWJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnRuO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtd2hpdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYmxhY2spO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAmLWRlZmF1bHQtYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnRuO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtc2hhZG93OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAzMHB4IDAgMCAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIi5vLW5vZGUge1xyXG4gICYtLWJhY2tncm91bmQge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgb3BhY2l0eTogMC40O1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYmEoMjQ4LCAyNDgsIDI0OCwgMCkgMCUsICNmOGY4ZjggMTAwJSk7XHJcbiAgICB6LWluZGV4OiAtMjtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xyXG4gICAgICBib3gtc2hhZG93OiBpbnNldCAwcHggMjAwcHggMjVweCAtMTUwcHggdmFyKC0tYy13aGl0ZSk7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogNjIuNSU7XHJcbiAgICAgIHotaW5kZXg6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvbWVudS1iYWNrZ3JvdW5kLTJ4LnBuZycpO1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiA2Mi41JTtcclxuICAgICAgb3BhY2l0eTogMC41O1xyXG4gICAgfVxyXG4gIH1cclxuICAmLm8tbWVkYWwtbGFuZGluZyB7XHJcbiAgICAubS1lbnRpdHkge1xyXG4gICAgICBtYXJnaW46IDQwcHggMDtcclxuICAgIGgye1xyXG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gICAgd29yZC1zcGFjaW5nOiBub3JtYWw7XHJcbiAgICB9XHJcbiAgICB9XHJcbiAgICAubS1iYW5uZXItZGVmYXVsdCB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uby1ob21lcGFnZS1jb250ZW50IHtcclxuICAmID4gOm50aC1jaGlsZChldmVuKSB7XHJcbiAgICAubS1lbnRpdHlfX2ZlYXR1cmVkX19jb250YWluZXIge1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBPcmdhbmlzbXMgLSBIZWFkZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4uby1oZWFkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiA1O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyB2YXIoLS1lYXNpbmcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXBvbXBlaWkpO1xuICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG5cbiAgJl9fbG9nbyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgZmxleC1zaHJpbms6IDE7XG4gICAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS1idW1wKS8yKTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDQ0cHg7XG4gICAgdHJhbnNpdGlvbjogMC4xNXMgdmFyKC0tZWFzaW5nKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC43NTtcbiAgICB9XG5cbiAgICBbZGF0YS1uYXY9XCJvcGVuXCJdICYge1xuICAgICAgei1pbmRleDogMjtcbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDE1MXB4O1xuICAgICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICAgIGhlaWdodDogNThweDtcblxuICAgICAgcGF0aCB7XG4gICAgICAgIFtkYXRhLW5hdj1cIm9wZW5cIl0gJiB7XG4gICAgICAgICAgZmlsbDogdmFyKC0tYy13aGl0ZSk7XG4gICAgICAgICAgJjpudGgtb2YtdHlwZSgxKSxcbiAgICAgICAgICAmOm50aC1vZi10eXBlKDIpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAmOm50aC1vZi10eXBlKDEpLFxuICAgICAgICAmOm50aC1vZi10eXBlKDIpIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9faW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fYm9vayB7XG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBidG5fYWx0O1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuICBcbiAgJl9fc2VhcmNoLXdyYXBwZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufSIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBPcmdhbmlzbXMgLSBGb290ZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4gLm8tZm9vdGVyIHtcbiAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wb21wZWlpKTtcbiAgICBwYWRkaW5nOiAwIDAgY2FsYyh2YXIoLS1idW1wKSAvIDMpIDA7XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIH1cblxuICAgICZfX3NlY3Rpb24tdGl0bGUge1xuICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICAgIG1hcmdpbjogMCAwIGNhbGModmFyKC0tYnVtcCkgLyA2KTtcbiAgICB9XG5cbiAgICAmX19maW5kLXVzLFxuICAgICZfX3N0YXktaW4tdG91Y2gsXG4gICAgJl9fc29jaWFsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8bWRcIikge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDM0NHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3RheS1pbi10b3VjaCB7XG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcm93IHtcblxuICAgICAgICAmX190b3Age1xuICAgICAgICAgICAgaDEsXG4gICAgICAgICAgICAuaDEsXG4gICAgICAgICAgICBoMixcbiAgICAgICAgICAgIC5oMixcbiAgICAgICAgICAgIGgzLFxuICAgICAgICAgICAgLmgzLFxuICAgICAgICAgICAgaDQsXG4gICAgICAgICAgICAuaDQsXG4gICAgICAgICAgICBoNSxcbiAgICAgICAgICAgIC5oNSxcbiAgICAgICAgICAgIGg2LFxuICAgICAgICAgICAgLmg2IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxOHB4LCAyLjV2dywgMjBweCk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgY2FsYyh2YXIoLS1idW1wKSAvIDMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDE4cHgsIDIuNXZ3LCAxOHB4KTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogY2xhbXAoMjhweCwgNXZ3LCAzMnB4KTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCBjYWxjKHZhcigtLWJ1bXApIC8gMyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBuYXYge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbi1sYXN0OiBsZWZ0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJlLWZvb3RlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWJsYWNrKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIGNhbGModmFyKC0tYnVtcCkgKiAxLjUpO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tYnVtcCkgMCB2YXIoLS1idW1wKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCB2YXIoLS1idW1wKTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYgPiAuZ3JpZCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8bWRcIikge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiBbY2xhc3MqPSdjb2wtJ10ge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduLWxhc3Q6IGxlZnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8bWRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tZW51IHtcbiAgICAgICAgdWwge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIFxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDUwcHggMCAwO1xuICAgICAgICBcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDIwcHggMCAwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2xkKTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NvY2lhbCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1idW1wKTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxtZFwiKSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFjay10by10b3Age1xuICAgICAgICAgICAgQGluY2x1ZGUgYnRuLXctaWNvbignLi4vaW1nL2Fycm93LXVwLXdoaXRlLnN2ZycpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogY2FsYyh2YXIoLS1idW1wKSAvIDMpO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy13aGl0ZSk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ0bi13LWljb24taG92ZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtYmxhY2spO1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9hcnJvdy11cC1ibGFjay5zdmcnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubS1mb290ZXItLS1zb2NpYWwtbGlua3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jcmVkaXRzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYmcpO1xuICAgIH1cbn1cbiAgIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE9yZ2FuaXNtcyAtIFZpZXdzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLm8tdmlldyB7XG4gICAgJl9fbGlzdGluZyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIDFmcik7XG4gICAgICAgIH1cblxuICAgICAgICAudmlld3Mtcm93IHtcbiAgICAgICAgICAgIGFydGljbGUge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAuby10ZWFzZXJ7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgXG59XG5cbi52aWV3X193aGF0X3Nfb24sXG4udmlld19fdmlkZW8sXG4udmlld19fYXJ0aWNsZSxcbi52aWV3X193aGF0X3Nfb25fYXJjaGl2ZSB7XG4gICAgZm9ybSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIC5mb3JtLXNlbGVjdCB7XG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgICAgIGdhcDogY2FsYyh2YXIoLS1iYXNlVW5pdCkgKiAxLjUpO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuanMtZm9ybS1pdGVtLXR5cGUge1xuICAgICAgICAgICAgLmZvcm0tc2VsZWN0IHtcbiAgICAgICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBidG47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtcG9tcGVpaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBib3JkZXI6IDFweCBzb2xpZCAjREYzNjAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICY6aG92ZXJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGNvbG9yOiAjREYzNjAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjREYzNjAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmW25hbWUqPVwidHlwZVtBbGxdXCJdIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5iZWYtbGluay0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wb21wZWlpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKSFpbXBvcnRhbnQ7O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICZbbmFtZSo9XCJ0eXBlWzhdXCJdIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWV4aGliaXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYy1leGhpYml0aW9uKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLWV4aGliaXRpb24pIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLmJlZi1saW5rLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWV4aGliaXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpIWltcG9ydGFudDs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJltuYW1lKj1cInR5cGVbOV1cIl0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtdGFsa3MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYy10YWxrcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYy10YWxrcykhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYuYmVmLWxpbmstLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtdGFsa3MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpIWltcG9ydGFudDs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJltuYW1lKj1cInR5cGVbMTBdXCJdIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXRvdXJzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtdG91cnMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtdG91cnMpIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLmJlZi1saW5rLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXRvdXJzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKSFpbXBvcnRhbnQ7O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICZbbmFtZSo9XCJ0eXBlWzEzXVwiXSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1mYW1pbGllcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLWZhbWlsaWVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLWZhbWlsaWVzKSFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5iZWYtbGluay0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1mYW1pbGllcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSkhaW1wb3J0YW50OztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmW25hbWUqPVwidHlwZVsxMV1cIl0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtd29ya3Nob3BzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtd29ya3Nob3BzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXdvcmtzaG9wcykhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYuYmVmLWxpbmstLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd29ya3Nob3BzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKSFpbXBvcnRhbnQ7O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICZbbmFtZSo9XCJ0eXBlWzE0XVwiXSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1vZmZzaXRlLXRvdXJpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYy1vZmZzaXRlLXRvdXJpbmcpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtb2Zmc2l0ZS10b3VyaW5nKSFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5iZWYtbGluay0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1vZmZzaXRlLXRvdXJpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpIWltcG9ydGFudDs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJltuYW1lKj1cInR5cGVbMTJdXCJdIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXNvYW5lLWxhdGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtc29hbmUtbGF0ZXMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtc29hbmUtbGF0ZXMpIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLmJlZi1saW5rLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXNvYW5lLWxhdGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKSFpbXBvcnRhbnQ7O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICZbbmFtZSo9XCJ0eXBlWzI4Ml1cIl0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6dmFyKC0tYy1jb3Vyc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6dmFyKC0tYy1jb3Vyc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbG9yOiB2YXIoLS1jLXNvYW5lLWxhdGVzKSFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5iZWYtbGluay0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1jb3Vyc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpIWltcG9ydGFudDs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuanMtZm9ybS1pdGVtLXJ1bi1kYXRlIHtcbiAgICAgICAgICAgIC5mb3JtLXNlbGVjdCB7XG4gICAgICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgICAgICBjb2x1bW4tZ2FwOiBjYWxjKHZhcigtLWJhc2VVbml0KSAqIDYpO1xuICAgICAgICAgICAgICAgICAgICAvLyBib3JkZXItbGVmdDogMXB4IHNvbGlkICNEOEQ4RDggO1xuICAgICAgICAgICAgICAgICAgICAvLyBoZWlnaHQ6IGNhbGModmFyKC0tYmFzZVVuaXQpICogMyk7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0tYmFzZVVuaXQpICogLTMpO1xuICAgICAgICAgICAgICAgIC8vICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC8vICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAvLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI0Q4RDhEODtcbiAgICAgICAgICAgICAgICAvLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIC8vIGxlZnQ6IGNhbGModmFyKC0tYmFzZVVuaXQpICogLTMpO1xuICAgICAgICAgICAgICAgIC8vICAgICBoZWlnaHQ6IGNhbGModmFyKC0tYmFzZVVuaXQpICogMyk7XG4gICAgICAgICAgICAgICAgLy8gICAgIHdpZHRoOiAxcHg7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgLy8gICAgIH1cbiAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0Q4RDhEODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tYmFzZVVuaXQpICogMyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDhEOEQ4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogY2FsYyh2YXIoLS1iYXNlVW5pdCkgKiAtMyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLWJhc2VVbml0KSAqIDMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBidG5fdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYuYmVmLWxpbmstLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtcG9tcGVpaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvbGQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybS1hY3Rpb25zIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuanMtZm9ybS1pdGVtLWZvciB7XG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBidG47XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXBvbXBlaWkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJi5iZWYtbGluay0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcG9tcGVpaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSkhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhlYWRlciB7XG4gICAgICAgIC5tLWVudGl0eV9fdmlldyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZ2FwOiBjYWxjKHZhcigtLWJhc2VVbml0KSAqIDUpO1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIHZhcigtLWJ1bXApO1xuXG4gICAgICAgICAgICAudmlld3MtZmllbGQtZmllbGQtcnVuLWRhdGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0Q4RDhEODtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGNhbGModmFyKC0tYnVtcCkgLyAtMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbi52aWV3X193aGF0X3Nfb24ge1xuICBcbiAgICAmX19maWx0ZXJzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGNvbHVtbi1nYXA6IGNhbGModmFyKC0tYmFzZVVuaXQpICogNik7XG4gICAgICAgIC8vIHJvdy1nYXA6IGNhbGModmFyKC0tYmFzZVVuaXQpICogNik7XG4gICAgICAgIC8vIEBpbmNsdWRlIG1lZGlhKCc8c20nKXtcbiAgICAgICAgLy8gICAgIHJvdy1nYXA6IGNhbGModmFyKC0tYmFzZVVuaXQpICogMTEpO1xuICAgICAgICAvLyB9XG4gICAgICBcbiAgICAgICAgXG4gICAgfVxuXG4gICAgJl9fYXJjaGl2ZS1saW5rIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXBvbXBlaWkpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYy1wb21wZWlpKTtcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVye1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0Q4RDhEODtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogY2FsYyh2YXIoLS1iYXNlVW5pdCkgKiAtMyk7XG4gICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1iYXNlVW5pdCkgKiAzKTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICBcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnZpZXdfX3doYXRfc19vbl9hcmNoaXZlIHtcbiAgICAmX19maWx0ZXJzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY29sdW1uLWdhcDogY2FsYyh2YXIoLS1iYXNlVW5pdCkgKiA1KTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgJl9fd2hhdHMtb24tbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvbGQpO1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wb21wZWlpKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXBvbXBlaWkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udmlld19fc2l0ZV9zZWFyY2gge1xuICAgIGhlYWRlciB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMjhweCwgMi41dncsIDM0cHgpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IGNsYW1wKDM4cHgsIDV2dywgNDRweCk7XG4gICAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3JtIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAudmlld3Mtcm93IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMxZjFkMWU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuXG4gICAgICAgIGgyLmg0IHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpO1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi52aWV3X193aGF0X3Nfb25fYXJjaGl2ZV9fZmlsdGVycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBjb2x1bW4tZ2FwOiBjYWxjKHZhcigtLWJhc2VVbml0KSAqIDUpO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHJvdy1nYXA6IGNhbGModmFyKC0tYmFzZVVuaXQpICogMS4yNSk7XG4gICAgfVxufVxuXG4uYXJjaGl2ZS1maWx0ZXJzX195ZWFycyB7XG4gICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgc2VsZWN0IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wb21wZWlpKTtcbiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtcmVndWxhcik7XG4gICAgICAgIG9wdGlvbiB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogT3JnYW5pc21zIC0gU2VhcmNoIHJlc3VsdHNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4jc2VhcmNoLWZvcm0ge1xuICBkaXNwbGF5OiBub25lO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5vLXNlYXJjaC1yZXN1bHRzLXdyYXBwZXIge1xuICBoMiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5yZXN1bHRfX3RpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgJl9fbGlzdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1idW1wKSAqIDIpO1xuXG4gICAgb2wge1xuICAgICAgQGluY2x1ZGUgbGktcmVzZXQ7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tYnVtcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogT3JnYW5pc21zIC0gc2lkZWJhclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5vLXNpZGViYXIge1xuICAgIHBhZGRpbmc6IHZhcigtLWJ1bXApIDIwcHggY2FsYyh2YXIoLS1idW1wKSAqIDEuNSk7XG5cbiAgICAmX19pbmZvLWJveCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYl9yZWQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7XG4gICAgICAgICAgICAvLyB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG5cbiAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBwIHtcbiAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDEuNWVtIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnRheG9ub215LXRlcm0ge1xuICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMThweCwgMi41dncsIDE4cHgpO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBjbGFtcCgyN3B4LCA1dncsIDI3cHgpO1xuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpO1xuICAgICAgICAgICAgICAgICAgICAvLyB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgfVxuXG4gICAgJl9fYm9va2luZy1saW5rIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogY2FsYyh2YXIoLS1idW1wKSAvIDIpIDAgMDtcbiAgICAgICAgcGFkZGluZzogOHB4IDE1cHg7XG4gICAgICAgIHRyYW5zaXRpb246IDAuM3MgdmFyKC0tZWFzaW5nKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXBvbXBlaWkpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbaHJlZl49J2h0dHAnXSB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYy1wb21wZWlpKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvZXh0LWFsdC1yZWQucG5nJykgNTAlIG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC4zcyB2YXIoLS1lYXNpbmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvZXh0LWFsdC13aGl0ZS5wbmcnKSA1MCUgbm8tcmVwZWF0O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVybmFsIHtcbiAgICAgICAgICAgICZbaHJlZl49J2h0dHAnXSB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2V4dC1hbHQtcmVkLnBuZycpIDUwJSBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RpY2tldHMtbGluayB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXBvbXBlaWkpO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXBvbXBlaWkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltocmVmXj0naHR0cCddIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvZXh0LWFsdC1yZWQucG5nJykgNTAlIG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdWJuYXYge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyZXkpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcblxuICAgICAgICBoMyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGNhbGModmFyKC0tYnVtcCkgLyAyKSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudSB7XG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogT3JnYW5pc21zIC0gVGVhc2Vyc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cblxuXG5cblxuXG5cblxuLm8tdGVhc2VyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBoZWlnaHQ6IDEwMCU7XG5cbiAgJl9fdGh1bWIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5hLWltYWdlLWNyZWRpdCB7XG4gICAgICBsZWZ0OiBjYWxjKHZhcigtLWJ1bXApIC8gMS41KTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgaW1nIHtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2RhdGUsXG4gICZfX3ByaWNlIHtcbiAgICBwIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbjogMCAwIGNhbGModmFyKC0tYnVtcCkgLyAyKTtcbiAgICB9XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmc6IDI0cHggY2FsYyh2YXIoLS1idW1wKSAvIDIgKTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyZXkpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgXG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJiA+IHAge1xuICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1idW1wKTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tYnVtcCkgLyAyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0ZXh0LWFsaWduLWxhc3Q6IGxlZnQ7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBtYXJnaW46IDAgMCB2YXIoLS1idW1wKTtcbiAgICBmb250LXNpemU6IGNsYW1wKDIycHgsMi41dncsMjJweCk7XG4gICAgbGluZS1oZWlnaHQ6IGNsYW1wKDMycHgsNXZ3LDMycHgpO1xuXG4gICAgJi0tbGlzdGluZyB7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTJweCk7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICB3aWR0aDogMzJweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ibGFjayk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2xkKTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgdGV4dC1hbGlnbi1sYXN0OiBsZWZ0O1xuICAgIH1cbiAgfVxuXG4gICZfX2J1dHRvbnMge1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiBjYWxjKHZhcigtLWJhc2VVbml0KSAqIDEuNSk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAmX19ldmVudC10eXBlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvbGQpO1xuICAgIHBhZGRpbmc6IGNhbGModmFyKC0tYnVtcCkgLyAzKSBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG5cbiAgICAmLmV4aGliaXRpb25zIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtZXhoaWJpdGlvbik7XG4gICAgfVxuICAgICYudGFsa3Mge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy10YWxrcyk7XG4gICAgfVxuICAgICYudG91cnMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy10b3Vycyk7XG4gICAgfVxuICAgICYuZXZlbmluZy1vcGVuaW5nIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtZXZlbmluZyk7XG4gICAgfVxuICAgICYuZmFtaWxpZXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1mYW1pbGllcyk7XG4gICAgfVxuICAgICYud29ya3Nob3BzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd29ya3Nob3BzKTtcbiAgICB9XG4gICAgJi5jb3Vyc2VzLWFuZC1jbGFzc2VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtY291cnNlKTtcbiAgICB9XG4gICAgJi5vZmZzaXRlLXRvdXJpbmcge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1vZmZzaXRlLXRvdXJpbmcpO1xuICAgIH1cbiAgICAmLnNvYW5lLWxhdGVzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtc29hbmUtbGF0ZXMpO1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/