  /*! PhotoSwipe main CSS by Dmitry Semenov | photoswipe.com | MIT license */
/*
	Styles for basic PhotoSwipe functionality (sliding area, open/close transitions)
*/
/* pswp = photoswipe */
.pswp {
  display: none;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  overflow: hidden;
  -ms-touch-action: none;
  touch-action: none;
  z-index: 1500;
  -webkit-text-size-adjust: 100%;
  /* create separate layer, to avoid paint on window.onscroll in webkit/blink */
  -webkit-backface-visibility: hidden;
  outline: none; }
  .pswp * {
    -webkit-box-sizing: border-box;
            box-sizing: border-box; }
  .pswp img {
    max-width: none; }

/* style is added when JS option showHideOpacity is set to true */
.pswp--animate_opacity {
  /* 0.001, because opacity:0 doesn't trigger Paint action, which causes lag at start of transition */
  opacity: 0.001;
  will-change: opacity;
  /* for open/close transition */
  -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
          transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }

.pswp--open {
  display: block; }

.pswp--zoom-allowed .pswp__img {
  /* autoprefixer: off */
  cursor: -webkit-zoom-in;
  cursor: -moz-zoom-in;
  cursor: zoom-in; }

.pswp--zoomed-in .pswp__img {
  /* autoprefixer: off */
  cursor: -webkit-grab;
  cursor: -moz-grab;
  cursor: grab; }

.pswp--dragging .pswp__img {
  /* autoprefixer: off */
  cursor: -webkit-grabbing;
  cursor: -moz-grabbing;
  cursor: grabbing; }

/*
	Background is added as a separate element.
	As animating opacity is much faster than animating rgba() background-color.
*/
.pswp__bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  will-change: opacity; }

.pswp__scroll-wrap {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: hidden; }

.pswp__container,
.pswp__zoom-wrap {
  -ms-touch-action: none;
  touch-action: none;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0; }

/* Prevent selection and tap highlights */
.pswp__container,
.pswp__img {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
      user-select: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none; }

.pswp__zoom-wrap {
  position: absolute;
  width: 100%;
  -webkit-transform-origin: left top;
  -ms-transform-origin: left top;
  transform-origin: left top;
  /* for open/close transition */
  -webkit-transition: -webkit-transform 333ms cubic-bezier(0.4, 0, 0.22, 1);
          transition: transform 333ms cubic-bezier(0.4, 0, 0.22, 1); }

.pswp__bg {
  will-change: opacity;
  /* for open/close transition */
  -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
          transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }

.pswp--animated-in .pswp__bg,
.pswp--animated-in .pswp__zoom-wrap {
  -webkit-transition: none;
  transition: none; }

.pswp__container,
.pswp__zoom-wrap {
  -webkit-backface-visibility: hidden; }

.pswp__item {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  overflow: hidden; }

.pswp__img {
  position: absolute;
  width: auto;
  height: auto;
  top: 0;
  left: 0; }

/*
	stretched thumbnail or div placeholder element (see below)
	style is added to avoid flickering in webkit/blink when layers overlap
*/
.pswp__img--placeholder {
  -webkit-backface-visibility: hidden; }

/*
	div element that matches size of large image
	large image loads on top of it
*/
.pswp__img--placeholder--blank {
  background: #222; }

.pswp--ie .pswp__img {
  width: 100% !important;
  height: auto !important;
  left: 0;
  top: 0; }

/*
	Error message appears when image is not loaded
	(JS option errorMsg controls markup)
*/
.pswp__error-msg {
  position: absolute;
  left: 0;
  top: 50%;
  width: 100%;
  text-align: center;
  font-size: 14px;
  line-height: 16px;
  margin-top: -8px;
  color: #CCC; }

.pswp__error-msg a {
  color: #CCC;
  text-decoration: underline; }

@charset "UTF-8";
/**
 * ----------------------
 * Un.titled
 * Main - Global
 * ----------------------
 */
/**
 * Dependencies
 */
/*! 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;
  }
}

.glide {
  position: relative;
  width: 100%;
  box-sizing: border-box;
}
.glide * {
  box-sizing: inherit;
}
.glide__track {
  overflow: hidden;
}
.glide__slides {
  position: relative;
  width: 100%;
  list-style: none;
  backface-visibility: hidden;
  transform-style: preserve-3d;
  touch-action: pan-Y;
  overflow: hidden;
  margin: 0;
  padding: 0;
  white-space: nowrap;
  display: flex;
  flex-wrap: nowrap;
  will-change: transform;
}
.glide__slides--dragging {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.glide__slide {
  width: 100%;
  height: 100%;
  flex-shrink: 0;
  white-space: normal;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: transparent;
}
.glide__slide a {
  -webkit-user-select: none;
          user-select: none;
  -webkit-user-drag: none;
  -moz-user-select: none;
  -ms-user-select: none;
}
.glide__arrows {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.glide__bullets {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.glide--rtl {
  direction: rtl;
}

/**
 * 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
 * ----------------------
 */
/**
 * ----------------------
 * 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}
 */
.u-hidden-visually {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  white-space: nowrap !important;
  width: 1px !important;
}

/**
 * Config
 */
/**
 * ----------------------
 * Un.titled
 * Config - Fonts
 * ----------------------
 */
@font-face {
  font-family: "Theinhardt";
  src: url("/wp-content/themes/pippip/dist/font/theinhardt/subset-Theinhardt-MediumItalic.woff2") format("woff2"), url("/wp-content/themes/pippip/dist/font/theinhardt/subset-Theinhardt-MediumItalic.woff") format("woff");
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Theinhardt";
  src: url("/wp-content/themes/pippip/dist/font/theinhardt/subset-Theinhardt-Light.woff2") format("woff2"), url("/wp-content/themes/pippip/dist/font/theinhardt/subset-Theinhardt-Light.woff") format("woff");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Theinhardt";
  src: url("/wp-content/themes/pippip/dist/font/theinhardt/subset-Theinhardt-Italic.woff2") format("woff2"), url("/wp-content/themes/pippip/dist/font/theinhardt/subset-Theinhardt-Italic.woff") format("woff");
  font-weight: normal;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Theinhardt";
  src: url("/wp-content/themes/pippip/dist/font/theinhardt/subset-Theinhardt-LightItalic.woff2") format("woff2"), url("/wp-content/themes/pippip/dist/font/theinhardt/subset-Theinhardt-LightItalic.woff") format("woff");
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Theinhardt";
  src: url("/wp-content/themes/pippip/dist/font/theinhardt/subset-Theinhardt-Regular.woff2") format("woff2"), url("/wp-content/themes/pippip/dist/font/theinhardt/subset-Theinhardt-Regular.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Theinhardt";
  src: url("/wp-content/themes/pippip/dist/font/theinhardt/subset-Theinhardt-Medium.woff2") format("woff2"), url("/wp-content/themes/pippip/dist/font/theinhardt/subset-Theinhardt-Medium.woff") format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
/**
 * ----------------------
 * Un.titled
 * Config - Vars
 * ----------------------
 */
:root {
  --c-primary: #000;
  --c-secondary: var(--c-pink);
  --c-white: #ffffff;
  --c-greyLight: #f3f2f1;
  --c-grey: #c8c8d2;
  --c-teal: #00d282;
  --c-yellow: #ffff8c;
  --c-purple: #0000d7;
  --c-pink: #ff7364;
  --c-magenta: #fa1446;
  --c-red: #D5234A;
  --c-blue: #00a5E1;
  --c-maroon: #ff6400;
  --c-green: #004b32;
  --c-umber: #5a3237;
  --c-black: #000;
  --fontBody: "Theinhardt",
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu,
    Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  --fontBold: "Theinhardt",
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu,
    Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  --fontItalic: "Theinhardt",
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu,
    Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  --fontTitle: "Theinhardt",
    -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  --fontSmall: 80%;
  --lineHeight: 1.3;
  --containerWidth: 1802px;
  --cols-3: calc(var(--containerWidth) * 0.25);
  --cols-6: calc(var(--containerWidth) * 0.5);
  --cols-8: calc(var(--containerWidth) * 0.6666666667);
  --cols-10: calc(var(--containerWidth) * 0.833333333333);
  --variableHeightLimit: clamp(20vh, 60vw, 60vh);
  --heightLimit: 700px;
  --gutter: 15px;
  --easing: cubic-bezier(0.83, 0, 0.17, 1);
  --transition: 0.3s var(--easing);
  --lineLength: 600px;
}

/**
* Breakpoints for @include-media
*/
/**
 * 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 {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transition: opacity 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;
}

.restricted-height {
  max-height: var(--heightLimit);
  width: auto;
  max-width: 100%;
  display: block;
  margin: 0 auto;
}

a[data-gallery] {
  cursor: zoom-in;
}
a[data-gallery]:hover {
  opacity: 0.85;
  text-decoration: none;
}

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

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

.video-wrapper {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.video-title h3 {
  font-size: 18px;
  font-size: 1rem;
  line-height: 1.3;
}
@media screen and (min-width: 1600px) {
  .video-title h3 {
    font-size: 24px;
    font-size: 1.3333333333rem;
    line-height: 1.3;
  }
}
@media screen and (min-width: 768px) and (max-width: 1600px) {
  .video-title h3 {
    font-size: calc(1rem + 0.3333333333 * (100vw - 42.6666666667rem) / 46.2222222222);
  }
}

.video-caption {
  margin-top: 0.5rem;
  font-size: var(--fontSmall);
}

.media-soundcloud-audio iframe {
  width: 100%;
  max-height: 150px;
}

figcaption {
  margin-top: 0.5rem;
  font-size: 90%;
}

/**
 * ----------------------
 * Un.titled
 * Base - Typography
 * ----------------------
 */
/**
 * Config
 */
/**
 * Heading
 */
h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  margin-top: 0;
  font-family: var(--fontTitle);
  font-weight: 500;
  margin-bottom: 1rem;
}

h1,
.h1 {
  font-size: 48px;
  font-size: 2.6666666667rem;
  line-height: 1.1;
}
@media screen and (min-width: 1600px) {
  h1,
  .h1 {
    font-size: 60px;
    font-size: 3.3333333333rem;
    line-height: 1.1;
  }
}
@media screen and (min-width: 768px) and (max-width: 1600px) {
  h1,
  .h1 {
    font-size: calc(2.6666666667rem + 0.6666666667 * (100vw - 42.6666666667rem) / 46.2222222222);
  }
}

h2,
.h2 {
  font-size: 36px;
  font-size: 2rem;
  line-height: 1.2;
}
@media screen and (min-width: 1600px) {
  h2,
  .h2 {
    font-size: 48px;
    font-size: 2.6666666667rem;
    line-height: 1.2;
  }
}
@media screen and (min-width: 768px) and (max-width: 1600px) {
  h2,
  .h2 {
    font-size: calc(2rem + 0.6666666667 * (100vw - 42.6666666667rem) / 46.2222222222);
  }
}

h3,
.h3 {
  font-size: 30px;
  font-size: 1.6666666667rem;
  line-height: 1.2;
}
@media screen and (min-width: 1600px) {
  h3,
  .h3 {
    font-size: 36px;
    font-size: 2rem;
    line-height: 1.2;
  }
}
@media screen and (min-width: 768px) and (max-width: 1600px) {
  h3,
  .h3 {
    font-size: calc(1.6666666667rem + 0.3333333333 * (100vw - 42.6666666667rem) / 46.2222222222);
  }
}

h4,
.h4 {
  font-size: 24px;
  font-size: 1.3333333333rem;
  line-height: 1.2;
}
@media screen and (min-width: 1600px) {
  h4,
  .h4 {
    font-size: 30px;
    font-size: 1.6666666667rem;
    line-height: 1.2;
  }
}
@media screen and (min-width: 768px) and (max-width: 1600px) {
  h4,
  .h4 {
    font-size: calc(1.3333333333rem + 0.3333333333 * (100vw - 42.6666666667rem) / 46.2222222222);
  }
}

h5,
.h5 {
  font-size: 18px;
  font-size: 1rem;
  line-height: 1.3;
}
@media screen and (min-width: 1600px) {
  h5,
  .h5 {
    font-size: 24px;
    font-size: 1.3333333333rem;
    line-height: 1.3;
  }
}
@media screen and (min-width: 768px) and (max-width: 1600px) {
  h5,
  .h5 {
    font-size: calc(1rem + 0.3333333333 * (100vw - 42.6666666667rem) / 46.2222222222);
  }
}

h6,
.h6 {
  font-size: 18px;
  font-size: 1rem;
  line-height: 1.3;
}
@media (max-width: 575px) {
  h6,
  .h6 {
    margin-bottom: 0.5rem;
  }
}

.centered {
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
}
.centered-padding-bottom {
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
  padding-bottom: 1rem;
}

.border-bottom {
  border-bottom: 1px solid var(--c-primary);
  padding-bottom: 1rem;
  margin-bottom: 2rem;
}
@media (max-width: 767px) {
  .border-bottom {
    margin-bottom: 1rem;
  }
}
.border-top {
  border-top: 1px solid var(--c-primary);
  padding-top: 1rem;
  margin-top: 2rem;
}
@media (max-width: 767px) {
  .border-top {
    margin-top: 1rem;
  }
}

/**
 * Paragraphs
 */
p {
  margin: 0 0 1.5rem;
}
p:first-of-type {
  margin-top: 0;
}
p:last-of-type {
  margin-bottom: 0;
}

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

/**
 * Links
 */
a,
.link {
  color: inherit;
  font-weight: inherit;
  text-decoration: underline;
  transition: all var(--transition);
}
a:hover, a:focus, a:active,
.link:hover,
.link:focus,
.link:active {
  text-decoration: none;
  color: currentColor;
}
a:focus-visible,
.link:focus-visible {
  outline: 3px solid currentColor;
}
a.no-link,
.link.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: 3px solid currentColor;
}

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

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 - Main
 * ----------------------
 */
/**
 * Styles
 */
html {
  box-sizing: border-box;
  font-size: 1.125rem;
  scroll-behavior: smooth;
}

body {
  -moz-font-smoothing: grayscale;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1rem;
  line-height: var(--lineHeight);
  font-family: var(--fontBody);
  color: var(--c-primary);
}

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

body {
  display: flex;
  flex-direction: column;
}

main {
  overflow: hidden;
}

/**
 * ----------------------
 * Un.titled
 * Base - Animations
 * ----------------------
 */
@keyframes fadeIn {
  0% {
    opacity: 0;
    visibility: hidden;
  }
  100% {
    opacity: 1;
    visibility: visible;
  }
}
@keyframes fadeOut {
  0% {
    opacity: 1;
    visibility: visible;
    display: flex;
  }
  100% {
    opacity: 0;
    visibility: hidden;
    display: none;
  }
}
/**
* Atoms
*/
/**
 * ----------------------
 * Un.titled
 * Atoms - Buttons
 * ----------------------
 */
/**
 * Config
 **/
/**
 * Styles
 **/
.a-btn {
  --btnBg: var(--c-primary);
  --btnColour: var(--c-white);
  cursor: pointer;
  padding: 0.75rem 1rem;
  display: inline-flex;
  gap: 10px;
  justify-content: center;
  align-items: center;
  background-color: var(--btnBg);
  color: var(--btnColour);
  border: 1px solid var(--btnBg);
  transition: all var(--transition);
  text-decoration: none;
  text-wrap: auto;
}
.a-btn:not(.a-btn) {
  border-bottom: none;
}
.a-btn::after {
  display: none;
  visibility: hidden;
}
.a-btn:has(svg) {
  flex-wrap: nowrap;
}
.a-btn svg {
  transition: transform var(--transition);
  min-width: 1rem;
  width: 1rem;
  height: 1rem;
}
.a-btn path {
  fill: currentColor;
}
.a-btn:focus, .a-btn:hover {
  text-decoration: none;
  color: var(--btnColour);
  opacity: 0.7;
}
.a-btn:focus svg, .a-btn:hover svg {
  transform: translateX(5px);
}
.a-btn:focus-visible {
  outline: 3px solid var(--btnBg);
  outline-offset: 3px;
}
.a-btn--yel {
  --btnBg: var(--c-yellow);
  --btnColour: var(--c-primary);
}
.a-btn--blue {
  --btnBg: var(--c-blue);
  --btnColour: var(--c-primary);
}
.a-btn--wh {
  --btnBg: var(--c-white);
  --btnColour: var(--c-primary);
}
.a-btn--wide {
  padding-left: 4rem;
  padding-right: 4rem;
}
@media (max-width: 575px) {
  .a-btn--wide {
    padding-left: 1rem;
    padding-right: 1rem;
    display: flex;
  }
}
.a-btn--fullWidth {
  display: flex;
  width: 100%;
}
.a-btn--narrow {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.a-btn--sm {
  --btnBg: transparent;
  --btnColour: var(--c-primary);
  border-color: var(--c-primary);
  text-transform: uppercase;
  padding: 0.25rem 0.75rem;
  font-size: var(--fontSmall);
  letter-spacing: 1px;
}
.a-btn--sm:hover {
  --btnBg: var(--c-primary);
  color: var(--c-white);
}
.a-btn--hollow {
  --btnBg: transparent;
  --btnColour: var(--c-primary);
  border-color: var(--c-primary);
}
.a-btn--hollow:focus {
  outline-color: var(--btnColour);
}
.a-btn--hollow:focus-visible {
  outline-color: var(--btnColour);
}
.a-btn--iconLeft svg {
  margin: 0 10px 0 0;
}
.a-btn--iconLeft:hover svg {
  transform: translateX(-5px);
}
.a-btn--white {
  --btnBg: transparent;
  --btnColour: var(--c-white);
  border-color: var(--c-white);
}
.a-btn--white:hover {
  background-color: var(--c-pink);
  color: var(--c-primary);
  border-color: var(--c-pink);
}

/**
 * ----------------------
 * Un.titled
 * Atoms - Image credits
 * ----------------------
 */
.a-image-credit {
  position: absolute;
  bottom: 0;
  right: 0;
  cursor: help;
  border: 0;
  width: 50px;
  height: 50px;
  background-color: transparent;
  display: flex;
  justify-content: center;
  align-items: center;
}
.a-image-credit__icon {
  background-color: var(--c-white);
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.5333333333);
  color: var(--c-primary);
  width: 1.25rem;
  height: 1.25rem;
  display: flex;
  justify-content: center;
  border-radius: 50%;
  align-items: center;
  text-transform: none;
  line-height: 15px;
  text-align: center;
  font-size: var(--fontSmall);
}
.a-image-credit__copy {
  background: var(--c-white);
  color: var(--c-primary);
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
  padding: 1rem 3rem 1rem 1rem;
  font-size: var(--fontSmall);
  width: 95vw;
  max-width: 500px;
  text-align: left;
  display: block;
  pointer-events: none;
  transition: opacity var(--transition);
}
@media (max-width: 767px) {
  .a-image-credit__copy {
    padding-right: 2rem;
  }
}
.a-image-credit:focus .a-image-credit__icon, .a-image-credit:active .a-image-credit__icon, .a-image-credit:hover .a-image-credit__icon {
  color: var(--c-white);
  background-color: var(--c-primary);
}
.a-image-credit:focus .a-image-credit__copy, .a-image-credit:active .a-image-credit__copy, .a-image-credit:hover .a-image-credit__copy {
  opacity: 1;
  visibility: visible;
  z-index: 21;
}

/**
* ----------------------
* Un.titled
* Atoms - Breadcrumbs
* ----------------------
*/
/**
* Styling
*/
.a-breadcrumbs {
  padding: 0.5rem 2rem;
  font-size: var(--fontSmall);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  max-width: var(--containerWidth);
  margin: 0 auto;
}
@media (max-width: 767px) {
  .a-breadcrumbs {
    display: none;
    visibility: hidden;
    padding: 0.5rem 1rem;
  }
}
@media (max-width: 575px) {
  .a-breadcrumbs {
    padding: 0.5rem 15px;
  }
}
.a-breadcrumbs__divider {
  margin: 0 5px;
}
.a-breadcrumbs a {
  text-decoration: none;
}
.a-breadcrumbs a:hover {
  text-decoration: underline;
}

/**
* ----------------------
* Un.titled
* Atoms - Loader
* ----------------------
*/
/**
* Config
*/
@keyframes loaderAnimation {
  0%, 10% {
    -webkit-transform: perspective(140px) rotateX(-180deg);
    transform: perspective(140px) rotateX(-180deg);
    opacity: 0;
  }
  25%, 75% {
    -webkit-transform: perspective(140px) rotateX(0deg);
    transform: perspective(140px) rotateX(0deg);
    opacity: 1;
  }
  90%, 100% {
    -webkit-transform: perspective(140px) rotateY(180deg);
    transform: perspective(140px) rotateY(180deg);
    opacity: 0;
  }
}
:root {
  --loaderColour: var(--c-primary);
}

/**
* Styling
*/
.a-loader {
  margin: 20px auto;
  width: 40px;
  height: 40px;
  position: relative;
  transform: rotateZ(45deg);
}
.a-loader--white {
  --loaderColour: rgba(255, 255, 255, 0.8);
}
.a-loader__cube {
  float: left;
  width: 50%;
  height: 50%;
  position: relative;
  transform: scale(1.1);
}
.a-loader__cube::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--loaderColour);
  animation: loaderAnimation 2.4s infinite linear both;
  transform-origin: 100% 100%;
}
.a-loader__cube-2 {
  transform: scale(1.1) rotateZ(90deg);
}
.a-loader__cube-2::before {
  animation-delay: 0.3s;
}
.a-loader__cube-3 {
  transform: scale(1.1) rotateZ(180deg);
}
.a-loader__cube-3::before {
  animation-delay: 0.6s;
}
.a-loader__cube-4 {
  transform: scale(1.1) rotateZ(270deg);
}
.a-loader__cube-4::before {
  animation-delay: 0.9s;
}

/**
* ----------------------
* Un.titled
* Atoms - Date picker
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-date-picker {
  width: 100%;
  max-width: 80%;
  margin-bottom: 2rem;
}
@media (max-width: 767px) {
  .a-date-picker {
    max-width: 100%;
  }
}
.a-date-picker .DayPicker-wrapper {
  position: unset;
}
.a-date-picker .DayPicker-NavBar {
  position: absolute;
  top: 1.5rem;
  right: 2rem;
  display: flex;
  align-items: center;
}
@media (max-width: 767px) {
  .a-date-picker .DayPicker-NavBar {
    width: 100%;
    right: 0;
    top: 1.25rem;
    padding: 0 1rem;
    justify-content: space-between;
  }
}
@media (max-width: 575px) {
  .a-date-picker .DayPicker-NavBar {
    top: 0.5rem;
  }
}
.a-date-picker .DayPicker-NavButton {
  position: relative;
  top: 0;
  left: 0;
  width: 40px;
  height: 40px;
  margin: 0 0.5rem;
}
@media (max-width: 767px) {
  .a-date-picker .DayPicker-NavButton {
    background-size: 15px;
    margin: 0;
  }
}
.a-date-picker .DayPicker-NavButton--prev {
  background-image: url("/wp-content/themes/pippip/dist/img/arrow-head-left.svg") !important;
}
.a-date-picker .DayPicker-NavButton--next {
  background-image: url("/wp-content/themes/pippip/dist/img/arrow-head-right.svg") !important;
}
.a-date-picker .DayPicker-Caption {
  font-family: var(--fontTitle);
  text-align: center;
  font-size: 1.5rem;
  border-bottom: 1px solid var(--c-primary);
  padding: 1rem 0;
}
@media (max-width: 575px) {
  .a-date-picker .DayPicker-Caption {
    font-size: 1rem;
    padding: 0.5rem 0;
  }
}
.a-date-picker abbr {
  font-family: var(--fontBold);
  font-size: 1rem;
  color: vaR(--c-primary);
}
.a-date-picker .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside) {
  background-color: rgba(255, 171, 186, 0.4) !important;
  color: var(--c-primary);
  transition: background var(--transition);
}
.a-date-picker .DayPicker-Day {
  border-radius: 0% !important;
}
.a-date-picker .DayPicker-Day--today {
  border: 1px solid var(--c-primary);
  color: var(--c-primary);
}
.a-date-picker .DayPicker-Day:hover {
  background-color: var(--c-pink) !important;
}
.a-date-picker .DayPicker-Day--start {
  border-top-left-radius: 10px !important;
  border-bottom-left-radius: 10px !important;
}
.a-date-picker .DayPicker-Day--end {
  border-top-right-radius: 10px !important;
  border-bottom-right-radius: 10px !important;
}
.a-date-picker .DayPicker-Day--selected:not(.DayPicker-Day--disabled):not(.DayPicker-Day--outside) {
  background-color: var(--c-pink);
  color: var(--c-primary);
  transition: background var(--transition);
}

/**
* ----------------------
* Un.titled
* Atoms - Pagination
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-pager {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  margin: 2rem 0;
}
.a-pager li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.a-pager .disabled {
  display: none;
  visibility: hidden;
}
.a-pager span,
.a-pager a {
  text-decoration: none;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0.25rem 0.5rem;
}
.a-pager span:not(.a-btn),
.a-pager a:not(.a-btn) {
  border-bottom: none;
}
.a-pager span::after,
.a-pager a::after {
  display: none;
  visibility: hidden;
}
.a-pager a:hover {
  text-decoration: underline;
}
.a-pager a:hover path {
  fill: var(--c-secondary);
}
.a-pager span,
.a-pager a.undefined {
  text-decoration: underline;
}
.a-pager svg {
  width: 25px;
  margin: 0 0.5rem;
}
.a-pager path {
  transition: fill var(--transition);
}

/**
* ----------------------
* Un.titled
* Atoms - Columns
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-cols {
  width: 100%;
  padding: 0 15px;
  width: 100%;
}
@media (min-width: 769px) {
  .a-cols {
    padding: 0 36px;
  }
}
.a-cols--xs {
  max-width: var(--cols-3);
}
.a-cols--sm {
  max-width: var(--cols-6);
}
.a-cols--md {
  max-width: var(--cols-8);
}
.a-cols--full {
  max-width: var(--containerWidth);
}
.a-cols--bgColour {
  margin: 2rem 0;
}
@media (max-width: 767px) {
  .a-cols--bgColour {
    margin: 1rem 0;
  }
}

/**
* ----------------------
* Un.titled
* Atoms - Image captions
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-caption {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 8px;
  padding-left: var(--gutter);
  background-image: url("/wp-content/themes/pippip/dist/img/arrow-head.svg");
  background-position: left 11px;
  font-size: var(--fontSmall);
}

/**
* ----------------------
* Un.titled
* Atoms - Auto grid
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-auto-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--autoGridMin, 1fr), var(--autoGridMax, 1fr)));
  gap: var(--autoGridGap, 1rem);
  align-items: start;
}

/**
* ----------------------
* Un.titled
* Atoms - Links
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-links {
  margin: 2rem 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
@media (max-width: 767px) {
  .a-links {
    margin: 1rem 0;
  }
}
.a-links a {
  margin-right: 1rem;
}

a[href] {
  text-decoration-thickness: 0.04em;
  text-underline-offset: 0.15em;
}

/**
* ----------------------
* Un.titled
* Atoms - Sidebar
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-sidebar {
  margin-bottom: 1.5rem;
  font-size: 1rem;
}
@media (max-width: 767px) {
  .a-sidebar {
    margin-bottom: 1.5rem;
  }
}
.a-sidebar--block {
  border: 1px solid var(--c-primary);
  border-left: 0;
  border-right: 0;
  padding: 1rem 0;
  margin-bottom: 1.5rem;
}
.a-sidebar .a-tag,
.a-sidebar .a-btn {
  margin-bottom: 1.5rem;
}
.a-sidebar svg {
  width: 15px;
}
@media (max-width: 991px) {
  .single-people .a-sidebar {
    order: -1;
  }
}

/**
* ----------------------
* Un.titled
* Atoms - Tags
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-tag {
  --tagBg: var(--c-primary);
  --tagColour: var(--c-white);
  display: inline-block;
  text-transform: uppercase;
  padding: 0.25rem 0.5rem;
  font-size: 90%;
  letter-spacing: 1px;
  background-color: var(--tagBg);
  color: var(--tagColour);
}
.a-tag--yel {
  --tagBg: var(--c-yellow);
  --tagColour: var(--c-primary);
}

/**
* ----------------------
* Un.titled
* Atoms - Sticky
* ----------------------
*/
/**
* Config
*/
:root {
  --stickyLeft: 0;
  --stickyWidth: 0;
  --stickyHeight: 0;
}

/**
* Styling
*/
.a-sticky[data-sticky=true] .a-btn {
  position: fixed;
  top: 0;
  left: var(--stickyLeft);
  width: var(--stickyWidth);
  z-index: 20;
  transition: none;
}
@media (max-width: 575px) {
  .a-sticky[data-sticky=true] .a-btn {
    left: 0;
    width: 100%;
  }
}
.a-sticky[data-sticky=true] .a-sticky__placeholder {
  display: block;
}
.a-sticky__placeholder {
  height: var(--stickyHeight);
  margin-bottom: 1.5rem;
  display: none;
}

/**
* ----------------------
* Un.titled
* Atoms - Event cancelled message
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-cancelled {
  width: 100%;
  padding: 0.75rem;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  background-color: var(--c-yellow);
  color: var(--c-primary);
}
.a-cancelled p {
  max-width: var(--containerWidth);
}

/**
* ----------------------
* Un.titled
* Atoms - Skip link
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-skip-link {
  font-family: var(--fontBold);
  position: absolute;
  transform: translateY(-100%);
  width: 100%;
  background-color: var(--c-primary);
  color: var(--c-white);
  text-align: center;
  padding: 0.5rem;
  z-index: 10;
  border: 0;
  outline: 0;
}
.a-skip-link:focus, .a-skip-link:active {
  transform: translateY(0);
  color: var(--c-white);
}

/**
* ----------------------
* Un.titled
* Atoms - Listing
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-listing {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}
@media (max-width: 1199px) {
  .a-listing {
    gap: 1rem;
  }
}
@media (max-width: 768px) {
  .a-listing {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 575px) {
  .a-listing {
    align-items: start;
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}

/**
* ----------------------
* Un.titled
* Atoms - Citations
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-cite {
  position: relative;
}
.a-cite a:not(.a-btn) {
  border-bottom: none;
}
.a-cite a::after {
  display: none;
  visibility: hidden;
}
.a-cite__number {
  font-size: var(--fontSmall);
  vertical-align: top;
  transition: color var(--transition);
}
.a-cite__description {
  display: none;
  visibility: hidden;
  position: absolute;
  padding: 0.5rem;
  background-color: var(--c-white);
  top: 100%;
  left: 0;
  max-width: 230px;
  font-size: var(--fontSmall);
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}
.a-cite:focus .a-cite__number, .a-cite:hover .a-cite__number {
  color: var(--c-red);
}
.a-cite:focus .a-cite__description, .a-cite:hover .a-cite__description {
  display: block;
  visibility: visible;
}

/**
* ----------------------
* Un.titled
* Atoms - Back to top
* ----------------------
*/
/**
* Styling
*/
.a-back-top {
  position: sticky;
  left: calc(100% - 6rem);
  bottom: 3rem;
  margin-bottom: -30px;
  height: 60px;
  width: 60px;
  background-color: var(--c-white);
  border-radius: 50%;
  box-shadow: 0 16px 72px rgba(0, 0, 0, 0.5333333333);
  z-index: 2;
  display: flex;
  justify-content: center;
  align-items: center;
  visibility: hidden;
}
.a-back-top:not(.a-btn) {
  border-bottom: none;
}
.a-back-top::after {
  display: none;
  visibility: hidden;
}
@media (max-width: 1199px) {
  .a-back-top {
    left: calc(100% - 4rem);
    bottom: 1rem;
  }
}
@media (max-width: 767px) {
  .a-back-top {
    height: 40px;
    width: 40px;
    margin-bottom: -20px;
  }
}
.a-back-top[data-visible=true] {
  display: flex;
  animation: fadeIn 0.2s ease-in-out forwards;
}
.a-back-top[data-visible=false] {
  display: flex;
  visibility: visible;
  animation: fadeOut 0.2s ease-in-out forwards;
}
.a-back-top:hover {
  transform: translateY(-10px);
}
@media (max-width: 767px) {
  .a-back-top:hover {
    transform: translateY(-5px);
  }
}
.a-back-top svg {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  max-height: 30px;
}
@media (max-width: 767px) {
  .a-back-top svg {
    max-height: 20px;
  }
}

/**
 * ----------------------
 * Un.titled
 * Atoms - Grid
 * ----------------------
 */
/**
 * Styling
 */
.a-grid {
  display: grid;
  gap: var(--autoGridGap, 1rem);
  align-items: start;
}
.a-grid--1 {
  grid-template-columns: 1fr;
}
.a-grid--2 {
  grid-template-columns: 1fr 1fr;
}
@media (max-width: 767px) {
  .a-grid--2 {
    grid-template-columns: 1fr;
  }
}
.a-grid--3 {
  grid-template-columns: 1fr 1fr 1fr;
}
@media (max-width: 767px) {
  .a-grid--3 {
    grid-template-columns: 1fr;
  }
}
.a-grid--4 {
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-auto-rows: 1fr;
}
@media (max-width: 991px) {
  .a-grid--4 {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 575px) {
  .a-grid--4 {
    grid-template-columns: 1fr;
  }
}

/**
 * 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 {
  width: 100%;
  padding: 0.25rem 1rem;
  display: none;
  visibility: hidden;
  text-align: center;
  min-height: 52px;
  position: relative;
  align-items: center;
}
.m-emmsg.primary {
  background-color: var(--c-yellow);
  color: var(--c-primary);
}
.m-emmsg.secondary {
  background-color: var(--c-primary);
  color: #fff;
}
@media (max-width: 767px) {
  .m-emmsg {
    text-align: left;
    padding: 1rem 0;
  }
}
@media (max-width: 575px) {
  .m-emmsg {
    padding: 1rem 0;
  }
}
.m-emmsg[data-state=visible] {
  display: flex;
  visibility: visible;
}
.m-emmsg h3 {
  margin-bottom: 0.5rem;
  width: 85%;
}
.m-emmsg p {
  width: 85%;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 767px) {
  .m-emmsg p {
    margin-left: 0;
  }
}
@media (max-width: 359px) {
  .m-emmsg p {
    max-width: 80%;
  }
}
.m-emmsg p a:hover, .m-emmsg p a:focus {
  text-decoration: underline;
}
.m-emmsg button {
  background-color: transparent;
  border: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding: 0;
  position: absolute;
  top: 0.25rem;
  right: 2rem;
  height: 42px;
  width: 42px;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: all var(--transition);
  background-color: var(--c-white);
  border-radius: 50%;
}
@media (max-width: 767px) {
  .m-emmsg button {
    right: 1rem;
  }
}
@media (max-width: 575px) {
  .m-emmsg button {
    right: 15px;
  }
}
.m-emmsg button svg {
  width: 15px;
}
.m-emmsg button path {
  stroke: var(--c-primary);
  transition: stroke var(--transition);
}
.m-emmsg button:hover {
  background-color: var(--c-primary);
}
.m-emmsg button:hover path {
  stroke: var(--c-white);
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Entities
 * ----------------------
 */
article > .m-entity:last-of-type.bgColour {
  margin-bottom: -30px;
}
@media (max-width: 767px) {
  article > .m-entity:last-of-type.bgColour {
    margin-bottom: -20px;
  }
}
article > .m-entity.bgColour {
  position: relative;
  isolation: isolate;
}
article > .m-entity.bgColour::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  margin-left: -50vw;
  background-color: inherit;
  z-index: -1;
}

.m-entity {
  margin: 0 0 36px;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: var(--containerWidth);
  /**
   * ----------------------
   * Un.titled
   * Molecules - Intro
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Image
   * ----------------------
   */
  /**
   * ----------------------
   * 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 - Tables
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Flexible signpost
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - signposts
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Linked logos
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Video
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - YMAL
   * ----------------------
   */
  /**
   * ----------------------
   * Substrakt
   * Molecules - CTA
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Big CTA
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - News tags
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Quick links
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Special Options
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - People profiles
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Listing
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Mini listing
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Enhanced Event listing
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Featured content
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Citations
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Image Zoom
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Forms
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Search results
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Divider
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Buy Now Button
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - CTA Multiple
   * ----------------------
   */
}
.m-entity img:not(.restricted-height) {
  width: 100%;
  height: auto;
  display: block;
}
.m-entity--top {
  margin-top: clamp(2rem, 5vw, 5rem);
}
.m-entity__body ul, .m-entity__text ul, .m-entity__accordion ul {
  margin-left: var(--gutter);
}
.m-entity__body ul li, .m-entity__text ul li, .m-entity__accordion ul li {
  list-style: none;
  position: relative;
  margin-bottom: 10px;
}
.m-entity__body ul li::before, .m-entity__text ul li::before, .m-entity__accordion ul li::before {
  content: "";
  border-radius: 50%;
  height: 7px;
  width: 7px;
  display: block;
  position: absolute;
  left: -15px;
  top: 0.5rem;
  background-color: currentColor;
}
.m-entity.m-entity__columnsx2 > .a-cols {
  padding: 0;
}
@media (min-width: 769px) {
  .m-entity.m-entity__columnsx2 > .a-cols {
    display: flex;
  }
}
.m-entity.m-entity__columnsx2 > .a-cols:has(.m-entity__image) .m-entity {
  align-items: center;
  height: 100%;
}
.m-entity.m-entity__columnsx2.bgColour > .a-cols {
  margin: 1rem 0;
}
@media (min-width: 769px) {
  .m-entity.m-entity__columnsx2.bgColour > .a-cols {
    margin: 2rem 0;
  }
}
.m-entity.m-entity__columnsx2 .m-textx2 .m-textx2__copy-left,
.m-entity.m-entity__columnsx2 .m-textx2 .m-textx2__copy-right {
  width: 100%;
}
.m-entity.m-entity__columnsx2 .m-textx2 .m-textx2__copy-left .m-entity,
.m-entity.m-entity__columnsx2 .m-textx2 .m-textx2__copy-right .m-entity {
  height: 100%;
}
@media (min-width: 769px) {
  .m-entity.m-entity__columnsx2 .m-textx2 .m-textx2__copy-left .m-entity,
  .m-entity.m-entity__columnsx2 .m-textx2 .m-textx2__copy-right .m-entity {
    margin-bottom: 0;
  }
}
.m-entity.m-entity__columnsx2 .m-textx2 .m-textx2__copy-left .m-entity .a-cols,
.m-entity.m-entity__columnsx2 .m-textx2 .m-textx2__copy-right .m-entity .a-cols {
  max-width: var(--cols-6);
}
.m-entity.m-entity__columnsx2 .m-textx2 .m-textx2__copy-right .m-entity {
  margin-bottom: 0;
}
.m-entity__intro {
  align-items: flex-start;
}
.m-entity__intro-block_image {
  align-items: center;
}
.m-entity__image {
  position: relative;
  padding: 0 15px 0 15px;
}
@media (min-width: 769px) {
  .m-entity__image {
    padding: 0 36px 0 36px;
  }
}
.m-entity__image figcaption {
  width: var(--captionWidth);
  padding-right: var(--captionPadding);
  max-width: calc(100% - 30px);
}
.m-entity__image a:not(.a-btn) {
  border-bottom: none;
}
.m-entity__image a::after {
  display: none;
  visibility: hidden;
}
.m-entity__quote {
  --starSize: 17px;
}
.m-entity__quote .short-quote {
  --starSize: 24px;
  display: flex;
  flex-direction: column;
}
.m-entity__quote blockquote {
  margin: 0 0 1rem;
}
.m-entity__quote cite {
  font-style: normal;
}
.m-entity__quote .rating {
  display: inline-flex;
  margin-right: 0.5rem;
  margin-bottom: 1rem;
}
.short-quote .m-entity__quote .rating {
  margin-bottom: 2rem;
}
.m-entity__quote .rating__star {
  width: var(--starSize);
  height: var(--starSize);
  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 .accordion {
  border-bottom: 1px solid var(--c-primary);
}
.m-entity__accordion .accordion__header {
  display: flex;
  width: 100%;
  border: 0;
  background-color: transparent;
  -moz-text-align-last: left;
       text-align-last: left;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 0.5rem;
  border-top: 1px solid var(--c-primary);
  transition: all var(--transition);
  text-align: left;
  font-size: 1.125rem;
}
.m-entity__accordion .accordion__header:not(.a-btn) {
  border-bottom: none;
}
.m-entity__accordion .accordion__header::after {
  display: none;
  visibility: hidden;
}
.m-entity__accordion .accordion__header::after {
  content: "";
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url("/wp-content/themes/pippip/dist/img/plus.svg");
  height: 12px;
  width: 12px;
  min-width: 12px;
  transition: all var(--transition);
  visibility: visible;
  display: block;
  margin-left: 10px;
}
.m-entity__accordion .accordion__header:hover {
  background-color: rgba(0, 0, 0, 0.1);
}
.m-entity__accordion .accordion__header:focus, .m-entity__accordion .accordion__header[aria-expanded=true] {
  outline: none;
  background-color: rgba(0, 0, 0, 0.2);
}
.m-entity__accordion .accordion__header:focus::after, .m-entity__accordion .accordion__header[aria-expanded=true]::after {
  transform: translateX(-10px);
}
.m-entity__accordion .accordion__header[aria-expanded=true]::after {
  transform: translateX(-10px);
  background-image: url("/wp-content/themes/pippip/dist/img/close-accordion.svg");
}
.m-entity__accordion .accordion__title {
  margin: 0;
}
.m-entity__accordion .accordion__title:before {
  display: none;
}
.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: 1000em;
  visibility: visible;
  transition-delay: 0s;
  padding-left: 15px;
  margin-top: 1rem;
}
.m-entity__accordion .accordion__panel[aria-hidden=true] {
  display: block;
  max-height: 0;
  opacity: 0;
  visibility: hidden;
  transition-delay: 0.2s, 0s, 0s;
  margin-top: 0;
}
.m-entity__accordion .accordion__panel p:last-child {
  margin-bottom: 1rem;
}
.m-entity__gallery {
  --autoGridMin: 20%;
  --autoGridGap: 2rem;
}
@media (max-width: 991px) {
  .m-entity__gallery {
    --autoGridMin: 40%;
    --autoGridGap: 1rem;
  }
}
@media (max-width: 499px) {
  .m-entity__gallery {
    --autoGridMin: 100%;
  }
}
.m-entity__gallery a {
  position: relative;
  display: flex;
  align-items: flex-end;
  z-index: 1;
}
.m-entity__gallery a:not(.a-btn) {
  border-bottom: none;
}
.m-entity__gallery a::after {
  display: none;
  visibility: hidden;
}
.m-entity__gallery a:hover {
  z-index: 2;
}
.m-entity__gallery .a-auto-grid {
  align-items: end;
}
.m-entity__gallery figure {
  width: 100%;
}
.m-entity__gallery .a-image-caption {
  display: none;
}
@media (max-width: 991px) {
  .m-entity__gallery .a-image-caption {
    display: block;
    font-size: var(--fontSmall);
  }
}
.m-entity__gallery .a-image-credit {
  display: flex;
}
@media (max-width: 991px) {
  .m-entity__gallery .a-image-credit {
    display: none;
  }
}
.m-entity__gallery .a-image-credit__copy {
  max-width: 20em;
}
.m-entity .m-imagetext {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 2rem;
}
@media (max-width: 575px) {
  .m-entity .m-imagetext {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}
.m-entity .m-imagetext--reverse {
  grid-template-columns: 2fr 1fr;
}
@media (max-width: 575px) {
  .m-entity .m-imagetext--reverse {
    grid-template-columns: 1fr;
  }
}
.m-entity .m-imagetext--reverse .m-imagetext__copy {
  order: -1;
}
@media (max-width: 575px) {
  .m-entity .m-imagetext--reverse .m-imagetext__copy {
    order: 1;
  }
}
.m-entity__downloads a {
  margin-bottom: 1rem;
  justify-content: space-between;
}
.m-entity__downloads a:focus svg, .m-entity__downloads a:hover svg {
  transform: translateY(5px);
}
.m-entity__downloads a:last-of-type {
  margin-bottom: 0;
}
.m-entity__downloads a svg {
  height: 1em;
  width: 2em;
}
.m-entity__downloads .m-btn-container {
  margin-bottom: 1rem;
  display: inline-flex;
}
@media (min-width: 769px) {
  .m-entity__downloads .m-btn-downloads {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem 1rem;
  }
}
@media (min-width: 993px) {
  .m-entity__downloads .m-btn-downloads {
    grid-template-columns: repeat(3, 1fr);
  }
}
.m-entity__downloads .m-btn-downloads--columns {
  display: flex;
  flex-direction: column;
}
.m-entity__downloads--singular .m-btn-container {
  display: flex;
}
.m-entity__embed iframe {
  width: 100%;
}
.m-entity__table table {
  width: 100%;
  -moz-text-align-last: left;
       text-align-last: left;
  text-align: left;
  border-spacing: 2px;
  border-collapse: unset;
}
.m-entity__table table th {
  font-weight: bold;
}
.m-entity__table table td,
.m-entity__table table th {
  padding: 0.5rem;
}
.m-entity__table table thead th {
  background-color: #000;
  color: #fff;
}
.m-entity__table table tbody th, .m-entity__table table tbody td {
  border-bottom: 1px solid #000;
}
.m-entity__table table tr:hover td {
  cursor: crosshair;
}
.m-entity__signpost:last-of-type {
  margin-bottom: 0;
}
.m-entity__signpost .signpost {
  max-width: var(--containerWidth);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3rem;
  align-items: start;
}
@media (max-width: 1199px) {
  .m-entity__signpost .signpost {
    gap: 2rem;
    margin-left: 1rem auto;
  }
}
@media (max-width: 767px) {
  .m-entity__signpost .signpost {
    grid-template-columns: 1fr;
    margin: 0;
  }
}
.m-entity__signpost .signpost__image:not(.a-btn) {
  border-bottom: none;
}
.m-entity__signpost .signpost__image::after {
  display: none;
  visibility: hidden;
}
.m-entity__signpost .signpost__image img {
  transition: opacity var(--transition);
}
.m-entity__signpost .signpost__image:hover {
  opacity: 1;
}
.m-entity__signpost .signpost__image:hover img {
  opacity: 0.85;
}
.m-entity__signpost .signpost__image figure {
  position: relative;
}
.m-entity__signpost .signpost__content {
  display: grid;
  gap: 1.5rem;
  justify-items: start;
}
.m-entity__signpost .signpost__content h2,
.m-entity__signpost .signpost__content .a-links {
  margin: 0;
}
.m-entity__signpost .signpost__content p {
  max-width: var(--lineLength);
  margin: 0;
}
.m-entity__signpost .signpost__links {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}
.m-entity__signposts {
  --autoGridMin: 20%;
  --autoGridGap: 2rem;
}
.m-entity__signposts p:last-of-type {
  margin-bottom: 1rem;
}
.m-entity__signposts .a-auto-grid {
  margin-top: 2rem;
}
@media (max-width: 768px) {
  .m-entity__signposts {
    --autoGridMin: 30%;
    --autoGridGap: 1rem;
  }
}
@media (max-width: 575px) {
  .m-entity__signposts {
    --autoGridMin: 48%;
  }
}
.m-entity__externalsignposts .o-teaser__thumb {
  overflow: hidden;
}
.m-entity__linkedlogos {
  --autoGridMin: 100px;
  --autoGridMax: 30%;
  --autoGridGap: 2rem;
}
@media (max-width: 575px) {
  .m-entity__linkedlogos {
    --autoGridMax: 1fr;
  }
}
.m-entity__linkedlogos a:not(.a-btn) {
  border-bottom: none;
}
.m-entity__linkedlogos a::after {
  display: none;
  visibility: hidden;
}
.m-entity__linkedlogos a:hover {
  opacity: 0.7;
}
.m-entity__linkedlogos .a-auto-grid {
  align-items: end;
  justify-content: start;
}
.m-entity__linkedlogos .single img {
  width: auto;
  height: auto;
  max-width: 100%;
}
.m-entity__video {
  --autoGridGap: 2rem;
}
@media (min-width: 361px) {
  .m-entity__video {
    --autoGridMin: 230px;
  }
}
.m-entity__ymal {
  background-color: var(--c-white);
}
.m-entity__ymal:last-of-type {
  margin-bottom: 0;
}
.m-entity__cta__container {
  display: flex;
  justify-content: center;
}
.m-entity__bigcta .a-links a {
  margin: 0 0.5rem;
}
.m-entity__bigcta .h2 p {
  line-height: 1.3;
}
.m-entity__bigcta .big-btn {
  display: inline-flex;
  gap: 1rem;
  padding: 1rem 1.5rem;
  text-decoration: none;
  background: var(--c-grey);
  border: 1px solid var(--c-primary) !important;
}
.m-entity__bigcta .big-btn:not(.a-btn) {
  border-bottom: none;
}
.m-entity__bigcta .big-btn::after {
  display: none;
  visibility: hidden;
}
@media (max-width: 767px) {
  .m-entity__bigcta .big-btn {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
}
.m-entity__bigcta .big-btn svg {
  width: 1em;
}
.m-entity__bigcta .big-btn svg path {
  fill: currentColor;
}
.m-entity__bigcta .big-btn:hover {
  opacity: 0.7;
}
.m-entity__readmore .terms {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.m-entity__readmore .terms a {
  margin-right: 1rem;
}
.m-entity__quicklinks {
  margin-top: -5rem;
  position: relative;
  align-items: center;
}
@media (max-width: 1199px) {
  .m-entity__quicklinks {
    margin-top: -3rem;
  }
}
@media (max-width: 991px) {
  .m-entity__quicklinks {
    margin-top: -2rem;
  }
}
.m-entity__quicklinks .a-cols {
  background-color: var(--c-white);
  padding-top: 1.25rem;
  padding-bottom: 1.8rem;
}
.m-entity__quicklinks .a-links {
  margin: 0;
  justify-content: center;
}
.m-entity__quicklinks h2 {
  text-align: center;
  -moz-text-align-last: center;
  text-align-last: center;
}
.m-entity__special-options hr {
  margin-bottom: 3rem;
}
@media (max-width: 767px) {
  .m-entity__special-options hr {
    margin-bottom: 1.5rem;
  }
}
.m-entity__special-options .a-auto-grid {
  --autoGridMin: 23%;
  --autoGridMax: 1fr;
  --autoGridGap: 2rem;
  margin-top: 3rem;
}
@media (max-width: 767px) {
  .m-entity__special-options .a-auto-grid {
    --autoGridMin: 200px;
    --autoGridMax: 1fr;
    margin-top: 1.5rem;
  }
}
@media (max-width: 575px) {
  .m-entity__special-options .a-auto-grid {
    --autoGridMin: 150px;
  }
}
.m-entity__peopleprofiles .title {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.m-entity__peopleprofiles .title--border {
  border-bottom: 1px solid var(--c-primary);
}
.m-entity__peopleprofiles .title a {
  border-bottom-color: var(--c-teal);
}
.m-entity__peopleprofiles .title a:hover::after {
  background-color: var(--c-teal);
}
.m-entity__listing .whats-on {
  min-height: 60vh;
  width: 100%;
}
.m-entity__minilisting .a-auto-grid {
  --autoGridMin: 20%;
  --autoGridGap: 2rem;
}
.m-entity__minilisting .a-auto-grid--columns__2 {
  --autoGridMin: 45%;
}
.m-entity__minilisting .a-auto-grid--columns__3 {
  --autoGridMin: 30%;
}
.m-entity__minilisting .a-auto-grid--columns__4 {
  --autoGridMin: 20%;
}
.m-entity__minilisting .a-auto-grid--columns__5 {
  --autoGridMin: 15%;
}
@media (max-width: 991px) {
  .m-entity__minilisting .a-auto-grid {
    --autoGridMin: 30%;
    --autoGridGap: 1rem;
  }
}
@media (max-width: 768px) {
  .m-entity__minilisting .a-auto-grid {
    --autoGridMin: 48%;
  }
}
.m-entity__minilisting .listing-header {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  border-bottom: 1px solid var(--c-primary);
  padding-bottom: 2rem;
  margin-bottom: 2rem;
}
@media (max-width: 991px) {
  .m-entity__minilisting .listing-header {
    grid-template-columns: 1fr;
  }
}
.m-entity__minilisting .listing-header a {
  align-self: end;
  justify-self: end;
}
.m-entity__minilisting .listing-header a.more-link {
  margin-bottom: 1rem;
}
.m-entity__carousel {
  background: var(--c-white);
}
.m-entity__carousel .listing-header {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  align-items: flex-end;
  padding-bottom: 2rem;
  margin-bottom: 2rem;
}
@media (max-width: 991px) {
  .m-entity__carousel .listing-header {
    grid-template-columns: 1fr;
  }
}
.m-entity__carousel .listing-header .carousel-nav {
  justify-self: end;
}
.m-entity__carousel .listing-header .carousel-nav a {
  text-decoration: none;
}
.m-entity__carousel .listing-header .carousel-prev svg, .m-entity__carousel .listing-header .carousel-next svg {
  height: 1rem;
}
.m-entity__carousel .glide__slide .o-carousel-teaser a {
  text-decoration: none;
}
.m-entity__carousel .glide__slide .o-carousel-teaser__content {
  width: 100%;
}
.m-entity__carousel .glide__slide .o-carousel-teaser__content .o-teaser__title {
  margin-bottom: 0.5rem;
}
.m-entity__carousel .glide__slide .o-carousel-teaser__content .o-teaser__title {
  font-size: 18px;
  font-size: 1rem;
  line-height: 1.3;
}
@media screen and (min-width: 1600px) {
  .m-entity__carousel .glide__slide .o-carousel-teaser__content .o-teaser__title {
    font-size: 24px;
    font-size: 1.3333333333rem;
    line-height: 1.3;
  }
}
@media screen and (min-width: 768px) and (max-width: 1600px) {
  .m-entity__carousel .glide__slide .o-carousel-teaser__content .o-teaser__title {
    font-size: calc(1rem + 0.3333333333 * (100vw - 42.6666666667rem) / 46.2222222222);
  }
}
.m-entity__carousel .glide__slide .o-carousel-teaser img {
  pointer-events: none;
  margin-bottom: 0.5rem;
}
.m-entity__carousel .glide__slide .o-carousel-teaser h3 {
  margin-bottom: 0.5rem;
}
.m-entity__enhancedeventlisting {
  --autoGridMin: 20%;
  --autoGridGap: 2rem;
}
@media (max-width: 991px) {
  .m-entity__enhancedeventlisting {
    --autoGridMin: 30%;
    --autoGridGap: 1rem;
  }
}
@media (max-width: 768px) {
  .m-entity__enhancedeventlisting {
    --autoGridMin: 48%;
  }
}
.m-entity__enhancedeventlisting .listing-header {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  align-items: flex-end;
  border-bottom: 1px solid var(--c-primary);
  padding-bottom: 2rem;
  margin-bottom: 2rem;
}
@media (max-width: 991px) {
  .m-entity__enhancedeventlisting .listing-header {
    grid-template-columns: 1fr;
  }
}
.m-entity__enhancedeventlisting .listing-header a {
  align-self: end;
  justify-self: end;
}
.m-entity__featuredcontent {
  background-color: var(--c-primary);
}
.m-entity__featuredcontent .featured {
  width: 100%;
}
@media (max-width: 767px) {
  .m-entity__featuredcontent .featured {
    padding: 1rem 0;
  }
}
.m-entity__featuredcontent .featured--multi {
  padding: 2rem 0;
}
@media (max-width: 767px) {
  .m-entity__featuredcontent .featured--multi {
    padding: 1rem 0;
  }
}
.m-entity__featuredcontent .a-auto-grid {
  --autoGridGap: 2rem;
  --autoGridMin: 225px;
}
@media (max-width: 767px) {
  .m-entity__featuredcontent .a-auto-grid {
    --autoGridMin: 1fr;
  }
}
.m-entity__citations {
  display: none;
  visibility: hidden;
}
.m-entity__citations.is-active {
  display: block;
  visibility: visible;
}
.m-entity__citations cite {
  font-style: normal;
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 0.5rem;
  align-items: start;
  margin-bottom: 2rem;
}
@media (max-width: 575px) {
  .m-entity__citations cite {
    margin-bottom: 1rem;
  }
}
.m-entity__citations cite a:not(.a-btn) {
  border-bottom: none;
}
.m-entity__citations cite a::after {
  display: none;
  visibility: hidden;
}
.m-entity__citations cite a:hover {
  color: var(--c-red);
}
.m-entity__citations cite p a {
  text-decoration: underline;
}
.m-entity__citations cite p a:hover {
  text-decoration: none;
}
.m-entity__imagezoom .deepzoomContainer {
  background-color: var(--c-white);
}
.m-entity__imagezoom .navigator {
  background-color: rgba(255, 255, 255, 0.8) !important;
  border-color: var(--c-primary) !important;
  margin: 0 10px 0 0 !important;
}
.m-entity__form .gform_wrapper ul li.gfield {
  margin-top: 1.5rem;
}
.m-entity__form .gform_wrapper select,
.m-entity__form .gform_wrapper input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]) {
  padding: 0.75rem 1rem;
}
@media (max-width: 767px) {
  .m-entity__form .gform_wrapper select,
  .m-entity__form .gform_wrapper input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]) {
    padding: 0.5rem 0.75rem;
  }
}
.m-entity__form .gform_wrapper .field_sublabel_above .ginput_complex.ginput_container label,
.m-entity__form .gform_wrapper .field_sublabel_above div[class*=gfield_date_].ginput_container label,
.m-entity__form .gform_wrapper .field_sublabel_above div[class*=gfield_time_].ginput_container label,
.m-entity__form .gform_wrapper .field_sublabel_below .ginput_complex.ginput_container label,
.m-entity__form .gform_wrapper .field_sublabel_below div[class*=gfield_date_].ginput_container label,
.m-entity__form .gform_wrapper .field_sublabel_below div[class*=gfield_time_].ginput_container label {
  font-size: var(--fontSmall);
  letter-spacing: 0;
  margin-top: 0.25rem;
}
.m-entity__form .gform_wrapper ul.gfield_checkbox li input[type=checkbox],
.m-entity__form .gform_wrapper ul.gfield_radio li input[type=radio] {
  height: 25px !important;
  width: 25px !important;
  padding: 0 !important;
  margin-right: 0.25rem;
}
.m-entity__form .gform_wrapper .gform_button {
  --btnBg: var(--c-primary);
  --btnColour: var(--c-white);
  cursor: pointer;
  padding: 0.75rem 1rem;
  display: inline-flex;
  gap: 10px;
  justify-content: center;
  align-items: center;
  background-color: var(--btnBg);
  color: var(--btnColour);
  border: 1px solid var(--btnBg);
  transition: all var(--transition);
  text-decoration: none;
}
.m-entity__form .gform_wrapper .gform_button:not(.a-btn) {
  border-bottom: none;
}
.m-entity__form .gform_wrapper .gform_button::after {
  display: none;
  visibility: hidden;
}
.m-entity__form .gform_wrapper .gform_button:has(svg) {
  flex-wrap: nowrap;
}
.m-entity__form .gform_wrapper .gform_button svg {
  transition: transform var(--transition);
  min-width: 1rem;
  width: 1rem;
  height: 1rem;
}
.m-entity__form .gform_wrapper .gform_button path {
  fill: currentColor;
}
.m-entity__form .gform_wrapper .gform_button:hover {
  text-decoration: none;
  color: var(--btnColour);
  --btnColour: var(--c-primary);
  --btnBg: var(--c-white);
}
.m-entity__form .gform_wrapper .gform_button:hover svg {
  transform: translateX(5px);
}
.m-entity .gfield_time_hour,
.m-entity .gfield_time_minute {
  max-width: 100px !important;
}
.m-entity .gfield_time_hour input,
.m-entity .gfield_time_minute input {
  max-width: 100px !important;
}
.m-entity__search-results .a-listing {
  align-items: start;
}
.m-entity__buynowbutton .product-ids {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 20px;
}
@media (max-width: 767px) {
  .m-entity__buynowbutton .product-ids {
    grid-template-columns: 1fr;
  }
}
.m-entity__buynowbutton .product-ids--item {
  background: #fff;
  padding: 15px;
  display: grid;
  align-items: flex-end;
}
.m-entity__buynowbutton .product-ids--item:empty {
  display: none;
}
.m-entity__buynowbutton .product-ids--item h2 {
  margin-top: 10px;
}
.m-entity__buynowbutton .product-ids--item .shopify-buy__product__variant-selectors {
  display: none;
}
.m-entity__buynowbutton .product-ids--item .shopify-buy__option-select-wrapper svg {
  display: none;
}
.m-entity__buynowbutton .see-collection {
  text-align: center;
  margin-top: 10px;
}
.m-entity__buynowbutton .see-collection a {
  --btnBg: var(--c-primary);
  --btnColour: var(--c-white);
  cursor: pointer;
  padding: 0.75rem 1rem;
  display: inline-flex;
  gap: 10px;
  justify-content: center;
  align-items: center;
  background-color: var(--btnBg);
  color: var(--btnColour);
  border: 1px solid var(--btnBg);
  transition: all var(--transition);
  text-decoration: none;
}
.m-entity__buynowbutton .see-collection a:not(.a-btn) {
  border-bottom: none;
}
.m-entity__buynowbutton .see-collection a::after {
  display: none;
  visibility: hidden;
}
.m-entity__buynowbutton .see-collection a:has(svg) {
  flex-wrap: nowrap;
}
.m-entity__buynowbutton .see-collection a svg {
  transition: transform var(--transition);
  min-width: 1rem;
  width: 1rem;
  height: 1rem;
}
.m-entity__buynowbutton .see-collection a path {
  fill: currentColor;
}
.m-entity__buynowbutton .see-collection a:hover {
  text-decoration: none;
  color: var(--btnColour);
}
.m-entity__buynowbutton .see-collection a:hover svg {
  transform: translateX(5px);
}
.m-entity__ctamultiple {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 40px;
}
@media (max-width: 767px) {
  .m-entity__ctamultiple {
    grid-template-columns: 1fr;
  }
}
.m-entity__primosearch .m-search-form {
  padding: 0 15px;
}
@media (min-width: 769px) {
  .m-entity__primosearch .m-search-form {
    padding: 0 36px;
  }
}
@media (max-width: 767px) {
  .m-entity__primosearch .m-search-form {
    overflow: visible;
  }
}
.acf-block-body .m-entity__primosearch .m-search-form {
  background-color: transparent;
}
.m-entity .c-link-block {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.m-entity .c-link-block .c-link-block__item {
  box-sizing: border-box;
  width: 100%;
}
@media (min-width: 769px) {
  .m-entity .c-link-block .c-link-block__item {
    width: calc(25% - 0.75rem);
  }
}
.m-entity .c-link-block .c-link-block__link {
  justify-content: space-between;
  font-weight: 500;
  text-wrap: auto;
}
.m-entity .c-link-block .a-caption {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  white-space: nowrap !important;
  width: 1px !important;
}
.m-entity .c-link-block:has(figure) figure img {
  aspect-ratio: 16/10;
  width: 100%;
  max-height: unset;
  -o-object-fit: cover;
     object-fit: cover;
}
.m-entity .c-link-block:has(figure) .c-link-block__link {
  border: none;
  padding-left: 0;
  justify-content: flex-start;
}
@media (min-width: 769px) {
  .m-entity.c-cols-33 .c-link-block .c-link-block__item {
    width: calc(33.3333% - 0.6666rem);
  }
}
.m-entity.c-cols-50 .c-link-block .c-link-block__item {
  width: calc(50% - 0.5rem);
}

.m-entity.bgColour:has(+ .m-entity.bgColour) {
  margin-bottom: 0;
}

/**
 * ----------------------
 * 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: 0.75rem 1rem;
  -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;
}

.gform_wrapper:not(.gform_legacy_markup_wrapper) .gfield {
  margin-top: 1.5rem;
}
.gform_wrapper:not(.gform_legacy_markup_wrapper) .gfield_label {
  font-size: unset;
  line-height: 1.3;
}
.gform_wrapper:not(.gform_legacy_markup_wrapper) .gfield_checkbox label,
.gform_wrapper:not(.gform_legacy_markup_wrapper) .gfield_radio label {
  font-size: unset;
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Main nav
 * ----------------------
 */
.m-nav {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 5vw;
}
@media (max-width: 991px) {
  .m-nav {
    grid-template-columns: 1fr;
    gap: 0;
    padding-top: 2rem;
  }
}
.m-nav__cols {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3rem;
}
@media (max-width: 991px) {
  .m-nav__cols {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0 5vw;
  }
}
@media (max-width: 767px) {
  .m-nav__cols {
    width: 100%;
    max-width: 300px;
    justify-self: center;
  }
  .m-nav__cols:first-of-type {
    padding-bottom: 3rem;
  }
  .m-nav__cols:last-of-type {
    margin-top: 1rem;
  }
}
@media (max-width: 359px) {
  .m-nav__cols {
    padding: 0 5vw;
  }
}
.m-nav__cols .column {
  display: grid;
  gap: 3rem;
  align-items: start;
}
@media (max-width: 991px) {
  .m-nav__cols .column {
    gap: 0;
  }
}
@media (max-width: 767px) {
  .m-nav__cols .column {
    margin: 0 auto;
    width: 100%;
  }
}
@media (max-width: 991px) {
  .m-nav__info .m-nav__social,
  .m-nav__info h3,
  .m-nav__info p {
    display: none;
    visibility: hidden;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .m-nav__info {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 991px) {
  .m-nav__menu {
    order: -1;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}
@media (max-width: 767px) {
  .m-nav__menu {
    grid-template-columns: 1fr;
    gap: 0;
    justify-content: center;
  }
}
@media (max-width: 767px) {
  .m-nav__menu .primary {
    order: 2;
  }
}
.m-nav__menu .primary a {
  color: var(--c-grey);
}
.m-nav__menu .primary a:hover {
  color: var(--c-secondary);
}
.m-nav__menu a:hover {
  color: var(--c-secondary);
}
.m-nav h3 {
  font-family: var(--fontBody);
}
.m-nav a:not(.a-btn) {
  text-decoration: none;
}
.m-nav a:not(.a-btn):not(.a-btn) {
  border-bottom: none;
}
.m-nav a:not(.a-btn)::after {
  display: none;
  visibility: hidden;
}
.m-nav .a-btn {
  margin-top: 1.5rem;
  max-width: 300px;
}
@media (max-width: 991px) {
  .m-nav .a-btn {
    max-width: 35vw;
  }
}
@media (max-width: 767px) {
  .m-nav .a-btn {
    max-width: 250px;
  }
}
@media (max-width: 575px) {
  .m-nav .a-btn {
    margin-top: 1rem;
  }
}
.m-nav nav {
  font-family: var(--fontTitle);
  font-size: clamp(1.5rem, 4vw, 2rem);
  line-height: 1;
  display: flex;
  flex-direction: column;
}
@media (max-width: 1199px) {
  .m-nav nav {
    font-size: clamp(1.5rem, 4vw, 2rem);
  }
}
@media (max-width: 767px) {
  .m-nav nav {
    width: 100%;
    margin: 0 auto;
  }
}
.m-nav nav a {
  margin-bottom: 1rem;
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Banner
 * ----------------------
 */
.m-no-banner {
  width: 100%;
  padding: 4rem 0 5rem;
}
@media (max-width: 767px) {
  .m-no-banner {
    padding: 3rem 0 4rem;
  }
}
.m-no-banner--news {
  padding-bottom: 0;
}
.m-no-banner--page h1 {
  margin-bottom: 0;
}
.m-no-banner p {
  font-size: 110%;
}
.m-no-banner .pre-title {
  margin-bottom: 0.5rem;
}

.m-banner {
  position: relative;
  margin: 0 0 clamp(1.5rem, 4vw, 3rem);
  width: 100%;
}
.m-banner .a-cols {
  margin: 0 auto;
}
.m-banner__image {
  position: relative;
  width: 100%;
}
.m-banner__image picture {
  width: 100%;
}
.m-banner--default img, .m-banner--alt img {
  width: 100%;
  height: 100%;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center center;
     object-position: center center;
}
.m-banner--default {
  height: clamp(20vh, 60vw, 60vh);
}
.m-banner--alt {
  height: auto;
}
@media (max-width: 767px) {
  .m-banner--alt .a-cols {
    padding: 0;
  }
}
.m-banner--alt .m-banner__inner {
  display: grid;
  grid-template-columns: 1fr 2fr;
  align-items: stretch;
}
@media (max-width: 767px) {
  .m-banner--alt .m-banner__inner {
    grid-template-columns: 1fr;
  }
}
.m-banner--alt .m-banner__copy {
  display: flex;
  flex-direction: column;
  padding: 2rem;
}
@media (max-width: 767px) {
  .m-banner--alt .m-banner__copy {
    order: 1;
    padding: 1rem 1rem 1.5rem;
  }
}
.m-banner--alt h1 {
  line-height: 1.1;
  margin-bottom: 1.5rem;
}
.m-banner--alt h1 {
  font-size: 48px;
  font-size: 2.6666666667rem;
  line-height: 1.1;
}
@media screen and (min-width: 1600px) {
  .m-banner--alt h1 {
    font-size: 60px;
    font-size: 3.3333333333rem;
    line-height: 1.1;
  }
}
@media screen and (min-width: 768px) and (max-width: 1600px) {
  .m-banner--alt h1 {
    font-size: calc(2.6666666667rem + 0.6666666667 * (100vw - 42.6666666667rem) / 46.2222222222);
  }
}
.m-banner--alt .h4 {
  margin-bottom: 0;
}
.m-banner--alt .h4 {
  font-size: 18px;
  font-size: 1rem;
  line-height: 1.3;
}
.m-banner--alt .a-cols {
  padding: 0;
}
.m-banner--collection {
  height: var(--variableHeightLimit);
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--c-white);
  position: relative;
  margin-bottom: 0;
  padding: 0 2em;
}
.m-banner--collection a,
.m-banner--collection picture {
  height: 100%;
  width: 100%;
  display: flex;
  align-items: center;
}
.m-banner--collection a img,
.m-banner--collection picture img {
  height: auto;
  width: auto;
  max-height: 100%;
  max-width: 100%;
  display: block;
}
.m-banner--collection__icon {
  position: absolute;
  bottom: 1rem;
  right: 1rem;
}
.m-banner--collection__icon svg {
  width: 40px;
}
@media (max-width: 575px) {
  .m-banner--collection__icon svg {
    width: 25px;
  }
}
.m-banner--listing {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: var(--containerWidth);
  width: 100%;
  margin: clamp(1.5rem, 5vw, 2rem) 0 clamp(1.5rem, 5vw, 3rem);
}
.m-banner--listing h1 {
  margin: 0;
}
.m-banner a:not(.a-btn) {
  border-bottom: none;
}
.m-banner a::after {
  display: none;
  visibility: hidden;
}
.m-banner .pre-title {
  margin-bottom: 0.5rem;
}
.m-banner .a-image-credit {
  z-index: 5;
}
.m-banner.imageiuncropped .m-banner__image picture {
  display: flex;
  justify-content: center;
}
.m-banner.imageiuncropped .m-banner__image img {
  max-height: 27.777em;
  max-width: 100%;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Social links
 * ----------------------
 */
/**
 * Styling
 */
.m-social-links {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1rem;
}
@media (max-width: 359px) {
  .m-social-links {
    grid-template-columns: repeat(4, 1fr);
  }
}
.m-nav__social .m-social-links {
  grid-template-columns: repeat(6, 1fr);
}
.m-social-links a {
  display: block;
  padding: 0.5rem;
  height: 35px;
  width: 35px;
}
.m-social-links a:not(.a-btn) {
  border-bottom: none;
}
.m-social-links a::after {
  display: none;
  visibility: hidden;
}
.m-social-links a span {
  display: none;
  visibility: hidden;
}
.m-social-links a svg {
  -o-object-fit: contain;
     object-fit: contain;
  width: 100%;
  height: 100%;
}
.m-social-links a path {
  transition: 0.2s var(--transition);
  fill: var(--c-primary);
}
.m-social-links a.a-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  width: 64px;
  height: 48px;
  max-width: 64px;
}
.m-social-links a.a-btn svg {
  margin: 0.5rem;
}
.m-social-links a:hover path {
  fill: var(--c-pink);
}

/**
* ----------------------
* Un.titled
* Molecules - Subnav
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
ul.m-subnav {
  list-style: none;
  margin: 0;
  padding: 0;
}
ul.m-subnav li {
  list-style: none;
  margin: 0;
  padding: 0;
}
ul.m-subnav ul {
  margin-top: 0.25rem;
  margin-bottom: 0;
  margin-left: 1rem;
}
ul.m-subnav ul.m-subnav__child li a svg.advanced-sidebar-icon {
  position: relative !important;
  transform: none !important;
}
ul.m-subnav a {
  text-decoration: none;
  display: flex;
  align-items: center;
  min-height: 20px;
}
ul.m-subnav a:not(.a-btn) {
  border-bottom: none;
}
ul.m-subnav a::after {
  display: none;
  visibility: hidden;
}
ul.m-subnav a span {
  text-decoration: none;
}
ul.m-subnav a[aria-current], ul.m-subnav a:hover {
  color: var(--c-red);
}
ul.m-subnav a[aria-current] span, ul.m-subnav a:hover span {
  text-decoration: none;
}
ul.m-subnav > li > a {
  font-family: var(--fontBold);
  padding-bottom: 0.25rem;
  display: inline-block;
}

/**
* ----------------------
* Un.titled
* Molecules - Intro
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-intro {
  width: 100%;
  max-width: var(--containerWidth);
  display: grid;
  justify-content: space-between;
  grid-template-columns: minmax(0, var(--cols-6)) minmax(0, var(--cols-3));
  margin-top: 2rem;
}
.m-intro--alt {
  grid-template-columns: minmax(0, var(--cols-3)) minmax(0, var(--cols-6));
  justify-content: start;
}
.m-intro--collection {
  display: flex;
  flex-direction: column;
  margin-top: 1rem;
}
.m-intro--collection .a-cols--sm {
  padding-top: clamp(1.5rem, 4vw, 3rem);
}
.m-intro--collection .a-cols--sm > .a-cols--sm {
  padding: 0;
}
@media (max-width: 991px) {
  .m-intro {
    display: flex;
    flex-direction: column;
  }
  .m-intro .a-cols--xs {
    max-width: var(--cols-6);
  }
}
@media (max-width: 767px) {
  .m-intro {
    margin-top: 1rem;
  }
}

/**
* ----------------------
* Un.titled
* Molecules - Anchor nav
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-anchor-nav__links {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.m-anchor-nav__links a {
  margin-bottom: 0.25rem;
}
.m-anchor-nav__links a:not(.a-btn) {
  border-bottom: none;
}
.m-anchor-nav__links a::after {
  display: none;
  visibility: hidden;
}
.m-anchor-nav__links a:hover {
  text-decoration: underline;
}

span[data-anchor] {
  margin-top: -50px;
  margin-bottom: 50px;
}

/**
* ----------------------
* Un.titled
* Molecules - Course details
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-course-details {
  --autoGridMin: 15%;
  --autoGridGap: 2rem;
  margin: 3rem 0 2rem;
}
@media (max-width: 991px) {
  .m-course-details {
    margin: 2rem 0 1rem;
  }
}
@media (max-width: 767px) {
  .m-course-details {
    --autoGridMin: 150px;
    --autoGridGap: 1rem;
    margin-top: 1rem;
  }
}
@media (max-width: 359px) {
  .m-course-details {
    --autoGridMin: 1fr;
  }
}
.m-course-details__detail {
  border-top: 1px solid var(--c-primary);
  padding-top: 0.5rem;
  font-size: 1rem;
}
.m-course-details__detail h3 {
  margin-bottom: 0;
}

/**
* ----------------------
* Un.titled
* Molecules - People sidebar
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-people-sidebar {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.m-people-sidebar__links {
  width: 100%;
}
@media (max-width: 575px) {
  .m-people-sidebar__links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
}
.m-people-sidebar img {
  margin-top: var(--photoOffset);
  margin-bottom: 2rem;
  border-radius: 50%;
  max-width: 330px;
  width: 100%;
  display: block;
}
@media (max-width: 1599px) {
  .m-people-sidebar img {
    margin-top: 0;
  }
}
.m-people-sidebar a {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 20px;
  display: flex;
  align-items: center;
  border-top: 1px solid var(--c-primary);
  padding: 0.5rem 0 0.5rem 32px;
  width: 100%;
  background-position: left center;
  background-image: url("/wp-content/themes/pippip/dist/img/link.svg");
}
.m-people-sidebar a:not(.a-btn) {
  border-bottom: none;
}
.m-people-sidebar a::after {
  display: none;
  visibility: hidden;
}
@media (max-width: 575px) {
  .m-people-sidebar a {
    border-top: 0;
    padding: 0.75rem;
    width: auto;
    margin: 0.25rem;
  }
  .m-people-sidebar a span {
    display: none;
  }
}
.m-people-sidebar a svg {
  justify-self: center;
}
.m-people-sidebar a:hover span {
  text-decoration: underline;
}
@media (max-width: 575px) {
  .m-people-sidebar a:hover {
    opacity: 0.7;
  }
}
.m-people-sidebar a[href*=mailto] {
  background-image: url("/wp-content/themes/pippip/dist/img/email.svg");
}
.m-people-sidebar a[href*=tel] {
  background-image: url("/wp-content/themes/pippip/dist/img/phone.svg");
}
.m-people-sidebar a[href*=twitter] {
  background-image: url("/wp-content/themes/pippip/dist/img/twitter.svg");
}
.m-people-sidebar a[href*=facebook] {
  background-image: url("/wp-content/themes/pippip/dist/img/facebook.svg");
  background-size: auto 20px;
  background-position: 5px center;
}
.m-people-sidebar a[href*=linkedin] {
  background-image: url("/wp-content/themes/pippip/dist/img/linkedin.svg");
}

/**
* ----------------------
* Un.titled
* Molecules - Homepage banner
* ----------------------
*/
/**
* Styling
*/
.m-homepage-banner {
  background-color: var(--c-white);
}
.m-homepage-banner video.default-video {
  width: 100%;
  aspect-ratio: 9/3;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (max-width: 1199px) {
  .m-homepage-banner video.default-video {
    aspect-ratio: 20/9;
  }
}
@media (max-width: 767px) {
  .m-homepage-banner video.default-video {
    aspect-ratio: 4/3;
  }
}
.m-homepage-banner figure.default-image {
  margin-bottom: 2rem;
}
.m-homepage-banner figure.default-image img {
  width: 100%;
  aspect-ratio: 9/3;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (max-width: 1199px) {
  .m-homepage-banner figure.default-image img {
    aspect-ratio: 20/9;
  }
}
@media (max-width: 767px) {
  .m-homepage-banner figure.default-image img {
    aspect-ratio: 4/3;
  }
}
.m-homepage-banner figure a:not(.a-btn) {
  border-bottom: none;
}
.m-homepage-banner figure a::after {
  display: none;
  visibility: hidden;
}
.m-homepage-banner img {
  width: 100%;
  height: auto;
}
.m-homepage-banner__blocks {
  padding: 0 1rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin: 1rem 0;
}
@media (max-width: 767px) {
  .m-homepage-banner__blocks {
    grid-template-columns: 1fr;
  }
}
.m-homepage-banner__block {
  display: flex;
  flex-direction: column;
  z-index: 2;
}
.m-homepage-banner__block figure {
  margin-bottom: 1rem;
}
.m-homepage-banner .a-btn {
  margin-top: 1rem;
}

/**
* ----------------------
* Un.titled
* Molecules - Event sidebar
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-event-sidebar {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.m-event-sidebar .promo-copy {
  margin-bottom: 1rem;
}
.m-event-sidebar .a-btn {
  margin-bottom: 9px;
}
.m-event-sidebar .m-course-details__detail {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.m-event-sidebar .a-sidebar__element {
  margin-top: 0.3rem;
  margin-bottom: 0.1rem;
}
.m-event-sidebar .a-sticky.a-sidebar__element {
  margin-top: 0.6rem;
  margin-bottom: 0.8rem;
}
.m-event-sidebar .detail {
  border-top: 1px solid var(--c-primary);
  padding-top: 0.5rem;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.m-event-sidebar .detail--bold {
  font-family: var(--fontBold);
  flex-wrap: nowrap;
}
.m-event-sidebar .detail--copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.m-event-sidebar .detail--copy h2,
.m-event-sidebar .detail--copy h3,
.m-event-sidebar .detail--copy h4 {
  margin-bottom: 0.5rem;
}
.m-event-sidebar .detail--copy > p {
  display: flex;
  flex-direction: column;
}
.m-event-sidebar .detail svg {
  margin-right: 0.5rem;
  width: 100%;
  height: 100%;
  max-width: 15px;
}
.m-event-sidebar .detail a {
  margin-right: 5px;
}

/**
* ----------------------
* Un.titled
* Molecules - Search form
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-search-form {
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media (max-width: 767px) {
  .m-search-form {
    overflow-y: scroll;
    padding-top: 2rem;
  }
}
@media (max-height: 599px) {
  .m-search-form {
    max-height: 70vh;
  }
}
.m-search-form__row {
  margin-bottom: 3rem;
}
@media (max-width: 575px) {
  .m-search-form__row {
    margin-bottom: 1.5rem;
  }
}
.m-search-form__row:last-child {
  margin-bottom: 0;
}
.m-search-form h3 {
  margin-bottom: 1rem;
  font-family: var(--fontBody);
  font-size: 1.2rem;
}
.m-search-form .a-links {
  margin: 0;
  justify-content: center;
}
.m-search-form .a-links--big {
  font-size: 1.5rem;
}
@media (max-width: 767px) {
  .m-search-form .a-links--big {
    font-size: 1.25rem;
  }
}
@media (max-width: 359px) {
  .m-search-form .a-links--big {
    font-size: 1rem;
  }
}
.m-search-form a {
  text-decoration: none;
  border-bottom: 1px solid var(--c-white);
  margin: 0 0.5rem 0.5rem;
}
.m-search-form a:not(.a-btn) {
  border-bottom: none;
}
.m-search-form a::after {
  display: none;
  visibility: hidden;
}
.m-search-form a:hover {
  color: var(--c-secondary);
  border-color: var(--c-secondary);
}
.m-search-form form {
  border-bottom: 1px solid var(--c-white);
  display: grid;
  grid-template-columns: 1fr 75px;
  width: 100%;
  max-width: 1300px;
}
@media (max-width: 767px) {
  .m-search-form form {
    grid-template-columns: 1fr 50px;
  }
}
.m-search-form form input {
  background-color: transparent;
  color: var(--c-white);
  font-family: var(--fontTitle);
  font-size: 3rem;
  padding: 0.5rem 0 0.5rem 1rem;
  min-width: 0;
}
@media (max-width: 991px) {
  .m-search-form form input {
    padding: 0.5rem;
    text-align: left;
  }
}
@media (max-width: 767px) {
  .m-search-form form input {
    font-size: 1.5rem;
  }
}
.m-search-form form input:focus {
  border: 0;
}
.m-search-form form input.submit:-webkit-input-placeholder, .m-search-form form input.submit:-moz-placeholder, .m-search-form form input.submit:-ms-input-placeholder, .m-search-form form input.submit:-moz-placeholder, .m-search-form form input.submit::placeholder {
  color: var(--c-white);
  color: #fff;
  opacity: 0.7;
}
.m-search-form form input:-webkit-input-placeholder, .m-search-form form input:-moz-placeholder, .m-search-form form input:-ms-input-placeholder, .m-search-form form input:-moz-placeholder, .m-search-form form input::placeholder,
.m-search-form form input ::placeholder {
  color: var(--c-white);
  color: #fff !important;
  opacity: 0.7;
}
.m-search-form form input::-moz-placeholder {
  color: var(--c-white);
  color: #fff !important;
  opacity: 0.7;
}
.m-search-form form input::placeholder {
  color: var(--c-white);
  color: #fff !important;
  opacity: 0.7;
}
.m-search-form form button {
  border: 0;
  background-color: transparent;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: background var(--transition);
}
.m-search-form form button svg {
  width: 30px;
}
.m-search-form form button path {
  stroke: var(--c-white);
  transition: stroke var(--transition);
}
.m-search-form form button:hover {
  background-color: var(--c-white);
}
.m-search-form form button:hover path {
  stroke: var(--c-primary);
}
.m-search-form--primosearch form input {
  color: var(--c-primary);
  background-color: var(--c-grey);
  border-color: var(--c-grey);
}
.m-search-form--primosearch form input {
  font-size: 24px;
  font-size: 1.3333333333rem;
  line-height: 1.2;
}
@media screen and (min-width: 1600px) {
  .m-search-form--primosearch form input {
    font-size: 30px;
    font-size: 1.6666666667rem;
    line-height: 1.2;
  }
}
@media screen and (min-width: 768px) and (max-width: 1600px) {
  .m-search-form--primosearch form input {
    font-size: calc(1.3333333333rem + 0.3333333333 * (100vw - 42.6666666667rem) / 46.2222222222);
  }
}
.m-search-form--primosearch form input:-webkit-input-placeholder, .m-search-form--primosearch form input:-moz-placeholder, .m-search-form--primosearch form input:-ms-input-placeholder, .m-search-form--primosearch form input:-moz-placeholder, .m-search-form--primosearch form input::placeholder {
  color: var(--c-primary);
  color: #000 !important;
}
.m-search-form--primosearch form input:focus {
  border: 1px solid var(--c-grey);
}
.m-search-form--primosearch form input::-moz-placeholder {
  color: var(--c-primary);
  color: #000 !important;
}
.m-search-form--primosearch form input::placeholder {
  color: var(--c-primary);
  color: #000 !important;
}
.m-search-form--primosearch form .submit {
  background-color: var(--c-grey);
}
.m-search-form--primosearch form .submit:hover, .m-search-form--primosearch form .submit:active, .m-search-form--primosearch form .submit:focus {
  background-color: rgba(200, 200, 210, 0.6);
  border: 1px solid var(--c-grey);
}
.m-search-form--primosearch form .submit svg {
  width: 24px;
}
.m-search-form--primosearch form .submit svg path {
  stroke: var(--c-primary);
}

/**
* ----------------------
* Un.titled
* Molecules - Performances modal
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-performances {
  --modalPadding: 4rem;
  background-color: rgba(14, 48, 52, 0.9);
}
@media (max-width: 767px) {
  .m-performances {
    --modalPadding: 2rem;
  }
}
@media (max-width: 575px) {
  .m-performances {
    --modalPadding: 1rem;
  }
}
.m-performances__inner {
  background-color: var(--c-greyLight);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  max-width: var(--containerWidth);
  padding: 2rem 0;
  position: relative;
  max-height: 100vh;
}
@media (max-width: 767px) {
  .m-performances__inner h2 {
    margin-top: 3rem;
  }
}
.m-performances__performances {
  margin: 2rem 0 0;
  padding: 0 var(--modalPadding);
  overflow: hidden;
  overflow-y: scroll;
}
@media (max-width: 767px) {
  .m-performances__performances {
    margin-top: 1rem;
  }
}
.m-performances__performance {
  display: grid;
  grid-template-columns: minmax(150px, auto) 1fr minmax(200px, auto);
  gap: 2rem;
  position: relative;
  padding: 0.75rem 0;
  align-items: center;
  border-bottom: 1px solid var(--c-primary);
  transition: var(--transition);
}
@media (max-width: 767px) {
  .m-performances__performance {
    grid-template-columns: minmax(150px, auto) 1fr;
    gap: 1rem;
  }
}
@media (max-width: 575px) {
  .m-performances__performance {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }
}
.m-performances__performance:first-of-type {
  border-top: 1px solid var(--c-primary);
}
.m-performances__performance time {
  font-size: 1.3rem;
}
@media (max-width: 1199px) {
  .m-performances__performance time {
    font-size: 1rem;
  }
}
@media (min-width: 577px) and (max-width: 767px) {
  .m-performances__performance time:nth-child(2) {
    text-align: right;
  }
}
.m-performances__performance .a-btn {
  justify-self: end;
  margin-bottom: 0;
}
@media (min-width: 577px) and (max-width: 767px) {
  .m-performances__performance .a-btn {
    grid-column: span 2;
  }
}
.m-performances__performance::before, .m-performances__performance::after {
  content: "";
  position: absolute;
  width: var(--modalPadding);
  height: 100%;
  top: 0;
  background-color: inherit;
}
.m-performances__performance::before {
  left: calc(var(--modalPadding) * -1);
}
.m-performances__performance::after {
  right: calc(var(--modalPadding) * -1);
}
.m-performances__performance:hover {
  background-color: var(--c-yellow);
  border-color: transparent;
}

/**
* ----------------------
* Un.titled
* Molecules - Gallery
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-gallery {
  /* pswp__ui--over-close class it added when mouse is over element that should close gallery */
  /* no arrows on touch screens */
  /*
    Arrow buttons hit area
    (icon is added to :before pseudo-element)
  */
  /*

    2. Share modal/popup and links

   */
  /* increase size of share links on touch devices */
  /*

    3. Index indicator ("1 of X" counter)

   */
  /*

    4. Caption

   */
  /* Fake caption element, used to calculate height of next/prev image */
  /*

    5. Loading indicator (preloader)

    You can play with it here - http://codepen.io/dimsemenov/pen/yyBWoR

   */
  /*

    6. Additional styles

   */
  /* root element of UI */
  /* top black bar with buttons and "1 of X" indicator */
  /* pswp--has_mouse class is added only when two subsequent mousemove events occur */
  /* pswp__ui--fit class is added when main image "fits" between top bar and bottom bar (caption) */
  /* pswp__ui--idle class is added when mouse isn't moving for several seconds (JS option timeToIdle) */
  /*
    pswp__ui--hidden class is added when controls are hidden
    e.g. when user taps to toggle visibility of controls
  */
  /* pswp__ui--one-slide class is added when there is just one item in gallery */
}
.m-gallery .pswp__button {
  width: 44px;
  height: 44px;
  position: relative;
  background: none;
  cursor: pointer;
  overflow: visible;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  display: block;
  border: 0;
  padding: 0;
  margin: 0;
  float: right;
  opacity: 0.75;
  transition: all var(--transition);
}
.m-gallery .pswp__button:focus,
.m-gallery .pswp__button:hover {
  opacity: 1;
}
.m-gallery .pswp__button:active {
  outline: none;
  opacity: 0.9;
}
.m-gallery .pswp__button::-moz-focus-inner {
  padding: 0;
  border: 0;
}
.m-gallery .pswp__ui--over-close .pswp__button--close {
  opacity: 1;
}
.m-gallery .pswp__button,
.m-gallery .pswp__button--arrow--left:before,
.m-gallery .pswp__button--arrow--right:before {
  background: url("/wp-content/themes/pippip/dist/img/default-skin.png") 0 0 no-repeat;
  background-size: 264px 88px;
  width: 44px;
  height: 44px;
}
@media (-webkit-min-device-pixel-ratio: 1.1), (-webkit-min-device-pixel-ratio: 1.09375), (min-resolution: 105dpi), (min-resolution: 1.1dppx) {
  .m-gallery {
    /* Serve SVG sprite if browser supports SVG and resolution is more than 105dpi */
  }
  .m-gallery .pswp--svg .pswp__button,
  .m-gallery .pswp--svg .pswp__button--arrow--left:before,
  .m-gallery .pswp--svg .pswp__button--arrow--right:before {
    background-image: url("/wp-content/themes/pippip/dist/img/default-skin.svg");
  }
  .m-gallery .pswp--svg .pswp__button--arrow--left,
  .m-gallery .pswp--svg .pswp__button--arrow--right {
    background: none;
  }
}
.m-gallery .pswp__button--close {
  background-position: 0 -44px;
}
.m-gallery .pswp__button--share {
  background-position: -44px -44px;
}
.m-gallery .pswp__button--fs {
  display: none;
}
.m-gallery .pswp--supports-fs .pswp__button--fs {
  display: block;
}
.m-gallery .pswp--fs .pswp__button--fs {
  background-position: -44px 0;
}
.m-gallery .pswp__button--zoom {
  display: none;
  background-position: -88px 0;
}
.m-gallery .pswp--zoom-allowed .pswp__button--zoom {
  display: block;
}
.m-gallery .pswp--zoomed-in .pswp__button--zoom {
  background-position: -132px 0;
}
.m-gallery .pswp--touch .pswp__button--arrow--left,
.m-gallery .pswp--touch .pswp__button--arrow--right {
  visibility: hidden;
}
.m-gallery .pswp__button--arrow--left,
.m-gallery .pswp__button--arrow--right {
  background: none;
  top: 50%;
  margin-top: -50px;
  width: 70px;
  height: 100px;
  position: absolute;
}
.m-gallery .pswp__button--arrow--left {
  left: 0;
}
.m-gallery .pswp__button--arrow--right {
  right: 0;
}
.m-gallery .pswp__button--arrow--left:before,
.m-gallery .pswp__button--arrow--right:before {
  content: "";
  top: 35px;
  height: 30px;
  width: 32px;
  position: absolute;
}
.m-gallery .pswp__button--arrow--left:before {
  left: 6px;
  background-position: -138px -44px;
}
.m-gallery .pswp__button--arrow--right:before {
  right: 6px;
  background-position: -94px -44px;
}
.m-gallery .pswp__counter,
.m-gallery .pswp__share-modal {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.m-gallery .pswp__share-modal {
  display: block;
  background: rgba(0, 0, 0, 0.5);
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  padding: 10px;
  position: absolute;
  z-index: 1600;
  opacity: 0;
  -webkit-transition: opacity 0.25s ease-out;
  transition: opacity 0.25s ease-out;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  will-change: opacity;
}
.m-gallery .pswp__share-modal--hidden {
  display: none;
}
.m-gallery .pswp__share-tooltip {
  z-index: 1620;
  position: absolute;
  background: var(--c-white);
  top: 56px;
  border-radius: 2px;
  display: block;
  width: auto;
  right: 44px;
  -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
  -webkit-transform: translateY(6px);
  -ms-transform: translateY(6px);
  transform: translateY(6px);
  -webkit-transition: -webkit-transform 0.25s;
  transition: transform 0.25s;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  will-change: transform;
}
.m-gallery .pswp__share-tooltip a {
  display: block;
  padding: 8px 12px;
  color: var(--c-primary);
  text-decoration: none;
  font-size: 14px;
  line-height: 18px;
}
.m-gallery .pswp__share-tooltip a:hover {
  text-decoration: none;
  color: var(--c-primary);
}
.m-gallery .pswp__share-tooltip a:first-child {
  /* round corners on the first/last list item */
  border-radius: 2px 2px 0 0;
}
.m-gallery .pswp__share-tooltip a:last-child {
  border-radius: 0 0 2px 2px;
}
.m-gallery .pswp__share-modal--fade-in {
  opacity: 1;
}
.m-gallery .pswp__share-modal--fade-in .pswp__share-tooltip {
  -webkit-transform: translateY(0);
  -ms-transform: translateY(0);
  transform: translateY(0);
}
.m-gallery .pswp--touch .pswp__share-tooltip a {
  padding: 16px 12px;
}
.m-gallery a.pswp__share--facebook:before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  position: absolute;
  top: -12px;
  right: 15px;
  border: 6px solid transparent;
  border-bottom-color: var(--c-white);
  -webkit-pointer-events: none;
  -moz-pointer-events: none;
  pointer-events: none;
}
.m-gallery a.pswp__share--facebook:hover {
  background: #3e5c9a;
  color: var(--c-white);
}
.m-gallery a.pswp__share--facebook:hover:before {
  border-bottom-color: #3e5c9a;
}
.m-gallery a.pswp__share--twitter:hover {
  background: #55acee;
  color: var(--c-white);
}
.m-gallery a.pswp__share--pinterest:hover {
  background: #ccc;
  color: #ce272d;
}
.m-gallery a.pswp__share--download:hover {
  background: #ddd;
}
.m-gallery .pswp__counter {
  position: absolute;
  left: 0;
  top: 0;
  height: 44px;
  font-size: 13px;
  line-height: 44px;
  color: var(--c-white);
  opacity: 0.75;
  padding: 0 10px;
}
.m-gallery .pswp__caption {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  min-height: 44px;
}
.m-gallery .pswp__caption small {
  font-size: 11px;
  color: #bbb;
}
.m-gallery .pswp__caption__center {
  text-align: center;
  max-width: 700px;
  margin: 0 auto;
  padding: 0.5rem;
  color: var(--c-primary);
}
.m-gallery .pswp__caption--empty {
  display: none;
}
.m-gallery .pswp__caption--fake {
  visibility: hidden;
}
.m-gallery .pswp__preloader {
  width: 44px;
  height: 44px;
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: -22px;
  opacity: 0;
  -webkit-transition: opacity 0.25s ease-out;
  transition: opacity 0.25s ease-out;
  will-change: opacity;
  direction: ltr;
}
.m-gallery .pswp__preloader__icn {
  width: 20px;
  height: 20px;
  margin: 12px;
}
.m-gallery .pswp__preloader--active {
  opacity: 1;
}
.m-gallery .pswp__preloader--active .pswp__preloader__icn {
  /* We use .gif in browsers that don't support CSS animation */
  background: url(/wp-content/themes/pippip/dist/img/preloader.gif) 0 0 no-repeat;
}
.m-gallery .pswp--css_animation .pswp__preloader--active {
  opacity: 1;
}
.m-gallery .pswp--css_animation .pswp__preloader--active .pswp__preloader__icn {
  -webkit-animation: clockwise 500ms linear infinite;
  animation: clockwise 500ms linear infinite;
}
.m-gallery .pswp--css_animation .pswp__preloader--active .pswp__preloader__donut {
  -webkit-animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;
  animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;
}
.m-gallery .pswp--css_animation .pswp__preloader__icn {
  background: none;
  opacity: 0.75;
  width: 14px;
  height: 14px;
  position: absolute;
  left: 15px;
  top: 15px;
  margin: 0;
}
.m-gallery .pswp--css_animation .pswp__preloader__cut {
  /* 
      The idea of animating inner circle is based on Polymer ("material") loading indicator 
       by Keanu Lee https://blog.keanulee.com/2014/10/20/the-tale-of-three-spinners.html
    */
  position: relative;
  width: 7px;
  height: 14px;
  overflow: hidden;
}
.m-gallery .pswp--css_animation .pswp__preloader__donut {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 14px;
  height: 14px;
  border: 2px solid var(--c-white);
  border-radius: 50%;
  border-left-color: transparent;
  border-bottom-color: transparent;
  position: absolute;
  top: 0;
  left: 0;
  background: none;
  margin: 0;
}
@media screen and (max-width: 1024px) {
  .m-gallery .pswp__preloader {
    position: relative;
    left: auto;
    top: auto;
    margin: 0;
    float: right;
  }
}
@-webkit-keyframes clockwise {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes clockwise {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@-webkit-keyframes donut-rotate {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
  50% {
    -webkit-transform: rotate(-140deg);
    transform: rotate(-140deg);
  }
  100% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
}
@keyframes donut-rotate {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
  50% {
    -webkit-transform: rotate(-140deg);
    transform: rotate(-140deg);
  }
  100% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
}
.m-gallery .pswp__ui {
  -webkit-font-smoothing: auto;
  visibility: visible;
  opacity: 1;
  z-index: 1550;
}
.m-gallery .pswp__top-bar {
  position: absolute;
  left: 0;
  top: 0;
  height: 44px;
  width: 100%;
}
.m-gallery .pswp__caption,
.m-gallery .pswp__top-bar,
.m-gallery .pswp--has_mouse .pswp__button--arrow--left,
.m-gallery .pswp--has_mouse .pswp__button--arrow--right {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  will-change: opacity;
  -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
  transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
}
.m-gallery .pswp--has_mouse .pswp__button--arrow--left,
.m-gallery .pswp--has_mouse .pswp__button--arrow--right {
  visibility: visible;
}
.m-gallery .pswp__top-bar,
.m-gallery .pswp__caption {
  background-color: rgba(0, 0, 0, 0.5);
}
.m-gallery .pswp__ui--fit .pswp__top-bar,
.m-gallery .pswp__ui--fit .pswp__caption {
  background-color: rgba(255, 255, 255, 0.8);
}
.m-gallery .pswp__ui--idle .pswp__top-bar {
  opacity: 0;
}
.m-gallery .pswp__ui--idle .pswp__button--arrow--left,
.m-gallery .pswp__ui--idle .pswp__button--arrow--right {
  opacity: 0;
}
.m-gallery .pswp__ui--hidden .pswp__top-bar,
.m-gallery .pswp__ui--hidden .pswp__caption,
.m-gallery .pswp__ui--hidden .pswp__button--arrow--left,
.m-gallery .pswp__ui--hidden .pswp__button--arrow--right {
  /* Force paint & create composition layer for controls. */
  opacity: 0.001;
}
.m-gallery .pswp__ui--one-slide .pswp__button--arrow--left,
.m-gallery .pswp__ui--one-slide .pswp__button--arrow--right,
.m-gallery .pswp__ui--one-slide .pswp__counter {
  display: none;
}
.m-gallery .pswp__element--disabled {
  display: none !important;
}
.m-gallery .pswp--minimal--dark .pswp__top-bar {
  background: none;
}
.m-gallery .pswp__zoom-wrap,
.m-gallery .pswp__container,
.m-gallery .pswp__item {
  background-color: var(--c-white);
}
.m-gallery .pswp__button {
  color: var(--c-primary);
}
.m-gallery .pswp__button:hover {
  background-color: #efefef;
}
.m-gallery .pswp__counter {
  color: var(--c-primary);
}
.m-gallery .pswp--zoomed-in .pswp__caption {
  opacity: 0;
}

/**
* ----------------------
* Un.titled
* Molecules - Toggle subnav
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-toggle-subnav[data-isOpen=false] button:after {
  content: "+";
}
.m-toggle-subnav[data-isOpen=false] > div {
  display: none;
}
.m-toggle-subnav button {
  display: flex;
  border: 0;
  background-color: transparent;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 0;
  margin-bottom: 0;
  text-align: left;
}
.m-toggle-subnav button::after {
  content: "—";
  display: block;
  transition: transform var(--transition);
}
.m-toggle-subnav button:hover::after {
  transform: translateX(-10px);
}

/**
* ----------------------
* Un.titled
* Molecules - Subnav container
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-subnav-container {
  border-bottom: 1px solid var(--c-primary);
}
.m-subnav-container .m-subnav {
  margin-top: 1.5rem;
}

@media (max-width: 767px) {
  .c-anchors {
    position: fixed;
    bottom: 0;
    background-color: black;
    color: white;
    z-index: 200;
    margin-bottom: 0;
  }
}

@media (min-width: 769px) {
  .c-anchors__dropdown {
    display: none;
  }
}

.c-anchors__trigger {
  display: flex;
  justify-content: space-between;
  background-color: transparent;
  font-weight: 500;
  padding: 0;
  width: 100%;
  border: none;
  cursor: pointer;
}
.c-anchors__trigger svg {
  fill: white;
  width: 1rem;
}
.c-anchors__trigger[aria-expanded=true] svg {
  transform: rotate(180deg);
}

.c-anchors__nav {
  padding: 10px 0;
}

.c-anchors__wrap {
  display: flex;
  gap: 18px;
}
@media (max-width: 767px) {
  .c-anchors__wrap {
    flex-direction: column;
  }
}

.c-anchors__heading {
  margin-bottom: 0;
}
.c-anchors__heading {
  font-size: 18px;
  font-size: 1rem;
  line-height: 1.3;
}
@media (max-width: 767px) {
  .c-anchors__heading {
    display: none;
  }
}

.c-anchors__list {
  position: relative;
  display: flex;
  list-style-type: none;
  margin: 0;
  padding: 0;
  gap: 18px;
  transition: max-height 0.55s cubic-bezier(0.65, 0, 0.35, 1);
}
@media (max-width: 767px) {
  .c-anchors__list {
    flex-direction: column;
    overflow-x: auto;
    visibility: hidden;
    opacity: 0;
    height: 0;
    max-height: 0;
  }
}
html.state--anchors-active .c-anchors__list {
  padding-bottom: 6px;
  max-height: 100vh;
  height: auto;
  visibility: visible;
  opacity: 1;
}
@media (max-width: 767px) {
  html.state--anchors-active .c-anchors__list {
    flex: 0 0 100%;
  }
}

.m-banner:has(+ .m-entity.c-anchors) {
  margin-bottom: 12px;
}

/**
 * Organisims
 */
/**
 * ----------------------
 * Un.titled
 * Organisms - Header
 * ----------------------
 */
.o-header__primary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  justify-items: center;
  align-items: center;
  padding: 1rem 2rem;
  font-size: 1rem;
  max-width: var(--containerWidth);
  margin: 0 auto;
}
@media (max-width: 1099px) {
  .o-header__primary {
    grid-template-columns: repeat(2, 1fr);
    justify-items: start;
  }
}
@media (max-width: 767px) {
  .o-header__primary {
    padding: 1rem;
    height: 4.2222222222rem;
  }
}
@media (max-width: 575px) {
  .o-header__primary {
    padding: 0.5rem 15px;
    height: 3rem;
  }
}
.o-header__nav {
  justify-self: start;
  white-space: nowrap;
}
.o-header__nav--mobile.o-header__nav--primary {
  display: flex;
  justify-self: end;
}
@media (min-width: 1100px) {
  .o-header__nav--mobile.o-header__nav--primary {
    display: none;
    visibility: hidden;
  }
}
.o-header__nav--mobile.o-header__nav--secondary {
  display: none;
  visibility: hidden;
  position: absolute;
  top: 4.2222222222rem;
  left: 0;
  width: 100%;
  height: calc(100vh - 45px);
  background: #fff;
  z-index: 20;
}
@media (max-width: 575px) {
  .o-header__nav--mobile.o-header__nav--secondary {
    top: 3rem;
  }
}
body.admin-bar .o-header__nav--mobile.o-header__nav--secondary {
  top: 90px;
  height: calc(100vh - 75px);
}
.o-header__nav--mobile.o-header__nav--secondary a:not(.btn) {
  display: flex;
  margin: 0;
  padding: 15px;
  width: 100%;
  justify-content: space-between;
  font-weight: 500;
}
.o-header__nav--mobile.o-header__nav--secondary a:not(.btn) {
  font-size: 24px;
  font-size: 1.3333333333rem;
  line-height: 1.2;
}
@media screen and (min-width: 1600px) {
  .o-header__nav--mobile.o-header__nav--secondary a:not(.btn) {
    font-size: 30px;
    font-size: 1.6666666667rem;
    line-height: 1.2;
  }
}
@media screen and (min-width: 768px) and (max-width: 1600px) {
  .o-header__nav--mobile.o-header__nav--secondary a:not(.btn) {
    font-size: calc(1.3333333333rem + 0.3333333333 * (100vw - 42.6666666667rem) / 46.2222222222);
  }
}
.o-header__nav--mobile.o-header__nav--secondary :has(.submenu-toggle) {
  display: flex;
  width: 100%;
  justify-content: space-between;
  align-items: center;
}
.o-header__nav--mobile.o-header__nav--secondary button.submenu-toggle {
  display: block;
  background: transparent;
  border: none;
  width: 44px;
  padding: 11px 15px;
}
.o-header__nav--mobile.o-header__nav--secondary button.submenu-toggle .submenu-toggle--minus {
  display: none;
}
.o-header__nav--mobile.o-header__nav--secondary button.submenu-toggle .submenu-toggle--plus {
  display: block;
}
.o-header__nav--mobile.o-header__nav--secondary button.submenu-toggle[aria-expanded=true] .submenu-toggle--minus {
  display: block;
}
.o-header__nav--mobile.o-header__nav--secondary button.submenu-toggle[aria-expanded=true] .submenu-toggle--plus {
  display: none;
}
.o-header__nav--mobile.o-header__nav--secondary button.submenu-toggle svg path {
  fill: currentColor;
}
@media (max-width: 1099px) {
  .o-header__nav--mobile.o-header__nav--secondary.submenu--active {
    display: block;
    visibility: visible;
  }
}
.o-header__nav--mobile .o-header__nav--tertiary {
  display: none;
  visibility: hidden;
}
.o-header__nav--mobile .o-header__nav--tertiary.submenu--active {
  display: block;
  visibility: visible;
}
.o-header__nav--mobile .o-header__nav--tertiary.submenu--active a {
  padding: 10px 15px;
  font-weight: 400;
}
.o-header__nav--mobile .o-header__nav--tertiary.submenu--active a {
  font-size: 18px;
  font-size: 1rem;
  line-height: 1.3;
}
.o-header__nav--desktop.o-header__nav--primary {
  display: none;
  visibility: hidden;
}
@media (min-width: 1100px) {
  .o-header__nav--desktop.o-header__nav--primary {
    display: flex;
    visibility: visible;
    align-items: center;
    justify-content: space-between;
  }
}
.o-header__nav--desktop.o-header__nav--secondary {
  display: none;
  visibility: hidden;
}
@media (min-width: 1100px) {
  .o-header__nav--desktop.o-header__nav--secondary {
    display: flex;
    visibility: visible;
    align-items: center;
    justify-content: space-between;
    justify-self: end;
  }
}
.o-header__nav a {
  text-decoration: none;
  margin-right: 1.5rem;
}
.o-header__nav a:not(.a-btn) {
  border-bottom: none;
}
.o-header__nav a::after {
  display: none;
  visibility: hidden;
}
.o-header__nav a:last-child {
  margin-right: 0;
}
.o-header__nav a:hover span {
  text-decoration: underline;
}
.o-header__nav a svg {
  max-width: 29px;
}
.o-header__nav a.submenu-toggle svg {
  max-width: 14px;
}
.o-header__nav a.submenu-toggle[aria-expanded=true] svg {
  transform: rotate(180deg);
}
.o-header h1 {
  justify-self: start;
}
.o-header__logo {
  text-decoration: none;
  display: flex;
  justify-content: center;
  justify-self: start;
  align-items: center;
}
.o-header__logo:not(.a-btn) {
  border-bottom: none;
}
.o-header__logo::after {
  display: none;
  visibility: hidden;
}
.o-header__logo svg {
  width: 100%;
  height: auto;
  max-width: 300px;
}
.o-header__logo path {
  transition: fill var(--transition);
}
.o-header__logo:hover path {
  fill: var(--c-grey);
}
.o-header h1 {
  margin-bottom: 0;
}
.o-header__submenu {
  background: var(--c-grey);
  padding: 15px 0;
  display: none;
  visibility: hidden;
  left: 0;
  right: 0;
  position: absolute;
  z-index: 1;
  font-size: 1rem;
}
@media (min-width: 769px) {
  .o-header__submenu {
    top: 76px;
  }
  body.admin-bar .o-header__submenu {
    top: 106px;
  }
  .o-header__submenu.submenu--active {
    display: block;
    visibility: visible;
  }
}
.o-header__submenu a {
  text-decoration: none;
  display: flex;
  flex-direction: row;
  gap: 10px;
  align-items: center;
}
.o-header__submenu a:not(.a-btn) {
  border-bottom: none;
}
.o-header__submenu a::after {
  display: none;
  visibility: hidden;
}
.o-header__submenu a:hover span {
  text-decoration: underline;
}
.o-header__submenu a > div {
  display: flex;
  align-items: center;
  gap: 10px;
}
.o-header__submenu a svg {
  height: 1rem;
  max-width: 1rem;
  flex-grow: 1;
}
.o-header__submenu__nav {
  display: flex;
  justify-self: start;
  font-size: 1.25rem;
}
.o-header__submenu__nav.nav__primary {
  flex-direction: row;
}
.o-header__submenu__nav.nav__primary > a {
  display: block;
  width: 50%;
  padding: 0 7px;
}
.o-header__submenu__nav.nav__primary img {
  max-width: 100%;
}
.o-header__submenu__nav.nav__secondary {
  flex-direction: column;
}
.o-header__submenu__nav.nav__secondary a {
  margin-bottom: 0.75rem;
  width: 100%;
}
.o-header__submenu__nav.nav__secondary a svg {
  margin-top: 0.2rem;
}

/**
 * ----------------------
 * Un.titled
 * Organisms - Footer
 * ----------------------
 */
.o-footer {
  background-color: var(--c-grey);
  color: var(--c-primary);
  padding: var(--padding);
  font-size: 1rem;
}
.o-footer .a-cols--full {
  max-width: 1200px;
}
.o-footer .a-links {
  margin-top: 0;
  flex-direction: column;
  align-items: flex-start;
}
.o-footer .a-links a {
  margin-bottom: 0.5rem;
}
.o-footer h3 {
  font-family: var(--fontBody);
}
.o-footer h3 {
  font-size: 18px;
  font-size: 1rem;
  line-height: 1.3;
}
@media screen and (min-width: 1600px) {
  .o-footer h3 {
    font-size: 24px;
    font-size: 1.3333333333rem;
    line-height: 1.3;
  }
}
@media screen and (min-width: 768px) and (max-width: 1600px) {
  .o-footer h3 {
    font-size: calc(1rem + 0.3333333333 * (100vw - 42.6666666667rem) / 46.2222222222);
  }
}
.o-footer__top {
  display: grid;
  grid-template-columns: repeat(18, 1fr);
  gap: 1rem;
  margin: 2rem;
  width: calc(100% - 4rem);
}
@media (max-width: 767px) {
  .o-footer__top {
    grid-template-columns: 1fr;
    align-items: center;
    justify-items: center;
    gap: 2rem;
    margin: 2rem 0;
  }
}
.o-footer__about {
  grid-column: span 5;
  grid-row: 1;
}
.o-footer__about p {
  margin-bottom: 2rem;
}
@media (max-width: 767px) {
  .o-footer__about {
    grid-column: 1;
    grid-row: auto;
  }
  .o-footer__about h3, .o-footer__about p {
    display: none;
    visibility: hidden;
  }
}
.o-footer__links {
  grid-column: span 5;
  grid-row: 2;
}
@media (max-width: 767px) {
  .o-footer__links {
    grid-column: 1;
    grid-row: auto;
    justify-self: start;
  }
}
.o-footer__links .a-links {
  margin-top: 1rem;
}
.o-footer__newsletter {
  grid-column: span 7;
  grid-row: 1;
  justify-self: center;
}
@media (max-width: 767px) {
  .o-footer__newsletter {
    grid-column: 1;
    grid-row: auto;
    justify-self: start;
    order: -1;
  }
}
.o-footer__info {
  grid-column: span 7;
  grid-row: 2;
  justify-self: center;
}
@media (max-width: 767px) {
  .o-footer__info {
    grid-column: 1;
    grid-row: auto;
    justify-self: start;
    order: 2;
  }
}
.o-footer__join-support {
  grid-column: span 6;
  grid-row: 2;
  justify-self: start;
}
@media (max-width: 767px) {
  .o-footer__join-support {
    grid-column: 1;
    grid-row: auto;
    justify-self: start;
  }
}
.o-footer__join-support .links {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
.o-footer__social {
  grid-column: span 6;
  grid-row: 1;
  justify-self: start;
}
@media (max-width: 767px) {
  .o-footer__social {
    grid-column: 1;
    grid-row: auto;
    order: -2;
    justify-self: start;
  }
}
.o-footer__social .m-social-links {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  margin-bottom: 2rem;
}
.o-footer__social .m-social-links a {
  flex-grow: 1;
  height: auto !important;
}
.o-footer__social .m-social-links a svg {
  width: auto;
  -o-object-fit: initial;
     object-fit: initial;
  height: 1rem;
}
.o-footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  margin: 2rem;
  width: calc(100% - 4rem);
}
@media (max-width: 767px) {
  .o-footer__bottom {
    flex-direction: column;
    margin: 0 0 4rem 0;
    width: 100%;
  }
}
.o-footer__partners a:not(.a-btn), .o-footer__headline-partner a:not(.a-btn) {
  border-bottom: none;
}
.o-footer__partners a::after, .o-footer__headline-partner a::after {
  display: none;
  visibility: hidden;
}
.o-footer__partners a:hover, .o-footer__headline-partner a:hover {
  opacity: 0.7;
}
.o-footer__headline-partner {
  width: 100%;
}
.o-footer__headline-partner p {
  font-size: var(--fontSmall);
}
.o-footer__headline-partner img {
  margin-top: 1rem;
}
.o-footer__partners {
  display: flex;
  align-items: start;
  justify-content: flex-start;
  flex-wrap: wrap;
  margin-top: var(--padding);
}
@media (max-width: 767px) {
  .o-footer__partners {
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
  }
}
.o-footer__partners img {
  height: 50px;
  width: auto;
  margin-right: 1.5rem;
}
@media (max-width: 359px) {
  .o-footer__partners img {
    height: 40px;
    max-width: 100%;
  }
}
.o-footer__legal {
  align-self: flex-end;
  font-size: 85%;
  margin-top: 1rem;
  text-align: left;
}
@media (max-width: 767px) {
  .o-footer__legal {
    margin-top: 1rem;
    padding-bottom: 1rem;
    align-self: center;
    width: 100%;
    text-align: left;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .o-footer__legal br {
    display: none;
  }
}

/**
 * ----------------------
 * Un.titled
 * Organisms - Search results
 * ----------------------
 */
.o-search-results-wrapper h2 {
  display: none;
}
.o-search-results-wrapper .result__title {
  margin-bottom: 0;
}
.o-search-results-wrapper__list {
  margin-bottom: 2rem;
}
.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: 1rem;
}

/**
 * ----------------------
 * Un.titled
 * Organisms - Teasers
 * ----------------------
 */
.o-featured-teaser,
.o-listing-teaser,
.o-teaser {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
@media (min-width: 769px) {
  .o-featured-teaser--single,
  .o-listing-teaser--single,
  .o-teaser--single {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}
.o-featured-teaser__thumb,
.o-listing-teaser__thumb,
.o-teaser__thumb {
  display: block;
  width: 100%;
  position: relative;
}
.o-featured-teaser__thumb:not(.a-btn),
.o-listing-teaser__thumb:not(.a-btn),
.o-teaser__thumb:not(.a-btn) {
  border-bottom: none;
}
.o-featured-teaser__thumb::after,
.o-listing-teaser__thumb::after,
.o-teaser__thumb::after {
  display: none;
  visibility: hidden;
}
.o-featured-teaser__thumb figure,
.o-listing-teaser__thumb figure,
.o-teaser__thumb figure {
  height: 0;
  position: relative;
  padding-top: 56.25%;
}
.o-featured-teaser__thumb figure.listing_image_square,
.o-listing-teaser__thumb figure.listing_image_square,
.o-teaser__thumb figure.listing_image_square {
  padding-top: 100%;
}
.o-featured-teaser__thumb figure.listing_image_portrait,
.o-listing-teaser__thumb figure.listing_image_portrait,
.o-teaser__thumb figure.listing_image_portrait {
  padding-top: 133.3333%;
}
.o-featured-teaser__thumb figure picture,
.o-listing-teaser__thumb figure picture,
.o-teaser__thumb figure picture {
  position: absolute;
  top: 0;
  left: 0;
  background-color: var(--c-greyLight);
  width: 100%;
  height: 100%;
  display: flex;
}
.o-featured-teaser__thumb img,
.o-listing-teaser__thumb img,
.o-teaser__thumb img {
  width: 100%;
  height: auto;
  display: block;
  transition: opacity var(--transition);
  -o-object-fit: cover;
     object-fit: cover;
}
.o-featured-teaser__thumb .label,
.o-listing-teaser__thumb .label,
.o-teaser__thumb .label {
  position: absolute;
  top: -0.8rem;
  left: 0.5rem;
  text-transform: uppercase;
  font-size: var(--fontSmall);
  padding: 5px 10px;
  background-color: var(--c-primary);
  color: var(--c-white);
}
.o-featured-teaser__thumb .label.teal,
.o-listing-teaser__thumb .label.teal,
.o-teaser__thumb .label.teal {
  background-color: var(--c-teal);
}
.o-featured-teaser__thumb .label.violet,
.o-listing-teaser__thumb .label.violet,
.o-teaser__thumb .label.violet {
  background-color: var(--c-maroon);
}
.o-featured-teaser__thumb .label.yellow,
.o-listing-teaser__thumb .label.yellow,
.o-teaser__thumb .label.yellow {
  background-color: var(--c-yellow);
  color: var(--c-primary);
}
.o-featured-teaser__thumb:hover img,
.o-listing-teaser__thumb:hover img,
.o-teaser__thumb:hover img {
  opacity: 0.9;
}
.o-featured-teaser__content,
.o-listing-teaser__content,
.o-teaser__content {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 1rem 0;
}
@media (max-width: 767px) {
  .o-featured-teaser__content,
  .o-listing-teaser__content,
  .o-teaser__content {
    padding: 0.5rem 0;
  }
}
.o-featured-teaser__content a:not(.a-btn):not(.read-more),
.o-listing-teaser__content a:not(.a-btn):not(.read-more),
.o-teaser__content a:not(.a-btn):not(.read-more) {
  text-decoration: none;
}
.o-featured-teaser__content a:not(.a-btn):not(.read-more):not(.a-btn),
.o-listing-teaser__content a:not(.a-btn):not(.read-more):not(.a-btn),
.o-teaser__content a:not(.a-btn):not(.read-more):not(.a-btn) {
  border-bottom: none;
}
.o-featured-teaser__content a:not(.a-btn):not(.read-more)::after,
.o-listing-teaser__content a:not(.a-btn):not(.read-more)::after,
.o-teaser__content a:not(.a-btn):not(.read-more)::after {
  display: none;
  visibility: hidden;
}
.o-featured-teaser__content .tag,
.o-listing-teaser__content .tag,
.o-teaser__content .tag {
  margin-bottom: 0.5rem;
  text-transform: capitalize;
  font-size: var(--fontSmall);
}
.o-featured-teaser__content .o-teaser__title,
.o-listing-teaser__content .o-teaser__title,
.o-teaser__content .o-teaser__title {
  font-size: 24px;
  font-size: 1.3333333333rem;
  line-height: 1.2;
}
@media screen and (min-width: 1600px) {
  .o-featured-teaser__content .o-teaser__title,
  .o-listing-teaser__content .o-teaser__title,
  .o-teaser__content .o-teaser__title {
    font-size: 30px;
    font-size: 1.6666666667rem;
    line-height: 1.2;
  }
}
@media screen and (min-width: 768px) and (max-width: 1600px) {
  .o-featured-teaser__content .o-teaser__title,
  .o-listing-teaser__content .o-teaser__title,
  .o-teaser__content .o-teaser__title {
    font-size: calc(1.3333333333rem + 0.3333333333 * (100vw - 42.6666666667rem) / 46.2222222222);
  }
}
@media (min-width: 769px) {
  .o-teaser--single .o-featured-teaser__content,
  .o-teaser--single .o-listing-teaser__content,
  .o-teaser--single .o-teaser__content {
    grid-row: 1;
    grid-column: 2;
    padding: 0;
  }
  .o-teaser--single .o-featured-teaser__content .o-teaser__title,
  .o-teaser--single .o-listing-teaser__content .o-teaser__title,
  .o-teaser--single .o-teaser__content .o-teaser__title {
    font-size: 30px;
    font-size: 1.6666666667rem;
    line-height: 1.2;
  }
}
@media screen and (min-width: 769px) and (min-width: 1600px) {
  .o-teaser--single .o-featured-teaser__content .o-teaser__title,
  .o-teaser--single .o-listing-teaser__content .o-teaser__title,
  .o-teaser--single .o-teaser__content .o-teaser__title {
    font-size: 36px;
    font-size: 2rem;
    line-height: 1.2;
  }
}
@media screen and (min-width: 769px) and (min-width: 768px) and (max-width: 1600px) {
  .o-teaser--single .o-featured-teaser__content .o-teaser__title,
  .o-teaser--single .o-listing-teaser__content .o-teaser__title,
  .o-teaser--single .o-teaser__content .o-teaser__title {
    font-size: calc(1.6666666667rem + 0.3333333333 * (100vw - 42.6666666667rem) / 46.2222222222);
  }
}
.o-featured-teaser__content p:last-of-type,
.o-listing-teaser__content p:last-of-type,
.o-teaser__content p:last-of-type {
  margin-bottom: 0;
}
.o-featured-teaser__buttons,
.o-listing-teaser__buttons,
.o-teaser__buttons {
  margin-top: auto;
  padding: 0 0 1rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.o-featured-teaser__buttons > .a-btn,
.o-listing-teaser__buttons > .a-btn,
.o-teaser__buttons > .a-btn {
  width: auto;
  margin-right: 1rem;
  font-size: var(--fontSmall);
  text-transform: uppercase;
  margin-top: 0.5rem;
  flex-wrap: wrap;
  white-space: wrap;
}
.o-featured-teaser__buttons > .a-btn svg,
.o-listing-teaser__buttons > .a-btn svg,
.o-teaser__buttons > .a-btn svg {
  display: none;
  visibility: hidden;
}
.o-featured-teaser__buttons > .a-btn:not(.no-link):hover,
.o-listing-teaser__buttons > .a-btn:not(.no-link):hover,
.o-teaser__buttons > .a-btn:not(.no-link):hover {
  background-color: var(--c-secondary);
  color: var(--c-primary);
  opacity: 1;
}
.o-featured-teaser__buttons > a,
.o-listing-teaser__buttons > a,
.o-teaser__buttons > a {
  margin-right: 1rem;
  margin-top: 0.5rem;
  padding-top: calc(0.5rem - 3px);
  padding-bottom: calc(0.5rem - 3px);
}
@media (min-width: 769px) {
  .o-teaser--single .o-featured-teaser__buttons,
  .o-teaser--single .o-listing-teaser__buttons,
  .o-teaser--single .o-teaser__buttons {
    grid-row: 1;
    grid-column: 2;
    padding-bottom: 0;
  }
}
.o-featured-teaser p,
.o-listing-teaser p,
.o-teaser p {
  max-width: var(--lineLength);
}
.o-featured-teaser p.btn-aria-label,
.o-listing-teaser p.btn-aria-label,
.o-teaser p.btn-aria-label {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.o-listing-teaser__thumb {
  background-color: transparent;
  align-self: end;
}
.o-listing-teaser__content {
  align-items: stretch;
}
.o-listing-teaser__buttons {
  margin-top: 1rem;
}

.o-featured-teaser {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
@media (max-width: 1199px) {
  .o-featured-teaser {
    grid-template-columns: 1fr 1.5fr;
    gap: 1rem;
  }
}
@media (max-width: 991px) {
  .o-featured-teaser {
    grid-template-columns: 1fr;
  }
}
.o-featured-teaser h2 {
  font-size: 30px;
  font-size: 1.6666666667rem;
  line-height: 1.2;
}
@media screen and (min-width: 1600px) {
  .o-featured-teaser h2 {
    font-size: 36px;
    font-size: 2rem;
    line-height: 1.2;
  }
}
@media screen and (min-width: 768px) and (max-width: 1600px) {
  .o-featured-teaser h2 {
    font-size: calc(1.6666666667rem + 0.3333333333 * (100vw - 42.6666666667rem) / 46.2222222222);
  }
}
.o-featured-teaser--single {
  align-items: center;
}
.o-featured-teaser__content {
  color: var(--c-white);
  padding: 0;
}
.bgColour .o-featured-teaser__content {
  color: unset;
}
.o-featured-teaser__buttons {
  padding-bottom: 0;
  margin-top: 2rem;
}
.o-featured-teaser__buttons > .a-btn {
  font-size: 1rem;
  text-transform: none;
  border: 0;
  --btnBg: var(--c-primary);
  --btnColour: var(--c-white);
}
.o-featured-teaser__buttons > .a-btn svg {
  display: block;
  visibility: visible;
}

.o-teaser__content p {
  word-break: break-word;
}

/**
* ----------------------
* Un.titled
* Organisms - Listing **temp**
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.o-listing {
  padding: 0 var(--gutter);
}
.o-listing__buttons {
  display: flex;
  justify-content: center;
  flex-flow: row wrap;
}
.o-listing__filters {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  border: 1px solid var(--c-primary);
  border-left: 0;
  border-right: 0;
  margin-bottom: 2rem;
  flex-flow: row wrap;
  width: 100%;
  padding: 12px 0 12px;
  max-width: var(--containerWidth);
  margin: 0 auto;
}
@media (max-width: 767px) {
  .o-listing__filters {
    flex-wrap: wrap;
    row-gap: var(--gutter);
  }
}
@media (max-width: 575px) {
  .o-listing__filters {
    margin-bottom: 1rem;
  }
}
.o-listing__filters .btn {
  border: 0;
  background-color: transparent;
  padding: 1rem;
  margin: 0;
  transition: color var(--transition);
  font-size: 30px;
  font-style: normal;
  font-weight: 500;
  line-height: 40px;
}
.o-listing__filters .btn {
  font-size: 24px;
  font-size: 1.3333333333rem;
  line-height: 1.2;
}
@media screen and (min-width: 1600px) {
  .o-listing__filters .btn {
    font-size: 30px;
    font-size: 1.6666666667rem;
    line-height: 1.2;
  }
}
@media screen and (min-width: 768px) and (max-width: 1600px) {
  .o-listing__filters .btn {
    font-size: calc(1.3333333333rem + 0.3333333333 * (100vw - 42.6666666667rem) / 46.2222222222);
  }
}
@media (max-width: 767px) {
  .o-listing__filters .btn {
    padding: 0 0.5rem;
  }
}
@media (max-width: 359px) {
  .o-listing__filters .btn {
    font-size: 18px;
    font-size: 1rem;
    line-height: 1.3;
  }
  .o-listing__filters .btn--dropdown {
    width: auto;
  }
}
.o-listing__filters .btn.active, .o-listing__filters .btn:hover {
  color: var(--c-red);
}
.o-listing__filters .btn--calendar {
  margin: 0 1rem 0 0;
}
@media (max-width: 767px) {
  .o-listing__filters .btn--calendar {
    margin: 0;
  }
}
.o-listing__filters .divider {
  height: 100%;
  width: 1px;
  padding-left: 0;
  padding-right: 0;
  margin: 0 0.5rem;
  display: block;
  background-color: var(--c-primary);
}
@media (max-width: 767px) {
  .o-listing__filters .divider {
    display: none;
    visibility: hidden;
  }
}
.o-listing__dropdown {
  z-index: 2;
  top: calc(100% + 1px);
  left: 0;
  width: 100% !important;
  background-color: var(--c-greyLight);
  box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
  padding: 2rem 1rem;
}
.o-listing__dropdown .show-results {
  margin: 20px 0 0 0;
}
.o-listing__dropdown .a-cols {
  display: flex;
  justify-content: center;
  align-items: flex-start;
}
@media (max-width: 575px) {
  .o-listing__dropdown .a-cols {
    flex-direction: column;
  }
}
.o-listing__dropdown-calendar {
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%);
  width: 50%;
}
@media (max-width: 991px) {
  .o-listing__dropdown-calendar {
    width: 100% !important;
  }
}
.o-listing__dropdown-calendar .DayPicker-NavBar {
  top: 0;
}
@media (max-width: 767px) {
  .o-listing__dropdown-calendar .DayPicker-NavBar {
    padding: 0;
    position: relative;
  }
}
.o-listing__dropdown-calendar .DayPicker-NavBar span {
  width: 20px;
  height: 20px;
}
.o-listing__dropdown-calendar .a-cols {
  flex-direction: column;
  align-items: center;
  position: relative;
}
.o-listing__dropdown-calendar-controls {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.o-listing__dropdown-calendar-controls p {
  margin-bottom: 1rem;
}
.o-listing__dropdown-calendar-controls__close {
  position: absolute;
  top: 0;
  right: 0;
  height: 20px;
  width: 20px;
  border: 0;
  text-indent: -9999px;
  white-space: nowrap;
  background-color: transparent;
  background-image: url(/wp-content/themes/pippip/dist/img/close.svg) !important;
  background-position: center;
  background-repeat: no-repeat;
  background-color: transparent;
  background-size: cover;
}
@media (max-width: 767px) {
  .o-listing__dropdown-calendar-controls__close {
    position: relative;
    margin: 0 0 calc(var(--gutter) * 2) auto;
  }
}
.o-listing__dropdown-taxonomy {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-gap: 20px;
  justify-content: center;
  margin: 0 1rem;
  margin-bottom: 40px;
}
@media (max-width: 991px) {
  .o-listing__dropdown-taxonomy {
    grid-template-columns: 1fr 1fr;
    grid-gap: 15px;
  }
}
@media (max-width: 767px) {
  .o-listing__dropdown-taxonomy {
    grid-template-columns: 1fr;
    grid-gap: 10px;
    margin-bottom: 15px;
  }
}
.o-listing__dropdown-taxonomy label {
  display: flex;
  justify-content: center;
  align-items: center;
  grid-gap: 10px;
}
.o-listing__dropdown-taxonomy label input {
  accent-color: #ffb81c;
  width: 15px;
  height: 15px;
}
.o-listing__dropdown-taxonomy h3 {
  width: 100%;
  text-align: center;
}
@media (max-width: 575px) {
  .o-listing__dropdown-taxonomy h3 {
    text-align: left;
  }
}
.o-listing__dropdown-taxonomy--filters {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 10px;
  width: 100%;
}
@media (max-width: 767px) {
  .o-listing__dropdown-taxonomy--filters {
    grid-template-columns: 1fr;
  }
}
.o-listing__dropdown-taxonomy--filters label {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-gap: 5px;
  align-items: center;
}
@media (max-width: 575px) {
  .o-listing__dropdown-taxonomy {
    margin: 0 0 1rem;
    max-width: none;
  }
  .o-listing__dropdown-taxonomy:last-child {
    margin-bottom: 0;
  }
}
.o-listing__dropdown .link {
  border: 0;
  padding: 0;
  border-bottom: 2px solid transparent;
  margin-bottom: 0.5rem;
  background-color: transparent;
  text-align: left;
}
.o-listing__dropdown .link:not(.a-btn) {
  border-bottom: none;
}
.o-listing__dropdown .link::after {
  display: none;
  visibility: hidden;
}
.o-listing__dropdown .link:hover, .o-listing__dropdown .link.active {
  border-bottom-color: var(--c-red);
}
.o-listing__multi-dropdown {
  margin: 0 10px 0 0;
  width: 100%;
  font-family: var(--fontBody);
}
.o-listing__multi-dropdown:last-of-type {
  margin: 0;
}
.o-listing__multi-dropdown > div {
  width: 100%;
  margin: 0;
}
.o-listing__multi-dropdown > div:after {
  content: "";
  color: var(--c-primary);
  font-family: var(--fontBody);
  position: absolute;
  top: 0;
  left: 20px;
  display: flex;
  align-items: center;
  height: 100%;
  pointer-events: none;
}
.o-listing__multi-dropdown > div[data-filter-name=What]:after {
  content: "What";
}
.o-listing__multi-dropdown > div[data-filter-name=Where]:after {
  content: "Where";
}
.o-listing__multi-dropdown > div[data-filter-name="Who for"]:after {
  content: "Who for";
}
.o-listing__multi-dropdown > div > label {
  display: none;
}
.o-listing__multi-dropdown > div > div {
  color: var(--c-primary);
  border-radius: 0;
  font-family: var(--fontBody);
}
.o-listing__multi-dropdown > div > div > div {
  border-width: 1px;
  border-radius: 0;
}
.o-listing__multi-dropdown > div > div > div:focus-visible {
  outline: 3px solid #000;
}
.o-listing__multi-dropdown > div > div > div:after {
  content: "";
  position: absolute;
  height: 13px;
  width: 13px;
  top: 50%;
  right: 10px;
  background-image: url("/wp-content/themes/pippip/dist/img/arrow-head.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: rotate(180deg) translateY(50%);
  transition: all var(--transition);
  pointer-events: none;
}
.o-listing__multi-dropdown > div > div > div[aria-expanded=true]:after {
  transform: rotate(0DEG) translateY(-50%);
}
.o-listing__multi-dropdown > div > div > div[aria-expanded=true] ~ fieldset {
  border-color: var(--c-red);
}
.o-listing__multi-dropdown > div > div > fieldset {
  top: 0px;
  border-color: var(--c-primary);
}
.o-listing__multi-dropdown > div > div > fieldset > legend {
  display: none;
}
.o-listing__multi-dropdown > div > div > fieldset > legend > span {
  opacity: 0;
}
.o-listing__multi-dropdown > div > div > svg {
  display: none;
}
.o-listing__multi-dropdowns {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: var(--gutter);
  width: 40%;
}
@media (max-width: 991px) {
  .o-listing__multi-dropdowns {
    width: 60%;
  }
}
@media (max-width: 767px) {
  .o-listing__multi-dropdowns {
    width: 100%;
    grid-template-columns: 1fr;
  }
}
.o-listing__checkbox > label {
  margin-left: auto;
}
.o-listing__checkbox > label > span {
  white-space: nowrap;
}
.o-listing__active-filters {
  padding: 0.5rem 0 0;
  background-color: var(--c-greyLight);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}
@media (max-width: 575px) {
  .o-listing__active-filters {
    margin-top: 0;
  }
}
.o-listing__active-filters .a-btn {
  margin-right: 1rem;
  padding: 0.25rem 0.5rem;
  text-transform: uppercase;
  font-size: var(--fontSmall);
  display: flex;
  justify-content: space-between;
  align-items: center;
  letter-spacing: 1px;
  margin-bottom: 0.5rem;
}
.o-listing__active-filters .a-btn span {
  display: inline-block;
  margin-left: 0.5rem;
  color: var(--c-red);
  line-height: 1;
  transition: color var(--transition);
}
.o-listing__active-filters .a-btn:hover {
  border-color: var(--c-red);
  background-color: var(--c-red);
  color: var(--c-white);
}
.o-listing__active-filters .a-btn:hover span {
  color: var(--c-white);
}
.o-listing .DayPicker-Months {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
@media (max-width: 575px) {
  .o-listing .DayPicker-Months {
    grid-template-columns: 1fr;
    gap: 0;
    font-size: var(--fontSmall);
  }
}
.o-listing .DayPicker-Month {
  width: 100%;
  margin: 0;
}
.o-listing .active-filters__reset .a-btn:focus-visible {
  outline-color: var(--c-primary);
}

/**
* ----------------------
* Un.titled
* Organisms - Person teaser
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.o-people--sm {
  margin-top: 1.5rem;
  display: grid;
  gap: 2rem;
  grid-template-columns: repeat(5, 1fr);
}
@media (max-width: 767px) {
  .o-people--sm {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (max-width: 575px) {
  .o-people--sm {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 359px) {
  .o-people--sm {
    grid-template-columns: 1fr;
  }
}
.o-people--sm .o-people__person {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.o-people--sm .o-people__person figure {
  margin-bottom: 1.5rem;
  order: -1;
  position: relative;
  height: 0;
  padding-top: 100%;
}
.o-people--sm .o-people__person img {
  position: absolute;
  top: 0;
  left: 0;
}
.o-people--sm .o-people__person h3 {
  margin-bottom: 0;
}
.o-people--sm .o-people__person h4 {
  font-family: var(--fontBody);
}
.o-people--lg .o-people__person {
  display: grid;
  grid-template-columns: 1fr 220px;
  gap: 2rem;
  border-top: 1px solid var(--c-primary);
  padding-top: 1.5rem;
  margin-top: 1.5rem;
}
.o-people--lg .o-people__person:first-of-type {
  margin-top: 0;
}
@media (max-width: 767px) {
  .o-people--lg .o-people__person {
    grid-template-columns: 1fr 150px;
  }
}
@media (max-width: 575px) {
  .o-people--lg .o-people__person {
    grid-template-columns: 1fr;
  }
  .o-people--lg .o-people__person img {
    max-width: 300px;
    width: 100%;
    height: auto;
    justify-self: center;
    order: -1;
  }
}
.o-people--sm .o-people__person h3 {
  font-size: 18px;
  font-size: 1rem;
  line-height: 1.3;
}
@media screen and (min-width: 1600px) {
  .o-people--sm .o-people__person h3 {
    font-size: 24px;
    font-size: 1.3333333333rem;
    line-height: 1.3;
  }
}
@media screen and (min-width: 768px) and (max-width: 1600px) {
  .o-people--sm .o-people__person h3 {
    font-size: calc(1rem + 0.3333333333 * (100vw - 42.6666666667rem) / 46.2222222222);
  }
}
@media (max-width: 767px) {
  .o-people--sm .o-people__person h3 {
    font-size: 18px;
    font-size: 1rem;
    line-height: 1.3;
  }
}
.o-people--sm .o-people__person h4 {
  font-size: 18px;
  font-size: 1rem;
  line-height: 1.3;
}
@media (max-width: 991px) {
  .o-people--sm .o-people__person h4 {
    font-size: 12px;
    font-size: 0.6666666667rem;
    line-height: 1.3;
  }
}
.o-people__person {
  text-decoration: none;
}
.o-people__person:not(.a-btn) {
  border-bottom: none;
}
.o-people__person::after {
  display: none;
  visibility: hidden;
}
.o-people__person .link {
  display: inline-block;
  margin-top: 1rem;
}
.o-people__person:hover h3,
.o-people__person:hover .link {
  text-decoration: underline;
}
.o-people__person:hover .link::after {
  background-color: currentColor;
}
.o-people__person:hover img {
  opacity: 0.7;
}
.o-people img {
  border-radius: 50%;
  overflow: hidden;
  transition: opacity var(--transition);
}

/**
* ----------------------
* Un.titled
* Organisms - Performances modal
* ----------------------
*/
/**
* Styling
*/
[data-modalOpen=true] {
  overflow: hidden;
}

.o-modal {
  border: 0;
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 25;
  visibility: hidden;
  justify-content: center;
  align-items: center;
  color: var(--c-primary);
}
.o-modal[data-visible=true] {
  display: flex;
  animation: fadeIn 0.2s ease-in-out forwards;
}
.o-modal[data-visible=false] {
  display: none;
  visibility: hidden;
}
@media (max-width: 767px) {
  .o-modal .a-cols {
    padding: 0;
  }
}
.o-modal--fullscreen {
  background-color: var(--c-primary);
  color: var(--c-white);
  padding: 2rem;
  overflow-y: scroll;
}
@media (max-width: 767px) {
  .o-modal--fullscreen {
    padding: 2rem 0;
  }
}
.o-modal--fullscreen .a-cols {
  max-height: 95vh;
  padding: 1rem 0 0;
}
.o-modal--fullscreen .o-modal__close {
  background-color: transparent;
  right: 2rem;
}
@media (max-width: 767px) {
  .o-modal--fullscreen .o-modal__close {
    right: 1rem;
  }
}
@media (max-width: 575px) {
  .o-modal--fullscreen .o-modal__close {
    right: 15px;
  }
}
.o-modal--fullscreen .o-modal__close path {
  stroke: var(--c-white);
}
.o-modal--fullscreen .o-modal__close:hover {
  background-color: var(--c-white);
}
.o-modal--fullscreen .o-modal__close:hover path {
  stroke: var(--c-primary);
}
.o-modal .m-social-links path {
  fill: var(--c-white);
}
.o-modal__close {
  position: absolute;
  height: 42px;
  width: 42px;
  background-color: var(--c-white);
  border-radius: 50%;
  padding: 0;
  margin: 0;
  top: 1rem;
  right: 1rem;
  border: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: background-color var(--transition);
}
@media (max-width: 575px) {
  .o-modal__close {
    right: 0.5rem;
    height: 35px;
    width: 35px;
  }
}
.o-modal__close svg {
  width: 20px;
}
@media (max-width: 575px) {
  .o-modal__close svg {
    width: 15px;
  }
}
.o-modal__close path {
  transition: stroke var(--transition);
}
.o-modal__close:hover {
  background-color: var(--c-primary);
}
.o-modal__close:hover path {
  stroke: var(--c-white);
}

#ccc #ccc-close.ccc-close--labelled {
  background-color: transparent !important;
  transition: all var(--transition);
}
#ccc #ccc-close.ccc-close--labelled:hover svg {
  animation: shake 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
}
#ccc #ccc-reject-settings.ccc-notify-button.ccc-reject-button {
  background-color: var(--c-white) !important;
  border-color: var(--c-primary) !important;
  color: var(--c-primary) !important;
}
#ccc #ccc-reject-settings.ccc-notify-button.ccc-reject-button > span {
  background-color: var(--c-white) !important;
  border-color: var(--c-primary) !important;
  color: var(--c-primary) !important;
}

@keyframes shake {
  10%, 90% {
    transform: translate3d(-1px, 0, 0);
  }
  20%, 80% {
    transform: translate3d(2px, 0, 0);
  }
  30%, 50%, 70% {
    transform: translate3d(-2px, 0, 0);
  }
  40%, 60% {
    transform: translate3d(2px, 0, 0);
  }
}
/**
* Templates
*/
/**
* ----------------------
* Un.titled
* Template - Posts
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
article {
  display: flex;
  flex-direction: column;
}
article .post-meta {
  margin-bottom: 2rem;
  padding: 0 2rem;
}
article .post-meta h1 {
  font-size: clamp(2rem, 5vw, 3.25rem);
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNBO0VEYUo7QUh1Wko7QUc5Wkk7RUNpWEEsOEJEL1d3QjtFQ2dYeEIsMkJEaFh3QjtFQ2lYeEIsc0JEalh3QjtFQ0ZwQjtFQUNBO0VBQ0E7QUpvYVI7O0FHeFpBO0VDbVdJLDhCRGxXb0I7RUNtV3BCLDJCRG5Xb0I7RUNvV3BCLHNCRHBXb0I7RUNmaEI7RUFDQTtFQUNBO0VEZUo7RUFDQTtFQUNBO0VBQ0EsYURyQmtCO0VDb0NkO0dBQ0E7RUFDQTtBSGlaUjtBR2hhSTtFQzJWQSw4QkR6VndCO0VDMFZ4QiwyQkQxVndCO0VDMlZ4QixzQkQzVndCO0VDeEJwQjtFQUNBO0VBQ0E7QUo0YlI7QUdqYUk7RUM2RUk7RUFHSjtFQUNBO0VEL0VJO0FIcWFSOztBSTVlUTtFQUNJO0dBRUk7QUo4ZWhCOztBSWpmUTtFQUNJO0dBRUk7QUptZmhCOztBSXRmUTtFQUNJO0dBRUk7QUp3ZmhCOztBSTNmUTtFQUNJO0dBRUk7QUo2ZmhCOztBSWhnQlE7RUFDSTtHQUVJO0FKa2dCaEI7O0FJcmdCUTtFQUNJO0dBRUk7QUp1Z0JoQjs7QUkxZ0JRO0VBQ0k7R0FFSTtBSjRnQmhCOztBSS9nQlE7RUFDSTtHQUVJO0FKaWhCaEI7O0FJcGhCUTtFQUNJO0dBRUk7QUpzaEJoQjs7QUl6aEJRO0VBQ0k7R0FFSTtBSjJoQmhCOztBSTloQlE7RUFDSTtHQUVJO0FKZ2lCaEI7O0FJbmlCUTtFQUNJO0dBRUk7QUpxaUJoQjs7QUdqZEE7RUN2RlE7SUFDSTtLQUVJO0VKMmlCZDtFSTlpQk07SUFDSTtLQUVJO0VKK2lCZDtFSWxqQk07SUFDSTtLQUVJO0VKbWpCZDtFSXRqQk07SUFDSTtLQUVJO0VKdWpCZDtFSTFqQk07SUFDSTtLQUVJO0VKMmpCZDtFSTlqQk07SUFDSTtLQUVJO0VKK2pCZDtFSWxrQk07SUFDSTtLQUVJO0VKbWtCZDtFSXRrQk07SUFDSTtLQUVJO0VKdWtCZDtFSTFrQk07SUFDSTtLQUVJO0VKMmtCZDtFSTlrQk07SUFDSTtLQUVJO0VKK2tCZDtFSWxsQk07SUFDSTtLQUVJO0VKbWxCZDtFSXRsQk07SUFDSTtLQUVJO0VKdWxCZDtBQUNGO0FHaGdCQTtFQzNGUTtJQUNJO0tBRUk7RUo2bEJkO0VJaG1CTTtJQUNJO0tBRUk7RUppbUJkO0VJcG1CTTtJQUNJO0tBRUk7RUpxbUJkO0VJeG1CTTtJQUNJO0tBRUk7RUp5bUJkO0VJNW1CTTtJQUNJO0tBRUk7RUo2bUJkO0VJaG5CTTtJQUNJO0tBRUk7RUppbkJkO0VJcG5CTTtJQUNJO0tBRUk7RUpxbkJkO0VJeG5CTTtJQUNJO0tBRUk7RUp5bkJkO0VJNW5CTTtJQUNJO0tBRUk7RUo2bkJkO0VJaG9CTTtJQUNJO0tBRUk7RUppb0JkO0VJcG9CTTtJQUNJO0tBRUk7RUpxb0JkO0VJeG9CTTtJQUNJO0tBRUk7RUp5b0JkO0FBQ0Y7QUc5aUJBO0VDL0ZRO0lBQ0k7S0FFSTtFSitvQmQ7RUlscEJNO0lBQ0k7S0FFSTtFSm1wQmQ7RUl0cEJNO0lBQ0k7S0FFSTtFSnVwQmQ7RUkxcEJNO0lBQ0k7S0FFSTtFSjJwQmQ7RUk5cEJNO0lBQ0k7S0FFSTtFSitwQmQ7RUlscUJNO0lBQ0k7S0FFSTtFSm1xQmQ7RUl0cUJNO0lBQ0k7S0FFSTtFSnVxQmQ7RUkxcUJNO0lBQ0k7S0FFSTtFSjJxQmQ7RUk5cUJNO0lBQ0k7S0FFSTtFSitxQmQ7RUlsckJNO0lBQ0k7S0FFSTtFSm1yQmQ7RUl0ckJNO0lBQ0k7S0FFSTtFSnVyQmQ7RUkxckJNO0lBQ0k7S0FFSTtFSjJyQmQ7QUFDRjtBRzVsQkE7RUNuR1E7SUFDSTtLQUVJO0VKaXNCZDtFSXBzQk07SUFDSTtLQUVJO0VKcXNCZDtFSXhzQk07SUFDSTtLQUVJO0VKeXNCZDtFSTVzQk07SUFDSTtLQUVJO0VKNnNCZDtFSWh0Qk07SUFDSTtLQUVJO0VKaXRCZDtFSXB0Qk07SUFDSTtLQUVJO0VKcXRCZDtFSXh0Qk07SUFDSTtLQUVJO0VKeXRCZDtFSTV0Qk07SUFDSTtLQUVJO0VKNnRCZDtFSWh1Qk07SUFDSTtLQUVJO0VKaXVCZDtFSXB1Qk07SUFDSTtLQUVJO0VKcXVCZDtFSXh1Qk07SUFDSTtLQUVJO0VKeXVCZDtFSTV1Qk07SUFDSTtLQUVJO0VK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QU9MO0VKbXZDTjtBQUNGO0FHbnFDQTtFQ2pFUTtJQWxCSiwyQkFGYTtLQUlUO0VKeXZDTjtFSXp1Q007SUFsQkosMkJBRmE7S0FJVDtFSjZ2Q047RUk3dUNNO0lBbEJKLGdCQUZhO0tBSVQ7RUppd0NOO0VJanZDTTtJQWxCSiwyQkFGYTtLQUlUO0VKcXdDTjtFSXJ2Q007SUFsQkosMkJBRmE7S0FJVDtFSnl3Q047RUl6dkNNO0lBbEJKLGdCQUZhO0tBSVQ7RUo2d0NOO0VJN3ZDTTtJQWxCSiwyQkFGYTtLQUlUO0VKaXhDTjtFSWp3Q007SUFsQkosMkJBRmE7S0FJVDtFSnF4Q047RUlyd0NNO0lBbEJKLGdCQUZhO0tBSVQ7RUp5eENOO0VJendDTTtJQWxCSiwyQkFGYTtLQUlUO0VKNnhDTjtFSTd3Q007SUFsQkosMEJBRmE7S0FJVDtFSml5Q047RUlqeENNO0lBbEJKLGNBTFM7S0FPTDtFSnF5Q047QUFDRjtBR2p0Q0E7RUNyRVE7SUFsQkosMkJBRmE7S0FJVDtFSjJ5Q047RUkzeENNO0lBbEJKLDJCQUZhO0tBSVQ7RUoreUNOO0VJL3hDTTtJQWxCSixnQkFGYTtLQUlUO0VKbXpDTjtFSW55Q007SUFsQkosMkJBRmE7S0FJVDtFSnV6Q047RUl2eUNNO0lBbEJKLDJCQUZhO0tBSVQ7RUoyekNOO0VJM3lDTTtJQWxCSixnQkFGYTtLQUlUO0VKK3pDTjtFSS95Q007SUFsQkosMkJBRmE7S0FJVDtFSm0wQ047RUluekNNO0lBbEJKLDJCQUZhO0tBSVQ7RUp1MENOO0VJdnpDTTtJQWxCSixnQkFGYTtLQUlUO0VKMjBDTjtFSTN6Q007SUFsQkosMkJBRmE7S0FJVDtFSiswQ047RUkvekNNO0lBbEJKLDBCQUZhO0tBSVQ7RUptMUNOO0VJbjBDTTtJQWxCSixjQUxTO0tBT0w7RUp1MUNOO0FBQ0Y7QUcvdkNBO0VDekVRO0lBbEJKLDJCQUZhO0tBSVQ7RUo2MUNOO0VJNzBDTTtJQWxCSiwyQkFGYTtLQUlUO0VKaTJDTjtFSWoxQ007SUFsQkosZ0JBRmE7S0FJVDtFSnEyQ047RUlyMUNNO0lBbEJKLDJCQUZhO0tBSVQ7RUp5MkNOO0VJejFDTTtJQWxCSiwyQkFGYTtLQUlUO0VKNjJDTjtFSTcxQ007SUFsQkosZ0JBRmE7S0FJVDtFSmkzQ047RUlqMkNNO0lBbEJKLDJCQUZhO0tBSVQ7RUpxM0NOO0VJcjJDTTtJQWxCSiwyQkFGYTtLQUlUO0VKeTNDTjtFSXoyQ007SUFsQkosZ0JBRmE7S0FJVDtFSjYzQ047RUk3MkNNO0lBbEJKLDJCQUZhO0tBSVQ7RUppNENOO0VJajNDTTtJQWxCSiwwQkFGYTtLQUlUO0VKcTRDTjtFSXIzQ007SUFsQkosY0FMUztLQU9MO0VKeTRDTjtBQUNGO0FHN3lDQTtFQzdFUTtJQWxCSiwyQkFGYTtLQUlUO0VKKzRDTjtFSS8zQ007SUFsQkosMkJBRmE7S0FJVDtFSm01Q047RUluNENNO0lBbEJKLGdCQUZhO0tBSVQ7RUp1NUNOO0VJdjRDTTtJQWxCSiwyQkFGYTtLQUlUO0VKMjVDTjtFSTM0Q007SUFsQkosMkJBRmE7S0FJVDtFSis1Q047RUkvNENNO0lBbEJKLGdCQUZhO0tBSVQ7RUptNkNOO0VJbjVDTTtJQWxCSiwyQkFGYTtLQUlUO0VKdTZDTjtFSXY1Q007SUFsQkosMkJBRmE7S0FJVDtFSjI2Q047RUkzNUNNO0lBbEJKLGdCQUZhO0tBSVQ7RUorNkNOO0VJLzVDTTtJQWxCSiwyQkFGYTtLQUlUO0VKbTdDTjtFSW42Q007SUFsQkosMEJBRmE7S0FJVDtFSnU3Q047RUl2NkNNO0lBbEJKLGNBTFM7S0FPTDtFSjI3Q047QUFDRjtBS3RpREE7RUR5TEksbUJDeExtQjtFRHlMbkIsdUJDekxtQjtFRDBMbkIsZUMxTG1CO0FMMGlEdkI7O0FLdmlEQTtFRHFMSSxxQkNwTG1CO0VEcUxuQix5QkNyTG1CO0VEc0xuQixpQkN0TG1CO0FMNGlEdkI7QUt2aURJO0VENEpBLG9CQzNKeUI7RUQ0SnpCLHNCQzVKeUI7RUQ2SnpCLGNDN0p5QjtBTDJpRDdCOztBS3ZpREE7RUQwS0ksMkJDekttQjtFRDBLbkIsK0JDMUttQjtFRDJLbkIsdUJDM0ttQjtBTDRpRHZCOztBS3JpREE7RUR3S0ksdUJDdkt3QjtFRHdLeEIsMkJDeEt3QjtFRHlLeEIsbUJDekt3QjtBTDBpRDVCOztBS3ZpREE7RURvS0ksK0JDbkt3QjtFRG9LeEIsbUNDcEt3QjtFRHFLeEIsMkJDckt3QjtBTDRpRDVCOztBS3ppREE7RURnS0ksMEJDL0p3QjtFRGdLeEIsOEJDaEt3QjtFRGlLeEIsc0JDakt3QjtBTDhpRDVCOztBSzNpREE7RUQ0Skksa0NDM0p3QjtFRDRKeEIsc0NDNUp3QjtFRDZKeEIsOEJDN0p3QjtBTGdqRDVCOztBS3ppREE7RURxTFE7RUF0QkosK0JDOUpxQjtFRCtKckIsdUJDL0pxQjtBTDhpRHpCOztBSzNpREE7RURtTFE7RUF4QkosNkJDMUpxQjtFRDJKckIscUJDM0pxQjtBTGdqRHpCO0FLNWlEUTtFQUNJO0FMOGlEWjs7QUt6aURBO0VEMEtRLHNCQ3pLaUI7RUQrSXJCLDJCQy9JcUI7RURnSnJCLG1CQ2hKcUI7QUw4aUR6QjtBSzFpRFE7RUFDSTtBTDRpRFo7O0FLdmlEQTtFRCtKUSx3QkM5SmlCO0VEb0lyQiw2QkNwSXFCO0VEcUlyQixxQkNySXFCO0FMNGlEekI7O0FLcmlEQTtFRHVLUTtFQTlCSixpQ0N4SXVCO0VEeUl2Qix5QkN6SXVCO0FMMGlEM0I7O0FLdmlEQTtFRHFLUTtFQWhDSiwrQkNwSXVCO0VEcUl2Qix1QkNySXVCO0FMNGlEM0I7QUt6aURJO0VBQ0k7QUwyaURSOztBS3ZpREE7RURrS1EsMEJDakttQjtFRDJIdkIsNkJDM0h1QjtFRDRIdkIscUJDNUh1QjtBTDRpRDNCOztBS3ppREE7RUQwSlE7RUFsQ0osb0NDdkh1QjtFRHdIdkIsNEJDeEh1QjtBTDhpRDNCOztBSzNpREE7RUR3SlE7RUFwQ0osbUNDbkh1QjtFRG9IdkIsMkJDcEh1QjtBTGdqRDNCOztBS3ppREE7RURvSVEsNEJDbklnQjtFRHFHcEIsMkJDckdvQjtFRHNHcEIsbUJDdEdvQjtBTDhpRHhCOztBSzNpREE7RUQ0SFE7RUExQkosOEJDakdvQjtFRGtHcEIsc0JDbEdvQjtBTGdqRHhCOztBSzdpREE7RUQwSFE7RUE1QkosNEJDN0ZvQjtFRDhGcEIsb0JDOUZvQjtFQUNwQjtBTGtqREo7O0FLL2lEQTtFRHVIUSwyQkN0SGdCO0VEd0ZwQiwwQkN4Rm9CO0VEeUZwQixrQkN6Rm9CO0VBQ3BCO0FMb2pESjs7QUtqakRBO0VEa0hRLDZCQ2pIZ0I7RURtRnBCLDRCQ25Gb0I7RURvRnBCLG9CQ3BGb0I7RUFDcEI7QUxzakRKOztBSy9pREE7RURvSUk7RUFDQTtFQUNBO0FKKzZDSjtBS2pqRFE7RUFDSTtBTG1qRFo7O0FLOWlEQTtFRGdJSTtFQUNBO0VBQ0E7QUprN0NKO0FLaGpEUTtFQUNJO0VBQ0E7RUFDQTtBTGtqRFo7QUtoakRZO0VEekZSO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSjRvREo7O0FLampEQTtFRHNISTtFQUNBO0VBQ0E7QUorN0NKO0FLbmpEUTtFQUNJO0VBQ0E7RUFDQTtBTHFqRFo7QUtuakRZO0VEekdSO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSitwREo7O0FLcGpEQTtFRDRHSTtFQUNBO0VBQ0E7QUo0OENKO0FLdGpEUTtFQUNJO0VBQ0E7RUFDQTtBTHdqRFo7QUt0akRZO0VEekhSO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSmtyREo7O0FLdmpEQTtFRGtHSTtFQUNBO0VBQ0E7QUp5OUNKO0FLempEUTtFQUNJO0VBQ0E7RUFDQTtBTDJqRFo7QUt6akRZO0VEeklSO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSnFzREo7O0FLcGpESTtFQUNJO0FMdWpEUjs7QUs5aURBO0VEcEZJO0VBQ0E7RUFDQTtFQWtEQSwwQkNrQ3dCO0VEakN4Qiw4QkNpQ3dCO0VEaEN4QixzQkNnQ3dCO0FMcWpENUI7QUtuakRJO0VEcENBLHVCQ3FDNEI7RURwQzVCLDJCQ29DNEI7RURuQzVCLG1CQ21DNEI7QUx1akRoQzs7QUtsakRBO0VBQ0k7QUxxakRKOztBS2pqREE7RUFDSTtBTG9qREo7O0FLaGpEQTtFQUNJO0FMbWpESjs7QUs1aURBO0VBQ0k7RURwR0k7RUFHSjtFQUNBO0VDa0dBO0VBQ0E7RUFDQTtHQUVJO0FMZ2pE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eUMxMkhNO0VBQ0U7RUFDQTtFQUNBO0F6QzQySFI7QXlDMTJIUTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBekM0MkhWO0F5Q3IySEk7RUFDRTtBekN1MkhOO0FrQjc0R0k7RXVCM2RBO0lBR0k7RXpDeTJITjtBQUNGO0F5Q3QySFE7RUFDRTtFQUNBO0F6Q3cySFY7QXlDbDJITTtFQUNFO0F6Q28ySFI7QWtCejVHSTtFdUI1Y0U7SUFHRTtFekNzMkhOO0FBQ0Y7QXlDbDJISTs7RUFFRTtBekNvMkhOO0F5Q24ySE07O0VBQ0U7QXpDczJIUjtBa0J0NkdJO0V1QmpjRTs7SUFHSTtFekN5MkhSO0FBQ0Y7QXlDeDJIUTs7RUFDRTtBekMyMkhWO0F5Q3IySE07RUFDRTtBekN1MkhSO0EwQ3o5SEE7RUFDRTtBMUMyOUhGO0EwQ3o5SEU7RUFDRTtBMUMyOUhKO0EyQy85SEE7RUFDRTtFQUNBO0EzQ2krSEY7QWtCNzdHSTtFeUJ0aUJKO0lBS0k7RTNDaytIRjtBQUNGO0EyQ2grSEU7RUFDRTtFQUNBO0VBQ0E7QTNDaytISjtBU3A4SEU7RUFDRTtBVHM4SEo7QVNuOEhFO0VBQ0U7RUFDQTtBVHE4SEo7QTRDbitIQTtFQUNFO0E1Q3ErSEY7QTRDbitIRTtFQUNFO0VBQ0E7RUFDQTtBNUNxK0hKO0E0Q2wrSEU7RUFDRTtBNUNvK0hKO0E0Q2orSEU7RUFDRTtBNUNtK0hKO0E0Q2grSEU7RUFDRTtFQUNBO0VBQ0E7QTVDaytISjtBNENoK0hJO0VBQ0U7QTVDaytITjtBNEMvOUhJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QTVDaStITjtBNEMvOUhNO0VBQ0U7QTVDaStIUjtBNEM3Z0lJO0VBQ0U7RUFDQTtBNUMrZ0lOO0E0Q2poSUk7RUFDRTtFQUNBO0E1Q21oSU47QTRDcmhJSTtFQUNFO0VBQ0E7QTVDdWhJTjtBNEN6aElJO0VBQ0U7RUFDQTtBNUMyaElOO0E0QzdoSUk7RUFDRTtFQUNBO0E1QytoSU47QTZDdGlJRTtFQUNFO0E3Q3dpSUo7QTZDcmlJRTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7T0FBQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E3Q3NpSUo7QVMvZ0lFO0VBQ0U7QVRpaElKO0FTOWdJRTtFQUNFO0VBQ0E7QVRnaElKO0E2QzNpSUk7RUFDRTtFcENBSjtFQUNBO0VBQ0Esd0JvQ0RvQjtFQUNoQjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E3QytpSU47QTZDNWlJSTtFQUNFO0E3QzhpSU47QTZDM2lJSTtFQUVFO0VBQ0E7QTdDNGlJTjtBNkN6aUlNO0VBQ0U7QTdDMmlJUjtBNkN2aUlJO0VBQ0U7RUFDQTtBN0N5aUlOO0E2Q3JpSUU7RUFDRTtBN0N1aUlKO0E2Q3JpSUk7RUFDRTtBN0N1aUlOO0E2Q25pSUU7RUFDRTtBN0NxaUlKO0E2Q2xpSUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTdDb2lJSjtBNkNsaUlJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E3Q29pSU47QTZDaGlJSTtFQUNFO0E3Q2tpSU47QThDMW5JQTtFQUNFO0VBQ0E7QTlDNG5JRjtBa0J4bEhJO0U0QnRpQko7SUFLSTtJQUNBO0U5QzZuSUY7QUFDRjtBa0I5bEhJO0U0QnRpQko7SUFVSTtFOUM4bklGO0FBQ0Y7QThDNW5JRTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0E5QzZuSUo7QVN0bUlFO0VBQ0U7QVR3bUlKO0FTcm1JRTtFQUNFO0VBQ0E7QVR1bUlKO0E4Q2xvSUk7RUFDRTtBOUNvb0lOO0E4Q2hvSUU7RUFDRTtBOUNrb0lKO0E4Qy9uSUU7RUFDRTtBOUNpb0lKO0E4QzluSUU7RUFDRTtBOUNnb0lKO0FrQjVuSEk7RTRCcmdCRjtJQUdJO0lBQ0E7RTlDa29JSjtBQUNGO0E4Qy9uSUU7RUFDRTtBOUNpb0lKO0FrQnJvSEk7RTRCN2ZGO0lBR0k7RTlDbW9JSjtBQUNGO0E4Q2xvSUk7RUFDRTtBOUNvb0lOO0ErQ25ySUE7RUFDRTtFQUNBO0VBQ0E7QS9DcXJJRjtBa0JscEhJO0U2QnRpQko7SUFNSTtJQUNBO0UvQ3NySUY7QUFDRjtBK0NwcklFO0VBQ0U7QS9Dc3JJSjtBa0IzcEhJO0U2QjVoQkY7SUFJSTtFL0N1cklKO0FBQ0Y7QStDcnJJSTtFQUNFO0EvQ3VySU47QWtCbnFISTtFNkJyaEJBO0lBSUk7RS9Dd3JJTjtBQUNGO0FnRHRzSUU7RUFDRTtFQUNBO0FoRHdzSUo7QWdEcHNJTTtFQUNFO0FoRHNzSVI7QWdEbHNJSTtFQUNFO0FoRG9zSU47QWdEanNJSTtFQUNFO0VBQ0E7QWhEbXNJTjtBZ0QvcklFO0VBQ0U7RUFDQTtBaERpc0lKO0FrQjFySEk7RThCcGdCRjtJQUVJO0lBQ0E7SUFDQTtFaERnc0lKO0FBQ0Y7QWtCanNISTtFOEJwZ0JGO0lBUUk7RWhEaXNJSjtBQUNGO0FnRDlySUU7RUFDRTtFQUNBO0FoRGdzSUo7QWdENXJJSTtFQUNFO0FoRDhySU47QWlEbHZJRTtFQUNFO0FqRG92SUo7QWtEcnZJRTtFQUNFO0VBQ0E7T0FBQTtFQUNBO0VBQ0E7RUFDQTtBbER1dklKO0FrRHJ2SUk7RUFDRTtBbER1dklOO0FrRHB2SUk7O0VBRUU7QWxEc3ZJTjtBa0RsdklNO0VBQ0U7RUFDQTtBbERvdklSO0FrRC91SU07RUFDRTtBbERpdklSO0FrRDV1SU07RUFDRTtBbEQ4dUlSO0FtRDd3SUU7RUFDRTtBbkQrd0lKO0FtRDV3SUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FuRDh3SUo7QWtCbHZISTtFaUNqaUJGO0lBUUk7SUFDQTtFbkQrd0lKO0FBQ0Y7QWtCeHZISTtFaUNqaUJGO0lBYUk7SUFDQTtFbkRneElKO0FBQ0Y7QVMzdklFO0VBQ0U7QVQ2dklKO0FTMXZJRTtFQUNFO0VBQ0E7QVQ0dklKO0FtRGx4SU07RUFDRTtBbkRveElSO0FtRGp4SU07RUFDRTtBbkRteElSO0FtRGp4SVE7RUFDRTtBbkRteElWO0FtRGh4SU07RUFDRTtBbkRreElSO0FtRDl3SUk7RUFDRTtFQUNBO0VBQ0E7QW5EZ3hJTjtBbUQ5d0lNOztFQUVFO0FuRGd4SVI7QW1EN3dJTTtFQUNFO0VBQ0E7QW5EK3dJUjtBbUQzd0lJO0VBQ0U7RUFDQTtFQUNBO0FuRDZ3SU47QW9EejBJQTtFQUNFO0VBQ0E7QXBEMjBJRjtBb0R6MElFO0VBQ0U7QXBEMjBJSjtBb0R4MElFO0VBQ0U7QXBEMDBJSjtBa0I3eUhJO0VrQ3RpQko7SUFhSTtJQUNBO0VwRDAwSUY7QUFDRjtBa0JuekhJO0VrQ3RpQko7SUFrQkk7RXBEMjBJRjtBQUNGO0FvRHYwSUU7RUFDRTtBcER5MElKO0FxRGoySUE7RUFDRTtFQUNBO0VBQ0E7QXJEbTJJRjtBa0JoMEhJO0VtQ3RpQko7SUFNSTtFckRvMklGO0FBQ0Y7QVNsMElFO0VBQ0U7QVRvMElKO0FTajBJRTtFQUNFO0VBQ0E7QVRtMElKO0FxRHQySUk7RUFDRTtBckR3MklOO0FxRHAySUU7RUFDRTtFQUNBO0FyRHMySUo7QXFEbDJJSTtFQUNFO0VBQ0E7RUFDQTtBckRvMklOO0FzRDkzSUE7RUFDRTtBdERnNElGO0FrQjMxSEk7RW9DdGlCSjtJQUlJO0V0RGk0SUY7QUFDRjtBdUR0NElBO0VBQ0U7QXZEdzRJRjtBdUR0NElFO0VBQ0U7QXZEdzRJSjtBd0QzNElFO0VBQ0U7RUFDQTtBeEQ2NElKO0F5RDc0SUk7RUFDRTtBekQrNElOO0F5RDE0SUk7RUFDRTtBekQ0NElOO0F5RHg0SUU7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXpEeTRJSjtBU3IzSUU7RUFDRTtBVHUzSUo7QVNwM0lFO0VBQ0U7RUFDQTtBVHMzSUo7QWtCLzNISTtFdUN4aEJGO0lBVUk7SUFDQTtFekRpNUlKO0FBQ0Y7QXlELzRJSTtFQUNFO0F6RGk1SU47QXlELzRJTTtFQUNFO0F6RGk1SVI7QXlENzRJSTtFQUNFO0F6RCs0SU47QTBEbjdJRTtFQUNFO0VBQ0E7RUFDQTtBMURxN0lKO0EwRG43SUk7RUFDRTtBMURxN0lOO0EyRDU3SUE7RUFDRTtFQUNBO0VBQ0E7QTNEODdJRjtBa0IzNUhJO0V5Q3RpQko7SUFNSTtFM0QrN0lGO0FBQ0Y7QWtCaDZISTtFeUN0aUJKO0lBVUk7RTNEZzhJRjtBQUNGO0EyRDk3SUU7RUFDRTtFQUNBO0VBQ0E7QTNEZzhJSjtBMkQ3N0lFO0VBQ0U7RUFDQTtBM0QrN0lKO0EyRDU3SUU7RUFDRTtFQUNBO0VBQ0E7QTNEODdJSjtBNER4OUlFO0VBQ0U7QTVEMDlJSjtBa0J0N0hJO0UwQ3JpQkY7SUFJSTtFNUQyOUlKO0FBQ0Y7QTREeDlJRTtFQUNFO0VBQ0E7RUFDQTtFQUVBO0E1RHk5SUo7QWtCajhISTtFMEM3aEJGO0lBUUk7SUFDQTtJQUVBO0U1RHk5SUo7QUFDRjtBa0J4OEhJO0UwQzdoQkY7SUFlSTtFNUQwOUlKO0FBQ0Y7QTZEbC9JRTtFQUNFO0VBQ0E7RUFDQTtBN0RvL0lKO0E2RGwvSUk7RUFDRTtBN0RvL0lOO0E2RGovSUk7RUFDRTtBN0RtL0lOO0E2RGgvSVE7RUFDRTtBN0RrL0lWO0E4RGhnSkU7RUFDRTtFQUNBO0E5RGtnSko7QStEcGdKRTtFQUNFO0VBQ0E7QS9Ec2dKSjtBK0RwZ0pJO0VBQ0U7QS9Ec2dKTjtBK0RuZ0pJO0VBQ0U7QS9EcWdKTjtBK0RsZ0pJO0VBQ0U7QS9Eb2dKTjtBK0RqZ0pJO0VBQ0U7QS9EbWdKTjtBa0IvK0hJO0U2Q3JpQkY7SUFxQkk7SUFDQTtFL0RtZ0pKO0FBQ0Y7QWtCci9ISTtFNkNyaUJGO0lBMEJJO0UvRG9nSko7QUFDRjtBK0RqZ0pFO0VBQ0U7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0EvRGtnSko7QWtCbGdJSTtFNkN2Z0JGO0lBVUk7RS9EbWdKSjtBQUNGO0ErRGpnSkk7RUFDRTtFQUNBO0EvRG1nSk47QStEamdKTTtFQUNFO0EvRG1nSlI7QXlFM2pKQTtFQUNFO0F6RTZqSkY7QXlFM2pKRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBekU2akpKO0FrQnpoSUk7RXVEMWlCRjtJQVNJO0V6RThqSko7QUFDRjtBeUU1akpJO0VBQ0U7QXpFOGpKTjtBeUU1akpNO0VBQ0U7QXpFOGpKUjtBeUV6akpNO0VBQ0U7QXpFMmpKUjtBeUVuakpRO0VBQ0U7QXpFcWpKVjtBeUVsakpRO0VBQ0U7QXpFb2pKVjtBeUVsakpVO0VBRUU7QXpFbWpKWjtBZS9rSlE7RUM4Qko7RUFDQTtFQWlCUTtBaEJvaUpaO0FlaGxKZ0I7RUFKUjtJQzhCSjtJQUNBO0lBaUJRO0VoQjBpSlY7QUFDRjtBZW5sSmdCO0VBUlI7SUFlWTtFZmdsSmxCO0FBQ0Y7QXlFaGtKUTtFQUNFO0VBQ0E7QXpFa2tKVjtBeUUvakpRO0VBQ0U7QXpFaWtKVjtBZ0U5bUpDO0VBQ0c7RUFDQTtBaEVnbkpKO0FrQjVrSUk7RThDdGlCSDtJQUtLO0lBQ0E7RWhFaW5KSjtBQUNGO0FrQmxsSUk7RThDdGlCSDtJQVVLO0VoRWtuSko7QUFDRjtBZ0VobkpJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWhFa25KTjtBa0JobUlJO0U4Q3poQkE7SUFVSTtFaEVtbkpOO0FBQ0Y7QWdFam5KTTtFQUNFO0VBQ0E7QWhFbW5KUjtBaUUvb0pBO0VBQ0U7QWpFaXBKRjtBaUUvb0pFO0VBQ0U7QWpFaXBKSjtBa0IvbUlJO0UrQ25pQkY7SUFJSTtFakVrcEpKO0FBQ0Y7QWlFaHBKSTtFQUNFO0FqRWtwSk47QWtCdm5JSTtFK0M1aEJBO0lBSUk7RWpFbXBKTjtBQUNGO0FpRXhuSkU7RUFDRTtFQUNBO0FqRTBuSko7QWtCaG9JSTtFK0M1ZkY7SUFLSTtFakUybkpKO0FBQ0Y7QWtFM3FKQTtFQUNFO0VBQ0E7QWxFNnFKRjtBa0UzcUpFO0VBQ0U7RUFDQTtBbEU2cUpKO0FrRTFxSkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWxFNHFKSjtBa0JycElJO0VnRDdoQkY7SUFTSTtFbEU2cUpKO0FBQ0Y7QVN2cEpFO0VBQ0U7QVR5cEpKO0FTdHBKRTtFQUNFO0VBQ0E7QVR3cEpKO0FrRS9xSk07RUFDRTtBbEVpckpSO0FrRTdxSkk7RUFDRTtBbEUrcUpOO0FrRTdxSk07RUFDRTtBbEUrcUpSO0FtRS9zSkU7RUFDRTtBbkVpdEpKO0FtRS9zSkU7RUFDRTtFQUNBO0VBQ0E7QW5FaXRKSjtBb0VydEpNO0VBQ0U7QXBFdXRKUjtBb0VudEpJOztFQUVFO0FwRXF0Sk47QWtCenJJSTtFa0Q5aEJBOztJQUtJO0VwRXV0Sk47QUFDRjtBb0VwdEpJOzs7Ozs7RUFNRTtFQUNBO0VBQ0E7QXBFc3RKTjtBb0VudEpJOztFQUVFO0VBQ0E7RUFDQTtFQUNBO0FwRXF0Sk47QW9FbHRKSTtFQUNFO0VBQ0E7RS9DaENKO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXJCcXZKRjtBUzV0SkU7RUFDRTtBVDh0Sko7QVMzdEpFO0VBQ0U7RUFDQTtBVDZ0Sko7QXFCMXZKRTtFQUNFO0FyQjR2Sko7QXFCenZKRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FyQjJ2Sko7QXFCeHZKRTtFQUNFO0FyQjB2Sko7QW9FL3VKTTtFL0NOSjtFQUNBO0UrQ1FNO0VBQ0E7QXBFaXZKUjtBcUJ4dkpFO0VBQ0U7QXJCMHZKSjtBb0U5dUpBOztFQUVFO0FwRWd2SkY7QW9FL3VKRTs7RUFDRTtBcEVrdkpKO0FxRXh5SkU7RUFDRTtBckUweUpKO0F1RTN5SkU7RUFDRTtFQUNBO0VBQ0E7QXZFNnlKSjtBa0Izd0lJO0VxRHJpQkY7SUFLSTtFdkUreUpKO0FBQ0Y7QXVFOXlKSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0F2RWd6Sk47QXVFL3lKTTtFQUNFO0F2RWl6SlI7QXVFL3lKTTtFQUNFO0F2RWl6SlI7QXVFL3lKTTtFQUNFO0F2RWl6SlI7QXVFOXlKUTtFQUNFO0F2RWd6SlY7QXVFM3lKRTtFQUNFO0VBQ0U7QXZFNnlKTjtBdUU1eUpNO0VBQ0U7RUFDQTtFbEQ1Qk47RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBckIyMEpGO0FTbHpKRTtFQUNFO0FUb3pKSjtBU2p6SkU7RUFDRTtFQUNBO0FUbXpKSjtBcUJoMUpFO0VBQ0U7QXJCazFKSjtBcUIvMEpFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QXJCaTFKSjtBcUI5MEpFO0VBQ0U7QXJCZzFKSjtBdUV6MEpRO0VsREZOO0VBQ0E7QXJCODBKRjtBcUI1MEpFO0VBQ0U7QXJCODBKSjtBd0VyM0pBO0VBQ0U7RUFDQTtFQUNBO0F4RXUzSkY7QWtCcDFJSTtFc0R0aUJKO0lBS0k7RXhFeTNKRjtBQUNGO0EwRXA0Skk7RUFDSTtBMUVzNEpSO0FrQjUxSUk7RXdEM2lCQTtJQUlRO0UxRXU0SlY7QUFDRjtBa0JqMklJO0V3RDNpQkE7SUFRUTtFMUV3NEpWO0FBQ0Y7QTBFdDRKUTtFQUNJO0ExRXc0Slo7QTJFdDVKQTtFQUNFO0VBQ0E7RUFDQTtBM0V3NUpGO0EyRXQ1SkU7RUFDRTtFQUNBO0EzRXc1Sko7QWtCbDNJSTtFeURsaUJBO0lBQ0U7RTNFdTVKSjtBQUNGO0EyRXA1SkU7RUFDRTtFQUNBO0VBQ0E7QTNFczVKSjtBMkVuNUpFO0VoRXJCRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBWDI2Sko7QTJFMTVKSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0tBQUE7QTNFNDVKUjtBMkUxNUpJO0VBQ0k7RUFDQTtFQUNBO0EzRTQ1SlI7QWtCbjVJSTtFeURqZ0JBO0lBQ0k7RTNFdTVKTjtBQUNGO0EyRWw1SkU7RUFDSTtBM0VvNUpOOztBeUNyeUpBO0VBQ0U7QXpDd3lKRjs7QTRFNThKQTs7Ozs7RUFBQTtBQU9BOzs7Ozs7O0VBT0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTVFODhKRjtBNEU1OEpFOzs7Ozs7O0VBQ0U7QTVFbzlKSjs7QTRFaDlKQTs7O0VBR0U7QTVFbTlKRjs7QTRFaDlKQTs7RUFFRTtBNUVtOUpGOztBNEVoOUpBO0VBQ0U7S0FBQTtVQUFBO0E1RW05SkY7O0E0RS84SkU7RUFDRTtBNUVrOUpKO0E0RS84SkU7RUFDRTtFQUNBO0E1RWk5Sko7QTRFNThKSTs7RUFDRTtBNUUrOEpOOztBNkV6Z0tBOzs7OztFQUFBO0FBT0E7RUFDRTtFQUNBO0VBQ0E7QTdFMmdLRjtBa0J4K0lJO0UyRHRpQko7SUFNSTtJQUNBO0lBQ0E7RTdFNGdLRjtBQUNGO0E2RTFnS0U7RUFDRTtFQUNBO0VBQ0E7QTdFNGdLSjtBa0JwL0lJO0UyRDNoQkY7SUFNSTtJQUNBO0lBQ0E7RTdFNmdLSjtBQUNGO0FrQjMvSUk7RTJEM2hCRjtJQVlJO0lBQ0E7SUFDQTtFN0U4Z0tKO0U2RTVnS0k7SUFDRTtFN0U4Z0tOO0U2RTNnS0k7SUFDRTtFN0U2Z0tOO0FBQ0Y7QWtCeGdKSTtFMkQzaEJGO0lBMEJJO0U3RTZnS0o7QUFDRjtBNkUzZ0tJO0VBQ0U7RUFDQTtFQUNBO0E3RTZnS047QWtCbGhKSTtFMkQ5ZkE7SUFNSTtFN0U4Z0tOO0FBQ0Y7QWtCdmhKSTtFMkQ5ZkE7SUFVSTtJQUNBO0U3RStnS047QUFDRjtBa0I3aEpJO0UyRDVlRTs7O0lBR0U7SUFDQTtFN0U0Z0tOO0FBQ0Y7QWtCcmlKSTtFMkQ5ZUY7SUFVSTtFN0U2Z0tKO0FBQ0Y7QWtCMWlKSTtFMkRoZUY7SUFFSTtJQUNBO0lBQ0E7RTdFNGdLSjtBQUNGO0FrQmpqSkk7RTJEaGVGO0lBUUk7SUFDQTtJQUNBO0U3RTZnS0o7QUFDRjtBa0J4akpJO0UyRG5kQTtJQUVJO0U3RTZnS047QUFDRjtBNkUzZ0tNO0VBQ0U7QTdFNmdLUjtBNkUzZ0tRO0VBQ0U7QTdFNmdLVjtBNkV2Z0tNO0VBQ0U7QTdFeWdLUjtBNkVwZ0tFO0VBQ0U7QTdFc2dLSjtBNkVuZ0tFO0VBRUU7QTdFb2dLSjtBU3prS0U7RUFDRTtBVDJrS0o7QVN4a0tFO0VBQ0U7RUFDQTtBVDBrS0o7QTZFeGdLRTtFQUNFO0VBQ0E7QTdFMGdLSjtBa0J2bEpJO0UyRHJiRjtJQUtJO0U3RTJnS0o7QUFDRjtBa0I1bEpJO0UyRHJiRjtJQVNJO0U3RTRnS0o7QUFDRjtBa0JqbUpJO0UyRHJiRjtJQWFJO0U3RTZnS0o7QUFDRjtBNkUxZ0tFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBN0U0Z0tKO0FrQjdtSkk7RTJEcGFGO0lBUUk7RTdFNmdLSjtBQUNGO0FrQmxuSkk7RTJEcGFGO0lBWUk7SUFDQTtFN0U4Z0tKO0FBQ0Y7QTZFNWdLSTtFQUNFO0E3RThnS047O0E4RXhxS0E7Ozs7O0VBQUE7QUFNQTtFQUNFO0VBQ0E7QTlFMnFLRjtBa0J0b0pJO0U0RHZp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aEJGO0lBU0k7RXBGbW1MSjtBQUNGO0FvRmhtTEU7RTNFZEE7RUFDQTtFQUNBLHFCMkVja0I7RUFDaEI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXBGbW1MSjtBU3RtTEU7RUFDRTtBVHdtTEo7QVNybUxFO0VBQ0U7RUFDQTtBVHVtTEo7QWtCaG5LSTtFa0VuZ0JGO0lBWUk7SUFDQTtJQUNBO0lBQ0E7RXBGMm1MSjtFb0Z6bUxJO0lBQ0U7RXBGMm1MTjtBQUNGO0FvRnhtTEk7RUFDRTtBcEYwbUxOO0FvRnRtTE07RUFDRTtBcEZ3bUxSO0FrQmpvS0k7RWtFemVBO0lBTUk7RXBGd21MTjtBQUNGO0FvRnJtTEk7RUFDRTtBcEZ1bUxOO0FvRnJtTEk7RUFDRTtBcEZ1bUxOO0FvRnJtTEk7RUFDRTtBcEZ1bUxOO0FvRnJtTEk7RUFDRTtFQUNBO0VBQ0E7QXBGdW1MTjtBb0ZybUxJO0VBQ0U7QXBGdW1MTjs7QXFGcHNMQTs7Ozs7Q0FBQTtBQU9BOztDQUFBO0FBR0E7RUFDRTtBckZzc0xGO0FxRm5zTEk7RUFDRTtFQUNBO0VBQ0E7S0FBQTtBckZxc0xOO0FrQnpxS0k7RW1FL2hCQTtJQU1JO0VyRnNzTE47QUFDRjtBa0I5cUtJO0VtRS9oQkE7SUFVSTtFckZ1c0xOO0FBQ0Y7QXFGbHNMSTtFQUNFO0FyRm9zTE47QXFGbHNMTTtFQUNFO0VBQ0E7RUFDQTtLQUFBO0FyRm9zTFI7QWtCM3JLSTtFbUU1Z0JFO0lBTUk7RXJGcXNMUjtBQUNGO0FrQmhzS0k7RW1FNWdCRTtJQVVJO0VyRnNzTFI7QUFDRjtBU2xzTEU7RUFDRTtBVG9zTEo7QVNqc0xFO0VBQ0U7RUFDQTtBVG1zTEo7QXFGcHNMRTtFQUNFO0VBQ0E7QXJGc3NMSjtBcUZuc0xFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBckZxc0xKO0FrQnZ0S0k7RW1FbmZGO0lBUUk7RXJGc3NMSjtBQUNGO0FxRm5zTEU7RUFDRTtFQUNBO0VBQ0E7QXJGcXNMSjtBcUZuc0xJO0VBQ0U7QXJGcXNMTjtBcUZqc0xFO0VBQ0U7QXJGbXNMSjs7QXNGcHhM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eUYvcE1FO0VBQ0U7QXpGaXFNSjtBeUY5cE1FO0VBQ0U7QXpGZ3FNSjtBeUY5cE1FO0VBQ0U7RUFDQTtFQUNBO0F6RmdxTUo7QXlGNXBNRTtFQUNFO0F6RjhwTUo7QXlGM3BNRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBekY2cE1KO0F5RjFwTUU7RUFDRTtFQUNBO0F6RjRwTUo7QXlGMXBNRTtFQUNFO0F6RjRwTUo7QXlGenBNRTtFQUNFO0VBQ0E7QXpGMnBNSjtBeUZ4cE1FO0VBQ0U7RUFDQTtBekYwcE1KO0F5RnZwTUU7RUFDRTtBekZ5cE1KO0F5RmpwTUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXpGbXBNSjtBeUYzb01FO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBekY2b01KO0F5RjNvTUU7RUFDRTtFQUNBO0F6RjZvTUo7QXlGMW9NRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXpGNG9NSjtBeUZ6b01FO0VBQ0U7QXpGMm9NSjtBeUZ2b01FO0VBQ0U7QXpGeW9NSjtBeUYvbk1FO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBekZpb01KO0F5RjluTUU7RUFDRTtFQUNBO0VBQ0E7QXpGZ29NSjtBeUY3bk1FO0VBQ0U7QXpGK25NSjtBeUY3bk1FO0VBQ0U7RUFDQTtBekYrbk1KO0F5RjVuTUU7RUFDRTtBekY4bk1KO0F5RjVuTUU7RUFDRTtFQUNBO0F6RjhuTUo7QXlGNW5NRTtFQUNFO0VBRUE7QXpGNm5NSjtBeUYxbk1FO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBekY0bk1KO0F5RnpuTUU7RUFDRTs7O0tBQUE7RUFJQTtFQUNBO0VBQ0E7RUFDQTtBekYybk1KO0F5RnhuTUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBekYwbk1KO0F5RnZuTUU7RUFDRTtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RXpGeW5NSjtBQUNGO0F5RnRuTUU7RUFDRTtJQUNFO0lBQ0E7RXpGd25NSjtFeUZ0bk1FO0lBQ0U7SUFDQTtFekZ3bk1KO0FBQ0Y7QXlGcm5NRTtFQUNFO0lBQ0U7SUFDQTtFekZ1bk1KO0V5RnJuTUU7SUFDRTtJQUNBO0V6RnVuTUo7QUFDRjtBeUZwbk1FO0VBQ0U7SUFDRTtJQUNBO0V6RnNuTUo7RXlGcG5NRTtJQUNFO0lBQ0E7RXpGc25NSjtFeUZwbk1FO0lBQ0U7SUFDQTtFekZzbk1KO0FBQ0Y7QXlGbm5NRTtFQUNFO0lBQ0U7SUFDQTtFekZxbk1KO0V5Rm5uTUU7SUFDRTtJQUNBO0V6RnFuTUo7RXlGbm5NRTtJQUNFO0lBQ0E7RXpGcW5NSjtBQUNGO0F5RjVtTUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBekY4bU1KO0F5RjFtTUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F6RjRtTUo7QXlGem1NRTs7OztFQUlFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXpGMm1NSjtBeUZ2bU1FOztFQUVFO0F6RnltTUo7QXlGdG1NRTs7RUFFRTtBekZ3bU1KO0F5RnBtTUU7O0VBRUU7QXpGc21NSjtBeUZsbU1FO0VBQ0U7QXpGb21NSjtBeUZqbU1FOztFQUVFO0F6Rm1tTUo7QXlGNWxNRTs7OztFQUlFO0VBQ0E7QXpGOGxNSjtBeUYxbE1FOzs7RUFHRTtBekY0bE1KO0F5RnpsTUU7RUFDRTtBekYybE1KO0F5RnhsTUU7RUFDRTtBekYwbE1KO0F5RnZsTUU7OztFQUdFO0F6RnlsTUo7QXlGdGxNRTtFQUNFO0F6RndsTUo7QXlGdGxNSTtFQUNFO0F6RndsTU47QXlGcGxNRTtFQUNFO0F6RnNsTUo7QXlGbGxNSTtFQUNFO0F6Rm9sTU47O0EwRi9wTkE7Ozs7O0NBQUE7QUFPQTs7Q0FBQTtBQUlBOztDQUFBO0FBS0k7RUFDRTtBMUY4cE5OO0EwRjNwTkk7RUFDRTtBMUY2cE5OO0EwRnpwTkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTFGMnBOSjtBMEZ6cE5JO0VBQ0U7RUFDQTtFQUNBO0ExRjJwTk47QTBGdnBOTTtFQUNFO0ExRnlwTlI7O0EyRnJzTkE7Ozs7O0NBQUE7QUFPQTs7Q0FBQTtBQUlBOztDQUFBO0FBR0E7RUFDRTtBM0Zzc05GO0EyRnBzTkU7RUFDRTtBM0Zzc05KOztBa0IzcU1JO0UwRTdpQko7SUFFUTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RTVGMnROTjtBQUNGOztBa0J0ck1JO0UwRWxpQko7SUFFUTtFNUYydE5OO0FBQ0Y7O0E0Rnh0TkE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E1RjJ0Tko7QTRGeHROSTtFQUNJO0VBQ0E7QTVGMHROUjtBNEZ0dE5RO0VBQ0k7QTVGd3ROWjs7QTRGbnROQTtFQUNJO0E1RnN0Tko7O0E0Rm50TkE7RUFDSTtFQUNBO0E1RnN0Tko7QWtCdnRNSTtFMEVqZ0JKO0lBS1E7RTVGdXROTjtBQUNGOztBNEZwdE5BO0VBRUk7QTVGc3ROSjtBZS92TlE7RUM4Qko7RUFDQTtFQWlCUTtBaEJvdE5aO0FrQnJ1TUk7RTBFeGZKO0lBS1E7RTVGNHROTjtBQUNGOztBNEZ6dE5BO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTVGNHROSjtBa0Jwdk1JO0UwRS9lSjtJQVVRO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFNUY2dE5OO0FBQ0Y7QTRGM3ROSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTVGNnROUjtBa0Jyd01JO0UwRTdkQTtJQVFRO0U1Rjh0TlY7QUFDRjs7QTRGMXROQTtFQUNJO0E1RjZ0Tko7O0FBbHVOQTs7RUFBQTtBNkZ6RkE7Ozs7O0VBQUE7QUFRRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTdGK3pOSjtBa0JseU1JO0UyRXJpQkY7SUFXSTtJQUNBO0U3RmcwTko7QUFDRjtBa0J4eU1JO0UyRXJpQkY7SUFnQkk7SUFDQTtFN0ZpME5KO0FBQ0Y7QWtCOXlNSTtFMkVyaUJGO0lBcUJJO0lBQ0E7RTdGazBOSjtBQUNGO0E2Ri96TkU7RUFDRTtFQUNBO0E3RmkwTko7QTZGOXpOTTtFQUNFO0VBQ0E7QTdGZzBOUjtBa0I1ek1JO0UyRXRnQkU7SUFLSTtJQUNBO0U3RmkwTlI7QUFDRjtBNkY5ek5NO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E3RmcwTlI7QWtCNzBNSTtFMkU1ZkU7SUFZSTtFN0ZpME5SO0FBQ0Y7QTZGL3pOUTtFQUNFO0VBQ0E7QTdGaTBOVjtBNkY5ek5RO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0E3Rit6TlY7QWU3M05RO0VDOEJKO0VBQ0E7RUFpQlE7QWhCazFOWjtBZTkzTmdCO0VBSlI7SUM4Qko7SUFDQTtJQWlCUTtFaEJ3MU5WO0FBQ0Y7QWVqNE5nQjtFQVJSO0lBZVk7RWY4M05sQjtBQUNGO0E2RjcwTlE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBN0YrME5WO0E2RjUwTlE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E3RjgwTlY7QTZGNTBOVTtFQUNFO0E3RjgwTlo7QTZGMzBOVTtFQUNFO0E3RjYwTlo7QTZGejBOWTtFQUNFO0E3RjIwTmQ7QTZGeDBOWTtFQUNFO0E3RjAwTmQ7QTZGdDBOVTtFQUNFO0E3RncwTlo7QWtCMzRNSTtFMkV4Yk07SUFDRTtJQUNBO0U3RnMwTlY7QUFDRjtBNkZsME5NO0VBQ0U7RUFDQTtBN0ZvME5SO0E2RmwwTlE7RUFDRTtFQUNBO0E3Rm8wTlY7QTZGbDBOVTtFQUVFO0VBQ0E7QTdGbTBOWjtBZTU3TlE7RUM4Qko7RUFDQTtFQWlCUTtBaEJpNU5aO0E2RmowTk07RUFDRTtFQUNBO0E3Rm0wTlI7QWtCdDZNSTtFMkUvWkU7SUFLSTtJQUNBO0lBQ0E7SUFDQTtFN0ZvME5SO0FBQ0Y7QTZGajBOTTtFQUNFO0VBQ0E7QTdGbTBOUjtBa0JsN01JO0UyRW5aRTtJQUtJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RTdGbzBOUjtBQUNGO0E2RmgwTkk7RUFFRTtFQUNBO0E3RmkwTk47QVM1N05FO0VBQ0U7QVQ4N05KO0FTMzdORTtFQUNFO0VBQ0E7QVQ2N05KO0E2RnQwTk07RUFDRTtBN0Z3ME5SO0E2RnIwTk07RUFDRTtBN0Z1ME5SO0E2RnAwTk07RUFDRTtBN0ZzME5SO0E2RmwwTlE7RUFDRTtBN0ZvME5WO0E2RmowTlE7RUFDRTtBN0ZtME5WO0E2Rjd6TkU7RUFDRTtBN0Yrek5KO0E2RjV6TkU7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E3RjZ6Tko7QVM1OU5FO0VBQ0U7QVQ4OU5KO0FTMzlORTtFQUNFO0VBQ0E7QVQ2OU5KO0E2RmwwTkk7RUFDRTtFQUNBO0VBQ0E7QTdGbzBOTjtBNkZqME5JO0VBQ0U7QTdGbTBOTjtBNkYvek5NO0VBQ0U7QTdGaTBOUjtBNkY1ek5FO0VBQ0U7QTdGOHpOSjtBNkYzek5FO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E3RjZ6Tko7QWtCLy9NSTtFMkV2VUY7SUFZSTtFN0Y4ek5KO0U2RjV6Tkk7SUFDRTtFN0Y4ek5OO0U2RjN6Tkk7SUFDRTtJQUNBO0U3RjZ6Tk47QUFDRjtBNkYxek5JO0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBN0Yyek5OO0FTL2dPRTtFQUNFO0FUaWhPSjtBUzlnT0U7RUFDRTtFQUNBO0FUZ2hPSjtBNkZoME5NO0VBQ0U7QTdGazBOUjtBNkYvek5NO0VBQ0U7RUFDQTtFQUNBO0E3RmkwTlI7QTZGOXpOTTtFQUNFO0VBQ0E7RUFDQTtBN0ZnME5SO0E2RjV6Tkk7RUFDRTtFQUNBO0VBQ0E7QTdGOHpOTjtBNkY1ek5NO0VBQ0U7QTdGOHpOUjtBNkY1ek5RO0VBQ0U7RUFDQTtFQUNBO0E3Rjh6TlY7QTZGM3pOUTtFQUNFO0E3RjZ6TlY7QTZGenpOTTtFQUNFO0E3RjJ6TlI7QTZGenpOUTtFQUNFO0VBQ0E7QTdGMnpOVjtBNkZ6ek5VO0VBQ0U7QTdGMnpOWjs7QThGN21PQTs7Ozs7RUFBQTtBQU9BO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QTlGK21PRjtBOEY3bU9FO0VBQ0U7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ZGlzdC9waG90b3N3aXBlLmNzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvZ2xvYmFsLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vbm9kZV9tb2R1bGVzL25vcm1hbGl6ZS5zY3NzL25vcm1hbGl6ZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL25vZGVfbW9kdWxlcy9yZWZsZXgtZ3JpZC9zY3NzL2luY2x1ZGVzL192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi9ub2RlX21vZHVsZXMvcmVmbGV4LWdyaWQvc2Nzcy9pbmNsdWRlcy9fZ3JpZC5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL25vZGVfbW9kdWxlcy9yZWZsZXgtZ3JpZC9zY3NzL2luY2x1ZGVzL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi9ub2RlX21vZHVsZXMvcmVmbGV4LWdyaWQvc2Nzcy9pbmNsdWRlcy9faGVscGVycy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL25vZGVfbW9kdWxlcy9AZ2xpZGVqcy9nbGlkZS9zcmMvYXNzZXRzL3Nhc3MvZ2xpZGUuY29yZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9oZWxwZXJzL19mb2N1cy12aXNpYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2hlbHBlcnMvX2ZvbnQtc21vb3RoaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2hlbHBlcnMvX21peGlucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9oZWxwZXJzL190YWJsZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9oZWxwZXJzL19oaWRkZW4uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvY29uZmlnL19mb250cy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9jb25maWcvX3ZhcnMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYmFzZS9fZGVmYXVsdHMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYmFzZS9fZmx1aWQtZm9udHMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYmFzZS9fZm9udC1zaXplLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2Jhc2UvX3R5cG9ncmFwaHkuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi9ub2RlX21vZHVsZXMvaW5jbHVkZS1tZWRpYS9kaXN0L19pbmNsdWRlLW1lZGlhLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2Jhc2UvX21haW4uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYmFzZS9fYW5pbWF0aW9ucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fYnV0dG9ucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9faW1hZ2UtY3JlZGl0LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19icmVhZGNydW1icy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fbG9hZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19kYXRlLXBpY2tlci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fcGFnZXIuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2NvbHMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2NhcHRpb24uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2F1dG8tZ3JpZC5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fbGlua3Muc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX3NpZGViYXIuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX3RhZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fc3RpY2t5LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19jYW5jZWxsZWQuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX3NraXAtbGluay5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fbGlzdGluZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fY2l0ZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fYmFjay10b3Auc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2dyaWQuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19lbW1zZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX2Jsb2Nrcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2ludHJvLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9faW1hZ2Uuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19xdW90ZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2FjY29yZGlvbi5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2dhbGxlcnkuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19pbWFnZS10ZXh0LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fZG93bmxvYWRzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fZW1iZWQuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL190YWJsZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3NpZ25wb3N0LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fc2lnbnBvc3RzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fbGlua2VkLWxvZ29zLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fdmlkZW8uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL195bWFsLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fY3RhLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fYmlnLWN0YS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3JlYWRtb3JlLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fcXVpY2tsaW5rcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3NwZWNpYWwtb3B0aW9ucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3Blb3BsZS1wcm9maWxlcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2xpc3Rpbmcuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19taW5pbGlzdGluZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2VuaGFuY2VkZXZlbnRsaXN0aW5nLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fZmVhdHVyZWQtY29udGVudC5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2NpdGF0aW9ucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2ltYWdlem9vbS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2Zvcm1zLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fc2VhcmNoLXJlc3VsdHMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19kaXZpZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fYnV5LW5vdy1idXR0b24uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19jdGFtdWx0aXBsZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2Nhcm91c2VsLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fcHJpbW9zZWFyY2guc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19saW5rLWJsb2NrLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fZm9ybXMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19uYXYuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19iYW5uZXIuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19zb2NpYWwtbGlua3Muc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19zdWJuYXYuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19pbnRyby5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX2FuY2hvci1uYXYuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19jb3Vyc2UtZGV0YWlscy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX3Blb3BsZS1zaWRlYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9faG9tZXBhZ2UtYmFubmVyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fZXZlbnQtc2lkZWJhci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX3NlYXJjaC1mb3JtLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fcGVyZm9ybWFuY2VzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fcGhvdG9zd2lwZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX3RvZ2dsZS1zdWJuYXYuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19zdWJuYXYtY29udGFpbmVyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fbWFpbi1hbmNob3ItbmF2LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9faGVhZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fZm9vdGVyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fc2VhcmNoLXJlc3VsdHMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3Mvb3JnYW5pc21zL190ZWFzZXIuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3Mvb3JnYW5pc21zL19saXN0aW5nLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fcGVvcGxlLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fbW9kYWwuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvdGVtcGxhdGVzL19wb3N0LnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLyohIFBob3RvU3dpcGUgbWFpbiBDU1MgYnkgRG1pdHJ5IFNlbWVub3YgfCBwaG90b3N3aXBlLmNvbSB8IE1JVCBsaWNlbnNlICovXG4vKlxuXHRTdHlsZXMgZm9yIGJhc2ljIFBob3RvU3dpcGUgZnVuY3Rpb25hbGl0eSAoc2xpZGluZyBhcmVhLCBvcGVuL2Nsb3NlIHRyYW5zaXRpb25zKVxuKi9cbi8qIHBzd3AgPSBwaG90b3N3aXBlICovXG4ucHN3cCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gIHotaW5kZXg6IDE1MDA7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogY3JlYXRlIHNlcGFyYXRlIGxheWVyLCB0byBhdm9pZCBwYWludCBvbiB3aW5kb3cub25zY3JvbGwgaW4gd2Via2l0L2JsaW5rICovXG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvdXRsaW5lOiBub25lOyB9XG4gIC5wc3dwICoge1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLnBzd3AgaW1nIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cblxuLyogc3R5bGUgaXMgYWRkZWQgd2hlbiBKUyBvcHRpb24gc2hvd0hpZGVPcGFjaXR5IGlzIHNldCB0byB0cnVlICovXG4ucHN3cC0tYW5pbWF0ZV9vcGFjaXR5IHtcbiAgLyogMC4wMDEsIGJlY2F1c2Ugb3BhY2l0eTowIGRvZXNuJ3QgdHJpZ2dlciBQYWludCBhY3Rpb24sIHdoaWNoIGNhdXNlcyBsYWcgYXQgc3RhcnQgb2YgdHJhbnNpdGlvbiAqL1xuICBvcGFjaXR5OiAwLjAwMTtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gIC8qIGZvciBvcGVuL2Nsb3NlIHRyYW5zaXRpb24gKi9cbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpO1xuICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7IH1cblxuLnBzd3AtLW9wZW4ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ucHN3cC0tem9vbS1hbGxvd2VkIC5wc3dwX19pbWcge1xuICAvKiBhdXRvcHJlZml4ZXI6IG9mZiAqL1xuICBjdXJzb3I6IC13ZWJraXQtem9vbS1pbjtcbiAgY3Vyc29yOiAtbW96LXpvb20taW47XG4gIGN1cnNvcjogem9vbS1pbjsgfVxuXG4ucHN3cC0tem9vbWVkLWluIC5wc3dwX19pbWcge1xuICAvKiBhdXRvcHJlZml4ZXI6IG9mZiAqL1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgY3Vyc29yOiAtbW96LWdyYWI7XG4gIGN1cnNvcjogZ3JhYjsgfVxuXG4ucHN3cC0tZHJhZ2dpbmcgLnBzd3BfX2ltZyB7XG4gIC8qIGF1dG9wcmVmaXhlcjogb2ZmICovXG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZztcbiAgY3Vyc29yOiAtbW96LWdyYWJiaW5nO1xuICBjdXJzb3I6IGdyYWJiaW5nOyB9XG5cbi8qXG5cdEJhY2tncm91bmQgaXMgYWRkZWQgYXMgYSBzZXBhcmF0ZSBlbGVtZW50LlxuXHRBcyBhbmltYXRpbmcgb3BhY2l0eSBpcyBtdWNoIGZhc3RlciB0aGFuIGFuaW1hdGluZyByZ2JhKCkgYmFja2dyb3VuZC1jb2xvci5cbiovXG4ucHN3cF9fYmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7IH1cblxuLnBzd3BfX3Njcm9sbC13cmFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnBzd3BfX2NvbnRhaW5lcixcbi5wc3dwX196b29tLXdyYXAge1xuICAtbXMtdG91Y2gtYWN0aW9uOiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwOyB9XG5cbi8qIFByZXZlbnQgc2VsZWN0aW9uIGFuZCB0YXAgaGlnaGxpZ2h0cyAqL1xuLnBzd3BfX2NvbnRhaW5lcixcbi5wc3dwX19pbWcge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lOyB9XG5cbi5wc3dwX196b29tLXdyYXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAvKiBmb3Igb3Blbi9jbG9zZSB0cmFuc2l0aW9uICovXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpOyB9XG5cbi5wc3dwX19iZyB7XG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xuICAvKiBmb3Igb3Blbi9jbG9zZSB0cmFuc2l0aW9uICovXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpOyB9XG5cbi5wc3dwLS1hbmltYXRlZC1pbiAucHN3cF9fYmcsXG4ucHN3cC0tYW5pbWF0ZWQtaW4gLnBzd3BfX3pvb20td3JhcCB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogbm9uZTsgfVxuXG4ucHN3cF9fY29udGFpbmVyLFxuLnBzd3BfX3pvb20td3JhcCB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5wc3dwX19pdGVtIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnBzd3BfX2ltZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgdG9wOiAwO1xuICBsZWZ0OiAwOyB9XG5cbi8qXG5cdHN0cmV0Y2hlZCB0aHVtYm5haWwgb3IgZGl2IHBsYWNlaG9sZGVyIGVsZW1lbnQgKHNlZSBiZWxvdylcblx0c3R5bGUgaXMgYWRkZWQgdG8gYXZvaWQgZmxpY2tlcmluZyBpbiB3ZWJraXQvYmxpbmsgd2hlbiBsYXllcnMgb3ZlcmxhcFxuKi9cbi5wc3dwX19pbWctLXBsYWNlaG9sZGVyIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLypcblx0ZGl2IGVsZW1lbnQgdGhhdCBtYXRjaGVzIHNpemUgb2YgbGFyZ2UgaW1hZ2Vcblx0bGFyZ2UgaW1hZ2UgbG9hZHMgb24gdG9wIG9mIGl0XG4qL1xuLnBzd3BfX2ltZy0tcGxhY2Vob2xkZXItLWJsYW5rIHtcbiAgYmFja2dyb3VuZDogIzIyMjsgfVxuXG4ucHN3cC0taWUgLnBzd3BfX2ltZyB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7IH1cblxuLypcblx0RXJyb3IgbWVzc2FnZSBhcHBlYXJzIHdoZW4gaW1hZ2UgaXMgbm90IGxvYWRlZFxuXHQoSlMgb3B0aW9uIGVycm9yTXNnIGNvbnRyb2xzIG1hcmt1cClcbiovXG4ucHN3cF9fZXJyb3ItbXNnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgbWFyZ2luLXRvcDogLThweDtcbiAgY29sb3I6ICNDQ0M7IH1cblxuLnBzd3BfX2Vycm9yLW1zZyBhIHtcbiAgY29sb3I6ICNDQ0M7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTWFpbiAtIEdsb2JhbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogRGVwZW5kZW5jaWVzXG4gKi9cbkBpbXBvcnQgJ35pbmNsdWRlLW1lZGlhL2Rpc3QvX2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnfm5vcm1hbGl6ZS5zY3NzL25vcm1hbGl6ZS5zY3NzJztcbkBpbXBvcnQgJ35yZWZsZXgtZ3JpZC9zY3NzL3JlZmxleC5zY3NzJztcbkBpbXBvcnQgJ35waG90b3N3aXBlL2Rpc3QvcGhvdG9zd2lwZS5jc3MnO1xuQGltcG9ydCBcIm5vZGVfbW9kdWxlcy9AZ2xpZGVqcy9nbGlkZS9zcmMvYXNzZXRzL3Nhc3MvZ2xpZGUuY29yZVwiO1xuXG4vKipcbiAqIEhlbHBlcnNcbiAqL1xuQGltcG9ydCAnaGVscGVycy90by1yZW0nO1xuQGltcG9ydCAnaGVscGVycy9zdHJpcC11bml0JztcbkBpbXBvcnQgJ2hlbHBlcnMvZm9jdXMtdmlzaWJsZSc7XG5AaW1wb3J0ICdoZWxwZXJzL2ZvbnQtc21vb3RoaW5nJztcbkBpbXBvcnQgJ2hlbHBlcnMvbWl4aW5zJztcbkBpbXBvcnQgJ2hlbHBlcnMvdGFibGUnO1xuQGltcG9ydCAnaGVscGVycy9oaWRkZW4nO1xuXG4vKipcbiAqIENvbmZpZ1xuICovXG5AaW1wb3J0ICdjb25maWcvZm9udHMnO1xuQGltcG9ydCAnY29uZmlnL3ZhcnMnO1xuXG4vKipcbiAqIEJhc2VcbiAqL1xuQGltcG9ydCAnYmFzZS9mb250LXNpemUnO1xuQGltcG9ydCAnYmFzZS9mbHVpZC1mb250cyc7XG5AaW1wb3J0ICdiYXNlL2RlZmF1bHRzJztcbkBpbXBvcnQgJ2Jhc2UvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICdiYXNlL21haW4nO1xuQGltcG9ydCAnYmFzZS9hbmltYXRpb25zJztcblxuLyoqXG4qIEF0b21zXG4qL1xuQGltcG9ydCAnYXRvbXMvYnV0dG9ucyc7XG5AaW1wb3J0ICdhdG9tcy9pbWFnZS1jcmVkaXQnO1xuQGltcG9ydCAnYXRvbXMvYnJlYWRjcnVtYnMnO1xuQGltcG9ydCAnYXRvbXMvbG9hZGVyJztcbkBpbXBvcnQgJ2F0b21zL2RhdGUtcGlja2VyJztcbkBpbXBvcnQgJ2F0b21zL3BhZ2VyJztcbkBpbXBvcnQgJ2F0b21zL2NvbHMnO1xuQGltcG9ydCAnYXRvbXMvY2FwdGlvbic7XG5AaW1wb3J0ICdhdG9tcy9hdXRvLWdyaWQnO1xuQGltcG9ydCAnYXRvbXMvbGlua3MnO1xuQGltcG9ydCAnYXRvbXMvc2lkZWJhcic7XG5AaW1wb3J0ICdhdG9tcy90YWcnO1xuQGltcG9ydCAnYXRvbXMvc3RpY2t5JztcbkBpbXBvcnQgJ2F0b21zL2NhbmNlbGxlZCc7XG5AaW1wb3J0ICdhdG9tcy9za2lwLWxpbmsnO1xuQGltcG9ydCAnYXRvbXMvbGlzdGluZyc7XG5AaW1wb3J0ICdhdG9tcy9jaXRlJztcbkBpbXBvcnQgJ2F0b21zL2JhY2stdG9wJztcbkBpbXBvcnQgJ2F0b21zL2dyaWQnO1xuXG4vKipcbiAqIE1vbGVjdWxlc1xuICovXG5AaW1wb3J0ICdtb2xlY3VsZXMvZW1tc2cnO1xuQGltcG9ydCAnbW9sZWN1bGVzL2Jsb2Nrcyc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvZm9ybXMnO1xuQGltcG9ydCAnbW9sZWN1bGVzL25hdic7XG5AaW1wb3J0ICdtb2xlY3VsZXMvYmFubmVyJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9zb2NpYWwtbGlua3MnO1xuQGltcG9ydCAnbW9sZWN1bGVzL3N1Ym5hdic7XG5AaW1wb3J0ICdtb2xlY3VsZXMvaW50cm8nO1xuQGltcG9ydCAnbW9sZWN1bGVzL2FuY2hvci1uYXYnO1xuQGltcG9ydCAnbW9sZWN1bGVzL2NvdXJzZS1kZXRhaWxzJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9wZW9wbGUtc2lkZWJhcic7XG5AaW1wb3J0ICdtb2xlY3VsZXMvaG9tZXBhZ2UtYmFubmVyJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9ldmVudC1zaWRlYmFyJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9zZWFyY2gtZm9ybSc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvcGVyZm9ybWFuY2VzJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9waG90b3N3aXBlJztcbkBpbXBvcnQgJ21vbGVjdWxlcy90b2dnbGUtc3VibmF2JztcbkBpbXBvcnQgJ21vbGVjdWxlcy9zdWJuYXYtY29udGFpbmVyJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9tYWluLWFuY2hvci1uYXYnO1xuXG4vKipcbiAqIE9yZ2FuaXNpbXNcbiAqL1xuQGltcG9ydCAnb3JnYW5pc21zL2hlYWRlcic7XG5AaW1wb3J0ICdvcmdhbmlzbXMvZm9vdGVyJztcbkBpbXBvcnQgJ29yZ2FuaXNtcy9zZWFyY2gtcmVzdWx0cyc7XG5AaW1wb3J0ICdvcmdhbmlzbXMvdGVhc2VyJztcbkBpbXBvcnQgJ29yZ2FuaXNtcy9saXN0aW5nJztcbkBpbXBvcnQgJ29yZ2FuaXNtcy9wZW9wbGUnO1xuQGltcG9ydCAnb3JnYW5pc21zL21vZGFsJztcblxuLyoqXG4qIFRlbXBsYXRlc1xuKi9cbkBpbXBvcnQgJ3RlbXBsYXRlcy9wb3N0JztcbiIsIi8qISBub3JtYWxpemUuc2NzcyB2MC4xLjAgfCBNSVQgTGljZW5zZSB8IGJhc2VkIG9uIGdpdC5pby9ub3JtYWxpemUgKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4gKiAgICB1c2VyIHpvb20uXG4gKi9cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICogYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cblxuaHIge1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZVxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCB2YXJpYWJsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFByZWZpeFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gWW91IGNhbiBvcHRpb25hbGx5IG5hbWVzcGFjZSByZWZsZXggY2xhc3NlcyB0byBhdm9pZCBjbGFzaGluZyB3aXRoIG90aGVyIGNzcyBmcmFtZXdvcmtzXG4vLyBlLmcuIHNldHRpbmcgJHJlZmxleC1wcmVmaXggYXMgXCJyZWZsZXgtXCIgaGVyZSB3b3VsZCBjYXVzZSBjb2wtc20tNiB0byBiZWNvbWUgcmVmbGV4LWNvbC1zbS02XG4vLyBFeGFtcGxlOiAkcmVmbGV4LXByZWZpeDogcmVmbGV4LTtcbi8vIEJ5IGRlZmF1bHQgdGhpcyBpcyBhbiBlbXB0eSBzdHJpbmdcbiRyZWZsZXgtcHJlZml4OiBudWxsICFkZWZhdWx0O1xuXG5cbi8vIExlZ2FjeSBzdXBwb3J0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWZsZXggYWRkcyBhIGxvdCBvZiBjc3MgcHJvcGVydGllIHRvIHN1cHBvcnQgb2xkZXIgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IGZsZXhib3ggbGF5b3V0LlxuLy8gSWYgeW91IHByZWZlciB0byB1c2UgdGhpcyBhcyBhIHB1cmVseSBmbGV4Ym94IGdyaWQgd2l0aG91dCBsZWdhY3kgc3VwcG9ydCB0aGVuIHNldCB0aGlzIHRvIGZhbHNlXG4kbGVnYWN5LXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBoZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWZsZXggaGFzIHNvbWUgZ2VuZXJpYyB2aXNpYmlsaXR5IGNsYXNzZXMgdG8gaGlkZSBlbGVtZW50cyBhdCBkaWZmZXJlbnQgYnJlYWtwb2ludHMuXG4vLyBJZiB5b3Ugd2FudCB0byBkaXNhYmxlIHRoZXNlIHRoZW4gc2V0IHRoaXMgdG8gZmFsc2VcbiR2aXNpYmlsaXR5LWhlbHBlcnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIEdyaWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRyZWZsZXgtY29sdW1uczogMTIgIWRlZmF1bHQ7IC8vIG51bWJlciBvZiBjb2x1bW5zXG5cbi8vIEJyZWFrcG9pbnRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kcmVmbGV4LXhzOiA1NzZweCAhZGVmYXVsdDtcbiRyZWZsZXgtc206IDc2OHB4ICFkZWZhdWx0O1xuJHJlZmxleC1tZDogOTkycHggIWRlZmF1bHQ7XG4kcmVmbGV4LWxnOiAxMjAwcHggIWRlZmF1bHQ7XG4kcmVmbGV4LXhsZzogMTYwMHB4ICFkZWZhdWx0O1xuXG4kcmVmbGV4LXh4cy1tYXg6ICgkcmVmbGV4LXhzIC0gMSk7XG4kcmVmbGV4LXhzLW1heDogKCRyZWZsZXgtc20gLSAxKTtcbiRyZWZsZXgtc20tbWF4OiAoJHJlZmxleC1tZCAtIDEpO1xuJHJlZmxleC1tZC1tYXg6ICgkcmVmbGV4LWxnIC0gMSk7XG4kcmVmbGV4LWxnLW1heDogKCRyZWZsZXgteGxnIC0gMSk7XG5cbiRyZWZsZXgtYnJlYWtwb2ludHM6IChcbiAgeHhzOiAwcHgsXG4gIHhzOiAkcmVmbGV4LXhzLFxuICBzbTogJHJlZmxleC1zbSxcbiAgbWQ6ICRyZWZsZXgtbWQsXG4gIGxnOiAkcmVmbGV4LWxnLFxuICB4bGc6ICRyZWZsZXgteGxnXG4pO1xuXG4vLyBTcGFjaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kcmVmbGV4LWdyaWQtc3BhY2luZzogMTVweCAhZGVmYXVsdDtcblxuLy8gQ3VzdG9tIHByb3BlcnRpZXMgc28gb3RoZXJzIGNhbiByZWZlcmVuY2UgdGhlIHZhcmlhYmxlcy5cbjpyb290IHtcbiAgLS1yZWZsZXgtY29sdW1uczogI3sgJHJlZmxleC1jb2x1bW5zIH07XG4gIC0tcmVmbGV4LWdyaWQtc3BhY2luZzogI3sgJHJlZmxleC1ncmlkLXNwYWNpbmcgfTtcbiAgLS1yZWZsZXgteHM6ICN7ICRyZWZsZXgteHMgfTtcbiAgLS1yZWZsZXgtc206ICN7ICRyZWZsZXgtc20gfTtcbiAgLS1yZWZsZXgtbWQ6ICN7ICRyZWZsZXgtbWQgfTtcbiAgLS1yZWZsZXgtbGc6ICN7ICRyZWZsZXgtbGcgfTtcbiAgLS1yZWZsZXgteGxnOiAjeyAkcmVmbGV4LXhsZyB9O1xuICAtLXJlZmxleC14eHMtbWF4OiAjeyAkcmVmbGV4LXh4cy1tYXggfTtcbiAgLS1yZWZsZXgteHMtbWF4OiAjeyAkcmVmbGV4LXhzLW1heCB9O1xuICAtLXJlZmxleC1zbS1tYXg6ICN7ICRyZWZsZXgtc20tbWF4IH07XG4gIC0tcmVmbGV4LW1kLW1heDogI3sgJHJlZmxleC1tZC1tYXggfTtcbiAgLS1yZWZsZXgtbGctbWF4OiAjeyAkcmVmbGV4LWxnLW1heCB9O1xufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBjb250YWluZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1jb250YWluZXIsXG4uI3skcmVmbGV4LXByZWZpeH1jb250YWluZXItZnVsbCB7XG4gICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgcGFkZGluZy1yaWdodDogKCRyZWZsZXgtZ3JpZC1zcGFjaW5nICogMik7XG4gICAgcGFkZGluZy1sZWZ0OiAoJHJlZmxleC1ncmlkLXNwYWNpbmcgKiAyKTtcblxuICAgIC4jeyRyZWZsZXgtcHJlZml4fWdyaWQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kcmVmbGV4LWdyaWQtc3BhY2luZztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0kcmVmbGV4LWdyaWQtc3BhY2luZztcbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWNvbnRhaW5lciB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteHMpIHtcbiAgICAgICAgbWF4LXdpZHRoOiAkcmVmbGV4LXhzO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LXNtKSB7XG4gICAgICAgIG1heC13aWR0aDogJHJlZmxleC1zbTtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1tZCkge1xuICAgICAgICBtYXgtd2lkdGg6ICRyZWZsZXgtbWQ7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtbGcpIHtcbiAgICAgICAgbWF4LXdpZHRoOiAkcmVmbGV4LWxnO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LXhsZykge1xuICAgICAgICBtYXgtd2lkdGg6ICRyZWZsZXgteGxnO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBncmlkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1ncmlkIHtcbiAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIEBpbmNsdWRlIGRpc3BsYXktZmxleCgpO1xuICAgIEBpbmNsdWRlIGZsZXgtd3JhcCgpO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIHNldHVwLXdoaXRlc3BhY2UoKTtcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LXdoaXRlc3BhY2UoKTtcbiAgICB9XG5cbiAgICAvLyBoYW5kbGUgd2hlbiBsaXN0cyBhcmUgdXNlZCBhcyBhIGdyaWRcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggY29sIGRlZmF1bHRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5bY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICAgIEBpbmNsdWRlIHJlc2V0LXdoaXRlc3BhY2UoKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBwYWRkaW5nOiAkcmVmbGV4LWdyaWQtc3BhY2luZztcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LXdoaXRlc3BhY2UoKTtcbiAgICB9XG5cbiAgICAvLyBoYW5kbGUgZ3JpZHMgbmVzdGVkIGluIGNvbHVtbnNcbiAgICAuI3skcmVmbGV4LXByZWZpeH1ncmlkIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgxLCAxLCBhdXRvKTtcbiAgICAgICAgbWFyZ2luOiAtJHJlZmxleC1ncmlkLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAqZGlzcGxheTogaW5saW5lO1xuICAgICAgICB6b29tOiAxO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBncmlkIGdlbmVyYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIG1ha2UtcmVmbGV4LWdyaWQoY29sLSk7XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LXhzKSB7XG4gICAgQGluY2x1ZGUgbWFrZS1yZWZsZXgtZ3JpZChjb2wteHMtKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtc20pIHtcbiAgICBAaW5jbHVkZSBtYWtlLXJlZmxleC1ncmlkKGNvbC1zbS0pO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1tZCkge1xuICAgIEBpbmNsdWRlIG1ha2UtcmVmbGV4LWdyaWQoY29sLW1kLSk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LWxnKSB7XG4gICAgQGluY2x1ZGUgbWFrZS1yZWZsZXgtZ3JpZChjb2wtbGctKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteGxnKSB7XG4gICAgQGluY2x1ZGUgbWFrZS1yZWZsZXgtZ3JpZChjb2wteGxnLSk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggY29sLWF1dG9cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWNvbC1hdXRvIHtcbiAgICBAaW5jbHVkZSBzZXR1cC1hdXRvLWNvbHMoKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteHMpIHtcbiAgICAuI3skcmVmbGV4LXByZWZpeH1jb2wteHMtYXV0byB7XG4gICAgICAgIEBpbmNsdWRlIHNldHVwLWF1dG8tY29scygpO1xuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtc20pIHtcbiAgICAuI3skcmVmbGV4LXByZWZpeH1jb2wtc20tYXV0byB7XG4gICAgICAgIEBpbmNsdWRlIHNldHVwLWF1dG8tY29scygpO1xuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtbWQpIHtcbiAgICAuI3skcmVmbGV4LXByZWZpeH1jb2wtbWQtYXV0byB7XG4gICAgICAgIEBpbmNsdWRlIHNldHVwLWF1dG8tY29scygpO1xuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtbGcpIHtcbiAgICAuI3skcmVmbGV4LXByZWZpeH1jb2wtbGctYXV0byB7XG4gICAgICAgIEBpbmNsdWRlIHNldHVwLWF1dG8tY29scygpO1xuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteGxnKSB7XG4gICAgLiN7JHJlZmxleC1wcmVmaXh9Y29sLXhsZy1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0dXAtYXV0by1jb2xzKCk7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IG9yZGVyIGhlbHBlcnMgZ2VuZXJhdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgbWFrZS1vcmRlci1oZWxwZXJzKCk7XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LXhzKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1vcmRlci1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucywgJy14cycpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1zbSkge1xuICAgIEBpbmNsdWRlIGxvb3Atb3JkZXItaGVscGVycygkcmVmbGV4LWNvbHVtbnMsICctc20nKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtbWQpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9yZGVyLWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zLCAnLW1kJyk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LWxnKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1vcmRlci1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucywgJy1sZycpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14bGcpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9yZGVyLWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zLCAnLXhsZycpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IG9mZnNldCBoZWxwZXJzIGdlbmVyYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIG1ha2Utb2Zmc2V0LWhlbHBlcnMoKTtcblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteHMpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9mZnNldC1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucyAtIDEsICcteHMnKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtc20pIHtcbiAgICBAaW5jbHVkZSBsb29wLW9mZnNldC1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucyAtIDEsICctc20nKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtbWQpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9mZnNldC1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucyAtIDEsICctbWQnKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtbGcpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9mZnNldC1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucyAtIDEsICctbGcnKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteGxnKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1vZmZzZXQtaGVscGVycygkcmVmbGV4LWNvbHVtbnMgLSAxLCAnLXhsZycpO1xufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBtaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBncmlkIGdlbmVyYXRpb24gbWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQHVzZSBcInNhc3M6bWF0aFwiO1xuXG5AbWl4aW4gbWFrZS1yZWZsZXgtZ3JpZCgkY2xhc3MpIHtcbiAgICBAaW5jbHVkZSBsb29wLXJlZmxleC1jb2x1bW5zKCRyZWZsZXgtY29sdW1ucywgJGNsYXNzLCB3aWR0aCk7XG59XG5cbkBtaXhpbiBjYWxjLXJlZmxleC1jb2x1bW5zKCRpbmRleCwgJGNsYXNzLCAkdHlwZSkge1xuICAgIEBpZiAkdHlwZSA9PSB3aWR0aCBhbmQgJGluZGV4ID4gMCB7XG4gICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fSN7JGNsYXNzfSN7JGluZGV4fSB7XG4gICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZShtYXRoLmRpdigkaW5kZXgsICRyZWZsZXgtY29sdW1ucykpO1xuICAgICAgICAgICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAqd2lkdGg6IHBlcmNlbnRhZ2UobWF0aC5kaXYoJGluZGV4LCAkcmVmbGV4LWNvbHVtbnMpKSAtIC4xOyAvLyBpZTcgY3NzIGhhY2tcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIGxvb3AtcmVmbGV4LWNvbHVtbnMoJGluZGV4LCAkY2xhc3MsICR0eXBlKSB7XG4gICAgQGlmICRpbmRleCA+PSAwIHtcbiAgICAgICAgQGluY2x1ZGUgY2FsYy1yZWZsZXgtY29sdW1ucygkaW5kZXgsICRjbGFzcywgJHR5cGUpO1xuICAgICAgICAvLyBuZXh0IGl0ZXJhdGlvblxuICAgICAgICBAaW5jbHVkZSBsb29wLXJlZmxleC1jb2x1bW5zKCgkaW5kZXggLSAxKSwgJGNsYXNzLCAkdHlwZSk7XG4gICAgfVxufVxuXG4vLyBkZWZhdWx0cyBmb3IgYXV0byBjb2xzXG5AbWl4aW4gc2V0dXAtYXV0by1jb2xzKCkge1xuICAgIEBpbmNsdWRlIGZsZXgoMSwgMCwgMHB4KTsgLy8gYSB1bml0IG9uIGxhc3QgdmFsdWUgaXMgcmVxdWlyZWQgYnkgSUUxMC0xMVxuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gaW5saW5lLWJsb2NrIHNwZWNpZmljIG1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIHNldHVwLXdoaXRlc3BhY2UoKSB7XG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0uMzFlbTtcbiAgICAgICAgKmxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICAgIHdvcmQtc3BhY2luZzogLS40M2VtO1xuICAgIH1cbn1cblxuQG1peGluIHJlc2V0LXdoaXRlc3BhY2UoKSB7XG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgd29yZC1zcGFjaW5nOiBub3JtYWw7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgfVxufVxuXG5AbWl4aW4gcmVzZXQtdGV4dC1hbGlnbigpIHtcbiAgICAvL1xuICAgIC8vIFdlIHdhbnQgdG8gcmVzZXQgYW55IHRleHQtYWxpZ24gcHJvcGVydGllcyBzZXQgYnkgdGhlIGdyaWRcbiAgICAvLyAocmVxdWlyZWQgZm9yIHRoZSBpbmxpbmUtYmxvY2sgZmFsbGJhY2spXG4gICAgLy8gYnV0IHdlIGRvbid0IHdhbnQgdG8gb3ZlcnJpZGUgYW55IHRleHQtYWxpZ24gcHJvcGVydGllc1xuICAgIC8vIHNldCBvbiB0aGUgaW5kaXZpZHVhbCBjb2wteCBlbGVtZW50XG4gICAgLy8gb3Igb24gYW55IG9mIGl0J3MgY2hpbGQgZWxlbWVudHNcbiAgICAvL1xuICAgIC8vIDEpIHNldCB0byBsZWZ0IGJ5IGRlZmF1bHQgKHdvcmtzIGV2ZXJ5d2hlcmUpXG4gICAgLy8gMikgc2V0IHRvIHN0YXJ0IChyZXNwZWN0cyByaWdodCB0byBsZWZ0IHRleHQpXG4gICAgLy9cbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgIC1tb3otdGV4dC1hbGlnbi1sYXN0OiBsZWZ0O1xuICAgIC1tb3otdGV4dC1hbGlnbi1sYXN0OiBzdGFydDtcbiAgICB0ZXh0LWFsaWduLWxhc3Q6IGxlZnQ7XG4gICAgdGV4dC1hbGlnbi1sYXN0OiBzdGFydDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIG9yZGVyIGNsYXNzIGdlbmVyYXRpb24gbWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gb3JkZXIoJG9yZGVyOiAwKSB7XG4gICAgLW1zLWZsZXgtb3JkZXI6ICRvcmRlcjtcbiAgICAtd2Via2l0LW9yZGVyOiAkb3JkZXI7XG4gICAgb3JkZXI6ICRvcmRlcjtcbn1cblxuQG1peGluIG1ha2Utb3JkZXItaGVscGVycygpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9yZGVyLWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zKTtcbn1cblxuQG1peGluIGxvb3Atb3JkZXItaGVscGVycygkaW5kZXgsICRicmVha3BvaW50OiBudWxsKSB7XG4gICAgQGlmICRpbmRleCA+PSAwIHtcbiAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9b3JkZXIjeyRicmVha3BvaW50fS0jeyRpbmRleH0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgb3JkZXIoJGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBuZXh0IGl0ZXJhdGlvblxuICAgICAgICBAaW5jbHVkZSBsb29wLW9yZGVyLWhlbHBlcnMoKCRpbmRleCAtIDEpLCAkYnJlYWtwb2ludCk7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gb2Zmc2V0IGNsYXNzIGdlbmVyYXRpb24gbWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIG9mZnNldCgkaW5kZXg6IDApIHtcbiAgICAkb2Zmc2V0OiBtYXRoLmRpdigkaW5kZXgsICRyZWZsZXgtY29sdW1ucyk7XG4gICAgLy8gY29udmVydCB0byBwZXJjZW50YWdlIG9ubHkgaWYgbm90IHplcm9cbiAgICBAaWYgJG9mZnNldCAhPSAwIHtcbiAgICAgICAgJG9mZnNldDogcGVyY2VudGFnZSgkb2Zmc2V0KTtcbiAgICB9XG4gICAgbWFyZ2luLWxlZnQ6ICRvZmZzZXQ7XG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgKm1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKG1hdGguZGl2KCRpbmRleCwgJHJlZmxleC1jb2x1bW5zKSkgLSAuMTsgLy8gaWU3IGNzcyBoYWNrXG4gICAgfVxufVxuXG5AbWl4aW4gbWFrZS1vZmZzZXQtaGVscGVycygpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9mZnNldC1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucyAtIDEpO1xufVxuXG5AbWl4aW4gbG9vcC1vZmZzZXQtaGVscGVycygkaW5kZXgsICRicmVha3BvaW50OiBudWxsKSB7XG4gICAgQGlmICRpbmRleCA+IDAgYW5kICRicmVha3BvaW50ID09IG51bGwge1xuICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1vZmZzZXQjeyRicmVha3BvaW50fS0jeyRpbmRleH0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgb2Zmc2V0KCRpbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbmV4dCBpdGVyYXRpb25cbiAgICAgICAgQGluY2x1ZGUgbG9vcC1vZmZzZXQtaGVscGVycygoJGluZGV4IC0gMSksICRicmVha3BvaW50KTtcbiAgICB9IEBlbHNlIGlmICRpbmRleCA+PSAwIGFuZCAkYnJlYWtwb2ludCAhPSBudWxsIHtcbiAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9b2Zmc2V0I3skYnJlYWtwb2ludH0tI3skaW5kZXh9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG9mZnNldCgkaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIG5leHQgaXRlcmF0aW9uXG4gICAgICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoKCRpbmRleCAtIDEpLCAkYnJlYWtwb2ludCk7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IG1vZGlmaWVyIG1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy9cbi8vIGRpc3BsYXlcbi8vIC0tLVxuXG5AbWl4aW4gZGlzcGxheS1mbGV4KCkge1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vL1xuLy8gZmxleFxuLy8gLS0tXG5cbkBtaXhpbiBmbGV4KCRncm93OiAwLCAkc2hyaW5rOiAxLCAkYmFzaXM6IGF1dG8pIHtcbiAgICBAaWYgJGJhc2lzID09IDAge1xuICAgICAgICAtbXMtZmxleDogJGdyb3cgJHNocmluayBhdXRvOyAvL2llMTAgbmVlZHMgYXV0b1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAtbXMtZmxleDogJGdyb3cgJHNocmluayAkYmFzaXM7XG4gICAgfVxuXG4gICAgLXdlYmtpdC1mbGV4OiAkZ3JvdyAkc2hyaW5rICRiYXNpcztcbiAgICBmbGV4OiAkZ3JvdyAkc2hyaW5rICRiYXNpcztcbn1cblxuQG1peGluIGZsZXgtZ3JvdygkZ3JvdzoxKSB7XG4gICAgLW1zLWZsZXgtcG9zaXRpdmU6ICRncm93O1xuICAgIC13ZWJraXQtZmxleC1ncm93OiAkZ3JvdztcbiAgICBmbGV4LWdyb3c6ICRncm93O1xufVxuXG5AbWl4aW4gZmxleC1zaHJpbmsoJHNocmluazoxKSB7XG4gICAgLW1zLWZsZXgtbmVnYXRpdmU6ICRzaHJpbms7XG4gICAgLXdlYmtpdC1mbGV4LXNocmluazogJHNocmluaztcbiAgICBmbGV4LXNocmluazogJHNocmluaztcbn1cblxuQG1peGluIGZsZXgtYmFzaXMoJGJhc2lzOmF1dG8pIHtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJGJhc2lzO1xuICAgIC13ZWJraXQtZmxleC1iYXNpczogJGJhc2lzO1xuICAgIGZsZXgtYmFzaXM6ICRiYXNpcztcbn1cblxuQG1peGluIGZsZXgtZmxvdygkZGlyZWN0aW9uOiByb3csICR3cmFwOiBub3dyYXApIHtcbiAgICAtbXMtZmxleC13cmFwOiAkd3JhcDtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG4gICAgLXdlYmtpdC1mbGV4LWZsb3c6ICRkaXJlY3Rpb24gJHdyYXA7XG4gICAgZmxleC1mbG93OiAkZGlyZWN0aW9uICR3cmFwO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR3cmFwOiB3cmFwKSB7XG4gICAgLW1zLWZsZXgtd3JhcDogJHdyYXA7XG4gICAgLXdlYmtpdC1mbGV4LXdyYXA6ICR3cmFwO1xuICAgIGZsZXgtd3JhcDogJHdyYXA7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkZGlyZWN0aW9uOiByb3cpIHtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG4gICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbiAgICBmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn1cblxuLy9cbi8vIGFsaWduXG4vLyAtLS1cblxuQG1peGluIGFsaWduLWl0ZW1zKCRhbGlnbjogc3RyZXRjaCkge1xuICAgIEBpbmNsdWRlIG1zLWFsaWduLWl0ZW1zKCRhbGlnbik7XG4gICAgLXdlYmtpdC1hbGlnbi1pdGVtczogJGFsaWduO1xuICAgIGFsaWduLWl0ZW1zOiAkYWxpZ247XG59XG5cbkBtaXhpbiBhbGlnbi1zZWxmKCRhbGlnbjogc3RyZXRjaCkge1xuICAgIEBpbmNsdWRlIG1zLWFsaWduLXNlbGYoJGFsaWduKTtcbiAgICAtd2Via2l0LWFsaWduLXNlbGY6ICRhbGlnbjtcbiAgICBhbGlnbi1zZWxmOiAkYWxpZ247XG59XG5cbkBtaXhpbiBhbGlnbi1jb250ZW50KCRhbGlnbjogc3RyZXRjaCkge1xuICAgIEBpbmNsdWRlIG1zLWFsaWduLWNvbnRlbnQoJGFsaWduKTtcbiAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICRhbGlnbjtcbiAgICBhbGlnbi1jb250ZW50OiAkYWxpZ247XG59XG5cbi8vXG4vLyBpZTEwIHN5bnRheCBmb3IgYWxpZ25cbi8vIC0tLVxuXG5AbWl4aW4gbXMtYWxpZ24taXRlbXMoJGFsaWduKSB7XG4gICAgQGlmICRhbGlnbiA9PSAnZmxleC1zdGFydCcge1xuICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XG4gICAgfSBAZWxzZSBpZiAkYWxpZ24gPT0gJ2ZsZXgtZW5kJyB7XG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiAkYWxpZ247XG4gICAgfVxufVxuXG5AbWl4aW4gbXMtYWxpZ24tc2VsZigkYWxpZ24pIHtcbiAgICBAaWYgJGFsaWduID09ICdmbGV4LXN0YXJ0JyB7XG4gICAgICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0YXJ0O1xuICAgIH0gQGVsc2UgaWYgJGFsaWduID09ICdmbGV4LWVuZCcge1xuICAgICAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBlbmQ7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICRhbGlnbjtcbiAgICB9XG59XG5cbkBtaXhpbiBtcy1hbGlnbi1jb250ZW50KCRhbGlnbikge1xuICAgIEBpZiAkYWxpZ24gPT0gJ2ZsZXgtc3RhcnQnIHtcbiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdGFydDtcbiAgICB9IEBlbHNlIGlmICRhbGlnbiA9PSAnZmxleC1lbmQnIHtcbiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBlbmQ7XG4gICAgfSBAZWxzZSBpZiAkYWxpZ24gPT0gJ3NwYWNlLWJldHdlZW4nIHtcbiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBqdXN0aWZ5O1xuICAgIH0gQGVsc2UgaWYgJGFsaWduID09ICdzcGFjZS1hcm91bmQnIHtcbiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBkaXN0cmlidXRlO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6ICRhbGlnbjtcbiAgICB9XG59XG5cbi8vXG4vLyBqdXN0aWZ5LWNvbnRlbnRcbi8vXG4vLyBVc2VzIFwidGV4dC1hbGlnblwiIGZvciB0aGUgZmFsbGJhY2sgaW5saW5lLWJsb2NrIGdyaWRcbi8vIFwidGV4dC1hbGlnblwiIGlzIGdsb2JhbGx5IHN1cHBvcnRlZCBhbmQgd29ya3Mgb24gYWxsIHJvd3MgZXhjZXB0IHRoZSBsYXN0XG4vLyBcInRleHQtYWxpZ24tbGFzdFwiLCB3aGVyZSBzdXBwb3J0ZWQsIGhhbmRsZXMgdGhlIGxhc3QgbGluZSAoYW5kLCBoYXBwaWx5LCBncmlkcyB3aXRoIG9ubHkgb25lIHJvdylcbi8vIC0tLVxuXG5AbWl4aW4ganVzdGlmeS1jb250ZW50LXN0YXJ0KCkge1xuICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuQG1peGluIGp1c3RpZnktY29udGVudC1lbmQoKSB7XG4gICAgLW1zLWZsZXgtcGFjazogZW5kO1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG5AbWl4aW4ganVzdGlmeS1jb250ZW50LWNlbnRlcigpIHtcbiAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuQG1peGluIGp1c3RpZnktY29udGVudC1zcGFjZS1iZXR3ZWVuKCkge1xuICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG5AbWl4aW4ganVzdGlmeS1jb250ZW50LXNwYWNlLWFyb3VuZCgpIHtcbiAgICAtbXMtZmxleC1wYWNrOiBkaXN0cmlidXRlO1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZXNwb25zaWJsZSBWaXNpYmlsaXR5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gcmVzcG9uc2l2ZS12aXNpYmlsaXR5LWhlbHBlcnMoKSB7XG4gICAgQGlmICR2aXNpYmlsaXR5LWhlbHBlcnMgPT0gdHJ1ZSB7XG4gICAgICAgIC8vIFdlIG5lZWQgdG8gaGFuZGxlIHh4cyBhbmQgeGxnIGJyZWFrcG9pbnRzIGRpZmZlcmVudGx5XG4gICAgICAgICRtYXAtcmVmbGV4LWJyZWFrcG9pbnRzOiBtYXAtcmVtb3ZlKCRyZWZsZXgtYnJlYWtwb2ludHMsIHh4cywgeGxnKTtcblxuICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1oaWRkZW4teHhzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtb25seSgneHhzJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYnAgaW4gbWFwLWtleXMoJG1hcC1yZWZsZXgtYnJlYWtwb2ludHMpIHtcbiAgICAgICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fWhpZGRlbi0jeyRicH0tdXAge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJwKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICBcblxuICAgICAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9aGlkZGVuLSN7JGJwfS1kb3duIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJGJwKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1oaWRkZW4tI3skYnB9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LW9ubHkoJGJwKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9aGlkZGVuLXhsZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LW9ubHkoJ3hsZycpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vICh4czogNTc2cHgsIHNtOiA3NjhweCwgbWQ6IDk5MnB4KVxuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJHJlZmxleC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vLyA+PiBicmVha3BvaW50LW5leHQoc20pIC0+IG1kXG4vLyA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50czogKHhzOiA1NzZweCwgc206IDc2OHB4LCBtZDogOTkycHgpKSAtPiBtZFxuLy8gPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kKSkgLT4gbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJHJlZmxleC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgICAkbjogaW5kZXgoJGJyZWFrcG9pbnQtbmFtZXMsICRuYW1lKTtcbiAgICBAcmV0dXJuIGlmKCRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy8gPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogNTc2cHgsIHNtOiA3NjhweCwgbWQ6IDk5MnB4KSkgLT4gNzY4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkcmVmbGV4LWJyZWFrcG9pbnRzKSB7XG4gICAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgICBAcmV0dXJuIGlmKCRtaW4gIT0wLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gb2YgdGhlIG5leHQgb25lIGxlc3MgMC4xLlxuLy8gPj4gYnJlYWtwb2ludC1tYXgoc20sICh4czogNTc2cHgsIHNtOiA3NjhweCwgbWQ6IDk5MnB4KSkgLT4gOTkxcHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkcmVmbGV4LWJyZWFrcG9pbnRzKSB7XG4gICAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgICBAcmV0dXJuIGlmKCRuZXh0LCBicmVha3BvaW50LW1pbigkbmV4dCwgJGJyZWFrcG9pbnRzKSAtIDEsIG51bGwpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJHJlZmxleC1icmVha3BvaW50cykge1xuICAgICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gICAgQGlmICRtaW4ge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRyZWZsZXgtYnJlYWtwb2ludHMpIHtcbiAgICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcblxuICAgIEBpZiAkbWF4IHtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkcmVmbGV4LWJyZWFrcG9pbnRzKSB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIG90aGVyIG1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIGJveC1zaXppbmcoJGJveG1vZGVsKSB7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkYm94bW9kZWw7XG4gICAgLW1vei1ib3gtc2l6aW5nOiAkYm94bW9kZWw7XG4gICAgYm94LXNpemluZzogJGJveG1vZGVsO1xufVxuIiwiXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gZ3JpZCBtb2RpZmllcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBmbGV4LXdyYXBcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fXdyYXAge1xuICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9bm8td3JhcCB7XG4gICAgQGluY2x1ZGUgZmxleC13cmFwKG5vd3JhcCk7XG5cbiAgICAvLyBUaGlzIGlzIG1vc3RseSBuZWVkZWQgdG8gc3RvcCB0aGUgZ3JpZCBjb250ZW50cyBvdmVyZmxvd2luZyBpbiB0aGVcbiAgICAvLyBpZTEwIGltcGxlbWVudGF0aW9uIG9mIGZsZXhib3ggYnV0IGl0IGNhbid0IGh1cnQgaW4gb3RoZXIgYnJvd3NlcnNcbiAgICAvLyBhcyBpdCBpcyB0aGUgZGVzaXJlZCBiZWhhdmlvdXIgb2Ygbm9uIHdyYXBwaW5nIGZsZXggaXRlbXNcbiAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1zaHJpbmsoMSk7XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH13cmFwLXJldmVyc2Uge1xuICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwLXJldmVyc2UpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gZmxleC1kaXJlY3Rpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWRpcmVjdGlvbi1yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWRpcmVjdGlvbi1yb3ctcmV2ZXJzZSB7XG4gICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93LXJldmVyc2UpO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1kaXJlY3Rpb24tY29sdW1uIHtcbiAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1kaXJlY3Rpb24tY29sdW1uLXJldmVyc2Uge1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbi1yZXZlcnNlKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGFsaWduIGl0ZW1zIChjcm9zcyBheGlzKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tc3RhcnQge1xuICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1lbmQge1xuICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGZsZXgtZW5kKTtcblxuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgIC8vIGZhbGxiYWNrIHRvIGxlZ2FjeSB2ZXJ0aWNhbC1hbGlnblxuICAgICAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLWNlbnRlciB7XG4gICAgQGluY2x1ZGUgYWxpZ24taXRlbXMoY2VudGVyKTtcblxuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgIC8vIGZhbGxiYWNrIHRvIGxlZ2FjeSB2ZXJ0aWNhbC1hbGlnblxuICAgICAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLWJhc2VsaW5lIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1pdGVtcyhiYXNlbGluZSk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBhbGlnbiBjb250ZW50IChjcm9zcyBheGlzKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tY29udGVudC1zdGFydCB7XG4gICAgQGluY2x1ZGUgYWxpZ24tY29udGVudChmbGV4LXN0YXJ0KTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tY29udGVudC1lbmQge1xuICAgIEBpbmNsdWRlIGFsaWduLWNvbnRlbnQoZmxleC1lbmQpO1xuXG4gICAgLy8gZmFsbGJhY2sgdG8gbGVnYWN5IHZlcnRpY2FsLWFsaWduXG4gICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1jb250ZW50LWNlbnRlciB7XG4gICAgQGluY2x1ZGUgYWxpZ24tY29udGVudChjZW50ZXIpO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1jb250ZW50LXNwYWNlLWJldHdlZW4ge1xuICAgIEBpbmNsdWRlIGFsaWduLWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLWNvbnRlbnQtc3BhY2UtYXJvdW5kIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1jb250ZW50KHNwYWNlLWFyb3VuZCk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBhbGlnbi1zZWxmXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1zZWxmLXN0cmV0Y2gge1xuICAgIEBpbmNsdWRlIGFsaWduLXNlbGYoc3RyZXRjaCk7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLXNlbGYtc3RhcnQge1xuICAgIEBpbmNsdWRlIGFsaWduLXNlbGYoZmxleC1zdGFydCk7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLXNlbGYtZW5kIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1zZWxmKGZsZXgtZW5kKTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1zZWxmLWNlbnRlciB7XG4gICAgQGluY2x1ZGUgYWxpZ24tc2VsZihjZW50ZXIpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLXNlbGYtYmFzZWxpbmUge1xuICAgIEBpbmNsdWRlIGFsaWduLXNlbGYoYmFzZWxpbmUpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGp1c3RpZnktY29udGVudCAobWFpbiBheGlzKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9anVzdGlmeS1zdGFydCB7XG4gICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50LXN0YXJ0KCk7XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAmLmdyaWQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9anVzdGlmeS1lbmQge1xuICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudC1lbmQoKTtcblxuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgICYuZ3JpZCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIC1tb3otdGV4dC1hbGlnbi1sYXN0OiByaWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ24tbGFzdDogcmlnaHQ7XG5cbiAgICAgICAgICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc2V0LXRleHQtYWxpZ24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9anVzdGlmeS1jZW50ZXIge1xuICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudC1jZW50ZXIoKTtcblxuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgICYuZ3JpZCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAtbW96LXRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG5cbiAgICAgICAgICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc2V0LXRleHQtYWxpZ24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9anVzdGlmeS1zcGFjZS1iZXR3ZWVuIHtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYmV0d2VlbigpO1xuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgJi5ncmlkIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgICAgICAgICAtbW96LXRleHQtYWxpZ24tbGFzdDoganVzdGlmeTtcbiAgICAgICAgICAgIHRleHQtYWxpZ24tbGFzdDoganVzdGlmeTtcblxuICAgICAgICAgICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzZXQtdGV4dC1hbGlnbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1qdXN0aWZ5LXNwYWNlLWFyb3VuZCB7XG4gICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50LXNwYWNlLWFyb3VuZCgpO1xuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgJi5ncmlkIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgICAgICAgICAtbW96LXRleHQtYWxpZ24tbGFzdDoganVzdGlmeTtcbiAgICAgICAgICAgIHRleHQtYWxpZ24tbGFzdDoganVzdGlmeTtcblxuICAgICAgICAgICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzZXQtdGV4dC1hbGlnbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gY29zbWV0aWMgZ3JpZCBtb2RpZmllcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFJlbW92ZXMgaW50ZXJuYWwgcGFkZGluZyBmcm9tIGFsbCBjb2x1bW5zIGluIGEgZ3JpZFxuLiN7JHJlZmxleC1wcmVmaXh9Z3JpZC1ibGVlZCB7XG4gICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gY29sIG1vZGlmaWVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gTWFrZXMgYSBjb2x1bW4gZWxlbWVudCBpbnRvIGEgZmxleGJveCBjb2x1bW5cbi4jeyRyZWZsZXgtcHJlZml4fWNvbC1ncmlkIHtcbiAgICBAaW5jbHVkZSBkaXNwbGF5LWZsZXgoKTtcbiAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xuXG4gICAgJi4jeyRyZWZsZXgtcHJlZml4fWRpcmVjdGlvbi1yb3cge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xuICAgIH1cbn1cblxuLy8gUmVtb3ZlcyBpbnRlcm5hbCBwYWRkaW5nIGZyb20gYWxsIGNvbHVtbnMgaW4gYSBncmlkXG4uI3skcmVmbGV4LXByZWZpeH1jb2wtYmxlZWQge1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi8vIFJlbW92ZXMgaG9yaXpvbnRhbCBwYWRkaW5nIGZyb20gYWxsIGNvbHVtbnMgaW4gYSBncmlkXG4uI3skcmVmbGV4LXByZWZpeH1jb2wtYmxlZWQteCB7XG4gICAgcGFkZGluZzogJHJlZmxleC1ncmlkLXNwYWNpbmcgMDtcbn1cblxuLy8gUmVtb3ZlcyB2ZXJ0aWNhbCBwYWRkaW5nIGZyb20gYWxsIGNvbHVtbnMgaW4gYSBncmlkXG4uI3skcmVmbGV4LXByZWZpeH1jb2wtYmxlZWQteSB7XG4gICAgcGFkZGluZzogMCAkcmVmbGV4LWdyaWQtc3BhY2luZztcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGNvbC1ncmlkIGNvbnRlbnRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1mbGV4LWltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgQGluY2x1ZGUgZmxleCgwLCAwLCBhdXRvKTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgICp3aWR0aDogYXV0bztcbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWZsZXgtZm9vdGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZXNwb25zaXZlIHZpc2liaWxpdHkgbW9kaWZpZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSByZXNwb25zaXZlLXZpc2liaWxpdHktaGVscGVycygpO1xuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xyXG5cclxuLiN7JGdsaWRlLWNsYXNzfSB7XHJcbiAgJHRoaXM6ICY7XHJcblxyXG4gICRzZTogJGdsaWRlLWVsZW1lbnQtc2VwYXJhdG9yO1xyXG4gICRzbTogJGdsaWRlLW1vZGlmaWVyLXNlcGFyYXRvcjtcclxuXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblxyXG4gICoge1xyXG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcclxuICB9XHJcblxyXG4gICYjeyRzZX10cmFjayB7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIH1cclxuXHJcbiAgJiN7JHNlfXNsaWRlcyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xyXG4gICAgdG91Y2gtYWN0aW9uOiBwYW4tWTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XHJcblxyXG4gICAgJiN7JGdsaWRlLW1vZGlmaWVyLXNlcGFyYXRvcn1kcmFnZ2luZyB7XHJcbiAgICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJiN7JHNlfXNsaWRlIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XHJcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cclxuICAgIGEge1xyXG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICAgICAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7XHJcbiAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYjeyRzZX1hcnJvd3Mge1xyXG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xyXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmI3skc2V9YnVsbGV0cyB7XHJcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XHJcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICB9XHJcblxyXG4gICYjeyRzbX1ydGwge1xyXG4gICAgZGlyZWN0aW9uOiBydGw7XHJcbiAgfVxyXG59XHJcbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBIZWxwZXJzIC0gRm9jdXMgVmlzaWJsZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogRm9jdXMgVmlzaWJsZVxuICogaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvZm9jdXMtdmlzaWJsZVxuICogT3ZlcnJpZGUgYmFzZSBmb2N1cyBzdHlsZXMgZm9yIG1vdXNlIGFuZCB0b3VjaCBpbnRlcmFjdGlvbnNcbiAqL1xuQG1peGluIGZvY3VzLXZpc2libGUoKSB7XG4gIC5qcy1mb2N1cy12aXNpYmxlICYge1xuICAgICY6bm90KC5mb2N1cy12aXNpYmxlKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBIZWxwZXJzIC0gRm9udCBTbW9vdGhpbmdcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKiogXG4gKiBGb250IFNtb290aGluZ1xuICogRW5hYmxlcyBmb250IHNtb290aGluZyBmb3IgY2FwYWJsZSBicm93c2Vycy5cbiAqIE9wdGlvbmFsbHkgZm9yY2UgZm9udC1zbW9vdGhpbmcgb24gbm9uLXJldGluYSBkZXZpY2VzLlxuICogQHBhcmFtIHtib29sZWFufSAkZm9yY2UgW2ZhbHNlXVxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5AbWl4aW4gZm9udC1zbW9vdGhpbmcoJGZvcmNlOiBmYWxzZSkge1xuICBAaWYgJGZvcmNlID09IHRydWUge1xuICAgIC1tb3otZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICB9IEBlbHNlIHtcbiAgICBAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSB7XG4gICAgICAtbW96LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogSGVscGVycyAtIEdsb2JhbCBtaXhpbnNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vLyBSZXNldCA8bGk+IGVsZW1lbnRzXG5AbWl4aW4gbGktcmVzZXQge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG5cbiAgbGkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLy8gUmVtb3ZlIHRleHQgZnJvbSBlbGVtZW50c1xuQG1peGluIHJtLXRleHQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0ZXh0LWluZGVudDogLTk5OTlweDtcbn1cblxuLy8gQmFja2dyb3VuZCBpbWFnZXNcbkBtaXhpbiBiZy1pbWcoJHNpemUpIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAkc2l6ZTtcbn1cblxuLy8gSUUgOSsgb25seVxuQG1peGluIGllKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBcXDApIGFuZCAobWluLXJlc29sdXRpb246ICs3MmRwaSkge1xuICAgICN7JHByb3BlcnR5fTogI3skdmFsdWV9O1xuICB9XG59XG5cbkBtaXhpbiBidG5SZXNldCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbkBtaXhpbiBsaW5rUmVzZXQge1xuICAmOm5vdCguYS1idG4pIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogSGVscGVycyAtIFRhYmxlXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBSZXNwb25zaXZlIFRhYmxlXG4gKiBDcmVhdGVzIGEgcmVzcG9uc2l2ZSB0YWJsZVxuICogQWNjZXB0cyBhIGxpc3Qgb2YgaGVhZGVycyB0byByZXBsYWNlIG1haW4gXG4gKiB0YWJsZSBoZWFkZXJzIG9uIG1vYmlsZS5cbiAqIEBwYXJhbSB7bWFwfSAkaGVhZGVyc1xuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5AbWl4aW4gcmVzcG9uc2l2ZS10YWJsZSgkaGVhZGVyczogKCkpIHtcbiAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB0YWJsZSxcbiAgdGhlYWQsXG4gIHRib2R5LFxuICB0aCxcbiAgdGQsXG4gIHRyIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIHRoZWFkIHtcbiAgICB0ciB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC05OTk5cHg7XG4gICAgICAgIGxlZnQ6IC05OTk5cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdHIge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ibGFjaztcbiAgICAgIGJvcmRlci13aWR0aDogMXB4IDA7XG4gICAgICBwYWRkaW5nOiBzaXplKDMwcHgpIDA7XG4gICAgfVxuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0ZCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW4tdG9wOiBzaXplKDE2cHgpO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhlYWRlcnNcbiAgICovXG4gIEBlYWNoICRoZWFkZXIgaW4gJGhlYWRlcnMge1xuICAgICRpOiBpbmRleCgkaGVhZGVycywgJGhlYWRlcik7XG5cbiAgICB0ZDpudGgtb2YtdHlwZSgjeyRpfSk6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgY29udGVudDogJGhlYWRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBoaWRkZW4tdmlzdWFsbHkoKSB7XG4gICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKSAhaW1wb3J0YW50O1xuICAgIGNsaXAtcGF0aDogaW5zZXQoNTAlKSAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMXB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAtMXB4ICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xufVxuXG4udS1oaWRkZW4tdmlzdWFsbHkge1xuICAgIEBpbmNsdWRlIGhpZGRlbi12aXN1YWxseSgpO1xufSIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBDb25maWcgLSBGb250c1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1RoZWluaGFyZHQnO1xuICBzcmM6IHVybCgnLi4vZm9udC90aGVpbmhhcmR0L3N1YnNldC1UaGVpbmhhcmR0LU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICB1cmwoJy4uL2ZvbnQvdGhlaW5oYXJkdC9zdWJzZXQtVGhlaW5oYXJkdC1NZWRpdW1JdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnVGhlaW5oYXJkdCc7XG4gIHNyYzogdXJsKCcuLi9mb250L3RoZWluaGFyZHQvc3Vic2V0LVRoZWluaGFyZHQtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgdXJsKCcuLi9mb250L3RoZWluaGFyZHQvc3Vic2V0LVRoZWluaGFyZHQtTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnVGhlaW5oYXJkdCc7XG4gIHNyYzogdXJsKCcuLi9mb250L3RoZWluaGFyZHQvc3Vic2V0LVRoZWluaGFyZHQtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgIHVybCgnLi4vZm9udC90aGVpbmhhcmR0L3N1YnNldC1UaGVpbmhhcmR0LUl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdUaGVpbmhhcmR0JztcbiAgc3JjOiB1cmwoJy4uL2ZvbnQvdGhlaW5oYXJkdC9zdWJzZXQtVGhlaW5oYXJkdC1MaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICB1cmwoJy4uL2ZvbnQvdGhlaW5oYXJkdC9zdWJzZXQtVGhlaW5oYXJkdC1MaWdodEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdUaGVpbmhhcmR0JztcbiAgc3JjOiB1cmwoJy4uL2ZvbnQvdGhlaW5oYXJkdC9zdWJzZXQtVGhlaW5oYXJkdC1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgIHVybCgnLi4vZm9udC90aGVpbmhhcmR0L3N1YnNldC1UaGVpbmhhcmR0LVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnVGhlaW5oYXJkdCc7XG4gIHNyYzogdXJsKCcuLi9mb250L3RoZWluaGFyZHQvc3Vic2V0LVRoZWluaGFyZHQtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgIHVybCgnLi4vZm9udC90aGVpbmhhcmR0L3N1YnNldC1UaGVpbmhhcmR0LU1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIENvbmZpZyAtIFZhcnNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG46cm9vdCB7XG4gIC8vIENvbG91cnNcbiAgLS1jLXByaW1hcnk6ICMwMDA7XG4gIC0tYy1zZWNvbmRhcnk6IHZhcigtLWMtcGluayk7XG4gIC0tYy13aGl0ZTogI2ZmZmZmZjtcbiAgLS1jLWdyZXlMaWdodDogI2YzZjJmMTtcbiAgLS1jLWdyZXk6ICNjOGM4ZDI7XG4gIC0tYy10ZWFsOiAjMDBkMjgyO1xuICAtLWMteWVsbG93OiAjZmZmZjhjO1xuICAtLWMtcHVycGxlOiAjMDAwMGQ3O1xuICAtLWMtcGluazogI2ZmNzM2NDtcbiAgLS1jLW1hZ2VudGE6ICNmYTE0NDY7XG4gIC0tYy1yZWQ6ICNENTIzNEE7XG4gIC0tYy1ibHVlOiAjMDBhNUUxO1xuICAtLWMtbWFyb29uOiAjZmY2NDAwO1xuICAtLWMtZ3JlZW46ICMwMDRiMzI7XG4gIC0tYy11bWJlcjogIzVhMzIzNztcbiAgLS1jLWJsYWNrOiAjMDAwO1xuXG4gIC8vIFR5cG9ncmFwaHlcbiAgLS1mb250Qm9keTogJ1RoZWluaGFyZHQnLFxuICAgIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBPeHlnZW4sIFVidW50dSxcbiAgICBDYW50YXJlbGwsICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmO1xuICAtLWZvbnRCb2xkOiAnVGhlaW5oYXJkdCcsXG4gICAgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIE94eWdlbiwgVWJ1bnR1LFxuICAgIENhbnRhcmVsbCwgJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWY7XG4gIC0tZm9udEl0YWxpYzogJ1RoZWluaGFyZHQnLFxuICAgIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBPeHlnZW4sIFVidW50dSxcbiAgICBDYW50YXJlbGwsICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmO1xuICAtLWZvbnRUaXRsZTogJ1RoZWluaGFyZHQnLFxuICAgIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJyxcbiAgICBSb2JvdG8sIE94eWdlbiwgVWJ1bnR1LCBDYW50YXJlbGwsICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmO1xuICAvLy0tZm9udFNpemU6IDExMi41JTtcbiAgLS1mb250U21hbGw6IDgwJTtcbiAgLS1saW5lSGVpZ2h0OiAxLjM7XG5cbiAgLy8gTGF5b3V0XG4gIC0tY29udGFpbmVyV2lkdGg6IDE4MDJweDtcbiAgLS1jb2xzLTM6IGNhbGModmFyKC0tY29udGFpbmVyV2lkdGgpICogMC4yNSk7XG4gIC0tY29scy02OiBjYWxjKHZhcigtLWNvbnRhaW5lcldpZHRoKSAqIDAuNSk7XG4gIC0tY29scy04OiBjYWxjKHZhcigtLWNvbnRhaW5lcldpZHRoKSAqIDAuNjY2NjY2NjY2Nyk7XG4gIC0tY29scy0xMDogY2FsYyh2YXIoLS1jb250YWluZXJXaWR0aCkgKiAwLjgzMzMzMzMzMzMzMyk7XG4gIC0tdmFyaWFibGVIZWlnaHRMaW1pdDogY2xhbXAoMjB2aCwgNjB2dywgNjB2aCk7XG4gIC0taGVpZ2h0TGltaXQ6IDcwMHB4O1xuICAtLWd1dHRlcjogMTVweDtcblxuICAvLyBBbmltYXRpb25zXG4gIC0tZWFzaW5nOiBjdWJpYy1iZXppZXIoMC44MywgMCwgMC4xNywgMSk7XG4gIC0tdHJhbnNpdGlvbjogMC4zcyB2YXIoLS1lYXNpbmcpO1xuXG4gIC0tbGluZUxlbmd0aDogNjAwcHg7XG59XG5cbi8qKlxuKiBCcmVha3BvaW50cyBmb3IgQGluY2x1ZGUtbWVkaWFcbiovXG4kYnJlYWtwb2ludHM6IChcbiAgeHhzOiAzNjBweCxcbiAgeHM6IDU3NnB4LFxuICBzbTogNzY4cHgsXG4gIG1kOiA5OTJweCxcbiAgbGc6IDEyMDBweCxcbiAgeGxnOiAxNjAwcHgsXG4pO1xuXG4kaW51aXQtZ2xvYmFsLWZvbnQtc2l6ZTogIDE4cHggIWRlZmF1bHQ7IiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEJhc2UgLSBEZWZhdWx0c1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5ncmlkIHtcbiAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXJXaWR0aCk7XG59XG5cbi5jb250YWluZXItZnVsbCA+IC5ncmlkIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuXG51bC5tZW51LFxudWwucGxhaW4ge1xuICBAaW5jbHVkZSBsaS1yZXNldDtcbn1cblxuaW1nIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uKTtcblxuICAmLmxhenkge1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICBAbWVkaWEgbm90IGFsbCBhbmQgKG1pbi1yZXNvbHV0aW9uOiAwLjAwMWRwY20pIHtcbiAgICAgIEBzdXBwb3J0cyAoLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lKSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5sb2FkZWQge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnJlc3RyaWN0ZWQtaGVpZ2h0IHtcbiAgbWF4LWhlaWdodDogdmFyKC0taGVpZ2h0TGltaXQpO1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbmFbZGF0YS1nYWxsZXJ5XSB7XG4gIGN1cnNvcjogem9vbS1pbjtcblxuICAmOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAwLjg1O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLy8gS2VlcCB2aWRlbyByYXRpbyBmb3IgZmx1aWQgd2lkdGhzXG4udmlkZW8tY29udGFpbmVyLFxuLm1lZGlhLXZpbWVvLXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICBwYWRkaW5nLXRvcDogMjVweDtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tYmxvY2stc3RhcnQ6IGF1dG87XG5cbiAgaWZyYW1lIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbi8vIFZpZGVvIENhcHRpb25zXG4udmlkZW8td3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4udmlkZW8tdGl0bGUgaDN7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZS1iYXNlLXBsdXMtMTtcbn1cblxuLnZpZGVvLWNhcHRpb24ge1xuICBtYXJnaW4tdG9wOiAuNXJlbTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xufVxuXG4vLyBTb3VuY2xvdWRcbi5tZWRpYS1zb3VuZGNsb3VkLWF1ZGlvIGlmcmFtZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxNTBweDtcbn1cblxuZmlnY2FwdGlvbiB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgZm9udC1zaXplOiA5MCU7XG4gIC8vIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250SXRhbGljKTtcbn1cbiIsIi8vLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgIENhbGN1bGF0ZSBmb250IHNpemUgZm9yIHNjcmVlbnMgYmV0d2VlbiB0d28gYnJlYWtwb2ludHMgLSBmbHVpZCB0eXBlXG4vLyAgIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvY3NzL2ZsdWlkLXR5cG9ncmFwaHkvXG4vL1xuLy8gICBVc2VzIGludWl0LWZvbnQtc2l6ZSBhcyBhIGZhbGxiYWNrIHRvIG91dHB1dCBydWxlcyBmb3Igc2NyZWVucyBvdXRzaWRlIHRoZSBnaXZlbiBicmVha3BvaW50c1xuLy8gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQG1peGluIGZsdWlkLXR5cGUoJG1pbi1mb250LXNpemUsICRtYXgtZm9udC1zaXplOiAkbWluLWZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0OiBhdXRvLCAkbWluLXZ3OiBtYXAtZ2V0KCRicmVha3BvaW50cywgc20pLCAkbWF4LXZ3OiBtYXAtZ2V0KCRicmVha3BvaW50cywgeGxnKSApIHtcbiAgICAkdTE6IHVuaXQoJG1pbi12dyk7XG4gICAgJHUyOiB1bml0KCRtYXgtdncpO1xuICAgICR1MzogdW5pdCgkbWluLWZvbnQtc2l6ZSk7XG4gICAgJHU0OiB1bml0KCRtYXgtZm9udC1zaXplKTtcblxuICAgIEBpZiAkdTEgPT0kdTIgYW5kICR1MSA9PSR1MyBhbmQgJHUxID09JHU0IHtcbiAgICAgICAgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoJG1pbi1mb250LXNpemUsICRsaW5lLWhlaWdodCk7XG5cbiAgICAgICAgICAgIEBpZiAkbWluLWZvbnQtc2l6ZSAhPSRtYXgtZm9udC1zaXplIHtcbiAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWF4LXZ3KSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgkbWF4LWZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWluLXZ3KSBhbmQgKG1heC13aWR0aDogJG1heC12dykge1xuICAgICAgICAgICAgICAgICAgICAvLyBVc2UgcmVtcyBmb3IgZmx1aWQgdHlwZSBjYWxjdWF0aW9uc1xuICAgICAgICAgICAgICAgICAgICAkbWluLWZvbnQtc2l6ZTogdG8tcmVtKCRtaW4tZm9udC1zaXplKTtcbiAgICAgICAgICAgICAgICAgICAgJG1heC1mb250LXNpemU6IHRvLXJlbSgkbWF4LWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICAgICAgICAgICRtaW4tdnc6IHRvLXJlbSgkbWluLXZ3KTtcbiAgICAgICAgICAgICAgICAgICAgJG1heC12dzogdG8tcmVtKCRtYXgtdncpO1xuXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogY2FsYygjeyRtaW4tZm9udC1zaXplfSArICN7c3RyaXAtdW5pdCgkbWF4LWZvbnQtc2l6ZSAtICRtaW4tZm9udC1zaXplKX0gKiAoKDEwMHZ3IC0gI3skbWluLXZ3fSkgLyAje3N0cmlwLXVuaXQoJG1heC12dyAtICRtaW4tdncpfSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gVHlwZSBzY2FsZSBhZGp1c3RtZW50cyBjYW4gYmUgbWFkZSBhdDpcbi8vIGh0dHBzOi8vd3d3LmZsdWlkLXR5cGUtc2NhbGUuY29tL2NhbGN1bGF0ZT9taW5Gb250U2l6ZT0xNiZtaW5XaWR0aD00MDAmbWluUmF0aW89MS4yJm1heEZvbnRTaXplPTE5Jm1heFdpZHRoPTEyODAmbWF4UmF0aW89MS4yJnN0ZXBzPWJhc2UtbWludXMtMiUyQ2Jhc2UtbWludXMtMSUyQ2Jhc2UlMkNiYXNlLXBsdXMtMSUyQ2Jhc2UtcGx1cy0yJTJDYmFzZS1wbHVzLTMlMkNiYXNlLXBsdXMtNCUyQ2Jhc2UtcGx1cy01JTJDYmFzZS1wbHVzLTYlMkNiYXNlLXBsdXMtNyUyQ2Jhc2UtcGx1cy04JmJhc2VTdGVwPWJhc2UmcHJlZml4PWZvbnQtc2l6ZSZkZWNpbWFscz0wJnByZXZpZXdGb250PUludGVyJnByZXZpZXdUZXh0PUFsbW9zdCtiZWZvcmUrd2Ura25ldytpdCUyQyt3ZStoYWQrbGVmdCt0aGUrZ3JvdW5kJnByZXZpZXdXaWR0aD0xMjgwXG5cbkBtaXhpbiBmb250LXNpemUtYmFzZS1taW51cy0xIHtcbiAgICBAaW5jbHVkZSBmbHVpZC10eXBlKDEycHgsIDEycHgsIDEuMyk7XG59XG5cbkBtaXhpbiBmb250LXNpemUtYmFzZSB7XG4gICAgQGluY2x1ZGUgZmx1aWQtdHlwZSgxOHB4LCAxOHB4LCAxLjMpO1xufVxuXG5AbWl4aW4gZm9udC1zaXplLWJhc2UtcGx1cy0xIHtcbiAgICBAaW5jbHVkZSBmbHVpZC10eXBlKDE4cHgsIDI0cHgsIDEuMyk7XG59XG5cbkBtaXhpbiBmb250LXNpemUtYmFzZS1wbHVzLTIge1xuICAgIEBpbmNsdWRlIGZsdWlkLXR5cGUoMjRweCwgMzBweCwgMS4yKTtcbn1cblxuQG1peGluIGZvbnQtc2l6ZS1iYXNlLXBsdXMtMyB7XG4gICAgQGluY2x1ZGUgZmx1aWQtdHlwZSgzMHB4LCAzNnB4LCAxLjIpO1xufVxuXG5AbWl4aW4gZm9udC1zaXplLWJhc2UtcGx1cy00IHtcbiAgICBAaW5jbHVkZSBmbHVpZC10eXBlKDM2cHgsIDQ4cHgsIDEuMik7XG59XG5cbkBtaXhpbiBmb250LXNpemUtYmFzZS1wbHVzLTUge1xuICAgIEBpbmNsdWRlIGZsdWlkLXR5cGUoNDhweCwgNjBweCwgMS4xKTtcbn0iLCIvLy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gICAjRk9OVC1TSVpFXG4vLyAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBHZW5lcmF0ZXMgYSByZW0gZm9udC1zaXplICh3aXRoIHBpeGVsIGZhbGxiYWNrKSBhbmQgYSBiYXNlbGluZS1jb21wYXRpYmxlXG4vLyB1bml0bGVzcyBsaW5lLWhlaWdodCBmcm9tIGEgcGl4ZWwgZm9udC1zaXplIHZhbHVlLiBCYXNpYyB1c2FnZSBpcyBzaW1wbHk6XG4vL1xuLy8gICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMThweCk7XG4vL1xuLy8gWW91IGNhbiBmb3JjZSBhIHNwZWNpZmljIGxpbmUtaGVpZ2h0IGJ5IHBhc3NpbmcgaXQgYXMgdGhlIHNlY29uZCBhcmd1bWVudDpcbi8vXG4vLyAgIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgxNnB4LCAxKTtcbi8vXG4vLyBZb3UgY2FuIGFsc28gbW9kaWZ5IHRoZSBsaW5lLWhlaWdodCBieSBpbmNyZW1lbnRzLCB3aGlsZSBzdGF5aW5nIGluIHRoZVxuLy8gYmFzZWxpbmUgZ3JpZCwgYnkgc2V0dGluZyB0aGUgYCRtb2RpZmllcmAgcGFyYW1ldGVyLiBJdCB0YWtlcyBhIHBvc2l0aXZlXG4vLyBvciBuZWdhdGl2ZSBpbnRlZ2VyLCBhbmQgaXQgd2lsbCBhZGQgb3IgcmVtb3ZlIFwibGluZXNcIiB0byB0aGUgIGdlbmVyYXRlZFxuLy8gbGluZS1oZWlnaHQuIFRoaXMgaXMgdGhlIHJlY29tZW5kZWQgd2F5IHRvIGRvIGl0LCB1bmxlc3MgeW91IHJlYWxseSBuZWVkXG4vLyBhbiBhYnNvbHV0ZSB2YWx1ZS4gaS5lLjpcbi8vXG4vLyAgIC8vIGFkZCAyIGxpbmVzOlxuLy8gICBAaW5jbHVkZSBpbnVpdC1mb250LXNpemUoMjRweCwgJG1vZGlmaWVyOiArMik7XG4vL1xuLy8gICAvLyBzdWJ0cmFjdCAxIGxpbmU6XG4vLyAgIEBpbmNsdWRlIGludWl0LWZvbnQtc2l6ZSgyNHB4LCAkbW9kaWZpZXI6IC0xKTtcblxuQG1peGluIGludWl0LWZvbnQtc2l6ZSgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQ6IGF1dG8sICRtb2RpZmllcjogMCwgJGltcG9ydGFudDogZmFsc2UpIHtcblxuICAgIEBpZiAodHlwZS1vZigkZm9udC1zaXplKSA9PSBudW1iZXIpIHtcbiAgICAgICAgQGlmICh1bml0KCRmb250LXNpemUpICE9IFwicHhcIikge1xuICAgICAgICAgICAgQGVycm9yIFwiYCN7JGZvbnQtc2l6ZX1gIG5lZWRzIHRvIGJlIGEgcGl4ZWwgdmFsdWUuXCI7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGVycm9yIFwiYCN7JGZvbnQtc2l6ZX1gIG5lZWRzIHRvIGJlIGEgbnVtYmVyLlwiO1xuICAgIH1cblxuICAgIEBpZiAoJGltcG9ydGFudCA9PSB0cnVlKSB7XG4gICAgICAgICRpbXBvcnRhbnQ6ICFpbXBvcnRhbnQ7XG4gICAgfSBAZWxzZSBpZiAoJGltcG9ydGFudCA9PSBmYWxzZSkge1xuICAgICAgICAkaW1wb3J0YW50OiBudWxsO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAZXJyb3IgXCJgI3skaW1wb3J0YW50fWAgbmVlZHMgdG8gYmUgYHRydWVgIG9yIGBmYWxzZWAuXCI7XG4gICAgfVxuXG4gICAgLy8gV2UgcHJvdmlkZSBhIGBweGAgZmFsbGJhY2sgZm9yIG9sZCBJRXMgbm90IHN1cHBvcnRpbmcgYHJlbWAgdmFsdWVzLlxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZSAkaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogY2FsYygkZm9udC1zaXplIC8gJGludWl0LWdsb2JhbC1mb250LXNpemUpICogMXJlbSAkaW1wb3J0YW50O1xuXG4gICAgQGlmICgkbGluZS1oZWlnaHQgPT0gXCJhdXRvXCIpIHtcblxuICAgICAgICAvLyBEZWZpbmUgaG93IG1hbnkgZ3JpZCBsaW5lcyBlYWNoIHRleHQgbGluZSBzaG91bGQgc3Bhbi5cbiAgICAgICAgLy8gQnkgZGVmYXVsdCwgd2Ugc2V0IGl0IHRvIHRoZSBtaW5pbXVtIG51bWJlciBvZiBsaW5lcyBuZWNlc3NhcnlcbiAgICAgICAgLy8gaW4gb3JkZXIgdG8gY29udGFpbiB0aGUgZGVmaW5lZCBmb250LXNpemUsICsxIGZvciBzb21lIGJyZWF0aGluZyByb29tLlxuICAgICAgICAvLyBUaGlzIGNhbiBiZSBtb2RpZmllZCB3aXRoIHRoZSBgJG1vZGlmaWVyYCBwYXJhbWV0ZXIuXG4gICAgICAgICRsaW5lczogY2VpbChjYWxjKCRmb250LXNpemUgLyAkaW51aXQtZ2xvYmFsLWJhc2VsaW5lKSkgKyAkbW9kaWZpZXIgKyAxO1xuICAgICAgICAkbGluZS1oZWlnaHQ6ICRsaW5lcyAqICRpbnVpdC1nbG9iYWwtYmFzZWxpbmU7XG5cbiAgICAgICAgbGluZS1oZWlnaHQ6IGNhbGMoJGxpbmUtaGVpZ2h0IC8gJGZvbnQtc2l6ZSkgJGltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG5cbiAgICAgICAgQGlmICh0eXBlLW9mKCRsaW5lLWhlaWdodCkgPT0gbnVtYmVyIG9yICRsaW5lLWhlaWdodCA9PSBcImluaGVyaXRcIiBvciAkbGluZS1oZWlnaHQgPT0gXCJub3JtYWxcIikge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodCAkaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2UgaWYgKCRsaW5lLWhlaWdodCAhPSBcIm5vbmVcIiBhbmQgJGxpbmUtaGVpZ2h0ICE9IGZhbHNlKSB7XG4gICAgICAgICAgICBAZXJyb3IgXCJE4oCZb2ghIGAjeyRsaW5lLWhlaWdodH1gIGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBgJGxpbmUtaGVpZ2h0YC5cIlxuICAgICAgICB9XG5cbiAgICB9XG5cbn0iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQmFzZSAtIFR5cG9ncmFwaHlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIENvbmZpZ1xuICovXG5cbi8qKlxuICogSGVhZGluZ1xuICovXG5oMSxcbi5oMSxcbmgyLFxuLmgyLFxuaDMsXG4uaDMsXG5oNCxcbi5oNCxcbmg1LFxuLmg1LFxuaDYsXG4uaDYge1xuICBtYXJnaW4tdG9wOiAwO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udFRpdGxlKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuaDEsXG4uaDEge1xuICBAaW5jbHVkZSBmb250LXNpemUtYmFzZS1wbHVzLTU7XG59XG5cbmgyLFxuLmgyIHtcbiAgQGluY2x1ZGUgZm9udC1zaXplLWJhc2UtcGx1cy00O1xufVxuXG5oMyxcbi5oMyB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZS1iYXNlLXBsdXMtMztcbn1cblxuaDQsXG4uaDQge1xuICBAaW5jbHVkZSBmb250LXNpemUtYmFzZS1wbHVzLTI7XG59XG5cbmg1LFxuLmg1IHtcbiAgQGluY2x1ZGUgZm9udC1zaXplLWJhc2UtcGx1cy0xO1xufVxuXG5oNixcbi5oNiB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZS1iYXNlO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICB9XG59XG5cblxuLmNlbnRlcmVkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcbiAgJi1wYWRkaW5nLWJvdHRvbSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICB9XG59XG5cbi5ib3JkZXIge1xuICAmLWJvdHRvbSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cbiAgfVxuICAmLXRvcCB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFBhcmFncmFwaHNcbiAqL1xucCB7XG4gIG1hcmdpbjogMCAwIDEuNXJlbTtcblxuICAmOmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vKipcbiAqIExpc3RzXG4gKi9cbnVsLFxub2wge1xuICBtYXJnaW46IDAgMCAxLjVyZW07XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4vKipcbiAqIExpbmtzXG4gKi9cbmEsXG4ubGluayB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uKTtcbiAgLy8gYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgLy8gcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vICY6OmFmdGVyIHtcbiAgLy8gICBjb250ZW50OiAnJztcbiAgLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8vICAgYm90dG9tOiAwO1xuICAvLyAgIGxlZnQ6IDA7XG4gIC8vICAgZGlzcGxheTogYmxvY2s7XG4gIC8vICAgaGVpZ2h0OiAycHg7XG4gIC8vICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8vICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uKTtcbiAgLy8gICB3aWR0aDogMTAwJTtcbiAgLy8gfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IGN1cnJlbnRDb2xvcjtcblxuICAgIC8vICY6OmFmdGVyIHtcbiAgICAvLyAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAvLyB9XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDNweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gIH1cblxuICAmLm5vLWxpbmsge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG59XG5cbi5uby1jbGljayB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbjo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xuICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbn1cblxuLyoqXG4gKiBCdXR0b25zXG4gKi9cbmJ1dHRvbiB7XG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDNweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gIH1cbn1cblxuLyoqXG4gKiBJbmxpbmVcbiAqL1xuIGIsXG5zdHJvbmcge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvbGQpO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG5lbSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250SXRhbGljKTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5zcGFuIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cblxuYWRkcmVzcyB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGxldHRlci1zcGFjaW5nOiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuc21hbGwge1xuICBmb250LXNpemU6IDkwJTtcbn1cblxuaHIge1xuICBib3JkZXI6IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gIGJvcmRlci13aWR0aDogMCAwIDFweCAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XG4vL1xuLy8gICAgICAgIGh0dHBzOi8vZWR1YXJkb2JvdWNhcy5naXRodWIuaW8vaW5jbHVkZS1tZWRpYVxuLy9cbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxuLy8gICAgICAgICAgICAgICAgICBLaXR0eSBHaXJhdWRlbCAoQGtpdHR5Z2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZSc6IDMyMHB4LFxuICAndGFibGV0JzogNzY4cHgsXG4gICdkZXNrdG9wJzogMTAyNHB4XG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgJ3ByaW50JzogJ3ByaW50JyxcbiAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XG4vLy9cbiR1bml0LWludGVydmFsczogKFxuICAncHgnOiAxLFxuICAnZW0nOiAwLjAxLFxuICAncmVtJzogMC4xLFxuICAnJzogMFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICRtZXNzYWdlO1xuICAgICRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGltLWxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG4gICAgQGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAgICAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcbiAgICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XG4gIEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xuICAgIEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAgICAgQHJldHVybiAkb3BlcmF0b3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XG4gICRkaW1lbnNpb246ICd3aWR0aCc7XG5cbiAgQGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XG4gICAgJGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XG4gIH1cblxuICBAcmV0dXJuICRkaW1lbnNpb247XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XG4gIEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xuXG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgICR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XG4gIH0gQGVsc2Uge1xuICAgICR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gIH1cblxuICAkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xuXG4gIEBpZiBub3QgJGludGVydmFsIHtcbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gICAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAgIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgICAkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XG4gIH1cblxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XG4gIH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuXG4vLy9cbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2Vcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxuLy8vXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xuICAvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXG4gIC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gIEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xuICB9XG5cbiAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XG4gICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG5cbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XG59XG5cbi8vL1xuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2Vcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxuLy8vXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xuICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG4gICAgQHJldHVybiAoKTtcbiAgfVxuXG4gICRyZXN1bHQ6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcbiAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8vXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xuICAgICRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gIH1cblxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xuICAkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XG5cbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcbiAgICAkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cbiAgICBAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG4gICAgICBAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKVxuICAgIH1cblxuICAgIEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG4gICAgICAkZGlnaXRzOiAxO1xuICAgIH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xufVxuXG5cbi8vL1xuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxuLy8vXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcbiAgJHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcblxuICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XG4gICAgJF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XG59XG5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcbi8vLyBmb3IgaW5zdGFuY2UuXG4vLy9cbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcbiAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XG4gICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cbi8vL1xuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XG4gIEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcbiAgICAgIChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuICAgIEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXG4gICAgICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQmFzZSAtIE1haW5cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIFN0eWxlc1xuICovXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiBjYWxjKCRpbnVpdC1nbG9iYWwtZm9udC1zaXplIC8gMTZweCkgKiAxcmVtO1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbn1cblxuYm9keSB7XG4gIEBpbmNsdWRlIGZvbnQtc21vb3RoaW5nKHRydWUpO1xuICBmb250LXNpemU6IDFyZW07IC8vIGluaGVyaXRzIGh0bWwncyByZW0gYmFzZSBkaXJlY3RseSDigJQgb3IganVzdCBvbWl0IHRoaXMgbGluZSBlbnRpcmVseSwgc2luY2UgaXQgaW5oZXJpdHMgYnkgZGVmYXVsdFxuICBsaW5lLWhlaWdodDogdmFyKC0tbGluZUhlaWdodCk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9keSk7XG4gIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xufVxuXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuYm9keSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbm1haW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufSIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBCYXNlIC0gQW5pbWF0aW9uc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbkBrZXlmcmFtZXMgZmFkZUluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBBdG9tcyAtIEJ1dHRvbnNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIENvbmZpZ1xuICoqL1xuXG5AbWl4aW4gYnRuIHtcbiAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGdhcDogMTBweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ0bkJnKTtcbiAgY29sb3I6IHZhcigtLWJ0bkNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJ0bkJnKTtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgJjpoYXMoc3ZnKSB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cblxuICBzdmcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICBtaW4td2lkdGg6IDFyZW07XG4gICAgd2lkdGg6IDFyZW07XG4gICAgaGVpZ2h0OiAxcmVtO1xuICB9XG5cbiAgcGF0aCB7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBidG4taG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1idG5Db2xvdXIpO1xuXG4gIHN2ZyB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7XG4gIH1cbn1cblxuLyoqXG4gKiBTdHlsZXNcbiAqKi9cblxuLmEtYnRuIHtcbiAgLS1idG5CZzogdmFyKC0tYy1wcmltYXJ5KTtcbiAgLS1idG5Db2xvdXI6IHZhcigtLWMtd2hpdGUpO1xuICBAaW5jbHVkZSBidG47XG4gIHRleHQtd3JhcDogYXV0bztcblxuICAmOmZvY3VzLFxuICAmOmhvdmVyIHtcbiAgICBAaW5jbHVkZSBidG4taG92ZXI7XG4gICAgb3BhY2l0eTogLjc7XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDNweCBzb2xpZCB2YXIoLS1idG5CZyk7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDNweDtcbiAgfVxuXG4gICYtLXllbCB7XG4gICAgLS1idG5CZzogdmFyKC0tYy15ZWxsb3cpO1xuICAgIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXByaW1hcnkpO1xuICB9XG5cbiAgJi0tYmx1ZSB7XG4gICAgLS1idG5CZzogdmFyKC0tYy1ibHVlKTtcbiAgICAtLWJ0bkNvbG91cjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgfVxuXG4gICYtLXdoIHtcbiAgICAtLWJ0bkJnOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAtLWJ0bkNvbG91cjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgfVxuXG4gICYtLXdpZGUge1xuICAgIHBhZGRpbmctbGVmdDogNHJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0cmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuXG4gICYtLWZ1bGxXaWR0aCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICYtLW5hcnJvdyB7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICB9XG5cbiAgJi0tc20ge1xuICAgIC0tYnRuQmc6IHRyYW5zcGFyZW50O1xuICAgIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHBhZGRpbmc6IDAuMjVyZW0gMC43NXJlbTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcblxuICAgICY6aG92ZXIge1xuICAgICAgLS1idG5CZzogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICB9XG4gIH1cblxuICAmLS1ob2xsb3cge1xuICAgIC0tYnRuQmc6IHRyYW5zcGFyZW50O1xuICAgIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZS1jb2xvcjogdmFyKC0tYnRuQ29sb3VyKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgb3V0bGluZS1jb2xvcjogdmFyKC0tYnRuQ29sb3VyKTtcbiAgICB9XG4gIH1cblxuICAmLS1pY29uTGVmdCB7XG4gICAgc3ZnIHtcbiAgICAgIG1hcmdpbjogMCAxMHB4IDAgMDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHN2ZyB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNXB4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLS13aGl0ZSB7XG4gICAgLS1idG5CZzogdHJhbnNwYXJlbnQ7XG4gICAgLS1idG5Db2xvdXI6IHZhcigtLWMtd2hpdGUpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcGluayk7XG4gICAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1waW5rKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBBdG9tcyAtIEltYWdlIGNyZWRpdHNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4uYS1pbWFnZS1jcmVkaXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIGN1cnNvcjogaGVscDtcbiAgYm9yZGVyOiAwO1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgLy8gQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgLy8gICBib3R0b206IDAuNXJlbTtcbiAgLy8gICByaWdodDogMXJlbTtcbiAgLy8gfVxuXG4gICZfX2ljb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxNnB4ICMwMDAwMDA4ODtcbiAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB3aWR0aDogMS4yNXJlbTtcbiAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICB9XG5cbiAgJl9fY29weSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZSk7XG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmc6IDFyZW0gM3JlbSAxcmVtIDFyZW07XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICAgIHdpZHRoOiA5NXZ3O1xuICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24pO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gICAgfVxuICB9XG5cbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUsXG4gICY6aG92ZXIge1xuICAgIC5hLWltYWdlLWNyZWRpdF9faWNvbiB7XG4gICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIH1cblxuICAgIC5hLWltYWdlLWNyZWRpdF9fY29weSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIHotaW5kZXg6IDIxO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gQnJlYWRjcnVtYnNcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1icmVhZGNydW1icyB7XG4gIHBhZGRpbmc6IDAuNXJlbSAycmVtO1xuICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXJXaWR0aCk7XG4gIG1hcmdpbjogMCBhdXRvO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAxNXB4O1xuICB9XG5cbiAgJl9fZGl2aWRlciB7XG4gICAgbWFyZ2luOiAwIDVweDtcbiAgfVxuXG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBMb2FkZXJcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cbkBrZXlmcmFtZXMgbG9hZGVyQW5pbWF0aW9uIHtcbiAgMCUsXG4gIDEwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDE0MHB4KSByb3RhdGVYKC0xODBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTQwcHgpIHJvdGF0ZVgoLTE4MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAyNSUsXG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDE0MHB4KSByb3RhdGVYKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTQwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA5MCUsXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWSgxODBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTQwcHgpIHJvdGF0ZVkoMTgwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbjpyb290IHtcbiAgLS1sb2FkZXJDb2xvdXI6IHZhcigtLWMtcHJpbWFyeSk7XG59XG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtbG9hZGVyIHtcbiAgbWFyZ2luOiAyMHB4IGF1dG87XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNmb3JtOiByb3RhdGVaKDQ1ZGVnKTtcblxuICAmLS13aGl0ZSB7XG4gICAgLS1sb2FkZXJDb2xvdXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgfVxuXG4gICZfX2N1YmUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA1MCU7XG4gICAgaGVpZ2h0OiA1MCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxvYWRlckNvbG91cik7XG4gICAgICBhbmltYXRpb246IGxvYWRlckFuaW1hdGlvbiAyLjRzIGluZmluaXRlIGxpbmVhciBib3RoO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgIH1cbiAgfVxuXG4gICZfX2N1YmUtMiB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZVooOTBkZWcpO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4zcztcbiAgICB9XG4gIH1cblxuICAmX19jdWJlLTMge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGVaKDE4MGRlZyk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjZzO1xuICAgIH1cbiAgfVxuXG4gICZfX2N1YmUtNCB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZVooMjcwZGVnKTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBhbmltYXRpb24tZGVsYXk6IDAuOXM7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBEYXRlIHBpY2tlclxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLWRhdGUtcGlja2VyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogODAlO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLkRheVBpY2tlci13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogdW5zZXQ7XG4gIH1cblxuICAuRGF5UGlja2VyLU5hdkJhciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMS41cmVtO1xuICAgIHJpZ2h0OiAycmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdG9wOiAxLjI1cmVtO1xuICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICB0b3A6IDAuNXJlbTtcbiAgICB9XG4gIH1cblxuICAuRGF5UGlja2VyLU5hdkJ1dHRvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTVweDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmLS1wcmV2IHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2Fycm93LWhlYWQtbGVmdC5zdmcnKSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmLS1uZXh0IHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2Fycm93LWhlYWQtcmlnaHQuc3ZnJykgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuRGF5UGlja2VyLUNhcHRpb24ge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250VGl0bGUpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgcGFkZGluZzogMC41cmVtIDA7XG4gICAgfVxuICB9XG5cbiAgYWJiciB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2xkKTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgY29sb3I6IHZhUigtLWMtcHJpbWFyeSk7XG4gIH1cblxuICAuRGF5UGlja2VyLURheS0tc2VsZWN0ZWQ6bm90KC5EYXlQaWNrZXItRGF5LS1zdGFydCk6bm90KC5EYXlQaWNrZXItRGF5LS1lbmQpOm5vdCguRGF5UGlja2VyLURheS0tb3V0c2lkZSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxNzEsIDE4NiwgMC40KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbik7XG4gIH1cblxuICAuRGF5UGlja2VyLURheSB7XG4gICAgYm9yZGVyLXJhZGl1czogMCUgIWltcG9ydGFudDtcblxuICAgICYtLXRvZGF5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcGluaykgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuRGF5UGlja2VyLURheS0tc3RhcnQge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDEwcHggIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuRGF5UGlja2VyLURheS0tZW5kIHtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMTBweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuRGF5UGlja2VyLURheS0tc2VsZWN0ZWQ6bm90KC5EYXlQaWNrZXItRGF5LS1kaXNhYmxlZCk6bm90KC5EYXlQaWNrZXItRGF5LS1vdXRzaWRlKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1waW5rKTtcbiAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24pO1xuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBQYWdpbmF0aW9uXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtcGFnZXIge1xuICBAaW5jbHVkZSBsaS1yZXNldDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luOiAycmVtIDA7XG5cbiAgLmRpc2FibGVkIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIHNwYW4sXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICB9XG5cbiAgYSB7XG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICAgcGF0aCB7XG4gICAgICAgIGZpbGw6IHZhcigtLWMtc2Vjb25kYXJ5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzcGFuLFxuICBhLnVuZGVmaW5lZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cblxuICBzdmcge1xuICAgIHdpZHRoOiAyNXB4O1xuICAgIG1hcmdpbjogMCAwLjVyZW07XG4gIH1cblxuICBwYXRoIHtcbiAgICB0cmFuc2l0aW9uOiBmaWxsIHZhcigtLXRyYW5zaXRpb24pO1xuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBDb2x1bW5zXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtY29scyB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwIDE1cHg7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc+c20nKSB7XG4gICAgcGFkZGluZzogMCAzNnB4O1xuICB9XG5cbiAgJi0teHMge1xuICAgIG1heC13aWR0aDogdmFyKC0tY29scy0zKTtcbiAgfVxuXG4gICYtLXNtIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWNvbHMtNik7XG4gIH1cblxuICAmLS1tZCB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1jb2xzLTgpO1xuICB9XG5cbiAgJi0tZnVsbCB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXJXaWR0aCk7XG4gIH1cblxuICAmLS1iZ0NvbG91ciB7XG4gICAgbWFyZ2luOiAycmVtIDA7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgbWFyZ2luOiAxcmVtIDA7XG4gICAgfVxuICAgICAgXG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIEltYWdlIGNhcHRpb25zXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtY2FwdGlvbiB7XG4gIEBpbmNsdWRlIGJnLWltZyg4cHgpO1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLWd1dHRlcik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2Fycm93LWhlYWQuc3ZnJyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgMTFweDtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gQXV0byBncmlkXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtYXV0by1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoXG4gICAgYXV0by1maXQsXG4gICAgbWlubWF4KHZhcigtLWF1dG9HcmlkTWluLCAxZnIpLCB2YXIoLS1hdXRvR3JpZE1heCwgMWZyKSlcbiAgKTtcbiAgZ2FwOiB2YXIoLS1hdXRvR3JpZEdhcCwgMXJlbSk7XG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIExpbmtzXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtbGlua3Mge1xuICBtYXJnaW46IDJyZW0gMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgbWFyZ2luOiAxcmVtIDA7XG4gIH1cblxuICBhIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gIH1cbn1cblxuYVtocmVmXSB7XG4gIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IC4wNGVtO1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IC4xNWVtO1xufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gU2lkZWJhclxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLXNpZGViYXIge1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgfVxuXG4gICYtLWJsb2NrIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICB9XG5cbiAgLmEtdGFnLFxuICAuYS1idG4ge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgfVxuXG4gIHN2ZyB7XG4gICAgd2lkdGg6IDE1cHg7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgIC5zaW5nbGUtcGVvcGxlICYge1xuICAgICAgb3JkZXI6IC0xO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gVGFnc1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLXRhZyB7XG4gIC0tdGFnQmc6IHZhcigtLWMtcHJpbWFyeSk7XG4gIC0tdGFnQ29sb3VyOiB2YXIoLS1jLXdoaXRlKTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICBmb250LXNpemU6IDkwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGFnQmcpO1xuICBjb2xvcjogdmFyKC0tdGFnQ29sb3VyKTtcblxuICAmLS15ZWwge1xuICAgIC0tdGFnQmc6IHZhcigtLWMteWVsbG93KTtcbiAgICAtLXRhZ0NvbG91cjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gU3RpY2t5XG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG46cm9vdCB7XG4gIC0tc3RpY2t5TGVmdDogMDtcbiAgLS1zdGlja3lXaWR0aDogMDtcbiAgLS1zdGlja3lIZWlnaHQ6IDA7XG59XG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtc3RpY2t5IHtcbiAgJltkYXRhLXN0aWNreT0ndHJ1ZSddIHtcbiAgICAuYS1idG4ge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogdmFyKC0tc3RpY2t5TGVmdCk7XG4gICAgICB3aWR0aDogdmFyKC0tc3RpY2t5V2lkdGgpO1xuICAgICAgei1pbmRleDogMjA7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYS1zdGlja3lfX3BsYWNlaG9sZGVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gICZfX3BsYWNlaG9sZGVyIHtcbiAgICBoZWlnaHQ6IHZhcigtLXN0aWNreUhlaWdodCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIEV2ZW50IGNhbmNlbGxlZCBtZXNzYWdlXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtY2FuY2VsbGVkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuNzVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMteWVsbG93KTtcbiAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgcCB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXJXaWR0aCk7XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIFNraXAgbGlua1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLXNraXAtbGluayB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9sZCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIHotaW5kZXg6IDEwO1xuICBib3JkZXI6IDA7XG4gIG91dGxpbmU6IDA7XG5cbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIExpc3RpbmdcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1saXN0aW5nIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgZ2FwOiAycmVtO1xuICAvLyBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgZ2FwOiAxcmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzw9c20nKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogMnJlbTtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gQ2l0YXRpb25zXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtY2l0ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBhIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gIH1cblxuICAmX19udW1iZXIge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24pO1xuICB9XG5cbiAgJl9fZGVzY3JpcHRpb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgbWF4LXdpZHRoOiAyMzBweDtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJjpmb2N1cyxcbiAgJjpob3ZlciB7XG4gICAgLmEtY2l0ZV9fbnVtYmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXJlZCk7XG4gICAgfVxuICAgIC5hLWNpdGVfX2Rlc2NyaXB0aW9uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIEJhY2sgdG8gdG9wXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtYmFjay10b3Age1xuICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGxlZnQ6IGNhbGMoMTAwJSAtIDZyZW0pO1xuICBib3R0b206IDNyZW07XG4gIG1hcmdpbi1ib3R0b206IC0zMHB4O1xuICBoZWlnaHQ6IDYwcHg7XG4gIHdpZHRoOiA2MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3gtc2hhZG93OiAwIDE2cHggNzJweCAjMDAwMDAwODg7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICBsZWZ0OiBjYWxjKDEwMCUgLSA0cmVtKTtcbiAgICBib3R0b206IDFyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIGhlaWdodDogNDBweDtcbiAgICB3aWR0aDogNDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMjBweDtcbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlPSd0cnVlJ10ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYW5pbWF0aW9uOiBmYWRlSW4gMC4ycyBlYXNlLWluLW91dCBmb3J3YXJkcztcbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlPSdmYWxzZSddIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgYW5pbWF0aW9uOiBmYWRlT3V0IDAuMnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTtcbiAgICB9XG4gIH1cblxuICBzdmcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIG1heC1oZWlnaHQ6IDMwcHg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgbWF4LWhlaWdodDogMjBweDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBBdG9tcyAtIEdyaWRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIFN0eWxpbmdcbiAqL1xuIC5hLWdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1hdXRvR3JpZEdhcCwgMXJlbSk7XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICBcbiAgICAmLS0xIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIH1cbiAgXG4gICAgJi0tMiB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIFxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAmLS0zIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7XG4gIFxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAmLS00IHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyO1xuICAgICAgZ3JpZC1hdXRvLXJvd3M6IDFmcjtcbiAgXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgICB9XG4gIFxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICIsIi8qKlxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqIFVuLnRpdGxlZFxyXG4gKiBNb2xlY3VsZXMgLSBFbWVyZ2VuY3kgTWVzc2FnZVxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIENvbmZpZ1xyXG4gKiovXHJcbkBrZXlmcmFtZXMgc2xpZGVJblVwIHtcclxuICAwJSB7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xyXG4gIH1cclxuICA4MCUge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFN0eWxpbmdcclxuICoqL1xyXG4ubS1lbW1zZyB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICYucHJpbWFyeSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXllbGxvdyk7XHJcbiAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcclxuICB9XHJcbiAgJi5zZWNvbmRhcnkge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gIH1cclxuICBwYWRkaW5nOiAwLjI1cmVtIDFyZW07XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG1pbi1oZWlnaHQ6IDUycHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgcGFkZGluZzogMXJlbSAwO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcclxuICAgIHBhZGRpbmc6IDFyZW0gMDtcclxuICB9XHJcblxyXG4gICZbZGF0YS1zdGF0ZT0ndmlzaWJsZSddIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgaDMge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xyXG4gICAgd2lkdGg6IDg1JTtcclxuICB9XHJcblxyXG4gIHAge1xyXG4gICAgd2lkdGg6IDg1JTtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHhzJykge1xyXG4gICAgICBtYXgtd2lkdGg6IDgwJTtcclxuICAgIH1cclxuXHJcbiAgICBhIHtcclxuICAgICAgJjpob3ZlcixcclxuICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBAaW5jbHVkZSBidG5SZXNldDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMC4yNXJlbTtcclxuICAgIHJpZ2h0OiAycmVtO1xyXG4gICAgaGVpZ2h0OiA0MnB4O1xyXG4gICAgd2lkdGg6IDQycHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgcmlnaHQ6IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcclxuICAgICAgcmlnaHQ6IDE1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgc3ZnIHtcclxuICAgICAgd2lkdGg6IDE1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgcGF0aCB7XHJcbiAgICAgIHN0cm9rZTogdmFyKC0tYy1wcmltYXJ5KTtcclxuICAgICAgdHJhbnNpdGlvbjogc3Ryb2tlIHZhcigtLXRyYW5zaXRpb24pO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xyXG5cclxuICAgICAgcGF0aCB7XHJcbiAgICAgICAgc3Ryb2tlOiB2YXIoLS1jLXdoaXRlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gRW50aXRpZXNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5hcnRpY2xlIHtcbiAgJiA+IC5tLWVudGl0eTpsYXN0LW9mLXR5cGUge1xuICAgICYuYmdDb2xvdXIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTMwcHg7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0yMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gID4gLm0tZW50aXR5LmJnQ29sb3VyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaXNvbGF0aW9uOiBpc29sYXRlO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB3aWR0aDogMTAwdnc7XG4gICAgICBtYXJnaW4tbGVmdDogLTUwdnc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICAgei1pbmRleDogLTE7XG4gICAgfVxuICB9XG59XG5cbi5tLWVudGl0eSB7XG4gIG1hcmdpbjogMCAwIDM2cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXJXaWR0aCk7XG5cbiAgaW1nOm5vdCgucmVzdHJpY3RlZC1oZWlnaHQpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmLS10b3Age1xuICAgIG1hcmdpbi10b3A6IGNsYW1wKDJyZW0sIDV2dywgNXJlbSk7XG4gIH1cblxuICAmX19ib2R5LFxuICAmX190ZXh0LFxuICAmX19hY2NvcmRpb24ge1xuXG4gICAgdWwge1xuICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWd1dHRlcik7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgIGhlaWdodDogN3B4O1xuICAgICAgICAgIHdpZHRoOiA3cHg7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IC0xNXB4O1xuICAgICAgICAgIHRvcDogMC41cmVtO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYubS1lbnRpdHlfX2NvbHVtbnN4MiB7XG4gICAgPiAuYS1jb2xzIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPnNtJykge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgfVxuXG4gICAgICAgJjpoYXMoLm0tZW50aXR5X19pbWFnZSkge1xuICAgICAgICAubS1lbnRpdHkge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5iZ0NvbG91ciB7XG4gICAgICA+IC5hLWNvbHMge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc+c20nKSB7XG4gICAgICAgIG1hcmdpbjogMnJlbSAwO1xuICAgICAgfVxuICAgIH1cbiAgICB9XG5cbiAgICAubS10ZXh0eDIgLm0tdGV4dHgyX19jb3B5LWxlZnQsXG4gICAgLm0tdGV4dHgyIC5tLXRleHR4Ml9fY29weS1yaWdodCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIC5tLWVudGl0eSAge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+c20nKSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICAuYS1jb2xzIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IHZhcigtLWNvbHMtNik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IFxuXG4gICAgLm0tdGV4dHgyIC5tLXRleHR4Ml9fY29weS1yaWdodCB7XG4gICAgICAubS1lbnRpdHkgIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW1wb3J0ICcuL2Jsb2NrL2ludHJvJztcbiAgQGltcG9ydCAnLi9ibG9jay9pbWFnZSc7XG4gIEBpbXBvcnQgJy4vYmxvY2svcXVvdGUnO1xuICBAaW1wb3J0ICcuL2Jsb2NrL2FjY29yZGlvbic7XG4gIEBpbXBvcnQgJy4vYmxvY2svZ2FsbGVyeSc7XG4gIEBpbXBvcnQgJy4vYmxvY2svaW1hZ2UtdGV4dCc7XG4gIEBpbXBvcnQgJy4vYmxvY2svZG93bmxvYWRzJztcbiAgQGltcG9ydCAnLi9ibG9jay9lbWJlZCc7XG4gIEBpbXBvcnQgJy4vYmxvY2svdGFibGUnO1xuICBAaW1wb3J0ICcuL2Jsb2NrL3NpZ25wb3N0JztcbiAgQGltcG9ydCAnLi9ibG9jay9zaWducG9zdHMnO1xuICBAaW1wb3J0ICcuL2Jsb2NrL2xpbmtlZC1sb2dvcyc7XG4gIEBpbXBvcnQgJy4vYmxvY2svdmlkZW8nO1xuICBAaW1wb3J0ICcuL2Jsb2NrL3ltYWwnO1xuICBAaW1wb3J0ICcuL2Jsb2NrL2N0YSc7XG4gIEBpbXBvcnQgJy4vYmxvY2svYmlnLWN0YSc7XG4gIEBpbXBvcnQgJy4vYmxvY2svcmVhZG1vcmUnO1xuICBAaW1wb3J0ICcuL2Jsb2NrL3F1aWNrbGlua3MnO1xuICBAaW1wb3J0ICcuL2Jsb2NrL3NwZWNpYWwtb3B0aW9ucyc7XG4gIEBpbXBvcnQgJy4vYmxvY2svcGVvcGxlLXByb2ZpbGVzJztcbiAgQGltcG9ydCAnLi9ibG9jay9saXN0aW5nJztcbiAgQGltcG9ydCAnLi9ibG9jay9taW5pbGlzdGluZyc7XG4gIEBpbXBvcnQgJy4vYmxvY2svY2Fyb3VzZWwnO1xuICBAaW1wb3J0ICcuL2Jsb2NrL2VuaGFuY2VkZXZlbnRsaXN0aW5nJztcbiAgQGltcG9ydCAnLi9ibG9jay9mZWF0dXJlZC1jb250ZW50JztcbiAgQGltcG9ydCAnLi9ibG9jay9jaXRhdGlvbnMnO1xuICBAaW1wb3J0ICcuL2Jsb2NrL2ltYWdlem9vbSc7XG4gIEBpbXBvcnQgJy4vYmxvY2svZm9ybXMnO1xuICBAaW1wb3J0ICcuL2Jsb2NrL3NlYXJjaC1yZXN1bHRzJztcbiAgQGltcG9ydCAnLi9ibG9jay9kaXZpZGVyJztcbiAgQGltcG9ydCAnLi9ibG9jay9idXktbm93LWJ1dHRvbic7XG4gIEBpbXBvcnQgJy4vYmxvY2svY3RhbXVsdGlwbGUnO1xuICBAaW1wb3J0ICcuL2Jsb2NrL3ByaW1vc2VhcmNoJztcbiAgQGltcG9ydCAnLi9ibG9jay9saW5rLWJsb2NrJztcbn1cblxuXG4ubS1lbnRpdHkuYmdDb2xvdXI6aGFzKCsgLm0tZW50aXR5LmJnQ29sb3VyKSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gSW50cm9cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19pbnRybyB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICYtYmxvY2tfaW1hZ2Uge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEltYWdlXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9faW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDAgMTVweCAwIDE1cHg7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJz5zbScpIHtcbiAgICBwYWRkaW5nOiAwIDM2cHggMCAzNnB4O1xuICB9XG5cbiAgZmlnY2FwdGlvbiB7XG4gICAgd2lkdGg6IHZhcigtLWNhcHRpb25XaWR0aCk7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tY2FwdGlvblBhZGRpbmcpO1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMzBweCk7XG4gIH1cblxuICBhIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBRdW90ZXNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIENvbmZpZ1xuICovXG5cbkBtaXhpbiByYXRpbmcoJHN0YXJzKSB7XG4gICY6bnRoLWNoaWxkKC1uICsgI3skc3RhcnN9KSB7XG4gICAgcGF0aCB7XG4gICAgICBmaWxsOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgc3Ryb2tlOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFN0eWxlc1xuICovXG5cbiZfX3F1b3RlIHtcbiAgLS1zdGFyU2l6ZTogMTdweDtcblxuICAuc2hvcnQtcXVvdGUge1xuICAgIC0tc3RhclNpemU6IDI0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgfVxuXG4gIGNpdGUge1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfVxuXG4gIC5yYXRpbmcge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAuc2hvcnQtcXVvdGUgJiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIH1cblxuICAgICZfX3N0YXIge1xuICAgICAgd2lkdGg6IHZhcigtLXN0YXJTaXplKTtcbiAgICAgIGhlaWdodDogdmFyKC0tc3RhclNpemUpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICBzdHJva2U6IHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZm9yICRzdGFycyBmcm9tIDEgdGhyb3VnaCA1IHtcbiAgICAgICYtLSN7JHN0YXJzfSB7XG4gICAgICAgIC5yYXRpbmdfX3N0YXIge1xuICAgICAgICAgIEBpbmNsdWRlIHJhdGluZygjeyRzdGFyc30pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gQWNjb3JkaW9uc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2FjY29yZGlvbiB7XG4gIC5hY2NvcmRpb24ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICB9XG5cbiAgLmFjY29yZGlvbl9faGVhZGVyIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbi1sYXN0OiBsZWZ0O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAuNzVyZW0gMC41cmVtO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIEBpbmNsdWRlIGJnLWltZyhjb250YWluKTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL3BsdXMuc3ZnJyk7XG4gICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICB3aWR0aDogMTJweDtcbiAgICAgIG1pbi13aWR0aDogMTJweDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuMSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuMik7XG5cbiAgICAgIC8vIHBhZGRpbmctcmlnaHQ6IDAuNzVyZW07XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJlthcmlhLWV4cGFuZGVkPSd0cnVlJ106OmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9jbG9zZS1hY2NvcmRpb24uc3ZnJyk7XG4gICAgfVxuICB9XG5cbiAgLmFjY29yZGlvbl9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmpzLWFjY29yZGlvbl9fcGFuZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuYWNjb3JkaW9uX19wYW5lbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMgZWFzZSwgbWF4LWhlaWdodCAwLjJzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlO1xuICAgIG1heC1oZWlnaHQ6IDEwMDBlbTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgXG4gICAgJlthcmlhLWhpZGRlbj0ndHJ1ZSddIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzLCAwcywgMHM7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgXG4gICAgfVxuXG4gICAgcDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gR2FsbGVyeVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2dhbGxlcnkge1xuICAtLWF1dG9HcmlkTWluOiAyMCU7XG4gIC0tYXV0b0dyaWRHYXA6IDJyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAtLWF1dG9HcmlkTWluOiA0MCU7XG4gICAgLS1hdXRvR3JpZEdhcDogMXJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8NTAwcHgnKSB7XG4gICAgLS1hdXRvR3JpZE1pbjogMTAwJTtcbiAgfVxuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgei1pbmRleDogMTtcblxuICAgICY6aG92ZXIge1xuICAgICAgei1pbmRleDogMjtcbiAgICB9XG4gIH1cblxuICAuYS1hdXRvLWdyaWQge1xuICAgIGFsaWduLWl0ZW1zOiBlbmQ7XG4gIH1cblxuICBmaWd1cmUge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmEtaW1hZ2UtY2FwdGlvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgfVxuICB9XG5cbiAgLmEtaW1hZ2UtY3JlZGl0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAmX19jb3B5IHtcbiAgICAgIG1heC13aWR0aDogMjBlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBJbWFnZSAmIFRleHRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4ubS1pbWFnZXRleHQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAyZnI7XG4gIGdhcDogMnJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogMXJlbTtcbiAgfVxuXG4gICYtLXJldmVyc2Uge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG5cbiAgICAubS1pbWFnZXRleHRfX2NvcHkge1xuICAgICAgb3JkZXI6IC0xO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICBvcmRlcjogMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBEb3dubG9hZHNcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4mX19kb3dubG9hZHMge1xuICBhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlciB7XG4gICAgICBzdmcge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNXB4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgIHdpZHRoOiAyZW07XG4gICAgfVxuICB9XG5cbiAgLm0tYnRuLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgfVxuXG4gIC5tLWJ0bi1kb3dubG9hZHMge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc+c20nKSB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICAgIGdhcDogMC41cmVtIDFyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz5tZCcpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgfVxuICB9XG5cbiAgLm0tYnRuLWRvd25sb2Fkcy0tY29sdW1ucyB7XG4gICAgZGlzcGxheTpmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cblxuICAmLS1zaW5ndWxhciB7XG4gICAgLm0tYnRuLWNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEVtYmVkXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fZW1iZWQge1xuICBpZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gVGFibGVzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fdGFibGUge1xuICB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbi1sYXN0OiBsZWZ0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDJweDtcbiAgICBib3JkZXItY29sbGFwc2U6IHVuc2V0O1xuXG4gICAgdGgge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuXG4gICAgdGQsXG4gICAgdGgge1xuICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgIH1cblxuICAgIHRoZWFkIHtcbiAgICAgIHRoIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGJvZHkge1xuICAgICAgdGgsIHRkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdHIge1xuICAgICAgJjpob3ZlciB0ZCB7XG4gICAgICAgIGN1cnNvcjogY3Jvc3NoYWlyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEZsZXhpYmxlIHNpZ25wb3N0XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fc2lnbnBvc3Qge1xuICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5zaWducG9zdCB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXJXaWR0aCk7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIGdhcDogM3JlbTtcbiAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xuICAgICAgZ2FwOiAycmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDFyZW0gYXV0bztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuXG4gICAgICBpbWcge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24pO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgIG9wYWNpdHk6IDAuODU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZpZ3VyZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBnYXA6IDEuNXJlbTtcbiAgICAgIGp1c3RpZnktaXRlbXM6IHN0YXJ0O1xuXG4gICAgICBoMixcbiAgICAgIC5hLWxpbmtzIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICBwIHtcbiAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1saW5lTGVuZ3RoKTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpbmtzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiAxLjVyZW07XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gc2lnbnBvc3RzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fc2lnbnBvc3RzIHtcbiAgLS1hdXRvR3JpZE1pbjogMjAlO1xuICAtLWF1dG9HcmlkR2FwOiAycmVtO1xuXG4gIHA6bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB9XG5cbiAgLmEtYXV0by1ncmlkIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzw9c20nKSB7XG4gICAgLS1hdXRvR3JpZE1pbjogMzAlO1xuICAgIC0tYXV0b0dyaWRHYXA6IDFyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgIC0tYXV0b0dyaWRNaW46IDQ4JTtcbiAgfVxufVxuXG4mX19leHRlcm5hbHNpZ25wb3N0cyB7XG4gIC5vLXRlYXNlcl9fdGh1bWIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBMaW5rZWQgbG9nb3NcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19saW5rZWRsb2dvcyB7XG4gIC0tYXV0b0dyaWRNaW46IDEwMHB4O1xuICAtLWF1dG9HcmlkTWF4OiAzMCU7XG4gIC0tYXV0b0dyaWRHYXA6IDJyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAtLWF1dG9HcmlkTWF4OiAxZnI7XG4gIH1cblxuICBhIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDAuNztcbiAgICB9XG4gIH1cblxuICAuYS1hdXRvLWdyaWQge1xuICAgIGFsaWduLWl0ZW1zOiBlbmQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgfVxuXG4gIC5zaW5nbGUge1xuICAgIGltZyB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBWaWRlb1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX3ZpZGVvIHtcbiAgLS1hdXRvR3JpZEdhcDogMnJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPnh4cycpIHtcbiAgICAtLWF1dG9HcmlkTWluOiAyMzBweDtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIFlNQUxcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX195bWFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG5cbiAgJjpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU3Vic3RyYWt0XG4gKiBNb2xlY3VsZXMgLSBDVEFcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19jdGEge1xuICAmX19jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBCaWcgQ1RBXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fYmlnY3RhIHtcblxuICAuYS1saW5rcyB7XG4gICAgYSB7XG4gICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgIH1cbiAgfVxuXG4gIC5oMiB7XG4gICAgcCB7XG4gICAgICBsaW5lLWhlaWdodDogMS4zXG4gICAgfVxuICB9XG5cbiAgLmJpZy1idG4ge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBnYXA6IDFyZW07XG4gICAgcGFkZGluZzogMXJlbSAxLjVyZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogLjc1cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogLjc1cmVtO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICB3aWR0aDogMWVtO1xuXG4gICAgICBwYXRoIHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogLjc7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gTmV3cyB0YWdzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fcmVhZG1vcmUge1xuICAudGVybXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICBhIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBRdWljayBsaW5rc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX3F1aWNrbGlua3Mge1xuICBtYXJnaW4tdG9wOiAtNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgbWFyZ2luLXRvcDogLTNyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgIG1hcmdpbi10b3A6IC0ycmVtO1xuICB9XG5cbiAgLmEtY29scyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgcGFkZGluZy10b3A6IDEuMjVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDEuOHJlbTtcbiAgfVxuXG4gIC5hLWxpbmtzIHtcbiAgICBtYXJnaW46IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICBoMiB7ICAgIFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAtbW96LXRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xuICAgIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gU3BlY2lhbCBPcHRpb25zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fc3BlY2lhbC1vcHRpb25zIHtcbiAgaHIge1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgIH1cbiAgfVxuXG4gIC5hLWF1dG8tZ3JpZCB7XG4gICAgLS1hdXRvR3JpZE1pbjogMjMlO1xuICAgIC0tYXV0b0dyaWRNYXg6IDFmcjtcbiAgICAtLWF1dG9HcmlkR2FwOiAycmVtO1xuXG4gICAgbWFyZ2luLXRvcDogM3JlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAtLWF1dG9HcmlkTWluOiAyMDBweDtcbiAgICAgIC0tYXV0b0dyaWRNYXg6IDFmcjtcblxuICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAtLWF1dG9HcmlkTWluOiAxNTBweDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBQZW9wbGUgcHJvZmlsZXNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19wZW9wbGVwcm9maWxlcyB7XG4gIC50aXRsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICYtLWJvcmRlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWMtdGVhbCk7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy10ZWFsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIExpc3RpbmdcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19saXN0aW5nIHtcbiAgLndoYXRzLW9uIHtcbiAgICBtaW4taGVpZ2h0OiA2MHZoO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gTWluaSBsaXN0aW5nXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fbWluaWxpc3Rpbmcge1xuICAuYS1hdXRvLWdyaWQge1xuICAgIC0tYXV0b0dyaWRNaW46IDIwJTtcbiAgICAtLWF1dG9HcmlkR2FwOiAycmVtO1xuXG4gICAgJi0tY29sdW1uc19fMiB7XG4gICAgICAtLWF1dG9HcmlkTWluOiA0NSU7XG4gICAgfVxuXG4gICAgJi0tY29sdW1uc19fMyB7XG4gICAgICAtLWF1dG9HcmlkTWluOiAzMCU7XG4gICAgfVxuXG4gICAgJi0tY29sdW1uc19fNCB7XG4gICAgICAtLWF1dG9HcmlkTWluOiAyMCU7XG4gICAgfVxuXG4gICAgJi0tY29sdW1uc19fNSB7XG4gICAgICAtLWF1dG9HcmlkTWluOiAxNSU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgIC0tYXV0b0dyaWRNaW46IDMwJTtcbiAgICAgIC0tYXV0b0dyaWRHYXA6IDFyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzw9c20nKSB7XG4gICAgICAtLWF1dG9HcmlkTWluOiA0OCU7XG4gICAgfVxuICB9XG5cbiAgLmxpc3RpbmctaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgZ2FwOiAxcmVtO1xuICAgIC8vYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBhbGlnbi1zZWxmOiBlbmQ7XG4gICAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcblxuICAgICAgJi5tb3JlLWxpbmsge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIC5hLWF1dG8tZ3JpZCB7XG4gIC8vICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLy8gfVxufVxuIiwiLyoqXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICogVW4udGl0bGVkXHJcbiAqIE1vbGVjdWxlcyAtIEVuaGFuY2VkIEV2ZW50IGxpc3RpbmdcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKi9cclxuXHJcbiAmX19lbmhhbmNlZGV2ZW50bGlzdGluZyB7XHJcbiAgICAtLWF1dG9HcmlkTWluOiAyMCU7XHJcbiAgICAtLWF1dG9HcmlkR2FwOiAycmVtO1xyXG4gIFxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcclxuICAgICAgLS1hdXRvR3JpZE1pbjogMzAlO1xyXG4gICAgICAtLWF1dG9HcmlkR2FwOiAxcmVtO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzw9c20nKSB7XHJcbiAgICAgIC0tYXV0b0dyaWRNaW46IDQ4JTtcclxuICAgIH1cclxuICBcclxuICAgIC5saXN0aW5nLWhlYWRlciB7XHJcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XHJcbiAgICAgIGdhcDogMXJlbTtcclxuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XHJcbiAgXHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XHJcbiAgICAgIH1cclxuICBcclxuICAgICAgYSB7XHJcbiAgICAgICAgYWxpZ24tc2VsZjogZW5kO1xyXG4gICAgICAgIGp1c3RpZnktc2VsZjogZW5kO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgXHJcbiAgICAvLyAuYS1hdXRvLWdyaWQge1xyXG4gICAgLy8gICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuICAiLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gRmVhdHVyZWQgY29udGVudFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2ZlYXR1cmVkY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgLmZlYXR1cmVkIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgfVxuXG4gICAgJi0tbXVsdGkge1xuICAgICAgcGFkZGluZzogMnJlbSAwO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgICB9XG5cbiAgICAgIC8vIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIC8vIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuXG4gICAgICAvLyAmOjpiZWZvcmUge1xuICAgICAgLy8gICBjb250ZW50OiAnJztcbiAgICAgIC8vICAgd2lkdGg6IDEwMCU7XG4gICAgICAvLyAgIGhlaWdodDogODAlO1xuICAgICAgLy8gICBkaXNwbGF5OiBibG9jaztcbiAgICAgIC8vICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgLy8gICBsZWZ0OiAwO1xuICAgICAgLy8gICBib3R0b206IDA7XG4gICAgICAvLyAgIHotaW5kZXg6IDA7XG4gICAgICAvLyAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgICAgIC8vICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIC8vICAgICBoZWlnaHQ6IDkwJTtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gfVxuXG4gICAgICAvLyAuYS1jb2xzIHtcbiAgICAgIC8vICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgLy8gfVxuICAgIH1cbiAgfVxuXG4gIC5hLWF1dG8tZ3JpZCB7XG4gICAgLS1hdXRvR3JpZEdhcDogMnJlbTtcbiAgICAtLWF1dG9HcmlkTWluOiAyMjVweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAtLWF1dG9HcmlkTWluOiAxZnI7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gQ2l0YXRpb25zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fY2l0YXRpb25zIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICYuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgY2l0ZSB7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzMHB4IDFmcjtcbiAgICBnYXA6IDAuNXJlbTtcbiAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtcmVkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwIGEge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gSW1hZ2UgWm9vbVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2ltYWdlem9vbSB7XG4gIC5kZWVwem9vbUNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gIH1cbiAgLm5hdmlnYXRvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwIDEwcHggMCAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBGb3Jtc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2Zvcm0ge1xuICAuZ2Zvcm1fd3JhcHBlciB7XG4gICAgdWwge1xuICAgICAgbGkuZ2ZpZWxkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdCxcbiAgICBpbnB1dDpub3QoW3R5cGU9J3JhZGlvJ10pOm5vdChbdHlwZT0nY2hlY2tib3gnXSk6bm90KFt0eXBlPSdzdWJtaXQnXSk6bm90KFt0eXBlPSdidXR0b24nXSk6bm90KFt0eXBlPSdpbWFnZSddKTpub3QoW3R5cGU9J2ZpbGUnXSkge1xuICAgICAgcGFkZGluZzogMC43NXJlbSAxcmVtO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZmllbGRfc3VibGFiZWxfYWJvdmUgLmdpbnB1dF9jb21wbGV4LmdpbnB1dF9jb250YWluZXIgbGFiZWwsXG4gICAgLmZpZWxkX3N1YmxhYmVsX2Fib3ZlIGRpdltjbGFzcyo9J2dmaWVsZF9kYXRlXyddLmdpbnB1dF9jb250YWluZXIgbGFiZWwsXG4gICAgLmZpZWxkX3N1YmxhYmVsX2Fib3ZlIGRpdltjbGFzcyo9J2dmaWVsZF90aW1lXyddLmdpbnB1dF9jb250YWluZXIgbGFiZWwsXG4gICAgLmZpZWxkX3N1YmxhYmVsX2JlbG93IC5naW5wdXRfY29tcGxleC5naW5wdXRfY29udGFpbmVyIGxhYmVsLFxuICAgIC5maWVsZF9zdWJsYWJlbF9iZWxvdyBkaXZbY2xhc3MqPSdnZmllbGRfZGF0ZV8nXS5naW5wdXRfY29udGFpbmVyIGxhYmVsLFxuICAgIC5maWVsZF9zdWJsYWJlbF9iZWxvdyBkaXZbY2xhc3MqPSdnZmllbGRfdGltZV8nXS5naW5wdXRfY29udGFpbmVyIGxhYmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgICB9XG5cbiAgICB1bC5nZmllbGRfY2hlY2tib3ggbGkgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSxcbiAgICB1bC5nZmllbGRfcmFkaW8gbGkgaW5wdXRbdHlwZT0ncmFkaW8nXSB7XG4gICAgICBoZWlnaHQ6IDI1cHggIWltcG9ydGFudDtcbiAgICAgIHdpZHRoOiAyNXB4ICFpbXBvcnRhbnQ7XG4gICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgfVxuXG4gICAgLmdmb3JtX2J1dHRvbiB7XG4gICAgICAtLWJ0bkJnOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgLS1idG5Db2xvdXI6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgQGluY2x1ZGUgYnRuO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgQGluY2x1ZGUgYnRuLWhvdmVyO1xuXG4gICAgICAgIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgICAtLWJ0bkJnOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmdmaWVsZF90aW1lX2hvdXIsXG4uZ2ZpZWxkX3RpbWVfbWludXRlICB7XG4gIG1heC13aWR0aDogMTAwcHggIWltcG9ydGFudDtcbiAgaW5wdXQge1xuICAgIG1heC13aWR0aDogMTAwcHggIWltcG9ydGFudDtcbiAgfVxufSIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBTZWFyY2ggcmVzdWx0c1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX3NlYXJjaC1yZXN1bHRzIHtcbiAgLmEtbGlzdGluZyB7XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gRGl2aWRlclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2RpdmlkZXIge1xuXG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gQnV5IE5vdyBCdXR0b25cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19idXlub3didXR0b24ge1xuICAucHJvZHVjdC1pZHMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICBncmlkLWdhcDogMjBweDtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgfVxuICAgICYtLWl0ZW0ge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgJjplbXB0eSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgICBoMiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICB9XG4gICAgICAuc2hvcGlmeS1idXlfX3Byb2R1Y3RfX3ZhcmlhbnQtc2VsZWN0b3JzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAgIC5zaG9waWZ5LWJ1eV9fb3B0aW9uLXNlbGVjdC13cmFwcGVyIHtcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5zZWUtY29sbGVjdGlvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgIGEge1xuICAgICAgICAtLWJ0bkJnOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgICAtLWJ0bkNvbG91cjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICAgIEBpbmNsdWRlIGJ0bjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBAaW5jbHVkZSBidG4taG92ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgfVxufVxuXG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gQ1RBIE11bHRpcGxlXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fY3RhbXVsdGlwbGUge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICBncmlkLWdhcDogNDBweDtcbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxufVxuIiwiJl9fY2Fyb3VzZWwge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlKTtcblxuICAubGlzdGluZy1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICBnYXA6IDFyZW07XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgfVxuXG4gICAgLmNhcm91c2VsLW5hdiB7XG4gICAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcblxuICAgICAgYSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY2Fyb3VzZWwtcHJldiwgLmNhcm91c2VsLW5leHQge1xuICAgICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5nbGlkZSB7XG4gICAgJl9fc2xpZGUge1xuICAgICAgLm8tY2Fyb3VzZWwtdGVhc2VyIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAuby10ZWFzZXJfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZS1iYXNlLXBsdXMtMTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBoMyB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIiZfX3ByaW1vc2VhcmNoIHtcblxuICAgIC5tLXNlYXJjaC1mb3JtIHtcbiAgICAgICAgcGFkZGluZzogMCAxNXB4O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+c20nKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDM2cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAuYWNmLWJsb2NrLWJvZHkgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuYy1saW5rLWJsb2NrIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDFyZW07XG5cbiAgLmMtbGluay1ibG9ja19faXRlbSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc+c20nKSB7XG4gICAgLmMtbGluay1ibG9ja19faXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAwLjc1cmVtKTtcbiAgICB9XG4gIH1cblxuICAuYy1saW5rLWJsb2NrX19saW5rIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB0ZXh0LXdyYXA6IGF1dG87XG4gIH1cblxuICAuYS1jYXB0aW9uIHtcbiAgICBAaW5jbHVkZSBoaWRkZW4tdmlzdWFsbHkoKTtcbiAgfVxuXG4gICY6aGFzKGZpZ3VyZSkge1xuICAgIGZpZ3VyZSBpbWcge1xuICAgICAgICBhc3BlY3QtcmF0aW86IDE2LzEwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogdW5zZXQ7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cbiAgICAuYy1saW5rLWJsb2NrX19saW5rIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB9XG4gIH1cbn1cblxuXG4mLmMtY29scy0zMyAuYy1saW5rLWJsb2NrIHtcbiAgQGluY2x1ZGUgbWVkaWEoJz5zbScpIHtcbiAgICAuYy1saW5rLWJsb2NrX19pdGVtIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMzMuMzMzMyUgLSAwLjY2NjZyZW0pO1xuICAgIH1cbiAgfVxufVxuXG4mLmMtY29scy01MCAuYy1saW5rLWJsb2NrIHtcbiAgLmMtbGluay1ibG9ja19faXRlbSB7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSAwLjVyZW0pO1xuICB9XG59IiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEZvcm1zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuaW5wdXQsXG5pbnB1dFt0eXBlPSd0ZXh0J10sXG5pbnB1dFt0eXBlPSdwYXNzd29yZCddLFxuaW5wdXRbdHlwZT0nZW1haWwnXSxcbmlucHV0W3R5cGU9J3N1Ym1pdCddLFxudGV4dGFyZWEsXG5zZWxlY3Qge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvZHkpO1xuICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgcmVzaXplOiBub25lO1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBvdXRsaW5lOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuXG4gICY6Zm9jdXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtc2Vjb25kYXJ5KTtcbiAgfVxufVxuXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSxcbmlucHV0W3R5cGU9J3RleHQnXSxcbmlucHV0W3R5cGU9J3N1Ym1pdCddIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4uZm9ybS1hY3Rpb25zIGlucHV0LFxuaW5wdXRbdHlwZT0nc3VibWl0J10ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmJ1dHRvbiB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5nZm9ybV93cmFwcGVyOm5vdCguZ2Zvcm1fbGVnYWN5X21hcmt1cF93cmFwcGVyKSB7XG4gIC5nZmllbGQge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgfVxuXG4gIC5nZmllbGRfbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogdW5zZXQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgfVxuXG4gIC5nZmllbGRfY2hlY2tib3gsXG4gIC5nZmllbGRfcmFkaW8ge1xuICAgIGxhYmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogdW5zZXQ7XG4gICAgfVxuICB9XG59XG5cbi8vIC8vIENoZWNrYm94ZXNcbi8vIFt0eXBlPSdjaGVja2JveCddOmNoZWNrZWQsXG4vLyBbdHlwZT0nY2hlY2tib3gnXTpub3QoOmNoZWNrZWQpIHtcbi8vICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICBsZWZ0OiAtOTk5OXB4O1xuLy8gfVxuLy8gW3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCArIGxhYmVsLFxuLy8gW3R5cGU9J2NoZWNrYm94J106bm90KDpjaGVja2VkKSArIGxhYmVsIHtcbi8vICAgcG9zaXRpb246IHJlbGF0aXZlO1xuLy8gICBwYWRkaW5nLWxlZnQ6IDI4cHg7XG4vLyAgIGN1cnNvcjogcG9pbnRlcjtcbi8vICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4vLyAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbi8vIH1cbi8vIFt0eXBlPSdjaGVja2JveCddOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUsXG4vLyBbdHlwZT0nY2hlY2tib3gnXTpub3QoOmNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbi8vICAgY29udGVudDogJyc7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgbGVmdDogMDtcbi8vICAgdG9wOiAwO1xuLy8gICB3aWR0aDogMjBweDtcbi8vICAgaGVpZ2h0OiAyMHB4O1xuLy8gICBib3JkZXItcmFkaXVzOiAzcHg7XG4vLyAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuLy8gICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuLy8gfVxuLy8gW3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCArIGxhYmVsOmFmdGVyLFxuLy8gW3R5cGU9J2NoZWNrYm94J106bm90KDpjaGVja2VkKSArIGxhYmVsOmFmdGVyIHtcbi8vICAgY29udGVudDogJ1xcMjcxNFxcMDAyMCc7XG4vLyAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgIHRvcDogMXB4O1xuLy8gICBsZWZ0OiAzLjVweDtcbi8vICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xuLy8gfVxuLy8gW3R5cGU9J2NoZWNrYm94J106bm90KDpjaGVja2VkKSArIGxhYmVsOmFmdGVyIHtcbi8vICAgb3BhY2l0eTogMDtcbi8vICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbi8vIH1cbi8vIFt0eXBlPSdjaGVja2JveCddOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XG4vLyAgIG9wYWNpdHk6IDE7XG4vLyAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4vLyB9XG5cbi8vIFt0eXBlPSdjaGVja2JveCddOmZvY3VzICsgbGFiZWw6YmVmb3JlIHtcbi8vICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4vLyB9XG5cbi8vIC8vIFJhZGlvc1xuLy8gW3R5cGU9J3JhZGlvJ106Y2hlY2tlZCxcbi8vIFt0eXBlPSdyYWRpbyddOm5vdCg6Y2hlY2tlZCkge1xuLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgIGxlZnQ6IC05OTk5cHg7XG4vLyB9XG4vLyBbdHlwZT0ncmFkaW8nXTpjaGVja2VkICsgbGFiZWwsXG4vLyBbdHlwZT0ncmFkaW8nXTpub3QoOmNoZWNrZWQpICsgbGFiZWwge1xuLy8gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4vLyAgIHBhZGRpbmctbGVmdDogMjhweDtcbi8vICAgY3Vyc29yOiBwb2ludGVyO1xuLy8gICBsaW5lLWhlaWdodDogMjBweDtcbi8vICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuLy8gICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbi8vIH1cbi8vIFt0eXBlPSdyYWRpbyddOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUsXG4vLyBbdHlwZT0ncmFkaW8nXTpub3QoOmNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbi8vICAgY29udGVudDogJyc7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgbGVmdDogMDtcbi8vICAgdG9wOiAwO1xuLy8gICB3aWR0aDogMjBweDtcbi8vICAgaGVpZ2h0OiAyMHB4O1xuLy8gICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuLy8gICBib3JkZXItcmFkaXVzOiAxMDAlO1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbi8vIH1cbi8vIFt0eXBlPSdyYWRpbyddOmNoZWNrZWQgKyBsYWJlbDphZnRlcixcbi8vIFt0eXBlPSdyYWRpbyddOm5vdCg6Y2hlY2tlZCkgKyBsYWJlbDphZnRlciB7XG4vLyAgIGNvbnRlbnQ6ICcnO1xuLy8gICB3aWR0aDogMTJweDtcbi8vICAgaGVpZ2h0OiAxMnB4O1xuLy8gICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXByaW1hcnkpO1xuLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgIHRvcDogNHB4O1xuLy8gICBsZWZ0OiA0cHg7XG4vLyAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4vLyAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uKTtcbi8vIH1cbi8vIFt0eXBlPSdyYWRpbyddOm5vdCg6Y2hlY2tlZCkgKyBsYWJlbDphZnRlciB7XG4vLyAgIG9wYWNpdHk6IDA7XG4vLyAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4vLyB9XG4vLyBbdHlwZT0ncmFkaW8nXTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xuLy8gICBvcGFjaXR5OiAxO1xuLy8gICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuLy8gfVxuLy8gW3R5cGU9J3JhZGlvJ106Zm9jdXMgKyBsYWJlbDpiZWZvcmUge1xuLy8gICBib3JkZXItY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcbi8vIH1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBNYWluIG5hdlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5tLW5hdiB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIGdhcDogNXZ3O1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiAwO1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICB9XG5cbiAgJl9fY29scyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIGdhcDogM3JlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIGdhcDogMDtcbiAgICAgIHBhZGRpbmc6IDAgNXZ3O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcblxuICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHh4cycpIHtcbiAgICAgIHBhZGRpbmc6IDAgNXZ3O1xuICAgIH1cblxuICAgIC5jb2x1bW4ge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdhcDogM3JlbTtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgICAgZ2FwOiAwO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9faW5mbyB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgIC5tLW5hdl9fc29jaWFsLFxuICAgICAgaDMsXG4gICAgICBwIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1zbScsICc8bWQnKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIH1cbiAgfVxuXG4gICZfX21lbnUge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICBvcmRlcjogLTE7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgICAgZ2FwOiAycmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIGdhcDogMDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgIC5wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgICAgfVxuXG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtZ3JleSk7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaDMge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9keSk7XG4gIH1cblxuICBhOm5vdCguYS1idG4pIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLmEtYnRuIHtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgbWF4LXdpZHRoOiAzMDBweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICBtYXgtd2lkdGg6IDM1dnc7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIG1heC13aWR0aDogMjUwcHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuICB9XG5cbiAgbmF2IHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udFRpdGxlKTtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuNXJlbSwgNHZ3LCAycmVtKTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xuICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjVyZW0sIDR2dywgMnJlbSk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEJhbm5lclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG4ubS1uby1iYW5uZXIge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNHJlbSAwIDVyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICBwYWRkaW5nOiAzcmVtIDAgNHJlbTtcbiAgfVxuXG4gICYtLW5ld3Mge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG5cbiAgJi0tcGFnZSB7XG4gICAgaDEge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICBwIHtcbiAgICBmb250LXNpemU6IDExMCU7XG4gIH1cblxuICAucHJlLXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIH1cbn1cblxuLm0tYmFubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDAgMCBjbGFtcCgxLjVyZW0sIDR2dywgM3JlbSk7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIC5hLWNvbHMge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG5cbiAgJl9faW1hZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwaWN0dXJlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gICYtLWRlZmF1bHQsXG4gICYtLWFsdCB7XG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIG9iamVjdC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICAmLS1kZWZhdWx0IHtcbiAgICBoZWlnaHQ6IGNsYW1wKDIwdmgsIDYwdncsIDYwdmgpO1xuICB9XG5cbiAgJi0tYWx0IHtcbiAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgLmEtY29scyB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm0tYmFubmVyX19pbm5lciB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMmZyO1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tLWJhbm5lcl9fY29weSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIHBhZGRpbmc6IDJyZW07XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDFyZW0gMS41cmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIGgxIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZS1iYXNlLXBsdXMtNTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgfVxuXG4gICAgLmg0IHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZS1iYXNlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuYS1jb2xzIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgJi0tY29sbGVjdGlvbiB7XG4gICAgaGVpZ2h0OiB2YXIoLS12YXJpYWJsZUhlaWdodExpbWl0KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZzogMCAyZW07XG5cbiAgICBhLFxuICAgIHBpY3R1cmUge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgaW1nIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMXJlbTtcbiAgICAgIHJpZ2h0OiAxcmVtO1xuXG4gICAgICBzdmcge1xuICAgICAgICB3aWR0aDogNDBweDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICAgIHdpZHRoOiAyNXB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi0tbGlzdGluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyV2lkdGgpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogY2xhbXAoMS41cmVtLCA1dncsIDJyZW0pIDAgY2xhbXAoMS41cmVtLCA1dncsIDNyZW0pO1xuXG4gICAgaDEge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgfVxuXG4gIC5wcmUtdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgfVxuXG4gIC5hLWltYWdlLWNyZWRpdCB7XG4gICAgei1pbmRleDogNTtcbiAgfVxuXG4gICYuaW1hZ2VpdW5jcm9wcGVkIHtcbiAgICAubS1iYW5uZXJfX2ltYWdlIHtcbiAgICAgIHBpY3R1cmUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nIHtcbiAgICAgICAgbWF4LWhlaWdodDogMjcuNzc3ZW07XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBTb2NpYWwgbGlua3NcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIFN0eWxpbmdcbiAqL1xuLm0tc29jaWFsLWxpbmtzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNSwgMWZyKTtcbiAgZ2FwOiAxcmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHhzJykge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gIH1cblxuICAubS1uYXZfX3NvY2lhbCAmIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg2LCAxZnIpO1xuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICBoZWlnaHQ6IDM1cHg7XG4gICAgd2lkdGg6IDM1cHg7XG5cbiAgICBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBwYXRoIHtcbiAgICAgIHRyYW5zaXRpb246IDAuMnMgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgICBmaWxsOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIH1cblxuICAgICYuYS1idG4ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB3aWR0aDogNjRweDtcbiAgICAgIGhlaWdodDogNDhweDtcbiAgICAgIG1heC13aWR0aDogNjRweDtcblxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luOiAuNXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHBhdGgge1xuICAgICAgICBmaWxsOiB2YXIoLS1jLXBpbmspO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIFN1Ym5hdlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cblxudWwubS1zdWJuYXYge1xuICBAaW5jbHVkZSBsaS1yZXNldDtcblxuICB1bCB7XG4gICAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuXG4gICAgJi5tLXN1Ym5hdl9fY2hpbGQge1xuICAgICAgbGkge1xuICAgICAgICBhIHtcbiAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgJi5hZHZhbmNlZC1zaWRlYmFyLWljb24ge1xuICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gLmN1cnJlbnRfcGFnZV9hbmNlc3RvciA+IGEsXG4gIC8vIC5jdXJyZW50X3BhZ2VfcGFyZW50ID4gYSB7XG4gIC8vICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIC8vIH1cbiAgLy8gW2FyaWEtY3VycmVudD0ncGFnZSddIHtcbiAgLy8gICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLy8gfVxuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1pbi1oZWlnaHQ6IDIwcHg7XG5cbiAgICBzcGFuIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAmW2FyaWEtY3VycmVudF0sXG4gICAgJjpob3ZlciB7XG4gICAgICAvLyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXJlZCk7XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJiA+IGxpID4gYSB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2xkKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cblxuXG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gSW50cm9cbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4ubS1pbnRybyB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lcldpZHRoKTtcbiAgZGlzcGxheTogZ3JpZDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCB2YXIoLS1jb2xzLTYpKSBtaW5tYXgoMCwgdmFyKC0tY29scy0zKSk7XG4gIG1hcmdpbi10b3A6IDJyZW07XG5cbiAgJi0tYWx0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCB2YXIoLS1jb2xzLTMpKSBtaW5tYXgoMCwgdmFyKC0tY29scy02KSk7XG4gICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgfVxuXG4gICYtLWNvbGxlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuXG4gICAgLmEtY29scy0tc20ge1xuICAgICAgcGFkZGluZy10b3A6IGNsYW1wKDEuNXJlbSwgNHZ3LCAzcmVtKTtcblxuICAgICAgJiA+IC5hLWNvbHMtLXNtIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAuYS1jb2xzLS14cyB7XG4gICAgICBtYXgtd2lkdGg6IHZhcigtLWNvbHMtNik7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gQW5jaG9yIG5hdlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5tLWFuY2hvci1uYXYge1xuICAmX19saW5rcyB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQW5jaG9yIHNjcm9sbCBwb3NpdGlvbiBvZmZzZXRcbnNwYW5bZGF0YS1hbmNob3JdIHtcbiAgbWFyZ2luLXRvcDogLTUwcHg7XG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gQ291cnNlIGRldGFpbHNcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4ubS1jb3Vyc2UtZGV0YWlscyB7XG4gIC0tYXV0b0dyaWRNaW46IDE1JTtcbiAgLS1hdXRvR3JpZEdhcDogMnJlbTtcbiAgbWFyZ2luOiAzcmVtIDAgMnJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgIG1hcmdpbjogMnJlbSAwIDFyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIC0tYXV0b0dyaWRNaW46IDE1MHB4O1xuICAgIC0tYXV0b0dyaWRHYXA6IDFyZW07XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHhzJykge1xuICAgIC0tYXV0b0dyaWRNaW46IDFmcjtcbiAgfVxuXG4gICZfX2RldGFpbCB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICBmb250LXNpemU6IDFyZW07XG5cbiAgICBoMyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIFBlb3BsZSBzaWRlYmFyXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0tcGVvcGxlLXNpZGViYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICZfX2xpbmtzIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1waG90b09mZnNldCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgbWF4LXdpZHRoOiAzMzBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8MTYwMHB4Jykge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgQGluY2x1ZGUgYmctaW1nKDIwcHgpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMCAwLjVyZW0gMzJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9saW5rLnN2ZycpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICBwYWRkaW5nOiAwLjc1cmVtO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW46IDAuMjVyZW07XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHNwYW4ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgfVxuICAgIH1cblxuICAgICZbaHJlZio9J21haWx0byddIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2VtYWlsLnN2ZycpO1xuICAgIH1cbiAgICAmW2hyZWYqPSd0ZWwnXSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9waG9uZS5zdmcnKTtcbiAgICB9XG4gICAgJltocmVmKj0ndHdpdHRlciddIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL3R3aXR0ZXIuc3ZnJyk7XG4gICAgfVxuICAgICZbaHJlZio9J2ZhY2Vib29rJ10ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvZmFjZWJvb2suc3ZnJyk7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMjBweDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDVweCBjZW50ZXI7XG4gICAgfVxuICAgICZbaHJlZio9J2xpbmtlZGluJ10ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvbGlua2VkaW4uc3ZnJyk7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gSG9tZXBhZ2UgYmFubmVyXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0taG9tZXBhZ2UtYmFubmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG5cbiAgdmlkZW8ge1xuICAgICYuZGVmYXVsdC12aWRlbyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGFzcGVjdC1yYXRpbzogOSAvIDM7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiAyMCAvIDk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogNCAvIDM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZmlndXJlIHtcbiAgICAmLmRlZmF1bHQtaW1hZ2Uge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogOSAvIDM7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgICAgICAgYXNwZWN0LXJhdGlvOiAyMCAvIDk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICAgIGFzcGVjdC1yYXRpbzogNCAvIDM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gICZfX2Jsb2NrcyB7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICBnYXA6IDFyZW07XG4gICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgfVxuICB9XG5cbiAgJl9fYmxvY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB6LWluZGV4OiAyO1xuXG4gICAgZmlndXJlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuICB9XG5cbiAgLmEtYnRuIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gRXZlbnQgc2lkZWJhclxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5tLWV2ZW50LXNpZGViYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAucHJvbW8tY29weSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxuXG4gIC5hLWJ0biB7XG4gICAgbWFyZ2luLWJvdHRvbTogOXB4O1xuICB9XG5cbiAgLm0tY291cnNlLWRldGFpbHNfX2RldGFpbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMC41cmVtO1xuICB9XG5cbiAgLmEtc2lkZWJhcl9fZWxlbWVudCB7XG4gICAgbWFyZ2luLXRvcDogMC4zcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuMXJlbTtcbiAgfVxuXG4gIC5hLXN0aWNreS5hLXNpZGViYXJfX2VsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IDAuNnJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjhyZW07XG4gIH1cblxuICAuZGV0YWlsIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAmLS1ib2xkIHtcbiAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9sZCk7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAmLS1jb3B5IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgIGgyLFxuICAgICAgaDMsXG4gICAgICBoNCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgIH1cbiAgICAgICYgPiBwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTVweDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIFNlYXJjaCBmb3JtXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0tc2VhcmNoLWZvcm0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJ2hlaWdodDw2MDBweCcpIHtcbiAgICBtYXgtaGVpZ2h0OiA3MHZoO1xuICB9XG5cbiAgJl9fcm93IHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICBoMyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvZHkpO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICB9XG5cbiAgLmEtbGlua3Mge1xuICAgIG1hcmdpbjogMDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICYtLWJpZyB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHh4cycpIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtd2hpdGUpO1xuICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4gICAgfVxuICB9XG5cbiAgZm9ybSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtd2hpdGUpO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgNzVweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEzMDBweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciA1MHB4O1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgLy8gdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRUaXRsZSk7XG4gICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICBwYWRkaW5nOiAwLjVyZW0gMCAwLjVyZW0gMXJlbTtcbiAgICAgIG1pbi13aWR0aDogMDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgfVxuXG4gICAgICAmLnN1Ym1pdCB7XG4gICAgICAgICY6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcbiAgICAgICAgJjotbW96LXBsYWNlaG9sZGVyLFxuICAgICAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbiAgICAgICAgJjotbW96LXBsYWNlaG9sZGVyLFxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXG4gICAgICAmOi1tb3otcGxhY2Vob2xkZXIsXG4gICAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbiAgICAgICY6LW1vei1wbGFjZWhvbGRlcixcbiAgICAgICY6OnBsYWNlaG9sZGVyLFxuICAgICAgOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICAgICAgb3BhY2l0eTogMC43O1xuICAgIH1cblxuICAgIGJ1dHRvbiB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24pO1xuXG4gICAgICBzdmcge1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgIH1cblxuICAgICAgcGF0aCB7XG4gICAgICAgIHN0cm9rZTogdmFyKC0tYy13aGl0ZSk7XG4gICAgICAgIHRyYW5zaXRpb246IHN0cm9rZSB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgIHN0cm9rZTogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLXByaW1vc2VhcmNoIHtcbiAgICBmb3JtIHsgICAgXG5cbiAgICAgIGlucHV0IHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplLWJhc2UtcGx1cy0yO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ncmV5KTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWdyZXkpO1xuXG4gICAgICAgICY6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcbiAgICAgICAgJjotbW96LXBsYWNlaG9sZGVyLFxuICAgICAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbiAgICAgICAgJjotbW96LXBsYWNlaG9sZGVyLFxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIC5zdWJtaXR7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtZ3JleSk7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjphY3RpdmUsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoI2M4YzhkMiwgMC42KTtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIHN0cm9rZTogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gXG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gUGVyZm9ybWFuY2VzIG1vZGFsXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0tcGVyZm9ybWFuY2VzIHtcbiAgLS1tb2RhbFBhZGRpbmc6IDRyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAtLW1vZGFsUGFkZGluZzogMnJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgLS1tb2RhbFBhZGRpbmc6IDFyZW07XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE0LCA0OCwgNTIsIDAuOSk7XG5cbiAgJl9faW5uZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtZ3JleUxpZ2h0KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXJXaWR0aCk7XG4gICAgcGFkZGluZzogMnJlbSAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtaGVpZ2h0OiAxMDB2aDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBoMiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fcGVyZm9ybWFuY2VzIHtcbiAgICBtYXJnaW46IDJyZW0gMCAwO1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tbW9kYWxQYWRkaW5nKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cbiAgfVxuXG4gICZfX3BlcmZvcm1hbmNlIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDE1MHB4LCBhdXRvKSAxZnIgbWlubWF4KDIwMHB4LCBhdXRvKTtcbiAgICBnYXA6IDJyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDAuNzVyZW0gMDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDE1MHB4LCBhdXRvKSAxZnI7XG4gICAgICBnYXA6IDFyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgZ2FwOiAwLjVyZW07XG4gICAgfVxuXG4gICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIH1cblxuICAgIHRpbWUge1xuICAgICAgZm9udC1zaXplOiAxLjNyZW07XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJz54cycsICc8c20nKSB7XG4gICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5hLWJ0biB7XG4gICAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc+eHMnLCAnPHNtJykge1xuICAgICAgICBncmlkLWNvbHVtbjogc3BhbiAyO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiB2YXIoLS1tb2RhbFBhZGRpbmcpO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgdG9wOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgbGVmdDogY2FsYyh2YXIoLS1tb2RhbFBhZGRpbmcpICogLTEpO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLW1vZGFsUGFkZGluZykgKiAtMSk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXllbGxvdyk7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIEdhbGxlcnlcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4ubS1nYWxsZXJ5IHtcbiAgLnBzd3BfX2J1dHRvbiB7XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgb3BhY2l0eTogMC43NTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4gIH1cbiAgLnBzd3BfX2J1dHRvbjpmb2N1cyxcbiAgLnBzd3BfX2J1dHRvbjpob3ZlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAucHN3cF9fYnV0dG9uOmFjdGl2ZSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBvcGFjaXR5OiAwLjk7XG4gIH1cbiAgLnBzd3BfX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICAvKiBwc3dwX191aS0tb3Zlci1jbG9zZSBjbGFzcyBpdCBhZGRlZCB3aGVuIG1vdXNlIGlzIG92ZXIgZWxlbWVudCB0aGF0IHNob3VsZCBjbG9zZSBnYWxsZXJ5ICovXG4gIC5wc3dwX191aS0tb3Zlci1jbG9zZSAucHN3cF9fYnV0dG9uLS1jbG9zZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIC5wc3dwX19idXR0b24sXG4gIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0OmJlZm9yZSxcbiAgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvZGVmYXVsdC1za2luLnBuZycpIDAgMCBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyNjRweCA4OHB4O1xuICAgIHdpZHRoOiA0NHB4O1xuICAgIGhlaWdodDogNDRweDtcbiAgfVxuXG4gIEBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjEpLFxuICAgICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuMDkzNzUpLFxuICAgIChtaW4tcmVzb2x1dGlvbjogMTA1ZHBpKSxcbiAgICAobWluLXJlc29sdXRpb246IDEuMWRwcHgpIHtcbiAgICAvKiBTZXJ2ZSBTVkcgc3ByaXRlIGlmIGJyb3dzZXIgc3VwcG9ydHMgU1ZHIGFuZCByZXNvbHV0aW9uIGlzIG1vcmUgdGhhbiAxMDVkcGkgKi9cbiAgICAucHN3cC0tc3ZnIC5wc3dwX19idXR0b24sXG4gICAgLnBzd3AtLXN2ZyAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdDpiZWZvcmUsXG4gICAgLnBzd3AtLXN2ZyAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQ6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2RlZmF1bHQtc2tpbi5zdmcnKTtcbiAgICB9XG4gICAgLnBzd3AtLXN2ZyAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcbiAgICAucHN3cC0tc3ZnIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5wc3dwX19idXR0b24tLWNsb3NlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC00NHB4O1xuICB9XG5cbiAgLnBzd3BfX2J1dHRvbi0tc2hhcmUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC00NHB4IC00NHB4O1xuICB9XG5cbiAgLnBzd3BfX2J1dHRvbi0tZnMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAucHN3cC0tc3VwcG9ydHMtZnMgLnBzd3BfX2J1dHRvbi0tZnMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLnBzd3AtLWZzIC5wc3dwX19idXR0b24tLWZzIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDRweCAwO1xuICB9XG5cbiAgLnBzd3BfX2J1dHRvbi0tem9vbSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODhweCAwO1xuICB9XG5cbiAgLnBzd3AtLXpvb20tYWxsb3dlZCAucHN3cF9fYnV0dG9uLS16b29tIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5wc3dwLS16b29tZWQtaW4gLnBzd3BfX2J1dHRvbi0tem9vbSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEzMnB4IDA7XG4gIH1cblxuICAvKiBubyBhcnJvd3Mgb24gdG91Y2ggc2NyZWVucyAqL1xuICAucHN3cC0tdG91Y2ggLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXG4gIC5wc3dwLS10b3VjaCAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8qXG4gICAgQXJyb3cgYnV0dG9ucyBoaXQgYXJlYVxuICAgIChpY29uIGlzIGFkZGVkIHRvIDpiZWZvcmUgcHNldWRvLWVsZW1lbnQpXG4gICovXG4gIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxuICAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTUwcHg7XG4gICAgd2lkdGg6IDcwcHg7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCB7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XG4gICAgcmlnaHQ6IDA7XG4gIH1cblxuICAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdDpiZWZvcmUsXG4gIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHRvcDogMzVweDtcbiAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0OmJlZm9yZSB7XG4gICAgbGVmdDogNnB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0xMzhweCAtNDRweDtcbiAgfVxuXG4gIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodDpiZWZvcmUge1xuICAgIHJpZ2h0OiA2cHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk0cHggLTQ0cHg7XG4gIH1cblxuICAvKlxuICBcbiAgICAyLiBTaGFyZSBtb2RhbC9wb3B1cCBhbmQgbGlua3NcbiAgXG4gICAqL1xuICAucHN3cF9fY291bnRlcixcbiAgLnBzd3BfX3NoYXJlLW1vZGFsIHtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICB9XG5cbiAgLnBzd3BfX3NoYXJlLW1vZGFsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDE2MDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZS1vdXQ7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlLW91dDtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gIH1cblxuICAucHN3cF9fc2hhcmUtbW9kYWwtLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5wc3dwX19zaGFyZS10b29sdGlwIHtcbiAgICB6LWluZGV4OiAxNjIwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlKTtcbiAgICB0b3A6IDU2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHJpZ2h0OiA0NHB4O1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgYm94LXNoYWRvdzogMCAycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCk7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjI1cztcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXM7XG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIH1cbiAgLnBzd3BfX3NoYXJlLXRvb2x0aXAgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgfVxuICAucHN3cF9fc2hhcmUtdG9vbHRpcCBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gIH1cbiAgLnBzd3BfX3NoYXJlLXRvb2x0aXAgYTpmaXJzdC1jaGlsZCB7XG4gICAgLyogcm91bmQgY29ybmVycyBvbiB0aGUgZmlyc3QvbGFzdCBsaXN0IGl0ZW0gKi9cbiAgICBib3JkZXItcmFkaXVzOiAycHggMnB4IDAgMDtcbiAgfVxuICAucHN3cF9fc2hhcmUtdG9vbHRpcCBhOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAycHggMnB4O1xuICB9XG5cbiAgLnBzd3BfX3NoYXJlLW1vZGFsLS1mYWRlLWluIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIC5wc3dwX19zaGFyZS1tb2RhbC0tZmFkZS1pbiAucHN3cF9fc2hhcmUtdG9vbHRpcCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cblxuICAvKiBpbmNyZWFzZSBzaXplIG9mIHNoYXJlIGxpbmtzIG9uIHRvdWNoIGRldmljZXMgKi9cbiAgLnBzd3AtLXRvdWNoIC5wc3dwX19zaGFyZS10b29sdGlwIGEge1xuICAgIHBhZGRpbmc6IDE2cHggMTJweDtcbiAgfVxuXG4gIGEucHN3cF9fc2hhcmUtLWZhY2Vib29rOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMnB4O1xuICAgIHJpZ2h0OiAxNXB4O1xuICAgIGJvcmRlcjogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIC13ZWJraXQtcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgLW1vei1wb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gIGEucHN3cF9fc2hhcmUtLWZhY2Vib29rOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2U1YzlhO1xuICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgfVxuICBhLnBzd3BfX3NoYXJlLS1mYWNlYm9vazpob3ZlcjpiZWZvcmUge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICMzZTVjOWE7XG4gIH1cblxuICBhLnBzd3BfX3NoYXJlLS10d2l0dGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjNTVhY2VlO1xuICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgfVxuXG4gIGEucHN3cF9fc2hhcmUtLXBpbnRlcmVzdDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2NjYztcbiAgICBjb2xvcjogI2NlMjcyZDtcbiAgfVxuXG4gIGEucHN3cF9fc2hhcmUtLWRvd25sb2FkOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZGRkO1xuICB9XG5cbiAgLypcbiAgXG4gICAgMy4gSW5kZXggaW5kaWNhdG9yIChcIjEgb2YgWFwiIGNvdW50ZXIpXG4gIFxuICAgKi9cbiAgLnBzd3BfX2NvdW50ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiA0NHB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICBvcGFjaXR5OiAwLjc1O1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuXG4gIC8qXG4gICAgXG4gICAgNC4gQ2FwdGlvblxuICBcbiAgICovXG4gIC5wc3dwX19jYXB0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNDRweDtcbiAgfVxuICAucHN3cF9fY2FwdGlvbiBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiAjYmJiO1xuICB9XG5cbiAgLnBzd3BfX2NhcHRpb25fX2NlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1heC13aWR0aDogNzAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogMC41cmVtO1xuICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICB9XG5cbiAgLnBzd3BfX2NhcHRpb24tLWVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLyogRmFrZSBjYXB0aW9uIGVsZW1lbnQsIHVzZWQgdG8gY2FsY3VsYXRlIGhlaWdodCBvZiBuZXh0L3ByZXYgaW1hZ2UgKi9cbiAgLnBzd3BfX2NhcHRpb24tLWZha2Uge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8qXG4gIFxuICAgIDUuIExvYWRpbmcgaW5kaWNhdG9yIChwcmVsb2FkZXIpXG4gIFxuICAgIFlvdSBjYW4gcGxheSB3aXRoIGl0IGhlcmUgLSBodHRwOi8vY29kZXBlbi5pby9kaW1zZW1lbm92L3Blbi95eUJXb1JcbiAgXG4gICAqL1xuICAucHN3cF9fcHJlbG9hZGVyIHtcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0yMnB4O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2Utb3V0O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZS1vdXQ7XG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gICAgZGlyZWN0aW9uOiBsdHI7XG4gIH1cblxuICAucHN3cF9fcHJlbG9hZGVyX19pY24ge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBtYXJnaW46IDEycHg7XG4gIH1cblxuICAucHN3cF9fcHJlbG9hZGVyLS1hY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgLnBzd3BfX3ByZWxvYWRlci0tYWN0aXZlIC5wc3dwX19wcmVsb2FkZXJfX2ljbiB7XG4gICAgLyogV2UgdXNlIC5naWYgaW4gYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IENTUyBhbmltYXRpb24gKi9cbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL3ByZWxvYWRlci5naWYpIDAgMCBuby1yZXBlYXQ7XG4gIH1cblxuICAucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyLS1hY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgLnBzd3AtLWNzc19hbmltYXRpb24gLnBzd3BfX3ByZWxvYWRlci0tYWN0aXZlIC5wc3dwX19wcmVsb2FkZXJfX2ljbiB7XG4gICAgLXdlYmtpdC1hbmltYXRpb246IGNsb2Nrd2lzZSA1MDBtcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgYW5pbWF0aW9uOiBjbG9ja3dpc2UgNTAwbXMgbGluZWFyIGluZmluaXRlO1xuICB9XG4gIC5wc3dwLS1jc3NfYW5pbWF0aW9uIC5wc3dwX19wcmVsb2FkZXItLWFjdGl2ZSAucHN3cF9fcHJlbG9hZGVyX19kb251dCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb246IGRvbnV0LXJvdGF0ZSAxMDAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSlcbiAgICAgIGluZmluaXRlO1xuICAgIGFuaW1hdGlvbjogZG9udXQtcm90YXRlIDEwMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKSBpbmZpbml0ZTtcbiAgfVxuXG4gIC5wc3dwLS1jc3NfYW5pbWF0aW9uIC5wc3dwX19wcmVsb2FkZXJfX2ljbiB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBvcGFjaXR5OiAwLjc1O1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMTVweDtcbiAgICB0b3A6IDE1cHg7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLnBzd3AtLWNzc19hbmltYXRpb24gLnBzd3BfX3ByZWxvYWRlcl9fY3V0IHtcbiAgICAvKiBcbiAgICAgICAgVGhlIGlkZWEgb2YgYW5pbWF0aW5nIGlubmVyIGNpcmNsZSBpcyBiYXNlZCBvbiBQb2x5bWVyIChcIm1hdGVyaWFsXCIpIGxvYWRpbmcgaW5kaWNhdG9yIFxuICAgICAgICAgYnkgS2VhbnUgTGVlIGh0dHBzOi8vYmxvZy5rZWFudWxlZS5jb20vMjAxNC8xMC8yMC90aGUtdGFsZS1vZi10aHJlZS1zcGlubmVycy5odG1sXG4gICAgICAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogN3B4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLnBzd3AtLWNzc19hbmltYXRpb24gLnBzd3BfX3ByZWxvYWRlcl9fZG9udXQge1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jLXdoaXRlKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5wc3dwX19wcmVsb2FkZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHRvcDogYXV0bztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICBALXdlYmtpdC1rZXlmcmFtZXMgY2xvY2t3aXNlIHtcbiAgICAwJSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIGNsb2Nrd2lzZSB7XG4gICAgMCUge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxuICB9XG5cbiAgQC13ZWJraXQta2V5ZnJhbWVzIGRvbnV0LXJvdGF0ZSB7XG4gICAgMCUge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMTQwZGVnKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xNDBkZWcpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIGRvbnV0LXJvdGF0ZSB7XG4gICAgMCUge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMTQwZGVnKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xNDBkZWcpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICB9XG4gIH1cblxuICAvKlxuICAgIFxuICAgIDYuIEFkZGl0aW9uYWwgc3R5bGVzXG4gIFxuICAgKi9cbiAgLyogcm9vdCBlbGVtZW50IG9mIFVJICovXG4gIC5wc3dwX191aSB7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYXV0bztcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgei1pbmRleDogMTU1MDtcbiAgfVxuXG4gIC8qIHRvcCBibGFjayBiYXIgd2l0aCBidXR0b25zIGFuZCBcIjEgb2YgWFwiIGluZGljYXRvciAqL1xuICAucHN3cF9fdG9wLWJhciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGhlaWdodDogNDRweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5wc3dwX19jYXB0aW9uLFxuICAucHN3cF9fdG9wLWJhcixcbiAgLnBzd3AtLWhhc19tb3VzZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcbiAgLnBzd3AtLWhhc19tb3VzZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKTtcbiAgfVxuXG4gIC8qIHBzd3AtLWhhc19tb3VzZSBjbGFzcyBpcyBhZGRlZCBvbmx5IHdoZW4gdHdvIHN1YnNlcXVlbnQgbW91c2Vtb3ZlIGV2ZW50cyBvY2N1ciAqL1xuICAucHN3cC0taGFzX21vdXNlIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxuICAucHN3cC0taGFzX21vdXNlIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIC5wc3dwX190b3AtYmFyLFxuICAucHN3cF9fY2FwdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICB9XG5cbiAgLyogcHN3cF9fdWktLWZpdCBjbGFzcyBpcyBhZGRlZCB3aGVuIG1haW4gaW1hZ2UgXCJmaXRzXCIgYmV0d2VlbiB0b3AgYmFyIGFuZCBib3R0b20gYmFyIChjYXB0aW9uKSAqL1xuICAucHN3cF9fdWktLWZpdCAucHN3cF9fdG9wLWJhcixcbiAgLnBzd3BfX3VpLS1maXQgLnBzd3BfX2NhcHRpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgfVxuXG4gIC8qIHBzd3BfX3VpLS1pZGxlIGNsYXNzIGlzIGFkZGVkIHdoZW4gbW91c2UgaXNuJ3QgbW92aW5nIGZvciBzZXZlcmFsIHNlY29uZHMgKEpTIG9wdGlvbiB0aW1lVG9JZGxlKSAqL1xuICAucHN3cF9fdWktLWlkbGUgLnBzd3BfX3RvcC1iYXIge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAucHN3cF9fdWktLWlkbGUgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXG4gIC5wc3dwX191aS0taWRsZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAvKlxuICAgIHBzd3BfX3VpLS1oaWRkZW4gY2xhc3MgaXMgYWRkZWQgd2hlbiBjb250cm9scyBhcmUgaGlkZGVuXG4gICAgZS5nLiB3aGVuIHVzZXIgdGFwcyB0byB0b2dnbGUgdmlzaWJpbGl0eSBvZiBjb250cm9sc1xuICAqL1xuICAucHN3cF9fdWktLWhpZGRlbiAucHN3cF9fdG9wLWJhcixcbiAgLnBzd3BfX3VpLS1oaWRkZW4gLnBzd3BfX2NhcHRpb24sXG4gIC5wc3dwX191aS0taGlkZGVuIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxuICAucHN3cF9fdWktLWhpZGRlbiAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xuICAgIC8qIEZvcmNlIHBhaW50ICYgY3JlYXRlIGNvbXBvc2l0aW9uIGxheWVyIGZvciBjb250cm9scy4gKi9cbiAgICBvcGFjaXR5OiAwLjAwMTtcbiAgfVxuXG4gIC8qIHBzd3BfX3VpLS1vbmUtc2xpZGUgY2xhc3MgaXMgYWRkZWQgd2hlbiB0aGVyZSBpcyBqdXN0IG9uZSBpdGVtIGluIGdhbGxlcnkgKi9cbiAgLnBzd3BfX3VpLS1vbmUtc2xpZGUgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXG4gIC5wc3dwX191aS0tb25lLXNsaWRlIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCxcbiAgLnBzd3BfX3VpLS1vbmUtc2xpZGUgLnBzd3BfX2NvdW50ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAucHN3cF9fZWxlbWVudC0tZGlzYWJsZWQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5wc3dwLS1taW5pbWFsLS1kYXJrIC5wc3dwX190b3AtYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG5cbiAgLnBzd3BfX3pvb20td3JhcCxcbiAgLnBzd3BfX2NvbnRhaW5lcixcbiAgLnBzd3BfX2l0ZW0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICB9XG5cbiAgLnBzd3BfX2J1dHRvbiB7XG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG4gICAgfVxuICB9XG5cbiAgLnBzd3BfX2NvdW50ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICB9XG5cbiAgLnBzd3AtLXpvb21lZC1pbiB7XG4gICAgLnBzd3BfX2NhcHRpb24ge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBUb2dnbGUgc3VibmF2XG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0tdG9nZ2xlLXN1Ym5hdiB7XG4gICZbZGF0YS1pc09wZW49J2ZhbHNlJ10ge1xuICAgIGJ1dHRvbjphZnRlciB7XG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgfVxuXG4gICAgJiA+IGRpdiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnXFwyMDE0JztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24pO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwcHgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIFN1Ym5hdiBjb250YWluZXJcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4ubS1zdWJuYXYtY29udGFpbmVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgLm0tc3VibmF2IHtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gIH1cbn1cbiIsIi5jLWFuY2hvcnMge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICB6LWluZGV4OiAyMDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG4uYy1hbmNob3JzX19kcm9wZG93biB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJz5zbScpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5jLWFuY2hvcnNfX3RyaWdnZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG5cbiAgICBzdmcge1xuICAgICAgICBmaWxsOiB3aGl0ZTtcbiAgICAgICAgd2lkdGg6IDFyZW07XG4gICAgfVxuXG4gICAgJlthcmlhLWV4cGFuZGVkPXRydWVdIHtcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jLWFuY2hvcnNfX25hdiB7XG4gICAgcGFkZGluZzogMTBweCAwO1xufVxuXG4uYy1hbmNob3JzX193cmFwe1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAxOHB4O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG59XG5cbi5jLWFuY2hvcnNfX2hlYWRpbmcge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZS1iYXNlO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmMtYW5jaG9yc19fbGlzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGdhcDogMThweDtcbiAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IC41NXMgY3ViaWMtYmV6aWVyKC42NSwgMCwgLjM1LCAxKTsgIFxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgaHRtbC5zdGF0ZS0tYW5jaG9ycy1hY3RpdmUgJiB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA2cHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubS1iYW5uZXI6aGFzKCsgLm0tZW50aXR5LmMtYW5jaG9ycykge1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG59IiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE9yZ2FuaXNtcyAtIEhlYWRlclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5vLWhlYWRlciB7XG4gICZfX3ByaW1hcnkge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyV2lkdGgpO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzwxMTAwcHgnKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgICAganVzdGlmeS1pdGVtczogc3RhcnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICBoZWlnaHQ6IHRvLXJlbSg3NnB4KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgcGFkZGluZzogMC41cmVtIDE1cHg7XG4gICAgICBoZWlnaHQ6IHRvLXJlbSg1NHB4KTtcbiAgICB9XG4gIH1cblxuICAmX19uYXYge1xuICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICYtLW1vYmlsZSB7XG4gICAgICAmLm8taGVhZGVyX19uYXYtLXByaW1hcnkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPjEwOTlweCcpIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLm8taGVhZGVyX19uYXYtLXNlY29uZGFyeSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IHRvLXJlbSg3NnB4KTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDQ1cHgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICB6LWluZGV4OiAyMDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICAgIHRvcDogdG8tcmVtKDU0cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgYm9keS5hZG1pbi1iYXIgJiB7XG4gICAgICAgICAgdG9wOiA5MHB4O1xuICAgICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDc1cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgYTpub3QoLmJ0bikge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZS1iYXNlLXBsdXMtMjtcbiAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhhcyguc3VibWVudS10b2dnbGUpIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgYnV0dG9uLnN1Ym1lbnUtdG9nZ2xlIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgd2lkdGg6IDQ0cHg7XG4gICAgICAgICAgcGFkZGluZzogMTFweCAxNXB4O1xuXG4gICAgICAgICAgLnN1Ym1lbnUtdG9nZ2xlLS1taW51cyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC5zdWJtZW51LXRvZ2dsZS0tcGx1cyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAgIC5zdWJtZW51LXRvZ2dsZS0tbWludXMge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnN1Ym1lbnUtdG9nZ2xlLS1wbHVzIHtcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzdmcgcGF0aCB7XG4gICAgICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzwxMTAwcHgnKSB7XG4gICAgICAgICAgJi5zdWJtZW51LS1hY3RpdmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuby1oZWFkZXJfX25hdi0tdGVydGlhcnkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICAgICAgJi5zdWJtZW51LS1hY3RpdmUge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG5cbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZS1iYXNlO1xuICAgICAgICAgICAgcGFkZGluZzogMTBweCAxNXB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1kZXNrdG9wIHtcbiAgICAgICYuby1oZWFkZXJfX25hdi0tcHJpbWFyeSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPjEwOTlweCcpIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5vLWhlYWRlcl9fbmF2LS1zZWNvbmRhcnkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz4xMDk5cHgnKSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgIGp1c3RpZnktc2VsZjogZW5kO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHNwYW4ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIH1cblxuICAgICAgc3ZnIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyOXB4O1xuICAgICAgfVxuXG4gICAgICAmLnN1Ym1lbnUtdG9nZ2xlIHtcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDE0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIHN2ZyB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGgxIHtcbiAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuICB9XG5cbiAgJl9fbG9nbyB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIHN2ZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgfVxuXG4gICAgcGF0aCB7XG4gICAgICB0cmFuc2l0aW9uOiBmaWxsIHZhcigtLXRyYW5zaXRpb24pO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgcGF0aCB7XG4gICAgICAgIGZpbGw6IHZhcigtLWMtZ3JleSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaDEge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAmX19zdWJtZW51IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXkpO1xuICAgIHBhZGRpbmc6IDE1cHggMDtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+c20nKSB7XG4gICAgICB0b3A6IDc2cHg7XG5cbiAgICAgIGJvZHkuYWRtaW4tYmFyICYge1xuICAgICAgICB0b3A6IDEwNnB4O1xuICAgICAgfVxuXG4gICAgICAmLnN1Ym1lbnUtLWFjdGl2ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBnYXA6IDEwcHg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAmOmhvdmVyIHNwYW4ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIH1cblxuICAgICAgPmRpdiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgIH1cblxuICAgICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDFyZW07XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19uYXYge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gICAgICBmb250LXNpemU6IDEuMjVyZW07XG5cbiAgICAgICYubmF2X19wcmltYXJ5IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICA+YSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICBwYWRkaW5nOiAwIDdweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubmF2X19zZWNvbmRhcnkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IC43NXJlbTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAuMnJlbTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBPcmdhbmlzbXMgLSBGb290ZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4uby1mb290ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyZXkpO1xuICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZyk7XG4gIGZvbnQtc2l6ZTogMXJlbTtcblxuICAuYS1jb2xzLS1mdWxsIHtcbiAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgfVxuXG4gIC5hLWxpbmtzIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICBhIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICB9XG4gIH1cblxuICBoMyB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2R5KTtcbiAgICBAaW5jbHVkZSBmb250LXNpemUtYmFzZS1wbHVzLTE7XG4gIH1cblxuICAmX190b3Age1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTgsIDFmcik7XG4gICAgZ2FwOiAxcmVtO1xuICAgIG1hcmdpbjogMnJlbTtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gNHJlbSk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiAycmVtO1xuICAgICAgbWFyZ2luOiAycmVtIDA7XG4gICAgfVxuICB9XG5cbiAgJl9fYWJvdXQge1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDU7XG4gICAgZ3JpZC1yb3c6IDE7XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgZ3JpZC1yb3c6IGF1dG87XG5cbiAgICAgIGgzLCBwIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2xpbmtzIHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiA1O1xuICAgIGdyaWQtcm93OiAyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgZ3JpZC1yb3c6IGF1dG87XG4gICAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuICAgIH1cblxuICAgIC5hLWxpbmtzIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuICB9XG5cbiAgJl9fbmV3c2xldHRlciB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gNztcbiAgICBncmlkLXJvdzogMTtcbiAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgIGdyaWQtcm93OiBhdXRvO1xuICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICAgIG9yZGVyOiAtMTtcbiAgICB9XG4gIH1cblxuICAmX19pbmZvIHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiA3O1xuICAgIGdyaWQtcm93OiAyO1xuICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgZ3JpZC1yb3c6IGF1dG87XG4gICAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuICAgICAgb3JkZXI6IDI7XG4gICAgfVxuICB9XG5cbiAgJl9fam9pbi1zdXBwb3J0IHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiA2O1xuICAgIGdyaWQtcm93OiAyO1xuICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICBncmlkLXJvdzogYXV0bztcbiAgICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gICAgfVxuXG4gICAgLmxpbmtzIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIGdhcDogMXJlbTtcbiAgICB9XG4gIH1cblxuICAmX19zb2NpYWwge1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDY7XG4gICAgZ3JpZC1yb3c6IDE7XG4gICAganVzdGlmeS1zZWxmOiBzdGFydDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgIGdyaWQtcm93OiBhdXRvO1xuICAgICAgb3JkZXI6IC0yO1xuICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICB9XG5cbiAgICAubS1zb2NpYWwtbGlua3Mge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgICBhIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIG9iamVjdC1maXQ6IGluaXRpYWw7XG4gICAgICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fYm90dG9tIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW46IDJyZW07XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDRyZW0pO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBtYXJnaW46IDAgMCA0cmVtIDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAmX19wYXJ0bmVycyxcbiAgJl9faGVhZGxpbmUtcGFydG5lciB7XG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9faGVhZGxpbmUtcGFydG5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBwIHtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG4gIH1cblxuICAmX19wYXJ0bmVycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1wYWRkaW5nKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4eHMnKSB7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2xlZ2FsIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICBmb250LXNpemU6IDg1JTtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICBiciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogT3JnYW5pc21zIC0gU2VhcmNoIHJlc3VsdHNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4uby1zZWFyY2gtcmVzdWx0cy13cmFwcGVyIHtcbiAgaDIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAucmVzdWx0X190aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gICZfX2xpc3Qge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICBvbCB7XG4gICAgICBAaW5jbHVkZSBsaS1yZXNldDtcblxuICAgICAgbGkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE9yZ2FuaXNtcyAtIFRlYXNlcnNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4uby1mZWF0dXJlZC10ZWFzZXIsXG4uby1saXN0aW5nLXRlYXNlcixcbi5vLXRlYXNlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc+c20nKSB7XG4gICAgJi0tc2luZ2xlIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgICAgZ2FwOiAycmVtO1xuICAgIH1cbiAgfVxuXG4gICZfX3RodW1iIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgZmlndXJlIHtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmctdG9wOiA1Ni4yNSU7XG5cbiAgICAgICYubGlzdGluZ19pbWFnZV9zcXVhcmUge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgJi5saXN0aW5nX2ltYWdlX3BvcnRyYWl0IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDEzMy4zMzMzJTtcbiAgICAgIH1cblxuICAgICAgcGljdHVyZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyZXlMaWdodCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24pO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuXG4gICAgLmxhYmVsIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTAuOHJlbTtcbiAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG5cbiAgICAgICYudGVhbCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtdGVhbCk7XG4gICAgICB9XG5cbiAgICAgICYudmlvbGV0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1tYXJvb24pO1xuICAgICAgfVxuXG4gICAgICAmLnllbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMteWVsbG93KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBpbWcge1xuICAgICAgICBvcGFjaXR5OiAwLjk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgcGFkZGluZzogMC41cmVtIDA7XG4gICAgfVxuXG4gICAgYTpub3QoLmEtYnRuKTpub3QoLnJlYWQtbW9yZSkge1xuICAgICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC50YWcge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgfVxuXG4gICAgLm8tdGVhc2VyX190aXRsZSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUtYmFzZS1wbHVzLTI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz5zbScpIHtcbiAgICAgIC5vLXRlYXNlci0tc2luZ2xlICYge1xuICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgLm8tdGVhc2VyX190aXRsZSB7XG4gICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplLWJhc2UtcGx1cy0zO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcDpsYXN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAmX19idXR0b25zIHtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIHBhZGRpbmc6IDAgMCAxcmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmPi5hLWJ0biB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICB3aGl0ZS1zcGFjZTogd3JhcDtcblxuICAgICAgc3ZnIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICAmOm5vdCgubm8tbGluayk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cblxuICAgICY+YSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICBwYWRkaW5nLXRvcDogY2FsYyguNXJlbSAtIDNweCk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogY2FsYyguNXJlbSAtIDNweCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz5zbScpIHtcbiAgICAgIC5vLXRlYXNlci0tc2luZ2xlICYge1xuICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIG1heC13aWR0aDogdmFyKC0tbGluZUxlbmd0aCk7XG4gIH1cblxuICBwLmJ0bi1hcmlhLWxhYmVsIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICB9XG59XG5cbi5vLWxpc3RpbmctdGVhc2VyIHtcblxuICAmX190aHVtYiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYWxpZ24tc2VsZjogZW5kO1xuICB9XG5cbiAgJl9fY29udGVudCB7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cblxuICAmX19idXR0b25zIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICB9XG59XG5cbi5vLWZlYXR1cmVkLXRlYXNlciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIGdhcDogMnJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDEuNWZyO1xuICAgIGdhcDogMXJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cblxuICBoMiB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplLWJhc2UtcGx1cy0zO1xuICB9XG5cbiAgJi0tc2luZ2xlIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgJl9fY29udGVudCB7XG4gICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAuYmdDb2xvdXIgJiB7XG4gICAgICBjb2xvcjogdW5zZXQ7XG4gICAgfVxuICB9XG5cbiAgJl9fYnV0dG9ucyB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcblxuICAgICY+LmEtYnRuIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgYm9yZGVyOiAwO1xuXG4gICAgICBzdmcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIH1cblxuICAgICAgLS1idG5CZzogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXdoaXRlKTtcbiAgICB9XG4gIH1cbn1cblxuLm8tdGVhc2VyIHtcbiAgJl9fY29udGVudCB7XG4gICAgcCB7XG4gICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE9yZ2FuaXNtcyAtIExpc3RpbmcgKip0ZW1wKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uby1saXN0aW5nIHtcbiAgcGFkZGluZzogMCB2YXIoLS1ndXR0ZXIpO1xuXG4gICZfX2J1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgfVxuXG4gICZfX2ZpbHRlcnMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDEycHggMCAxMnB4O1xuICAgIG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyV2lkdGgpO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIHJvdy1nYXA6IHZhcigtLWd1dHRlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuXG4gICAgLmJ0biB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZS1iYXNlLXBsdXMtMjtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBsaW5lLWhlaWdodDogNDBweDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgcGFkZGluZzogMCAwLjVyZW07XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHhzJykge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUtYmFzZTtcblxuICAgICAgICAmLS1kcm9wZG93biB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5hY3RpdmUsXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtcmVkKTtcbiAgICAgIH1cblxuICAgICAgJi0tY2FsZW5kYXIge1xuICAgICAgICBtYXJnaW46IDAgMXJlbSAwIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZGl2aWRlciB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogMXB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19kcm9wZG93biB7XG5cbiAgICB6LWluZGV4OiAyO1xuICAgIHRvcDogY2FsYygxMDAlICsgMXB4KTtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ncmV5TGlnaHQpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgIHBhZGRpbmc6IDJyZW0gMXJlbTtcbiAgICAuc2hvdy1yZXN1bHRzIHtcbiAgICAgICBtYXJnaW46IDIwcHggMCAwIDA7XG4gICAgfVxuICAgIC5hLWNvbHMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi1jYWxlbmRhciB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbiAgICAgIHRvcDogNTAlICFpbXBvcnRhbnQ7XG4gICAgICBsZWZ0OiA1MCUgIWltcG9ydGFudDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsLTUwJSk7XG4gICAgICB3aWR0aDogNTAlO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICAuRGF5UGlja2VyLU5hdkJhciB7XG4gICAgICAgIHRvcDogMDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5hLWNvbHMge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgICYtY29udHJvbHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIHAge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9jbG9zZS5zdmcpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcblxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIGNhbGModmFyKC0tZ3V0dGVyKSogMikgYXV0bztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLXRheG9ub215IHtcblxuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7XG4gICAgICBncmlkLWdhcDogMjBweDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbWFyZ2luOiAwIDFyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgICBncmlkLWdhcDogMTVweDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgICBncmlkLWdhcDogMTBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICAgIH1cbiAgICAgIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdyaWQtZ2FwOiAxMHB4O1xuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgYWNjZW50LWNvbG9yOiAjZmZiODFjO1xuICAgICAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgICAgIGhlaWdodDogMTVweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaDMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnRcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi0tZmlsdGVycyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgfVxuICAgICAgICBncmlkLWdhcDogMTBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnI7XG4gICAgICAgICAgZ3JpZC1nYXA6IDVweDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmxpbmsge1xuICAgICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYy1yZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX211bHRpLWRyb3Bkb3duIHtcbiAgICBtYXJnaW46IDAgMTBweCAwIDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2R5KTtcblxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmID4gZGl2IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9keSk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAyMHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuXG4gICAgICAmW2RhdGEtZmlsdGVyLW5hbWU9XCJXaGF0XCJdIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogXCJXaGF0XCI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJltkYXRhLWZpbHRlci1uYW1lPVwiV2hlcmVcIl0ge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiBcIldoZXJlXCI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJltkYXRhLWZpbHRlci1uYW1lPVwiV2hvIGZvclwiXSB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiV2hvIGZvclwiO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYgPiBsYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgICYgPiBkaXYge1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2R5KTtcblxuICAgICAgICAmID4gZGl2IHtcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDNweCBzb2xpZCAjMDAwO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTNweDtcbiAgICAgICAgICAgIHdpZHRoOiAxM3B4O1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2Fycm93LWhlYWQuc3ZnJyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSB0cmFuc2xhdGVZKDUwJSk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwREVHKSB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmIH4gZmllbGRzZXQge1xuICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtcmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmID4gZmllbGRzZXQge1xuICAgICAgICAgIHRvcDogMHB4O1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcblxuICAgICAgICAgICYgPiBsZWdlbmQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgJiA+IHNwYW4ge1xuICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYgPiBzdmcge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19tdWx0aS1kcm9wZG93bnMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgICBnYXA6IHZhcigtLWd1dHRlcik7XG4gICAgd2lkdGg6IDQwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICB3aWR0aDogNjAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIH1cbiAgfVxuXG4gICZfX2NoZWNrYm94IHtcbiAgICAmID4gbGFiZWwge1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICYgPiBzcGFuIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19hY3RpdmUtZmlsdGVycyB7XG4gICAgcGFkZGluZzogMC41cmVtIDAgMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyZXlMaWdodCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgLmEtYnRuIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtcmVkKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24pO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXJlZCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcmVkKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5EYXlQaWNrZXIge1xuICAgICYtTW9udGhzIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgICAgZ2FwOiAycmVtO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgZ2FwOiAwO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgICB9XG4gICAgfVxuICAgICYtTW9udGgge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgLmFjdGl2ZS1maWx0ZXJzX19yZXNldCB7XG4gICAgLmEtYnRuOmZvY3VzLXZpc2libGUge1xuICAgICAgb3V0bGluZS1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBPcmdhbmlzbXMgLSBQZXJzb24gdGVhc2VyXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm8tcGVvcGxlIHtcbiAgJi0tc20ge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogMnJlbTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg1LCAxZnIpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4eHMnKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG5cbiAgICAuby1wZW9wbGVfX3BlcnNvbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGdhcDogMDtcblxuICAgICAgZmlndXJlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgaW1nIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG5cbiAgICAgIGgzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cblxuICAgICAgaDQge1xuICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvZHkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLWxnIHtcbiAgICAuby1wZW9wbGVfX3BlcnNvbiB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMjIwcHg7XG4gICAgICBnYXA6IDJyZW07XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgIHBhZGRpbmctdG9wOiAxLjVyZW07XG4gICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG5cbiAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDE1MHB4O1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLXNtIHtcbiAgICAuby1wZW9wbGVfX3BlcnNvbiB7XG4gICAgICBoMyB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZS1iYXNlLXBsdXMtMTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZS1iYXNlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGg0IHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplLWJhc2U7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUtYmFzZS1taW51cy0xO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fcGVyc29uIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG5cbiAgICAubGluayB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cblxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgaDMsXG4gICAgICAubGluayB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuXG4gICAgICAubGluazo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgICB9XG5cbiAgICAgIGltZyB7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbik7XG4gIH1cblxuICBcbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBPcmdhbmlzbXMgLSBQZXJmb3JtYW5jZXMgbW9kYWxcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG5bZGF0YS1tb2RhbE9wZW49J3RydWUnXSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5vLW1vZGFsIHtcbiAgYm9yZGVyOiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMjU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuXG4gICZbZGF0YS12aXNpYmxlPSd0cnVlJ10ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYW5pbWF0aW9uOiBmYWRlSW4gMC4ycyBlYXNlLWluLW91dCBmb3J3YXJkcztcbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlPSdmYWxzZSddIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAvLyBhbmltYXRpb246IGZhZGVPdXQgMC4ycyBlYXNlLWluLW91dCBmb3J3YXJkcztcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgLmEtY29scyB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG4gICYtLWZ1bGxzY3JlZW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIHBhZGRpbmc6IDJyZW07XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICB9XG5cbiAgICAuYS1jb2xzIHtcbiAgICAgIG1heC1oZWlnaHQ6IDk1dmg7XG4gICAgICBwYWRkaW5nOiAxcmVtIDAgMDtcbiAgICB9XG5cbiAgICAuby1tb2RhbF9fY2xvc2Uge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICByaWdodDogMnJlbTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgcmlnaHQ6IDFyZW07XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAgIHJpZ2h0OiAxNXB4O1xuICAgICAgfVxuXG4gICAgICBwYXRoIHtcbiAgICAgICAgc3Ryb2tlOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgIHN0cm9rZTogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tLXNvY2lhbC1saW5rcyB7XG4gICAgcGF0aCB7XG4gICAgICBmaWxsOiB2YXIoLS1jLXdoaXRlKTtcbiAgICB9XG4gIH1cblxuICAmX19jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogNDJweDtcbiAgICB3aWR0aDogNDJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgdG9wOiAxcmVtO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIGJvcmRlcjogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAvLyB0b3A6IDAuNXJlbTtcbiAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICBoZWlnaHQ6IDM1cHg7XG4gICAgICB3aWR0aDogMzVweDtcbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgd2lkdGg6IDIwcHg7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIHBhdGgge1xuICAgICAgdHJhbnNpdGlvbjogc3Ryb2tlIHZhcigtLXRyYW5zaXRpb24pO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcblxuICAgICAgcGF0aCB7XG4gICAgICAgIHN0cm9rZTogdmFyKC0tYy13aGl0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiNjY2Mge1xuICAjY2NjIHtcbiAgICAmLWNsb3NlIHtcbiAgICAgICYuY2NjIHtcbiAgICAgICAgJi1jbG9zZSB7XG4gICAgICAgICAgJi0tbGFiZWxsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBzaGFrZSAwLjgycyBjdWJpYy1iZXppZXIoLjM2LC4wNywuMTksLjk3KSBib3RoO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi1yZWplY3Qtc2V0dGluZ3Mge1xuICAgICAgJi5jY2Mge1xuICAgICAgICAmLW5vdGlmeS1idXR0b24ge1xuICAgICAgICAgICYuY2NjLXJlamVjdC1idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICYgPiBzcGFuIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG5Aa2V5ZnJhbWVzIHNoYWtlIHtcbiAgMTAlLCA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTFweCwgMCwgMCk7XG4gIH1cbiAgMjAlLCA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMnB4LCAwLCAwKTtcbiAgfVxuXG4gIDMwJSwgNTAlLCA3MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTJweCwgMCwgMCk7XG4gIH1cbiAgNDAlLCA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMnB4LCAwLCAwKTtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIFRlbXBsYXRlIC0gUG9zdHNcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG5hcnRpY2xlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAucG9zdC1tZXRhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIHBhZGRpbmc6IDAgMnJlbTtcblxuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgNXZ3LCAzLjI1cmVtKTtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/