/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0; }

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block; }

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */ }

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */ }

/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent; }

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  /* 2 */ }

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder; }

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */ }

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%; }

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none; }

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */ }

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible; }

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none; }

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button; }

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0; }

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText; }

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em; }

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */ }

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline; }

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto; }

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */ }

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */ }

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block; }

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item; }

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none; }

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none; }

/*
 *  Owl Carousel - Core
 */
.owl-carousel {
  display: none;
  width: 100%;
  -webkit-tap-highlight-color: transparent;
  /* position relative and z-index fix webkit rendering fonts issue */
  position: relative;
  z-index: 1; }
  .owl-carousel .owl-stage {
    position: relative;
    -ms-touch-action: pan-Y; }
  .owl-carousel .owl-stage:after {
    content: ".";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height: 0; }
  .owl-carousel .owl-stage-outer {
    position: relative;
    overflow: hidden;
    /* fix for flashing background */
    -webkit-transform: translate3d(0px, 0px, 0px); }
  .owl-carousel .owl-item {
    position: relative;
    min-height: 1px;
    float: left;
    -webkit-backface-visibility: hidden;
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none; }
  .owl-carousel .owl-item img {
    display: block;
    width: 100%;
    -webkit-transform-style: preserve-3d; }
  .owl-carousel .owl-nav.disabled,
  .owl-carousel .owl-dots.disabled {
    display: none; }
  .owl-carousel .owl-nav .owl-prev,
  .owl-carousel .owl-nav .owl-next,
  .owl-carousel .owl-dot {
    cursor: pointer;
    cursor: hand;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; }
  .owl-carousel.owl-loaded {
    display: block; }
  .owl-carousel.owl-loading {
    opacity: 0;
    display: block; }
  .owl-carousel.owl-hidden {
    opacity: 0; }
  .owl-carousel.owl-refresh .owl-item {
    visibility: hidden; }
  .owl-carousel.owl-drag .owl-item {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; }
  .owl-carousel.owl-grab {
    cursor: move;
    cursor: -webkit-grab;
    cursor: grab; }
  .owl-carousel.owl-rtl {
    direction: rtl; }
  .owl-carousel.owl-rtl .owl-item {
    float: right; }

/* No Js */
.no-js .owl-carousel {
  display: block; }

/*
 *  Owl Carousel - Animate Plugin
 */
.owl-carousel .animated {
  -webkit-animation-duration: 1000ms;
          animation-duration: 1000ms;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both; }

.owl-carousel .owl-animated-in {
  z-index: 0; }

.owl-carousel .owl-animated-out {
  z-index: 1; }

.owl-carousel .fadeOut {
  -webkit-animation-name: fadeOut;
          animation-name: fadeOut; }

@-webkit-keyframes fadeOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }

@keyframes fadeOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }

/*
 * 	Owl Carousel - Auto Height Plugin
 */
.owl-height {
  transition: height 500ms ease-in-out; }

/*
 * 	Owl Carousel - Lazy Load Plugin
 */
.owl-carousel .owl-item .owl-lazy {
  opacity: 0;
  transition: opacity 400ms ease; }

.owl-carousel .owl-item img.owl-lazy {
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d; }

/*
 * 	Owl Carousel - Video Plugin
 */
.owl-carousel .owl-video-wrapper {
  position: relative;
  height: 100%;
  background: #000; }

.owl-carousel .owl-video-play-icon {
  position: absolute;
  height: 80px;
  width: 80px;
  left: 50%;
  top: 50%;
  margin-left: -40px;
  margin-top: -40px;
  background: url("owl.video.play.png") no-repeat;
  cursor: pointer;
  z-index: 1;
  -webkit-backface-visibility: hidden;
  transition: -webkit-transform 100ms ease;
  transition: transform 100ms ease;
  transition: transform 100ms ease, -webkit-transform 100ms ease; }

.owl-carousel .owl-video-play-icon:hover {
  -webkit-transform: scale(1.3, 1.3);
          transform: scale(1.3, 1.3); }

.owl-carousel .owl-video-playing .owl-video-tn,
.owl-carousel .owl-video-playing .owl-video-play-icon {
  display: none; }

.owl-carousel .owl-video-tn {
  opacity: 0;
  height: 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  transition: opacity 400ms ease; }

.owl-carousel .owl-video-frame {
  position: relative;
  z-index: 1;
  height: 100%;
  width: 100%; }

/* Magnific Popup CSS */
.mfp-bg {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1042;
  overflow: hidden;
  position: fixed;
  background: #0b0b0b;
  opacity: 0.8; }

.mfp-wrap {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1043;
  position: fixed;
  outline: none !important;
  -webkit-backface-visibility: hidden; }

.mfp-container {
  text-align: center;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  padding: 0 8px;
  box-sizing: border-box; }

.mfp-container:before {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle; }

.mfp-align-top .mfp-container:before {
  display: none; }

.mfp-content {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  margin: 0 auto;
  text-align: left;
  z-index: 1045; }

.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
  width: 100%;
  cursor: auto; }

.mfp-ajax-cur {
  cursor: progress; }

.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
  cursor: zoom-out; }

.mfp-zoom {
  cursor: pointer;
  cursor: zoom-in; }

.mfp-auto-cursor .mfp-content {
  cursor: auto; }

.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
      user-select: none; }

.mfp-loading.mfp-figure {
  display: none; }

.mfp-hide {
  display: none !important; }

.mfp-preloader {
  color: #CCC;
  position: absolute;
  top: 50%;
  width: auto;
  text-align: center;
  margin-top: -0.8em;
  left: 8px;
  right: 8px;
  z-index: 1044; }
  .mfp-preloader a {
    color: #CCC; }
    .mfp-preloader a:hover {
      color: #FFF; }

.mfp-s-ready .mfp-preloader {
  display: none; }

.mfp-s-error .mfp-content {
  display: none; }

button.mfp-close, button.mfp-arrow {
  overflow: visible;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
  display: block;
  outline: none;
  padding: 0;
  z-index: 1046;
  box-shadow: none;
  touch-action: manipulation; }

button::-moz-focus-inner {
  padding: 0;
  border: 0; }

.mfp-close {
  width: 44px;
  height: 44px;
  line-height: 44px;
  position: absolute;
  right: 0;
  top: 0;
  text-decoration: none;
  text-align: center;
  opacity: 0.65;
  padding: 0 0 18px 10px;
  color: #FFF;
  font-style: normal;
  font-size: 28px;
  font-family: Arial, Baskerville, monospace; }
  .mfp-close:hover, .mfp-close:focus {
    opacity: 1; }
  .mfp-close:active {
    top: 1px; }

.mfp-close-btn-in .mfp-close {
  color: #333; }

.mfp-image-holder .mfp-close,
.mfp-iframe-holder .mfp-close {
  color: #FFF;
  right: -6px;
  text-align: right;
  padding-right: 6px;
  width: 100%; }

.mfp-counter {
  position: absolute;
  top: 0;
  right: 0;
  color: #CCC;
  font-size: 12px;
  line-height: 18px;
  white-space: nowrap; }

.mfp-arrow {
  position: absolute;
  opacity: 0.65;
  margin: 0;
  top: 50%;
  margin-top: -55px;
  padding: 0;
  width: 90px;
  height: 110px;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
  .mfp-arrow:active {
    margin-top: -54px; }
  .mfp-arrow:hover, .mfp-arrow:focus {
    opacity: 1; }
  .mfp-arrow:before, .mfp-arrow:after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    position: absolute;
    left: 0;
    top: 0;
    margin-top: 35px;
    margin-left: 35px;
    border: medium inset transparent; }
  .mfp-arrow:after {
    border-top-width: 13px;
    border-bottom-width: 13px;
    top: 8px; }
  .mfp-arrow:before {
    border-top-width: 21px;
    border-bottom-width: 21px;
    opacity: 0.7; }

.mfp-arrow-left {
  left: 0; }
  .mfp-arrow-left:after {
    border-right: 17px solid #FFF;
    margin-left: 31px; }
  .mfp-arrow-left:before {
    margin-left: 25px;
    border-right: 27px solid #3F3F3F; }

.mfp-arrow-right {
  right: 0; }
  .mfp-arrow-right:after {
    border-left: 17px solid #FFF;
    margin-left: 39px; }
  .mfp-arrow-right:before {
    border-left: 27px solid #3F3F3F; }

.mfp-iframe-holder {
  padding-top: 40px;
  padding-bottom: 40px; }
  .mfp-iframe-holder .mfp-content {
    line-height: 0;
    width: 100%;
    max-width: 900px; }
  .mfp-iframe-holder .mfp-close {
    top: -40px; }

.mfp-iframe-scaler {
  width: 100%;
  height: 0;
  overflow: hidden;
  padding-top: 56.25%; }
  .mfp-iframe-scaler iframe {
    position: absolute;
    display: block;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
    background: #000; }

/* Main image in popup */
img.mfp-img {
  width: auto;
  max-width: 100%;
  height: auto;
  display: block;
  line-height: 0;
  box-sizing: border-box;
  padding: 40px 0 40px;
  margin: 0 auto; }

/* The shadow behind the image */
.mfp-figure {
  line-height: 0; }
  .mfp-figure:after {
    content: '';
    position: absolute;
    left: 0;
    top: 40px;
    bottom: 40px;
    display: block;
    right: 0;
    width: auto;
    height: auto;
    z-index: -1;
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
    background: #444; }
  .mfp-figure small {
    color: #BDBDBD;
    display: block;
    font-size: 12px;
    line-height: 14px; }
  .mfp-figure figure {
    margin: 0; }

.mfp-bottom-bar {
  margin-top: -36px;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  cursor: auto; }

.mfp-title {
  text-align: left;
  line-height: 18px;
  color: #F3F3F3;
  word-wrap: break-word;
  padding-right: 36px; }

.mfp-image-holder .mfp-content {
  max-width: 100%; }

.mfp-gallery .mfp-image-holder .mfp-figure {
  cursor: pointer; }

@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
  /**
       * Remove all paddings around the image on small screen
       */
  .mfp-img-mobile .mfp-image-holder {
    padding-left: 0;
    padding-right: 0; }
  .mfp-img-mobile img.mfp-img {
    padding: 0; }
  .mfp-img-mobile .mfp-figure:after {
    top: 0;
    bottom: 0; }
  .mfp-img-mobile .mfp-figure small {
    display: inline;
    margin-left: 5px; }
  .mfp-img-mobile .mfp-bottom-bar {
    background: rgba(0, 0, 0, 0.6);
    bottom: 0;
    margin: 0;
    top: auto;
    padding: 3px 5px;
    position: fixed;
    box-sizing: border-box; }
    .mfp-img-mobile .mfp-bottom-bar:empty {
      padding: 0; }
  .mfp-img-mobile .mfp-counter {
    right: 5px;
    top: 3px; }
  .mfp-img-mobile .mfp-close {
    top: 0;
    right: 0;
    width: 35px;
    height: 35px;
    line-height: 35px;
    background: rgba(0, 0, 0, 0.6);
    position: fixed;
    text-align: center;
    padding: 0; } }

@media all and (max-width: 900px) {
  .mfp-arrow {
    -webkit-transform: scale(0.75);
    transform: scale(0.75); }
  .mfp-arrow-left {
    -webkit-transform-origin: 0;
    transform-origin: 0; }
  .mfp-arrow-right {
    -webkit-transform-origin: 100%;
    transform-origin: 100%; }
  .mfp-container {
    padding-left: 6px;
    padding-right: 6px; } }

/**
 * Custom user agent resets and overrides that are not present in
 * Normalize 7.0.0. This mostly removes some annoying margin and padding
 * defaults, border radius, and outlines.
 */
a {
  color: inherit;
  text-decoration: none; }

/**
 * 1. Remove border radius on Chrome 62.0+ on macOS.
 */
button {
  border: 0;
  border-radius: 0;
  outline: none;
  background: none;
  cursor: pointer; }

fieldset {
  margin: 0;
  padding: 0;
  border: 0; }

figure {
  margin: 0; }

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: inherit; }

hr {
  margin: 0;
  padding: 0; }

/**
 * 1. Remove white space.
 */
img {
  max-width: 100%;
  height: auto;
  vertical-align: middle; }

/**
 * 1. Remove inherited user agent appearance.
 */
input,
select,
textarea {
  max-width: 100%;
  border: 0;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }

/**
 * 1. Only allow vertical resizing to prevent the textarea
 *    from overflowing the container.
 */
textarea {
  resize: vertical; }

ul,
ol {
  margin: 0;
  padding: 0;
  list-style-type: none; }

p {
  margin: 0; }

/**
 * 1. Collapse borders to prevent double sided borders.
 */
table {
  max-width: 100%;
  border-collapse: collapse; }

strong {
  font-weight: 700; }

/**
 * Remove margin and padding from every selector including their
 * psuedo selectors.
 *
 * 1. More sensible default box sizing.
 *    (css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice).
 */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: inherit; }

/**
 * Set height of the document to maxium viewport height.
 *
 * 1. Set root font size to 10.
 */
html {
  height: 100vh;
  font-size: 62.5%;
  box-sizing: border-box; }

/**
 * Set minimal height of the body to maximum viewport height to
 * match the document's height.
 *
 * 1. Firefox 25+.
 * 2. Chrome 5+.
 */
body {
  font-size: 13px;
  font-size: 1.3rem;
  line-height: 1.53846em;
  min-height: 100vh;
  background-color: #ecf0f1;
  color: #4a6268;
  font-family: "Ubuntu", sans-serif;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased; }
  body.is-loaded {
    transition: 240ms ease-in;
    opacity: 1; }

/**
   * A better looking horizontal rule according to
   * (https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css).
   * Background color is defined in (settings/_settings.color.scss).
   */
hr {
  display: block;
  height: 1px;
  border: 0;
  background-color: #4a6268; }

/**
 * See (https://developer.mozilla.org/en-US/docs/Web/CSS/::placeholder) for
 * further reading on the placeholder selector.
 */
::-webkit-input-placeholder {
  color: inherit; }
:-ms-input-placeholder {
  color: inherit; }
::-ms-input-placeholder {
  color: inherit; }
::placeholder {
  color: inherit; }

/**
 * See (https://developer.mozilla.org/en-US/docs/Web/CSS/::selection) for
 * further reading on the selection selector.
 */
/**
 * The content constraint is a constraint for all the content within
 * the document. It can be manipulated by CSS or JavaScript without
 * influencing the body.
 */
.content-constraint {
  position: relative;
  min-height: calc(100vh - 406px); }

.content-constraint .wrapper {
  margin-bottom: 100px; }
  @media only screen and (max-width: 599px) {
    .content-constraint .wrapper {
      margin-bottom: 50px; } }
  .content-constraint .wrapper:first-child {
    margin-top: 100px; }
    @media only screen and (max-width: 599px) {
      .content-constraint .wrapper:first-child {
        margin-top: 50px; } }
  .content-constraint .wrapper.slideshow {
    margin-top: 0; }

/* ==========================================================================
   Flex
   ========================================================================== */
/**
 * Example of a flex based column grid layout in practice:
 *
 * <div class="row">
 *   <div class="col col-xs-6 col-sm-12"></div>
 *   <div class="col col-xs-6 col-sm-12"></div>
 * </div>
 *
 * This example will create a row with two columns each filling half the width
 * of the row on all media, but will convert to a full width column on the
 * small `-sm` breakpoint alias, which is mobile only. Refer to
 * `settings/_definitions.scss` for all breakpoint alias.
 */
/**
 * Flex object.
 *
 * Tip: Use flex on a column to make the box the same height as the column.
 */
.flex {
  display: flex; }

.flex-wrap {
  display: flex;
  flex-wrap: wrap; }

/**
 * Flex object with a column based layout system.
 */
.row {
  display: flex;
  flex: 0 1 auto;
  flex-flow: row wrap;
  margin: 0 -12.66667px; }

/**
 * Box, the inside of a column.
 */
.box {
  flex: 1; }

@media only screen and (max-width: 599px) {
  /**
       * Column 1 for the `sm` breakpoint.
       */
  .col-sm-1 {
    flex: 0 1 auto;
    width: column(1);
    padding: 0 12.66667px; }
  /**
         * Offset 1 for the `sm` breakpoint.
         */
  .offset-sm-1 {
    margin-left: column(1); }
  /**
       * Column 2 for the `sm` breakpoint.
       */
  .col-sm-2 {
    flex: 0 1 auto;
    width: column(2);
    padding: 0 12.66667px; }
  /**
         * Offset 2 for the `sm` breakpoint.
         */
  .offset-sm-2 {
    margin-left: column(2); }
  /**
       * Column 3 for the `sm` breakpoint.
       */
  .col-sm-3 {
    flex: 0 1 auto;
    width: column(3);
    padding: 0 12.66667px; }
  /**
         * Offset 3 for the `sm` breakpoint.
         */
  .offset-sm-3 {
    margin-left: column(3); }
  /**
       * Column 4 for the `sm` breakpoint.
       */
  .col-sm-4 {
    flex: 0 1 auto;
    width: column(4);
    padding: 0 12.66667px; }
  /**
         * Offset 4 for the `sm` breakpoint.
         */
  .offset-sm-4 {
    margin-left: column(4); }
  /**
       * Column 5 for the `sm` breakpoint.
       */
  .col-sm-5 {
    flex: 0 1 auto;
    width: column(5);
    padding: 0 12.66667px; }
  /**
         * Offset 5 for the `sm` breakpoint.
         */
  .offset-sm-5 {
    margin-left: column(5); }
  /**
       * Column 6 for the `sm` breakpoint.
       */
  .col-sm-6 {
    flex: 0 1 auto;
    width: column(6);
    padding: 0 12.66667px; }
  /**
         * Offset 6 for the `sm` breakpoint.
         */
  .offset-sm-6 {
    margin-left: column(6); }
  /**
       * Column 7 for the `sm` breakpoint.
       */
  .col-sm-7 {
    flex: 0 1 auto;
    width: column(7);
    padding: 0 12.66667px; }
  /**
         * Offset 7 for the `sm` breakpoint.
         */
  .offset-sm-7 {
    margin-left: column(7); }
  /**
       * Column 8 for the `sm` breakpoint.
       */
  .col-sm-8 {
    flex: 0 1 auto;
    width: column(8);
    padding: 0 12.66667px; }
  /**
         * Offset 8 for the `sm` breakpoint.
         */
  .offset-sm-8 {
    margin-left: column(8); }
  /**
       * Column 9 for the `sm` breakpoint.
       */
  .col-sm-9 {
    flex: 0 1 auto;
    width: column(9);
    padding: 0 12.66667px; }
  /**
         * Offset 9 for the `sm` breakpoint.
         */
  .offset-sm-9 {
    margin-left: column(9); }
  /**
       * Column 10 for the `sm` breakpoint.
       */
  .col-sm-10 {
    flex: 0 1 auto;
    width: column(10);
    padding: 0 12.66667px; }
  /**
         * Offset 10 for the `sm` breakpoint.
         */
  .offset-sm-10 {
    margin-left: column(10); }
  /**
       * Column 11 for the `sm` breakpoint.
       */
  .col-sm-11 {
    flex: 0 1 auto;
    width: column(11);
    padding: 0 12.66667px; }
  /**
         * Offset 11 for the `sm` breakpoint.
         */
  .offset-sm-11 {
    margin-left: column(11); }
  /**
       * Column 12 for the `sm` breakpoint.
       */
  .col-sm-12 {
    flex: 0 1 auto;
    width: column(12);
    padding: 0 12.66667px; }
  /**
       * Align `stretch` for the sm breakpoint.
       */
  .align-sm-stretch {
    align-items: stretch; }
  /**
       * Align `center` for the sm breakpoint.
       */
  .align-sm-center {
    align-items: center; }
  /**
       * Align `flex-start` for the sm breakpoint.
       */
  .align-sm-flex-start {
    align-items: flex-start; }
  /**
       * Align `flex-end` for the sm breakpoint.
       */
  .align-sm-flex-end {
    align-items: flex-end; }
  /**
       * Align `baseline` for the sm breakpoint.
       */
  .align-sm-baseline {
    align-items: baseline; }
  /**
       * Justify `start` for the sm breakpoint.
       */
  .justify-sm-start {
    justify-content: start; }
  /**
       * Justify `center` for the sm breakpoint.
       */
  .justify-sm-center {
    justify-content: center; }
  /**
       * Justify `space-between` for the sm breakpoint.
       */
  .justify-sm-space-between {
    justify-content: space-between; }
  /**
       * Justify `space-around` for the sm breakpoint.
       */
  .justify-sm-space-around {
    justify-content: space-around; }
  /**
       * Justify `space-evenly` for the sm breakpoint.
       */
  .justify-sm-space-evenly {
    justify-content: space-evenly; }
  /**
       * Justify `flex-start` for the sm breakpoint.
       */
  .justify-sm-flex-start {
    justify-content: flex-start; }
  /**
       * Justify `flex-end` for the sm breakpoint.
       */
  .justify-sm-flex-end {
    justify-content: flex-end; }
  /**
       * Bleed left for the sm breakpoint.
       */
  .bleed-sm-left {
    padding-left: 0; }
  /**
       * Bleed right for the sm breakpoint.
       */
  .bleed-sm-right {
    padding-right: 0; }
  /**
     * Order first for the `sm` breakpoint.
     */
  .first-sm {
    order: -1; }
  /**
     * Order last for the `sm` breakpoint.
     */
  .last-sm {
    order: 1; }
  /**
     * Reverse order for the `sm` breakpoint.
     */
  .reverse-sm {
    flex-direction: row-reverse; } }

@media only screen and (min-width: 600px) {
  /**
       * Column 1 for the `md` breakpoint.
       */
  .col-md-1 {
    flex: 0 1 auto;
    width: column(1);
    padding: 0 12.66667px; }
  /**
         * Offset 1 for the `md` breakpoint.
         */
  .offset-md-1 {
    margin-left: column(1); }
  /**
       * Column 2 for the `md` breakpoint.
       */
  .col-md-2 {
    flex: 0 1 auto;
    width: column(2);
    padding: 0 12.66667px; }
  /**
         * Offset 2 for the `md` breakpoint.
         */
  .offset-md-2 {
    margin-left: column(2); }
  /**
       * Column 3 for the `md` breakpoint.
       */
  .col-md-3 {
    flex: 0 1 auto;
    width: column(3);
    padding: 0 12.66667px; }
  /**
         * Offset 3 for the `md` breakpoint.
         */
  .offset-md-3 {
    margin-left: column(3); }
  /**
       * Column 4 for the `md` breakpoint.
       */
  .col-md-4 {
    flex: 0 1 auto;
    width: column(4);
    padding: 0 12.66667px; }
  /**
         * Offset 4 for the `md` breakpoint.
         */
  .offset-md-4 {
    margin-left: column(4); }
  /**
       * Column 5 for the `md` breakpoint.
       */
  .col-md-5 {
    flex: 0 1 auto;
    width: column(5);
    padding: 0 12.66667px; }
  /**
         * Offset 5 for the `md` breakpoint.
         */
  .offset-md-5 {
    margin-left: column(5); }
  /**
       * Column 6 for the `md` breakpoint.
       */
  .col-md-6 {
    flex: 0 1 auto;
    width: column(6);
    padding: 0 12.66667px; }
  /**
         * Offset 6 for the `md` breakpoint.
         */
  .offset-md-6 {
    margin-left: column(6); }
  /**
       * Column 7 for the `md` breakpoint.
       */
  .col-md-7 {
    flex: 0 1 auto;
    width: column(7);
    padding: 0 12.66667px; }
  /**
         * Offset 7 for the `md` breakpoint.
         */
  .offset-md-7 {
    margin-left: column(7); }
  /**
       * Column 8 for the `md` breakpoint.
       */
  .col-md-8 {
    flex: 0 1 auto;
    width: column(8);
    padding: 0 12.66667px; }
  /**
         * Offset 8 for the `md` breakpoint.
         */
  .offset-md-8 {
    margin-left: column(8); }
  /**
       * Column 9 for the `md` breakpoint.
       */
  .col-md-9 {
    flex: 0 1 auto;
    width: column(9);
    padding: 0 12.66667px; }
  /**
         * Offset 9 for the `md` breakpoint.
         */
  .offset-md-9 {
    margin-left: column(9); }
  /**
       * Column 10 for the `md` breakpoint.
       */
  .col-md-10 {
    flex: 0 1 auto;
    width: column(10);
    padding: 0 12.66667px; }
  /**
         * Offset 10 for the `md` breakpoint.
         */
  .offset-md-10 {
    margin-left: column(10); }
  /**
       * Column 11 for the `md` breakpoint.
       */
  .col-md-11 {
    flex: 0 1 auto;
    width: column(11);
    padding: 0 12.66667px; }
  /**
         * Offset 11 for the `md` breakpoint.
         */
  .offset-md-11 {
    margin-left: column(11); }
  /**
       * Column 12 for the `md` breakpoint.
       */
  .col-md-12 {
    flex: 0 1 auto;
    width: column(12);
    padding: 0 12.66667px; }
  /**
       * Align `stretch` for the md breakpoint.
       */
  .align-md-stretch {
    align-items: stretch; }
  /**
       * Align `center` for the md breakpoint.
       */
  .align-md-center {
    align-items: center; }
  /**
       * Align `flex-start` for the md breakpoint.
       */
  .align-md-flex-start {
    align-items: flex-start; }
  /**
       * Align `flex-end` for the md breakpoint.
       */
  .align-md-flex-end {
    align-items: flex-end; }
  /**
       * Align `baseline` for the md breakpoint.
       */
  .align-md-baseline {
    align-items: baseline; }
  /**
       * Justify `start` for the md breakpoint.
       */
  .justify-md-start {
    justify-content: start; }
  /**
       * Justify `center` for the md breakpoint.
       */
  .justify-md-center {
    justify-content: center; }
  /**
       * Justify `space-between` for the md breakpoint.
       */
  .justify-md-space-between {
    justify-content: space-between; }
  /**
       * Justify `space-around` for the md breakpoint.
       */
  .justify-md-space-around {
    justify-content: space-around; }
  /**
       * Justify `space-evenly` for the md breakpoint.
       */
  .justify-md-space-evenly {
    justify-content: space-evenly; }
  /**
       * Justify `flex-start` for the md breakpoint.
       */
  .justify-md-flex-start {
    justify-content: flex-start; }
  /**
       * Justify `flex-end` for the md breakpoint.
       */
  .justify-md-flex-end {
    justify-content: flex-end; }
  /**
       * Bleed left for the md breakpoint.
       */
  .bleed-md-left {
    padding-left: 0; }
  /**
       * Bleed right for the md breakpoint.
       */
  .bleed-md-right {
    padding-right: 0; }
  /**
     * Order first for the `md` breakpoint.
     */
  .first-md {
    order: -1; }
  /**
     * Order last for the `md` breakpoint.
     */
  .last-md {
    order: 1; }
  /**
     * Reverse order for the `md` breakpoint.
     */
  .reverse-md {
    flex-direction: row-reverse; } }

@media only screen and (min-width: 900px) {
  /**
       * Column 1 for the `lg` breakpoint.
       */
  .col-lg-1 {
    flex: 0 1 auto;
    width: column(1);
    padding: 0 12.66667px; }
  /**
         * Offset 1 for the `lg` breakpoint.
         */
  .offset-lg-1 {
    margin-left: column(1); }
  /**
       * Column 2 for the `lg` breakpoint.
       */
  .col-lg-2 {
    flex: 0 1 auto;
    width: column(2);
    padding: 0 12.66667px; }
  /**
         * Offset 2 for the `lg` breakpoint.
         */
  .offset-lg-2 {
    margin-left: column(2); }
  /**
       * Column 3 for the `lg` breakpoint.
       */
  .col-lg-3 {
    flex: 0 1 auto;
    width: column(3);
    padding: 0 12.66667px; }
  /**
         * Offset 3 for the `lg` breakpoint.
         */
  .offset-lg-3 {
    margin-left: column(3); }
  /**
       * Column 4 for the `lg` breakpoint.
       */
  .col-lg-4 {
    flex: 0 1 auto;
    width: column(4);
    padding: 0 12.66667px; }
  /**
         * Offset 4 for the `lg` breakpoint.
         */
  .offset-lg-4 {
    margin-left: column(4); }
  /**
       * Column 5 for the `lg` breakpoint.
       */
  .col-lg-5 {
    flex: 0 1 auto;
    width: column(5);
    padding: 0 12.66667px; }
  /**
         * Offset 5 for the `lg` breakpoint.
         */
  .offset-lg-5 {
    margin-left: column(5); }
  /**
       * Column 6 for the `lg` breakpoint.
       */
  .col-lg-6 {
    flex: 0 1 auto;
    width: column(6);
    padding: 0 12.66667px; }
  /**
         * Offset 6 for the `lg` breakpoint.
         */
  .offset-lg-6 {
    margin-left: column(6); }
  /**
       * Column 7 for the `lg` breakpoint.
       */
  .col-lg-7 {
    flex: 0 1 auto;
    width: column(7);
    padding: 0 12.66667px; }
  /**
         * Offset 7 for the `lg` breakpoint.
         */
  .offset-lg-7 {
    margin-left: column(7); }
  /**
       * Column 8 for the `lg` breakpoint.
       */
  .col-lg-8 {
    flex: 0 1 auto;
    width: column(8);
    padding: 0 12.66667px; }
  /**
         * Offset 8 for the `lg` breakpoint.
         */
  .offset-lg-8 {
    margin-left: column(8); }
  /**
       * Column 9 for the `lg` breakpoint.
       */
  .col-lg-9 {
    flex: 0 1 auto;
    width: column(9);
    padding: 0 12.66667px; }
  /**
         * Offset 9 for the `lg` breakpoint.
         */
  .offset-lg-9 {
    margin-left: column(9); }
  /**
       * Column 10 for the `lg` breakpoint.
       */
  .col-lg-10 {
    flex: 0 1 auto;
    width: column(10);
    padding: 0 12.66667px; }
  /**
         * Offset 10 for the `lg` breakpoint.
         */
  .offset-lg-10 {
    margin-left: column(10); }
  /**
       * Column 11 for the `lg` breakpoint.
       */
  .col-lg-11 {
    flex: 0 1 auto;
    width: column(11);
    padding: 0 12.66667px; }
  /**
         * Offset 11 for the `lg` breakpoint.
         */
  .offset-lg-11 {
    margin-left: column(11); }
  /**
       * Column 12 for the `lg` breakpoint.
       */
  .col-lg-12 {
    flex: 0 1 auto;
    width: column(12);
    padding: 0 12.66667px; }
  /**
       * Align `stretch` for the lg breakpoint.
       */
  .align-lg-stretch {
    align-items: stretch; }
  /**
       * Align `center` for the lg breakpoint.
       */
  .align-lg-center {
    align-items: center; }
  /**
       * Align `flex-start` for the lg breakpoint.
       */
  .align-lg-flex-start {
    align-items: flex-start; }
  /**
       * Align `flex-end` for the lg breakpoint.
       */
  .align-lg-flex-end {
    align-items: flex-end; }
  /**
       * Align `baseline` for the lg breakpoint.
       */
  .align-lg-baseline {
    align-items: baseline; }
  /**
       * Justify `start` for the lg breakpoint.
       */
  .justify-lg-start {
    justify-content: start; }
  /**
       * Justify `center` for the lg breakpoint.
       */
  .justify-lg-center {
    justify-content: center; }
  /**
       * Justify `space-between` for the lg breakpoint.
       */
  .justify-lg-space-between {
    justify-content: space-between; }
  /**
       * Justify `space-around` for the lg breakpoint.
       */
  .justify-lg-space-around {
    justify-content: space-around; }
  /**
       * Justify `space-evenly` for the lg breakpoint.
       */
  .justify-lg-space-evenly {
    justify-content: space-evenly; }
  /**
       * Justify `flex-start` for the lg breakpoint.
       */
  .justify-lg-flex-start {
    justify-content: flex-start; }
  /**
       * Justify `flex-end` for the lg breakpoint.
       */
  .justify-lg-flex-end {
    justify-content: flex-end; }
  /**
       * Bleed left for the lg breakpoint.
       */
  .bleed-lg-left {
    padding-left: 0; }
  /**
       * Bleed right for the lg breakpoint.
       */
  .bleed-lg-right {
    padding-right: 0; }
  /**
     * Order first for the `lg` breakpoint.
     */
  .first-lg {
    order: -1; }
  /**
     * Order last for the `lg` breakpoint.
     */
  .last-lg {
    order: 1; }
  /**
     * Reverse order for the `lg` breakpoint.
     */
  .reverse-lg {
    flex-direction: row-reverse; } }

@media only screen and (min-width: 1200px) {
  /**
       * Column 1 for the `xl` breakpoint.
       */
  .col-xl-1 {
    flex: 0 1 auto;
    width: column(1);
    padding: 0 12.66667px; }
  /**
         * Offset 1 for the `xl` breakpoint.
         */
  .offset-xl-1 {
    margin-left: column(1); }
  /**
       * Column 2 for the `xl` breakpoint.
       */
  .col-xl-2 {
    flex: 0 1 auto;
    width: column(2);
    padding: 0 12.66667px; }
  /**
         * Offset 2 for the `xl` breakpoint.
         */
  .offset-xl-2 {
    margin-left: column(2); }
  /**
       * Column 3 for the `xl` breakpoint.
       */
  .col-xl-3 {
    flex: 0 1 auto;
    width: column(3);
    padding: 0 12.66667px; }
  /**
         * Offset 3 for the `xl` breakpoint.
         */
  .offset-xl-3 {
    margin-left: column(3); }
  /**
       * Column 4 for the `xl` breakpoint.
       */
  .col-xl-4 {
    flex: 0 1 auto;
    width: column(4);
    padding: 0 12.66667px; }
  /**
         * Offset 4 for the `xl` breakpoint.
         */
  .offset-xl-4 {
    margin-left: column(4); }
  /**
       * Column 5 for the `xl` breakpoint.
       */
  .col-xl-5 {
    flex: 0 1 auto;
    width: column(5);
    padding: 0 12.66667px; }
  /**
         * Offset 5 for the `xl` breakpoint.
         */
  .offset-xl-5 {
    margin-left: column(5); }
  /**
       * Column 6 for the `xl` breakpoint.
       */
  .col-xl-6 {
    flex: 0 1 auto;
    width: column(6);
    padding: 0 12.66667px; }
  /**
         * Offset 6 for the `xl` breakpoint.
         */
  .offset-xl-6 {
    margin-left: column(6); }
  /**
       * Column 7 for the `xl` breakpoint.
       */
  .col-xl-7 {
    flex: 0 1 auto;
    width: column(7);
    padding: 0 12.66667px; }
  /**
         * Offset 7 for the `xl` breakpoint.
         */
  .offset-xl-7 {
    margin-left: column(7); }
  /**
       * Column 8 for the `xl` breakpoint.
       */
  .col-xl-8 {
    flex: 0 1 auto;
    width: column(8);
    padding: 0 12.66667px; }
  /**
         * Offset 8 for the `xl` breakpoint.
         */
  .offset-xl-8 {
    margin-left: column(8); }
  /**
       * Column 9 for the `xl` breakpoint.
       */
  .col-xl-9 {
    flex: 0 1 auto;
    width: column(9);
    padding: 0 12.66667px; }
  /**
         * Offset 9 for the `xl` breakpoint.
         */
  .offset-xl-9 {
    margin-left: column(9); }
  /**
       * Column 10 for the `xl` breakpoint.
       */
  .col-xl-10 {
    flex: 0 1 auto;
    width: column(10);
    padding: 0 12.66667px; }
  /**
         * Offset 10 for the `xl` breakpoint.
         */
  .offset-xl-10 {
    margin-left: column(10); }
  /**
       * Column 11 for the `xl` breakpoint.
       */
  .col-xl-11 {
    flex: 0 1 auto;
    width: column(11);
    padding: 0 12.66667px; }
  /**
         * Offset 11 for the `xl` breakpoint.
         */
  .offset-xl-11 {
    margin-left: column(11); }
  /**
       * Column 12 for the `xl` breakpoint.
       */
  .col-xl-12 {
    flex: 0 1 auto;
    width: column(12);
    padding: 0 12.66667px; }
  /**
       * Align `stretch` for the xl breakpoint.
       */
  .align-xl-stretch {
    align-items: stretch; }
  /**
       * Align `center` for the xl breakpoint.
       */
  .align-xl-center {
    align-items: center; }
  /**
       * Align `flex-start` for the xl breakpoint.
       */
  .align-xl-flex-start {
    align-items: flex-start; }
  /**
       * Align `flex-end` for the xl breakpoint.
       */
  .align-xl-flex-end {
    align-items: flex-end; }
  /**
       * Align `baseline` for the xl breakpoint.
       */
  .align-xl-baseline {
    align-items: baseline; }
  /**
       * Justify `start` for the xl breakpoint.
       */
  .justify-xl-start {
    justify-content: start; }
  /**
       * Justify `center` for the xl breakpoint.
       */
  .justify-xl-center {
    justify-content: center; }
  /**
       * Justify `space-between` for the xl breakpoint.
       */
  .justify-xl-space-between {
    justify-content: space-between; }
  /**
       * Justify `space-around` for the xl breakpoint.
       */
  .justify-xl-space-around {
    justify-content: space-around; }
  /**
       * Justify `space-evenly` for the xl breakpoint.
       */
  .justify-xl-space-evenly {
    justify-content: space-evenly; }
  /**
       * Justify `flex-start` for the xl breakpoint.
       */
  .justify-xl-flex-start {
    justify-content: flex-start; }
  /**
       * Justify `flex-end` for the xl breakpoint.
       */
  .justify-xl-flex-end {
    justify-content: flex-end; }
  /**
       * Bleed left for the xl breakpoint.
       */
  .bleed-xl-left {
    padding-left: 0; }
  /**
       * Bleed right for the xl breakpoint.
       */
  .bleed-xl-right {
    padding-right: 0; }
  /**
     * Order first for the `xl` breakpoint.
     */
  .first-xl {
    order: -1; }
  /**
     * Order last for the `xl` breakpoint.
     */
  .last-xl {
    order: 1; }
  /**
     * Reverse order for the `xl` breakpoint.
     */
  .reverse-xl {
    flex-direction: row-reverse; } }

.page {
  position: relative;
  padding-top: 130px; }

/**
 * Visually hide content until document is ready.
 */
.page:not(.ready) {
  opacity: 0; }

/* ==========================================================================
   Button
   ========================================================================== */
/**
 * Default button.
 */
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 17px 15px 18px;
  transition: opacity 140ms ease-out;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 300;
  line-height: 0;
  text-align: center;
  text-shadow: none;
  text-transform: uppercase; }
  .button:hover {
    opacity: 0.75; }
  .button::before {
    margin-right: 10px;
    font-size: 24px; }
  .button::after {
    margin-left: 10px;
    font-size: 24px; }

.button--small {
  padding: 11px 15px; }

.menu-desktop {
  width: calc(100% - 286px); }
  @media only screen and (min-width: 900px) {
    .menu-desktop {
      display: block; } }
  @media only screen and (max-width: 1199px) {
    .menu-desktop {
      width: 100%; } }
  @media only screen and (max-width: 899px) {
    .menu-desktop {
      display: none; } }

@media only screen and (min-width: 1200px) {
  .menu-desktop .menu-container {
    display: flex;
    align-items: center;
    justify-content: flex-end; } }

.menu-mobile {
  width: 100%; }
  @media only screen and (max-width: 899px) {
    .menu-mobile {
      display: block;
      width: auto; } }
  @media only screen and (min-width: 900px) {
    .menu-mobile {
      display: none; } }

.menu-mobile .menu-main-container {
  max-height: calc(100vh - 180px);
  padding: 30px 0;
  overflow-y: scroll; }

.menu-mobile .menu-main-container .menu-item > .sub-menu {
  display: none; }

.menu-mobile .menu-main-container .menu-item-has-children.is-active .menu-item__arrow {
  -webkit-transform: rotate(0);
          transform: rotate(0); }

.menu-mobile .menu-main-container .menu-item-has-children > a {
  position: relative;
  padding-right: 20px; }

.menu-mobile .menu-main-container .menu-item-has-children .menu-item__arrow {
  display: flex;
  position: absolute;
  top: 0;
  right: -30px;
  align-items: center;
  width: 30px;
  height: 40px;
  transition: -webkit-transform 120ms;
  transition: transform 120ms;
  transition: transform 120ms, -webkit-transform 120ms;
  -webkit-transform: rotate(-180deg);
          transform: rotate(-180deg);
  z-index: 9; }
  .menu-mobile .menu-main-container .menu-item-has-children .menu-item__arrow svg {
    display: inline-block;
    width: 30px;
    height: 30px;
    pointer-events: none; }

.menu-mobile .menu-main-container .menu-item > .sub-menu .menu-item > a {
  font-size: 14px;
  text-transform: none; }

.header {
  position: fixed;
  top: 50px;
  left: 0;
  width: 100%;
  height: 82px;
  background-color: white;
  z-index: 90; }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .header {
      height: auto; } }

.header .wrapper {
  display: flex;
  position: relative;
  flex-wrap: wrap;
  align-items: center; }
  @media only screen and (max-width: 899px) {
    .header .wrapper {
      justify-content: space-between;
      height: 100%; } }

/**
 * Desktop navigation
 */
.menu-desktop .menu {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  height: 82px; }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .menu-desktop .menu {
      justify-content: center;
      height: 52px; } }

.menu-desktop .menu .menu-item > a {
  position: relative;
  margin: 0 12.5px;
  padding-bottom: 10px;
  text-transform: uppercase;
  border-bottom-style: none; }
  .menu-desktop .menu .menu-item > a:hover {
    border-bottom-width: 2px;
    border-bottom-style: solid; }

.menu-desktop .menu .current-menu-item > a,
.menu-desktop .menu .current-menu-parent > a {
  border-bottom-width: 2px;
  border-bottom-style: solid;
  font-weight: 700; }

.menu-desktop .menu-item > .sub-menu {
  position: absolute;
  width: 236px;
  padding: 15px 30px;
  transition: opacity 250ms, -webkit-transform 250ms;
  transition: opacity 250ms, transform 250ms;
  transition: opacity 250ms, transform 250ms, -webkit-transform 250ms;
  border-radius: 8px;
  box-shadow: 0 0 7px 0 rgba(0, 0, 0, 0.18);
  opacity: 0;
  z-index: 90;
  pointer-events: none; }
  .menu-desktop .menu-item > .sub-menu::before {
    display: block;
    position: absolute;
    top: -20px;
    left: 0;
    width: 100%;
    height: 20px;
    content: ''; }

.menu-desktop .menu-item:hover > .sub-menu {
  -webkit-transform: translateY(20px);
          transform: translateY(20px);
  opacity: 1;
  pointer-events: all; }

.menu-desktop .menu-item > .sub-menu .menu-item > a {
  display: inline-block;
  width: 100%;
  padding: 10px 0;
  border-bottom: 1px solid white;
  text-transform: none;
  color: white; }
  .menu-desktop .menu-item > .sub-menu .menu-item > a:hover {
    color: black; }

.menu-desktop .menu-item > .sub-menu .menu-item:last-child > a {
  border-bottom: 0; }

/**
 * Mobile navigation
 */
.menu-button {
  font-size: 24px; }
  .menu-button .is-closed {
    display: block;
    pointer-events: none; }
    .menu-button .is-closed > .inline-icon {
      width: 21px;
      height: 24px; }
  .menu-button .is-open {
    display: none;
    pointer-events: none; }
    .menu-button .is-open > .inline-icon {
      width: 15px;
      height: 24px; }
  .menu-button.is-active > .is-closed {
    display: none; }
  .menu-button.is-active > .is-open {
    display: block; }

.menu-mobile-wrapper {
  display: none;
  position: absolute;
  top: 82px;
  left: 0;
  width: 100%;
  padding-bottom: 34px;
  background-color: white;
  z-index: 10; }

.menu-mobile-wrapper-line {
  position: absolute;
  bottom: 0;
  left: calc(50% - 60px);
  width: 120px;
  height: 4px;
  content: ''; }

.menu-mobile .menu .menu-item {
  text-align: center; }

.menu-mobile .menu .menu-item > a {
  display: inline-block;
  padding: 10px 0;
  font-size: 16px;
  text-align: center;
  text-transform: uppercase;
  border-bottom-style: none; }

.mobile-menu-logo {
  display: inline-block;
  width: 100%;
  text-align: center; }

.logo {
  width: 286px; }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .logo {
      margin: 0 auto; } }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .logo {
      margin-top: 10px; } }
  .logo > a {
    display: flex;
    max-height: 80px; }
  .logo img {
    max-height: 80px; }

/* ==========================================================================
   Contact Buttons
   ========================================================================== */
/**
 * Contact buttons.
 */
.contact-buttons {
  display: flex;
  position: fixed;
  right: 7px;
  flex-direction: column;
  color: white;
  z-index: 70; }
  @media only screen and (min-width: 1421px) {
    .contact-buttons {
      margin-left: 7px; } }
  @media only screen and (min-width: 600px) {
    .contact-buttons {
      top: 355px; } }
  @media only screen and (max-width: 599px) {
    .contact-buttons {
      top: 200px; } }

/**
 * Button.
 */
.contact-buttons__button {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1em;
  display: inline-flex;
  position: relative;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  transition: opacity 140ms ease-out;
  border-radius: 22px;
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.06); }
  .contact-buttons__button:hover {
    opacity: 0.5; }

.contact-buttons__button::after {
  position: absolute;
  top: calc(50%-(8px/2));
  right: -3px;
  width: 8px;
  height: 8px;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  background-color: inherit;
  content: '';
  opacity: 1; }

.contact-buttons__button:not(:last-child) {
  margin-bottom: 7px; }

.slideshow {
  display: block;
  position: relative; }
  .slideshow .owl-dots {
    display: flex;
    position: absolute;
    bottom: 25px;
    align-items: center;
    justify-content: center;
    width: 100%;
    text-align: center; }
  .slideshow .owl-dot {
    width: 9px;
    height: 9px;
    margin: 0 3px;
    transition: opacity 250ms;
    border-radius: 50%;
    background-color: white;
    opacity: 0.6; }
    .slideshow .owl-dot:hover {
      opacity: 1; }
    .slideshow .owl-dot.active {
      width: 11px;
      height: 11px;
      opacity: 1; }

.slide__image {
  position: relative;
  height: 440px; }
  @media only screen and (max-width: 1199px) {
    .slide__image {
      height: 375px; } }
  @media only screen and (max-width: 899px) {
    .slide__image {
      height: 275px; } }
  @media only screen and (max-width: 599px) {
    .slide__image {
      height: 200px; } }

.slide-progress {
  display: block;
  position: absolute;
  right: 0;
  width: 4px;
  height: 0;
  max-height: 100%;
  z-index: 10; }

.slide {
  position: relative; }

.slide__content {
  font-size: 22px;
  font-size: 2.2rem;
  line-height: 1.54545em;
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
  flex-direction: column;
  justify-content: flex-end;
  max-width: 50%;
  height: 100%;
  padding: 40px;
  background: linear-gradient(to right, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0) 100%);
  color: white;
  text-shadow: 0 0 2px rgba(0, 0, 0, 0.9); }

.slide__editor {
  margin-bottom: 20px; }

.teaser__items {
  display: flex;
  flex-wrap: wrap;
  margin: -8px; }
  @media only screen and (max-width: 599px) {
    .teaser__items {
      margin: -2.5px; } }

.teaser {
  width: 16.6667%;
  padding: 8px;
  transition: opacity 250ms;
  opacity: 1; }
  @media only screen and (max-width: 899px) {
    .teaser {
      width: 33.3334%; } }
  @media only screen and (max-width: 599px) {
    .teaser {
      padding: 2.5px; } }
  .teaser:hover {
    opacity: 0.6; }

.teaser__image img {
  width: 100%; }

.teaser__subtitle {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5625em; }

.content-default {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.75em; }

@media only screen and (max-width: 1199px) {
  .text-image {
    padding-right: 0 !important;
    padding-left: 0 !important; } }

/**
 * Columns
 */
.text-image__columns {
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.06); }
  .text-image__columns.no-box-shadow {
    box-shadow: none; }

/**
 * Image
 */
@media only screen and (max-width: 599px) {
  .text-image__image {
    padding-bottom: 80%; } }

/**
 * Text
 */
.text-image__text {
  padding: 55px 75px; }
  @media only screen and (max-width: 599px) {
    .text-image__text {
      padding: 40px 30px; } }
  @media only screen and (max-width: 899px) {
    .text-image__text {
      padding: 55px 45px; } }

/**
 * Editor.
 */
.text-image__editor {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.85714em; }

/**
 * Button.
 */
.text-image__button {
  margin-top: 20px; }

/**
 * Quote.
 */
.text-image__quote {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.55556em;
  position: relative;
  padding: 27px 75px;
  font-style: italic; }
  @media only screen and (max-width: 599px) {
    .text-image__quote {
      padding-top: 60px;
      padding-bottom: 60px;
      text-align: center; } }
  .text-image__quote:not(.text-image__quote--empty)::before {
    display: none;
    font-family: "Font Awesome 5 Solid";
    content: '\f10d'; }
  .text-image__quote:not(.text-image__quote--empty)::after {
    display: none;
    font-family: "Font Awesome 5 Solid";
    content: '\f10e'; }
  .text-image__quote .svg-inline--fa {
    position: absolute; }
    @media only screen and (max-width: 599px) {
      .text-image__quote .svg-inline--fa {
        width: 100%;
        text-align: center; } }
    .text-image__quote .svg-inline--fa:first-child {
      top: 20px;
      left: 20px; }
      @media only screen and (max-width: 599px) {
        .text-image__quote .svg-inline--fa:first-child {
          left: 0; } }
    .text-image__quote .svg-inline--fa:last-child {
      right: 20px;
      bottom: 20px; }
      @media only screen and (max-width: 599px) {
        .text-image__quote .svg-inline--fa:last-child {
          right: 0; } }

.text-image__quote--desktop {
  display: block; }
  @media only screen and (max-width: 899px) {
    .text-image__quote--desktop {
      display: none; } }

.text-image__quote--tablet {
  display: none; }
  @media only screen and (max-width: 899px) {
    .text-image__quote--tablet {
      display: block; } }

.text-image__quote--empty {
  padding: 5px; }

.columns {
  display: flex;
  flex-wrap: wrap; }
  @media only screen and (max-width: 599px) {
    .columns {
      flex-direction: column-reverse; } }
  .columns.text_position--right {
    flex-direction: row-reverse; }
    @media only screen and (max-width: 599px) {
      .columns.text_position--right {
        flex-direction: column-reverse; } }
  .columns.text_alignment--right {
    text-align: right; }
    @media only screen and (max-width: 599px) {
      .columns.text_alignment--right {
        text-align: left; } }

.column {
  position: relative;
  width: 50%; }
  @media only screen and (max-width: 599px) {
    .column {
      width: 100%; } }

.news-list__items {
  display: flex;
  flex-wrap: wrap;
  margin: -15px; }
  .news-list__items .news-item {
    width: 33.3334%;
    padding: 15px; }

@media only screen and (max-width: 599px) {
  .news-latest {
    text-align: center; } }

@media only screen and (max-width: 599px) {
  .news-latest__items {
    position: relative;
    padding: 0 50px; } }

.news-latest__items .owl-nav {
  display: flex;
  position: absolute;
  top: calc(50% - 60px);
  left: 0;
  justify-content: space-between;
  width: 100%; }

.news-latest__items .owl-prev::before {
  display: none;
  font-family: "Font Awesome 5 Light";
  content: '\f104'; }

.news-latest__items .owl-next::before {
  display: none;
  font-family: "Font Awesome 5 Light";
  content: '\f105'; }

.news-latest__items .owl-prev,
.news-latest__items .owl-next {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 35px;
  height: 35px;
  border: 1px solid black;
  border-radius: 50%; }
  .news-latest__items .owl-prev .svg-inline--fa,
  .news-latest__items .owl-next .svg-inline--fa {
    width: 20px;
    height: 20px; }

.news-item {
  display: block; }

.news-item__title {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1.16667em; }

.news-item__more {
  color: white; }
  .news-item__more .inline-icon {
    margin-left: 5px;
    margin-top: 1px; }

.news-single__image img {
  width: 100%; }

.news-single__images {
  display: flex;
  flex-wrap: wrap;
  margin: 8px -2px; }

.news-single__image-small {
  width: 25%;
  padding: 2px; }

.pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 20px; }

.pagination .page-numbers {
  margin: 0 3px;
  padding: 5px 12px;
  transition: 200ms;
  border-radius: 4px;
  background-color: white; }

.pagination .prev,
.pagination .next {
  display: none; }

.slide-teasers__items {
  position: relative;
  padding: 0 50px; }
  .slide-teasers__items .owl-nav {
    display: flex !important;
    position: absolute;
    top: 60px;
    left: -50px;
    justify-content: space-between;
    width: calc(100% + 100px); }
    @media only screen and (max-width: 899px) {
      .slide-teasers__items .owl-nav {
        top: calc(50% - 60px); } }
    @media only screen and (max-width: 599px) {
      .slide-teasers__items .owl-nav {
        top: calc(50% - 80px); } }
  .slide-teasers__items .owl-prev::before {
    display: none;
    font-family: "Font Awesome 5 Light";
    content: '\f104'; }
  .slide-teasers__items .owl-next::before {
    display: none;
    font-family: "Font Awesome 5 Light";
    content: '\f105'; }
  .slide-teasers__items .owl-prev,
  .slide-teasers__items .owl-next {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 35px;
    height: 35px;
    border: 1px solid black;
    border-radius: 50%; }
    .slide-teasers__items .owl-prev .svg-inline--fa,
    .slide-teasers__items .owl-next .svg-inline--fa {
      width: 20px;
      height: 20px; }

/**
 * Title.
 */
.slide-teasers__title {
  font-size: 22px;
  font-size: 2.2rem;
  line-height: 1.54545em; }

/**
 * Description.
 */
.slide-teasers__description {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.85714em; }

.form {
  display: block; }
  .form label {
    font-size: 14px;
    font-size: 1.4rem;
    line-height: 1.85714em;
    display: inline-block;
    margin-bottom: 10px; }
  .form input,
  .form textarea {
    width: 100%;
    margin-bottom: 20px;
    padding: 15px;
    border-radius: 8px;
    background-color: white;
    font-family: "Ubuntu", sans-serif;
    box-shadow: 0 0 9px 0 rgba(0, 0, 0, 0.05); }
  .form input[type='submit'] {
    width: auto;
    padding: 20px 15px;
    cursor: pointer; }
  .form .gform_validation_container {
    display: none;
    position: absolute;
    right: -99999px;
    opacity: 0; }
  .form .ginput_recaptcha {
    margin-top: -20px;
    margin-bottom: 20px; }

.footer {
  background-color: white; }
  @media only screen and (max-width: 599px) {
    .footer {
      text-align: center; } }

/**
 * Footer top
 */
.footer__top {
  display: flex;
  flex-wrap: wrap;
  margin: -10px;
  padding-top: 75px;
  padding-bottom: 50px; }
  @media only screen and (max-width: 599px) {
    .footer__top {
      flex-wrap: wrap;
      padding-top: 50px; } }
  @media only screen and (max-width: 899px) {
    .footer__top {
      display: flex;
      flex-wrap: wrap; } }

.footer__top > .footer__columns {
  width: 60%;
  padding: 10px; }
  @media only screen and (max-width: 899px) {
    .footer__top > .footer__columns {
      width: 100%; } }

.footer__top > .footer__column {
  width: 20%;
  padding: 10px; }
  @media only screen and (max-width: 899px) {
    .footer__top > .footer__column {
      width: 50%; } }
  @media only screen and (max-width: 599px) {
    .footer__top > .footer__column {
      width: 100%; } }

.footer__top > .footer__phone-email {
  width: 20%;
  padding: 10px; }
  @media only screen and (max-width: 899px) {
    .footer__top > .footer__phone-email {
      width: 50%;
      padding-left: 10px; } }
  @media only screen and (max-width: 599px) {
    .footer__top > .footer__phone-email {
      width: 100%;
      padding-left: 0; } }

/**
 * Footer bottom
 */
.footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding-bottom: 25px; }
  @media only screen and (max-width: 599px) {
    .footer__bottom {
      flex-wrap: wrap; } }
  .footer__bottom > div > p,
  .footer__bottom > div > a,
  .footer__bottom > div > div,
  .footer__bottom > div > span {
    opacity: 0.6; }

/**
 * Footer bottom left
 */
.footer__bottom-left {
  display: flex;
  flex-wrap: wrap; }
  @media only screen and (max-width: 599px) {
    .footer__bottom-left {
      width: 100%; } }

/**
 * Footer bottom right
 */
@media only screen and (max-width: 599px) {
  .footer__bottom-right {
    width: 100%; } }

/**
 * Footer columns
 */
.footer__columns {
  display: flex;
  flex-wrap: wrap; }
  @media only screen and (max-width: 899px) {
    .footer__columns {
      width: 100%;
      margin-bottom: 50px; } }
  @media only screen and (max-width: 599px) {
    .footer__columns {
      grid-template-columns: 1fr;
      margin-bottom: 0; } }

@media only screen and (max-width: 599px) {
  .footer__column {
    margin-bottom: 25px; } }

/**
 * Footer woodspecies.
 */
.footer__woodspecies {
  display: flex;
  flex-wrap: wrap; }

.footer__woodspecies > .footer__nav {
  width: 33.3334%; }
  @media only screen and (max-width: 1199px) {
    .footer__woodspecies > .footer__nav {
      width: 50%; } }
  @media only screen and (max-width: 899px) {
    .footer__woodspecies > .footer__nav {
      width: 33.3334%; } }
  @media only screen and (max-width: 599px) {
    .footer__woodspecies > .footer__nav {
      width: 100%; } }

.footer__columns--woodspecies > .footer__column:nth-child(1) {
  width: 25%; }
  @media only screen and (max-width: 599px) {
    .footer__columns--woodspecies > .footer__column:nth-child(1) {
      width: 100%; } }

.footer__columns--woodspecies > .footer__column:nth-child(2) {
  width: 75%; }
  @media only screen and (max-width: 599px) {
    .footer__columns--woodspecies > .footer__column:nth-child(2) {
      width: 100%; } }

/**
 * Footer title
 */
.footer__title {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.125em; }

/**
 * Footer nav
 */
.footer__nav {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.71429em; }
  .footer__nav a {
    border-bottom-style: none; }

/**
 * Footer contact info
 */
.footer__contact-info {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.71429em; }

.footer__contact-title {
  font-size: 12px;
  font-size: 1.2rem;
  line-height: 2em; }

.footer__contact-text {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.33333em; }

/**
 * Footer logo
 */
.footer__logo {
  margin-top: -20px; }
  @media only screen and (max-width: 599px) {
    .footer__logo {
      width: 100%;
      margin-bottom: 10px; } }

.footer__logo img {
  margin-right: 20px; }
  @media only screen and (max-width: 599px) {
    .footer__logo img {
      margin-right: 0; } }

@media only screen and (max-width: 599px) {
  .footer__copyright {
    width: 100%;
    margin-bottom: 10px; } }

.social-icons {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.55556em;
  display: flex;
  padding-top: 20px; }
  @media only screen and (max-width: 599px) {
    .social-icons {
      justify-content: center; } }

.social-icon {
  width: 20px;
  margin: 0 2px; }
  .social-icon:first-child {
    margin-left: 0; }
  .social-icon:last-child {
    margin-right: 0; }
  .social-icon > svg.inline-icon {
    width: 100%;
    height: 100%; }

.social-icon--facebook {
  color: #3b5998; }

.social-icon--linkedin {
  color: #4875b4; }

.social-icon--twitter {
  color: #33ccff; }

@media only screen and (min-width: 600px) {
  .menu-lang {
    display: none;
    top: 0;
    right: 0;
    margin-left: 20px;
    list-style: none; } }

@media only screen and (max-width: 1199px) {
  .menu-lang {
    position: absolute;
    right: 30px; } }

@media only screen and (max-width: 899px) {
  .menu-lang {
    position: static;
    width: 25px;
    margin: auto; } }

.menu-lang:hover .language-switch {
  display: block; }

.menu-lang > .language-switch__item {
  display: block;
  position: relative;
  margin: 10px 10px 10px 0; }
  @media only screen and (max-width: 899px) {
    .menu-lang > .language-switch__item {
      margin: 0 0 10px; } }
  .menu-lang > .language-switch__item::after {
    display: none;
    font-family: "Font Awesome 5 Solid";
    content: '\f0d7'; }
  .menu-lang > .language-switch__item .inline-icon {
    position: absolute;
    top: 2px;
    right: -16px; }

.language-switch {
  display: none;
  position: absolute;
  background-color: white;
  z-index: 90; }
  .language-switch .language-switch__item {
    padding: 0 1px; }
    .language-switch .language-switch__item:last-child {
      padding-bottom: 1px; }

.language-switch__link {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  color: transparent;
  text-indent: -9999px; }
  .language-switch__link > a {
    display: flex; }
  .language-switch__link::before {
    display: inline-block;
    min-width: 25px;
    height: 19px;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
    content: ''; }

/**
 * Dutch language link.
 */
.menu-lang .language-switch__link--nl::before {
  background-image: url("../images/flags/nl.svg"); }

/**
 * French language link.
 */
.menu-lang .language-switch__link--fr::before {
  background-image: url("../images/flags/fr.svg"); }

/**
 * English language link.
 */
.menu-lang .language-switch__link--en::before {
  background-image: url("../images/flags/gb.svg"); }

/**
 * German language link.
 */
.menu-lang .language-switch__link--de::before {
  background-image: url("../images/flags/de.svg"); }

/* ==========================================================================
   Submenu (Page)
   ========================================================================== */
/**
 * Main.
 */
.page-submenu {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.57143em;
  width: 100%;
  max-width: 1230px;
  margin: -100px auto 100px;
  background: white;
  color: #4a6268; }
  @media only screen and (max-width: 599px) {
    .page-submenu {
      margin: -50px auto 100px; } }
  @media only screen and (max-width: 899px) {
    .page-submenu {
      flex-wrap: wrap; } }

/**
 * Title.
 */
.page-submenu__title {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-basis: 25%;
  padding: 25px 40px;
  background: #00633a;
  color: white;
  font-weight: bold; }
  @media only screen and (max-width: 899px) {
    .page-submenu__title {
      flex-basis: 100%;
      width: 100%;
      padding: 15px 0; } }

/**
 * Loop.
 */
.page-submenu__loop {
  position: relative;
  padding: 15px 0;
  align-items: center; }
  @media only screen and (max-width: 899px) {
    .page-submenu__loop {
      width: 100%;
      margin-top: 50px;
      padding: 0; } }

/**
 * Submenu item.
 */
@media only screen and (max-width: 899px) {
  .submenu-item {
    width: 100%;
    padding: 10px 0;
    background: white;
    text-align: center; } }

.submenu-item a {
  display: flex;
  height: 20px;
  margin: 15px 0;
  padding: 0px 25px;
  border-right: 1px solid #4a6268; }
  @media only screen and (max-width: 899px) {
    .submenu-item a {
      display: flex;
      justify-content: center;
      width: 100%;
      height: 100%;
      margin: 0;
      padding: 4px 25px;
      border-right: 0; } }
  @media only screen and (min-width: 1200px) {
    .submenu-item a:hover {
      text-decoration: underline; } }

@media only screen and (max-width: 899px) {
  .submenu-item.active {
    display: flex !important;
    position: absolute;
    top: -50px;
    right: 0;
    left: 0; } }

@media only screen and (min-width: 900px) {
  .submenu-item.active {
    font-weight: bold; } }

@media only screen and (max-width: 899px) {
  .submenu-item:not(.is-first-item) {
    display: none; } }

@media only screen and (max-width: 899px) {
  .submenu-item:not(.is-first-item).is-shown {
    display: flex; } }

/**
 * When you're on a parent page.
 */
.is-main .page-submenu__loop {
  margin-top: 0; }

.is-main .is-first-item {
  display: flex; }

@media only screen and (max-width: 899px) {
  .is-main .submenu-item:not(.is-first-item) {
    display: none; } }

@media only screen and (max-width: 899px) {
  .is-main .submenu-item:not(.is-first-item).is-shown {
    display: flex; } }

/**
 * Additional rules for the first item in the list.
 */
.is-first-item a {
  display: flex;
  align-items: center; }

.is-first-item svg {
  width: 13px;
  height: 13px;
  margin-left: 10px; }
  @media only screen and (min-width: 900px) {
    .is-first-item svg {
      display: none; } }

.is-first-item.is-active svg {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg); }

/**
 * Gallery items.
 */
.gallery__items {
  display: flex;
  flex-wrap: wrap;
  margin: -15px; }

/**
 * Gallery item.
 */
.gallery__item {
  position: relative;
  width: calc(33.3334% - 30px);
  height: 0;
  margin: 15px;
  padding-bottom: 20%; }
  @media only screen and (max-width: 599px) {
    .gallery__item {
      width: 100%;
      margin: 0;
      padding-bottom: 65%; } }

.top-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 50px;
  background-color: #086339;
  z-index: 90; }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .top-header {
      height: auto; } }
  .top-header .wrapper {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    height: 100%; }

.menu-top-container ul {
  display: flex; }
  .menu-top-container ul li {
    text-transform: uppercase;
    margin-right: 20px;
    font-weight: 400;
    font-size: 13px;
    line-height: 20px; }
    .menu-top-container ul li.current-menu-item a, .menu-top-container ul li.current_page_item a {
      color: white !important;
      font-weight: 900; }
    .menu-top-container ul li a {
      color: white;
      transition: all 300ms ease-in-out;
      border-bottom-style: none; }
      .menu-top-container ul li a:hover {
        opacity: 0.7; }

.search-form__wrap input {
  width: 264px;
  background: #F4F6F9;
  border-radius: 8px;
  color: #4A6268;
  padding: 8px 16px;
  font-size: 13px; }
  @media only screen and (max-width: 599px) {
    .search-form__wrap input {
      width: auto; } }
  .search-form__wrap input::-webkit-input-placeholder {
    opacity: 0.8; }
  .search-form__wrap input:-ms-input-placeholder {
    opacity: 0.8; }
  .search-form__wrap input::-ms-input-placeholder {
    opacity: 0.8; }
  .search-form__wrap input::placeholder {
    opacity: 0.8; }

.search-results {
  margin-top: 50px; }
  .search-results .pagination {
    margin-bottom: 20px; }

.search-form__wrap {
  position: relative; }
  .search-form__wrap svg {
    width: 13px;
    height: 13px;
    color: #4A6268;
    position: absolute;
    right: 16px;
    top: 8px;
    opacity: 0.8; }

@media only screen and (max-width: 899px) {
  .search-form .wrapper {
    padding: 0; } }

.search-item {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  margin-bottom: 20px; }

.search-item__wrapper {
  display: flex;
  flex-wrap: wrap;
  width: 100%; }

.search-item__icon {
  width: 56px;
  height: 56px;
  background-color: #c4c4c444;
  display: flex;
  justify-content: center;
  align-items: center; }
  .search-item__icon svg {
    height: 13px;
    width: 13px;
    color: #4A6268; }

.search-item__body {
  width: calc(100% - 78px);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  margin-left: 22px; }

.search-item__title {
  width: 100%;
  color: #000000;
  font-size: 16px;
  line-height: 22px; }

.search-breadcrumb__links {
  display: flex;
  overflow: hidden; }
  .search-breadcrumb__links span {
    display: flex;
    margin-right: 5px; }
    .search-breadcrumb__links span:after {
      content: '>';
      margin-left: 5px; }
    .search-breadcrumb__links span:last-child:after {
      content: ''; }

/**
 * Generic helper classes.
 */
/**
 * Visually hide any element from the user.
 */
.visually-hidden {
  display: block;
  position: absolute;
  width: 1px;
  height: 1px;
  white-space: nowrap;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(1px);
          clip-path: inset(1px); }

/**
 * Make lazyload placeholder 100% wide.
 */
.lazyload {
  width: 100%; }

/**
 * Helper class for object fit polyfill. Add this class to any element
 * that utilizes the `object-fit` property.
 */
.object-fit {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  font-family: 'object-fit: cover;';
  -o-object-fit: cover;
  object-fit: cover; }

.title-1 {
  font-size: 40px;
  font-size: 4rem;
  line-height: 1.2em;
  font-weight: 500; }

.title-2 {
  font-size: 30px;
  font-size: 3rem;
  line-height: 1.16667em;
  font-weight: 500; }

.title-3 {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1.16667em;
  font-weight: 500; }

.title-4 {
  font-size: 22px;
  font-size: 2.2rem;
  line-height: 1.54545em;
  font-weight: 500; }

/**
 * Normal wrapper
 */
.wrapper {
  right: 0;
  left: 0;
  width: 100%;
  max-width: 1070px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 20px;
  padding-left: 20px; }

.wrapper--wide-no-padding {
  max-width: 1230px;
  padding-right: 0;
  padding-left: 0; }

/**
 * Wide wrapper
 */
.wrapper--wide {
  max-width: 1270px; }

/**
 * Small wrapper
 */
.wrapper--small {
  max-width: 960px; }

.m10 {
  margin-bottom: 10px; }

.m20 {
  margin-bottom: 20px; }

.m30 {
  margin-bottom: 30px; }

.m40 {
  margin-bottom: 40px; }

.text-tiny {
  font-size: 13px;
  font-size: 1.3rem;
  line-height: 1.53846em; }

.background-white {
  background-color: white; }

/**
 * Every conceivable HTML element within a `.cms-output` wrapper.
 */
.cms-output > *:not(:last-child) {
  margin-bottom: 1em; }

.cms-output ul {
  list-style-type: disc; }

.cms-output ol {
  list-style-type: decimal; }

.cms-output p > a {
  color: inherit; }
  .cms-output p > a:hover {
    text-decoration: underline; }

.cms-output table {
  margin: 1em auto;
  border-collapse: collapse; }

.cms-output table th,
.cms-output table td {
  padding: 10px;
  border: 1px solid #cfd9db; }

.cms-output table th {
  background-color: #cfd9db; }

/**
 * Generate utility classes for manipulation of font sizes.
 */
.text-micro {
  font-size: 12px;
  font-size: 1.2rem;
  line-height: 1.08333em; }

.text-tiny {
  font-size: 13px;
  font-size: 1.3rem;
  line-height: 1.53846em; }

.text-small {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5625em; }

.text-regular {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.55556em; }

.text-large {
  font-size: 22px;
  font-size: 2.2rem;
  line-height: 1.54545em; }

.text-huge {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1.16667em; }

.text-mega {
  font-size: 30px;
  font-size: 3rem;
  line-height: 1.16667em; }

.text-jumbo {
  font-size: 40px;
  font-size: 4rem;
  line-height: 1.2em; }

/**
 * Generate utility classes for manipulation of text alignment.
 */
.text-left {
  text-align: left; }

.text-right {
  text-align: right; }

.text-center {
  text-align: center; }

/**
 * Generate utility classes for manipulation of font weight.
 */
.text-thin {
  font-weight: 100; }

.text-extra-light {
  font-weight: 200; }

.text-light {
  font-weight: 300; }

.text-normal {
  font-weight: 400; }

.text-medium {
  font-weight: 500; }

.text-semi-bold {
  font-weight: 600; }

.text-bold {
  font-weight: 700; }

.text-extra-bold {
  font-weight: 800; }

.text-black {
  font-weight: 900; }

/**
 * Color context utility helper classes for manipulating text or background
 * colors directly in the HTML.
 */
/**
 * Utility classes for manipulating stacking order in HTML.
 */
.z-index-0 {
  z-index: 0; }

.z-index-1 {
  z-index: 10; }

.z-index-2 {
  z-index: 20; }

.z-index-3 {
  z-index: 30; }

.z-index-4 {
  z-index: 40; }

.z-index-5 {
  z-index: 50; }

.z-index-6 {
  z-index: 60; }

.z-index-7 {
  z-index: 70; }

.z-index-8 {
  z-index: 80; }

.z-index-9 {
  z-index: 90; }

.z-index-10 {
  z-index: 100; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3ZlbmRvci9ub3JtYWxpemUuc2NzcyIsIm1haW4uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL293bC5jYXJvdXNlbC9zcmMvc2Nzcy9fY29yZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL293bC5jYXJvdXNlbC9zcmMvc2Nzcy9fYW5pbWF0ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL293bC5jYXJvdXNlbC9zcmMvc2Nzcy9fYXV0b2hlaWdodC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL293bC5jYXJvdXNlbC9zcmMvc2Nzcy9fbGF6eWxvYWQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9vd2wuY2Fyb3VzZWwvc3JjL3Njc3MvX3ZpZGVvLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbWFnbmlmaWMtcG9wdXAvc3JjL2Nzcy9tYWluLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbWFnbmlmaWMtcG9wdXAvc3JjL2Nzcy9fc2V0dGluZ3Muc2NzcyIsImVsZW1lbnRzL19yZXNldC5zY3NzIiwiZ2VuZXJpYy9fYmFzZS5zY3NzIiwidG9vbHMvX21peGlucy5zY3NzIiwic2V0dGluZ3MvX3R5cG9ncmFwaHkuc2NzcyIsInRvb2xzL19mdW5jdGlvbnMuc2NzcyIsInNldHRpbmdzL19jb2xvcnMuc2NzcyIsImdlbmVyaWMvX2hvcml6b250YWwtcnVsZS5zY3NzIiwiZ2VuZXJpYy9fcGxhY2Vob2xkZXIuc2NzcyIsImdlbmVyaWMvX3NlbGVjdGlvbi5zY3NzIiwib2JqZWN0cy9fY29udGVudC1jb25zdHJhaW50LnNjc3MiLCJvYmplY3RzL19mbGV4LnNjc3MiLCJvYmplY3RzL19wYWdlLnNjc3MiLCJjb21wb25lbnRzL19idXR0b24uc2NzcyIsImNvbXBvbmVudHMvX21lbnUuc2NzcyIsImNvbXBvbmVudHMvX2hlYWRlci5zY3NzIiwic2V0dGluZ3MvX3otaW5kZXguc2NzcyIsImNvbXBvbmVudHMvX25hdmlnYXRpb24uc2NzcyIsImNvbXBvbmVudHMvX2xvZ28uc2NzcyIsImNvbXBvbmVudHMvX2NvbnRhY3QtYnV0dG9ucy5zY3NzIiwiY29tcG9uZW50cy9fc2xpZGVzaG93LnNjc3MiLCJjb21wb25lbnRzL190ZWFzZXJzLnNjc3MiLCJjb21wb25lbnRzL19jb250ZW50LWRlZmF1bHQuc2NzcyIsImNvbXBvbmVudHMvX3RleHQtaW1hZ2Uuc2NzcyIsImNvbXBvbmVudHMvX2NvbHVtbnMuc2NzcyIsImNvbXBvbmVudHMvX25ld3MtbGlzdC5zY3NzIiwiY29tcG9uZW50cy9fbmV3cy1sYXRlc3Quc2NzcyIsImNvbXBvbmVudHMvX25ld3MtaXRlbS5zY3NzIiwiY29tcG9uZW50cy9fbmV3cy1zaW5nbGUuc2NzcyIsImNvbXBvbmVudHMvX3BhZ2luYXRpb24uc2NzcyIsImNvbXBvbmVudHMvX3NsaWRlLXRlYXNlcnMuc2NzcyIsImNvbXBvbmVudHMvX2Zvcm0uc2NzcyIsImNvbXBvbmVudHMvX2Zvb3Rlci5zY3NzIiwiY29tcG9uZW50cy9fbWVudS1sYW5nLnNjc3MiLCJjb21wb25lbnRzL19wYWdlLXN1Ym1lbnUuc2NzcyIsImNvbXBvbmVudHMvX2dhbGxlcnkuc2NzcyIsImNvbXBvbmVudHMvX3RvcC1tZW51LnNjc3MiLCJjb21wb25lbnRzL19zZWFyY2gtcmVzdWx0cy5zY3NzIiwidXRpbGl0aWVzL19oZWxwZXJzLnNjc3MiLCJ1dGlsaXRpZXMvX2Ntcy1vdXRwdXQuc2NzcyIsInV0aWxpdGllcy9fdGV4dC5zY3NzIiwidXRpbGl0aWVzL19jb2xvci5zY3NzIiwidXRpbGl0aWVzL196LWluZGV4LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNEVBQTRFO0FBRTVFO2dGQUNnRjtBQUVoRjs7O0dBR0c7QUFFSDtFQUNFLGtCQUFpQjtFQUFFLE9BQU87RUFDMUIsK0JBQThCO0VBQUUsT0FBTyxFQUN4Qzs7QUFFRDtnRkFDZ0Y7QUFFaEY7O0dBRUc7QUFFSDtFQUNFLFVBQVMsRUFDVjs7QUFFRDs7R0FFRztBQUVIO0VBQ0UsZUFB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QUFGRDtFQUNFLGtCQUYyQixFQUc1Qjs7QUFGRDtFQUNFLG1CQUZtQyxFQUdwQzs7QUFJSDs7R0FFRztBQUdEO0VBQ0UsaUJwQ3NCUyxFb0NyQlY7O0FBRkQ7RUFDRSxpQnBDdUJnQixFb0N0QmpCOztBQUZEO0VBQ0UsaUJwQ3dCVSxFb0N2Qlg7O0FBRkQ7RUFDRSxpQnBDeUJXLEVvQ3hCWjs7QUFGRDtFQUNFLGlCcEMwQlcsRW9DekJaOztBQUZEO0VBQ0UsaUJwQzJCYyxFb0MxQmY7O0FBRkQ7RUFDRSxpQnBDNEJTLEVvQzNCVjs7QUFGRDtFQUNFLGlCcEM2QmUsRW9DNUJoQjs7QUFGRDtFQUNFLGlCcEM4QlUsRW9DN0JYOztBQzdCSDs7O0dBR0c7QUNISDs7R0FFRztBQUdEO0VBQ0UsVzFCRkcsRTBCR0o7O0FBRkQ7RUFDRSxZMUJESSxFMEJFTDs7QUFGRDtFQUNFLFkxQkFJLEUwQkNMOztBQUZEO0VBQ0UsWTFCQ0ksRTBCQUw7O0FBRkQ7RUFDRSxZMUJFSSxFMEJETDs7QUFGRDtFQUNFLFkxQkdJLEUwQkZMOztBQUZEO0VBQ0UsWTFCSUksRTBCSEw7O0FBRkQ7RUFDRSxZMUJLSSxFMEJKTDs7QUFGRDtFQUNFLFkxQk1JLEUwQkxMOztBQUZEO0VBQ0UsWTFCT0ksRTBCTkw7O0FBRkQ7RUFDRSxhMUJRSyxFMEJQTiIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIE1pc2NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi8gfVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qKlxuICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXG4gKi9cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovIH1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTsgfVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQge1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0OyB9XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovIH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi8gfVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTsgfVxuXG4vKiBNaXNjXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLypcbiAqICBPd2wgQ2Fyb3VzZWwgLSBDb3JlXG4gKi9cbi5vd2wtY2Fyb3VzZWwge1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogcG9zaXRpb24gcmVsYXRpdmUgYW5kIHotaW5kZXggZml4IHdlYmtpdCByZW5kZXJpbmcgZm9udHMgaXNzdWUgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1zdGFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi1ZOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1zdGFnZTphZnRlciB7XG4gICAgY29udGVudDogXCIuXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGhlaWdodDogMDsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtc3RhZ2Utb3V0ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC8qIGZpeCBmb3IgZmxhc2hpbmcgYmFja2dyb3VuZCAqL1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtbmF2LmRpc2FibGVkLFxuICAub3dsLWNhcm91c2VsIC5vd2wtZG90cy5kaXNhYmxlZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtbmF2IC5vd2wtcHJldixcbiAgLm93bC1jYXJvdXNlbCAub3dsLW5hdiAub3dsLW5leHQsXG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1kb3Qge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjdXJzb3I6IGhhbmQ7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLm93bC1jYXJvdXNlbC5vd2wtbG9hZGVkIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAub3dsLWNhcm91c2VsLm93bC1sb2FkaW5nIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLWhpZGRlbiB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAub3dsLWNhcm91c2VsLm93bC1yZWZyZXNoIC5vd2wtaXRlbSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLWRyYWcgLm93bC1pdGVtIHtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLWdyYWIge1xuICAgIGN1cnNvcjogbW92ZTtcbiAgICBjdXJzb3I6IGdyYWI7IH1cbiAgLm93bC1jYXJvdXNlbC5vd2wtcnRsIHtcbiAgICBkaXJlY3Rpb246IHJ0bDsgfVxuICAub3dsLWNhcm91c2VsLm93bC1ydGwgLm93bC1pdGVtIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cblxuLyogTm8gSnMgKi9cbi5uby1qcyAub3dsLWNhcm91c2VsIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbiAqICBPd2wgQ2Fyb3VzZWwgLSBBbmltYXRlIFBsdWdpblxuICovXG4ub3dsLWNhcm91c2VsIC5hbmltYXRlZCB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMTAwMG1zO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyB9XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC1hbmltYXRlZC1pbiB7XG4gIHotaW5kZXg6IDA7IH1cblxuLm93bC1jYXJvdXNlbCAub3dsLWFuaW1hdGVkLW91dCB7XG4gIHotaW5kZXg6IDE7IH1cblxuLm93bC1jYXJvdXNlbCAuZmFkZU91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0OyB9XG5cbkBrZXlmcmFtZXMgZmFkZU91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG4vKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBBdXRvIEhlaWdodCBQbHVnaW5cbiAqL1xuLm93bC1oZWlnaHQge1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgNTAwbXMgZWFzZS1pbi1vdXQ7IH1cblxuLypcbiAqIFx0T3dsIENhcm91c2VsIC0gTGF6eSBMb2FkIFBsdWdpblxuICovXG4ub3dsLWNhcm91c2VsIC5vd2wtaXRlbSAub3dsLWxhenkge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7IH1cblxuLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gaW1nLm93bC1sYXp5IHtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDsgfVxuXG4vKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBWaWRlbyBQbHVnaW5cbiAqL1xuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzAwMDsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheS1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDgwcHg7XG4gIHdpZHRoOiA4MHB4O1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTQwcHg7XG4gIG1hcmdpbi10b3A6IC00MHB4O1xuICBiYWNrZ3JvdW5kOiB1cmwoXCJvd2wudmlkZW8ucGxheS5wbmdcIikgbm8tcmVwZWF0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHotaW5kZXg6IDE7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTAwbXMgZWFzZTsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheS1pY29uOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjMsIDEuMyk7IH1cblxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXlpbmcgLm93bC12aWRlby10bixcbi5vd2wtY2Fyb3VzZWwgLm93bC12aWRlby1wbGF5aW5nIC5vd2wtdmlkZW8tcGxheS1pY29uIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tdG4ge1xuICBvcGFjaXR5OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlOyB9XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC12aWRlby1mcmFtZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTsgfVxuXG4vKiBNYWduaWZpYyBQb3B1cCBDU1MgKi9cbi5tZnAtYmcge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDEwNDI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYmFja2dyb3VuZDogIzBiMGIwYjtcbiAgb3BhY2l0eTogMC44OyB9XG5cbi5tZnAtd3JhcCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTA0MztcbiAgcG9zaXRpb246IGZpeGVkO1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5tZnAtY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcGFkZGluZzogMCA4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLm1mcC1jb250YWluZXI6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi5tZnAtYWxpZ24tdG9wIC5tZnAtY29udGFpbmVyOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1mcC1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB6LWluZGV4OiAxMDQ1OyB9XG5cbi5tZnAtaW5saW5lLWhvbGRlciAubWZwLWNvbnRlbnQsXG4ubWZwLWFqYXgtaG9sZGVyIC5tZnAtY29udGVudCB7XG4gIHdpZHRoOiAxMDAlO1xuICBjdXJzb3I6IGF1dG87IH1cblxuLm1mcC1hamF4LWN1ciB7XG4gIGN1cnNvcjogcHJvZ3Jlc3M7IH1cblxuLm1mcC16b29tLW91dC1jdXIsIC5tZnAtem9vbS1vdXQtY3VyIC5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtY2xvc2Uge1xuICBjdXJzb3I6IC1tb3otem9vbS1vdXQ7XG4gIGN1cnNvcjogLXdlYmtpdC16b29tLW91dDtcbiAgY3Vyc29yOiB6b29tLW91dDsgfVxuXG4ubWZwLXpvb20ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGN1cnNvcjogLXdlYmtpdC16b29tLWluO1xuICBjdXJzb3I6IC1tb3otem9vbS1pbjtcbiAgY3Vyc29yOiB6b29tLWluOyB9XG5cbi5tZnAtYXV0by1jdXJzb3IgLm1mcC1jb250ZW50IHtcbiAgY3Vyc29yOiBhdXRvOyB9XG5cbi5tZnAtY2xvc2UsXG4ubWZwLWFycm93LFxuLm1mcC1wcmVsb2FkZXIsXG4ubWZwLWNvdW50ZXIge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuXG4ubWZwLWxvYWRpbmcubWZwLWZpZ3VyZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1mcC1oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5tZnAtcHJlbG9hZGVyIHtcbiAgY29sb3I6ICNDQ0M7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IC0wLjhlbTtcbiAgbGVmdDogOHB4O1xuICByaWdodDogOHB4O1xuICB6LWluZGV4OiAxMDQ0OyB9XG4gIC5tZnAtcHJlbG9hZGVyIGEge1xuICAgIGNvbG9yOiAjQ0NDOyB9XG4gICAgLm1mcC1wcmVsb2FkZXIgYTpob3ZlciB7XG4gICAgICBjb2xvcjogI0ZGRjsgfVxuXG4ubWZwLXMtcmVhZHkgLm1mcC1wcmVsb2FkZXIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZnAtcy1lcnJvciAubWZwLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbmJ1dHRvbi5tZnAtY2xvc2UsIGJ1dHRvbi5tZnAtYXJyb3cge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdXRsaW5lOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICB6LWluZGV4OiAxMDQ2O1xuICBib3gtc2hhZG93OiBub25lO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgfVxuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7IH1cblxuLm1mcC1jbG9zZSB7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGxpbmUtaGVpZ2h0OiA0NHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBvcGFjaXR5OiAwLjY1O1xuICBwYWRkaW5nOiAwIDAgMThweCAxMHB4O1xuICBjb2xvcjogI0ZGRjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDI4cHg7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgQmFza2VydmlsbGUsIG1vbm9zcGFjZTsgfVxuICAubWZwLWNsb3NlOmhvdmVyLCAubWZwLWNsb3NlOmZvY3VzIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5tZnAtY2xvc2U6YWN0aXZlIHtcbiAgICB0b3A6IDFweDsgfVxuXG4ubWZwLWNsb3NlLWJ0bi1pbiAubWZwLWNsb3NlIHtcbiAgY29sb3I6ICMzMzM7IH1cblxuLm1mcC1pbWFnZS1ob2xkZXIgLm1mcC1jbG9zZSxcbi5tZnAtaWZyYW1lLWhvbGRlciAubWZwLWNsb3NlIHtcbiAgY29sb3I6ICNGRkY7XG4gIHJpZ2h0OiAtNnB4O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgcGFkZGluZy1yaWdodDogNnB4O1xuICB3aWR0aDogMTAwJTsgfVxuXG4ubWZwLWNvdW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGNvbG9yOiAjQ0NDO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5tZnAtYXJyb3cge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9wYWNpdHk6IDAuNjU7XG4gIG1hcmdpbjogMDtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6IC01NXB4O1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogOTBweDtcbiAgaGVpZ2h0OiAxMTBweDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOyB9XG4gIC5tZnAtYXJyb3c6YWN0aXZlIHtcbiAgICBtYXJnaW4tdG9wOiAtNTRweDsgfVxuICAubWZwLWFycm93OmhvdmVyLCAubWZwLWFycm93OmZvY3VzIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5tZnAtYXJyb3c6YmVmb3JlLCAubWZwLWFycm93OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIG1hcmdpbi10b3A6IDM1cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDM1cHg7XG4gICAgYm9yZGVyOiBtZWRpdW0gaW5zZXQgdHJhbnNwYXJlbnQ7IH1cbiAgLm1mcC1hcnJvdzphZnRlciB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMTNweDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxM3B4O1xuICAgIHRvcDogOHB4OyB9XG4gIC5tZnAtYXJyb3c6YmVmb3JlIHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAyMXB4O1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIxcHg7XG4gICAgb3BhY2l0eTogMC43OyB9XG5cbi5tZnAtYXJyb3ctbGVmdCB7XG4gIGxlZnQ6IDA7IH1cbiAgLm1mcC1hcnJvdy1sZWZ0OmFmdGVyIHtcbiAgICBib3JkZXItcmlnaHQ6IDE3cHggc29saWQgI0ZGRjtcbiAgICBtYXJnaW4tbGVmdDogMzFweDsgfVxuICAubWZwLWFycm93LWxlZnQ6YmVmb3JlIHtcbiAgICBtYXJnaW4tbGVmdDogMjVweDtcbiAgICBib3JkZXItcmlnaHQ6IDI3cHggc29saWQgIzNGM0YzRjsgfVxuXG4ubWZwLWFycm93LXJpZ2h0IHtcbiAgcmlnaHQ6IDA7IH1cbiAgLm1mcC1hcnJvdy1yaWdodDphZnRlciB7XG4gICAgYm9yZGVyLWxlZnQ6IDE3cHggc29saWQgI0ZGRjtcbiAgICBtYXJnaW4tbGVmdDogMzlweDsgfVxuICAubWZwLWFycm93LXJpZ2h0OmJlZm9yZSB7XG4gICAgYm9yZGVyLWxlZnQ6IDI3cHggc29saWQgIzNGM0YzRjsgfVxuXG4ubWZwLWlmcmFtZS1ob2xkZXIge1xuICBwYWRkaW5nLXRvcDogNDBweDtcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7IH1cbiAgLm1mcC1pZnJhbWUtaG9sZGVyIC5tZnAtY29udGVudCB7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA5MDBweDsgfVxuICAubWZwLWlmcmFtZS1ob2xkZXIgLm1mcC1jbG9zZSB7XG4gICAgdG9wOiAtNDBweDsgfVxuXG4ubWZwLWlmcmFtZS1zY2FsZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLXRvcDogNTYuMjUlOyB9XG4gIC5tZnAtaWZyYW1lLXNjYWxlciBpZnJhbWUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgYmFja2dyb3VuZDogIzAwMDsgfVxuXG4vKiBNYWluIGltYWdlIGluIHBvcHVwICovXG5pbWcubWZwLWltZyB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiA0MHB4IDAgNDBweDtcbiAgbWFyZ2luOiAwIGF1dG87IH1cblxuLyogVGhlIHNoYWRvdyBiZWhpbmQgdGhlIGltYWdlICovXG4ubWZwLWZpZ3VyZSB7XG4gIGxpbmUtaGVpZ2h0OiAwOyB9XG4gIC5tZnAtZmlndXJlOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDQwcHg7XG4gICAgYm90dG9tOiA0MHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB6LWluZGV4OiAtMTtcbiAgICBib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICBiYWNrZ3JvdW5kOiAjNDQ0OyB9XG4gIC5tZnAtZmlndXJlIHNtYWxsIHtcbiAgICBjb2xvcjogI0JEQkRCRDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7IH1cbiAgLm1mcC1maWd1cmUgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7IH1cblxuLm1mcC1ib3R0b20tYmFyIHtcbiAgbWFyZ2luLXRvcDogLTM2cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgY3Vyc29yOiBhdXRvOyB9XG5cbi5tZnAtdGl0bGUge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgY29sb3I6ICNGM0YzRjM7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgcGFkZGluZy1yaWdodDogMzZweDsgfVxuXG4ubWZwLWltYWdlLWhvbGRlciAubWZwLWNvbnRlbnQge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLm1mcC1nYWxsZXJ5IC5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtZmlndXJlIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDgwMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpLCBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiAzMDBweCkge1xuICAvKipcbiAgICAgICAqIFJlbW92ZSBhbGwgcGFkZGluZ3MgYXJvdW5kIHRoZSBpbWFnZSBvbiBzbWFsbCBzY3JlZW5cbiAgICAgICAqL1xuICAubWZwLWltZy1tb2JpbGUgLm1mcC1pbWFnZS1ob2xkZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5tZnAtaW1nLW1vYmlsZSBpbWcubWZwLWltZyB7XG4gICAgcGFkZGluZzogMDsgfVxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1maWd1cmU6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7IH1cbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtZmlndXJlIHNtYWxsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDsgfVxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1ib3R0b20tYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgYm90dG9tOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICB0b3A6IGF1dG87XG4gICAgcGFkZGluZzogM3B4IDVweDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAgIC5tZnAtaW1nLW1vYmlsZSAubWZwLWJvdHRvbS1iYXI6ZW1wdHkge1xuICAgICAgcGFkZGluZzogMDsgfVxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1jb3VudGVyIHtcbiAgICByaWdodDogNXB4O1xuICAgIHRvcDogM3B4OyB9XG4gIC5tZnAtaW1nLW1vYmlsZSAubWZwLWNsb3NlIHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7IH0gfVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA5MDBweCkge1xuICAubWZwLWFycm93IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC43NSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTsgfVxuICAubWZwLWFycm93LWxlZnQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwOyB9XG4gIC5tZnAtYXJyb3ctcmlnaHQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlOyB9XG4gIC5tZnAtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDZweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7IH0gfVxuXG4vKipcbiAqIEN1c3RvbSB1c2VyIGFnZW50IHJlc2V0cyBhbmQgb3ZlcnJpZGVzIHRoYXQgYXJlIG5vdCBwcmVzZW50IGluXG4gKiBOb3JtYWxpemUgNy4wLjAuIFRoaXMgbW9zdGx5IHJlbW92ZXMgc29tZSBhbm5veWluZyBtYXJnaW4gYW5kIHBhZGRpbmdcbiAqIGRlZmF1bHRzLCBib3JkZXIgcmFkaXVzLCBhbmQgb3V0bGluZXMuXG4gKi9cbmEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qKlxuICogMS4gUmVtb3ZlIGJvcmRlciByYWRpdXMgb24gQ2hyb21lIDYyLjArIG9uIG1hY09TLlxuICovXG5idXR0b24ge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG5maWVsZHNldCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwOyB9XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDsgfVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7IH1cblxuaHIge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4gKiAxLiBSZW1vdmUgd2hpdGUgc3BhY2UuXG4gKi9cbmltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi8qKlxuICogMS4gUmVtb3ZlIGluaGVyaXRlZCB1c2VyIGFnZW50IGFwcGVhcmFuY2UuXG4gKi9cbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgb3V0bGluZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcbiAqIDEuIE9ubHkgYWxsb3cgdmVydGljYWwgcmVzaXppbmcgdG8gcHJldmVudCB0aGUgdGV4dGFyZWFcbiAqICAgIGZyb20gb3ZlcmZsb3dpbmcgdGhlIGNvbnRhaW5lci5cbiAqL1xudGV4dGFyZWEge1xuICByZXNpemU6IHZlcnRpY2FsOyB9XG5cbnVsLFxub2wge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuXG5wIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qKlxuICogMS4gQ29sbGFwc2UgYm9yZGVycyB0byBwcmV2ZW50IGRvdWJsZSBzaWRlZCBib3JkZXJzLlxuICovXG50YWJsZSB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgfVxuXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi8qKlxuICogUmVtb3ZlIG1hcmdpbiBhbmQgcGFkZGluZyBmcm9tIGV2ZXJ5IHNlbGVjdG9yIGluY2x1ZGluZyB0aGVpclxuICogcHN1ZWRvIHNlbGVjdG9ycy5cbiAqXG4gKiAxLiBNb3JlIHNlbnNpYmxlIGRlZmF1bHQgYm94IHNpemluZy5cbiAqICAgIChjc3MtdHJpY2tzLmNvbS9pbmhlcml0aW5nLWJveC1zaXppbmctcHJvYmFibHktc2xpZ2h0bHktYmV0dGVyLWJlc3QtcHJhY3RpY2UpLlxuICovXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuLyoqXG4gKiBTZXQgaGVpZ2h0IG9mIHRoZSBkb2N1bWVudCB0byBtYXhpdW0gdmlld3BvcnQgaGVpZ2h0LlxuICpcbiAqIDEuIFNldCByb290IGZvbnQgc2l6ZSB0byAxMC5cbiAqL1xuaHRtbCB7XG4gIGhlaWdodDogMTAwdmg7XG4gIGZvbnQtc2l6ZTogNjIuNSU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLyoqXG4gKiBTZXQgbWluaW1hbCBoZWlnaHQgb2YgdGhlIGJvZHkgdG8gbWF4aW11bSB2aWV3cG9ydCBoZWlnaHQgdG9cbiAqIG1hdGNoIHRoZSBkb2N1bWVudCdzIGhlaWdodC5cbiAqXG4gKiAxLiBGaXJlZm94IDI1Ky5cbiAqIDIuIENocm9tZSA1Ky5cbiAqL1xuYm9keSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjUzODQ2ZW07XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNmMGYxO1xuICBjb2xvcjogIzRhNjI2ODtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1XCIsIHNhbnMtc2VyaWY7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyB9XG4gIGJvZHkuaXMtbG9hZGVkIHtcbiAgICB0cmFuc2l0aW9uOiAyNDBtcyBlYXNlLWluO1xuICAgIG9wYWNpdHk6IDE7IH1cblxuLyoqXG4gICAqIEEgYmV0dGVyIGxvb2tpbmcgaG9yaXpvbnRhbCBydWxlIGFjY29yZGluZyB0b1xuICAgKiAoaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcykuXG4gICAqIEJhY2tncm91bmQgY29sb3IgaXMgZGVmaW5lZCBpbiAoc2V0dGluZ3MvX3NldHRpbmdzLmNvbG9yLnNjc3MpLlxuICAgKi9cbmhyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMXB4O1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0YTYyNjg7IH1cblxuLyoqXG4gKiBTZWUgKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy86OnBsYWNlaG9sZGVyKSBmb3JcbiAqIGZ1cnRoZXIgcmVhZGluZyBvbiB0aGUgcGxhY2Vob2xkZXIgc2VsZWN0b3IuXG4gKi9cbjo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogaW5oZXJpdDsgfVxuXG4vKipcbiAqIFNlZSAoaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTLzo6c2VsZWN0aW9uKSBmb3JcbiAqIGZ1cnRoZXIgcmVhZGluZyBvbiB0aGUgc2VsZWN0aW9uIHNlbGVjdG9yLlxuICovXG4vKipcbiAqIFRoZSBjb250ZW50IGNvbnN0cmFpbnQgaXMgYSBjb25zdHJhaW50IGZvciBhbGwgdGhlIGNvbnRlbnQgd2l0aGluXG4gKiB0aGUgZG9jdW1lbnQuIEl0IGNhbiBiZSBtYW5pcHVsYXRlZCBieSBDU1Mgb3IgSmF2YVNjcmlwdCB3aXRob3V0XG4gKiBpbmZsdWVuY2luZyB0aGUgYm9keS5cbiAqL1xuLmNvbnRlbnQtY29uc3RyYWludCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogY2FsYygxMDB2aCAtIDQwNnB4KTsgfVxuXG4uY29udGVudC1jb25zdHJhaW50IC53cmFwcGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMTAwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5jb250ZW50LWNvbnN0cmFpbnQgLndyYXBwZXIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDsgfSB9XG4gIC5jb250ZW50LWNvbnN0cmFpbnQgLndyYXBwZXI6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDEwMHB4OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLmNvbnRlbnQtY29uc3RyYWludCAud3JhcHBlcjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDUwcHg7IH0gfVxuICAuY29udGVudC1jb25zdHJhaW50IC53cmFwcGVyLnNsaWRlc2hvdyB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRmxleFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogRXhhbXBsZSBvZiBhIGZsZXggYmFzZWQgY29sdW1uIGdyaWQgbGF5b3V0IGluIHByYWN0aWNlOlxuICpcbiAqIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAqICAgPGRpdiBjbGFzcz1cImNvbCBjb2wteHMtNiBjb2wtc20tMTJcIj48L2Rpdj5cbiAqICAgPGRpdiBjbGFzcz1cImNvbCBjb2wteHMtNiBjb2wtc20tMTJcIj48L2Rpdj5cbiAqIDwvZGl2PlxuICpcbiAqIFRoaXMgZXhhbXBsZSB3aWxsIGNyZWF0ZSBhIHJvdyB3aXRoIHR3byBjb2x1bW5zIGVhY2ggZmlsbGluZyBoYWxmIHRoZSB3aWR0aFxuICogb2YgdGhlIHJvdyBvbiBhbGwgbWVkaWEsIGJ1dCB3aWxsIGNvbnZlcnQgdG8gYSBmdWxsIHdpZHRoIGNvbHVtbiBvbiB0aGVcbiAqIHNtYWxsIGAtc21gIGJyZWFrcG9pbnQgYWxpYXMsIHdoaWNoIGlzIG1vYmlsZSBvbmx5LiBSZWZlciB0b1xuICogYHNldHRpbmdzL19kZWZpbml0aW9ucy5zY3NzYCBmb3IgYWxsIGJyZWFrcG9pbnQgYWxpYXMuXG4gKi9cbi8qKlxuICogRmxleCBvYmplY3QuXG4gKlxuICogVGlwOiBVc2UgZmxleCBvbiBhIGNvbHVtbiB0byBtYWtlIHRoZSBib3ggdGhlIHNhbWUgaGVpZ2h0IGFzIHRoZSBjb2x1bW4uXG4gKi9cbi5mbGV4IHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4uZmxleC13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG5cbi8qKlxuICogRmxleCBvYmplY3Qgd2l0aCBhIGNvbHVtbiBiYXNlZCBsYXlvdXQgc3lzdGVtLlxuICovXG4ucm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAxIGF1dG87XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIG1hcmdpbjogMCAtMTIuNjY2NjdweDsgfVxuXG4vKipcbiAqIEJveCwgdGhlIGluc2lkZSBvZiBhIGNvbHVtbi5cbiAqL1xuLmJveCB7XG4gIGZsZXg6IDE7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAvKipcbiAgICAgICAqIENvbHVtbiAxIGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5jb2wtc20tMSB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IGNvbHVtbigxKTtcbiAgICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cbiAgLyoqXG4gICAgICAgICAqIE9mZnNldCAxIGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxuICAgICAgICAgKi9cbiAgLm9mZnNldC1zbS0xIHtcbiAgICBtYXJnaW4tbGVmdDogY29sdW1uKDEpOyB9XG4gIC8qKlxuICAgICAgICogQ29sdW1uIDIgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmNvbC1zbS0yIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogY29sdW1uKDIpO1xuICAgIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuICAvKipcbiAgICAgICAgICogT2Zmc2V0IDIgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXG4gICAgICAgICAqL1xuICAub2Zmc2V0LXNtLTIge1xuICAgIG1hcmdpbi1sZWZ0OiBjb2x1bW4oMik7IH1cbiAgLyoqXG4gICAgICAgKiBDb2x1bW4gMyBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuY29sLXNtLTMge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiBjb2x1bW4oMyk7XG4gICAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG4gIC8qKlxuICAgICAgICAgKiBPZmZzZXQgMyBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cbiAgICAgICAgICovXG4gIC5vZmZzZXQtc20tMyB7XG4gICAgbWFyZ2luLWxlZnQ6IGNvbHVtbigzKTsgfVxuICAvKipcbiAgICAgICAqIENvbHVtbiA0IGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5jb2wtc20tNCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IGNvbHVtbig0KTtcbiAgICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cbiAgLyoqXG4gICAgICAgICAqIE9mZnNldCA0IGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxuICAgICAgICAgKi9cbiAgLm9mZnNldC1zbS00IHtcbiAgICBtYXJnaW4tbGVmdDogY29sdW1uKDQpOyB9XG4gIC8qKlxuICAgICAgICogQ29sdW1uIDUgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmNvbC1zbS01IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogY29sdW1uKDUpO1xuICAgIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuICAvKipcbiAgICAgICAgICogT2Zmc2V0IDUgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXG4gICAgICAgICAqL1xuICAub2Zmc2V0LXNtLTUge1xuICAgIG1hcmdpbi1sZWZ0OiBjb2x1bW4oNSk7IH1cbiAgLyoqXG4gICAgICAgKiBDb2x1bW4gNiBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuY29sLXNtLTYge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiBjb2x1bW4oNik7XG4gICAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG4gIC8qKlxuICAgICAgICAgKiBPZmZzZXQgNiBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cbiAgICAgICAgICovXG4gIC5vZmZzZXQtc20tNiB7XG4gICAgbWFyZ2luLWxlZnQ6IGNvbHVtbig2KTsgfVxuICAvKipcbiAgICAgICAqIENvbHVtbiA3IGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5jb2wtc20tNyB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IGNvbHVtbig3KTtcbiAgICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cbiAgLyoqXG4gICAgICAgICAqIE9mZnNldCA3IGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxuICAgICAgICAgKi9cbiAgLm9mZnNldC1zbS03IHtcbiAgICBtYXJnaW4tbGVmdDogY29sdW1uKDcpOyB9XG4gIC8qKlxuICAgICAgICogQ29sdW1uIDggZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmNvbC1zbS04IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogY29sdW1uKDgpO1xuICAgIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuICAvKipcbiAgICAgICAgICogT2Zmc2V0IDggZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXG4gICAgICAgICAqL1xuICAub2Zmc2V0LXNtLTgge1xuICAgIG1hcmdpbi1sZWZ0OiBjb2x1bW4oOCk7IH1cbiAgLyoqXG4gICAgICAgKiBDb2x1bW4gOSBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuY29sLXNtLTkge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiBjb2x1bW4oOSk7XG4gICAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG4gIC8qKlxuICAgICAgICAgKiBPZmZzZXQgOSBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cbiAgICAgICAgICovXG4gIC5vZmZzZXQtc20tOSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNvbHVtbig5KTsgfVxuICAvKipcbiAgICAgICAqIENvbHVtbiAxMCBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuY29sLXNtLTEwIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogY29sdW1uKDEwKTtcbiAgICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cbiAgLyoqXG4gICAgICAgICAqIE9mZnNldCAxMCBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cbiAgICAgICAgICovXG4gIC5vZmZzZXQtc20tMTAge1xuICAgIG1hcmdpbi1sZWZ0OiBjb2x1bW4oMTApOyB9XG4gIC8qKlxuICAgICAgICogQ29sdW1uIDExIGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5jb2wtc20tMTEge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiBjb2x1bW4oMTEpO1xuICAgIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuICAvKipcbiAgICAgICAgICogT2Zmc2V0IDExIGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxuICAgICAgICAgKi9cbiAgLm9mZnNldC1zbS0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNvbHVtbigxMSk7IH1cbiAgLyoqXG4gICAgICAgKiBDb2x1bW4gMTIgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmNvbC1zbS0xMiB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IGNvbHVtbigxMik7XG4gICAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG4gIC8qKlxuICAgICAgICogQWxpZ24gYHN0cmV0Y2hgIGZvciB0aGUgc20gYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuYWxpZ24tc20tc3RyZXRjaCB7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbiAgLyoqXG4gICAgICAgKiBBbGlnbiBgY2VudGVyYCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmFsaWduLXNtLWNlbnRlciB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAvKipcbiAgICAgICAqIEFsaWduIGBmbGV4LXN0YXJ0YCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmFsaWduLXNtLWZsZXgtc3RhcnQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4gIC8qKlxuICAgICAgICogQWxpZ24gYGZsZXgtZW5kYCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmFsaWduLXNtLWZsZXgtZW5kIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbiAgLyoqXG4gICAgICAgKiBBbGlnbiBgYmFzZWxpbmVgIGZvciB0aGUgc20gYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuYWxpZ24tc20tYmFzZWxpbmUge1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAvKipcbiAgICAgICAqIEp1c3RpZnkgYHN0YXJ0YCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmp1c3RpZnktc20tc3RhcnQge1xuICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7IH1cbiAgLyoqXG4gICAgICAgKiBKdXN0aWZ5IGBjZW50ZXJgIGZvciB0aGUgc20gYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuanVzdGlmeS1zbS1jZW50ZXIge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC8qKlxuICAgICAgICogSnVzdGlmeSBgc3BhY2UtYmV0d2VlbmAgZm9yIHRoZSBzbSBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5qdXN0aWZ5LXNtLXNwYWNlLWJldHdlZW4ge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAvKipcbiAgICAgICAqIEp1c3RpZnkgYHNwYWNlLWFyb3VuZGAgZm9yIHRoZSBzbSBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5qdXN0aWZ5LXNtLXNwYWNlLWFyb3VuZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cbiAgLyoqXG4gICAgICAgKiBKdXN0aWZ5IGBzcGFjZS1ldmVubHlgIGZvciB0aGUgc20gYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuanVzdGlmeS1zbS1zcGFjZS1ldmVubHkge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5OyB9XG4gIC8qKlxuICAgICAgICogSnVzdGlmeSBgZmxleC1zdGFydGAgZm9yIHRoZSBzbSBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5qdXN0aWZ5LXNtLWZsZXgtc3RhcnQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAvKipcbiAgICAgICAqIEp1c3RpZnkgYGZsZXgtZW5kYCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmp1c3RpZnktc20tZmxleC1lbmQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgLyoqXG4gICAgICAgKiBCbGVlZCBsZWZ0IGZvciB0aGUgc20gYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuYmxlZWQtc20tbGVmdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC8qKlxuICAgICAgICogQmxlZWQgcmlnaHQgZm9yIHRoZSBzbSBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5ibGVlZC1zbS1yaWdodCB7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAvKipcbiAgICAgKiBPcmRlciBmaXJzdCBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cbiAgICAgKi9cbiAgLmZpcnN0LXNtIHtcbiAgICBvcmRlcjogLTE7IH1cbiAgLyoqXG4gICAgICogT3JkZXIgbGFzdCBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cbiAgICAgKi9cbiAgLmxhc3Qtc20ge1xuICAgIG9yZGVyOiAxOyB9XG4gIC8qKlxuICAgICAqIFJldmVyc2Ugb3JkZXIgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXG4gICAgICovXG4gIC5yZXZlcnNlLXNtIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC8qKlxuICAgICAgICogQ29sdW1uIDEgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmNvbC1tZC0xIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogY29sdW1uKDEpO1xuICAgIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuICAvKipcbiAgICAgICAgICogT2Zmc2V0IDEgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXG4gICAgICAgICAqL1xuICAub2Zmc2V0LW1kLTEge1xuICAgIG1hcmdpbi1sZWZ0OiBjb2x1bW4oMSk7IH1cbiAgLyoqXG4gICAgICAgKiBDb2x1bW4gMiBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuY29sLW1kLTIge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiBjb2x1bW4oMik7XG4gICAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG4gIC8qKlxuICAgICAgICAgKiBPZmZzZXQgMiBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cbiAgICAgICAgICovXG4gIC5vZmZzZXQtbWQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IGNvbHVtbigyKTsgfVxuICAvKipcbiAgICAgICAqIENvbHVtbiAzIGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5jb2wtbWQtMyB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IGNvbHVtbigzKTtcbiAgICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cbiAgLyoqXG4gICAgICAgICAqIE9mZnNldCAzIGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxuICAgICAgICAgKi9cbiAgLm9mZnNldC1tZC0zIHtcbiAgICBtYXJnaW4tbGVmdDogY29sdW1uKDMpOyB9XG4gIC8qKlxuICAgICAgICogQ29sdW1uIDQgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmNvbC1tZC00IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogY29sdW1uKDQpO1xuICAgIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuICAvKipcbiAgICAgICAgICogT2Zmc2V0IDQgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXG4gICAgICAgICAqL1xuICAub2Zmc2V0LW1kLTQge1xuICAgIG1hcmdpbi1sZWZ0OiBjb2x1bW4oNCk7IH1cbiAgLyoqXG4gICAgICAgKiBDb2x1bW4gNSBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuY29sLW1kLTUge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiBjb2x1bW4oNSk7XG4gICAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG4gIC8qKlxuICAgICAgICAgKiBPZmZzZXQgNSBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cbiAgICAgICAgICovXG4gIC5vZmZzZXQtbWQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNvbHVtbig1KTsgfVxuICAvKipcbiAgICAgICAqIENvbHVtbiA2IGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5jb2wtbWQtNiB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IGNvbHVtbig2KTtcbiAgICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cbiAgLyoqXG4gICAgICAgICAqIE9mZnNldCA2IGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxuICAgICAgICAgKi9cbiAgLm9mZnNldC1tZC02IHtcbiAgICBtYXJnaW4tbGVmdDogY29sdW1uKDYpOyB9XG4gIC8qKlxuICAgICAgICogQ29sdW1uIDcgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmNvbC1tZC03IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogY29sdW1uKDcpO1xuICAgIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuICAvKipcbiAgICAgICAgICogT2Zmc2V0IDcgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXG4gICAgICAgICAqL1xuICAub2Zmc2V0LW1kLTcge1xuICAgIG1hcmdpbi1sZWZ0OiBjb2x1bW4oNyk7IH1cbiAgLyoqXG4gICAgICAgKiBDb2x1bW4gOCBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuY29sLW1kLTgge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiBjb2x1bW4oOCk7XG4gICAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG4gIC8qKlxuICAgICAgICAgKiBPZmZzZXQgOCBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cbiAgICAgICAgICovXG4gIC5vZmZzZXQtbWQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNvbHVtbig4KTsgfVxuICAvKipcbiAgICAgICAqIENvbHVtbiA5IGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5jb2wtbWQtOSB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IGNvbHVtbig5KTtcbiAgICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cbiAgLyoqXG4gICAgICAgICAqIE9mZnNldCA5IGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxuICAgICAgICAgKi9cbiAgLm9mZnNldC1tZC05IHtcbiAgICBtYXJnaW4tbGVmdDogY29sdW1uKDkpOyB9XG4gIC8qKlxuICAgICAgICogQ29sdW1uIDEwIGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5jb2wtbWQtMTAge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiBjb2x1bW4oMTApO1xuICAgIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuICAvKipcbiAgICAgICAgICogT2Zmc2V0IDEwIGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxuICAgICAgICAgKi9cbiAgLm9mZnNldC1tZC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNvbHVtbigxMCk7IH1cbiAgLyoqXG4gICAgICAgKiBDb2x1bW4gMTEgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmNvbC1tZC0xMSB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IGNvbHVtbigxMSk7XG4gICAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG4gIC8qKlxuICAgICAgICAgKiBPZmZzZXQgMTEgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXG4gICAgICAgICAqL1xuICAub2Zmc2V0LW1kLTExIHtcbiAgICBtYXJnaW4tbGVmdDogY29sdW1uKDExKTsgfVxuICAvKipcbiAgICAgICAqIENvbHVtbiAxMiBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuY29sLW1kLTEyIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogY29sdW1uKDEyKTtcbiAgICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cbiAgLyoqXG4gICAgICAgKiBBbGlnbiBgc3RyZXRjaGAgZm9yIHRoZSBtZCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5hbGlnbi1tZC1zdHJldGNoIHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAvKipcbiAgICAgICAqIEFsaWduIGBjZW50ZXJgIGZvciB0aGUgbWQgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuYWxpZ24tbWQtY2VudGVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC8qKlxuICAgICAgICogQWxpZ24gYGZsZXgtc3RhcnRgIGZvciB0aGUgbWQgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuYWxpZ24tbWQtZmxleC1zdGFydCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbiAgLyoqXG4gICAgICAgKiBBbGlnbiBgZmxleC1lbmRgIGZvciB0aGUgbWQgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuYWxpZ24tbWQtZmxleC1lbmQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuICAvKipcbiAgICAgICAqIEFsaWduIGBiYXNlbGluZWAgZm9yIHRoZSBtZCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5hbGlnbi1tZC1iYXNlbGluZSB7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gIC8qKlxuICAgICAgICogSnVzdGlmeSBgc3RhcnRgIGZvciB0aGUgbWQgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuanVzdGlmeS1tZC1zdGFydCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzdGFydDsgfVxuICAvKipcbiAgICAgICAqIEp1c3RpZnkgYGNlbnRlcmAgZm9yIHRoZSBtZCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5qdXN0aWZ5LW1kLWNlbnRlciB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLyoqXG4gICAgICAgKiBKdXN0aWZ5IGBzcGFjZS1iZXR3ZWVuYCBmb3IgdGhlIG1kIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmp1c3RpZnktbWQtc3BhY2UtYmV0d2VlbiB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIC8qKlxuICAgICAgICogSnVzdGlmeSBgc3BhY2UtYXJvdW5kYCBmb3IgdGhlIG1kIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmp1c3RpZnktbWQtc3BhY2UtYXJvdW5kIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuICAvKipcbiAgICAgICAqIEp1c3RpZnkgYHNwYWNlLWV2ZW5seWAgZm9yIHRoZSBtZCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5qdXN0aWZ5LW1kLXNwYWNlLWV2ZW5seSB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7IH1cbiAgLyoqXG4gICAgICAgKiBKdXN0aWZ5IGBmbGV4LXN0YXJ0YCBmb3IgdGhlIG1kIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmp1c3RpZnktbWQtZmxleC1zdGFydCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gIC8qKlxuICAgICAgICogSnVzdGlmeSBgZmxleC1lbmRgIGZvciB0aGUgbWQgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuanVzdGlmeS1tZC1mbGV4LWVuZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAvKipcbiAgICAgICAqIEJsZWVkIGxlZnQgZm9yIHRoZSBtZCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5ibGVlZC1tZC1sZWZ0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLyoqXG4gICAgICAgKiBCbGVlZCByaWdodCBmb3IgdGhlIG1kIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmJsZWVkLW1kLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC8qKlxuICAgICAqIE9yZGVyIGZpcnN0IGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxuICAgICAqL1xuICAuZmlyc3QtbWQge1xuICAgIG9yZGVyOiAtMTsgfVxuICAvKipcbiAgICAgKiBPcmRlciBsYXN0IGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxuICAgICAqL1xuICAubGFzdC1tZCB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLyoqXG4gICAgICogUmV2ZXJzZSBvcmRlciBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cbiAgICAgKi9cbiAgLnJldmVyc2UtbWQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgLyoqXG4gICAgICAgKiBDb2x1bW4gMSBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuY29sLWxnLTEge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiBjb2x1bW4oMSk7XG4gICAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG4gIC8qKlxuICAgICAgICAgKiBPZmZzZXQgMSBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cbiAgICAgICAgICovXG4gIC5vZmZzZXQtbGctMSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNvbHVtbigxKTsgfVxuICAvKipcbiAgICAgICAqIENvbHVtbiAyIGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5jb2wtbGctMiB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IGNvbHVtbigyKTtcbiAgICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cbiAgLyoqXG4gICAgICAgICAqIE9mZnNldCAyIGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxuICAgICAgICAgKi9cbiAgLm9mZnNldC1sZy0yIHtcbiAgICBtYXJnaW4tbGVmdDogY29sdW1uKDIpOyB9XG4gIC8qKlxuICAgICAgICogQ29sdW1uIDMgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmNvbC1sZy0zIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogY29sdW1uKDMpO1xuICAgIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuICAvKipcbiAgICAgICAgICogT2Zmc2V0IDMgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXG4gICAgICAgICAqL1xuICAub2Zmc2V0LWxnLTMge1xuICAgIG1hcmdpbi1sZWZ0OiBjb2x1bW4oMyk7IH1cbiAgLyoqXG4gICAgICAgKiBDb2x1bW4gNCBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuY29sLWxnLTQge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiBjb2x1bW4oNCk7XG4gICAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG4gIC8qKlxuICAgICAgICAgKiBPZmZzZXQgNCBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cbiAgICAgICAgICovXG4gIC5vZmZzZXQtbGctNCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNvbHVtbig0KTsgfVxuICAvKipcbiAgICAgICAqIENvbHVtbiA1IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5jb2wtbGctNSB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IGNvbHVtbig1KTtcbiAgICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cbiAgLyoqXG4gICAgICAgICAqIE9mZnNldCA1IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxuICAgICAgICAgKi9cbiAgLm9mZnNldC1sZy01IHtcbiAgICBtYXJnaW4tbGVmdDogY29sdW1uKDUpOyB9XG4gIC8qKlxuICAgICAgICogQ29sdW1uIDYgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmNvbC1sZy02IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogY29sdW1uKDYpO1xuICAgIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuICAvKipcbiAgICAgICAgICogT2Zmc2V0IDYgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXG4gICAgICAgICAqL1xuICAub2Zmc2V0LWxnLTYge1xuICAgIG1hcmdpbi1sZWZ0OiBjb2x1bW4oNik7IH1cbiAgLyoqXG4gICAgICAgKiBDb2x1bW4gNyBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuY29sLWxnLTcge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiBjb2x1bW4oNyk7XG4gICAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG4gIC8qKlxuICAgICAgICAgKiBPZmZzZXQgNyBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cbiAgICAgICAgICovXG4gIC5vZmZzZXQtbGctNyB7XG4gICAgbWFyZ2luLWxlZnQ6IGNvbHVtbig3KTsgfVxuICAvKipcbiAgICAgICAqIENvbHVtbiA4IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5jb2wtbGctOCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IGNvbHVtbig4KTtcbiAgICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cbiAgLyoqXG4gICAgICAgICAqIE9mZnNldCA4IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxuICAgICAgICAgKi9cbiAgLm9mZnNldC1sZy04IHtcbiAgICBtYXJnaW4tbGVmdDogY29sdW1uKDgpOyB9XG4gIC8qKlxuICAgICAgICogQ29sdW1uIDkgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmNvbC1sZy05IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogY29sdW1uKDkpO1xuICAgIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuICAvKipcbiAgICAgICAgICogT2Zmc2V0IDkgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXG4gICAgICAgICAqL1xuICAub2Zmc2V0LWxnLTkge1xuICAgIG1hcmdpbi1sZWZ0OiBjb2x1bW4oOSk7IH1cbiAgLyoqXG4gICAgICAgKiBDb2x1bW4gMTAgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmNvbC1sZy0xMCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IGNvbHVtbigxMCk7XG4gICAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG4gIC8qKlxuICAgICAgICAgKiBPZmZzZXQgMTAgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXG4gICAgICAgICAqL1xuICAub2Zmc2V0LWxnLTEwIHtcbiAgICBtYXJnaW4tbGVmdDogY29sdW1uKDEwKTsgfVxuICAvKipcbiAgICAgICAqIENvbHVtbiAxMSBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuY29sLWxnLTExIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogY29sdW1uKDExKTtcbiAgICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cbiAgLyoqXG4gICAgICAgICAqIE9mZnNldCAxMSBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cbiAgICAgICAgICovXG4gIC5vZmZzZXQtbGctMTEge1xuICAgIG1hcmdpbi1sZWZ0OiBjb2x1bW4oMTEpOyB9XG4gIC8qKlxuICAgICAgICogQ29sdW1uIDEyIGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5jb2wtbGctMTIge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiBjb2x1bW4oMTIpO1xuICAgIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuICAvKipcbiAgICAgICAqIEFsaWduIGBzdHJldGNoYCBmb3IgdGhlIGxnIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmFsaWduLWxnLXN0cmV0Y2gge1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG4gIC8qKlxuICAgICAgICogQWxpZ24gYGNlbnRlcmAgZm9yIHRoZSBsZyBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5hbGlnbi1sZy1jZW50ZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLyoqXG4gICAgICAgKiBBbGlnbiBgZmxleC1zdGFydGAgZm9yIHRoZSBsZyBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5hbGlnbi1sZy1mbGV4LXN0YXJ0IHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuICAvKipcbiAgICAgICAqIEFsaWduIGBmbGV4LWVuZGAgZm9yIHRoZSBsZyBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5hbGlnbi1sZy1mbGV4LWVuZCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG4gIC8qKlxuICAgICAgICogQWxpZ24gYGJhc2VsaW5lYCBmb3IgdGhlIGxnIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmFsaWduLWxnLWJhc2VsaW5lIHtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cbiAgLyoqXG4gICAgICAgKiBKdXN0aWZ5IGBzdGFydGAgZm9yIHRoZSBsZyBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5qdXN0aWZ5LWxnLXN0YXJ0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0OyB9XG4gIC8qKlxuICAgICAgICogSnVzdGlmeSBgY2VudGVyYCBmb3IgdGhlIGxnIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmp1c3RpZnktbGctY2VudGVyIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAvKipcbiAgICAgICAqIEp1c3RpZnkgYHNwYWNlLWJldHdlZW5gIGZvciB0aGUgbGcgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuanVzdGlmeS1sZy1zcGFjZS1iZXR3ZWVuIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgLyoqXG4gICAgICAgKiBKdXN0aWZ5IGBzcGFjZS1hcm91bmRgIGZvciB0aGUgbGcgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuanVzdGlmeS1sZy1zcGFjZS1hcm91bmQge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG4gIC8qKlxuICAgICAgICogSnVzdGlmeSBgc3BhY2UtZXZlbmx5YCBmb3IgdGhlIGxnIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmp1c3RpZnktbGctc3BhY2UtZXZlbmx5IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTsgfVxuICAvKipcbiAgICAgICAqIEp1c3RpZnkgYGZsZXgtc3RhcnRgIGZvciB0aGUgbGcgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuanVzdGlmeS1sZy1mbGV4LXN0YXJ0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLyoqXG4gICAgICAgKiBKdXN0aWZ5IGBmbGV4LWVuZGAgZm9yIHRoZSBsZyBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5qdXN0aWZ5LWxnLWZsZXgtZW5kIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gIC8qKlxuICAgICAgICogQmxlZWQgbGVmdCBmb3IgdGhlIGxnIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmJsZWVkLWxnLWxlZnQge1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAvKipcbiAgICAgICAqIEJsZWVkIHJpZ2h0IGZvciB0aGUgbGcgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuYmxlZWQtbGctcmlnaHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgLyoqXG4gICAgICogT3JkZXIgZmlyc3QgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXG4gICAgICovXG4gIC5maXJzdC1sZyB7XG4gICAgb3JkZXI6IC0xOyB9XG4gIC8qKlxuICAgICAqIE9yZGVyIGxhc3QgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXG4gICAgICovXG4gIC5sYXN0LWxnIHtcbiAgICBvcmRlcjogMTsgfVxuICAvKipcbiAgICAgKiBSZXZlcnNlIG9yZGVyIGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxuICAgICAqL1xuICAucmV2ZXJzZS1sZyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLyoqXG4gICAgICAgKiBDb2x1bW4gMSBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuY29sLXhsLTEge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiBjb2x1bW4oMSk7XG4gICAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG4gIC8qKlxuICAgICAgICAgKiBPZmZzZXQgMSBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cbiAgICAgICAgICovXG4gIC5vZmZzZXQteGwtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNvbHVtbigxKTsgfVxuICAvKipcbiAgICAgICAqIENvbHVtbiAyIGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5jb2wteGwtMiB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IGNvbHVtbigyKTtcbiAgICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cbiAgLyoqXG4gICAgICAgICAqIE9mZnNldCAyIGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxuICAgICAgICAgKi9cbiAgLm9mZnNldC14bC0yIHtcbiAgICBtYXJnaW4tbGVmdDogY29sdW1uKDIpOyB9XG4gIC8qKlxuICAgICAgICogQ29sdW1uIDMgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmNvbC14bC0zIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogY29sdW1uKDMpO1xuICAgIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuICAvKipcbiAgICAgICAgICogT2Zmc2V0IDMgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXG4gICAgICAgICAqL1xuICAub2Zmc2V0LXhsLTMge1xuICAgIG1hcmdpbi1sZWZ0OiBjb2x1bW4oMyk7IH1cbiAgLyoqXG4gICAgICAgKiBDb2x1bW4gNCBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuY29sLXhsLTQge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiBjb2x1bW4oNCk7XG4gICAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG4gIC8qKlxuICAgICAgICAgKiBPZmZzZXQgNCBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cbiAgICAgICAgICovXG4gIC5vZmZzZXQteGwtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNvbHVtbig0KTsgfVxuICAvKipcbiAgICAgICAqIENvbHVtbiA1IGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5jb2wteGwtNSB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IGNvbHVtbig1KTtcbiAgICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cbiAgLyoqXG4gICAgICAgICAqIE9mZnNldCA1IGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxuICAgICAgICAgKi9cbiAgLm9mZnNldC14bC01IHtcbiAgICBtYXJnaW4tbGVmdDogY29sdW1uKDUpOyB9XG4gIC8qKlxuICAgICAgICogQ29sdW1uIDYgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmNvbC14bC02IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogY29sdW1uKDYpO1xuICAgIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuICAvKipcbiAgICAgICAgICogT2Zmc2V0IDYgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXG4gICAgICAgICAqL1xuICAub2Zmc2V0LXhsLTYge1xuICAgIG1hcmdpbi1sZWZ0OiBjb2x1bW4oNik7IH1cbiAgLyoqXG4gICAgICAgKiBDb2x1bW4gNyBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuY29sLXhsLTcge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiBjb2x1bW4oNyk7XG4gICAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG4gIC8qKlxuICAgICAgICAgKiBPZmZzZXQgNyBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cbiAgICAgICAgICovXG4gIC5vZmZzZXQteGwtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IGNvbHVtbig3KTsgfVxuICAvKipcbiAgICAgICAqIENvbHVtbiA4IGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5jb2wteGwtOCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IGNvbHVtbig4KTtcbiAgICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cbiAgLyoqXG4gICAgICAgICAqIE9mZnNldCA4IGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxuICAgICAgICAgKi9cbiAgLm9mZnNldC14bC04IHtcbiAgICBtYXJnaW4tbGVmdDogY29sdW1uKDgpOyB9XG4gIC8qKlxuICAgICAgICogQ29sdW1uIDkgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmNvbC14bC05IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogY29sdW1uKDkpO1xuICAgIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuICAvKipcbiAgICAgICAgICogT2Zmc2V0IDkgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXG4gICAgICAgICAqL1xuICAub2Zmc2V0LXhsLTkge1xuICAgIG1hcmdpbi1sZWZ0OiBjb2x1bW4oOSk7IH1cbiAgLyoqXG4gICAgICAgKiBDb2x1bW4gMTAgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmNvbC14bC0xMCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IGNvbHVtbigxMCk7XG4gICAgcGFkZGluZzogMCAxMi42NjY2N3B4OyB9XG4gIC8qKlxuICAgICAgICAgKiBPZmZzZXQgMTAgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXG4gICAgICAgICAqL1xuICAub2Zmc2V0LXhsLTEwIHtcbiAgICBtYXJnaW4tbGVmdDogY29sdW1uKDEwKTsgfVxuICAvKipcbiAgICAgICAqIENvbHVtbiAxMSBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuY29sLXhsLTExIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogY29sdW1uKDExKTtcbiAgICBwYWRkaW5nOiAwIDEyLjY2NjY3cHg7IH1cbiAgLyoqXG4gICAgICAgICAqIE9mZnNldCAxMSBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cbiAgICAgICAgICovXG4gIC5vZmZzZXQteGwtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiBjb2x1bW4oMTEpOyB9XG4gIC8qKlxuICAgICAgICogQ29sdW1uIDEyIGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5jb2wteGwtMTIge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiBjb2x1bW4oMTIpO1xuICAgIHBhZGRpbmc6IDAgMTIuNjY2NjdweDsgfVxuICAvKipcbiAgICAgICAqIEFsaWduIGBzdHJldGNoYCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmFsaWduLXhsLXN0cmV0Y2gge1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG4gIC8qKlxuICAgICAgICogQWxpZ24gYGNlbnRlcmAgZm9yIHRoZSB4bCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5hbGlnbi14bC1jZW50ZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLyoqXG4gICAgICAgKiBBbGlnbiBgZmxleC1zdGFydGAgZm9yIHRoZSB4bCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5hbGlnbi14bC1mbGV4LXN0YXJ0IHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuICAvKipcbiAgICAgICAqIEFsaWduIGBmbGV4LWVuZGAgZm9yIHRoZSB4bCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5hbGlnbi14bC1mbGV4LWVuZCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG4gIC8qKlxuICAgICAgICogQWxpZ24gYGJhc2VsaW5lYCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmFsaWduLXhsLWJhc2VsaW5lIHtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cbiAgLyoqXG4gICAgICAgKiBKdXN0aWZ5IGBzdGFydGAgZm9yIHRoZSB4bCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5qdXN0aWZ5LXhsLXN0YXJ0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0OyB9XG4gIC8qKlxuICAgICAgICogSnVzdGlmeSBgY2VudGVyYCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmp1c3RpZnkteGwtY2VudGVyIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAvKipcbiAgICAgICAqIEp1c3RpZnkgYHNwYWNlLWJldHdlZW5gIGZvciB0aGUgeGwgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuanVzdGlmeS14bC1zcGFjZS1iZXR3ZWVuIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgLyoqXG4gICAgICAgKiBKdXN0aWZ5IGBzcGFjZS1hcm91bmRgIGZvciB0aGUgeGwgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuanVzdGlmeS14bC1zcGFjZS1hcm91bmQge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG4gIC8qKlxuICAgICAgICogSnVzdGlmeSBgc3BhY2UtZXZlbmx5YCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmp1c3RpZnkteGwtc3BhY2UtZXZlbmx5IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTsgfVxuICAvKipcbiAgICAgICAqIEp1c3RpZnkgYGZsZXgtc3RhcnRgIGZvciB0aGUgeGwgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuanVzdGlmeS14bC1mbGV4LXN0YXJ0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLyoqXG4gICAgICAgKiBKdXN0aWZ5IGBmbGV4LWVuZGAgZm9yIHRoZSB4bCBicmVha3BvaW50LlxuICAgICAgICovXG4gIC5qdXN0aWZ5LXhsLWZsZXgtZW5kIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gIC8qKlxuICAgICAgICogQmxlZWQgbGVmdCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXG4gICAgICAgKi9cbiAgLmJsZWVkLXhsLWxlZnQge1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAvKipcbiAgICAgICAqIEJsZWVkIHJpZ2h0IGZvciB0aGUgeGwgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuICAuYmxlZWQteGwtcmlnaHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgLyoqXG4gICAgICogT3JkZXIgZmlyc3QgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXG4gICAgICovXG4gIC5maXJzdC14bCB7XG4gICAgb3JkZXI6IC0xOyB9XG4gIC8qKlxuICAgICAqIE9yZGVyIGxhc3QgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXG4gICAgICovXG4gIC5sYXN0LXhsIHtcbiAgICBvcmRlcjogMTsgfVxuICAvKipcbiAgICAgKiBSZXZlcnNlIG9yZGVyIGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxuICAgICAqL1xuICAucmV2ZXJzZS14bCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9IH1cblxuLnBhZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiAxMzBweDsgfVxuXG4vKipcclxuICogVmlzdWFsbHkgaGlkZSBjb250ZW50IHVudGlsIGRvY3VtZW50IGlzIHJlYWR5LlxyXG4gKi9cbi5wYWdlOm5vdCgucmVhZHkpIHtcbiAgb3BhY2l0eTogMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQnV0dG9uXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBEZWZhdWx0IGJ1dHRvbi5cbiAqL1xuLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMTdweCAxNXB4IDE4cHg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXMgZWFzZS1vdXQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAuYnV0dG9uOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAwLjc1OyB9XG4gIC5idXR0b246OmJlZm9yZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMjRweDsgfVxuICAuYnV0dG9uOjphZnRlciB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgZm9udC1zaXplOiAyNHB4OyB9XG5cbi5idXR0b24tLXNtYWxsIHtcbiAgcGFkZGluZzogMTFweCAxNXB4OyB9XG5cbi5tZW51LWRlc2t0b3Age1xuICB3aWR0aDogY2FsYygxMDAlIC0gMjg2cHgpOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICAubWVudS1kZXNrdG9wIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAubWVudS1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5tZW51LWRlc2t0b3Age1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5tZW51LWRlc2t0b3AgLm1lbnUtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfSB9XG5cbi5tZW51LW1vYmlsZSB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAubWVudS1tb2JpbGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogYXV0bzsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICAubWVudS1tb2JpbGUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5tZW51LW1vYmlsZSAubWVudS1tYWluLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxODBweCk7XG4gIHBhZGRpbmc6IDMwcHggMDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsOyB9XG5cbi5tZW51LW1vYmlsZSAubWVudS1tYWluLWNvbnRhaW5lciAubWVudS1pdGVtID4gLnN1Yi1tZW51IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ubWVudS1tb2JpbGUgLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4uaXMtYWN0aXZlIC5tZW51LWl0ZW1fX2Fycm93IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH1cblxuLm1lbnUtbW9iaWxlIC5tZW51LW1haW4tY29udGFpbmVyIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1yaWdodDogMjBweDsgfVxuXG4ubWVudS1tb2JpbGUgLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gLm1lbnUtaXRlbV9fYXJyb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IC0zMHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTIwbXM7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpO1xuICB6LWluZGV4OiA5OyB9XG4gIC5tZW51LW1vYmlsZSAubWVudS1tYWluLWNvbnRhaW5lciAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiAubWVudS1pdGVtX19hcnJvdyBzdmcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLm1lbnUtbW9iaWxlIC5tZW51LW1haW4tY29udGFpbmVyIC5tZW51LWl0ZW0gPiAuc3ViLW1lbnUgLm1lbnUtaXRlbSA+IGEge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi5oZWFkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogNTBweDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogODJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHotaW5kZXg6IDkwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuaGVhZGVyIHtcbiAgICAgIGhlaWdodDogYXV0bzsgfSB9XG5cbi5oZWFkZXIgLndyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmhlYWRlciAud3JhcHBlciB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBoZWlnaHQ6IDEwMCU7IH0gfVxuXG4vKipcbiAqIERlc2t0b3AgbmF2aWdhdGlvblxuICovXG4ubWVudS1kZXNrdG9wIC5tZW51IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBoZWlnaHQ6IDgycHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5tZW51LWRlc2t0b3AgLm1lbnUge1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBoZWlnaHQ6IDUycHg7IH0gfVxuXG4ubWVudS1kZXNrdG9wIC5tZW51IC5tZW51LWl0ZW0gPiBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDAgMTIuNXB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgYm9yZGVyLWJvdHRvbS1zdHlsZTogbm9uZTsgfVxuICAubWVudS1kZXNrdG9wIC5tZW51IC5tZW51LWl0ZW0gPiBhOmhvdmVyIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IH1cblxuLm1lbnUtZGVza3RvcCAubWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhLFxuLm1lbnUtZGVza3RvcCAubWVudSAuY3VycmVudC1tZW51LXBhcmVudCA+IGEge1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG4gIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi5tZW51LWRlc2t0b3AgLm1lbnUtaXRlbSA+IC5zdWItbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDIzNnB4O1xuICBwYWRkaW5nOiAxNXB4IDMwcHg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMjUwbXMsIHRyYW5zZm9ybSAyNTBtcztcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3gtc2hhZG93OiAwIDAgN3B4IDAgcmdiYSgwLCAwLCAwLCAwLjE4KTtcbiAgb3BhY2l0eTogMDtcbiAgei1pbmRleDogOTA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5tZW51LWRlc2t0b3AgLm1lbnUtaXRlbSA+IC5zdWItbWVudTo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMjBweDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMjBweDtcbiAgICBjb250ZW50OiAnJzsgfVxuXG4ubWVudS1kZXNrdG9wIC5tZW51LWl0ZW06aG92ZXIgPiAuc3ViLW1lbnUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7IH1cblxuLm1lbnUtZGVza3RvcCAubWVudS1pdGVtID4gLnN1Yi1tZW51IC5tZW51LWl0ZW0gPiBhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTBweCAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgd2hpdGU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBjb2xvcjogd2hpdGU7IH1cbiAgLm1lbnUtZGVza3RvcCAubWVudS1pdGVtID4gLnN1Yi1tZW51IC5tZW51LWl0ZW0gPiBhOmhvdmVyIHtcbiAgICBjb2xvcjogYmxhY2s7IH1cblxuLm1lbnUtZGVza3RvcCAubWVudS1pdGVtID4gLnN1Yi1tZW51IC5tZW51LWl0ZW06bGFzdC1jaGlsZCA+IGEge1xuICBib3JkZXItYm90dG9tOiAwOyB9XG5cbi8qKlxuICogTW9iaWxlIG5hdmlnYXRpb25cbiAqL1xuLm1lbnUtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAyNHB4OyB9XG4gIC5tZW51LWJ1dHRvbiAuaXMtY2xvc2VkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAgIC5tZW51LWJ1dHRvbiAuaXMtY2xvc2VkID4gLmlubGluZS1pY29uIHtcbiAgICAgIHdpZHRoOiAyMXB4O1xuICAgICAgaGVpZ2h0OiAyNHB4OyB9XG4gIC5tZW51LWJ1dHRvbiAuaXMtb3BlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAgIC5tZW51LWJ1dHRvbiAuaXMtb3BlbiA+IC5pbmxpbmUtaWNvbiB7XG4gICAgICB3aWR0aDogMTVweDtcbiAgICAgIGhlaWdodDogMjRweDsgfVxuICAubWVudS1idXR0b24uaXMtYWN0aXZlID4gLmlzLWNsb3NlZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAubWVudS1idXR0b24uaXMtYWN0aXZlID4gLmlzLW9wZW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5tZW51LW1vYmlsZS13cmFwcGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDgycHg7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWJvdHRvbTogMzRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHotaW5kZXg6IDEwOyB9XG5cbi5tZW51LW1vYmlsZS13cmFwcGVyLWxpbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogY2FsYyg1MCUgLSA2MHB4KTtcbiAgd2lkdGg6IDEyMHB4O1xuICBoZWlnaHQ6IDRweDtcbiAgY29udGVudDogJyc7IH1cblxuLm1lbnUtbW9iaWxlIC5tZW51IC5tZW51LWl0ZW0ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLm1lbnUtbW9iaWxlIC5tZW51IC5tZW51LWl0ZW0gPiBhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBib3JkZXItYm90dG9tLXN0eWxlOiBub25lOyB9XG5cbi5tb2JpbGUtbWVudS1sb2dvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5sb2dvIHtcbiAgd2lkdGg6IDI4NnB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAubG9nbyB7XG4gICAgICBtYXJnaW46IDAgYXV0bzsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAubG9nbyB7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4OyB9IH1cbiAgLmxvZ28gPiBhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1heC1oZWlnaHQ6IDgwcHg7IH1cbiAgLmxvZ28gaW1nIHtcbiAgICBtYXgtaGVpZ2h0OiA4MHB4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb250YWN0IEJ1dHRvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIENvbnRhY3QgYnV0dG9ucy5cbiAqL1xuLmNvbnRhY3QtYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDdweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgY29sb3I6IHdoaXRlO1xuICB6LWluZGV4OiA3MDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MjFweCkge1xuICAgIC5jb250YWN0LWJ1dHRvbnMge1xuICAgICAgbWFyZ2luLWxlZnQ6IDdweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAuY29udGFjdC1idXR0b25zIHtcbiAgICAgIHRvcDogMzU1cHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmNvbnRhY3QtYnV0dG9ucyB7XG4gICAgICB0b3A6IDIwMHB4OyB9IH1cblxuLyoqXG4gKiBCdXR0b24uXG4gKi9cbi5jb250YWN0LWJ1dHRvbnNfX2J1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zIGVhc2Utb3V0O1xuICBib3JkZXItcmFkaXVzOiAyMnB4O1xuICBib3gtc2hhZG93OiAwIDAgNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjA2KTsgfVxuICAuY29udGFjdC1idXR0b25zX19idXR0b246aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuNTsgfVxuXG4uY29udGFjdC1idXR0b25zX19idXR0b246OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoNTAlLSg4cHgvMikpO1xuICByaWdodDogLTNweDtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgY29udGVudDogJyc7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmNvbnRhY3QtYnV0dG9uc19fYnV0dG9uOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiA3cHg7IH1cblxuLnNsaWRlc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnNsaWRlc2hvdyAub3dsLWRvdHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMjVweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuc2xpZGVzaG93IC5vd2wtZG90IHtcbiAgICB3aWR0aDogOXB4O1xuICAgIGhlaWdodDogOXB4O1xuICAgIG1hcmdpbjogMCAzcHg7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyNTBtcztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgb3BhY2l0eTogMC42OyB9XG4gICAgLnNsaWRlc2hvdyAub3dsLWRvdDpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLnNsaWRlc2hvdyAub3dsLWRvdC5hY3RpdmUge1xuICAgICAgd2lkdGg6IDExcHg7XG4gICAgICBoZWlnaHQ6IDExcHg7XG4gICAgICBvcGFjaXR5OiAxOyB9XG5cbi5zbGlkZV9faW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogNDQwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuc2xpZGVfX2ltYWdlIHtcbiAgICAgIGhlaWdodDogMzc1cHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnNsaWRlX19pbWFnZSB7XG4gICAgICBoZWlnaHQ6IDI3NXB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5zbGlkZV9faW1hZ2Uge1xuICAgICAgaGVpZ2h0OiAyMDBweDsgfSB9XG5cbi5zbGlkZS1wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDEwOyB9XG5cbi5zbGlkZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uc2xpZGVfX2NvbnRlbnQge1xuICBmb250LXNpemU6IDIycHg7XG4gIGZvbnQtc2l6ZTogMi4ycmVtO1xuICBsaW5lLWhlaWdodDogMS41NDU0NWVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgbWF4LXdpZHRoOiA1MCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogNDBweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuMjUpIDAlLCByZ2JhKDAsIDAsIDAsIDApIDEwMCUpO1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtc2hhZG93OiAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC45KTsgfVxuXG4uc2xpZGVfX2VkaXRvciB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuLnRlYXNlcl9faXRlbXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbjogLThweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLnRlYXNlcl9faXRlbXMge1xuICAgICAgbWFyZ2luOiAtMi41cHg7IH0gfVxuXG4udGVhc2VyIHtcbiAgd2lkdGg6IDE2LjY2NjclO1xuICBwYWRkaW5nOiA4cHg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMjUwbXM7XG4gIG9wYWNpdHk6IDE7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC50ZWFzZXIge1xuICAgICAgd2lkdGg6IDMzLjMzMzQlOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC50ZWFzZXIge1xuICAgICAgcGFkZGluZzogMi41cHg7IH0gfVxuICAudGVhc2VyOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAwLjY7IH1cblxuLnRlYXNlcl9faW1hZ2UgaW1nIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnRlYXNlcl9fc3VidGl0bGUge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBsaW5lLWhlaWdodDogMS41NjI1ZW07IH1cblxuLmNvbnRlbnQtZGVmYXVsdCB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjc1ZW07IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnRleHQtaW1hZ2Uge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfSB9XG5cbi8qKlxuICogQ29sdW1uc1xuICovXG4udGV4dC1pbWFnZV9fY29sdW1ucyB7XG4gIGJveC1zaGFkb3c6IDAgMCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMDYpOyB9XG4gIC50ZXh0LWltYWdlX19jb2x1bW5zLm5vLWJveC1zaGFkb3cge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLyoqXG4gKiBJbWFnZVxuICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC50ZXh0LWltYWdlX19pbWFnZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDgwJTsgfSB9XG5cbi8qKlxuICogVGV4dFxuICovXG4udGV4dC1pbWFnZV9fdGV4dCB7XG4gIHBhZGRpbmc6IDU1cHggNzVweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLnRleHQtaW1hZ2VfX3RleHQge1xuICAgICAgcGFkZGluZzogNDBweCAzMHB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC50ZXh0LWltYWdlX190ZXh0IHtcbiAgICAgIHBhZGRpbmc6IDU1cHggNDVweDsgfSB9XG5cbi8qKlxuICogRWRpdG9yLlxuICovXG4udGV4dC1pbWFnZV9fZWRpdG9yIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuODU3MTRlbTsgfVxuXG4vKipcbiAqIEJ1dHRvbi5cbiAqL1xuLnRleHQtaW1hZ2VfX2J1dHRvbiB7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cblxuLyoqXG4gKiBRdW90ZS5cbiAqL1xuLnRleHQtaW1hZ2VfX3F1b3RlIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTU1NTZlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAyN3B4IDc1cHg7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLnRleHQtaW1hZ2VfX3F1b3RlIHtcbiAgICAgIHBhZGRpbmctdG9wOiA2MHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDYwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuICAudGV4dC1pbWFnZV9fcXVvdGU6bm90KC50ZXh0LWltYWdlX19xdW90ZS0tZW1wdHkpOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgU29saWRcIjtcbiAgICBjb250ZW50OiAnXFxmMTBkJzsgfVxuICAudGV4dC1pbWFnZV9fcXVvdGU6bm90KC50ZXh0LWltYWdlX19xdW90ZS0tZW1wdHkpOjphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBTb2xpZFwiO1xuICAgIGNvbnRlbnQ6ICdcXGYxMGUnOyB9XG4gIC50ZXh0LWltYWdlX19xdW90ZSAuc3ZnLWlubGluZS0tZmEge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgIC50ZXh0LWltYWdlX19xdW90ZSAuc3ZnLWlubGluZS0tZmEge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cbiAgICAudGV4dC1pbWFnZV9fcXVvdGUgLnN2Zy1pbmxpbmUtLWZhOmZpcnN0LWNoaWxkIHtcbiAgICAgIHRvcDogMjBweDtcbiAgICAgIGxlZnQ6IDIwcHg7IH1cbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgICAgLnRleHQtaW1hZ2VfX3F1b3RlIC5zdmctaW5saW5lLS1mYTpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgbGVmdDogMDsgfSB9XG4gICAgLnRleHQtaW1hZ2VfX3F1b3RlIC5zdmctaW5saW5lLS1mYTpsYXN0LWNoaWxkIHtcbiAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgYm90dG9tOiAyMHB4OyB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAgIC50ZXh0LWltYWdlX19xdW90ZSAuc3ZnLWlubGluZS0tZmE6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgcmlnaHQ6IDA7IH0gfVxuXG4udGV4dC1pbWFnZV9fcXVvdGUtLWRlc2t0b3Age1xuICBkaXNwbGF5OiBibG9jazsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnRleHQtaW1hZ2VfX3F1b3RlLS1kZXNrdG9wIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4udGV4dC1pbWFnZV9fcXVvdGUtLXRhYmxldCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC50ZXh0LWltYWdlX19xdW90ZS0tdGFibGV0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuLnRleHQtaW1hZ2VfX3F1b3RlLS1lbXB0eSB7XG4gIHBhZGRpbmc6IDVweDsgfVxuXG4uY29sdW1ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmNvbHVtbnMge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9IH1cbiAgLmNvbHVtbnMudGV4dF9wb3NpdGlvbi0tcmlnaHQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgIC5jb2x1bW5zLnRleHRfcG9zaXRpb24tLXJpZ2h0IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9IH1cbiAgLmNvbHVtbnMudGV4dF9hbGlnbm1lbnQtLXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgIC5jb2x1bW5zLnRleHRfYWxpZ25tZW50LS1yaWdodCB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuXG4uY29sdW1uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNTAlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuY29sdW1uIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLm5ld3MtbGlzdF9faXRlbXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbjogLTE1cHg7IH1cbiAgLm5ld3MtbGlzdF9faXRlbXMgLm5ld3MtaXRlbSB7XG4gICAgd2lkdGg6IDMzLjMzMzQlO1xuICAgIHBhZGRpbmc6IDE1cHg7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAubmV3cy1sYXRlc3Qge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLm5ld3MtbGF0ZXN0X19pdGVtcyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDAgNTBweDsgfSB9XG5cbi5uZXdzLWxhdGVzdF9faXRlbXMgLm93bC1uYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYyg1MCUgLSA2MHB4KTtcbiAgbGVmdDogMDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogMTAwJTsgfVxuXG4ubmV3cy1sYXRlc3RfX2l0ZW1zIC5vd2wtcHJldjo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgTGlnaHRcIjtcbiAgY29udGVudDogJ1xcZjEwNCc7IH1cblxuLm5ld3MtbGF0ZXN0X19pdGVtcyAub3dsLW5leHQ6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IExpZ2h0XCI7XG4gIGNvbnRlbnQ6ICdcXGYxMDUnOyB9XG5cbi5uZXdzLWxhdGVzdF9faXRlbXMgLm93bC1wcmV2LFxuLm5ld3MtbGF0ZXN0X19pdGVtcyAub3dsLW5leHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDM1cHg7XG4gIGhlaWdodDogMzVweDtcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuICAubmV3cy1sYXRlc3RfX2l0ZW1zIC5vd2wtcHJldiAuc3ZnLWlubGluZS0tZmEsXG4gIC5uZXdzLWxhdGVzdF9faXRlbXMgLm93bC1uZXh0IC5zdmctaW5saW5lLS1mYSB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4OyB9XG5cbi5uZXdzLWl0ZW0ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ubmV3cy1pdGVtX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC1zaXplOiAyLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE2NjY3ZW07IH1cblxuLm5ld3MtaXRlbV9fbW9yZSB7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuICAubmV3cy1pdGVtX19tb3JlIC5pbmxpbmUtaWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICBtYXJnaW4tdG9wOiAxcHg7IH1cblxuLm5ld3Mtc2luZ2xlX19pbWFnZSBpbWcge1xuICB3aWR0aDogMTAwJTsgfVxuXG4ubmV3cy1zaW5nbGVfX2ltYWdlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luOiA4cHggLTJweDsgfVxuXG4ubmV3cy1zaW5nbGVfX2ltYWdlLXNtYWxsIHtcbiAgd2lkdGg6IDI1JTtcbiAgcGFkZGluZzogMnB4OyB9XG5cbi5wYWdpbmF0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cblxuLnBhZ2luYXRpb24gLnBhZ2UtbnVtYmVycyB7XG4gIG1hcmdpbjogMCAzcHg7XG4gIHBhZGRpbmc6IDVweCAxMnB4O1xuICB0cmFuc2l0aW9uOiAyMDBtcztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxuXG4ucGFnaW5hdGlvbiAucHJldixcbi5wYWdpbmF0aW9uIC5uZXh0IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uc2xpZGUtdGVhc2Vyc19faXRlbXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDAgNTBweDsgfVxuICAuc2xpZGUtdGVhc2Vyc19faXRlbXMgLm93bC1uYXYge1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA2MHB4O1xuICAgIGxlZnQ6IC01MHB4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMTAwcHgpOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLnNsaWRlLXRlYXNlcnNfX2l0ZW1zIC5vd2wtbmF2IHtcbiAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDYwcHgpOyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAuc2xpZGUtdGVhc2Vyc19faXRlbXMgLm93bC1uYXYge1xuICAgICAgICB0b3A6IGNhbGMoNTAlIC0gODBweCk7IH0gfVxuICAuc2xpZGUtdGVhc2Vyc19faXRlbXMgLm93bC1wcmV2OjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgTGlnaHRcIjtcbiAgICBjb250ZW50OiAnXFxmMTA0JzsgfVxuICAuc2xpZGUtdGVhc2Vyc19faXRlbXMgLm93bC1uZXh0OjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgTGlnaHRcIjtcbiAgICBjb250ZW50OiAnXFxmMTA1JzsgfVxuICAuc2xpZGUtdGVhc2Vyc19faXRlbXMgLm93bC1wcmV2LFxuICAuc2xpZGUtdGVhc2Vyc19faXRlbXMgLm93bC1uZXh0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuICAgIC5zbGlkZS10ZWFzZXJzX19pdGVtcyAub3dsLXByZXYgLnN2Zy1pbmxpbmUtLWZhLFxuICAgIC5zbGlkZS10ZWFzZXJzX19pdGVtcyAub3dsLW5leHQgLnN2Zy1pbmxpbmUtLWZhIHtcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgaGVpZ2h0OiAyMHB4OyB9XG5cbi8qKlxuICogVGl0bGUuXG4gKi9cbi5zbGlkZS10ZWFzZXJzX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgZm9udC1zaXplOiAyLjJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU0NTQ1ZW07IH1cblxuLyoqXG4gKiBEZXNjcmlwdGlvbi5cbiAqL1xuLnNsaWRlLXRlYXNlcnNfX2Rlc2NyaXB0aW9uIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuODU3MTRlbTsgfVxuXG4uZm9ybSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5mb3JtIGxhYmVsIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuODU3MTRlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAuZm9ybSBpbnB1dCxcbiAgLmZvcm0gdGV4dGFyZWEge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1XCIsIHNhbnMtc2VyaWY7XG4gICAgYm94LXNoYWRvdzogMCAwIDlweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7IH1cbiAgLmZvcm0gaW5wdXRbdHlwZT0nc3VibWl0J10ge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmc6IDIwcHggMTVweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmZvcm0gLmdmb3JtX3ZhbGlkYXRpb25fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogLTk5OTk5cHg7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuZm9ybSAuZ2lucHV0X3JlY2FwdGNoYSB7XG4gICAgbWFyZ2luLXRvcDogLTIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4uZm9vdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5mb290ZXIge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cblxuLyoqXG4gKiBGb290ZXIgdG9wXG4gKi9cbi5mb290ZXJfX3RvcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luOiAtMTBweDtcbiAgcGFkZGluZy10b3A6IDc1cHg7XG4gIHBhZGRpbmctYm90dG9tOiA1MHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuZm9vdGVyX190b3Age1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgcGFkZGluZy10b3A6IDUwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmZvb3Rlcl9fdG9wIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH0gfVxuXG4uZm9vdGVyX190b3AgPiAuZm9vdGVyX19jb2x1bW5zIHtcbiAgd2lkdGg6IDYwJTtcbiAgcGFkZGluZzogMTBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmZvb3Rlcl9fdG9wID4gLmZvb3Rlcl9fY29sdW1ucyB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5mb290ZXJfX3RvcCA+IC5mb290ZXJfX2NvbHVtbiB7XG4gIHdpZHRoOiAyMCU7XG4gIHBhZGRpbmc6IDEwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5mb290ZXJfX3RvcCA+IC5mb290ZXJfX2NvbHVtbiB7XG4gICAgICB3aWR0aDogNTAlOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5mb290ZXJfX3RvcCA+IC5mb290ZXJfX2NvbHVtbiB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5mb290ZXJfX3RvcCA+IC5mb290ZXJfX3Bob25lLWVtYWlsIHtcbiAgd2lkdGg6IDIwJTtcbiAgcGFkZGluZzogMTBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmZvb3Rlcl9fdG9wID4gLmZvb3Rlcl9fcGhvbmUtZW1haWwge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuZm9vdGVyX190b3AgPiAuZm9vdGVyX19waG9uZS1lbWFpbCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctbGVmdDogMDsgfSB9XG5cbi8qKlxuICogRm9vdGVyIGJvdHRvbVxuICovXG4uZm9vdGVyX19ib3R0b20ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWJvdHRvbTogMjVweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmZvb3Rlcl9fYm90dG9tIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfSB9XG4gIC5mb290ZXJfX2JvdHRvbSA+IGRpdiA+IHAsXG4gIC5mb290ZXJfX2JvdHRvbSA+IGRpdiA+IGEsXG4gIC5mb290ZXJfX2JvdHRvbSA+IGRpdiA+IGRpdixcbiAgLmZvb3Rlcl9fYm90dG9tID4gZGl2ID4gc3BhbiB7XG4gICAgb3BhY2l0eTogMC42OyB9XG5cbi8qKlxuICogRm9vdGVyIGJvdHRvbSBsZWZ0XG4gKi9cbi5mb290ZXJfX2JvdHRvbS1sZWZ0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuZm9vdGVyX19ib3R0b20tbGVmdCB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi8qKlxuICogRm9vdGVyIGJvdHRvbSByaWdodFxuICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC5mb290ZXJfX2JvdHRvbS1yaWdodCB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4vKipcbiAqIEZvb3RlciBjb2x1bW5zXG4gKi9cbi5mb290ZXJfX2NvbHVtbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5mb290ZXJfX2NvbHVtbnMge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1MHB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5mb290ZXJfX2NvbHVtbnMge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAuZm9vdGVyX19jb2x1bW4ge1xuICAgIG1hcmdpbi1ib3R0b206IDI1cHg7IH0gfVxuXG4vKipcbiAqIEZvb3RlciB3b29kc3BlY2llcy5cbiAqL1xuLmZvb3Rlcl9fd29vZHNwZWNpZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cblxuLmZvb3Rlcl9fd29vZHNwZWNpZXMgPiAuZm9vdGVyX19uYXYge1xuICB3aWR0aDogMzMuMzMzNCU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuZm9vdGVyX193b29kc3BlY2llcyA+IC5mb290ZXJfX25hdiB7XG4gICAgICB3aWR0aDogNTAlOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5mb290ZXJfX3dvb2RzcGVjaWVzID4gLmZvb3Rlcl9fbmF2IHtcbiAgICAgIHdpZHRoOiAzMy4zMzM0JTsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuZm9vdGVyX193b29kc3BlY2llcyA+IC5mb290ZXJfX25hdiB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5mb290ZXJfX2NvbHVtbnMtLXdvb2RzcGVjaWVzID4gLmZvb3Rlcl9fY29sdW1uOm50aC1jaGlsZCgxKSB7XG4gIHdpZHRoOiAyNSU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5mb290ZXJfX2NvbHVtbnMtLXdvb2RzcGVjaWVzID4gLmZvb3Rlcl9fY29sdW1uOm50aC1jaGlsZCgxKSB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5mb290ZXJfX2NvbHVtbnMtLXdvb2RzcGVjaWVzID4gLmZvb3Rlcl9fY29sdW1uOm50aC1jaGlsZCgyKSB7XG4gIHdpZHRoOiA3NSU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5mb290ZXJfX2NvbHVtbnMtLXdvb2RzcGVjaWVzID4gLmZvb3Rlcl9fY29sdW1uOm50aC1jaGlsZCgyKSB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi8qKlxuICogRm9vdGVyIHRpdGxlXG4gKi9cbi5mb290ZXJfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1ZW07IH1cblxuLyoqXG4gKiBGb290ZXIgbmF2XG4gKi9cbi5mb290ZXJfX25hdiB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjcxNDI5ZW07IH1cbiAgLmZvb3Rlcl9fbmF2IGEge1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IG5vbmU7IH1cblxuLyoqXG4gKiBGb290ZXIgY29udGFjdCBpbmZvXG4gKi9cbi5mb290ZXJfX2NvbnRhY3QtaW5mbyB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjcxNDI5ZW07IH1cblxuLmZvb3Rlcl9fY29udGFjdC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGxpbmUtaGVpZ2h0OiAyZW07IH1cblxuLmZvb3Rlcl9fY29udGFjdC10ZXh0IHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzNlbTsgfVxuXG4vKipcbiAqIEZvb3RlciBsb2dvXG4gKi9cbi5mb290ZXJfX2xvZ28ge1xuICBtYXJnaW4tdG9wOiAtMjBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmZvb3Rlcl9fbG9nbyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH0gfVxuXG4uZm9vdGVyX19sb2dvIGltZyB7XG4gIG1hcmdpbi1yaWdodDogMjBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmZvb3Rlcl9fbG9nbyBpbWcge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAuZm9vdGVyX19jb3B5cmlnaHQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH0gfVxuXG4uc29jaWFsLWljb25zIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTU1NTZlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZy10b3A6IDIwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5zb2NpYWwtaWNvbnMge1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH0gfVxuXG4uc29jaWFsLWljb24ge1xuICB3aWR0aDogMjBweDtcbiAgbWFyZ2luOiAwIDJweDsgfVxuICAuc29jaWFsLWljb246Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5zb2NpYWwtaWNvbjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnNvY2lhbC1pY29uID4gc3ZnLmlubGluZS1pY29uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cblxuLnNvY2lhbC1pY29uLS1mYWNlYm9vayB7XG4gIGNvbG9yOiAjM2I1OTk4OyB9XG5cbi5zb2NpYWwtaWNvbi0tbGlua2VkaW4ge1xuICBjb2xvcjogIzQ4NzViNDsgfVxuXG4uc29jaWFsLWljb24tLXR3aXR0ZXIge1xuICBjb2xvcjogIzMzY2NmZjsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5tZW51LWxhbmcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAubWVudS1sYW5nIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDMwcHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gIC5tZW51LWxhbmcge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IDI1cHg7XG4gICAgbWFyZ2luOiBhdXRvOyB9IH1cblxuLm1lbnUtbGFuZzpob3ZlciAubGFuZ3VhZ2Utc3dpdGNoIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLm1lbnUtbGFuZyA+IC5sYW5ndWFnZS1zd2l0Y2hfX2l0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDEwcHggMTBweCAxMHB4IDA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5tZW51LWxhbmcgPiAubGFuZ3VhZ2Utc3dpdGNoX19pdGVtIHtcbiAgICAgIG1hcmdpbjogMCAwIDEwcHg7IH0gfVxuICAubWVudS1sYW5nID4gLmxhbmd1YWdlLXN3aXRjaF9faXRlbTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgU29saWRcIjtcbiAgICBjb250ZW50OiAnXFxmMGQ3JzsgfVxuICAubWVudS1sYW5nID4gLmxhbmd1YWdlLXN3aXRjaF9faXRlbSAuaW5saW5lLWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDJweDtcbiAgICByaWdodDogLTE2cHg7IH1cblxuLmxhbmd1YWdlLXN3aXRjaCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHotaW5kZXg6IDkwOyB9XG4gIC5sYW5ndWFnZS1zd2l0Y2ggLmxhbmd1YWdlLXN3aXRjaF9faXRlbSB7XG4gICAgcGFkZGluZzogMCAxcHg7IH1cbiAgICAubGFuZ3VhZ2Utc3dpdGNoIC5sYW5ndWFnZS1zd2l0Y2hfX2l0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMXB4OyB9XG5cbi5sYW5ndWFnZS1zd2l0Y2hfX2xpbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7IH1cbiAgLmxhbmd1YWdlLXN3aXRjaF9fbGluayA+IGEge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmxhbmd1YWdlLXN3aXRjaF9fbGluazo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWluLXdpZHRoOiAyNXB4O1xuICAgIGhlaWdodDogMTlweDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIGNvbnRlbnQ6ICcnOyB9XG5cbi8qKlxuICogRHV0Y2ggbGFuZ3VhZ2UgbGluay5cbiAqL1xuLm1lbnUtbGFuZyAubGFuZ3VhZ2Utc3dpdGNoX19saW5rLS1ubDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ZsYWdzL25sLnN2Z1wiKTsgfVxuXG4vKipcbiAqIEZyZW5jaCBsYW5ndWFnZSBsaW5rLlxuICovXG4ubWVudS1sYW5nIC5sYW5ndWFnZS1zd2l0Y2hfX2xpbmstLWZyOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvZmxhZ3MvZnIuc3ZnXCIpOyB9XG5cbi8qKlxuICogRW5nbGlzaCBsYW5ndWFnZSBsaW5rLlxuICovXG4ubWVudS1sYW5nIC5sYW5ndWFnZS1zd2l0Y2hfX2xpbmstLWVuOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvZmxhZ3MvZ2Iuc3ZnXCIpOyB9XG5cbi8qKlxuICogR2VybWFuIGxhbmd1YWdlIGxpbmsuXG4gKi9cbi5tZW51LWxhbmcgLmxhbmd1YWdlLXN3aXRjaF9fbGluay0tZGU6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9mbGFncy9kZS5zdmdcIik7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFN1Ym1lbnUgKFBhZ2UpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBNYWluLlxuICovXG4ucGFnZS1zdWJtZW51IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTcxNDNlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTIzMHB4O1xuICBtYXJnaW46IC0xMDBweCBhdXRvIDEwMHB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6ICM0YTYyNjg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5wYWdlLXN1Ym1lbnUge1xuICAgICAgbWFyZ2luOiAtNTBweCBhdXRvIDEwMHB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5wYWdlLXN1Ym1lbnUge1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9IH1cblxuLyoqXG4gKiBUaXRsZS5cbiAqL1xuLnBhZ2Utc3VibWVudV9fdGl0bGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1iYXNpczogMjUlO1xuICBwYWRkaW5nOiAyNXB4IDQwcHg7XG4gIGJhY2tncm91bmQ6ICMwMDYzM2E7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5wYWdlLXN1Ym1lbnVfX3RpdGxlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDE1cHggMDsgfSB9XG5cbi8qKlxuICogTG9vcC5cbiAqL1xuLnBhZ2Utc3VibWVudV9fbG9vcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMTVweCAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAucGFnZS1zdWJtZW51X19sb29wIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLXRvcDogNTBweDtcbiAgICAgIHBhZGRpbmc6IDA7IH0gfVxuXG4vKipcbiAqIFN1Ym1lbnUgaXRlbS5cbiAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAuc3VibWVudS1pdGVtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cblxuLnN1Ym1lbnUtaXRlbSBhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW46IDE1cHggMDtcbiAgcGFkZGluZzogMHB4IDI1cHg7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM0YTYyNjg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5zdWJtZW51LWl0ZW0gYSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDRweCAyNXB4O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuc3VibWVudS1pdGVtIGE6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gIC5zdWJtZW51LWl0ZW0uYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTUwcHg7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgLnN1Ym1lbnUtaXRlbS5hY3RpdmUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAuc3VibWVudS1pdGVtOm5vdCguaXMtZmlyc3QtaXRlbSkge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gIC5zdWJtZW51LWl0ZW06bm90KC5pcy1maXJzdC1pdGVtKS5pcy1zaG93biB7XG4gICAgZGlzcGxheTogZmxleDsgfSB9XG5cbi8qKlxuICogV2hlbiB5b3UncmUgb24gYSBwYXJlbnQgcGFnZS5cbiAqL1xuLmlzLW1haW4gLnBhZ2Utc3VibWVudV9fbG9vcCB7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuLmlzLW1haW4gLmlzLWZpcnN0LWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgLmlzLW1haW4gLnN1Ym1lbnUtaXRlbTpub3QoLmlzLWZpcnN0LWl0ZW0pIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAuaXMtbWFpbiAuc3VibWVudS1pdGVtOm5vdCguaXMtZmlyc3QtaXRlbSkuaXMtc2hvd24ge1xuICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuXG4vKipcbiAqIEFkZGl0aW9uYWwgcnVsZXMgZm9yIHRoZSBmaXJzdCBpdGVtIGluIHRoZSBsaXN0LlxuICovXG4uaXMtZmlyc3QtaXRlbSBhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4uaXMtZmlyc3QtaXRlbSBzdmcge1xuICB3aWR0aDogMTNweDtcbiAgaGVpZ2h0OiAxM3B4O1xuICBtYXJnaW4tbGVmdDogMTBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gICAgLmlzLWZpcnN0LWl0ZW0gc3ZnIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uaXMtZmlyc3QtaXRlbS5pcy1hY3RpdmUgc3ZnIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfVxuXG4vKipcbiAqIEdhbGxlcnkgaXRlbXMuXG4gKi9cbi5nYWxsZXJ5X19pdGVtcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luOiAtMTVweDsgfVxuXG4vKipcbiAqIEdhbGxlcnkgaXRlbS5cbiAqL1xuLmdhbGxlcnlfX2l0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBjYWxjKDMzLjMzMzQlIC0gMzBweCk7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAxNXB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjAlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuZ2FsbGVyeV9faXRlbSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA2NSU7IH0gfVxuXG4udG9wLWhlYWRlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDg2MzM5O1xuICB6LWluZGV4OiA5MDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLnRvcC1oZWFkZXIge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9IH1cbiAgLnRvcC1oZWFkZXIgLndyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTsgfVxuXG4ubWVudS10b3AtY29udGFpbmVyIHVsIHtcbiAgZGlzcGxheTogZmxleDsgfVxuICAubWVudS10b3AtY29udGFpbmVyIHVsIGxpIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDsgfVxuICAgIC5tZW51LXRvcC1jb250YWluZXIgdWwgbGkuY3VycmVudC1tZW51LWl0ZW0gYSwgLm1lbnUtdG9wLWNvbnRhaW5lciB1bCBsaS5jdXJyZW50X3BhZ2VfaXRlbSBhIHtcbiAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgZm9udC13ZWlnaHQ6IDkwMDsgfVxuICAgIC5tZW51LXRvcC1jb250YWluZXIgdWwgbGkgYSB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZS1pbi1vdXQ7XG4gICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBub25lOyB9XG4gICAgICAubWVudS10b3AtY29udGFpbmVyIHVsIGxpIGE6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjc7IH1cblxuLnNlYXJjaC1mb3JtX193cmFwIGlucHV0IHtcbiAgd2lkdGg6IDI2NHB4O1xuICBiYWNrZ3JvdW5kOiAjRjRGNkY5O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGNvbG9yOiAjNEE2MjY4O1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgZm9udC1zaXplOiAxM3B4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuc2VhcmNoLWZvcm1fX3dyYXAgaW5wdXQge1xuICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAuc2VhcmNoLWZvcm1fX3dyYXAgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICBvcGFjaXR5OiAwLjg7IH1cblxuLnNlYXJjaC1yZXN1bHRzIHtcbiAgbWFyZ2luLXRvcDogNTBweDsgfVxuICAuc2VhcmNoLXJlc3VsdHMgLnBhZ2luYXRpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuLnNlYXJjaC1mb3JtX193cmFwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5zZWFyY2gtZm9ybV9fd3JhcCBzdmcge1xuICAgIHdpZHRoOiAxM3B4O1xuICAgIGhlaWdodDogMTNweDtcbiAgICBjb2xvcjogIzRBNjI2ODtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDE2cHg7XG4gICAgdG9wOiA4cHg7XG4gICAgb3BhY2l0eTogMC44OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgLnNlYXJjaC1mb3JtIC53cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAwOyB9IH1cblxuLnNlYXJjaC1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4uc2VhcmNoLWl0ZW1fX3dyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5zZWFyY2gtaXRlbV9faWNvbiB7XG4gIHdpZHRoOiA1NnB4O1xuICBoZWlnaHQ6IDU2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjNGM0YzQ0NDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLnNlYXJjaC1pdGVtX19pY29uIHN2ZyB7XG4gICAgaGVpZ2h0OiAxM3B4O1xuICAgIHdpZHRoOiAxM3B4O1xuICAgIGNvbG9yOiAjNEE2MjY4OyB9XG5cbi5zZWFyY2gtaXRlbV9fYm9keSB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA3OHB4KTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW4tbGVmdDogMjJweDsgfVxuXG4uc2VhcmNoLWl0ZW1fX3RpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4OyB9XG5cbi5zZWFyY2gtYnJlYWRjcnVtYl9fbGlua3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5zZWFyY2gtYnJlYWRjcnVtYl9fbGlua3Mgc3BhbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuICAgIC5zZWFyY2gtYnJlYWRjcnVtYl9fbGlua3Mgc3BhbjphZnRlciB7XG4gICAgICBjb250ZW50OiAnPic7XG4gICAgICBtYXJnaW4tbGVmdDogNXB4OyB9XG4gICAgLnNlYXJjaC1icmVhZGNydW1iX19saW5rcyBzcGFuOmxhc3QtY2hpbGQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7IH1cblxuLyoqXG4gKiBHZW5lcmljIGhlbHBlciBjbGFzc2VzLlxuICovXG4vKipcbiAqIFZpc3VhbGx5IGhpZGUgYW55IGVsZW1lbnQgZnJvbSB0aGUgdXNlci5cbiAqL1xuLnZpc3VhbGx5LWhpZGRlbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gIGNsaXAtcGF0aDogaW5zZXQoMXB4KTsgfVxuXG4vKipcbiAqIE1ha2UgbGF6eWxvYWQgcGxhY2Vob2xkZXIgMTAwJSB3aWRlLlxuICovXG4ubGF6eWxvYWQge1xuICB3aWR0aDogMTAwJTsgfVxuXG4vKipcbiAqIEhlbHBlciBjbGFzcyBmb3Igb2JqZWN0IGZpdCBwb2x5ZmlsbC4gQWRkIHRoaXMgY2xhc3MgdG8gYW55IGVsZW1lbnRcbiAqIHRoYXQgdXRpbGl6ZXMgdGhlIGBvYmplY3QtZml0YCBwcm9wZXJ0eS5cbiAqL1xuLm9iamVjdC1maXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1mYW1pbHk6ICdvYmplY3QtZml0OiBjb3ZlcjsnO1xuICAtby1vYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LWZpdDogY292ZXI7IH1cblxuLnRpdGxlLTEge1xuICBmb250LXNpemU6IDQwcHg7XG4gIGZvbnQtc2l6ZTogNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICBmb250LXdlaWdodDogNTAwOyB9XG5cbi50aXRsZS0yIHtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBmb250LXNpemU6IDNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE2NjY3ZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuLnRpdGxlLTMge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtc2l6ZTogMi40cmVtO1xuICBsaW5lLWhlaWdodDogMS4xNjY2N2VtO1xuICBmb250LXdlaWdodDogNTAwOyB9XG5cbi50aXRsZS00IHtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBmb250LXNpemU6IDIuMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTQ1NDVlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuXG4vKipcbiAqIE5vcm1hbCB3cmFwcGVyXG4gKi9cbi53cmFwcGVyIHtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwNzBweDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9XG5cbi53cmFwcGVyLS13aWRlLW5vLXBhZGRpbmcge1xuICBtYXgtd2lkdGg6IDEyMzBweDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi8qKlxuICogV2lkZSB3cmFwcGVyXG4gKi9cbi53cmFwcGVyLS13aWRlIHtcbiAgbWF4LXdpZHRoOiAxMjcwcHg7IH1cblxuLyoqXG4gKiBTbWFsbCB3cmFwcGVyXG4gKi9cbi53cmFwcGVyLS1zbWFsbCB7XG4gIG1heC13aWR0aDogOTYwcHg7IH1cblxuLm0xMCB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuLm0yMCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuLm0zMCB7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7IH1cblxuLm00MCB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7IH1cblxuLnRleHQtdGlueSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjUzODQ2ZW07IH1cblxuLmJhY2tncm91bmQtd2hpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxuXG4vKipcbiAqIEV2ZXJ5IGNvbmNlaXZhYmxlIEhUTUwgZWxlbWVudCB3aXRoaW4gYSBgLmNtcy1vdXRwdXRgIHdyYXBwZXIuXG4gKi9cbi5jbXMtb3V0cHV0ID4gKjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtOyB9XG5cbi5jbXMtb3V0cHV0IHVsIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyB9XG5cbi5jbXMtb3V0cHV0IG9sIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsOyB9XG5cbi5jbXMtb3V0cHV0IHAgPiBhIHtcbiAgY29sb3I6IGluaGVyaXQ7IH1cbiAgLmNtcy1vdXRwdXQgcCA+IGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi5jbXMtb3V0cHV0IHRhYmxlIHtcbiAgbWFyZ2luOiAxZW0gYXV0bztcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgfVxuXG4uY21zLW91dHB1dCB0YWJsZSB0aCxcbi5jbXMtb3V0cHV0IHRhYmxlIHRkIHtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NmZDlkYjsgfVxuXG4uY21zLW91dHB1dCB0YWJsZSB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZmQ5ZGI7IH1cblxuLyoqXG4gKiBHZW5lcmF0ZSB1dGlsaXR5IGNsYXNzZXMgZm9yIG1hbmlwdWxhdGlvbiBvZiBmb250IHNpemVzLlxuICovXG4udGV4dC1taWNybyB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjA4MzMzZW07IH1cblxuLnRleHQtdGlueSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjUzODQ2ZW07IH1cblxuLnRleHQtc21hbGwge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBsaW5lLWhlaWdodDogMS41NjI1ZW07IH1cblxuLnRleHQtcmVndWxhciB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU1NTU2ZW07IH1cblxuLnRleHQtbGFyZ2Uge1xuICBmb250LXNpemU6IDIycHg7XG4gIGZvbnQtc2l6ZTogMi4ycmVtO1xuICBsaW5lLWhlaWdodDogMS41NDU0NWVtOyB9XG5cbi50ZXh0LWh1Z2Uge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtc2l6ZTogMi40cmVtO1xuICBsaW5lLWhlaWdodDogMS4xNjY2N2VtOyB9XG5cbi50ZXh0LW1lZ2Ege1xuICBmb250LXNpemU6IDMwcHg7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTY2NjdlbTsgfVxuXG4udGV4dC1qdW1ibyB7XG4gIGZvbnQtc2l6ZTogNDBweDtcbiAgZm9udC1zaXplOiA0cmVtO1xuICBsaW5lLWhlaWdodDogMS4yZW07IH1cblxuLyoqXG4gKiBHZW5lcmF0ZSB1dGlsaXR5IGNsYXNzZXMgZm9yIG1hbmlwdWxhdGlvbiBvZiB0ZXh0IGFsaWdubWVudC5cbiAqL1xuLnRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLnRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLyoqXG4gKiBHZW5lcmF0ZSB1dGlsaXR5IGNsYXNzZXMgZm9yIG1hbmlwdWxhdGlvbiBvZiBmb250IHdlaWdodC5cbiAqL1xuLnRleHQtdGhpbiB7XG4gIGZvbnQtd2VpZ2h0OiAxMDA7IH1cblxuLnRleHQtZXh0cmEtbGlnaHQge1xuICBmb250LXdlaWdodDogMjAwOyB9XG5cbi50ZXh0LWxpZ2h0IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuXG4udGV4dC1ub3JtYWwge1xuICBmb250LXdlaWdodDogNDAwOyB9XG5cbi50ZXh0LW1lZGl1bSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuLnRleHQtc2VtaS1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG4udGV4dC1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG4udGV4dC1leHRyYS1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IDgwMDsgfVxuXG4udGV4dC1ibGFjayB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7IH1cblxuLyoqXG4gKiBDb2xvciBjb250ZXh0IHV0aWxpdHkgaGVscGVyIGNsYXNzZXMgZm9yIG1hbmlwdWxhdGluZyB0ZXh0IG9yIGJhY2tncm91bmRcbiAqIGNvbG9ycyBkaXJlY3RseSBpbiB0aGUgSFRNTC5cbiAqL1xuLyoqXG4gKiBVdGlsaXR5IGNsYXNzZXMgZm9yIG1hbmlwdWxhdGluZyBzdGFja2luZyBvcmRlciBpbiBIVE1MLlxuICovXG4uei1pbmRleC0wIHtcbiAgei1pbmRleDogMDsgfVxuXG4uei1pbmRleC0xIHtcbiAgei1pbmRleDogMTA7IH1cblxuLnotaW5kZXgtMiB7XG4gIHotaW5kZXg6IDIwOyB9XG5cbi56LWluZGV4LTMge1xuICB6LWluZGV4OiAzMDsgfVxuXG4uei1pbmRleC00IHtcbiAgei1pbmRleDogNDA7IH1cblxuLnotaW5kZXgtNSB7XG4gIHotaW5kZXg6IDUwOyB9XG5cbi56LWluZGV4LTYge1xuICB6LWluZGV4OiA2MDsgfVxuXG4uei1pbmRleC03IHtcbiAgei1pbmRleDogNzA7IH1cblxuLnotaW5kZXgtOCB7XG4gIHotaW5kZXg6IDgwOyB9XG5cbi56LWluZGV4LTkge1xuICB6LWluZGV4OiA5MDsgfVxuXG4uei1pbmRleC0xMCB7XG4gIHotaW5kZXg6IDEwMDsgfVxuIiwiLypcbiAqICBPd2wgQ2Fyb3VzZWwgLSBDb3JlXG4gKi9cbi5vd2wtY2Fyb3VzZWwge1xuXHRkaXNwbGF5OiBub25lO1xuXHR3aWR0aDogMTAwJTtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0LyogcG9zaXRpb24gcmVsYXRpdmUgYW5kIHotaW5kZXggZml4IHdlYmtpdCByZW5kZXJpbmcgZm9udHMgaXNzdWUgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAxO1xuXG5cdC5vd2wtc3RhZ2Uge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHQtbXMtdG91Y2gtYWN0aW9uOiBwYW4tWTtcblx0fVxuXG5cdC5vd2wtc3RhZ2U6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiLlwiO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGNsZWFyOiBib3RoO1xuXHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHRsaW5lLWhlaWdodDogMDtcblx0XHRoZWlnaHQ6IDA7XG5cdH1cblxuXHQub3dsLXN0YWdlLW91dGVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHQvKiBmaXggZm9yIGZsYXNoaW5nIGJhY2tncm91bmQgKi9cblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwcHgsIDBweCk7XG5cdH1cblxuXHQub3dsLWl0ZW0ge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRtaW4taGVpZ2h0OiAxcHg7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHQtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG5cdH1cblx0Lm93bC1pdGVtIGltZyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuXHR9XG5cblx0Lm93bC1uYXYuZGlzYWJsZWQsXG5cdC5vd2wtZG90cy5kaXNhYmxlZCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC5vd2wtbmF2IC5vd2wtcHJldixcblx0Lm93bC1uYXYgLm93bC1uZXh0LFxuXHQub3dsLWRvdCB7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdGN1cnNvcjogaGFuZDtcblx0XHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHRcdC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcblx0XHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHRcdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0XHR1c2VyLXNlbGVjdDogbm9uZTtcblx0fVxuXG5cdCYub3dsLWxvYWRlZCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHQmLm93bC1sb2FkaW5nIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0Ji5vd2wtaGlkZGVuIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cblx0Ji5vd2wtcmVmcmVzaCAub3dsLWl0ZW0ge1xuXHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0fVxuXG5cdCYub3dsLWRyYWcgLm93bC1pdGVtIHtcblx0XHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHRcdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHRcdHVzZXItc2VsZWN0OiBub25lO1xuXHR9XG5cblx0Ji5vd2wtZ3JhYiB7XG5cdFx0Y3Vyc29yOiBtb3ZlO1xuXHRcdGN1cnNvcjogZ3JhYjtcblx0fVxuXG5cdCYub3dsLXJ0bCB7XG5cdFx0ZGlyZWN0aW9uOiBydGw7XG5cdH1cblxuXHQmLm93bC1ydGwgLm93bC1pdGVtIHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdH1cbn1cblxuLyogTm8gSnMgKi9cbi5uby1qcyAub3dsLWNhcm91c2VsIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG4iLCIvKlxuICogIE93bCBDYXJvdXNlbCAtIEFuaW1hdGUgUGx1Z2luXG4gKi9cbi5vd2wtY2Fyb3VzZWx7XG5cdC5hbmltYXRlZCB7XG5cdFx0YW5pbWF0aW9uLWR1cmF0aW9uOiAxMDAwbXM7XG5cdFx0YW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcblx0fVxuXHQub3dsLWFuaW1hdGVkLWluIHtcblx0XHR6LWluZGV4OiAwO1xuXHR9XG5cdC5vd2wtYW5pbWF0ZWQtb3V0IHtcblx0XHR6LWluZGV4OiAxO1xuXHR9XG5cdC5mYWRlT3V0IHtcblx0XHRhbmltYXRpb24tbmFtZTogZmFkZU91dDtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXQge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cbn1cbiIsIi8qXG4gKiBcdE93bCBDYXJvdXNlbCAtIEF1dG8gSGVpZ2h0IFBsdWdpblxuICovXG5cbi5vd2wtaGVpZ2h0IHtcblx0dHJhbnNpdGlvbjogaGVpZ2h0IDUwMG1zIGVhc2UtaW4tb3V0O1xufVxuIiwiLypcbiAqIFx0T3dsIENhcm91c2VsIC0gTGF6eSBMb2FkIFBsdWdpblxuICovXG5cbi5vd2wtY2Fyb3VzZWwge1xuXHQub3dsLWl0ZW0ge1xuXHRcdC5vd2wtbGF6eSB7XG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZTtcblx0XHR9XG5cblx0XHRpbWcub3dsLWxhenkge1xuXHRcdFx0dHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcblx0XHR9XG5cdH1cbn1cblxuIiwiLypcbiAqIFx0T3dsIENhcm91c2VsIC0gVmlkZW8gUGx1Z2luXG4gKi9cblxuLm93bC1jYXJvdXNlbHtcblx0Lm93bC12aWRlby13cmFwcGVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGJhY2tncm91bmQ6ICMwMDA7XG5cdH1cblxuXHQub3dsLXZpZGVvLXBsYXktaWNvbiB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGhlaWdodDogODBweDtcblx0XHR3aWR0aDogODBweDtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0dG9wOiA1MCU7XG5cdFx0bWFyZ2luLWxlZnQ6IC00MHB4O1xuXHRcdG1hcmdpbi10b3A6IC00MHB4O1xuXHRcdGJhY2tncm91bmQ6IHVybChcIm93bC52aWRlby5wbGF5LnBuZ1wiKSBuby1yZXBlYXQ7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdHotaW5kZXg6IDE7XG5cdFx0LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDEwMG1zIGVhc2U7XG5cdH1cblxuXHQub3dsLXZpZGVvLXBsYXktaWNvbjpob3ZlciB7XG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgxLjMsIDEuMyk7XG5cdH1cblxuXHQub3dsLXZpZGVvLXBsYXlpbmcgLm93bC12aWRlby10bixcblx0Lm93bC12aWRlby1wbGF5aW5nIC5vd2wtdmlkZW8tcGxheS1pY29uIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0Lm93bC12aWRlby10biB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcblx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7XG5cdH1cblxuXHQub3dsLXZpZGVvLWZyYW1lIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ei1pbmRleDogMTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbn1cbiIsIi8qIE1hZ25pZmljIFBvcHVwIENTUyAqL1xuXG5AaW1wb3J0IFwic2V0dGluZ3NcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vL1xuLy8gQ29udGVudHM6XG4vL1xuLy8gMS4gR2VuZXJhbCBzdHlsZXNcbi8vICAgIC0gVHJhbnNsdXNjZW50IG92ZXJsYXlcbi8vICAgIC0gQ29udGFpbmVycywgd3JhcHBlcnNcbi8vICAgIC0gQ3Vyc29yc1xuLy8gICAgLSBIZWxwZXIgY2xhc3Nlc1xuLy8gMi4gQXBwZWFyYW5jZVxuLy8gICAgLSBQcmVsb2FkZXIgJiB0ZXh0IHRoYXQgZGlzcGxheXMgZXJyb3IgbWVzc2FnZXNcbi8vICAgIC0gQ1NTIHJlc2V0IGZvciBidXR0b25zXG4vLyAgICAtIENsb3NlIGljb25cbi8vICAgIC0gXCIxIG9mIFhcIiBjb3VudGVyXG4vLyAgICAtIE5hdmlnYXRpb24gKGxlZnQvcmlnaHQpIGFycm93c1xuLy8gICAgLSBJZnJhbWUgY29udGVudCB0eXBlIHN0eWxlc1xuLy8gICAgLSBJbWFnZSBjb250ZW50IHR5cGUgc3R5bGVzXG4vLyAgICAtIE1lZGlhIHF1ZXJ5IHdoZXJlIHNpemUgb2YgYXJyb3dzIGlzIHJlZHVjZWRcbi8vICAgIC0gSUU3IHN1cHBvcnRcbi8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gMS4gR2VuZXJhbCBzdHlsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLyBUcmFuc2x1c2NlbnQgb3ZlcmxheVxuLm1mcC1iZyB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogJG1mcC16LWluZGV4LWJhc2UgKyAyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgYmFja2dyb3VuZDogJG1mcC1vdmVybGF5LWNvbG9yO1xuICBvcGFjaXR5OiAkbWZwLW92ZXJsYXktb3BhY2l0eTtcbn1cblxuLy8gV3JhcHBlciBmb3IgcG9wdXBcbi5tZnAtd3JhcCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogJG1mcC16LWluZGV4LWJhc2UgKyAzO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IC8vIGZpeGVzIHdlYmtpdCBidWcgdGhhdCBjYW4gY2F1c2UgXCJmYWxzZVwiIHNjcm9sbGJhclxufVxuXG4vLyBSb290IGNvbnRhaW5lclxuLm1mcC1jb250YWluZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBwYWRkaW5nOiAwICRtZnAtcG9wdXAtcGFkZGluZy1sZWZ0O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vLyBWZXJ0aWNhbCBjZW50ZXJlciBoZWxwZXJcbi5tZnAtY29udGFpbmVyIHtcbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG4vLyBSZW1vdmUgdmVydGljYWwgY2VudGVyaW5nIHdoZW4gcG9wdXAgaGFzIGNsYXNzIGBtZnAtYWxpZ24tdG9wYFxuLm1mcC1hbGlnbi10b3Age1xuICAubWZwLWNvbnRhaW5lciB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gUG9wdXAgY29udGVudCBob2xkZXJcbi5tZnAtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgei1pbmRleDogJG1mcC16LWluZGV4LWJhc2UgKyA1O1xufVxuLm1mcC1pbmxpbmUtaG9sZGVyLFxuLm1mcC1hamF4LWhvbGRlciB7XG4gIC5tZnAtY29udGVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY3Vyc29yOiBhdXRvO1xuICB9XG59XG5cbi8vIEN1cnNvcnNcbi5tZnAtYWpheC1jdXIge1xuICBjdXJzb3I6IHByb2dyZXNzO1xufVxuLm1mcC16b29tLW91dC1jdXIge1xuICAmLCAubWZwLWltYWdlLWhvbGRlciAubWZwLWNsb3NlIHtcbiAgICBjdXJzb3I6IC1tb3otem9vbS1vdXQ7XG4gICAgY3Vyc29yOiAtd2Via2l0LXpvb20tb3V0O1xuICAgIGN1cnNvcjogem9vbS1vdXQ7XG4gIH1cbn1cbi5tZnAtem9vbSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY3Vyc29yOiAtd2Via2l0LXpvb20taW47XG4gIGN1cnNvcjogLW1vei16b29tLWluO1xuICBjdXJzb3I6IHpvb20taW47XG59XG4ubWZwLWF1dG8tY3Vyc29yIHtcbiAgLm1mcC1jb250ZW50IHtcbiAgICBjdXJzb3I6IGF1dG87XG4gIH1cbn1cblxuLm1mcC1jbG9zZSxcbi5tZnAtYXJyb3csXG4ubWZwLXByZWxvYWRlcixcbi5tZnAtY291bnRlciB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi8vIEhpZGUgdGhlIGltYWdlIGR1cmluZyB0aGUgbG9hZGluZ1xuLm1mcC1sb2FkaW5nIHtcbiAgJi5tZnAtZmlndXJlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vIEhlbHBlciBjbGFzcyB0aGF0IGhpZGVzIHN0dWZmXG5AaWYgJG1mcC11c2UtdmlzdWFsbHloaWRkZW4ge1xuICAvLyBGcm9tIEhUTUw1IEJvaWxlcnBsYXRlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvdjQuMi4wL2RvYy9jc3MubWQjdmlzdWFsbHloaWRkZW5cbiAgLm1mcC1oaWRlIHtcbiAgICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgICBtYXJnaW46IC0xcHggIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgfVxufSBAZWxzZSB7XG4gIC5tZnAtaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyAyLiBBcHBlYXJhbmNlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8gUHJlbG9hZGVyIGFuZCB0ZXh0IHRoYXQgZGlzcGxheXMgZXJyb3IgbWVzc2FnZXNcbi5tZnAtcHJlbG9hZGVyIHtcbiAgY29sb3I6ICRtZnAtY29udHJvbHMtdGV4dC1jb2xvcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogLTAuOGVtO1xuICBsZWZ0OiA4cHg7XG4gIHJpZ2h0OiA4cHg7XG4gIHotaW5kZXg6ICRtZnAtei1pbmRleC1iYXNlICsgNDtcbiAgYSB7XG4gICAgY29sb3I6ICRtZnAtY29udHJvbHMtdGV4dC1jb2xvcjtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkbWZwLWNvbnRyb2xzLXRleHQtY29sb3ItaG92ZXI7XG4gICAgfVxuICB9XG59XG5cbi8vIEhpZGUgcHJlbG9hZGVyIHdoZW4gY29udGVudCBzdWNjZXNzZnVsbHkgbG9hZGVkXG4ubWZwLXMtcmVhZHkge1xuICAubWZwLXByZWxvYWRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLyBIaWRlIGNvbnRlbnQgd2hlbiBpdCB3YXMgbm90IGxvYWRlZFxuLm1mcC1zLWVycm9yIHtcbiAgLm1mcC1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vIENTUy1yZXNldCBmb3IgYnV0dG9uc1xuYnV0dG9uIHtcbiAgJi5tZnAtY2xvc2UsXG4gICYubWZwLWFycm93IHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgei1pbmRleDogJG1mcC16LWluZGV4LWJhc2UgKyA2O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIH1cbiAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyOiAwXG4gIH1cbn1cblxuXG4vLyBDbG9zZSBpY29uXG4ubWZwLWNsb3NlIHtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgbGluZS1oZWlnaHQ6IDQ0cHg7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgb3BhY2l0eTogJG1mcC1jb250cm9scy1vcGFjaXR5O1xuICBwYWRkaW5nOiAwIDAgMThweCAxMHB4O1xuICBjb2xvcjogJG1mcC1jb250cm9scy1jb2xvcjtcblxuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBCYXNrZXJ2aWxsZSwgbW9ub3NwYWNlO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgdG9wOiAxcHg7XG4gIH1cbn1cbi5tZnAtY2xvc2UtYnRuLWluIHtcbiAgLm1mcC1jbG9zZSB7XG4gICAgY29sb3I6ICRtZnAtaW5uZXItY2xvc2UtaWNvbi1jb2xvcjtcbiAgfVxufVxuLm1mcC1pbWFnZS1ob2xkZXIsXG4ubWZwLWlmcmFtZS1ob2xkZXIge1xuICAubWZwLWNsb3NlIHtcbiAgICBjb2xvcjogJG1mcC1jb250cm9scy1jb2xvcjtcbiAgICByaWdodDogLTZweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLy8gXCIxIG9mIFhcIiBjb3VudGVyXG4ubWZwLWNvdW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGNvbG9yOiAkbWZwLWNvbnRyb2xzLXRleHQtY29sb3I7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8vIE5hdmlnYXRpb24gYXJyb3dzXG5AaWYgJG1mcC1pbmNsdWRlLWFycm93cyB7XG4gIC5tZnAtYXJyb3cge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvcGFjaXR5OiAkbWZwLWNvbnRyb2xzLW9wYWNpdHk7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC01NXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDkwcHg7XG4gICAgaGVpZ2h0OiAxMTBweDtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG4gICAgJjphY3RpdmUge1xuICAgICAgbWFyZ2luLXRvcDogLTU0cHg7XG4gICAgfVxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICBtYXJnaW4tdG9wOiAzNXB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDM1cHg7XG4gICAgICBib3JkZXI6IG1lZGl1bSBpbnNldCB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcblxuICAgICAgYm9yZGVyLXRvcC13aWR0aDogMTNweDtcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDEzcHg7XG4gICAgICB0b3A6OHB4O1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGJvcmRlci10b3Atd2lkdGg6IDIxcHg7XG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMXB4O1xuICAgICAgb3BhY2l0eTogMC43O1xuICAgIH1cblxuICB9XG5cbiAgLm1mcC1hcnJvdy1sZWZ0IHtcbiAgICBsZWZ0OiAwO1xuICAgICY6YWZ0ZXIge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxN3B4IHNvbGlkICRtZnAtY29udHJvbHMtY29sb3I7XG4gICAgICBtYXJnaW4tbGVmdDogMzFweDtcbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gICAgICBib3JkZXItcmlnaHQ6IDI3cHggc29saWQgJG1mcC1jb250cm9scy1ib3JkZXItY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1mcC1hcnJvdy1yaWdodCB7XG4gICAgcmlnaHQ6IDA7XG4gICAgJjphZnRlciB7XG4gICAgICBib3JkZXItbGVmdDogMTdweCBzb2xpZCAkbWZwLWNvbnRyb2xzLWNvbG9yO1xuICAgICAgbWFyZ2luLWxlZnQ6IDM5cHhcbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgYm9yZGVyLWxlZnQ6IDI3cHggc29saWQgJG1mcC1jb250cm9scy1ib3JkZXItY29sb3I7XG4gICAgfVxuICB9XG59XG5cblxuXG4vLyBJZnJhbWUgY29udGVudCB0eXBlXG5AaWYgJG1mcC1pbmNsdWRlLWlmcmFtZS10eXBlIHtcbiAgLm1mcC1pZnJhbWUtaG9sZGVyIHtcbiAgICBwYWRkaW5nLXRvcDogJG1mcC1pZnJhbWUtcGFkZGluZy10b3A7XG4gICAgcGFkZGluZy1ib3R0b206ICRtZnAtaWZyYW1lLXBhZGRpbmctdG9wO1xuICAgIC5tZnAtY29udGVudCB7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAkbWZwLWlmcmFtZS1tYXgtd2lkdGg7XG4gICAgfVxuICAgIC5tZnAtY2xvc2Uge1xuICAgICAgdG9wOiAtNDBweDtcbiAgICB9XG4gIH1cbiAgLm1mcC1pZnJhbWUtc2NhbGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nLXRvcDogJG1mcC1pZnJhbWUtcmF0aW8gKiAxMDAlO1xuICAgIGlmcmFtZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJveC1zaGFkb3c6ICRtZnAtc2hhZG93O1xuICAgICAgYmFja2dyb3VuZDogJG1mcC1pZnJhbWUtYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cbn1cblxuXG5cbi8vIEltYWdlIGNvbnRlbnQgdHlwZVxuQGlmICRtZnAtaW5jbHVkZS1pbWFnZS10eXBlIHtcblxuICAvKiBNYWluIGltYWdlIGluIHBvcHVwICovXG4gIGltZyB7XG4gICAgJi5tZnAtaW1nIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBwYWRkaW5nOiAkbWZwLWltYWdlLXBhZGRpbmctdG9wIDAgJG1mcC1pbWFnZS1wYWRkaW5nLWJvdHRvbTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC8qIFRoZSBzaGFkb3cgYmVoaW5kIHRoZSBpbWFnZSAqL1xuICAubWZwLWZpZ3VyZSB7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6ICRtZnAtaW1hZ2UtcGFkZGluZy10b3A7XG4gICAgICBib3R0b206ICRtZnAtaW1hZ2UtcGFkZGluZy1ib3R0b207XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICAgIGJveC1zaGFkb3c6ICRtZnAtc2hhZG93O1xuICAgICAgYmFja2dyb3VuZDogJG1mcC1pbWFnZS1iYWNrZ3JvdW5kO1xuICAgIH1cbiAgICBzbWFsbCB7XG4gICAgICBjb2xvcjogJG1mcC1jYXB0aW9uLXN1YnRpdGxlLWNvbG9yO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICB9XG4gICAgZmlndXJlIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbiAgLm1mcC1ib3R0b20tYmFyIHtcbiAgICBtYXJnaW4tdG9wOiAtJG1mcC1pbWFnZS1wYWRkaW5nLWJvdHRvbSArIDQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGN1cnNvcjogYXV0bztcbiAgfVxuICAubWZwLXRpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiAkbWZwLWNhcHRpb24tdGl0bGUtY29sb3I7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIHBhZGRpbmctcmlnaHQ6IDM2cHg7IC8vIGxlYXZlIHNvbWUgc3BhY2UgZm9yIGNvdW50ZXIgYXQgcmlnaHQgc2lkZVxuICB9XG5cbiAgLm1mcC1pbWFnZS1ob2xkZXIge1xuICAgIC5tZnAtY29udGVudCB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLm1mcC1nYWxsZXJ5IHtcbiAgICAubWZwLWltYWdlLWhvbGRlciB7XG4gICAgICAubWZwLWZpZ3VyZSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gIEBpZiAkbWZwLWluY2x1ZGUtbW9iaWxlLWxheW91dC1mb3ItaW1hZ2Uge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDgwMHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSksIHNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6IDMwMHB4KSB7XG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSBhbGwgcGFkZGluZ3MgYXJvdW5kIHRoZSBpbWFnZSBvbiBzbWFsbCBzY3JlZW5cbiAgICAgICAqL1xuICAgICAgLm1mcC1pbWctbW9iaWxlIHtcbiAgICAgICAgLm1mcC1pbWFnZS1ob2xkZXIge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgJi5tZnAtaW1nIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5tZnAtZmlndXJlIHtcbiAgICAgICAgICAvLyBUaGUgc2hhZG93IGJlaGluZCB0aGUgaW1hZ2VcbiAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgc21hbGwge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLm1mcC1ib3R0b20tYmFyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNik7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgcGFkZGluZzogM3B4IDVweDtcbiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5tZnAtY291bnRlciB7XG4gICAgICAgICAgcmlnaHQ6IDVweDtcbiAgICAgICAgICB0b3A6IDNweDtcbiAgICAgICAgfVxuICAgICAgICAubWZwLWNsb3NlIHtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgd2lkdGg6IDM1cHg7XG4gICAgICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5cbi8vIFNjYWxlIG5hdmlnYXRpb24gYXJyb3dzIGFuZCByZWR1Y2UgcGFkZGluZyBmcm9tIHNpZGVzXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA5MDBweCkge1xuICAubWZwLWFycm93IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC43NSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcbiAgfVxuICAubWZwLWFycm93LWxlZnQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwO1xuICB9XG4gIC5tZnAtYXJyb3ctcmlnaHQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlO1xuICB9XG4gIC5tZnAtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRtZnAtcG9wdXAtcGFkZGluZy1sZWZ0LW1vYmlsZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkbWZwLXBvcHVwLXBhZGRpbmctbGVmdC1tb2JpbGU7XG4gIH1cbn1cblxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyAgICAgIFNldHRpbmdzICAgICAgLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLyBvdmVybGF5XG4kbWZwLW92ZXJsYXktY29sb3I6ICAgICAgICAgICAgICAgICAgICMwYjBiMGIgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAvLyBDb2xvciBvZiBvdmVybGF5IHNjcmVlblxuJG1mcC1vdmVybGF5LW9wYWNpdHk6ICAgICAgICAgICAgICAgICAwLjggIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3BhY2l0eSBvZiBvdmVybGF5IHNjcmVlblxuJG1mcC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgICAgICAwIDAgOHB4IHJnYmEoMCwgMCwgMCwgMC42KSAhZGVmYXVsdDsgLy8gU2hhZG93IG9uIGltYWdlIG9yIGlmcmFtZVxuXG4vLyBzcGFjaW5nXG4kbWZwLXBvcHVwLXBhZGRpbmctbGVmdDogICAgICAgICAgICAgIDhweCAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgICAvLyBQYWRkaW5nIGZyb20gbGVmdCBhbmQgZnJvbSByaWdodCBzaWRlXG4kbWZwLXBvcHVwLXBhZGRpbmctbGVmdC1tb2JpbGU6ICAgICAgIDZweCAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYW1lIGFzIGFib3ZlLCBidXQgaXMgYXBwbGllZCB3aGVuIHdpZHRoIG9mIHdpbmRvdyBpcyBsZXNzIHRoYW4gODAwcHhcblxuJG1mcC16LWluZGV4LWJhc2U6ICAgICAgICAgICAgICAgICAgICAxMDQwICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgLy8gQmFzZSB6LWluZGV4IG9mIHBvcHVwXG5cbi8vIGNvbnRyb2xzXG4kbWZwLWluY2x1ZGUtYXJyb3dzOiAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAvLyBJbmNsdWRlIHN0eWxlcyBmb3IgbmF2IGFycm93c1xuJG1mcC1jb250cm9scy1vcGFjaXR5OiAgICAgICAgICAgICAgICAwLjY1ICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgLy8gT3BhY2l0eSBvZiBjb250cm9sc1xuJG1mcC1jb250cm9scy1jb2xvcjogICAgICAgICAgICAgICAgICAjRkZGICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgLy8gQ29sb3Igb2YgY29udHJvbHNcbiRtZnAtY29udHJvbHMtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgIzNGM0YzRiAhZGVmYXVsdDsgXHQgICAgICAgICAgICAgICAgIC8vIEJvcmRlciBjb2xvciBvZiBjb250cm9sc1xuJG1mcC1pbm5lci1jbG9zZS1pY29uLWNvbG9yOiAgICAgICAgICAjMzMzICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgLy8gQ29sb3Igb2YgY2xvc2UgYnV0dG9uIHdoZW4gaW5zaWRlXG4kbWZwLWNvbnRyb2xzLXRleHQtY29sb3I6ICAgICAgICAgICAgICNDQ0MgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAvLyBDb2xvciBvZiBwcmVsb2FkZXIgYW5kIFwiMSBvZiBYXCIgaW5kaWNhdG9yXG4kbWZwLWNvbnRyb2xzLXRleHQtY29sb3ItaG92ZXI6ICAgICAgICNGRkYgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAvLyBIb3ZlciBjb2xvciBvZiBwcmVsb2FkZXIgYW5kIFwiMSBvZiBYXCIgaW5kaWNhdG9yXG5cbi8vIElmcmFtZS10eXBlIG9wdGlvbnNcbiRtZnAtaW5jbHVkZS1pZnJhbWUtdHlwZTogICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgIC8vIEVuYWJsZSBJZnJhbWUtdHlwZSBwb3B1cHNcbiRtZnAtaWZyYW1lLXBhZGRpbmctdG9wOiAgICAgICAgICAgICAgNDBweCAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgIC8vIElmcmFtZSBwYWRkaW5nIHRvcFxuJG1mcC1pZnJhbWUtYmFja2dyb3VuZDogICAgICAgICAgICAgICAjMDAwICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgLy8gQmFja2dyb3VuZCBjb2xvciBvZiBpZnJhbWVzXG4kbWZwLWlmcmFtZS1tYXgtd2lkdGg6ICAgICAgICAgICAgICAgIDkwMHB4ICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAvLyBNYXhpbXVtIHdpZHRoIG9mIGlmcmFtZXNcbiRtZnAtaWZyYW1lLXJhdGlvOiAgICAgICAgICAgICAgICAgICAgOS8xNiAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgIC8vIFJhdGlvIG9mIGlmcmFtZSAoOS8xNiA9IHdpZGVzY3JlZW4sIDMvNCA9IHN0YW5kYXJkLCBldGMuKVxuXG4vLyBJbWFnZS10eXBlIG9wdGlvbnNcbiRtZnAtaW5jbHVkZS1pbWFnZS10eXBlOiAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgIC8vIEVuYWJsZSBJbWFnZS10eXBlIHBvcHVwc1xuJG1mcC1pbWFnZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAjNDQ0ICFkZWZhdWx0O1xuJG1mcC1pbWFnZS1wYWRkaW5nLXRvcDogICAgICAgICAgICAgICA0MHB4ICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgLy8gSW1hZ2UgcGFkZGluZyB0b3BcbiRtZnAtaW1hZ2UtcGFkZGluZy1ib3R0b206ICAgICAgICAgICAgNDBweCAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgIC8vIEltYWdlIHBhZGRpbmcgYm90dG9tXG4kbWZwLWluY2x1ZGUtbW9iaWxlLWxheW91dC1mb3ItaW1hZ2U6IHRydWUgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAvLyBSZW1vdmVzIHBhZGRpbmdzIGZyb20gdG9wIGFuZCBib3R0b21cblxuLy8gSW1hZ2UgY2FwdGlvbiBvcHRpb25zXG4kbWZwLWNhcHRpb24tdGl0bGUtY29sb3I6ICAgICAgICAgICAgICNGM0YzRjMgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAvLyBDYXB0aW9uIHRpdGxlIGNvbG9yXG4kbWZwLWNhcHRpb24tc3VidGl0bGUtY29sb3I6ICAgICAgICAgICNCREJEQkQgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAvLyBDYXB0aW9uIHN1YnRpdGxlIGNvbG9yXG5cbi8vIEExMXlcbiRtZnAtdXNlLXZpc3VhbGx5aGlkZGVuOiAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgIC8vIEhpZGUgY29udGVudCBmcm9tIGJyb3dzZXJzLCBidXQgbWFrZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUmVzZXRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ3VzdG9tIHVzZXIgYWdlbnQgcmVzZXRzIGFuZCBvdmVycmlkZXMgdGhhdCBhcmUgbm90IHByZXNlbnQgaW5cbiAqIE5vcm1hbGl6ZSA3LjAuMC4gVGhpcyBtb3N0bHkgcmVtb3ZlcyBzb21lIGFubm95aW5nIG1hcmdpbiBhbmQgcGFkZGluZ1xuICogZGVmYXVsdHMsIGJvcmRlciByYWRpdXMsIGFuZCBvdXRsaW5lcy5cbiAqL1xuXG5hIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuXG4vKipcbiAqIDEuIFJlbW92ZSBib3JkZXIgcmFkaXVzIG9uIENocm9tZSA2Mi4wKyBvbiBtYWNPUy5cbiAqL1xuXG5idXR0b24ge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7IC8vIFsxXVxuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG59XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xufVxuXG5ociB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuXG4vKipcbiAqIDEuIFJlbW92ZSB3aGl0ZSBzcGFjZS5cbiAqL1xuXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgLy8gWzFdXG59XG5cblxuLyoqXG4gKiAxLiBSZW1vdmUgaW5oZXJpdGVkIHVzZXIgYWdlbnQgYXBwZWFyYW5jZS5cbiAqL1xuXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7IC8vIFsxXVxufVxuXG5cbi8qKlxuICogMS4gT25seSBhbGxvdyB2ZXJ0aWNhbCByZXNpemluZyB0byBwcmV2ZW50IHRoZSB0ZXh0YXJlYVxuICogICAgZnJvbSBvdmVyZmxvd2luZyB0aGUgY29udGFpbmVyLlxuICovXG5cbnRleHRhcmVhIHtcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cblxudWwsXG5vbCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG5wIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5cbi8qKlxuICogMS4gQ29sbGFwc2UgYm9yZGVycyB0byBwcmV2ZW50IGRvdWJsZSBzaWRlZCBib3JkZXJzLlxuICovXG5cbnRhYmxlIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyAvLyBbMV1cbn1cblxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCYXNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtYXJnaW4gYW5kIHBhZGRpbmcgZnJvbSBldmVyeSBzZWxlY3RvciBpbmNsdWRpbmcgdGhlaXJcbiAqIHBzdWVkbyBzZWxlY3RvcnMuXG4gKlxuICogMS4gTW9yZSBzZW5zaWJsZSBkZWZhdWx0IGJveCBzaXppbmcuXG4gKiAgICAoY3NzLXRyaWNrcy5jb20vaW5oZXJpdGluZy1ib3gtc2l6aW5nLXByb2JhYmx5LXNsaWdodGx5LWJldHRlci1iZXN0LXByYWN0aWNlKS5cbiAqL1xuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IC8vIFsxXVxufVxuXG5cbi8qKlxuICogU2V0IGhlaWdodCBvZiB0aGUgZG9jdW1lbnQgdG8gbWF4aXVtIHZpZXdwb3J0IGhlaWdodC5cbiAqXG4gKiAxLiBTZXQgcm9vdCBmb250IHNpemUgdG8gMTAuXG4gKi9cblxuaHRtbCB7XG4gIGhlaWdodDogMTAwdmg7XG4gIGZvbnQtc2l6ZTogNjIuNSU7IC8vIFsxXVxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5cbi8qKlxuICogU2V0IG1pbmltYWwgaGVpZ2h0IG9mIHRoZSBib2R5IHRvIG1heGltdW0gdmlld3BvcnQgaGVpZ2h0IHRvXG4gKiBtYXRjaCB0aGUgZG9jdW1lbnQncyBoZWlnaHQuXG4gKlxuICogMS4gRmlyZWZveCAyNSsuXG4gKiAyLiBDaHJvbWUgNSsuXG4gKi9cblxuYm9keSB7XG4gIEBpbmNsdWRlIGZvbnQoZm9udC1zaXplKCd0aW55JyksIGxpbmUtaGVpZ2h0KCd0aW55JykpO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJvZHktYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvci1ib2R5O1xuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJvZHk7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gIC8vIG9wYWNpdHk6IDA7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IC8vIFsxXVxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsgLy8gWzJdXG5cbiAgJi5pcy1sb2FkZWQge1xuICAgIHRyYW5zaXRpb246IDI0MG1zIGVhc2UtaW47XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1peGluc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuXG4vLyBDbGVhcmZpeFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8gU2ltcGxlIGNsZWFyZml4IG1peGluIHRvIGNsZWFyIGVsZW1lbnRzLlxuLy8gKGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvY3NzL2NsZWFyLWZpeC8pXG5AbWl4aW4gY2xlYXJmaXgoKSB7XG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgfVxufVxuXG5cbi8vIEZvbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8vIFRoZSBmb250IG1peGluIGFkZHMgYHJlbWAgdW5pdCBiYXNlZCBmb250IHNpemUgcHJvcGVydHksIGEgZmFsbGJhY2tcbi8vIGBweGAgdW5pdCBiYXNlZCBmb250IHNpemUgcHJvcGVydHksIGFuZCBhIGBlbWAgdW5pdCBiYXNlZCBsaW5lIGhlaWdodFxuLy8gcHJvcGVydHkgdG8gYW55IHJ1bGUuXG4vL1xuLy8gVXNhZ2U6ICBAaW5jbHVkZSBmb250LXNpemUoMTZweCwgMjRweCk7XG5AbWl4aW4gZm9udCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQpIHtcblxuICBAaWYgKHVuaXRsZXNzKCRmb250LXNpemUpKSB7XG4gICAgQGVycm9yIFwiVmFsdWUgZm9yIGAjeyRmb250LXNpemV9YCBzaG91bGQgYmUgYSBgcHhgIHVuaXRcIjsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBxdW90ZXNcbiAgfVxuXG4gIEBpZiAodW5pdGxlc3MoJGxpbmUtaGVpZ2h0KSkge1xuICAgIEBlcnJvciBcIlZhbHVlIGZvciBgI3skbGluZS1oZWlnaHR9YCBzaG91bGQgYmUgYSBgcHhgIHVuaXRcIjsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBxdW90ZXNcbiAgfVxuICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIGZvbnQtc2l6ZTogcmVtKCRmb250LXNpemUpO1xuICBsaW5lLWhlaWdodDogKCgkbGluZS1oZWlnaHQgLyAkZm9udC1zaXplKSAqIDFlbSk7XG59XG5cblxuLy8gSWNvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8gSWNvbiBtaXhpbiBmb3IgYWRkaW5nIGljb25zIGFzIGNvbnRlbnQgaW4gcHN1ZWRvIHNlbGVjdG9ycy5cbi8vIFJlcXVpcmVzIEZvbnRBd2Vzb21lLlxuLy9cbi8vIFVzYWdlOiAgQGluY2x1ZGUgaWNvbignZjEwMCcpO1xuLy8gT3V0cHV0OiBjb250ZW50OiAnXFxmMTAwJztcbi8vICAgICAgICAgZm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7XG5AbWl4aW4gaWNvbigkY29udGVudCwgJGZhbWlseSkge1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA1ICN7JGZhbWlseX0nO1xuICBjb250ZW50OiB1bmljb2RlKCRjb250ZW50KTtcbn1cblxuXG4vLyBNZWRpYVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8gTWVkaWEgbWl4aW4gYWNjb3JkaW5nIHRvIFwiVGhlIDEwMCUgQ29ycmVjdCBXYXkgVG8gRG8gQ1NTIEJyZWFrcG9pbnRzXCJcbi8vIChodHRwczovL21lZGl1bS5mcmVlY29kZWNhbXAuY29tL3RoZS0xMDAtY29ycmVjdC13YXktdG8tZG8tY3NzLWJyZWFrcG9pbnRzLTg4ZDZhNWJhMTg2MikuXG4vL1xuLy8gVXNhZ2U6ICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKTtcbi8vIE91dHB1dDogQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtYXgtd2lkdGg6IDU5OXB4KTtcbkBtaXhpbiBtZWRpYSgkc2l6ZSkge1xuXG4gIEBpZiAoJHNpemUgPT0gJ2Rlc2t0b3AnKSB7XG5cbiAgICAvLyBEZXNrdG9wIG9ubHkuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcblxuICAgIC8vIFRhYmxldCBsYW5kc2NhcGUgYW5kIGFib3ZlLlxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQobWluLXdpZHRoOiA5MDBweCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0LWxhbmRzY2FwZScpIHtcblxuICAgIC8vIFRhYmxldCBsYW5kc2NhcGUgb25seS5cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1pbi13aWR0aDogOTAwcHgpIGFuZChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xuXG4gICAgLy8gVGFibGV0IGxhbmRzY2FwZSBhbmQgYmVsb3cuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0LXBvcnRyYWl0LXVwJykge1xuXG4gICAgLy8gVGFibGV0IHBvcnRyYWl0IGFuZCBsYW5kc2NhcGUgYW5kIGFib3ZlLlxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0LXBvcnRyYWl0Jykge1xuXG4gICAgLy8gVGFibGV0IHBvcnRyYWl0IG9ubHkuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtaW4td2lkdGg6IDYwMHB4KSBhbmQobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XG5cbiAgICAvLyBUYWJsZXQgcG9ydHJhaXQgYW5kIGJlbG93LlxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0Jykge1xuXG4gICAgLy8gVGFibGV0IHBvcnRyYWl0IGFuZCBsYW5kc2NhcGUsIG9yIHBob25lIGFuZCBhLlxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQobWluLXdpZHRoOiA2MDBweCkgYW5kKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRzaXplID09ICdwaG9uZScpIHtcblxuICAgIC8vIFBob25lIG9ubHkuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUeXBvZ3JhcGh5XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBBbGwgYXBwbGljYXRpb24gdHlwb2dyYXBoeSBzZXR0aW5ncyBhcmUgZGVmaW5lZCBoZXJlLlxuXG5cbi8vIEZhbWlsaWVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBEZWZhdWx0IGZvbnQgZmFtaWx5LlxuJGZvbnQtZmFtaWx5LWJvZHk6ICAgICAgICAgICAgICAgICdVYnVudHUnLCBzYW5zLXNlcmlmO1xuXG4vLyBIZWFkaW5nIGZvbnQgZmFtaWx5LlxuJGZvbnQtZmFtaWx5LWhlYWRpbmc6ICAgICAgICAgICAgICdVYnVudHUnLCBzYW5zLXNlcmlmO1xuXG5cbi8vIFNpemVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBGb250IHNpemUgbWFwLlxuJGZvbnQtc2l6ZTogKFxuICAnbWljcm8nOiAxMnB4LFxuICAndGlueSc6IDEzcHgsXG4gICdzbWFsbCc6IDE2cHgsXG4gICdyZWd1bGFyJzogMThweCxcbiAgJ2xhcmdlJzogMjJweCxcbiAgJ2h1Z2UnOiAyNHB4LFxuICAnbWVnYSc6IDMwcHgsXG4gICdqdW1ibyc6IDQwcHhcbik7XG5cblxuLy8gTGluZSBoZWlnaHRzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBMaW5lIGhlaWdodCBtYXAuXG4kbGluZS1oZWlnaHQ6IChcbiAgJ21pY3JvJzogMTNweCxcbiAgJ3RpbnknOiAyMHB4LFxuICAnc21hbGwnOiAyNXB4LFxuICAncmVndWxhcic6IDI4cHgsXG4gICdsYXJnZSc6IDM0cHgsXG4gICdodWdlJzogMjhweCxcbiAgJ21lZ2EnOiAzNXB4LFxuICAnanVtYm8nOiA0OHB4XG4pO1xuXG5cbi8vIFdlaWdodHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8vIEZvbnQgd2VpZ2h0IG1hcC5cbiRmb250LXdlaWdodDogKFxuICAndGhpbic6IDEwMCxcbiAgJ2V4dHJhLWxpZ2h0JzogMjAwLFxuICAnbGlnaHQnOiAzMDAsXG4gICdub3JtYWwnOiA0MDAsXG4gICdtZWRpdW0nOiA1MDAsXG4gICdzZW1pLWJvbGQnOiA2MDAsXG4gICdib2xkJzogNzAwLFxuICAnZXh0cmEtYm9sZCc6IDgwMCxcbiAgJ2JsYWNrJzogOTAwXG4pO1xuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEZ1bmN0aW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuXG4vLyBVbmljb2RlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBQcmVzZXJ2ZSBlc2NhcGVkIHVuaWNvZGUgc3RyaW5nLlxuLy9cbi8vIFVzYWdlOiAgdW5jaW9kZShcImU2MDFcIik7XG4vLyBPdXRwdXQ6IFwiXFxlNjAxXCI7XG5AZnVuY3Rpb24gdW5pY29kZSgkc3RyaW5nKSB7XG4gIEByZXR1cm4gdW5xdW90ZShcIlxcJ1wiKSArIHVucXVvdGUoc3RyLWluc2VydCgkc3RyaW5nLCAnXFxcXCcsIDEpKSArIHVucXVvdGUoXCJcXCdcIik7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgcXVvdGVzXG59XG5cblxuLy8gWi1pbmRleFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8gVGhpcyBmdW5jdGlvbiB1dGlsaXplcyB0aGUgJHotaW5kZXggbWFwIGRlZmluZWQgaW5cbi8vIChzZXR0aW5ncy9fei1pbmRleC5zY3NzKS5cbi8vXG4vLyBVc2FnZTogIHotaW5kZXg6IHotaW5kZXgoOSk7XG4vLyBPdXRwdXQ6IHotaW5kZXg6IDkwO1xuQGZ1bmN0aW9uIHotaW5kZXgoJGtleSkge1xuXG4gIEBpZiAodHlwZS1vZigka2V5KSAhPSBudW1iZXIpIHtcbiAgICBAZXJyb3IgXCJWYWx1ZSBvZiBgei1pbmRleCgpYCBzaG91bGQgYmUgYSBudW1iZXIuXCI7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgcXVvdGVzXG4gIH1cblxuICBAaWYgKG1hcC1oYXMta2V5KCR6LWluZGV4LCAka2V5KSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkei1pbmRleCwgJGtleSk7XG4gIH0gQGVsc2Uge1xuICAgIEBlcnJvciBcIiN7JGtleX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGB6LWluZGV4KClgLlwiOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHF1b3Rlc1xuICB9XG59XG5cblxuLy8gUkVNXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBDb252ZXJ0IHBpeGVsIHVuaXRzIHRvIFJFTSB1bml0cy5cbi8vXG4vLyBVc2FnZTogIGZvbnQtc2l6ZTogcmVtKDE2cHgpO1xuQGZ1bmN0aW9uIHJlbSgkcGl4ZWxzKSB7XG5cbiAgQGlmICh1bml0bGVzcygkcGl4ZWxzKSkge1xuICAgIC8vICRwaXhlbHM6ICgkcGl4ZWxzICogMXB4KTtcbiAgICBAZXJyb3IgXCJWYWx1ZSBmb3IgYCN7JHBpeGVsc31gIHNob3VsZCBiZSBhIGBweGAgdW5pdC5cIjsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBxdW90ZXNcbiAgfVxuXG4gIC8vIFJldHVybiBgcmVtYCB1bml0IHZhbHVlLlxuICBAcmV0dXJuICgoJHBpeGVscyAvIDEwcHgpICogMXJlbSk7XG59XG5cblxuLy8gRm9udCBTaXplXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBSZXR1cm4gdmFsdWUgb2YgYSBmb250IHNpemUga2V5IGZyb20gdGhlIGAkZm9udC1zaXplYCBtYXAgdmFyaWFibGVcbi8vIGluIGBzZXR0aW5nL190eXBvZ3JhcGh5LnNjc3NgLlxuLy9cbi8vIFVzYWdlOiAgZm9udC1zaXplKCdyZWd1bGFyJyk7XG5AZnVuY3Rpb24gZm9udC1zaXplKCRrZXkpIHtcblxuICAvLyBSZW1vdmUgcXVvdGVzIGZyb20gcGFyYW1ldGVyLlxuICAka2V5OiB1bnF1b3RlKCRrZXkpO1xuXG4gIC8vIExvZyBlcnJvciBpZiBrZXkgaXMgbm90IGEgc3RyaW5nLlxuICBAaWYgKHR5cGUtb2YoJGtleSkgIT0gc3RyaW5nKSB7XG4gICAgQGVycm9yIFwiVmFsdWUgZm9yIGAjeyRrZXl9YCBzaG91bGQgYmUgYSBzdHJpbmdcIjsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBxdW90ZXNcbiAgfVxuXG4gIC8vIElmIG1hcCBoYXMgZ2l2ZW4ga2V5LlxuICBAaWYgKG1hcC1oYXMta2V5KCRmb250LXNpemUsICRrZXkpKSB7XG5cbiAgICAvLyBSZXR1cm4ga2V5IGZyb20gbWFwLlxuICAgIEByZXR1cm4gbWFwLWdldCgkZm9udC1zaXplLCAka2V5KTtcbiAgfSBAZWxzZSB7XG5cbiAgICAvLyBMb2cgZXJyb3IgZm9yIGludmFsaWQgdmFsdWUuXG4gICAgQGVycm9yIFwiI3ska2V5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgYGZvbnQtc2l6ZSgpYC5cIjsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBxdW90ZXNcbiAgfVxufVxuXG5cbi8vIExpbmUgSGVpZ2h0XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBSZXR1cm4gdmFsdWUgb2YgYSBsaW5lIGhlaWdodCBrZXkgZnJvbSB0aGUgYCRsaW5lLWhlaWdodGAgbWFwIHZhcmlhYmxlXG4vLyBpbiBgc2V0dGluZy9fdHlwb2dyYXBoeS5zY3NzYC5cbi8vXG4vLyBVc2FnZTogIGxpbmUtaGVpZ2h0KCdyZWd1bGFyJyk7XG4vLyBPdXRwdXQ6IGxpbmUtaGVpZ2h0OiAyNHB4O1xuQGZ1bmN0aW9uIGxpbmUtaGVpZ2h0KCRrZXkpIHtcblxuICAvLyBSZW1vdmUgcXVvdGVzIGZyb20gcGFyYW1ldGVyLlxuICAka2V5OiB1bnF1b3RlKCRrZXkpO1xuXG4gIC8vIExvZyBlcnJvciBpZiBrZXkgaXMgbm90IGEgc3RyaW5nLlxuICBAaWYgKHR5cGUtb2YoJGtleSkgIT0gc3RyaW5nKSB7XG4gICAgQGVycm9yIFwiVmFsdWUgZm9yIGAjeyRrZXl9YCBzaG91bGQgYmUgYSBzdHJpbmdcIjsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBxdW90ZXNcbiAgfVxuXG4gIC8vIElmIG1hcCBoYXMgZ2l2ZW4ga2V5LlxuICBAaWYgKG1hcC1oYXMta2V5KCRsaW5lLWhlaWdodCwgJGtleSkpIHtcblxuICAgIC8vIFJldHVybiBrZXkgZnJvbSBtYXAuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRsaW5lLWhlaWdodCwgJGtleSk7XG4gIH0gQGVsc2Uge1xuXG4gICAgLy8gTG9nIGVycm9yIGZvciBpbnZhbGlkIHZhbHVlLlxuICAgIEBlcnJvciBcIiN7JGtleX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGBsaW5lLWhlaWdodCgpYC5cIjsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBxdW90ZXNcbiAgfVxufVxuXG5cbi8vIEZvbnQgV2VpZ2h0XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBSZXR1cm4gdmFsdWUgb2YgYSBmb250IHdlaWdodCBrZXkgZnJvbSB0aGUgYCRmb250LXdlaWdodGAgbWFwIHZhcmlhYmxlXG4vLyBpbiBgc2V0dGluZy9fdHlwb2dyYXBoeS5zY3NzYC5cbi8vXG4vLyBVc2FnZTogIGZvbnQtd2VpZ2h0KCdib2xkJyk7XG4vLyBPdXRwdXQ6IGZvbnQtd2VpZ2h0IDcwMDtcbkBmdW5jdGlvbiBmb250LXdlaWdodCgka2V5KSB7XG5cbiAgLy8gUmVtb3ZlIHF1b3RlcyBmcm9tIHBhcmFtZXRlci5cbiAgJGtleTogdW5xdW90ZSgka2V5KTtcblxuICAvLyBMb2cgZXJyb3IgaWYga2V5IGlzIG5vdCBhIHN0cmluZy5cbiAgQGlmICh0eXBlLW9mKCRrZXkpICE9IHN0cmluZykge1xuICAgIEBlcnJvciBcIlZhbHVlIGZvciBgI3ska2V5fWAgc2hvdWxkIGJlIGEgc3RyaW5nXCI7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgcXVvdGVzXG4gIH1cblxuICAvLyBJZiBtYXAgaGFzIGdpdmVuIGtleS5cbiAgQGlmIChtYXAtaGFzLWtleSgkZm9udC13ZWlnaHQsICRrZXkpKSB7XG5cbiAgICAvLyBSZXR1cm4ga2V5IGZyb20gbWFwLlxuICAgIEByZXR1cm4gbWFwLWdldCgkZm9udC13ZWlnaHQsICRrZXkpO1xuICB9IEBlbHNlIHtcblxuICAgIC8vIExvZyBlcnJvciBmb3IgaW52YWxpZCB2YWx1ZS5cbiAgICBAZXJyb3IgXCIjeyRrZXl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBgZm9udC13ZWlnaHQoKWAuXCI7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgcXVvdGVzXG4gIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDb2xvcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8vIEFsbCBhcHBsaWNhdGlvbiBjb2xvciBzZXR0aW5ncyBhcmUgZGVmaW5lZCBoZXJlLiBDb2xvciBzaG91bGQgYWx3YXlzIGJlIGRlZmluZWRcbi8vIGJ5IGl0cyBSR0JBIHZhbHVlIGUuZy4gYHJnYmEoMCwgMCwgMCwgMSlgLlxuXG5cbi8vIEJhc2UgQ29sb3JzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBCbGFjay5cbiRjb2xvci1ibGFjazogICAgICAgICAgICAgICAgcmdiKDAsIDAsIDApO1xuJGNvbG9yLWJsYWNrLTIwMDogICAgICAgICAgICByZ2IoNzQsIDk4LCAxMDQpO1xuXG4vLyBXaGl0ZS5cbiRjb2xvci13aGl0ZTogICAgICAgICAgICAgICAgcmdiKDI1NSwgMjU1LCAyNTUpO1xuXG4vLyBHcmVlblxuJGNvbG9yLWdyZWVuOiAgICAgICAgICAgICAgIHJnYigwLCA5OSwgNTgpO1xuXG5cbi8vIFRleHQgQ29sb3JzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBCb2R5LlxuJGNvbG9yLWJvZHk6ICAgICAgICAgICAgICAgICByZ2IoNzQsIDk4LCAxMDQpO1xuXG4vLyBMaW5rLlxuJGNvbG9yLWxpbms6ICAgICAgICAgICAgICAgICBpbmhlcml0O1xuXG4vLyBEZWZpbmUgcGxhY2Vob2xkZXIgY29sb3IuXG4kY29sb3ItcGxhY2Vob2xkZXI6ICAgICAgICAgIGluaGVyaXQ7XG5cblxuLy8gQm9yZGVyIENvbG9yc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8gQm9yZGVyLlxuJGNvbG9yLWJvcmRlcjogICAgICAgICAgICAgICAkY29sb3ItYm9keTtcblxuLy8gSG9yaXpvbnRhbCBydWxlLlxuJGNvbG9yLWhyOiAgICAgICAgICAgICAgICAgICAkY29sb3ItYm9yZGVyO1xuXG5cbi8vIEJhY2tncm91bmQgQ29sb3JzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBTZWxlY3Rpb24gYmFja2dyb3VuZC5cbiRjb2xvci1zZWxlY3Rpb246ICAgICAgICAgICAgZGVmYXVsdDtcblxuLy8gQm9keSBiYWNrZ3JvdW5kIGNvbG9yLlxuJGNvbG9yLWJvZHktYmFja2dyb3VuZDogICAgICByZ2IoMjM2LCAyNDAsIDI0MSk7XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSG9yaXpvbnRhbCBSdWxlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBTZXR0aW5nIGlzIGRlZmluZWQgaW4gKHNldHRpbmdzL19nbG9iYWwuc2NzcylcbkBpZiAoJGdsb2JhbC1iZXR0ZXItbG9va2luZy1ociA9PSB0cnVlKSB7XG5cbiAgLyoqXG4gICAqIEEgYmV0dGVyIGxvb2tpbmcgaG9yaXpvbnRhbCBydWxlIGFjY29yZGluZyB0b1xuICAgKiAoaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcykuXG4gICAqIEJhY2tncm91bmQgY29sb3IgaXMgZGVmaW5lZCBpbiAoc2V0dGluZ3MvX3NldHRpbmdzLmNvbG9yLnNjc3MpLlxuICAgKi9cblxuICBociB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ocjtcbiAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFBsYWNlaG9sZGVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFNlZSAoaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTLzo6cGxhY2Vob2xkZXIpIGZvclxuICogZnVydGhlciByZWFkaW5nIG9uIHRoZSBwbGFjZWhvbGRlciBzZWxlY3Rvci5cbiAqL1xuXG46OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICRjb2xvci1wbGFjZWhvbGRlcjtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTZWxlY3Rpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogU2VlIChodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvOjpzZWxlY3Rpb24pIGZvclxuICogZnVydGhlciByZWFkaW5nIG9uIHRoZSBzZWxlY3Rpb24gc2VsZWN0b3IuXG4gKi9cblxuLy8gOjpzZWxlY3Rpb24ge1xuLy8gICBiYWNrZ3JvdW5kOiAkY29sb3Itc2VsZWN0aW9uO1xuLy8gfVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENvbnRlbnQgQ29uc3RyYWludFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBUaGUgY29udGVudCBjb25zdHJhaW50IGlzIGEgY29uc3RyYWludCBmb3IgYWxsIHRoZSBjb250ZW50IHdpdGhpblxuICogdGhlIGRvY3VtZW50LiBJdCBjYW4gYmUgbWFuaXB1bGF0ZWQgYnkgQ1NTIG9yIEphdmFTY3JpcHQgd2l0aG91dFxuICogaW5mbHVlbmNpbmcgdGhlIGJvZHkuXG4gKi9cblxuJGhlYWRlci1oZWlnaHQ6IDg1cHg7XG4kZm9vdGVyLWhlaWdodDogMzIxcHg7XG4kY29uc3RyYWludC1oZWlnaHQ6ICgkaGVhZGVyLWhlaWdodCArICRmb290ZXItaGVpZ2h0KTtcblxuLmNvbnRlbnQtY29uc3RyYWludCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogY2FsYygxMDB2aCAtICN7JGNvbnN0cmFpbnQtaGVpZ2h0fSk7XG59XG5cbi5jb250ZW50LWNvbnN0cmFpbnQgLndyYXBwZXIge1xuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgfVxuXG4gIG1hcmdpbi1ib3R0b206IDEwMHB4O1xuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcbiAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgfVxuXG4gICAgbWFyZ2luLXRvcDogMTAwcHg7XG4gIH1cblxuICAmLnNsaWRlc2hvdyB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gIC8vICY6bGFzdC1jaGlsZCB7XG4gIC8vICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgLy8gfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZsZXhcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogRXhhbXBsZSBvZiBhIGZsZXggYmFzZWQgY29sdW1uIGdyaWQgbGF5b3V0IGluIHByYWN0aWNlOlxuICpcbiAqIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAqICAgPGRpdiBjbGFzcz1cImNvbCBjb2wteHMtNiBjb2wtc20tMTJcIj48L2Rpdj5cbiAqICAgPGRpdiBjbGFzcz1cImNvbCBjb2wteHMtNiBjb2wtc20tMTJcIj48L2Rpdj5cbiAqIDwvZGl2PlxuICpcbiAqIFRoaXMgZXhhbXBsZSB3aWxsIGNyZWF0ZSBhIHJvdyB3aXRoIHR3byBjb2x1bW5zIGVhY2ggZmlsbGluZyBoYWxmIHRoZSB3aWR0aFxuICogb2YgdGhlIHJvdyBvbiBhbGwgbWVkaWEsIGJ1dCB3aWxsIGNvbnZlcnQgdG8gYSBmdWxsIHdpZHRoIGNvbHVtbiBvbiB0aGVcbiAqIHNtYWxsIGAtc21gIGJyZWFrcG9pbnQgYWxpYXMsIHdoaWNoIGlzIG1vYmlsZSBvbmx5LiBSZWZlciB0b1xuICogYHNldHRpbmdzL19kZWZpbml0aW9ucy5zY3NzYCBmb3IgYWxsIGJyZWFrcG9pbnQgYWxpYXMuXG4gKi9cblxuLyoqXG4gKiBGbGV4IG9iamVjdC5cbiAqXG4gKiBUaXA6IFVzZSBmbGV4IG9uIGEgY29sdW1uIHRvIG1ha2UgdGhlIGJveCB0aGUgc2FtZSBoZWlnaHQgYXMgdGhlIGNvbHVtbi5cbiAqL1xuXG4uZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5mbGV4LXdyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cblxuXG4vKipcbiAqIEZsZXggb2JqZWN0IHdpdGggYSBjb2x1bW4gYmFzZWQgbGF5b3V0IHN5c3RlbS5cbiAqL1xuXG4ucm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAxIGF1dG87XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIG1hcmdpbjogMCAtI3soJGdyaWQtZ2FwLzIpfTtcbn1cblxuXG4vKipcbiAqIEJveCwgdGhlIGluc2lkZSBvZiBhIGNvbHVtbi5cbiAqL1xuXG4uYm94IHtcbiAgZmxleDogMTtcbn1cblxuXG4vLyBMb29wIHRocm91Z2ggYWxsIHRoZSBrZXlzIGluIHRoZSBgJGJyZWFrcG9pbnRzYCB2YXJpYWJsZSBtYXAgZGVmaW5lZCBpblxuLy8gYHNldHRpbmdzL19kZWZpbml0aW9ucy5zY3NzYC5cbkBlYWNoICRrZXksICR2YWx1ZSBpbiAkYnJlYWtwb2ludHMge1xuXG4gIC8vIENyZWF0ZSBhIG1lZGlhIHF1ZXJ5IGZvciBldmVyeSBrZXkgaW4gYCRicmVha3BvaW50c2AuXG4gIEBpbmNsdWRlIG1lZGlhKCR2YWx1ZSkge1xuXG4gICAgLy8gSXRlcmF0ZSBmcm9tIDEgdGhyb3VnaCB0aGUgYW1vdW50IG9mIGdyaWQgY29sdW1ucyBkZWZpbmVkIGJ5XG4gICAgLy8gYCRncmlkLWNvbHVtbnNgIGluIGBzZXR0aW5ncy9fZGVmaW5pdGlvbnMuc2Nzc2AuXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcblxuICAgICAgLyoqXG4gICAgICAgKiBDb2x1bW4gI3skaX0gZm9yIHRoZSBgI3ska2V5fWAgYnJlYWtwb2ludC5cbiAgICAgICAqL1xuXG4gICAgICAuY29sLSN7JGtleX0tI3skaX0ge1xuICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgd2lkdGg6IGNvbHVtbigkaSk7XG4gICAgICAgIHBhZGRpbmc6IDAgKCRncmlkLWdhcC8yKTtcbiAgICAgIH1cblxuXG4gICAgICAvLyBPdXRwdXQgYW4gb2Zmc2V0IHV0aWxpdHkgY2xhc3MgaWYgdGhlIGl0ZXJhdG9yIGlzIGxlc3MgdGhhbiB0aGUgYW1vdW50XG4gICAgICAvLyBvZiBncmlkIGNvbHVtbnMgZGVmaW5lZCBieSBgJGdyaWQtY29sdW1uc2AgaW5cbiAgICAgIC8vIGBzZXR0aW5ncy9fZGVmaW5pdGlvbnMuc2Nzc2AuXG4gICAgICBAaWYgKCRpIDwgJGdyaWQtY29sdW1ucykge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBPZmZzZXQgI3skaX0gZm9yIHRoZSBgI3ska2V5fWAgYnJlYWtwb2ludC5cbiAgICAgICAgICovXG5cbiAgICAgICAgLm9mZnNldC0jeyRrZXl9LSN7JGl9IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogY29sdW1uKCRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuXG4gICAgLy8gTG9vcCB0aHJvdWdoIGFsbCB2YWx1ZXMgZm9yIHRoZSBgYWxpZ24taXRlbXNgIHByb3BlcnR5LlxuICAgIEBlYWNoICR2YWx1ZSBpbiBzdHJldGNoLCBjZW50ZXIsIGZsZXgtc3RhcnQsIGZsZXgtZW5kLCBiYXNlbGluZSB7XG5cbiAgICAgIC8qKlxuICAgICAgICogQWxpZ24gYCN7JHZhbHVlfWAgZm9yIHRoZSAjeyRrZXl9IGJyZWFrcG9pbnQuXG4gICAgICAgKi9cblxuICAgICAgLmFsaWduLSN7JGtleX0tI3skdmFsdWV9IHtcbiAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIC8vIExvb3AgdGhyb3VnaCBhbGwgdmFsdWVzIGZvciB0aGUgYGp1c3RpZnktY29udGVudGAgcHJvcGVydHkuXG4gICAgQGVhY2ggJHZhbHVlIGluIHN0YXJ0LCBjZW50ZXIsIHNwYWNlLWJldHdlZW4sIHNwYWNlLWFyb3VuZCwgc3BhY2UtZXZlbmx5LCBmbGV4LXN0YXJ0LCBmbGV4LWVuZCB7XG5cbiAgICAgIC8qKlxuICAgICAgICogSnVzdGlmeSBgI3skdmFsdWV9YCBmb3IgdGhlICN7JGtleX0gYnJlYWtwb2ludC5cbiAgICAgICAqL1xuXG4gICAgICAuanVzdGlmeS0jeyRrZXl9LSN7JHZhbHVlfSB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgLy8gTG9vcCB0aHJvdWdoIGV2ZXJ5IGRpcmVjdGlvbiBmcm9tIGxlZnQgdG8gcmlnaHQuXG4gICAgQGVhY2ggJGRpcmVjdGlvbiBpbiBsZWZ0LCByaWdodCB7XG5cbiAgICAgIC8qKlxuICAgICAgICogQmxlZWQgI3skZGlyZWN0aW9ufSBmb3IgdGhlICN7JGtleX0gYnJlYWtwb2ludC5cbiAgICAgICAqL1xuXG4gICAgICAuYmxlZWQtI3ska2V5fS0jeyRkaXJlY3Rpb259IHtcbiAgICAgICAgcGFkZGluZy0jeyRkaXJlY3Rpb259OiAwO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogT3JkZXIgZmlyc3QgZm9yIHRoZSBgI3ska2V5fWAgYnJlYWtwb2ludC5cbiAgICAgKi9cblxuICAgIC5maXJzdC0jeyRrZXl9IHtcbiAgICAgIG9yZGVyOiAtMTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIE9yZGVyIGxhc3QgZm9yIHRoZSBgI3ska2V5fWAgYnJlYWtwb2ludC5cbiAgICAgKi9cblxuICAgIC5sYXN0LSN7JGtleX0ge1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBSZXZlcnNlIG9yZGVyIGZvciB0aGUgYCN7JGtleX1gIGJyZWFrcG9pbnQuXG4gICAgICovXG5cbiAgICAucmV2ZXJzZS0jeyRrZXl9IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFBhZ2VcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5wYWdlIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgcGFkZGluZy10b3A6IDEzMHB4O1xyXG59XHJcblxyXG4vKipcclxuICogVmlzdWFsbHkgaGlkZSBjb250ZW50IHVudGlsIGRvY3VtZW50IGlzIHJlYWR5LlxyXG4gKi9cclxuXHJcbi5wYWdlOm5vdCgucmVhZHkpIHtcclxuICBvcGFjaXR5OiAwO1xyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCdXR0b25cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8vIERlZmF1bHQgYnV0dG9uIHNldHRpbmdzLlxuJGJ1dHRvbi1oZWlnaHQ6IDM1cHg7XG4kYnV0dG9uLXNwYWNpbmc6IDE3cHggMTVweCAxOHB4O1xuJGJ1dHRvbi1zcGFjaW5nLXNtYWxsOiAxMXB4IDE1cHg7XG5cbiRidXR0b24tbGluZS1oZWlnaHQ6IDA7XG5cblxuLyoqXG4gKiBEZWZhdWx0IGJ1dHRvbi5cbiAqL1xuXG4uYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAkYnV0dG9uLXNwYWNpbmc7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXMgZWFzZS1vdXQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC1zaXplOiBmb250LXNpemUoJ3RpbnknKTtcbiAgZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0KCdsaWdodCcpO1xuICBsaW5lLWhlaWdodDogJGJ1dHRvbi1saW5lLWhlaWdodDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAmOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAwLjc1O1xuICB9XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgZm9udC1zaXplOiBmb250LXNpemUoJ2h1Z2UnKTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgnaHVnZScpO1xuICB9XG59XG5cbi5idXR0b24tLXNtYWxsIHtcbiAgcGFkZGluZzogJGJ1dHRvbi1zcGFjaW5nLXNtYWxsO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1lbnVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5tZW51LWRlc2t0b3Age1xuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAyODZweCk7XG59XG5cbi5tZW51LWRlc2t0b3AgLm1lbnUtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgbWVkaWEoJ2Rlc2t0b3AnKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIH1cbn1cblxuLm1lbnUtbW9iaWxlIHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubWVudS1tb2JpbGUgLm1lbnUtbWFpbi1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTgwcHgpO1xuICBwYWRkaW5nOiAzMHB4IDA7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLm1lbnUtbW9iaWxlIC5tZW51LW1haW4tY29udGFpbmVyIC5tZW51LWl0ZW0gPiAuc3ViLW1lbnUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWVudS1tb2JpbGUgLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4ge1xuICAmLmlzLWFjdGl2ZSB7XG4gICAgLm1lbnUtaXRlbV9fYXJyb3cge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgfVxuICB9XG59XG5cbi5tZW51LW1vYmlsZSAubWVudS1tYWluLWNvbnRhaW5lciAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG59XG5cbi5tZW51LW1vYmlsZSAubWVudS1tYWluLWNvbnRhaW5lciAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiAubWVudS1pdGVtX19hcnJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogLTMwcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMjBtcztcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG4gIHotaW5kZXg6IDk7XG5cbiAgc3ZnIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG59XG5cbi5tZW51LW1vYmlsZSAubWVudS1tYWluLWNvbnRhaW5lciAubWVudS1pdGVtID4gLnN1Yi1tZW51IC5tZW51LWl0ZW0gPiBhIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIEhlYWRlclxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLmhlYWRlciB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUnKSB7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiA1MHB4O1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiA4MnB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICB6LWluZGV4OiB6LWluZGV4KDkpO1xyXG59XHJcblxyXG4uaGVhZGVyIC53cmFwcGVyIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gWi1pbmRleFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8gQSBsaW1pdGVkIGFycmF5IG9mIHZhbHVlcyBmb3IgdGhlIGB6LWluZGV4YCBwcm9wZXJ0eSB0byBwcmV2ZW50XG4vLyBleGFnZ2VyYXRlZCBhbW91bnRzIGFuZCB1Z2x5IGhhY2tzLlxuXG4kei1pbmRleDogKFxuICAwOiAgMCxcbiAgMTogIDEwLFxuICAyOiAgMjAsXG4gIDM6ICAzMCxcbiAgNDogIDQwLFxuICA1OiAgNTAsXG4gIDY6ICA2MCxcbiAgNzogIDcwLFxuICA4OiAgODAsXG4gIDk6ICA5MCxcbiAgMTA6IDEwMFxuKTtcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBOYXZpZ2F0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIERlc2t0b3AgbmF2aWdhdGlvblxuICovXG5cbi5tZW51LWRlc2t0b3AgLm1lbnUge1xuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZScpIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDUycHg7XG4gIH1cblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGhlaWdodDogODJweDtcbn1cblxuLm1lbnUtZGVza3RvcCAubWVudSAubWVudS1pdGVtID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwIDEyLjVweDtcbiAgLy8gcGFkZGluZzogMCAxMi41cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBib3JkZXItYm90dG9tLXN0eWxlOiBub25lO1xuXG4gICY6aG92ZXIge1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgfVxufVxuXG4ubWVudS1kZXNrdG9wIC5tZW51IC5jdXJyZW50LW1lbnUtaXRlbSA+IGEsXG4ubWVudS1kZXNrdG9wIC5tZW51IC5jdXJyZW50LW1lbnUtcGFyZW50ID4gYSB7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcbiAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gIGZvbnQtd2VpZ2h0OiBmb250LXdlaWdodCgnYm9sZCcpO1xufVxuXG4ubWVudS1kZXNrdG9wIC5tZW51LWl0ZW0gPiAuc3ViLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAyMzZweDtcbiAgcGFkZGluZzogMTVweCAzMHB4O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI1MG1zLCB0cmFuc2Zvcm0gMjUwbXM7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNoYWRvdzogJGdsb2JhbC1ib3gtc2hhZG93LWJpZ2dlcjtcbiAgb3BhY2l0eTogMDtcbiAgei1pbmRleDogei1pbmRleCg5KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMjBweDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMjBweDtcbiAgICBjb250ZW50OiAnJztcbiAgfVxufVxuXG4ubWVudS1kZXNrdG9wIC5tZW51LWl0ZW06aG92ZXIgPiAuc3ViLW1lbnUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbi5tZW51LWRlc2t0b3AgLm1lbnUtaXRlbSA+IC5zdWItbWVudSAubWVudS1pdGVtID4gYSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci13aGl0ZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGNvbG9yOiAkY29sb3Itd2hpdGU7XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICRjb2xvci1ibGFjaztcbiAgfVxufVxuXG4ubWVudS1kZXNrdG9wIC5tZW51LWl0ZW0gPiAuc3ViLW1lbnUgLm1lbnUtaXRlbTpsYXN0LWNoaWxkID4gYSB7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG5cblxuLyoqXG4gKiBNb2JpbGUgbmF2aWdhdGlvblxuICovXG5cbi5tZW51LWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogZm9udC1zaXplKCdodWdlJyk7XG5cbiAgLmlzLWNsb3NlZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICA+IC5pbmxpbmUtaWNvbiB7XG4gICAgICB3aWR0aDogMjFweDtcbiAgICAgIGhlaWdodDogMjRweDtcbiAgICB9XG4gIH1cblxuICAuaXMtb3BlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgID4gLmlubGluZS1pY29uIHtcbiAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgIH1cbiAgfVxuXG4gICYuaXMtYWN0aXZlID4gLmlzLWNsb3NlZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICYuaXMtYWN0aXZlID4gLmlzLW9wZW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi5tZW51LW1vYmlsZS13cmFwcGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDgycHg7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWJvdHRvbTogMzRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xuICB6LWluZGV4OiB6LWluZGV4KDEpO1xufVxuXG4ubWVudS1tb2JpbGUtd3JhcHBlci1saW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IGNhbGMoNTAlIC0gNjBweCk7XG4gIHdpZHRoOiAxMjBweDtcbiAgaGVpZ2h0OiA0cHg7XG4gIGNvbnRlbnQ6ICcnO1xufVxuXG4ubWVudS1tb2JpbGUgLm1lbnUgLm1lbnUtaXRlbSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1lbnUtbW9iaWxlIC5tZW51IC5tZW51LWl0ZW0gPiBhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIGZvbnQtc2l6ZTogZm9udC1zaXplKCdzbWFsbCcpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGJvcmRlci1ib3R0b20tc3R5bGU6IG5vbmU7XG59XG5cbi5tb2JpbGUtbWVudS1sb2dvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExvZ29cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5sb2dvIHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUnKSB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZScpIHtcbiAgXHRtYXJnaW4tdG9wOiAxMHB4O1xuICB9XG5cbiAgd2lkdGg6IDI4NnB4O1xuXG4gID4gYSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXgtaGVpZ2h0OiA4MHB4O1xuICB9XG5cbiAgaW1nIHtcbiAgICBtYXgtaGVpZ2h0OiA4MHB4O1xuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29udGFjdCBCdXR0b25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBTZXR0aW5ncy5cbiRjb250YWN0LWJ1dHRvbi1zaXplOiA0NHB4O1xuXG5cbi8qKlxuICogQ29udGFjdCBidXR0b25zLlxuICovXG5cbi5jb250YWN0LWJ1dHRvbnMge1xuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1pbi13aWR0aDogMTQyMXB4KSB7XG4gICAgbWFyZ2luLWxlZnQ6IDdweDtcbiAgfVxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LXVwJykge1xuICAgIHRvcDogMzU1cHg7XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xuICAgIHRvcDogMjAwcHg7XG4gIH1cbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogN3B4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICB6LWluZGV4OiB6LWluZGV4KDcpO1xufVxuXG5cbi8qKlxuICogQnV0dG9uLlxuICovXG5cbi5jb250YWN0LWJ1dHRvbnNfX2J1dHRvbiB7XG4gIEBpbmNsdWRlIGZvbnQoMTZweCwgMTZweCk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogJGNvbnRhY3QtYnV0dG9uLXNpemU7XG4gIGhlaWdodDogJGNvbnRhY3QtYnV0dG9uLXNpemU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXMgZWFzZS1vdXQ7XG4gIGJvcmRlci1yYWRpdXM6ICgkY29udGFjdC1idXR0b24tc2l6ZS8yKTtcbiAgYm94LXNoYWRvdzogJGdsb2JhbC1ib3gtc2hhZG93O1xuXG4gICY6aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuXG4uY29udGFjdC1idXR0b25zX19idXR0b246OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoNTAlLSg4cHgvMikpO1xuICByaWdodDogLTNweDtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgY29udGVudDogJyc7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8vIC5jb250YWN0LWJ1dHRvbnNfX2J1dHRvbjpob3Zlcjo6YmVmb3JlLFxuLy8gLmNvbnRhY3QtYnV0dG9uc19fYnV0dG9uOmhvdmVyOjphZnRlciB7XG4vLyAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXMgZWFzZS1pbjtcbi8vICAgb3BhY2l0eTogMTtcbi8vIH1cblxuLmNvbnRhY3QtYnV0dG9uc19fYnV0dG9uOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiA3cHg7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2xpZGVzaG93XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uc2xpZGVzaG93IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAub3dsLWRvdHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMjVweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogIGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAub3dsLWRvdCB7XG4gICAgd2lkdGg6IDlweDtcbiAgICBoZWlnaHQ6IDlweDtcbiAgICBtYXJnaW46IDAgM3B4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjUwbXM7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICBvcGFjaXR5OiAwLjY7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJi5hY3RpdmUge1xuICAgICAgd2lkdGg6IDExcHg7XG4gICAgICBoZWlnaHQ6IDExcHg7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxufVxuXG4uc2xpZGVfX2ltYWdlIHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcbiAgICBoZWlnaHQ6IDM3NXB4O1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xuICAgIGhlaWdodDogMjc1cHg7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XG4gICAgaGVpZ2h0OiAyMDBweDtcbiAgfVxuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiA0NDBweDtcbn1cblxuLnNsaWRlLXByb2dyZXNzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiA0cHg7XG4gIGhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgei1pbmRleDogei1pbmRleCgxKTtcbn1cblxuLnNsaWRlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc2xpZGVfX2NvbnRlbnQge1xuICBAaW5jbHVkZSBmb250KGZvbnQtc2l6ZSgnbGFyZ2UnKSwgbGluZS1oZWlnaHQoJ2xhcmdlJykpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgbWF4LXdpZHRoOiA1MCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogNDBweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKCRjb2xvci1ibGFjaywgMC4yNSkgMCUsIHJnYmEoJGNvbG9yLWJsYWNrLCAwKSAxMDAlKTtcbiAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgdGV4dC1zaGFkb3c6IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjkpO1xufVxuXG4uc2xpZGVfX2VkaXRvciB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVGVhc2Vyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnRlYXNlcl9faXRlbXMge1xuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XG4gICAgbWFyZ2luOiAtMi41cHg7XG4gIH1cblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbjogLThweDtcbn1cblxuLnRlYXNlciB7XG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcbiAgICB3aWR0aDogMzMuMzMzNCU7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XG4gICAgcGFkZGluZzogMi41cHg7XG4gIH1cblxuICB3aWR0aDogMTYuNjY2NyU7XG4gIHBhZGRpbmc6IDhweDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAyNTBtcztcbiAgb3BhY2l0eTogMTtcblxuICAmOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAwLjY7XG4gIH1cbn1cblxuLnRlYXNlcl9faW1hZ2Uge1xuICBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi50ZWFzZXJfX3N1YnRpdGxlIHtcbiAgQGluY2x1ZGUgZm9udChmb250LXNpemUoJ3NtYWxsJyksIGxpbmUtaGVpZ2h0KCdzbWFsbCcpKTtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDb250ZW50IGRlZmF1bHRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5jb250ZW50LWRlZmF1bHQge1xuICBAaW5jbHVkZSBmb250KGZvbnQtc2l6ZSgnc21hbGwnKSwgbGluZS1oZWlnaHQoJ3JlZ3VsYXInKSk7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVGV4dCBpbWFnZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnRleHQtaW1hZ2Uge1xuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKipcbiAqIENvbHVtbnNcbiAqL1xuXG4udGV4dC1pbWFnZV9fY29sdW1ucyB7XG4gIGJveC1zaGFkb3c6ICRnbG9iYWwtYm94LXNoYWRvdztcblxuICAmLm5vLWJveC1zaGFkb3cge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cblxuLyoqXG4gKiBJbWFnZVxuICovXG5cbi50ZXh0LWltYWdlX19pbWFnZSB7XG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogODAlO1xuICB9XG59XG5cbi8qKlxuICogVGV4dFxuICovXG5cbi50ZXh0LWltYWdlX190ZXh0IHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xuICAgIHBhZGRpbmc6IDQwcHggMzBweDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcbiAgICBwYWRkaW5nOiA1NXB4IDQ1cHg7XG4gIH1cblxuICBwYWRkaW5nOiA1NXB4IDc1cHg7XG59XG5cbi8qKlxuICogRWRpdG9yLlxuICovXG5cbi50ZXh0LWltYWdlX19lZGl0b3Ige1xuICBAaW5jbHVkZSBmb250KDE0cHgsIDI2cHgpO1xufVxuXG4vKipcbiAqIEJ1dHRvbi5cbiAqL1xuXG4udGV4dC1pbWFnZV9fYnV0dG9uIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cblxuLyoqXG4gKiBRdW90ZS5cbiAqL1xuXG4udGV4dC1pbWFnZV9fcXVvdGUge1xuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XG4gICAgcGFkZGluZy10b3A6IDYwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDYwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgQGluY2x1ZGUgZm9udChmb250LXNpemUoJ3JlZ3VsYXInKSwgbGluZS1oZWlnaHQoJ3JlZ3VsYXInKSk7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAyN3B4IDc1cHg7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcblxuICAmOm5vdCgudGV4dC1pbWFnZV9fcXVvdGUtLWVtcHR5KSB7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgaWNvbignZjEwZCcsICdTb2xpZCcpO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGljb24oJ2YxMGUnLCAnU29saWQnKTtcbiAgICB9XG4gIH1cblxuICAuc3ZnLWlubGluZS0tZmEge1xuICAgIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICB0b3A6IDIwcHg7XG4gICAgICBsZWZ0OiAyMHB4O1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgfVxuXG4gICAgICByaWdodDogMjBweDtcbiAgICAgIGJvdHRvbTogMjBweDtcbiAgICB9XG4gIH1cbn1cblxuLnRleHQtaW1hZ2VfX3F1b3RlLS1kZXNrdG9wIHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnRleHQtaW1hZ2VfX3F1b3RlLS10YWJsZXQge1xuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBkaXNwbGF5OiBub25lO1xufVxuXG4udGV4dC1pbWFnZV9fcXVvdGUtLWVtcHR5IHtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8vICY6OmJlZm9yZSxcbiAgLy8gJjo6YWZ0ZXIge1xuICAvLyAgIGNvbnRlbnQ6IG5vbmU7XG4gIC8vIH1cblxuICAvLyAuc3ZnLWlubGluZS0tZmEge1xuICAvLyAgIGRpc3BsYXk6IG5vbmU7XG4gIC8vIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDb2x1bW5zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uY29sdW1ucyB7XG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIH1cblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgJi50ZXh0X3Bvc2l0aW9uLS1yaWdodCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIH1cblxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgfVxuXG4gICYudGV4dF9hbGlnbm1lbnQtLXJpZ2h0IHtcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG59XG5cbi5jb2x1bW4ge1xuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA1MCU7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTmV3cyBsYXRlc3Rcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5uZXdzLWxpc3RfX2l0ZW1zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW46IC0xNXB4O1xuXG4gIC5uZXdzLWl0ZW0ge1xuICAgIHdpZHRoOiAzMy4zMzM0JTtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTmV3cyBsYXRlc3Rcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5uZXdzLWxhdGVzdCB7XG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLm5ld3MtbGF0ZXN0X19pdGVtcyB7XG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMCA1MHB4O1xuICB9XG5cbiAgLm93bC1uYXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYyg1MCUgLSA2MHB4KTtcbiAgICBsZWZ0OiAwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5vd2wtcHJldiB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGljb24oJ2YxMDQnLCAnTGlnaHQnKTtcbiAgICB9XG4gIH1cblxuICAub3dsLW5leHQge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBpY29uKCdmMTA1JywgJ0xpZ2h0Jyk7XG4gICAgfVxuICB9XG5cbiAgLm93bC1wcmV2LFxuICAub3dsLW5leHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzVweDtcbiAgICBoZWlnaHQ6IDM1cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJsYWNrO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgIC5zdmctaW5saW5lLS1mYSB7XG4gICAgICB3aWR0aDogMjBweDtcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBOZXdzIGl0ZW1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5uZXdzLWl0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLm5ld3MtaXRlbV9fdGl0bGUge1xuICBAaW5jbHVkZSBmb250KGZvbnQtc2l6ZSgnaHVnZScpLCBsaW5lLWhlaWdodCgnaHVnZScpKTtcbn1cblxuLm5ld3MtaXRlbV9fbW9yZSB7XG4gIGNvbG9yOiAkY29sb3Itd2hpdGU7XG5cbiAgLmlubGluZS1pY29uIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIG1hcmdpbi10b3A6IDFweDtcbiAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE5ld3Mgc2luZ2xlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ubmV3cy1zaW5nbGVfX2ltYWdlIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubmV3cy1zaW5nbGVfX2ltYWdlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luOiA4cHggLTJweDtcbn1cblxuLm5ld3Mtc2luZ2xlX19pbWFnZS1zbWFsbCB7XG4gIHdpZHRoOiAyNSU7XG4gIHBhZGRpbmc6IDJweDtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQYWdpbmF0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ucGFnaW5hdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4ucGFnaW5hdGlvbiAucGFnZS1udW1iZXJzIHtcbiAgbWFyZ2luOiAwIDNweDtcbiAgcGFkZGluZzogNXB4IDEycHg7XG4gIHRyYW5zaXRpb246IDIwMG1zO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcbn1cblxuLnBhZ2luYXRpb24gLnByZXYsXG4ucGFnaW5hdGlvbiAubmV4dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2xpZGUgdGVhc2Vyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnNsaWRlLXRlYXNlcnNfX2l0ZW1zIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwIDUwcHg7XG5cbiAgLm93bC1uYXYge1xuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcbiAgICAgIHRvcDogY2FsYyg1MCUgLSA2MHB4KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XG4gICAgICB0b3A6IGNhbGMoNTAlIC0gODBweCk7XG4gICAgfVxuXG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDYwcHg7XG4gICAgbGVmdDogLTUwcHg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxMDBweCk7XG4gIH1cblxuICAub3dsLXByZXYge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBpY29uKCdmMTA0JywgJ0xpZ2h0Jyk7XG4gICAgfVxuICB9XG5cbiAgLm93bC1uZXh0IHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgaWNvbignZjEwNScsICdMaWdodCcpO1xuICAgIH1cbiAgfVxuXG4gIC5vd2wtcHJldixcbiAgLm93bC1uZXh0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ibGFjaztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAuc3ZnLWlubGluZS0tZmEge1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVGl0bGUuXG4gKi9cblxuLnNsaWRlLXRlYXNlcnNfX3RpdGxlIHtcbiAgQGluY2x1ZGUgZm9udChmb250LXNpemUoJ2xhcmdlJyksIGxpbmUtaGVpZ2h0KCdsYXJnZScpKTtcbn1cblxuLyoqXG4gKiBEZXNjcmlwdGlvbi5cbiAqL1xuXG4uc2xpZGUtdGVhc2Vyc19fZGVzY3JpcHRpb24ge1xuICBAaW5jbHVkZSBmb250KDE0cHgsIDI2cHgpO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEZvcm1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5mb3JtIHtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgbGFiZWwge1xuICAgIEBpbmNsdWRlIGZvbnQoMTRweCwgMjZweCk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cblxuICBpbnB1dCxcbiAgdGV4dGFyZWEge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYm9keTtcbiAgICBib3gtc2hhZG93OiAwIDAgOXB4IDAgcmdiYSgkY29sb3ItYmxhY2ssIDAuMDUpO1xuICB9XG5cbiAgaW5wdXRbdHlwZT0nc3VibWl0J10ge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmc6IDIwcHggMTVweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAuZ2Zvcm1fdmFsaWRhdGlvbl9jb250YWluZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAtOTk5OTlweDtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgLmdpbnB1dF9yZWNhcHRjaGEge1xuICAgIG1hcmdpbi10b3A6IC0yMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cblxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEZvb3RlclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmZvb3RlciB7XG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGU7XG59XG5cbi8qKlxuICogRm9vdGVyIHRvcFxuICovXG5cbi5mb290ZXJfX3RvcCB7XG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgcGFkZGluZy10b3A6IDUwcHg7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbjogLTEwcHg7XG4gIHBhZGRpbmctdG9wOiA3NXB4O1xuICBwYWRkaW5nLWJvdHRvbTogNTBweDtcbn1cblxuLmZvb3Rlcl9fdG9wID4gLmZvb3Rlcl9fY29sdW1ucyB7XG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIHdpZHRoOiA2MCU7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5mb290ZXJfX3RvcCA+IC5mb290ZXJfX2NvbHVtbiB7XG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgd2lkdGg6IDIwJTtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuLmZvb3Rlcl9fdG9wID4gLmZvb3Rlcl9fcGhvbmUtZW1haWwge1xuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG5cbiAgd2lkdGg6IDIwJTtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuLyoqXG4gKiBGb290ZXIgYm90dG9tXG4gKi9cblxuLmZvb3Rlcl9fYm90dG9tIHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAyNXB4O1xuXG4gID4gZGl2ID4gcCxcbiAgPiBkaXYgPiBhLFxuICA+IGRpdiA+IGRpdixcbiAgPiBkaXYgPiBzcGFuIHtcbiAgICBvcGFjaXR5OiAwLjY7XG4gIH1cbn1cblxuLyoqXG4gKiBGb290ZXIgYm90dG9tIGxlZnRcbiAqL1xuXG4uZm9vdGVyX19ib3R0b20tbGVmdCB7XG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLyoqXG4gKiBGb290ZXIgYm90dG9tIHJpZ2h0XG4gKi9cblxuLmZvb3Rlcl9fYm90dG9tLXJpZ2h0IHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi8qKlxuICogRm9vdGVyIGNvbHVtbnNcbiAqL1xuXG4uZm9vdGVyX19jb2x1bW5zIHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC8vIGRpc3BsYXk6IGdyaWQ7XG4gIC8vIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDNmcjtcbiAgLy8gZ3JpZC1jb2x1bW4tZ2FwOiAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5mb290ZXJfX2NvbHVtbiB7XG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICB9XG59XG5cbi8qKlxuICogRm9vdGVyIHdvb2RzcGVjaWVzLlxuICovXG5cbi5mb290ZXJfX3dvb2RzcGVjaWVzIHtcbiAgLy8gZGlzcGxheTogZ3JpZDtcbiAgLy8gZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgLy8gZ3JpZC1jb2x1bW4tZ2FwOiAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5mb290ZXJfX3dvb2RzcGVjaWVzID4gLmZvb3Rlcl9fbmF2IHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xuICAgIHdpZHRoOiAzMy4zMzM0JTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIHdpZHRoOiAzMy4zMzM0JTtcbn1cblxuLmZvb3Rlcl9fY29sdW1ucy0td29vZHNwZWNpZXMgPiAuZm9vdGVyX19jb2x1bW4ge1xuXG4gICY6bnRoLWNoaWxkKDEpIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XG4gICAgICB3aWR0aDogMTAwJTsgXG4gICAgfVxuXG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuXG4gICY6bnRoLWNoaWxkKDIpIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XG4gICAgICB3aWR0aDogMTAwJTsgXG4gICAgfVxuXG4gICAgd2lkdGg6IDc1JTtcbiAgfVxufVxuXG4vKipcbiAqIEZvb3RlciB0aXRsZVxuICovXG5cbi5mb290ZXJfX3RpdGxlIHtcbiAgQGluY2x1ZGUgZm9udCgxNnB4LCAxOHB4KTtcbn1cblxuLyoqXG4gKiBGb290ZXIgbmF2XG4gKi9cblxuLmZvb3Rlcl9fbmF2IHtcbiAgQGluY2x1ZGUgZm9udCgxNHB4LCAyNHB4KTtcblxuICBhIHtcblx0Ym9yZGVyLWJvdHRvbS1zdHlsZTogbm9uZVxuICB9XG59XG5cbi8qKlxuICogRm9vdGVyIGNvbnRhY3QgaW5mb1xuICovXG5cbi5mb290ZXJfX2NvbnRhY3QtaW5mbyB7XG4gIEBpbmNsdWRlIGZvbnQoMTRweCwgMjRweCk7XG59XG5cbi5mb290ZXJfX2NvbnRhY3QtdGl0bGUge1xuICBAaW5jbHVkZSBmb250KDEycHgsIDI0cHgpO1xufVxuXG4uZm9vdGVyX19jb250YWN0LXRleHQge1xuICBAaW5jbHVkZSBmb250KDE4cHgsIDI0cHgpO1xufVxuXG4vKipcbiAqIEZvb3RlciBsb2dvXG4gKi9cblxuLmZvb3Rlcl9fbG9nbyB7XG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG5cbiAgbWFyZ2luLXRvcDogLTIwcHg7XG59XG5cbi5mb290ZXJfX2xvZ28gaW1nIHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi5mb290ZXJfX2NvcHlyaWdodCB7XG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG59XG5cbi5zb2NpYWwtaWNvbnMge1xuICBAaW5jbHVkZSBmb250KGZvbnQtc2l6ZSgncmVndWxhcicpLCBsaW5lLWhlaWdodCgncmVndWxhcicpKTtcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICAvLyBmb250LXNpemU6IGZvbnQtc2l6ZSgncmVndWxhcicpO1xuICAvLyBsaW5lLWhlaWdodDogbGluZS1oZWlnaHQoJ3JlZ3VsYXInKTtcbn1cblxuLnNvY2lhbC1pY29uIHtcbiAgd2lkdGg6IDIwcHg7XG4gIG1hcmdpbjogMCAycHg7XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuXG4gID4gc3ZnLmlubGluZS1pY29uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuLnNvY2lhbC1pY29uLS1mYWNlYm9vayB7XG4gIGNvbG9yOiByZ2IoNTksIDg5LCAxNTIpO1xufVxuXG4uc29jaWFsLWljb24tLWxpbmtlZGluIHtcbiAgY29sb3I6IHJnYig3MiwgMTE3LCAxODApO1xufVxuXG4uc29jaWFsLWljb24tLXR3aXR0ZXIge1xuICBjb2xvcjogcmdiKDUxLCAyMDQsIDI1NSk7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWVudSBMYW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ubWVudS1sYW5nIHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDMwcHg7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB3aWR0aDogMjVweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cblxuICAmOmhvdmVyIC5sYW5ndWFnZS1zd2l0Y2gge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi5tZW51LWxhbmcgPiAubGFuZ3VhZ2Utc3dpdGNoX19pdGVtIHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xuICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gIH1cblxuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDEwcHggMTBweCAxMHB4IDA7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGljb24oJ2YwZDcnLCAnU29saWQnKTtcbiAgfVxuXG4gIC5pbmxpbmUtaWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMnB4O1xuICAgIHJpZ2h0OiAtMTZweDtcbiAgfVxufVxuXG4ubGFuZ3VhZ2Utc3dpdGNoIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIHotaW5kZXg6IHotaW5kZXgoOSk7XG5cbiAgLmxhbmd1YWdlLXN3aXRjaF9faXRlbSB7XG4gICAgcGFkZGluZzogMCAxcHg7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDFweDtcbiAgICB9XG4gIH1cbn1cblxuLmxhbmd1YWdlLXN3aXRjaF9fbGluayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LWluZGVudDogLTk5OTlweDtcblxuICA+IGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAmOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtaW4td2lkdGg6IDI1cHg7XG4gICAgaGVpZ2h0OiAxOXB4O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgY29udGVudDogJyc7XG4gIH1cbn1cblxuLyoqXG4gKiBEdXRjaCBsYW5ndWFnZSBsaW5rLlxuICovXG5cbi5tZW51LWxhbmcgLmxhbmd1YWdlLXN3aXRjaF9fbGluay0tbmw6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skZ2xvYmFsLWltYWdlLXBhdGh9ZmxhZ3Mvbmwuc3ZnJyk7XG59XG5cbi8qKlxuICogRnJlbmNoIGxhbmd1YWdlIGxpbmsuXG4gKi9cblxuLm1lbnUtbGFuZyAubGFuZ3VhZ2Utc3dpdGNoX19saW5rLS1mcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRnbG9iYWwtaW1hZ2UtcGF0aH1mbGFncy9mci5zdmcnKTtcbn1cblxuLyoqXG4gKiBFbmdsaXNoIGxhbmd1YWdlIGxpbmsuXG4gKi9cblxuLm1lbnUtbGFuZyAubGFuZ3VhZ2Utc3dpdGNoX19saW5rLS1lbjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRnbG9iYWwtaW1hZ2UtcGF0aH1mbGFncy9nYi5zdmcnKTtcbn1cblxuLyoqXG4gKiBHZXJtYW4gbGFuZ3VhZ2UgbGluay5cbiAqL1xuXG4ubWVudS1sYW5nIC5sYW5ndWFnZS1zd2l0Y2hfX2xpbmstLWRlOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGdsb2JhbC1pbWFnZS1wYXRofWZsYWdzL2RlLnN2ZycpO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFN1Ym1lbnUgKFBhZ2UpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIE1haW4uXG4gKi9cblxuLnBhZ2Utc3VibWVudSB7XG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcbiAgICBtYXJnaW46IC01MHB4IGF1dG8gMTAwcHg7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgQGluY2x1ZGUgZm9udCgxNHB4LDIycHgpO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMjMwcHg7XG4gIG1hcmdpbjogLTEwMHB4IGF1dG8gMTAwcHg7XG4gIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZTtcbiAgY29sb3I6ICRjb2xvci1ibGFjay0yMDA7XG59XG5cblxuLyoqXG4gKiBUaXRsZS5cbiAqL1xuXG5cbi5wYWdlLXN1Ym1lbnVfX3RpdGxlIHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTVweCAwO1xuICB9XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LWJhc2lzOiAyNSU7XG4gIHBhZGRpbmc6IDI1cHggNDBweDtcbiAgYmFja2dyb3VuZDogJGNvbG9yLWdyZWVuO1xuICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuXG4vKipcbiAqIExvb3AuXG4gKi9cblxuXG4ucGFnZS1zdWJtZW51X19sb29wIHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDE1cHggMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuXG4vKipcbiAqIFN1Ym1lbnUgaXRlbS5cbiAqL1xuXG4uc3VibWVudS1pdGVtIHtcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiA0cHggMjVweDtcbiAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICB9XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBtYXJnaW46IDE1cHggMDtcbiAgICBwYWRkaW5nOiAwcHggMjVweDtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkY29sb3ItYmxhY2stMjAwO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnZGVza3RvcCcpIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5hY3RpdmUge1xuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTUwcHg7XG4gICAgICByaWdodDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gIH1cblxuICAmOm5vdCguaXMtZmlyc3QtaXRlbSkge1xuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5pcy1zaG93biB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLyoqXG4gKiBXaGVuIHlvdSdyZSBvbiBhIHBhcmVudCBwYWdlLlxuICovXG5cbi5pcy1tYWluIHtcblxuICAucGFnZS1zdWJtZW51X19sb29wIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgLmlzLWZpcnN0LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAuc3VibWVudS1pdGVtOm5vdCguaXMtZmlyc3QtaXRlbSkge1xuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5pcy1zaG93biB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQWRkaXRpb25hbCBydWxlcyBmb3IgdGhlIGZpcnN0IGl0ZW0gaW4gdGhlIGxpc3QuXG4gKi9cblxuLmlzLWZpcnN0LWl0ZW0ge1xuXG4gIGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIHN2ZyB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIHdpZHRoOiAxM3B4O1xuICAgIGhlaWdodDogMTNweDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgfVxuXG4gICYuaXMtYWN0aXZlIHtcblxuICAgIHN2ZyB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEdhbGxlcnlcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogR2FsbGVyeSBpdGVtcy5cbiAqL1xuXG4uZ2FsbGVyeV9faXRlbXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbjogLTE1cHg7XG59XG5cblxuLyoqXG4gKiBHYWxsZXJ5IGl0ZW0uXG4gKi9cblxuLmdhbGxlcnlfX2l0ZW0ge1xuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiA2NSU7XG4gIH1cblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBjYWxjKDMzLjMzMzQlIC0gMzBweCk7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAxNXB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjAlO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gdG9wLWhlYWRlclxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnRvcC1oZWFkZXIge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlJykge1xyXG5cdCAgaGVpZ2h0OiBhdXRvO1xyXG5cdH1cclxuICBcclxuXHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0dG9wOiAwO1xyXG5cdGxlZnQ6IDA7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiA1MHB4O1xyXG5cdGJhY2tncm91bmQtY29sb3I6IHJnYig4LCA5OSwgNTcpO1xyXG5cdHotaW5kZXg6IHotaW5kZXgoOSk7XHJcbiAgXHJcblx0LndyYXBwZXIge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdH1cclxuICB9XHJcbiAgXHJcbiAgLm1lbnUtdG9wLWNvbnRhaW5lciB7XHJcblx0ICB1bCB7XHJcblx0XHQgIGRpc3BsYXk6IGZsZXg7XHJcbiAgXHJcblx0XHQgIGxpIHtcclxuXHRcdFx0ICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cdFx0XHQgIG1hcmdpbi1yaWdodDogMjBweDtcclxuXHRcdFx0ICBmb250LXdlaWdodDogNDAwO1xyXG5cdFx0XHQgIGZvbnQtc2l6ZTogMTNweDtcclxuXHRcdFx0ICBsaW5lLWhlaWdodDogMjBweDtcclxuXHJcblx0XHRcdCAgJi5jdXJyZW50LW1lbnUtaXRlbSwgJi5jdXJyZW50X3BhZ2VfaXRlbSB7XHJcblx0XHRcdFx0YSB7XHJcblx0XHRcdFx0XHRjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcclxuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA5MDA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQgIH1cclxuXHJcblx0XHRcdCAgYSB7XHJcblx0XHRcdFx0Y29sb3I6IHdoaXRlO1xyXG5cdFx0XHRcdHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluLW91dDtcclxuXHRcdFx0XHRib3JkZXItYm90dG9tLXN0eWxlOiBub25lO1xyXG5cclxuXHRcdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHRcdG9wYWNpdHk6IDAuNztcclxuXHRcdFx0XHR9XHJcblx0XHRcdCAgfVxyXG5cdFx0ICB9XHJcblx0ICB9XHJcbiAgfVxyXG4gIFxyXG4gIC5zZWFyY2gtZm9ybV9fd3JhcCB7XHJcblx0ICBpbnB1dCB7XHJcblx0XHQgIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuXHRcdCAgXHR3aWR0aDogYXV0bztcclxuXHRcdCAgfVxyXG5cdFx0ICB3aWR0aDogMjY0cHg7XHJcblx0XHQgIGJhY2tncm91bmQ6ICNGNEY2Rjk7XHJcblx0XHQgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuXHRcdCAgY29sb3I6ICM0QTYyNjg7XHJcblx0XHQgIHBhZGRpbmc6IDhweCAxNnB4O1xyXG5cdFx0ICBmb250LXNpemU6IDEzcHg7XHJcbiAgXHJcblx0XHQgICY6OnBsYWNlaG9sZGVyIHtcclxuXHRcdFx0ICBvcGFjaXR5OiAwLjg7XHJcblx0XHQgIH1cclxuXHQgIH1cclxuICB9IiwiLnNlYXJjaC1yZXN1bHRzIHtcclxuXHRtYXJnaW4tdG9wOiA1MHB4O1xyXG5cclxuXHQucGFnaW5hdGlvbiB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cdH1cclxufVxyXG5cclxuLnNlYXJjaC1mb3JtX193cmFwIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdHN2ZyB7XHJcblx0XHR3aWR0aDogMTNweDtcclxuXHRcdGhlaWdodDogMTNweDtcclxuXHRcdGNvbG9yOiAjNEE2MjY4O1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0cmlnaHQ6IDE2cHg7XHJcblx0XHR0b3A6IDhweDtcclxuXHRcdG9wYWNpdHk6IDAuODtcclxuXHR9XHJcbn1cclxuXHJcbi5zZWFyY2gtZm9ybSB7XHJcblx0LndyYXBwZXIge1xyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0XHRwYWRkaW5nOiAwO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLnNlYXJjaC1pdGVtIHtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGZsZXgtd3JhcDogd3JhcDtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWl0ZW1fX3dyYXBwZXIge1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0ZmxleC13cmFwOiB3cmFwO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uc2VhcmNoLWl0ZW1fX2ljb24ge1xyXG5cdHdpZHRoOiA1NnB4O1xyXG5cdGhlaWdodDogNTZweDtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjYzRjNGM0NDQ7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuXHRzdmcge1xyXG5cdFx0aGVpZ2h0OiAxM3B4O1xyXG5cdFx0d2lkdGg6IDEzcHg7XHJcblx0XHRjb2xvcjogIzRBNjI2ODtcclxuXHR9XHJcbn1cclxuXHJcbi5zZWFyY2gtaXRlbV9fYm9keSB7XHJcblx0d2lkdGg6IGNhbGMoMTAwJSAtIDc4cHgpO1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRmbGV4LXdyYXA6IHdyYXA7XHJcblx0bWFyZ2luLWxlZnQ6IDIycHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtaXRlbV9fdGl0bGUge1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGNvbG9yOiAjMDAwMDAwO1xyXG5cdGZvbnQtc2l6ZTogMTZweDtcclxuXHRsaW5lLWhlaWdodDogMjJweDtcclxufVxyXG5cclxuLnNlYXJjaC1icmVhZGNydW1iX19saW5rcyB7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuXHRzcGFuIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRtYXJnaW4tcmlnaHQ6IDVweDtcclxuXHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0Y29udGVudDogJz4nO1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogNXB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59IiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEhlbHBlcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogR2VuZXJpYyBoZWxwZXIgY2xhc3Nlcy5cbiAqL1xuXG5cbi8vIFZpc3VhbGx5IEhpZGRlblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBWaXN1YWxseSBoaWRlIGFueSBlbGVtZW50IGZyb20gdGhlIHVzZXIuXG4gKi9cblxuLnZpc3VhbGx5LWhpZGRlbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gIGNsaXAtcGF0aDogaW5zZXQoMXB4KTtcbn1cblxuXG4vLyBMYXp5bG9hZFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBNYWtlIGxhenlsb2FkIHBsYWNlaG9sZGVyIDEwMCUgd2lkZS5cbiAqL1xuXG4ubGF6eWxvYWQge1xuICB3aWR0aDogMTAwJTtcbn1cblxuXG4vLyBPYmplY3QgRml0XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEhlbHBlciBjbGFzcyBmb3Igb2JqZWN0IGZpdCBwb2x5ZmlsbC4gQWRkIHRoaXMgY2xhc3MgdG8gYW55IGVsZW1lbnRcbiAqIHRoYXQgdXRpbGl6ZXMgdGhlIGBvYmplY3QtZml0YCBwcm9wZXJ0eS5cbiAqL1xuXG4ub2JqZWN0LWZpdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LWZhbWlseTogJ29iamVjdC1maXQ6IGNvdmVyOyc7XG4gIC1vLW9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuXG4vLyBUaXRsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi50aXRsZS0xIHtcbiAgQGluY2x1ZGUgZm9udChmb250LXNpemUoJ2p1bWJvJyksIGxpbmUtaGVpZ2h0KCdqdW1ibycpKTtcbiAgZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0KCdtZWRpdW0nKTtcbn1cblxuLnRpdGxlLTIge1xuICBAaW5jbHVkZSBmb250KGZvbnQtc2l6ZSgnbWVnYScpLCBsaW5lLWhlaWdodCgnbWVnYScpKTtcbiAgZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0KCdtZWRpdW0nKTtcbn1cblxuLnRpdGxlLTMge1xuICBAaW5jbHVkZSBmb250KGZvbnQtc2l6ZSgnaHVnZScpLCBsaW5lLWhlaWdodCgnaHVnZScpKTtcbiAgZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0KCdtZWRpdW0nKTtcbn1cblxuLnRpdGxlLTQge1xuICBAaW5jbHVkZSBmb250KGZvbnQtc2l6ZSgnbGFyZ2UnKSwgbGluZS1oZWlnaHQoJ2xhcmdlJykpO1xuICBmb250LXdlaWdodDogZm9udC13ZWlnaHQoJ21lZGl1bScpO1xufVxuXG5cbi8vIFdyYXBwZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogTm9ybWFsIHdyYXBwZXJcbiAqL1xuXG4ud3JhcHBlciB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDcwcHg7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbn1cblxuLndyYXBwZXItLXdpZGUtbm8tcGFkZGluZyB7XG4gIG1heC13aWR0aDogMTIzMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi8qKlxuICogV2lkZSB3cmFwcGVyXG4gKi9cblxuLndyYXBwZXItLXdpZGUge1xuICBtYXgtd2lkdGg6IDEyNzBweDtcbn1cblxuLyoqXG4gKiBTbWFsbCB3cmFwcGVyXG4gKi9cblxuLndyYXBwZXItLXNtYWxsIHtcbiAgbWF4LXdpZHRoOiA5NjBweDtcbn1cblxuXG4vLyBNYXJnaW5zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ubTEwIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLm0yMCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5tMzAge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuXG4ubTQwIHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbn1cblxuXG4vLyBUZXh0IHNpemVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udGV4dC10aW55IHtcbiAgQGluY2x1ZGUgZm9udChmb250LXNpemUoJ3RpbnknKSwgbGluZS1oZWlnaHQoJ3RpbnknKSk7XG59XG5cblxuLy8gQmFja2dyb3VuZCBjb2xvclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmJhY2tncm91bmQtd2hpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGU7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ01TIE91dHB1dFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBFdmVyeSBjb25jZWl2YWJsZSBIVE1MIGVsZW1lbnQgd2l0aGluIGEgYC5jbXMtb3V0cHV0YCB3cmFwcGVyLlxuICovXG5cbi5jbXMtb3V0cHV0IHtcblxuICAvLyBFdmVyeXRoaW5nIGRpcmVjdGx5IGRlc2NlbmRpbmdcbiAgPiAqIHtcblxuICAgIC8vIEV4Y2x1ZGUgbGFzdCBjaGlsZHJlbi5cbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIH1cbiAgfVxuXG4gIC8vIFVub3JkZXJlZCBsaXN0LlxuICB1bCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuICB9XG5cbiAgLy8gT3JkZXJlZCBsaXN0LlxuICBvbCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuICB9XG5cbiAgLy8gQW5jaG9ycyBkaXJlY3RseSBkZXNjZW5kaW5nIHBhcmFncmFwaHMuXG4gIHAgPiBhIHtcbiAgICBjb2xvcjogJGNvbG9yLWxpbms7XG5cbiAgICAvLyBIb3ZlciBzdGF0ZS5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxuXG4gIHRhYmxlIHtcbiAgICBtYXJnaW46IDFlbSBhdXRvO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIH1cblxuICB0YWJsZSB0aCxcbiAgdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgZGFya2VuKCRjb2xvci1ib2R5LWJhY2tncm91bmQsIDEwJSk7XG4gIH1cblxuICB0YWJsZSB0aCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRjb2xvci1ib2R5LWJhY2tncm91bmQsIDEwJSk7XG4gIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUZXh0XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEdlbmVyYXRlIHV0aWxpdHkgY2xhc3NlcyBmb3IgbWFuaXB1bGF0aW9uIG9mIGZvbnQgc2l6ZXMuXG4gKi9cblxuQGVhY2ggJGtleSwgJHZhbHVlIGluICRmb250LXNpemUge1xuICAudGV4dC0jeyRrZXl9IHtcbiAgICBAaW5jbHVkZSBmb250KGZvbnQtc2l6ZSgka2V5KSwgbGluZS1oZWlnaHQoJGtleSkpO1xuICB9XG59XG5cblxuLyoqXG4gKiBHZW5lcmF0ZSB1dGlsaXR5IGNsYXNzZXMgZm9yIG1hbmlwdWxhdGlvbiBvZiB0ZXh0IGFsaWdubWVudC5cbiAqL1xuXG5AZWFjaCAkZGlyZWN0aW9uIGluIGxlZnQsIHJpZ2h0LCBjZW50ZXIge1xuICAudGV4dC0jeyRkaXJlY3Rpb259IHtcbiAgICB0ZXh0LWFsaWduOiAkZGlyZWN0aW9uO1xuICB9XG59XG5cblxuLyoqXG4gKiBHZW5lcmF0ZSB1dGlsaXR5IGNsYXNzZXMgZm9yIG1hbmlwdWxhdGlvbiBvZiBmb250IHdlaWdodC5cbiAqL1xuXG5AZWFjaCAka2V5LCAkdmFsdWUgaW4gJGZvbnQtd2VpZ2h0IHtcbiAgLnRleHQtI3ska2V5fSB7XG4gICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENvbG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvbG9yIGNvbnRleHQgdXRpbGl0eSBoZWxwZXIgY2xhc3NlcyBmb3IgbWFuaXB1bGF0aW5nIHRleHQgb3IgYmFja2dyb3VuZFxuICogY29sb3JzIGRpcmVjdGx5IGluIHRoZSBIVE1MLlxuICovXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gWi1pbmRleFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBVdGlsaXR5IGNsYXNzZXMgZm9yIG1hbmlwdWxhdGluZyBzdGFja2luZyBvcmRlciBpbiBIVE1MLlxuICovXG5cbkBlYWNoICRrZXksICR2YWx1ZSBpbiAkei1pbmRleCB7XG4gIC56LWluZGV4LSN7JGtleX0ge1xuICAgIHotaW5kZXg6ICR2YWx1ZTtcbiAgfVxufVxuIl19 */
