.background-color-blue-100 {
  background: #ecf5fc; }

.background-color-white {
  background: white; }

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

.ui-timepicker-wrapper {
  overflow-y: auto;
  max-height: 150px;
  width: 6.5em;
  background: #fff;
  border: 1px solid #ddd;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  outline: none;
  z-index: 10052;
  margin: 0; }

.ui-timepicker-wrapper.ui-timepicker-with-duration {
  width: 13em; }

.ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-30,
.ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-60 {
  width: 11em; }

.ui-timepicker-list {
  margin: 0;
  padding: 0;
  list-style: none; }

.ui-timepicker-duration {
  margin-left: 5px;
  color: #888; }

.ui-timepicker-list:hover .ui-timepicker-duration {
  color: #888; }

.ui-timepicker-list li {
  padding: 3px 0 3px 5px;
  cursor: pointer;
  white-space: nowrap;
  color: #000;
  list-style: none;
  margin: 0; }

.ui-timepicker-list:hover .ui-timepicker-selected {
  background: #fff;
  color: #000; }

li.ui-timepicker-selected,
.ui-timepicker-list li:hover,
.ui-timepicker-list .ui-timepicker-selected:hover {
  background: #1980EC;
  color: #fff; }

li.ui-timepicker-selected .ui-timepicker-duration,
.ui-timepicker-list li:hover .ui-timepicker-duration {
  color: #ccc; }

.ui-timepicker-list li.ui-timepicker-disabled,
.ui-timepicker-list li.ui-timepicker-disabled:hover,
.ui-timepicker-list li.ui-timepicker-selected.ui-timepicker-disabled {
  color: #888;
  cursor: default; }

.ui-timepicker-list li.ui-timepicker-disabled:hover,
.ui-timepicker-list li.ui-timepicker-selected.ui-timepicker-disabled {
  background: #f2f2f2; }

/* 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 {
    transform: scale(0.75); }
  .mfp-arrow-left {
    transform-origin: 0; }
  .mfp-arrow-right {
    transform-origin: 100%; }
  .mfp-container {
    padding-left: 6px;
    padding-right: 6px; } }

/*
 *  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;
    touch-action: manipulation;
    -moz-backface-visibility: hidden;
    /* fix firefox animation glitch */ }
  .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-wrapper,
  .owl-carousel .owl-item {
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -ms-backface-visibility: hidden;
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0); }
  .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%; }
  .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;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; }
  .owl-carousel .owl-nav button.owl-prev,
  .owl-carousel .owl-nav button.owl-next,
  .owl-carousel button.owl-dot {
    background: none;
    color: inherit;
    border: none;
    padding: 0 !important;
    font: inherit; }
  .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 {
    touch-action: pan-y;
    -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 {
  /**
			This is introduced due to a bug in IE11 where lazy loading combined with autoheight plugin causes a wrong
			calculation of the height of the owl-item that breaks page layouts
		 */ }
  .owl-carousel .owl-item .owl-lazy {
    opacity: 0;
    transition: opacity 400ms ease; }
  .owl-carousel .owl-item .owl-lazy[src^=""], .owl-carousel .owl-item .owl-lazy:not([src]) {
    max-height: 0; }
  .owl-carousel .owl-item img.owl-lazy {
    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: transform 100ms ease; }

.owl-carousel .owl-video-play-icon:hover {
  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%; }

/* ==========================================================================
   Headings
   ========================================================================== */
/* ==========================================================================
   Base
   ========================================================================== */
/**
 * 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;
  /* 1 */ }

/**
 * Set height of the document to maxium viewport height.
 *
 * 1. Set root font size to 10.
 */
html {
  height: 100vh;
  font-size: 62.5%;
  /* 1 */
  box-sizing: border-box;
  overflow-x: hidden; }

/**
 * 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: 15px;
  font-size: 1.5rem;
  line-height: 1.33333em;
  min-height: 100vh;
  background-color: white;
  color: black;
  font-family: "Montserrat", sans-serif;
  text-rendering: optimizeLegibility;
  opacity: 0;
  -moz-osx-font-smoothing: grayscale;
  /* 1 */
  -webkit-font-smoothing: antialiased;
  /* 2 */
  overflow-x: hidden;
  -webkit-animation: fadeIn 500ms;
          animation: fadeIn 500ms; }
  body.is-active {
    overflow: hidden; }
  body.is-loaded {
    opacity: 1 !important; }

.content {
  position: relative;
  margin-top: 150px;
  overflow: hidden; }

.is-hidden {
  display: none; }

/* ==========================================================================
   Reset
   ========================================================================== */
/**
 * Custom user agent resets and overrides that are not present in
 * Normalize 8.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;
  /* 1 */
  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 */ }

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

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

strong {
  font-weight: 700; }

/* ==========================================================================
   Animations
   ========================================================================== */
@-webkit-keyframes slideDown {
  0% {
    top: -200px;
    opacity: 0; }
  100% {
    top: 0;
    opacity: 1; } }
@keyframes slideDown {
  0% {
    top: -200px;
    opacity: 0; }
  100% {
    top: 0;
    opacity: 1; } }

@-webkit-keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

/* ==========================================================================
   Buttons
   ========================================================================== */
/**
 * Main settings.
 */
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 40px;
  transition: all 250ms ease;
  border-radius: 20px;
  font-weight: 600;
  text-transform: lowercase;
  cursor: pointer; }
  .button svg {
    width: 13px;
    height: 13px;
    margin-left: 10px; }
  .button.svg-left svg {
    margin: 0 10px 0 0; }
  .button.no-lowercase {
    text-transform: none; }
  .button.less-padding {
    padding: 10px 20px; }

/**
 * Orange (Primary).
 */
.button-primary--orange {
  background: #ff6e2c;
  color: white; }
  @media only screen and (min-width: 1200px) {
    .button-primary--orange:hover {
      background: #f84e00;
      box-shadow: 3px 3px 7px 0 rgba(255, 110, 44, 0.51); } }

/**
 * White (Primary).
 */
.button-primary--white {
  background: white;
  color: #042e4b;
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.09); }
  @media only screen and (min-width: 1200px) {
    .button-primary--white:hover {
      background: #042e4b;
      color: white; } }

/**
 * Transparent (White).
 */
.button-transparent--white,
.button-transparant {
  border: 1px solid white;
  background: transparent;
  color: white; }
  @media only screen and (min-width: 1200px) {
    .button-transparent--white:hover,
    .button-transparant:hover {
      background: white;
      color: #042e4b; } }

/**
 * Transparent (Blue).
 */
.button-transparent--blue {
  border: 1px solid #042e4b;
  background: white;
  color: #042e4b; }
  @media only screen and (min-width: 1200px) {
    .button-transparent--blue:hover {
      background: #042e4b;
      color: white; } }

/* ==========================================================================
   Container
   ========================================================================== */
/**
 * The container object centers an element in the document.
 */
.container {
  max-width: calc(1024px + 40px);
  padding: 0 20px;
  width: 100%;
  margin: 0 auto; }

/* ==========================================================================
   Content Constraint
   ========================================================================== */
/**
 * 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;
  height: 0; }
  @media only screen and (min-width: 600px) {
    .content-constraint {
      height: 100%;
      min-height: 100vh;
      overflow-x: hidden; } }
  @media only screen and (max-width: 599px) {
    .content-constraint {
      flex-wrap: wrap; } }
  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
    .content-constraint {
      height: 0 !important; } }

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

/**
 * Set value of the flex-wrap property to 'wrap'.
 */
.flex-wrap {
  flex-wrap: wrap; }

/**
 * Flex object with a column based layout system.
 */
.row {
  display: flex;
  flex: 0 1 auto;
  flex-flow: row wrap;
  margin: 0 -10px; }

/**
 * Box, the inside of a column.
 */
.box {
  flex: 1; }

/**
       * Column 1 for the `xs` breakpoint.
       */
.col-xs-1 {
  flex: 0 1 auto;
  width: 8.33333%;
  padding: 0 10px; }

/**
         * Offset 1 for the `xs` breakpoint.
         */
.offset-xs-1 {
  margin-left: 8.33333%; }

/**
       * Column 2 for the `xs` breakpoint.
       */
.col-xs-2 {
  flex: 0 1 auto;
  width: 16.66667%;
  padding: 0 10px; }

/**
         * Offset 2 for the `xs` breakpoint.
         */
.offset-xs-2 {
  margin-left: 16.66667%; }

/**
       * Column 3 for the `xs` breakpoint.
       */
.col-xs-3 {
  flex: 0 1 auto;
  width: 25%;
  padding: 0 10px; }

/**
         * Offset 3 for the `xs` breakpoint.
         */
.offset-xs-3 {
  margin-left: 25%; }

/**
       * Column 4 for the `xs` breakpoint.
       */
.col-xs-4 {
  flex: 0 1 auto;
  width: 33.33333%;
  padding: 0 10px; }

/**
         * Offset 4 for the `xs` breakpoint.
         */
.offset-xs-4 {
  margin-left: 33.33333%; }

/**
       * Column 5 for the `xs` breakpoint.
       */
.col-xs-5 {
  flex: 0 1 auto;
  width: 41.66667%;
  padding: 0 10px; }

/**
         * Offset 5 for the `xs` breakpoint.
         */
.offset-xs-5 {
  margin-left: 41.66667%; }

/**
       * Column 6 for the `xs` breakpoint.
       */
.col-xs-6 {
  flex: 0 1 auto;
  width: 50%;
  padding: 0 10px; }

/**
         * Offset 6 for the `xs` breakpoint.
         */
.offset-xs-6 {
  margin-left: 50%; }

/**
       * Column 7 for the `xs` breakpoint.
       */
.col-xs-7 {
  flex: 0 1 auto;
  width: 58.33333%;
  padding: 0 10px; }

/**
         * Offset 7 for the `xs` breakpoint.
         */
.offset-xs-7 {
  margin-left: 58.33333%; }

/**
       * Column 8 for the `xs` breakpoint.
       */
.col-xs-8 {
  flex: 0 1 auto;
  width: 66.66667%;
  padding: 0 10px; }

/**
         * Offset 8 for the `xs` breakpoint.
         */
.offset-xs-8 {
  margin-left: 66.66667%; }

/**
       * Column 9 for the `xs` breakpoint.
       */
.col-xs-9 {
  flex: 0 1 auto;
  width: 75%;
  padding: 0 10px; }

/**
         * Offset 9 for the `xs` breakpoint.
         */
.offset-xs-9 {
  margin-left: 75%; }

/**
       * Column 10 for the `xs` breakpoint.
       */
.col-xs-10 {
  flex: 0 1 auto;
  width: 83.33333%;
  padding: 0 10px; }

/**
         * Offset 10 for the `xs` breakpoint.
         */
.offset-xs-10 {
  margin-left: 83.33333%; }

/**
       * Column 11 for the `xs` breakpoint.
       */
.col-xs-11 {
  flex: 0 1 auto;
  width: 91.66667%;
  padding: 0 10px; }

/**
         * Offset 11 for the `xs` breakpoint.
         */
.offset-xs-11 {
  margin-left: 91.66667%; }

/**
       * Column 12 for the `xs` breakpoint.
       */
.col-xs-12 {
  flex: 0 1 auto;
  width: 100%;
  padding: 0 10px; }

/**
       * Align `stretch` for the xs breakpoint.
       */
.align-xs-stretch {
  align-items: stretch; }

/**
       * Align `center` for the xs breakpoint.
       */
.align-xs-center {
  align-items: center; }

/**
       * Align `flex-start` for the xs breakpoint.
       */
.align-xs-flex-start {
  align-items: flex-start; }

/**
       * Align `flex-end` for the xs breakpoint.
       */
.align-xs-flex-end {
  align-items: flex-end; }

/**
       * Align `baseline` for the xs breakpoint.
       */
.align-xs-baseline {
  align-items: baseline; }

/**
       * Justify `start` for the xs breakpoint.
       */
.justify-xs-start {
  justify-content: start; }

/**
       * Justify `center` for the xs breakpoint.
       */
.justify-xs-center {
  justify-content: center; }

/**
       * Justify `space-between` for the xs breakpoint.
       */
.justify-xs-space-between {
  justify-content: space-between; }

/**
       * Justify `space-around` for the xs breakpoint.
       */
.justify-xs-space-around {
  justify-content: space-around; }

/**
       * Justify `space-evenly` for the xs breakpoint.
       */
.justify-xs-space-evenly {
  justify-content: space-evenly; }

/**
       * Justify `flex-end` for the xs breakpoint.
       */
.justify-xs-flex-end {
  justify-content: flex-end; }

/**
       * Bleed left for the xs breakpoint.
       */
.bleed-xs-left {
  padding-left: 0; }

/**
       * Bleed right for the xs breakpoint.
       */
.bleed-xs-right {
  padding-right: 0; }

/**
     * Order first for the `xs` breakpoint.
     */
.first-xs {
  order: -1; }

/**
     * Order last for the `xs` breakpoint.
     */
.last-xs {
  order: 1; }

/**
     * Reverse order for the `xs` breakpoint.
     */
.reverse-xs {
  flex-direction: row-reverse; }

@media only screen and (max-width: 599px) {
  /**
       * Column 1 for the `sm` breakpoint.
       */
  .col-sm-1 {
    flex: 0 1 auto;
    width: 8.33333%;
    padding: 0 10px; }
  /**
         * Offset 1 for the `sm` breakpoint.
         */
  .offset-sm-1 {
    margin-left: 8.33333%; }
  /**
       * Column 2 for the `sm` breakpoint.
       */
  .col-sm-2 {
    flex: 0 1 auto;
    width: 16.66667%;
    padding: 0 10px; }
  /**
         * Offset 2 for the `sm` breakpoint.
         */
  .offset-sm-2 {
    margin-left: 16.66667%; }
  /**
       * Column 3 for the `sm` breakpoint.
       */
  .col-sm-3 {
    flex: 0 1 auto;
    width: 25%;
    padding: 0 10px; }
  /**
         * Offset 3 for the `sm` breakpoint.
         */
  .offset-sm-3 {
    margin-left: 25%; }
  /**
       * Column 4 for the `sm` breakpoint.
       */
  .col-sm-4 {
    flex: 0 1 auto;
    width: 33.33333%;
    padding: 0 10px; }
  /**
         * Offset 4 for the `sm` breakpoint.
         */
  .offset-sm-4 {
    margin-left: 33.33333%; }
  /**
       * Column 5 for the `sm` breakpoint.
       */
  .col-sm-5 {
    flex: 0 1 auto;
    width: 41.66667%;
    padding: 0 10px; }
  /**
         * Offset 5 for the `sm` breakpoint.
         */
  .offset-sm-5 {
    margin-left: 41.66667%; }
  /**
       * Column 6 for the `sm` breakpoint.
       */
  .col-sm-6 {
    flex: 0 1 auto;
    width: 50%;
    padding: 0 10px; }
  /**
         * Offset 6 for the `sm` breakpoint.
         */
  .offset-sm-6 {
    margin-left: 50%; }
  /**
       * Column 7 for the `sm` breakpoint.
       */
  .col-sm-7 {
    flex: 0 1 auto;
    width: 58.33333%;
    padding: 0 10px; }
  /**
         * Offset 7 for the `sm` breakpoint.
         */
  .offset-sm-7 {
    margin-left: 58.33333%; }
  /**
       * Column 8 for the `sm` breakpoint.
       */
  .col-sm-8 {
    flex: 0 1 auto;
    width: 66.66667%;
    padding: 0 10px; }
  /**
         * Offset 8 for the `sm` breakpoint.
         */
  .offset-sm-8 {
    margin-left: 66.66667%; }
  /**
       * Column 9 for the `sm` breakpoint.
       */
  .col-sm-9 {
    flex: 0 1 auto;
    width: 75%;
    padding: 0 10px; }
  /**
         * Offset 9 for the `sm` breakpoint.
         */
  .offset-sm-9 {
    margin-left: 75%; }
  /**
       * Column 10 for the `sm` breakpoint.
       */
  .col-sm-10 {
    flex: 0 1 auto;
    width: 83.33333%;
    padding: 0 10px; }
  /**
         * Offset 10 for the `sm` breakpoint.
         */
  .offset-sm-10 {
    margin-left: 83.33333%; }
  /**
       * Column 11 for the `sm` breakpoint.
       */
  .col-sm-11 {
    flex: 0 1 auto;
    width: 91.66667%;
    padding: 0 10px; }
  /**
         * Offset 11 for the `sm` breakpoint.
         */
  .offset-sm-11 {
    margin-left: 91.66667%; }
  /**
       * Column 12 for the `sm` breakpoint.
       */
  .col-sm-12 {
    flex: 0 1 auto;
    width: 100%;
    padding: 0 10px; }
  /**
       * 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-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: 8.33333%;
    padding: 0 10px; }
  /**
         * Offset 1 for the `md` breakpoint.
         */
  .offset-md-1 {
    margin-left: 8.33333%; }
  /**
       * Column 2 for the `md` breakpoint.
       */
  .col-md-2 {
    flex: 0 1 auto;
    width: 16.66667%;
    padding: 0 10px; }
  /**
         * Offset 2 for the `md` breakpoint.
         */
  .offset-md-2 {
    margin-left: 16.66667%; }
  /**
       * Column 3 for the `md` breakpoint.
       */
  .col-md-3 {
    flex: 0 1 auto;
    width: 25%;
    padding: 0 10px; }
  /**
         * Offset 3 for the `md` breakpoint.
         */
  .offset-md-3 {
    margin-left: 25%; }
  /**
       * Column 4 for the `md` breakpoint.
       */
  .col-md-4 {
    flex: 0 1 auto;
    width: 33.33333%;
    padding: 0 10px; }
  /**
         * Offset 4 for the `md` breakpoint.
         */
  .offset-md-4 {
    margin-left: 33.33333%; }
  /**
       * Column 5 for the `md` breakpoint.
       */
  .col-md-5 {
    flex: 0 1 auto;
    width: 41.66667%;
    padding: 0 10px; }
  /**
         * Offset 5 for the `md` breakpoint.
         */
  .offset-md-5 {
    margin-left: 41.66667%; }
  /**
       * Column 6 for the `md` breakpoint.
       */
  .col-md-6 {
    flex: 0 1 auto;
    width: 50%;
    padding: 0 10px; }
  /**
         * Offset 6 for the `md` breakpoint.
         */
  .offset-md-6 {
    margin-left: 50%; }
  /**
       * Column 7 for the `md` breakpoint.
       */
  .col-md-7 {
    flex: 0 1 auto;
    width: 58.33333%;
    padding: 0 10px; }
  /**
         * Offset 7 for the `md` breakpoint.
         */
  .offset-md-7 {
    margin-left: 58.33333%; }
  /**
       * Column 8 for the `md` breakpoint.
       */
  .col-md-8 {
    flex: 0 1 auto;
    width: 66.66667%;
    padding: 0 10px; }
  /**
         * Offset 8 for the `md` breakpoint.
         */
  .offset-md-8 {
    margin-left: 66.66667%; }
  /**
       * Column 9 for the `md` breakpoint.
       */
  .col-md-9 {
    flex: 0 1 auto;
    width: 75%;
    padding: 0 10px; }
  /**
         * Offset 9 for the `md` breakpoint.
         */
  .offset-md-9 {
    margin-left: 75%; }
  /**
       * Column 10 for the `md` breakpoint.
       */
  .col-md-10 {
    flex: 0 1 auto;
    width: 83.33333%;
    padding: 0 10px; }
  /**
         * Offset 10 for the `md` breakpoint.
         */
  .offset-md-10 {
    margin-left: 83.33333%; }
  /**
       * Column 11 for the `md` breakpoint.
       */
  .col-md-11 {
    flex: 0 1 auto;
    width: 91.66667%;
    padding: 0 10px; }
  /**
         * Offset 11 for the `md` breakpoint.
         */
  .offset-md-11 {
    margin-left: 91.66667%; }
  /**
       * Column 12 for the `md` breakpoint.
       */
  .col-md-12 {
    flex: 0 1 auto;
    width: 100%;
    padding: 0 10px; }
  /**
       * 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-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: 8.33333%;
    padding: 0 10px; }
  /**
         * Offset 1 for the `lg` breakpoint.
         */
  .offset-lg-1 {
    margin-left: 8.33333%; }
  /**
       * Column 2 for the `lg` breakpoint.
       */
  .col-lg-2 {
    flex: 0 1 auto;
    width: 16.66667%;
    padding: 0 10px; }
  /**
         * Offset 2 for the `lg` breakpoint.
         */
  .offset-lg-2 {
    margin-left: 16.66667%; }
  /**
       * Column 3 for the `lg` breakpoint.
       */
  .col-lg-3 {
    flex: 0 1 auto;
    width: 25%;
    padding: 0 10px; }
  /**
         * Offset 3 for the `lg` breakpoint.
         */
  .offset-lg-3 {
    margin-left: 25%; }
  /**
       * Column 4 for the `lg` breakpoint.
       */
  .col-lg-4 {
    flex: 0 1 auto;
    width: 33.33333%;
    padding: 0 10px; }
  /**
         * Offset 4 for the `lg` breakpoint.
         */
  .offset-lg-4 {
    margin-left: 33.33333%; }
  /**
       * Column 5 for the `lg` breakpoint.
       */
  .col-lg-5 {
    flex: 0 1 auto;
    width: 41.66667%;
    padding: 0 10px; }
  /**
         * Offset 5 for the `lg` breakpoint.
         */
  .offset-lg-5 {
    margin-left: 41.66667%; }
  /**
       * Column 6 for the `lg` breakpoint.
       */
  .col-lg-6 {
    flex: 0 1 auto;
    width: 50%;
    padding: 0 10px; }
  /**
         * Offset 6 for the `lg` breakpoint.
         */
  .offset-lg-6 {
    margin-left: 50%; }
  /**
       * Column 7 for the `lg` breakpoint.
       */
  .col-lg-7 {
    flex: 0 1 auto;
    width: 58.33333%;
    padding: 0 10px; }
  /**
         * Offset 7 for the `lg` breakpoint.
         */
  .offset-lg-7 {
    margin-left: 58.33333%; }
  /**
       * Column 8 for the `lg` breakpoint.
       */
  .col-lg-8 {
    flex: 0 1 auto;
    width: 66.66667%;
    padding: 0 10px; }
  /**
         * Offset 8 for the `lg` breakpoint.
         */
  .offset-lg-8 {
    margin-left: 66.66667%; }
  /**
       * Column 9 for the `lg` breakpoint.
       */
  .col-lg-9 {
    flex: 0 1 auto;
    width: 75%;
    padding: 0 10px; }
  /**
         * Offset 9 for the `lg` breakpoint.
         */
  .offset-lg-9 {
    margin-left: 75%; }
  /**
       * Column 10 for the `lg` breakpoint.
       */
  .col-lg-10 {
    flex: 0 1 auto;
    width: 83.33333%;
    padding: 0 10px; }
  /**
         * Offset 10 for the `lg` breakpoint.
         */
  .offset-lg-10 {
    margin-left: 83.33333%; }
  /**
       * Column 11 for the `lg` breakpoint.
       */
  .col-lg-11 {
    flex: 0 1 auto;
    width: 91.66667%;
    padding: 0 10px; }
  /**
         * Offset 11 for the `lg` breakpoint.
         */
  .offset-lg-11 {
    margin-left: 91.66667%; }
  /**
       * Column 12 for the `lg` breakpoint.
       */
  .col-lg-12 {
    flex: 0 1 auto;
    width: 100%;
    padding: 0 10px; }
  /**
       * 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-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: 8.33333%;
    padding: 0 10px; }
  /**
         * Offset 1 for the `xl` breakpoint.
         */
  .offset-xl-1 {
    margin-left: 8.33333%; }
  /**
       * Column 2 for the `xl` breakpoint.
       */
  .col-xl-2 {
    flex: 0 1 auto;
    width: 16.66667%;
    padding: 0 10px; }
  /**
         * Offset 2 for the `xl` breakpoint.
         */
  .offset-xl-2 {
    margin-left: 16.66667%; }
  /**
       * Column 3 for the `xl` breakpoint.
       */
  .col-xl-3 {
    flex: 0 1 auto;
    width: 25%;
    padding: 0 10px; }
  /**
         * Offset 3 for the `xl` breakpoint.
         */
  .offset-xl-3 {
    margin-left: 25%; }
  /**
       * Column 4 for the `xl` breakpoint.
       */
  .col-xl-4 {
    flex: 0 1 auto;
    width: 33.33333%;
    padding: 0 10px; }
  /**
         * Offset 4 for the `xl` breakpoint.
         */
  .offset-xl-4 {
    margin-left: 33.33333%; }
  /**
       * Column 5 for the `xl` breakpoint.
       */
  .col-xl-5 {
    flex: 0 1 auto;
    width: 41.66667%;
    padding: 0 10px; }
  /**
         * Offset 5 for the `xl` breakpoint.
         */
  .offset-xl-5 {
    margin-left: 41.66667%; }
  /**
       * Column 6 for the `xl` breakpoint.
       */
  .col-xl-6 {
    flex: 0 1 auto;
    width: 50%;
    padding: 0 10px; }
  /**
         * Offset 6 for the `xl` breakpoint.
         */
  .offset-xl-6 {
    margin-left: 50%; }
  /**
       * Column 7 for the `xl` breakpoint.
       */
  .col-xl-7 {
    flex: 0 1 auto;
    width: 58.33333%;
    padding: 0 10px; }
  /**
         * Offset 7 for the `xl` breakpoint.
         */
  .offset-xl-7 {
    margin-left: 58.33333%; }
  /**
       * Column 8 for the `xl` breakpoint.
       */
  .col-xl-8 {
    flex: 0 1 auto;
    width: 66.66667%;
    padding: 0 10px; }
  /**
         * Offset 8 for the `xl` breakpoint.
         */
  .offset-xl-8 {
    margin-left: 66.66667%; }
  /**
       * Column 9 for the `xl` breakpoint.
       */
  .col-xl-9 {
    flex: 0 1 auto;
    width: 75%;
    padding: 0 10px; }
  /**
         * Offset 9 for the `xl` breakpoint.
         */
  .offset-xl-9 {
    margin-left: 75%; }
  /**
       * Column 10 for the `xl` breakpoint.
       */
  .col-xl-10 {
    flex: 0 1 auto;
    width: 83.33333%;
    padding: 0 10px; }
  /**
         * Offset 10 for the `xl` breakpoint.
         */
  .offset-xl-10 {
    margin-left: 83.33333%; }
  /**
       * Column 11 for the `xl` breakpoint.
       */
  .col-xl-11 {
    flex: 0 1 auto;
    width: 91.66667%;
    padding: 0 10px; }
  /**
         * Offset 11 for the `xl` breakpoint.
         */
  .offset-xl-11 {
    margin-left: 91.66667%; }
  /**
       * Column 12 for the `xl` breakpoint.
       */
  .col-xl-12 {
    flex: 0 1 auto;
    width: 100%;
    padding: 0 10px; }
  /**
       * 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-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; } }

/* ==========================================================================
   Heading
   ========================================================================== */
/**
 * Default headings (H1).
 */
.heading-1-blue {
  font-size: 30px;
  font-size: 3rem;
  line-height: 1.16667em;
  color: #042e4b;
  font-family: "Montserrat", sans-serif;
  font-weight: 900; }

.subheading-1-blue {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 2em;
  color: #042e4b;
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  text-transform: uppercase;
  opacity: 0.5; }

.heading-1-white {
  font-size: 30px;
  font-size: 3rem;
  line-height: 1.16667em;
  color: white;
  font-family: "Montserrat", sans-serif;
  font-weight: 900; }

.subheading-1-white {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 2em;
  color: white;
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  text-transform: uppercase;
  opacity: 0.5; }

.subheading-1-grey {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 2em;
  color: #abb9c2;
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  text-transform: uppercase;
  opacity: 0.5; }

/**
 * Default headings (H2).
 */
.document-single__editor h2,
.heading-2-blue {
  font-size: 25px;
  font-size: 2.5rem;
  line-height: 1.2em;
  color: #042e4b;
  font-family: "Montserrat", sans-serif;
  font-weight: 800; }

.subheading-2-blue {
  font-size: 12px;
  font-size: 1.2rem;
  line-height: 2.5em;
  color: #042e4b;
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  text-transform: uppercase;
  opacity: 0.5; }

.heading-2-white {
  font-size: 25px;
  font-size: 2.5rem;
  line-height: 1.2em;
  color: white;
  font-family: "Montserrat", sans-serif;
  font-weight: 800; }

.subheading-2-white {
  font-size: 12px;
  font-size: 1.2rem;
  line-height: 2.5em;
  color: white;
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  text-transform: uppercase;
  opacity: 0.5; }

.subheading-2-grey {
  font-size: 12px;
  font-size: 1.2rem;
  line-height: 2.5em;
  color: #abb9c2;
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  text-transform: uppercase;
  opacity: 0.5; }

/**
 * Default headings (H3).
 */
.document-single__editor h3,
.heading-3-blue {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.33333em;
  color: #042e4b;
  font-family: "Montserrat", sans-serif;
  font-weight: 800; }

.heading-3-white {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.33333em;
  color: white;
  font-family: "Montserrat", sans-serif;
  font-weight: 800; }

.heading-3-orange {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.33333em;
  color: #ff6e2c;
  font-family: "Montserrat", sans-serif;
  font-weight: 800; }

/* ==========================================================================
   Labels
   ========================================================================== */
/**
 * Main settings (label).
 */
.label {
  font-size: 13px;
  font-size: 1.3rem;
  line-height: 1.53846em;
  display: inline-flex;
  padding: 7px 20px 3px;
  color: #042e4b;
  font-family: "Nunito", sans-serif;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
  opacity: 0.7;
  overflow: hidden; }
  @media only screen and (max-width: 599px) {
    .label {
      display: inline-block;
      width: 100%; } }
  .label.rounded {
    border-radius: 14px; }

/**
 * Light purple.
 */
.label--lightpurple {
  background: #f6f5fd;
  color: #042e4b; }

/* ==========================================================================
   Links
   ========================================================================== */
/**
 * Main settings (Link).
 */
.link {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.33333em;
  display: inline-flex;
  align-items: center;
  transition: color 250ms ease; }
  .link svg {
    width: 15px;
    height: 15px;
    margin: 0 5px; }
  .link.underline {
    text-decoration: underline; }

/**
 * Link (Blue).
 */
.link--blue {
  color: #042e4b;
  font-weight: 400; }
  @media only screen and (min-width: 1200px) {
    .link--blue:hover {
      color: #ff6e2c; } }

/**
 * Link (Blue, bold).
 */
.link-bold--blue {
  color: #042e4b;
  font-weight: 800; }
  @media only screen and (min-width: 1200px) {
    .link-bold--blue:hover {
      color: #ff6e2c; } }

/**
 * Link (Orange).
 */
.link--orange {
  color: #ff6e2c; }
  @media only screen and (min-width: 1200px) {
    .link--orange:hover {
      color: #042e4b; } }

/**
 * Link with background (Blue).
 */
.link-background--blue {
  padding: 10px;
  border-radius: 4px;
  background: #042e4b;
  color: white; }
  @media only screen and (min-width: 1200px) {
    .link-background--blue:hover {
      color: #ff6e2c; } }

.notice-download {
  display: flex;
  position: relative;
  align-items: center;
  background-color: #ecf5fc;
  margin: -25px 0 50px 0;
  padding: 10px 10px 10px 10px;
  border-radius: 5px; }
  .notice-download:before {
    position: absolute;
    top: -36px;
    left: 0px;
    width: 50px;
    height: 50px;
    border-left: 40px solid transparent;
    border-right: 40px solid transparent;
    border-bottom: 20px solid #ecf5fc;
    content: ''; }
  .notice-download svg {
    width: 16px;
    height: 15px;
    margin: 0 10px 0 0;
    opacity: 0.5; }
  .notice-download span {
    font-size: 15px;
    font-size: 1.5rem;
    line-height: 1.33333em;
    width: calc(100% - 26px);
    font-family: "Nunito", sans-serif;
    opacity: 0.5; }

/* ==========================================================================
   Section
   ========================================================================== */
/**
 *  Margin.
 */
.m10-top {
  margin-top: 10px !important; }

.m10-bottom {
  margin-bottom: 10px !important; }

.m20-top {
  margin-top: 20px !important; }

.m20-bottom {
  margin-bottom: 20px !important; }

.m30-top {
  margin-top: 30px !important; }

.m30-bottom {
  margin-bottom: 30px !important; }

.m50-top {
  margin-top: 50px; }

.m50-bottom {
  margin-bottom: 50px; }

.m80-top {
  margin-top: 80px; }

.m80-bottom {
  margin-bottom: 80px; }

.m100-top {
  margin-top: 100px; }

.m100-bottom {
  margin-bottom: 100px; }

/**
 *  Font weight.
 */
.font-weight-100 {
  font-weight: 100; }

.font-weight-300 {
  font-weight: 300; }

/**
 *  Text align left.
 */
.text-align-left {
  text-align: left; }

/* ==========================================================================
   Wrapper
   ========================================================================== */
/**
 * The wrapper object centers an element in the document.
 */
.wrapper {
  max-width: calc(1240px + 40px);
  padding: 0 20px;
  width: 100%;
  margin: 0 auto;
  width: 100%; }
  @media only screen and (max-width: 599px) {
    .wrapper {
      padding: 0 30px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .wrapper {
      padding: 0 60px; } }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .wrapper {
      padding: 0 50px; } }

.wrapper--small {
  max-width: 650px;
  margin: auto;
  padding: 20px; }

.wrapper--medium {
  max-width: 861px;
  margin: auto;
  padding: 20px; }

.wrapper--wide {
  max-width: 1069px;
  padding: 20px; }

/* ==========================================================================
   Balls
   ========================================================================== */
/**
 *  Main element.
 */
.ball {
  position: absolute;
  z-index: -1; }

/**
 *  First set of balls.
 */
.ball-purple {
  top: -250px;
  right: -180px; }
  @media only screen and (max-width: 599px) {
    .ball-purple {
      top: -200px;
      right: -170px; } }
  @media only screen and (min-width: 600px) and (max-width: 1199px) {
    .ball-purple {
      top: -240px;
      right: -220px; } }

.ball-orange {
  top: 320px;
  left: -230px; }
  @media only screen and (max-width: 599px) {
    .ball-orange {
      left: -250px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .ball-orange {
      left: -300px; } }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .ball-orange {
      left: -240px; } }

.ball-green {
  top: 1600px;
  right: -180px; }
  @media only screen and (max-width: 599px) {
    .ball-green {
      right: -200px; } }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .ball-green {
      right: -240px; } }

/**
 *  Second set of balls.
 */
.ball-purple--second {
  top: 2400px;
  left: -180px; }
  @media only screen and (max-width: 599px) {
    .ball-purple--second {
      left: -170px; } }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .ball-purple--second {
      left: -240px; } }

.ball-orange--second {
  top: 3000px;
  right: -270px; }
  @media only screen and (max-width: 599px) {
    .ball-orange--second {
      right: -380px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .ball-orange--second {
      right: -300px; } }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .ball-orange--second {
      right: -240px; } }

.ball-green--second {
  top: 3800px;
  left: -180px; }
  @media only screen and (max-width: 599px) {
    .ball-green--second {
      left: -300px; } }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .ball-green--second {
      left: -240px; } }

/**
 *  Third set of balls.
 */
.ball-purple--third {
  top: 4600px;
  right: -180px; }
  @media only screen and (max-width: 599px) {
    .ball-purple--third {
      right: -180px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .ball-purple--third {
      right: -300px; } }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .ball-purple--third {
      right: -240px; } }

.ball-orange--third {
  top: 5400px;
  left: -180px; }
  @media only screen and (max-width: 599px) {
    .ball-orange--third {
      left: -380px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .ball-orange--third {
      left: -300px; } }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .ball-orange--third {
      left: -240px; } }

.ball-green--third {
  top: 6200px;
  right: -180px; }
  @media only screen and (max-width: 599px) {
    .ball-green--third {
      right: -380px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .ball-green--third {
      right: -300px; } }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .ball-green--third {
      right: -240px; } }

/* ==========================================================================
   Breadcrumbs
   ========================================================================== */
/**
 *  Breadcrumbs.
 */
.breadcrumbs {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.42857em;
  position: relative;
  padding: 100px 0 50px;
  color: #abb9c2; }
  @media only screen and (max-width: 899px) {
    .breadcrumbs {
      position: relative;
      padding: 75px 0 50px; } }
  .breadcrumbs.is-empty {
    padding: 0; }
  .breadcrumbs .wrapper {
    padding: 0 !important; }
  .breadcrumbs .button {
    position: relative;
    top: -10px;
    border-radius: 30px; }
    @media only screen and (max-width: 899px) {
      .breadcrumbs .button {
        position: absolute;
        top: auto;
        right: -182px;
        bottom: 57px; } }
    @media only screen and (max-width: 899px) {
      .breadcrumbs .button svg {
        width: 30px;
        height: 30px;
        margin-right: 20px; } }
    @media only screen and (max-width: 899px) {
      .breadcrumbs .button.button--question {
        display: none; } }

/**
 *  Breadcrumb container.
 */
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center; }
  .breadcrumb a svg {
    width: 14px;
    height: 14px;
    margin-right: 10px;
    margin-left: 0; }
  .breadcrumb svg {
    width: 25px;
    height: 25px;
    margin-right: 10px;
    margin-left: 0; }

/**
 *  If a page only has 1 breadcrumb.
 */
.is-primary-breadcrumb {
  display: inline-flex;
  padding: 10px;
  border-radius: 5px;
  background: linear-gradient(224.7deg, #8b2de9 0%, #0b14a3 100%);
  color: white;
  font-family: "Nunito", sans-serif;
  font-weight: 200;
  letter-spacing: 0.2px; }
  .is-primary-breadcrumb svg {
    width: 15px;
    height: 15px;
    margin: 0 10px 0 0; }

/**
 *  Breadcrumb item.
 */
.breadcrumb li {
  margin-bottom: 10px; }
  .breadcrumb li.first {
    padding: 10px 15px;
    border-radius: 5px;
    background: linear-gradient(224.7deg, #8b2de9 0%, #0b14a3 100%);
    color: white;
    font-family: "Nunito", sans-serif;
    font-weight: 200; }
    @media only screen and (max-width: 599px) {
      .breadcrumb li.first {
        text-indent: -9999px; } }
    .breadcrumb li.first .fa-angle-right {
      display: none; }
    .breadcrumb li.first .fa-browser {
      width: 13px;
      height: 13px;
      margin: 0 10px 0 0; }
      @media only screen and (max-width: 599px) {
        .breadcrumb li.first .fa-browser {
          margin: 0; } }
  .breadcrumb li:not(:nth-child(1)) {
    margin-left: 20px; }

/* ==========================================================================
   CMS Output
   ========================================================================== */
/**
 * Every conceivable HTML element within a `.cms-output` wrapper.
 *
 * 1. Exclude last childs.
 */
.cms-output {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.33333em;
  margin-top: 50px;
  color: #042e4b;
  font-family: "Nunito", sans-serif;
  font-weight: 300; }
  .cms-output * {
    margin-bottom: 1em;
    /* 1 */ }
  .cms-output > p {
    margin-bottom: 50px; }
  .cms-output ul,
  .cms-output ol {
    margin: -30px 100px 60px 135px;
    list-style: none;
    counter-reset: my-awesome-counter; }
    @media only screen and (max-width: 1199px) {
      .cms-output ul,
      .cms-output ol {
        margin: -30px 100px 60px 50px; } }
    .cms-output ul li,
    .cms-output ol li {
      position: relative;
      margin-bottom: 1.5em;
      counter-increment: my-awesome-counter; }
      .cms-output ul li::before,
      .cms-output ol li::before {
        display: inline-block;
        position: absolute;
        top: 2px;
        left: -25px;
        width: 18px;
        background: linear-gradient(224.7deg, #8b2de9 0%, #0b14a3 100%);
        background-clip: text;
        color: transparent;
        font-size: 20px;
        font-weight: bold;
        content: counter(my-awesome-counter);
        -webkit-background-clip: text; }
  .cms-output ul {
    margin: -30px 100px 60px 135px;
    list-style-type: none; }
    @media only screen and (max-width: 1199px) {
      .cms-output ul {
        margin: -30px 100px 60px 50px; } }
    .cms-output ul li {
      font-size: 17px;
      font-size: 1.7rem;
      line-height: 1.76471em; }
      .cms-output ul li::before {
        top: 10px;
        left: -16px;
        width: 7px;
        height: 7px;
        border-radius: 20px;
        background: #042e4b;
        content: '';
        opacity: 0.8; }
  .cms-output p {
    font-size: 17px;
    font-size: 1.7rem;
    line-height: 1.76471em; }
  .cms-output p > a {
    color: black; }
    .cms-output p > a:hover {
      text-decoration: underline; }

/* ==========================================================================
   Dashboard relevant.
   ========================================================================== */
.dashboard-articles__title,
.dashboard-downloads__title,
.dashboard-questions__title {
  margin: 50px 0 40px; }
  @media only screen and (max-width: 599px) {
    .dashboard-articles__title,
    .dashboard-downloads__title,
    .dashboard-questions__title {
      margin: 50px 0 25px; } }

.dashboard-questions__title {
  margin: 30px 0 40px; }

.dashboard-articles__buttons,
.dashboard-downloads__buttons,
.dashboard-questions__buttons {
  margin-top: 50px; }
  @media only screen and (max-width: 599px) {
    .dashboard-articles__buttons,
    .dashboard-downloads__buttons,
    .dashboard-questions__buttons {
      margin-top: 30px; } }
  @media only screen and (max-width: 599px) {
    .dashboard-articles__buttons .button,
    .dashboard-downloads__buttons .button,
    .dashboard-questions__buttons .button {
      width: 100%;
      margin-bottom: 10px;
      font-size: 0.85em; } }

.dashboard-articles {
  position: relative; }

.swipe-icon {
  display: none;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  pointer-events: none; }
  @media only screen and (max-width: 1199px) {
    .swipe-icon {
      opacity: 1; } }
  .swipe-icon svg {
    position: relative;
    width: 25px;
    height: 25px;
    color: #042e4b;
    z-index: 3; }
    @media only screen and (max-width: 599px) {
      .swipe-icon svg {
        margin-top: -10px; } }
  .swipe-icon .up,
  .swipe-icon .down {
    display: flex;
    justify-content: center;
    width: 100%; }
    .swipe-icon .up svg,
    .swipe-icon .down svg {
      position: relative; }
  .swipe-icon .up svg {
    top: 7px;
    left: 5px;
    -webkit-animation: swipeFadeRight 2000ms ease infinite;
            animation: swipeFadeRight 2000ms ease infinite; }
    @media only screen and (max-width: 599px) {
      .swipe-icon .up svg {
        top: 3px; } }
  .swipe-icon .down svg {
    right: 5px;
    bottom: 7px;
    -webkit-animation: swipeFadeLeft 2000ms ease infinite;
            animation: swipeFadeLeft 2000ms ease infinite; }
    @media only screen and (max-width: 599px) {
      .swipe-icon .down svg {
        bottom: 3px; } }

/* ==========================================================================
   Dashboard shortcut.
   ========================================================================== */
.dashboard-shortcut {
  margin-bottom: 100px; }

.dashboard-shortcut__title {
  margin: 60px 0 50px; }

.dashboard-shortcut__columns {
  max-width: 610px; }
  @media only screen and (max-width: 899px) {
    .dashboard-shortcut__columns {
      max-width: 100%; } }

.dashboard-shortcut__column {
  width: 190px; }
  .dashboard-shortcut__column .heading-3-blue {
    margin-bottom: 20px; }
  @media only screen and (max-width: 599px) {
    .dashboard-shortcut__column {
      width: 100%; } }

.dashboard-shortcut__button {
  display: flex;
  position: relative;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  width: 190px;
  height: 95px;
  margin-bottom: 20px;
  padding: 10px;
  transition: all 250ms ease;
  border: 1px solid #abb9c2;
  border-radius: 5px;
  background: white;
  color: #042e4b;
  font-family: "Nunito", sans-serif;
  text-align: center; }
  @media only screen and (max-width: 599px) {
    .dashboard-shortcut__button {
      width: calc(50% - 10px); } }
  .dashboard-shortcut__button:hover {
    border: 1px solid #4a20c6;
    background: linear-gradient(224.7deg, #8b2de9 0%, #0b14a3 100%);
    color: white;
    box-shadow: 0 2px 20px 0 rgba(136, 45, 231, 0.3); }
    .dashboard-shortcut__button:hover svg {
      color: white; }
  .dashboard-shortcut__button svg {
    width: 100%;
    height: 25px;
    margin-bottom: -10px;
    color: #042e4b; }

/* ==========================================================================
   Default
   ========================================================================== */
/**
 *  Main element.
 */
.default {
  position: relative;
  width: 100%;
  margin: 75px 0; }
  @media only screen and (max-width: 899px) {
    .default {
      margin: 50px 0; } }

.content-default {
  margin: 100px 0 0; }
  @media only screen and (max-width: 899px) {
    .content-default {
      margin: 150px 0 0; } }

/**
 *  Editor.
 */
.default__editor {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.33333em;
  margin-top: 50px;
  color: #042e4b;
  font-family: "Nunito", sans-serif;
  font-weight: 300;
  opacity: 0.8; }
  .default__editor b,
  .default__editor strong {
    font-weight: 700; }

.default__text {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.33333em;
  font-family: "Nunito", sans-serif; }
  .default__text.color-white-100 {
    color: white; }

/**
 *  Default button settings.
 */
.default__button {
  margin-top: 30px;
  padding: 10px 20px; }

.third-step + .default {
  max-width: 620px;
  margin: -75px auto 150px;
  padding: 20px; }
  @media only screen and (max-width: 899px) {
    .third-step + .default {
      margin-top: 0;
      margin-bottom: 75px; } }

.breadcrumbs + .default {
  margin: 0 0 75px; }

/* ==========================================================================
   Document item.
   ========================================================================== */
/**
 *  Single item.
 */
.document-item,
.question-item {
  position: relative;
  margin-bottom: 30px;
  transition: all 250ms ease;
  border-radius: 10px;
  background: white;
  color: #042e4b;
  box-shadow: 0 2px 10px 3px #f2f6f9; }
  @media only screen and (min-width: 1200px) {
    .document-item:hover,
    .question-item:hover {
      box-shadow: 0 2px 10px 3px rgba(4, 46, 75, 0.21); }
      .document-item:hover .document-item__go,
      .question-item:hover .document-item__go {
        background: #042e4b;
        color: white; } }
  .document-item:nth-last-child(1),
  .question-item:nth-last-child(1) {
    margin-bottom: 0; }
  .document-item.js-hide,
  .question-item.js-hide {
    display: none; }
  .document-item.js-remove,
  .question-item.js-remove {
    display: none; }
  .document-item .row,
  .question-item .row {
    width: 100%; }
  .document-item .swipe-icon,
  .question-item .swipe-icon {
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    transition: all 250ms ease;
    background: rgba(255, 255, 255, 0.8); }
    .document-item .swipe-icon svg,
    .question-item .swipe-icon svg {
      width: 30px;
      height: 30px;
      color: #042e4b; }

.document-item__uploader {
  display: inline-block;
  width: 25%;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden; }
  @media (max-width: 680px) {
    .document-item__uploader {
      width: 50%; } }
  .document-item__uploader .fa-building {
    width: 14px;
    height: 14px;
    margin-right: 0; }

@media only screen and (max-width: 899px) {
  .document-item.has-delete .document-item__go {
    top: 50%;
    height: 50%;
    border-radius: 0 0 10px; } }

@media only screen and (max-width: 899px) {
  .document-item.has-delete .document-item__delete {
    display: flex;
    top: 0;
    right: 0;
    justify-content: center;
    height: 50%;
    border: 1px solid #f2f6f9;
    border-radius: 0 10px 0 0; }
    .document-item.has-delete .document-item__delete svg {
      width: 20px;
      height: 20px; } }

.question-item .document-item__center {
  padding: 20px 25px 10px; }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .question-item .document-item__center {
      padding: 20px 20px 10px; } }

/**
 *  Icon.
 */
.document-item__icon {
  font-size: 25px;
  font-size: 2.5rem;
  line-height: 1.2em;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 60px;
  height: 100%;
  border-radius: 10px 0 0 10px;
  color: white;
  font-family: "Montserrat", sans-serif;
  font-weight: 800; }
  @media (max-width: 680px) {
    .document-item__icon {
      width: 30px; } }
  .document-item__icon.article {
    background: linear-gradient(224.7deg, #f52faf 0%, #ff3030 100%); }
  .document-item__icon.download {
    background: linear-gradient(224.7deg, #00d660 0%, #00bfdf 100%); }
  .document-item__icon.question {
    background: linear-gradient(224.36deg, #ffc000 0%, #ff6e2c 100%); }

/**
 *  Center content (title & date).
 */
.document-item__center {
  margin: 0 40px 0 60px;
  padding: 20px 30px; }
  @media (max-width: 680px) {
    .document-item__center {
      margin: 0 50px 0 30px;
      padding: 20px 10px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .document-item__center {
      padding: 20px; } }
  .document-item__center svg {
    width: 14px;
    height: 14px;
    margin-right: 10px; }
    .document-item__center svg.fa-building {
      height: 11px; }
    .document-item__center svg.fa-user {
      position: relative;
      top: -2px; }

.document-item .fa-calendar-alt {
  position: relative;
  top: 3px; }

.question-item .fa-calendar-alt {
  position: relative;
  top: -1px; }

/**
 *  Question.
 */
.document-item__question {
  margin-bottom: 10px;
  padding: 30px 0;
  font-family: "Nunito", sans-serif; }
  .document-item__question::after {
    display: block;
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: #deddf5;
    content: ''; }

/**
 *  Title.
 */
.document-item__title {
  display: inline-block;
  width: 60%;
  color: #042e4b;
  font-family: "Nunito", sans-serif;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden; }
  @media (max-width: 680px) {
    .document-item__title {
      width: 100% !important;
      margin-bottom: 20px;
      padding-bottom: 20px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .document-item__title {
      width: 50%; } }
  .document-item__title::after {
    display: block;
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: #deddf5;
    content: ''; }
    @media (min-width: 680px) {
      .document-item__title::after {
        display: none; } }

/**
 *  Date.
 */
.document-item__date {
  width: 15%;
  color: #042e4b; }
  @media (max-width: 680px) {
    .document-item__date {
      justify-content: flex-start;
      width: 50% !important; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .document-item__date {
      width: 20%; } }
  .document-item__date svg {
    width: 14px;
    height: 14px;
    margin-right: 10px; }

/**
 *  Link.
 */
.document-item__go {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 55px;
  height: 100%;
  transition: background 250ms ease;
  border-radius: 0 10px 10px 0;
  background: #deddf5;
  color: #4a20c6; }
  @media only screen and (max-width: 899px) {
    .document-item__go {
      width: 50px; } }
  .document-item__go svg {
    width: 14px;
    height: 14px; }
    @media (max-width: 680px) {
      .document-item__go svg {
        width: 20px;
        height: 20px; } }

/**
 *  Delete.
 */
.document-item__delete {
  display: flex;
  position: absolute;
  top: 0;
  right: -65px;
  bottom: 0;
  align-items: center;
  width: 50px;
  height: 100%; }
  .document-item__delete svg {
    width: 15px;
    height: 15px;
    transition: color 250ms ease; }
  @media only screen and (min-width: 1200px) {
    .document-item__delete:hover svg {
      color: #ff6e2c; } }

/**
 *  Footer.
 */
.document-item__footer {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.42857em;
  color: #042e4b;
  opacity: 0.6; }

@media only screen and (max-width: 599px) {
  .item-name {
    display: none; } }

@media only screen and (max-width: 599px) {
  .item-organisation {
    display: none; } }

@media only screen and (max-width: 899px) {
  .item-organisation span {
    width: 200px;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden; } }

/**
 *  Dashboard exceptions.
 */
.articles .document-item {
  transition: all 250ms ease; }
  @media only screen and (min-width: 1200px) {
    .articles .document-item:hover {
      background: linear-gradient(224.7deg, #f52faf 0%, #ff3030 100%);
      color: white; }
      .articles .document-item:hover .document-item__icon {
        background: transparent; }
      .articles .document-item:hover .document-item__title {
        color: white;
        font-weight: bold; }
      .articles .document-item:hover .document-item__date {
        color: white; } }

.is-dashboard .owl-stage-outer {
  margin: -10px;
  padding: 10px; }

.is-dashboard .document-item {
  width: 100%;
  padding: 20px;
  transition: all 250ms ease; }
  @media only screen and (max-width: 599px) {
    .is-dashboard .document-item {
      width: 260px; } }

.is-dashboard .document-item a {
  display: flex;
  flex-wrap: wrap; }

.is-dashboard .document-item__icon {
  position: relative;
  width: 60px;
  height: 60px;
  margin: auto;
  transition: all 250ms ease;
  border-radius: 8px; }

.is-dashboard .document-item__center {
  display: flex;
  justify-content: center;
  width: 100%;
  margin: 0;
  padding: 0;
  transition: all 250ms ease; }

.is-dashboard .document-item__title {
  display: flex;
  justify-content: center;
  width: 100%;
  height: 40px;
  margin: 30px 0;
  transition: all 250ms ease;
  text-align: center;
  text-overflow: inherit;
  white-space: inherit; }
  .is-dashboard .document-item__title::after {
    display: none; }

.is-dashboard .document-item__date {
  display: flex;
  justify-content: center;
  width: 100%;
  margin: 0;
  padding: 0; }

.is-dashboard .document-item__go {
  display: none; }

/* ==========================================================================
   Document list.
   ========================================================================== */
.document-list {
  margin-bottom: 130px; }
  .document-list .upload-form {
    margin-top: 100px;
    padding-top: 100px;
    border-top: 1px solid #b7c7d2; }

.document-list__search {
  margin-bottom: 50px; }

.document-list__search.subject-type-1.is-board {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between; }
  .document-list__search.subject-type-1.is-board .document-list__search-input {
    width: calc(50% - 10px); }
    @media only screen and (max-width: 599px) {
      .document-list__search.subject-type-1.is-board .document-list__search-input {
        width: 100%; } }
  .document-list__search.subject-type-1.is-board .document-list__search-select {
    width: calc(50% - 10px); }
    @media only screen and (max-width: 599px) {
      .document-list__search.subject-type-1.is-board .document-list__search-select {
        width: 100%; } }

.document-list__search-input {
  position: relative;
  margin-top: 50px; }
  .document-list__search-input input {
    font-size: 15px;
    font-size: 1.5rem;
    line-height: 1.33333em;
    width: 100%;
    height: 40px;
    padding: 5px 20px;
    transition: border 250ms ease;
    border: 1px solid #b7c7d2;
    border-radius: 20px;
    color: #042e4b;
    font-family: "Nunito", sans-serif; }
    .document-list__search-input input:hover {
      border: 1px solid #4a20c6; }
    .document-list__search-input input::-moz-placeholder {
      color: #b7c7d2;
      opacity: 1; }
    .document-list__search-input input:-ms-input-placeholder {
      color: #b7c7d2;
      opacity: 1; }
    .document-list__search-input input::placeholder {
      color: #b7c7d2;
      opacity: 1; }
  .document-list__search-input svg {
    position: absolute;
    top: 10px;
    right: 20px;
    width: 14px;
    height: 20px;
    color: #b7c7d2; }

.document-list__search-select {
  position: relative;
  margin-top: 26px; }
  .document-list__search-select label {
    display: block;
    padding-bottom: 5px;
    color: #abb9c2; }
  .document-list__search-select select {
    font-size: 15px;
    font-size: 1.5rem;
    line-height: 1.33333em;
    width: 100%;
    height: 40px;
    padding: 5px 20px;
    transition: border 250ms ease;
    border: 1px solid #b7c7d2;
    border-radius: 5px;
    background-color: transparent;
    color: #042e4b;
    font-family: "Nunito", sans-serif; }
    .document-list__search-select select:hover {
      border: 1px solid #4a20c6; }
  .document-list__search-select svg {
    position: absolute;
    top: 35px;
    right: 20px;
    width: 14px;
    height: 20px;
    color: #042e4b;
    z-index: -1; }

/* ==========================================================================
   Document menu
   ========================================================================== */
/**
 *  Main element.
 */
.document-menu {
  position: fixed;
  top: 148px;
  right: 0;
  left: 0;
  align-items: stretch;
  background: white;
  font-family: "Nunito", sans-serif;
  box-shadow: 0 13px 15px 0 rgba(4, 46, 75, 0.04);
  z-index: 20; }
  @media only screen and (max-width: 599px) {
    .document-menu {
      top: 195px; } }
  @media only screen and (min-width: 600px) and (max-width: 1199px) {
    .document-menu {
      top: 110px; } }
  .document-menu .submenu-right {
    background: none; }

.document-menu .submenu-left {
  align-items: stretch; }
  @media only screen and (min-width: 1200px) {
    .document-menu .submenu-left {
      width: 185px; } }
  @media only screen and (max-width: 1199px) {
    .document-menu .submenu-left {
      cursor: pointer;
      z-index: 21; } }

.document-menu__mobile {
  display: none; }

.document-menu__links {
  width: calc(100% - 185px); }
  @media only screen and (max-width: 1199px) {
    .document-menu__links {
      position: absolute;
      top: -50px;
      width: 100%;
      transition: all 450ms ease;
      opacity: 0;
      pointer-events: none;
      overflow-y: auto; } }
  @media only screen and (max-width: 1199px) {
    .document-menu__links.is-active {
      top: 60px;
      opacity: 1;
      z-index: 20;
      pointer-events: all; } }

.document-left__links {
  width: 82%; }
  @media only screen and (max-width: 1199px) {
    .document-left__links {
      display: block;
      width: 100%;
      overflow-x: hidden; } }

.document-menu__item {
  position: relative;
  text-align: center; }
  @media only screen and (max-width: 1199px) {
    .document-menu__item {
      display: block;
      width: 100%;
      background: #042e4b; } }
  .document-menu__item a {
    display: flex;
    align-items: center;
    height: 100%;
    margin: 0 15px; }
    @media only screen and (max-width: 1199px) {
      .document-menu__item a {
        width: 100%;
        height: 100%;
        padding: 25px 0;
        color: white; } }
    .document-menu__item a svg {
      width: 13px;
      height: 13px;
      margin-left: 5px; }
  @media only screen and (min-width: 900px) {
    .document-menu__item:hover {
      border-radius: 4px 4px 0 0;
      background: #042e4b; }
      .document-menu__item:hover a {
        color: white; }
      .document-menu__item:hover .document-menu__submenu {
        top: 100%;
        opacity: 1;
        z-index: 9;
        pointer-events: all; } }

.document-menu__submenu {
  position: absolute;
  top: 70%;
  left: -30%;
  width: 40vw;
  max-width: 500px;
  max-height: calc(100vh - 210px);
  overflow-y: scroll;
  transition: all 350ms ease;
  background: #042e4b;
  color: white;
  opacity: 0;
  z-index: -1;
  pointer-events: none; }
  @media only screen and (max-width: 1199px) {
    .document-menu__submenu {
      position: static;
      width: 100%;
      max-width: 100%;
      height: 100%;
      max-height: 0;
      padding: 0;
      transition: all 450ms ease;
      background: #053d63;
      opacity: 0;
      z-index: -1;
      pointer-events: none; } }
  .document-menu__submenu::-webkit-scrollbar {
    width: 10px; }
  .document-menu__submenu::-webkit-scrollbar-track {
    background-color: transparent; }
  .document-menu__submenu::-webkit-scrollbar-thumb {
    background-color: #ff6e2c;
    border-radius: 10px; }
  @media only screen and (max-width: 1199px) {
    .document-menu__submenu.is-active {
      max-height: 1500px;
      padding: 15px 0;
      opacity: 1;
      pointer-events: all; } }

.document-menu__submenu-item {
  padding: 0 60px;
  transition: all 350ms ease; }
  @media only screen and (max-width: 1199px) {
    .document-menu__submenu-item {
      padding: 0 30px; } }
  .document-menu__submenu-item:nth-child(0) a {
    border-bottom: 0; }
  .document-menu__submenu-item:first-child {
    margin-top: 15px; }
  .document-menu__submenu-item:last-child {
    margin-bottom: 15px; }
  .document-menu__submenu-item:nth-last-child(1) a::after {
    display: none; }
  @media only screen and (min-width: 1200px) {
    .document-menu__submenu-item:hover {
      background: #ff6e2c; } }

.document-menu__submenu-item a {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.33333em;
  display: flex;
  position: relative;
  justify-content: flex-start;
  width: 100%;
  margin-left: 0;
  padding: 15px 0;
  font-family: "Nunito", sans-serif;
  text-align: left; }
  .document-menu__submenu-item a::after {
    display: block;
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background: #b7c7d2;
    content: '';
    opacity: 0.3; }

.document-menu__teaser {
  position: absolute;
  top: 90px;
  left: 50px;
  width: 185px;
  height: 55px;
  padding: 10px;
  border: 1px dashed #042e4b;
  border-radius: 5px;
  font-size: 14px;
  text-align: center;
  opacity: 0.6;
  z-index: 2; }
  @media only screen and (max-width: 899px) {
    .document-menu__teaser {
      top: 80px;
      width: 308px;
      height: 40px; } }
  .document-menu__teaser::before {
    display: inline-block;
    position: absolute;
    top: -10px;
    left: -40px;
    width: 25px;
    height: 37px;
    background: url("../Images/arrow.svg");
    content: ''; }
    @media only screen and (max-width: 1199px) {
      .document-menu__teaser::before {
        right: -40px;
        left: auto;
        width: 30px;
        background: url("../Images/arrow2.svg"); } }

/* ==========================================================================
   Document menu
   ========================================================================== */
.document-single__head {
  position: relative; }
  .document-single__head .label {
    width: auto; }

.document-single__date {
  opacity: 0.7; }
  .document-single__date svg {
    position: relative;
    top: 2px;
    width: 14px;
    height: 14px;
    margin-right: 10px; }

.document-single__icon {
  font-size: 25px;
  font-size: 2.5rem;
  line-height: 1.2em;
  position: absolute;
  top: -10px;
  bottom: 0;
  left: -105px;
  width: 50px;
  height: 50px;
  padding-top: 9px;
  border-radius: 33px;
  background: linear-gradient(224.7deg, #f52faf 0%, #ff3030 100%);
  color: white;
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  text-align: center; }
  @media (max-width: 680px) {
    .document-single__icon {
      width: 30px; } }

.document-single__title {
  margin: 50px 0 50px; }

.document-single__editor {
  padding-bottom: 30px;
  border-bottom: 1px solid #b7c7d2; }

/* ==========================================================================
   Document submenu.
   ========================================================================== */
.document-submenu {
  margin-top: 50px; }

.document-submenu__item {
  width: calc(25% - 15px); }
  @media only screen and (max-width: 599px) {
    .document-submenu__item {
      width: 100%; } }
  .document-submenu__item a {
    display: block;
    height: 160px;
    margin-bottom: 20px;
    padding-top: 15px;
    border-radius: 15px;
    background-color: white;
    color: #688293;
    font-family: "Nunito", sans-serif;
    text-align: center;
    box-shadow: 0 2px 10px 3px #f2f6f9; }
    @media only screen and (max-width: 599px) {
      .document-submenu__item a {
        display: flex;
        height: 60px;
        padding: 23px 20px;
        text-align: left; } }
    .document-submenu__item a:hover {
      box-shadow: 0 2px 10px 3px rgba(4, 46, 75, 0.21); }
    .document-submenu__item a svg {
      width: 100%;
      height: 100px;
      color: #688293; }
      @media only screen and (max-width: 599px) {
        .document-submenu__item a svg {
          position: relative;
          top: -13px;
          width: 40px;
          height: 40px;
          margin-right: 20px; } }

/* ==========================================================================
   Document upload form.
   ========================================================================== */
.upload-form {
  margin-bottom: 130px; }

.upload-form__no-access {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0 0 100px 0;
  padding: 20px;
  background-color: #ffc9c9;
  color: #042e4b;
  font-weight: bold; }

.upload-form__title {
  margin-bottom: 25px; }

.upload-form__selects {
  margin-bottom: 30px; }

.upload-form__select {
  position: relative;
  width: calc(50% - 10px);
  margin-top: 25px; }
  @media only screen and (max-width: 599px) {
    .upload-form__select {
      width: 100%; } }
  .upload-form__select label {
    display: block;
    padding-bottom: 5px;
    color: #abb9c2; }
  .upload-form__select select {
    font-size: 15px;
    font-size: 1.5rem;
    line-height: 1.33333em;
    width: 100%;
    height: 40px;
    padding: 5px 20px;
    transition: border 250ms ease;
    border: 1px solid #b7c7d2;
    border-radius: 5px;
    background-color: transparent;
    color: #042e4b;
    font-family: "Nunito", sans-serif; }
    .upload-form__select select:hover {
      border: 1px solid #4a20c6; }
  .upload-form__select svg {
    position: absolute;
    top: 35px;
    right: 20px;
    width: 14px;
    height: 20px;
    color: #042e4b;
    z-index: -1; }

.upload-form__upload-field {
  display: block;
  position: relative;
  width: 100%;
  height: 220px;
  border: 1px dashed #abb9c2;
  border-radius: 5px;
  background-color: white;
  text-align: center; }
  .upload-form__upload-field svg {
    width: 100%;
    height: 50px;
    margin: 50px 0 25px;
    color: #042e4b; }
  .upload-form__upload-field input {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    cursor: pointer;
    opacity: 0; }
  .upload-form__upload-field:hover .button {
    background: #f84e00;
    box-shadow: 3px 3px 7px 0 rgba(255, 110, 44, 0.51); }

.upload-form__upload-area {
  position: relative; }

.upload-form__info {
  font-size: 13px;
  font-size: 1.3rem;
  line-height: 1.53846em;
  position: absolute;
  width: 290px;
  padding-top: 10px;
  padding-right: 45px;
  padding-bottom: 10px;
  padding-left: 20px;
  transform: translateY(-50%);
  background: #ecf5fc;
  color: rgba(4, 46, 75, 0.5); }
  @media only screen and (max-width: 1550px) {
    .upload-form__info {
      top: calc(100% + 25px); } }
  @media only screen and (min-width: 1550px) {
    .upload-form__info {
      top: 50%;
      right: calc(100% + 10px); } }
  .upload-form__info > svg {
    position: absolute;
    top: calc(50% - 7.5px);
    right: 20px;
    width: 15px;
    height: 15px; }
  .upload-form__info::after {
    position: absolute;
    width: 0;
    height: 0;
    border-style: solid;
    content: ''; }
    @media only screen and (max-width: 1550px) {
      .upload-form__info::after {
        bottom: 100%;
        left: calc(50% - 7.5px);
        border-width: 0 7.5px 5px;
        border-color: transparent transparent #ecf5fc; } }
    @media only screen and (min-width: 1550px) {
      .upload-form__info::after {
        top: calc(50% - 7.5px);
        left: 100%;
        border-width: 7.5px 0 7.5px 5px;
        border-color: transparent transparent transparent #ecf5fc; } }

.upload-form__upload-caption {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.28571em;
  padding-top: 10px;
  color: rgba(4, 46, 75, 0.6);
  text-align: center; }
  @media only screen and (max-width: 899px) {
    .upload-form__upload-caption {
      text-align: right; } }

/* ==========================================================================
   Latest download.
   ========================================================================== */
.downloads-latest__title {
  margin: 30px 0 50px; }

/* ==========================================================================
   Footer
   ========================================================================== */
/**
 *  Main element.
 */
.footer {
  position: relative;
  color: #042e4b; }
  @media only screen and (max-width: 1199px) {
    .footer.has-mobile-menu {
      padding-bottom: 60px; } }

/**
 *  Footer upper part.
 */
.footer__upper {
  padding: 70px 0; }
  @media only screen and (max-width: 899px) {
    .footer__upper {
      padding: 50px 0; } }

/**
 *  Footer lower part.
 */
.footer__lower {
  padding: 20px 0;
  font-family: "Nunito", sans-serif; }
  @media only screen and (max-width: 899px) {
    .footer__lower {
      padding: 10px 0; } }
  .footer__lower .link {
    font-weight: 300; }
    @media only screen and (max-width: 599px) {
      .footer__lower .link {
        justify-content: center;
        width: 100%; } }
    @media only screen and (max-width: 599px) {
      .footer__lower .link:nth-last-child(1) {
        margin-top: 10px; } }

/**
 *  Footer column settings.
 */
.footer-column {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 35%; }
  @media (max-width: 780px) {
    .footer-column {
      width: 100%;
      text-align: center; } }
  @media (min-width: 780px) and (max-width: 899px) {
    .footer-column {
      width: 50%; } }
  .footer-column .heading-3-blue {
    width: 100%;
    margin-bottom: 20px; }
  @media only screen and (max-width: 599px) {
    .footer-column:nth-last-child(1) {
      margin-top: 50px; } }

/**
 *  Footer column description.
 */
.footer-column__description svg {
  width: 13px;
  height: 14px;
  margin-right: 10px; }

/* ==========================================================================
   Form
   ========================================================================== */
/**
 * Main settings.
 */
.form {
  position: relative; }

/**
 * Form group.
 */
.form-group {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -10px; }
  .form-group.radio {
    margin: -10px; }
    .form-group.radio .label {
      margin: 25px 10px -20px; }

.form-group--wide {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -10px; }
  @media only screen and (max-width: 899px) {
    .form-group--wide {
      width: 100%; } }

/**
 * Form item.
 */
.form-item {
  width: calc(50% - 20px);
  margin: 0px 10px 0; }
  @media only screen and (max-width: 899px) {
    .form-item {
      width: 100%; } }
  .form-item.select {
    position: relative; }
    @media only screen and (max-width: 899px) {
      .form-item.select {
        width: 96%; } }
    .form-item.select svg {
      position: absolute;
      right: 10px;
      bottom: 13px;
      width: 14px;
      height: 14px;
      color: #042e4b;
      pointer-events: none; }

.form-item--wide {
  width: 100%; }

.form-item__radio--wide {
  width: calc(25% - 20px);
  margin: 10px; }
  @media only screen and (max-width: 899px) {
    .form-item__radio--wide {
      width: 100%; } }

/**
 * Label.
 */
.form-item label,
.form .label {
  font-size: 13px;
  font-size: 1.3rem;
  line-height: 1.38462em;
  display: block;
  width: 100%;
  margin-bottom: 6px;
  padding: 0;
  color: #042e4b;
  font-family: inherit;
  text-transform: inherit;
  opacity: 0.7; }
  .form-item label.functions,
  .form .label.functions {
    margin-bottom: 6px; }

.form-item__label {
  width: 100%; }

.form-item__label--wide {
  width: 100%;
  margin: 20px 20px -35px; }

/**
 * Input settings.
 */
.form-item input[type='text'],
.form-item input[type='password'],
.form-item textarea,
.form-item select {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.33333em;
  width: 100%;
  height: 40px;
  padding: 5px 20px;
  transition: border 250ms ease;
  border: 1px solid #b7c7d2;
  border-radius: 5px;
  color: #042e4b;
  font-family: "Nunito", sans-serif; }
  .form-item input[type='text']:hover,
  .form-item input[type='password']:hover,
  .form-item textarea:hover,
  .form-item select:hover {
    border: 1px solid #4a20c6; }

.form-item textarea {
  height: 250px;
  padding-top: 10px; }

.form-item input[type='text']:disabled {
  background: #ecf5fc;
  opacity: 0.8; }

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

/**
 * Radio buttons.
 */
.form-item__radio label {
  display: flex;
  position: relative;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  width: 85px;
  height: 85px;
  margin: 10px;
  transition: all 250ms ease;
  border: 1px solid #abb9c2;
  border-radius: 5px;
  background: white;
  color: #abb9c2;
  font-family: "Nunito", sans-serif;
  text-transform: lowercase;
  cursor: pointer; }
  .form-item__radio label svg,
  .form-item__radio label img {
    width: 30px;
    height: 30px;
    margin-bottom: -25px; }
  .form-item__radio label span {
    width: 100%;
    text-align: center; }
  .form-item__radio label:hover {
    border: 2px solid #4a20c6; }

.form-item__radio--wide label {
  display: flex;
  position: relative;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  margin: 10px;
  padding: 10px;
  transition: all 250ms ease;
  border: 1px solid #abb9c2;
  border-radius: 5px;
  background: white;
  color: #abb9c2;
  font-family: "Nunito", sans-serif;
  text-transform: lowercase;
  cursor: pointer; }
  @media only screen and (max-width: 899px) {
    .form-item__radio--wide label {
      justify-content: flex-start;
      padding: 0; } }
  .form-item__radio--wide label svg,
  .form-item__radio--wide label img {
    width: 30px;
    height: 30px;
    margin-bottom: -15px;
    color: #042e4b; }
    @media only screen and (max-width: 899px) {
      .form-item__radio--wide label svg,
      .form-item__radio--wide label img {
        width: 25px;
        height: 25px;
        margin-bottom: -10px;
        margin-left: 20px; } }
  .form-item__radio--wide label span {
    width: 100%;
    text-align: center; }
    @media only screen and (max-width: 899px) {
      .form-item__radio--wide label span {
        width: auto;
        margin-left: 20px;
        text-align: left; } }
  .form-item__radio--wide label:hover {
    border: 1px solid #4a20c6; }

.form-item__radio:nth-last-child(1) svg {
  width: 15px;
  height: 15px; }

/**
 * When a radio button is active.
 */
.form-item__radio input:checked + label,
.form-item__radio--wide input:checked + label {
  border: 1px solid #4a20c6;
  background: linear-gradient(224.7deg, #8b2de9 0%, #0b14a3 100%);
  color: white;
  box-shadow: 0 2px 20px 0 rgba(136, 45, 231, 0.3); }
  .form-item__radio input:checked + label svg,
  .form-item__radio--wide input:checked + label svg {
    color: white; }

.organisation--found {
  font-size: 25px;
  font-size: 2.5rem;
  line-height: 1.36em;
  margin-top: 40px;
  padding: 0 0 30px;
  background: linear-gradient(224.7deg, #8b2de9 0%, #0b14a3 100%);
  background-clip: text;
  color: transparent;
  font-weight: 600;
  -webkit-background-clip: text; }
  .organisation--found svg {
    width: 25px;
    height: 25px;
    margin-right: 5px;
    color: #4a20c6; }

/**
 * Forgt password (on the login page).
 */
.form .forgot-password {
  width: 100%;
  margin-top: 10px;
  color: #042e4b;
  font-size: 13px; }

.form .forgot-password__link {
  font-size: 13px !important; }

/**
 * Submit button settings.
 */
.form .submit-button {
  margin-top: 50px;
  padding: 10px 40px 10px 20px; }

.js-login-submit svg {
  position: absolute;
  bottom: 12px;
  left: 100px;
  width: 12px;
  height: 12px;
  color: white;
  pointer-events: none; }

/**
 * Button settings on the forgot password page.
 */
.change-password button,
.forgot-password-form button {
  width: 100%;
  margin-top: 30px; }

.form__help {
  display: flex;
  position: fixed;
  top: 35%;
  right: 0;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  background: #ecf5fc;
  box-shadow: 0 2px 6px 0 rgba(3, 59, 98, 0.19);
  overflow: hidden;
  z-index: 999; }
  .form__help .is-active {
    width: 100%;
    height: 100%; }
  .form__help .is-inactive {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden; }

.form__help--small {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding: 25px;
  text-align: center; }
  @media only screen and (max-width: 899px) {
    .form__help--small {
      padding: 8px 10px 2px; } }
  .form__help--small svg {
    width: 15px;
    height: 15px;
    margin-bottom: 7px; }
    @media only screen and (max-width: 899px) {
      .form__help--small svg {
        width: 25px;
        height: 25px;
        z-index: 20; } }
  .form__help--small span {
    width: 100%; }
    @media only screen and (max-width: 899px) {
      .form__help--small span {
        display: none; } }

.form__help--large {
  max-width: 580px;
  background: #ff6e2c;
  color: white; }
  .form__help--large .default__editor {
    margin-top: 15px;
    color: white; }
  .form__help--large.is-active {
    padding: 50px;
    border-radius: 5px;
    box-shadow: 0 2px 20px 0 rgba(219, 86, 56, 0.49); }

.form__help .expand {
  display: flex;
  position: absolute;
  top: -32px;
  left: -26px;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 70px;
  transform: rotate(45deg);
  background: #b7c7d2;
  overflow: hidden; }
  @media only screen and (max-width: 899px) {
    .form__help .expand {
      background: transparent; } }
  .form__help .expand svg {
    display: none;
    width: 15px;
    height: 15px;
    margin-right: -24px;
    transform: rotate(45deg);
    cursor: pointer; }
    .form__help .expand svg.is-visible {
      display: block; }
  @media only screen and (max-width: 899px) {
    .form__help .expand .fa-expand-alt {
      display: none !important; } }
  .form__help .expand.is-active {
    top: -20px;
    left: -18px;
    background: transparent;
    color: white; }
    .form__help .expand.is-active svg {
      width: 20px;
      height: 20px;
      margin-right: -30px; }

.create-password {
  width: 105%;
  margin-top: 120px; }
  @media only screen and (max-width: 899px) {
    .create-password {
      width: 100%; } }
  .create-password .heading-3-blue {
    margin-bottom: 40px; }
  .create-password .form-group__left,
  .create-password .form-group__right {
    width: calc(50% - 5px); }
    @media only screen and (max-width: 599px) {
      .create-password .form-group__left,
      .create-password .form-group__right {
        width: 100%; } }
    .create-password .form-group__left .form-item,
    .create-password .form-group__right .form-item {
      width: 100%; }
      @media only screen and (max-width: 599px) {
        .create-password .form-group__left .form-item,
        .create-password .form-group__right .form-item {
          margin: 40px 0 0; } }
  .create-password .form-group__left {
    margin: -10px; }
    @media only screen and (max-width: 899px) {
      .create-password .form-group__left {
        margin: 0; } }
  @media only screen and (max-width: 599px) {
    .create-password .form-group__right {
      margin: 0;
      padding: 0; } }
  .create-password svg {
    width: 15px;
    height: 15px; }
  .create-password .form-group__right .form-item {
    display: flex;
    position: relative;
    flex-wrap: wrap;
    align-items: center;
    padding: 6px 10px;
    border-radius: 5px;
    background: #ecf5fc;
    font-family: "Nunito", sans-serif; }
    .create-password .form-group__right .form-item::before {
      display: flex;
      position: absolute;
      left: -6px;
      align-content: center;
      width: 0;
      height: 0;
      border-width: 8px 6px 8px 0;
      border-style: solid;
      border-color: transparent #ecf5fc transparent transparent;
      content: '';
      z-index: -1; }
      @media only screen and (max-width: 599px) {
        .create-password .form-group__right .form-item::before {
          display: none; } }

.form-group__business-mail {
  display: flex;
  justify-content: space-between;
  width: 100%; }
  @media only screen and (max-width: 599px) {
    .form-group__business-mail {
      width: 105%; } }
  .form-group__business-mail .form-item {
    width: calc(50% - 5px); }
    @media only screen and (max-width: 599px) {
      .form-group__business-mail .form-item {
        width: 100%; } }

.form-group__business-mail .create-password__info {
  display: flex;
  position: relative;
  flex-wrap: wrap;
  align-items: center;
  width: calc(50% - 45px);
  padding: 6px 10px;
  border-radius: 5px;
  background: #ecf5fc;
  font-family: "Nunito", sans-serif; }
  @media only screen and (max-width: 599px) {
    .form-group__business-mail .create-password__info {
      width: 100%; } }
  .form-group__business-mail .create-password__info::before {
    display: flex;
    position: absolute;
    left: -6px;
    align-content: center;
    width: 0;
    height: 0;
    border-width: 8px 6px 8px 0;
    border-style: solid;
    border-color: transparent #ecf5fc transparent transparent;
    content: '';
    z-index: -1; }
    @media only screen and (max-width: 599px) {
      .form-group__business-mail .create-password__info::before {
        display: none; } }

.create-password__info {
  padding: 10px;
  color: #042e4b; }

.create-password__icon {
  width: 8%; }

.create-password__content {
  width: 92%;
  font-weight: 300; }
  .create-password__content strong {
    width: 100%;
    margin-bottom: 20px; }

.form__footer {
  margin-top: 100px; }

.form__footer .default__editor {
  margin: 30px 0 20px;
  font-weight: 300; }

.form__checkbox--small {
  margin-top: 10px;
  color: #042e4b; }

.form__checkbox--small label {
  position: relative;
  margin-top: 10px;
  padding-left: 25px;
  font-family: "Nunito", sans-serif;
  font-weight: 300; }
  .form__checkbox--small label svg {
    position: absolute;
    top: 5px;
    left: 0;
    width: 15px;
    height: 10px;
    transition: opacity 250ms ease;
    color: #042e4b;
    opacity: 0; }
  .form__checkbox--small label::after {
    position: absolute;
    top: 2px;
    left: 0;
    width: 15px;
    height: 15px;
    border: 1px solid #042e4b;
    border-radius: 3px;
    content: '';
    pointer-events: none; }

.form__checkbox--small input:checked + label svg {
  opacity: 1; }

.form__checkbox-information {
  font-size: 13px;
  font-size: 1.3rem;
  line-height: 1.38462em;
  position: relative;
  padding: 10px 10px 10px 50px;
  border-radius: 5px;
  background-color: #ecf5fc;
  color: rgba(4, 46, 75, 0.6); }
  .form__checkbox-information svg {
    position: absolute;
    top: calc(50% - 7.5px);
    left: 20px;
    width: 15px;
    height: 15px; }
  .form__checkbox-information::before {
    position: absolute;
    top: 50%;
    right: 100%;
    width: 0;
    height: 0;
    transform: translateY(-50%);
    border-width: 7.5px 5px 7.5px 0;
    border-style: solid;
    border-color: transparent #ecf5fc transparent transparent;
    content: ''; }

.register-submit {
  margin: 100px 0;
  padding: 10px 20px; }

/**
 * Error.
 */
.form-item-error {
  border: 1px solid #ff6e2c; }

.password-validation-failed {
  position: relative;
  width: 97.5%;
  margin: -100px 0 40px;
  padding: 20px;
  transition: all 250ms ease;
  border-radius: 3px;
  background: #ffc9c9;
  color: #042e4b;
  text-align: center;
  opacity: 0;
  z-index: 99;
  pointer-events: none; }
  @media only screen and (max-width: 599px) {
    .password-validation-failed {
      width: 100%; } }
  .password-validation-failed svg {
    width: 14px;
    height: 14px;
    color: #042e4b; }
  .password-validation-failed .second-step .content-form__heading {
    margin-top: 100px !important; }
  .password-validation-failed .close-message {
    position: absolute;
    top: 5px;
    right: 5px;
    cursor: pointer; }
  .password-validation-failed .heading-3-blue {
    width: 100%;
    margin-bottom: 15px; }
  .password-validation-failed .default__editor {
    width: 100%;
    max-width: 350px;
    margin-top: 0; }
  .password-validation-failed.is-visible {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin: 40px 0;
    opacity: 1;
    pointer-events: initial; }

/* ==========================================================================
   Header
   ========================================================================== */
/**
 *  Main element.
 */
.header {
  display: flex;
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  align-items: center;
  padding: 30px 0;
  z-index: 20; }
  @media only screen and (max-width: 1199px) {
    .header {
      z-index: 21; } }
  @media only screen and (max-width: 599px) {
    .header {
      height: 195px;
      padding: 10px 0; } }
  @media only screen and (min-width: 600px) and (max-width: 1199px) {
    .header {
      height: 110px;
      padding: 5px 0; } }
  @media only screen and (min-width: 1200px) {
    .header {
      height: 150px; } }

@media only screen and (max-width: 599px) {
  .header .wrapper {
    flex-wrap: wrap; } }

/**
 *  Logo.
 */
.header-logo {
  position: relative; }
  .header-logo .desktop {
    display: none; }
    @media only screen and (min-width: 1200px) {
      .header-logo .desktop {
        display: block; } }
  .header-logo .mobile {
    display: block; }
    @media only screen and (min-width: 1200px) {
      .header-logo .mobile {
        display: none; } }

.header-logo__usergroup {
  display: none; }
  @media only screen and (min-width: 1200px) {
    .header-logo__usergroup {
      font-size: 17px;
      font-size: 1.7rem;
      line-height: 1.17647em;
      display: block;
      position: absolute;
      top: 12px;
      left: 65px;
      color: #042e4b;
      font-weight: 600;
      text-transform: uppercase;
      width: 100%; }
      .header-logo__usergroup.not-loggedin {
        font-size: 24px;
        font-size: 2.4rem;
        line-height: 0.83333em;
        left: 66px; } }

/**
 *  Link.
 */
.header-right .link {
  width: 100%;
  text-align: center; }

/**
 *  Not logged in settings.
 */
.header-right .not-logged-in {
  max-width: 185px;
  text-align: center; }
  .header-right .not-logged-in .button {
    margin-top: 10px; }

/**
 *  Header logged in settings.
 */
.header--loggedin .header__left {
  width: 25%; }
  @media only screen and (max-width: 599px) {
    .header--loggedin .header__left {
      width: 25%; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .header--loggedin .header__left {
      width: 14%; } }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .header--loggedin .header__left {
      width: auto; } }

.header--loggedin .header__center {
  width: 30%;
  padding-left: 30px; }
  @media only screen and (max-width: 599px) {
    .header--loggedin .header__center {
      display: none; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .header--loggedin .header__center {
      width: 46%; } }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .header--loggedin .header__center {
      width: 50%; } }
  @media only screen and (max-width: 1199px) {
    .header--loggedin .header__center {
      padding-left: 0; } }

@media only screen and (min-width: 900px) and (max-width: 1199px) {
  .header--loggedin .header__right {
    width: auto; } }

.header--loggedin .header__beneath {
  width: 100%;
  margin-top: -5px; }
  @media only screen and (min-width: 600px) {
    .header--loggedin .header__beneath {
      display: none; } }

/**
 *  Header (right).
 */
.header__right,
.top-menu__mobile {
  color: #042e4b;
  font-family: "Nunito", sans-serif;
  font-weight: 700; }
  .header__right svg,
  .top-menu__mobile svg {
    display: block;
    width: 14px;
    height: 14px;
    margin: auto auto 7px; }
  .header__right a,
  .top-menu__mobile a {
    display: block;
    transition: color 250ms ease; }

/**
 *  Header (profile and logout button settings).
 */
.header-profile {
  font-weight: 300; }

.header__right .profile {
  max-width: 100px;
  margin: 0 10px;
  padding: 15px 7px;
  text-align: center;
  overflow: hidden; }
  .header__right .profile.active {
    border-radius: 4px;
    background: #042e4b;
    color: #ecf5fc; }
  @media only screen and (min-width: 1200px) {
    .header__right .profile:hover {
      border-radius: 4px;
      background: #042e4b;
      color: #ecf5fc; } }

.header__right .logout-button {
  text-transform: lowercase;
  opacity: 0.5; }
  @media only screen and (min-width: 1200px) {
    .header__right .logout-button:hover {
      color: #ff6e2c;
      opacity: 0.7; } }

/**
 *  Dashboard / Questions / Upload.
 */
.header .top-menu {
  display: flex;
  position: relative;
  align-items: center;
  text-align: center; }
  @media only screen and (max-width: 1199px) {
    .header .top-menu {
      display: none; } }
  @media only screen and (min-width: 1200px) {
    .header .top-menu {
      margin-right: 10px;
      padding-right: 10px; } }
  .header .top-menu li {
    margin: 0 7px;
    padding: 15px 10px;
    transition: background 250ms ease;
    border-radius: 4px;
    font-weight: 700; }
    @media only screen and (min-width: 1200px) {
      .header .top-menu li:hover {
        background: #042e4b;
        color: #ecf5fc; } }
  .header .top-menu::after {
    display: block;
    position: absolute;
    right: 0;
    bottom: 15px;
    width: 1px;
    height: 31px;
    background: #042e4b;
    content: ''; }
  .header .top-menu .active {
    padding: 15px 7px;
    border-radius: 4px;
    background: #042e4b;
    color: #ecf5fc; }

/**
 *  Dashboard / Questions / Upload (from tablet landscape down).
 */
.top-menu__mobile {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  min-height: 60px;
  padding: 15px 0 10px;
  z-index: 20; }
  @media only screen and (min-width: 1200px) {
    .top-menu__mobile {
      display: none; } }
  .top-menu__mobile .top-menu {
    display: flex; }
  .top-menu__mobile li {
    padding: 0 35px; }

/* ==========================================================================
   Language menu
   ========================================================================== */
.language-menu {
  position: relative; }
  .language-menu .current {
    opacity: 0.6; }

.language-menu__item {
  display: none;
  position: absolute; }
  .language-menu__item.is-active {
    display: block;
    position: relative; }
  .language-menu__item.is-not-active {
    height: 26px;
    padding: 0 5px;
    border: 1px solid black;
    background: white;
    z-index: 99; }

.language-menu__item--nl.is-not-active {
  position: absolute;
  top: 22px;
  left: 0; }

/* ==========================================================================
   Login
   ========================================================================== */
/**
 * Main settings.
 */
.login {
  width: 100%;
  max-width: 440px;
  margin: auto;
  padding: 150px 20px;
  color: #042e4b; }
  @media only screen and (max-width: 899px) {
    .login {
      padding: 75px 20px; } }

.login .message {
  margin-top: -30px;
  margin-bottom: 30px;
  padding: 0;
  color: #042e4b;
  font-weight: 400;
  text-align: left; }

/**
 * Subheading.
 */
.login .subheading-1-blue {
  margin-bottom: 10px; }

/**
 * Heading.
 */
.login .heading-1-blue {
  margin-bottom: 70px; }

/**
 * Form.
 */
.login-form .form-item {
  width: 100%;
  margin-left: 0; }

.message.forgot-password {
  color: #042e4b;
  font-weight: 400;
  opacity: 0.8; }

/* ==========================================================================
   Messages
   ========================================================================== */
/**
 *  Message layout.
 */
.message {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 2.13333em;
  margin: 20px 0;
  padding: 20px;
  border-radius: 5px;
  font-family: "Nunito", sans-serif;
  font-weight: 400;
  text-align: center; }

/**
 *  Error.
 */
.message--error {
  background: #ffc9c9;
  color: #042e4b; }

/**
 *  Success.
 */
.message--success,
.message--info {
  background: #ecf5fc;
  color: #042e4b; }

/* ==========================================================================
   Contact
   ========================================================================== */
/**
 *  Specific page rules.
 */
.is-profile .breadcrumbs {
  display: none; }

/**
 *  Profile
 */
.profile {
  padding: 50px 0;
  font-family: "Nunito", sans-serif; }
  @media only screen and (max-width: 899px) {
    .profile {
      padding: 50px 0; } }

.profile__titles {
  margin-bottom: 35px; }
  @media only screen and (max-width: 599px) {
    .profile__titles {
      margin: 5px; } }

/**
 *  Buttons (top).
 */
.profile__buttons {
  align-items: flex-end; }
  @media only screen and (max-width: 599px) {
    .profile__buttons {
      position: absolute;
      top: 80px;
      right: 30px; } }

.profile__buttons .link,
.second-step .edit-link {
  position: relative;
  margin-left: 15px;
  text-transform: lowercase; }
  .profile__buttons .link svg,
  .second-step .edit-link svg {
    margin-right: 10px; }
    @media only screen and (max-width: 599px) {
      .profile__buttons .link svg,
      .second-step .edit-link svg {
        width: 25px;
        height: 25px; } }
  @media only screen and (max-width: 599px) {
    .profile__buttons .link span,
    .second-step .edit-link span {
      display: none; } }
  .profile__buttons .link::after,
  .second-step .edit-link::after {
    display: block;
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: 1px;
    transition: background 250ms ease;
    background: #ff6e2c;
    content: ''; }
    @media only screen and (max-width: 599px) {
      .profile__buttons .link::after,
      .second-step .edit-link::after {
        display: none; } }
  .profile__buttons .link:hover::after,
  .second-step .edit-link:hover::after {
    background: #042e4b; }

.second-step .content-form__heading {
  margin-top: 30px; }

.second-step .content-form__heading--margin {
  margin-top: 50px;
  margin-bottom: 35px; }

/**
 *  Details
 */
.profile__details {
  margin-top: 20px;
  padding: 50px 50px 20px;
  border-radius: 10px;
  background: white;
  box-shadow: 0 2px 10px 3px #f2f6f9; }
  @media only screen and (max-width: 899px) {
    .profile__details {
      padding: 50px; } }

.profile__details .col-xs-6,
.statistics .col-xs-6 {
  text-align: center; }

#details .col-xs-6 {
  text-align: left; }

/**
 *  Profile heading.
 */
.profile__head--small {
  margin-top: 20px;
  margin-bottom: 30px;
  font-family: "Montserrat", sans-serif; }

/**
 *  Label
 */
.profile__label {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.28571em;
  margin-bottom: 10px;
  color: #abb9c2; }

/**
 *  Value
 */
.profile__value {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.33333em;
  color: #042e4b; }

/**
 *  Specific column settings.
 */
.profile__details .col-xs-6 {
  margin-bottom: 30px; }
  @media only screen and (max-width: 899px) {
    .profile__details .col-xs-6 {
      width: 100%; } }
  @media only screen and (max-width: 899px) {
    .profile__details .col-xs-6.name, .profile__details .col-xs-6.gender {
      width: 50%; } }

/**
 *  Board section
 */
.profile__board,
.profile__dashboard {
  margin-top: 50px; }
  @media only screen and (max-width: 899px) {
    .profile__board,
    .profile__dashboard {
      margin-top: 100px; } }

.profile__board .heading-2-blue {
  margin-bottom: 50px; }

.profile__board .default__editor {
  margin-top: 30px; }

.profile__organisation {
  padding: 50px; }

/**
 *  Calculation.
 */
@media only screen and (max-width: 599px) {
  .profile__credit {
    padding: 50px 50px 15px;
    text-align: center; } }

.profile__calculations {
  margin-top: 30px;
  padding: 30px;
  border-radius: 10px;
  background: linear-gradient(224.7deg, #8b2de9 0%, #0b14a3 100%);
  color: white;
  box-shadow: 0 2px 20px 0 rgba(136, 45, 231, 0.3); }

/**
 *  Calculation block.
 */
.profile__calculation {
  position: relative;
  width: 100%;
  max-width: 150px;
  text-align: center; }
  @media only screen and (max-width: 599px) {
    .profile__calculation {
      display: flex;
      max-width: 100%;
      margin-bottom: 25px; } }

/**
 *  Calculation block span.
 */
.profile__calculation span {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 100%;
  margin: auto; }
  @media only screen and (max-width: 599px) {
    .profile__calculation span:nth-child(1) {
      width: calc(100% / 3); } }
  @media only screen and (max-width: 599px) {
    .profile__calculation span:nth-child(2) {
      width: calc(100% / 3); } }

.donut-chart text {
  font-size: 13px;
  font-size: 1.3rem;
  line-height: 1.53846em;
  margin-bottom: 10px;
  color: #042e4b;
  font-family: "Nunito", sans-serif;
  font-weight: 600; }

/**
 *  Calculation block head.
 */
.profile__calculation .head {
  font-size: 40px;
  font-size: 4rem;
  line-height: 1.225em;
  font-family: "Montserrat", sans-serif;
  font-weight: 800; }

/**
 *  Calculation block icon.
 */
.profile__calculation svg {
  position: absolute;
  top: 15px;
  left: -12px;
  width: 80px;
  height: 80px;
  opacity: 0.2; }
  @media only screen and (max-width: 599px) {
    .profile__calculation svg {
      top: 0;
      width: 50px;
      height: 50px; } }

/**
 *  Calculation block description.
 */
.profile__calculation .description {
  margin-top: 20px;
  font-weight: 100; }
  @media only screen and (max-width: 599px) {
    .profile__calculation .description {
      display: flex;
      align-items: center;
      margin: 0; } }
  @media only screen and (max-width: 599px) {
    .profile__calculation .description span {
      width: 100%;
      max-width: 140px; } }

/**
 *  Delete profile container.
 */
.profile-delete {
  padding: 150px 0; }
  @media only screen and (max-width: 899px) {
    .profile-delete {
      padding: 75px 0; } }

/**
 *  Delete profile container.
 */
.profile-delete__buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 50px; }
  .profile-delete__buttons .button {
    width: calc(50% - 20px);
    padding: 10px 20px; }
    @media only screen and (max-width: 599px) {
      .profile-delete__buttons .button {
        width: 100%;
        margin: 10px 0; } }

@media only screen and (min-width: 600px) {
  .profile-subscription__left {
    text-align: left !important; } }

.profile-subscription__right {
  color: #042e4b; }
  .profile-subscription__right svg {
    width: 40px;
    height: 40px;
    color: #042e4b; }
  .profile-subscription__right span {
    width: 100%;
    margin-top: 10px;
    text-align: center; }

.statistics__chart {
  position: relative;
  z-index: 10; }

.statistics__total {
  position: relative;
  align-content: center;
  background: white;
  z-index: 9; }
  @media only screen and (min-width: 900px) {
    .statistics__total {
      align-content: flex-start;
      padding-top: 40px; } }

.statistics__amount {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.33333em;
  width: 100%;
  color: #042e4b;
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  text-align: center; }

.statistics__remaining {
  font-size: 40px;
  font-size: 4rem;
  line-height: 0.875em;
  margin-top: 50px;
  background: linear-gradient(224.7deg, #8b2de9 0%, #0b14a3 100%);
  background-clip: text;
  color: transparent;
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  -webkit-background-clip: text; }
  @media only screen and (max-width: 599px) {
    .statistics__remaining {
      margin: 30px 0; } }

.statistics-cta {
  width: 100%;
  max-width: 630px;
  margin: auto;
  padding: 30px;
  border-radius: 5px;
  background: #ff6e2c;
  color: white;
  font-weight: 100;
  box-shadow: 0 2px 20px 0 rgba(219, 86, 56, 0.49); }
  .statistics-cta .col-xs-6 {
    width: 50%;
    margin: 0; }
    @media only screen and (max-width: 599px) {
      .statistics-cta .col-xs-6 {
        width: 100%; } }
    .statistics-cta .col-xs-6:nth-child(2) {
      justify-content: flex-end; }
  .statistics-cta .heading-3-white {
    margin-bottom: 10px; }
  .statistics-cta span {
    text-align: left; }
  .statistics-cta a {
    display: flex;
    flex-wrap: wrap;
    align-items: center; }
    @media only screen and (max-width: 899px) {
      .statistics-cta a {
        width: 100%;
        padding: 8px;
        border: 2px solid white;
        border-radius: 100px; }
        .statistics-cta a span {
          display: none; } }
  .statistics-cta svg {
    width: 15px;
    height: 15px;
    margin-right: 10px; }
    @media only screen and (max-width: 899px) {
      .statistics-cta svg {
        margin: auto; } }

@media only screen and (max-width: 899px) {
  .statistics-info {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    margin-top: 15px; } }

@media only screen and (max-width: 899px) {
  .statistics-info li {
    width: calc(50% - 15px); } }

.statistics-info li:nth-last-child(1) {
  margin-top: 10px; }
  @media only screen and (max-width: 899px) {
    .statistics-info li:nth-last-child(1) {
      margin: 0; } }

.profile .time {
  margin-top: 50px;
  color: #042e4b; }

.time__total {
  margin-right: 10px;
  transform: translateY(5px);
  font-weight: bold; }

.time__hours {
  font-size: 25px;
  font-size: 2.5rem;
  line-height: 1.6em;
  font-family: "Montserrat", sans-serif;
  font-weight: 900; }

.time-registration {
  position: relative;
  margin-top: 30px; }
  .time-registration::before {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    width: 100%;
    width: 100%;
    height: 1px;
    background: #042e4b;
    content: '';
    opacity: 0.1; }

.time-registration__single {
  position: relative;
  justify-content: space-between;
  padding: 30px 0; }
  @media only screen and (max-width: 899px) {
    .time-registration__single {
      padding: 30px 0 0; } }
  .time-registration__single .col-xs-6 {
    text-align: left; }
  .time-registration__single .title {
    font-size: 14px;
    font-size: 1.4rem;
    line-height: 1.14286em;
    color: #042e4b;
    opacity: 0.6; }
  .time-registration__single span {
    font-size: 15px;
    font-size: 1.5rem;
    line-height: 1.33333em;
    display: block;
    margin-top: 10px;
    color: #042e4b; }
  .time-registration__single .location {
    position: relative; }
  .time-registration__single .location svg {
    position: absolute;
    top: 4px;
    left: 0;
    width: 14px;
    height: 14px;
    margin-top: 7px;
    margin-right: 7px;
    color: #042e4b; }
  .time-registration__single .location span {
    padding-left: 22px; }
  .time-registration__single::after {
    display: block;
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: #042e4b;
    content: '';
    opacity: 0.1; }
  .time-registration__single:nth-last-child(1) {
    padding: 30px 0 10px; }
    .time-registration__single:nth-last-child(1)::after {
      display: none; }

@media only screen and (max-width: 899px) {
  .werkzaamheid {
    order: 3;
    margin-top: 30px; } }

@media only screen and (max-width: 899px) {
  .usergroup,
  .hours {
    width: 50%;
    text-align: left; } }

/**
 *  Additional rules.
 */
.default__editor + .heading-3-blue {
  margin-top: 35px; }

/* ==========================================================================
   Question filters.
   ========================================================================== */
.question-filters__form {
  margin: 50px 0 30px; }
  .question-filters__form strong {
    margin-right: 60px;
    color: #042e4b; }
    @media only screen and (max-width: 599px) {
      .question-filters__form strong {
        width: 100%;
        margin-bottom: 20px; } }
    .question-filters__form strong svg {
      position: relative;
      top: 2px;
      width: 15px;
      height: 15px;
      margin-right: 10px; }
  .question-filters__form .select-wrap {
    position: relative;
    margin-top: 2px; }
    @media only screen and (max-width: 599px) {
      .question-filters__form .select-wrap {
        width: calc(50% - 20px); } }
    .question-filters__form .select-wrap.is-date {
      margin-left: 35px; }
      .question-filters__form .select-wrap.is-date select {
        max-width: 110px; }
    .question-filters__form .select-wrap.is-subjects select {
      max-width: 147px; }
    .question-filters__form .select-wrap select {
      padding-right: 25px;
      background-color: transparent;
      color: #042e4b;
      font-family: "Nunito", sans-serif;
      font-weight: 300; }
    .question-filters__form .select-wrap svg {
      position: relative;
      top: 2px;
      right: 20px;
      width: 14px;
      height: 14px;
      color: #042e4b;
      opacity: 0.8;
      z-index: -1; }

.question-filters__container .no-results {
  display: block;
  margin: 50px 0 50px 30px; }

.question-filters__container .question-item {
  margin-bottom: 50px; }

.question-filters__container .f3-widget-paginator {
  margin-bottom: 50px; }
  .question-filters__container .f3-widget-paginator li {
    display: none; }
  .question-filters__container .f3-widget-paginator .next {
    display: block;
    text-align: center; }
    .question-filters__container .f3-widget-paginator .next a {
      color: #ff6e2c;
      text-decoration: underline; }
      .question-filters__container .f3-widget-paginator .next a svg {
        display: block;
        position: relative;
        width: 30px;
        height: 30px;
        margin-right: auto;
        margin-bottom: 10px;
        margin-left: auto;
        padding: 7px 6px 5px 7px;
        border-radius: 20px;
        background-color: #ff6e2c;
        color: white; }
        .question-filters__container .f3-widget-paginator .next a svg path,
        .question-filters__container .f3-widget-paginator .next a svg rect {
          fill: white; }

.question-filters__information .text-image__image {
  text-align: center; }
  .question-filters__information .text-image__image svg {
    margin: 90px 0 0 55px; }
    @media only screen and (max-width: 899px) {
      .question-filters__information .text-image__image svg {
        margin: 90px 0 0; } }

/* ==========================================================================
   Latest questions.
   ========================================================================== */
.question-latest {
  margin-bottom: 130px; }

.question-latest__title {
  margin: 60px 0 50px; }

/* ==========================================================================
   Question single.
   ========================================================================== */
.question-single__head {
  position: relative; }

.question-single__date {
  color: #042e4b;
  opacity: 0.6; }
  .question-single__date svg {
    position: relative;
    top: 2px;
    width: 14px;
    height: 14px;
    margin-right: 10px; }

.question-single__icon {
  font-size: 25px;
  font-size: 2.5rem;
  line-height: 1.2em;
  position: absolute;
  top: -10px;
  bottom: 0;
  left: -105px;
  width: 50px;
  height: 50px;
  padding-top: 11px;
  border-radius: 33px;
  background: linear-gradient(224.36deg, #ffc000 0%, #ff6e2c 100%);
  color: white;
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  text-align: center; }
  @media (max-width: 680px) {
    .question-single__icon {
      width: 30px; } }

.question-single__author {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.42857em;
  margin-top: 20px;
  padding: 20px 0;
  border-top: 1px solid #deddf5;
  border-bottom: 1px solid #deddf5;
  color: #042e4b;
  opacity: 0.6; }
  .question-single__author svg {
    position: relative;
    top: 1px;
    width: 14px;
    height: 14px;
    margin-right: 10px; }
    .question-single__author svg.fa-building {
      width: 12px;
      height: 12px; }
  .question-single__author .question-single__author-name {
    margin-right: 50px; }

.question-single__title {
  margin: 50px 0; }

.question-single__editor {
  padding-bottom: 40px; }

/* ==========================================================================
   Question fixed button
   ========================================================================== */
/**
 *  Main element.
 */
.question-fixed-button-wrapper {
  position: fixed;
  top: calc(50% - 60px);
  right: 0;
  z-index: 99; }
  .question-fixed-button-wrapper.is-open .qfb__open {
    right: -100px;
    transition: padding-right 200ms, right 300ms; }
  .question-fixed-button-wrapper.is-open .question-fixed-button {
    right: 0;
    transition: right 300ms 300ms; }

.question-fixed-button {
  position: absolute;
  top: 0;
  right: -250px;
  width: 240px;
  height: auto;
  padding: 15px;
  transition: right 300ms;
  border-radius: 5px 0 0 5px;
  background: #ecf5fc;
  color: #042e4b;
  box-shadow: 0 2px 6px 0 rgba(3, 59, 98, 0.19);
  z-index: 99; }
  .question-fixed-button svg {
    width: 14px;
    height: 14px; }

.qfb__open {
  position: absolute;
  top: 0;
  right: 0;
  padding: 10px;
  transition: padding-right 200ms, right 300ms 300ms;
  background: #ecf5fc;
  box-shadow: 0 2px 6px 0 rgba(3, 59, 98, 0.19);
  cursor: pointer; }
  @media only screen and (min-width: 1200px) {
    .qfb__open {
      padding: 20px; } }
  .qfb__open svg {
    width: 34px;
    height: 30px; }
    @media only screen and (min-width: 1200px) {
      .qfb__open svg {
        width: 29px;
        height: 25px; } }
  .qfb__open:hover {
    padding-right: 50px; }

.qfb__close {
  position: absolute;
  top: -20px;
  right: 0;
  cursor: pointer; }
  .qfb__close svg {
    width: 20px;
    height: 20px;
    color: #1d435d; }
  .qfb__close:hover svg {
    color: #688293; }

.qfb__icon svg {
  width: 25px;
  height: 25px; }

.qfb__text {
  padding: 20px 50px 40px 0;
  font-family: "Nunito", sans-serif; }

.qfb__link {
  display: flex;
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 30px;
  border-radius: 0 0 5px 5px;
  background: #ff6e2c;
  color: white;
  text-align: center; }
  @media only screen and (min-width: 1200px) {
    .qfb__link:hover {
      background: #ff5c13; } }

/* ==========================================================================
   Question form
   ========================================================================== */
.question-form__information {
  margin: 20px 0 0px; }
  .question-form__information strong {
    display: inline-block; }
  .question-form__information .profile__calculations {
    width: 195px; }
    @media only screen and (max-width: 599px) {
      .question-form__information .profile__calculations {
        width: 100%;
        margin-top: 50px; } }
    @media only screen and (max-width: 599px) {
      .question-form__information .profile__calculations .profile__calculation {
        margin-bottom: 0;
        padding-left: 45px; } }
    @media only screen and (max-width: 599px) {
      .question-form__information .profile__calculations .head {
        padding-right: 18px; } }
    @media only screen and (max-width: 599px) {
      .question-form__information .profile__calculations svg {
        left: 10px; } }

.question-form__information-text {
  width: calc(100% - 195px);
  padding-right: 100px; }
  @media only screen and (max-width: 599px) {
    .question-form__information-text {
      width: 100%;
      margin-top: 30px;
      padding-right: 0; } }
  @media only screen and (max-width: 899px) {
    .question-form__information-text {
      padding-right: 50px; } }
  .question-form__information-text strong {
    margin-bottom: 0; }
  @media only screen and (max-width: 599px) {
    .question-form__information-text p {
      margin-bottom: 0; } }

.question-form {
  margin-bottom: 130px; }
  .question-form .form {
    margin-top: 30px; }
  @media only screen and (max-width: 599px) {
    .question-form textarea,
    .question-form .select {
      margin-bottom: 20px; } }
  @media only screen and (max-width: 899px) {
    .question-form .form-item {
      margin-top: 10px; } }
  .question-form .form__checkbox--small input {
    opacity: 0; }
  .question-form .form__checkbox--small label {
    width: calc(100% - 615px);
    font-family: inherit;
    font-weight: inherit; }
    @media only screen and (max-width: 899px) {
      .question-form .form__checkbox--small label {
        width: 100%; } }
  .question-form .form__checkbox-information {
    position: relative;
    right: -30px;
    width: 600px; }
    @media only screen and (max-width: 899px) {
      .question-form .form__checkbox-information {
        right: 0;
        width: 100%;
        margin-top: 10px; } }
  .question-form .register-submit {
    margin: 30px 0 0; }
    @media only screen and (max-width: 599px) {
      .question-form .register-submit {
        width: 100%; } }
  @media only screen and (max-width: 899px) {
    .question-form .form__checkbox-information::before {
      top: -2px;
      right: 0;
      left: 22px;
      border-width: 0 7.5px 5px;
      border-color: transparent transparent #ecf5fc; } }

/* ==========================================================================
   Question toggle.
   ========================================================================== */
.question-toggle {
  margin-bottom: 20px;
  border-radius: 10px;
  box-shadow: 0 2px 10px 3px #f2f6f9;
  transition: all 250ms ease; }
  .question-toggle:hover {
    box-shadow: 0 2px 10px 3px rgba(4, 46, 75, 0.21); }
  .question-toggle.is-active .question-toggle__toggle svg {
    transform: rotate(0deg); }
  .question-toggle.js-hide {
    display: none; }

.question-toggle__icon {
  width: 60px; }

.question-toggle__head {
  align-items: center;
  padding: 20px 0 20px 80px;
  cursor: pointer; }

.question-toggle__question {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.42857em;
  width: calc(100% - 80px);
  font-weight: bold;
  color: #042e4b;
  opacity: 0.8; }

.question-toggle__toggle {
  cursor: pointer; }
  .question-toggle__toggle svg {
    display: block;
    width: 28px;
    height: 28px;
    margin: 0 26px;
    transform: rotate(45deg);
    color: #042e4b;
    opacity: 0.8;
    transition: all 250ms ease; }

.question-toggle__body {
  display: none; }

.question-toggle__meta {
  justify-content: space-between;
  align-items: center;
  margin: 25px 0 0 0;
  padding: 0 80px;
  color: #042e4b;
  opacity: 0.8; }

.question-toggle__subject {
  margin-bottom: 25px; }

.question-toggle__user {
  margin-bottom: 25px; }
  .question-toggle__user svg {
    position: relative;
    top: 2px;
    width: 14px;
    height: 14px;
    margin-right: 10px; }

.question-toggle__organisation {
  margin-bottom: 25px; }
  .question-toggle__organisation svg {
    position: relative;
    top: 2px;
    width: 14px;
    height: 14px;
    margin-right: 10px; }

.question-toggle__date {
  margin-bottom: 25px; }
  .question-toggle__date svg {
    position: relative;
    top: 2px;
    width: 14px;
    height: 14px;
    margin-right: 10px; }

.document-item__answer {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.33333em;
  color: #042e4b;
  font-family: "Nunito", sans-serif;
  font-weight: 300;
  opacity: 0.8;
  padding: 0 80px 15px 80px; }
  .document-item__answer p {
    font-size: 15px;
    font-size: 1.5rem;
    line-height: 1.33333em;
    margin-bottom: 1em; }
  .document-item__answer h1 {
    font-size: 30px;
    font-size: 3rem;
    line-height: 1.16667em;
    color: #042e4b;
    font-family: "Montserrat", sans-serif;
    font-weight: 900;
    margin-bottom: 1em; }
  .document-item__answer h2 {
    font-size: 25px;
    font-size: 2.5rem;
    line-height: 1.2em;
    color: #042e4b;
    font-family: "Montserrat", sans-serif;
    font-weight: 800;
    margin-bottom: 1em; }
  .document-item__answer h3 {
    font-size: 15px;
    font-size: 1.5rem;
    line-height: 1.33333em;
    color: #042e4b;
    font-family: "Montserrat", sans-serif;
    font-weight: 800; }
  .document-item__answer ul,
  .document-item__answer ol {
    margin: 0 0 1em 40px;
    list-style: none;
    counter-reset: my-awesome-counter; }
    .document-item__answer ul li,
    .document-item__answer ol li {
      position: relative;
      margin-bottom: 1.5em;
      counter-increment: my-awesome-counter; }
      .document-item__answer ul li::before,
      .document-item__answer ol li::before {
        display: inline-block;
        position: absolute;
        top: 2px;
        left: -25px;
        width: 18px;
        background: linear-gradient(224.7deg, #8b2de9 0%, #0b14a3 100%);
        background-clip: text;
        color: transparent;
        font-size: 20px;
        font-weight: bold;
        content: counter(my-awesome-counter);
        -webkit-background-clip: text; }
  .document-item__answer ul {
    margin: 0 0 1em 40px;
    list-style-type: none; }
    .document-item__answer ul li::before {
      top: 6px;
      left: -16px;
      width: 7px;
      height: 7px;
      border-radius: 20px;
      background: #042e4b;
      content: '';
      opacity: 0.8; }

/* ==========================================================================
   Registration Progress
   ========================================================================== */
/**
 *  Main element.
 */
.registration-progress {
  position: relative;
  margin-top: 50px;
  margin-bottom: 140px; }
  .registration-progress::after {
    position: absolute;
    top: 10px;
    right: 75px;
    left: 35px;
    height: 2px;
    margin: auto;
    padding-left: 300px;
    background: #abb9c2;
    content: '';
    z-index: -1; }
    @media only screen and (max-width: 599px) {
      .registration-progress::after {
        left: 80px; } }

/**
 *  Single step.
 */
.registration-progress__step {
  font-size: 12px;
  font-size: 1.2rem;
  line-height: 2.5em;
  display: flex;
  position: relative;
  flex-wrap: wrap;
  font-weight: 300;
  text-align: center;
  text-transform: uppercase; }
  @media only screen and (max-width: 599px) {
    .registration-progress__step {
      width: calc(100% / 3); } }
  .registration-progress__step span {
    width: 100%;
    color: #042e4b; }
  .registration-progress__step.active {
    font-weight: 700;
    opacity: 1; }
    .registration-progress__step.active span {
      opacity: 1; }
    .registration-progress__step.active::before {
      background: #042e4b; }
  .registration-progress__step::before {
    display: block;
    width: 20px;
    height: 20px;
    margin: auto;
    border: 1px solid #688293;
    border-radius: 100%;
    background: white;
    content: ''; }

.first-step .registration-progress__step:nth-child(1) {
  font-weight: 700;
  opacity: 1; }
  .first-step .registration-progress__step:nth-child(1)::before {
    padding: 3px;
    border: 1px solid #042e4b;
    background: #042e4b; }

.first-step .registration-progress__step:nth-child(2) span, .first-step .registration-progress__step:nth-child(3) span {
  color: #042e4b;
  font-weight: 500;
  opacity: 0.6; }

@media only screen and (max-width: 599px) {
  .second-step .registration-progress__step:nth-child(1) span, .second-step .registration-progress__step:nth-child(3) span {
    color: #042e4b;
    font-weight: 600; } }

.second-step .registration-progress__step:nth-child(1), .second-step .registration-progress__step:nth-child(2) {
  font-weight: 600; }
  .second-step .registration-progress__step:nth-child(1)::before, .second-step .registration-progress__step:nth-child(2)::before {
    background: #042e4b; }

.second-step .registration-progress__step:nth-child(1) {
  color: #abb9c2; }
  .second-step .registration-progress__step:nth-child(1) span::after {
    display: flex;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    width: 20px;
    height: 20px;
    margin: auto;
    border: 1px solid #042e4b;
    border-radius: 20px;
    content: ''; }
  .second-step .registration-progress__step:nth-child(1)::before {
    border: 3px solid white; }

.first-step .default__editor {
  font-weight: 300; }

.third-step .registration-progress {
  margin-bottom: 110px; }

@media only screen and (max-width: 599px) {
  .third-step .registration-progress__step:nth-child(1) span, .third-step .registration-progress__step:nth-child(2) span {
    color: white; } }

.third-step .registration-progress__step:nth-child(1), .third-step .registration-progress__step:nth-child(2) {
  color: #abb9c2;
  font-weight: 600; }
  .third-step .registration-progress__step:nth-child(1) span::after, .third-step .registration-progress__step:nth-child(2) span::after {
    display: flex;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    width: 20px;
    height: 20px;
    margin: auto;
    border: 1px solid #042e4b;
    border-radius: 20px;
    content: ''; }
  .third-step .registration-progress__step:nth-child(1)::before, .third-step .registration-progress__step:nth-child(2)::before {
    border: 3px solid white;
    background: #042e4b; }

.third-step .registration-progress__step.last {
  font-weight: 700; }
  .third-step .registration-progress__step.last::before {
    background: #042e4b; }

/* ==========================================================================
   Search results.
   ========================================================================== */
.search-results {
  margin-bottom: 130px; }
  .search-results .document-item:nth-last-child(1) {
    margin-bottom: 30px; }

.search-results__sections {
  margin-bottom: 100px; }

.search-results__section .question-item {
  margin-bottom: 50px; }

.search-results__section-title {
  margin: 50px 0 50px; }

.search-results__breadcrumbs {
  margin-bottom: 30px;
  color: #abb9c2; }
  .search-results__breadcrumbs svg {
    width: 7px;
    height: 20px;
    margin: 0 20px; }

@media only screen and (max-width: 899px) {
  .search-results__head .heading-1-blue {
    width: 100%; } }

.search-results__sort {
  top: 10px;
  font-family: "Nunito", sans-serif;
  font-weight: 300; }
  @media only screen and (max-width: 899px) {
    .search-results__sort {
      width: 100%; } }
  .search-results__sort button {
    border-bottom: 1px solid;
    color: #ff6e2c; }
  .search-results__sort svg {
    position: relative;
    top: 2px;
    width: 11px;
    height: 14px;
    margin-left: 5px;
    color: #ff6e2c; }

/* ==========================================================================
   Search
   ========================================================================== */
/**
 *  Main element.
 */
.header__search {
  position: relative;
  font-family: "Nunito", sans-serif;
  font-size: 13px; }

.search-form__input {
  width: 100%; }
  .search-form__input input {
    width: 100%;
    height: 40px;
    padding: 10px 35px 10px 20px;
    border-radius: 20px;
    font-size: 13px; }
    .search-form__input input::-moz-placeholder {
      color: #abb9c2; }
    .search-form__input input:-ms-input-placeholder {
      color: #abb9c2; }
    .search-form__input input::placeholder {
      color: #abb9c2; }

.search-form__expand svg {
  position: absolute;
  top: 32px;
  right: 15px;
  width: 14px;
  height: 14px;
  color: #abb9c2;
  pointer-events: none; }

/* ==========================================================================
   Submenu
   ========================================================================== */
/**
 *  Submenu.
 */
.submenu {
  position: relative;
  width: 100%;
  background: white;
  color: #042e4b;
  font-family: "Nunito", sans-serif;
  box-shadow: 0 13px 15px 0 rgba(4, 46, 75, 0.04); }
  .submenu.is-fixed {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 99; }
  .submenu .submenu-left__user {
    padding: 20px; }

.submenu-left__user {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 20px 0;
  background: #deddf5;
  font-weight: 700; }
  @media only screen and (max-width: 1199px) {
    .submenu-left__user {
      justify-content: center;
      width: 100%; } }
  .submenu-left__user svg {
    width: 15px;
    height: 15px;
    margin-left: 10px;
    transition: transform 250ms ease; }
    @media only screen and (max-width: 1199px) {
      .submenu-left__user svg {
        transform: rotate(90deg);
        cursor: pointer; } }
    @media only screen and (max-width: 1199px) {
      .submenu-left__user svg.is-active {
        transform: rotate(270deg); } }

@media only screen and (max-width: 1199px) {
  .submenu-left {
    width: 100%; } }

.submenu-left__links {
  padding: 18px 30px;
  transition: all 250ms ease;
  background: white;
  z-index: 99; }
  @media only screen and (max-width: 1199px) {
    .submenu-left__links {
      position: absolute;
      top: -100%;
      width: 100%;
      opacity: 0;
      z-index: -1;
      pointer-events: 0; } }
  .submenu-left__links a {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    margin-right: 30px;
    transition: color 250ms ease; }
    @media only screen and (max-width: 1199px) {
      .submenu-left__links a {
        justify-content: center;
        width: 100%;
        padding: 20px 0;
        text-align: center; } }
    @media only screen and (min-width: 1200px) {
      .submenu-left__links a:hover {
        color: #ff6e2c; } }
  .submenu-left__links svg {
    width: 14px;
    height: 14px;
    margin-right: 7px; }
  .submenu-left__links.is-active {
    top: 100%;
    opacity: 1;
    z-index: 99;
    pointer-events: initial; }

.submenu-right {
  padding: 20px 30px;
  background: white;
  opacity: 0.5; }
  @media only screen and (max-width: 1199px) {
    .submenu-right {
      display: none; } }
  .submenu-right svg {
    width: 14px;
    height: 14px;
    margin-right: 7px; }

.submenu-right__mobile {
  display: flex;
  justify-content: center;
  padding: 20px 0;
  opacity: 0.5; }
  @media only screen and (min-width: 1200px) {
    .submenu-right__mobile {
      display: none; } }

/* ==========================================================================
   Text/image
   ========================================================================== */
/**
 *  Main element.
 */
.text-image__wrapper {
  position: relative;
  -webkit-animation: slideDown 1000ms ease;
          animation: slideDown 1000ms ease; }

.text-image {
  width: 100%;
  max-width: 820px;
  margin: auto auto 150px;
  border-radius: 5px;
  background: linear-gradient(224.7deg, #8b2de9 0%, #0b14a3 100%);
  color: white;
  box-shadow: 0 2px 20px 0 rgba(136, 45, 231, 0.3); }
  @media only screen and (max-width: 899px) {
    .text-image {
      margin: auto auto 75px; } }
  .text-image.order-right .flex {
    flex-direction: row-reverse; }
    @media only screen and (max-width: 899px) {
      .text-image.order-right .flex {
        flex-direction: column-reverse; } }

.text-image.has-svg .text-image__image {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 23%; }
  @media only screen and (max-width: 599px) {
    .text-image.has-svg .text-image__image {
      width: 100%;
      padding-top: 35px; } }

.text-image.has-svg .text-image__content {
  width: 77%;
  padding: 60px 30px; }
  @media only screen and (max-width: 599px) {
    .text-image.has-svg .text-image__content {
      width: 100%; } }

.text-image.has-svg .default__text {
  letter-spacing: 0.3px;
  opacity: 0.8; }

.text-image.has-svg svg {
  margin-left: 25px; }

.text-image__image {
  position: relative;
  width: 30%;
  height: auto; }
  @media only screen and (max-width: 899px) {
    .text-image__image {
      width: 100%; } }
  .text-image__image img {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 5px 0 0 5px; }
    @media only screen and (max-width: 899px) {
      .text-image__image img {
        position: static;
        height: 200px;
        border-radius: 5px 5px 0 0; } }
  .text-image__image svg {
    width: 70px;
    height: 70px; }

.text-image__content {
  width: 70%;
  padding: 50px 60px;
  border-radius: 0 5px 5px 0; }
  @media only screen and (max-width: 899px) {
    .text-image__content {
      width: 100%;
      border-radius: 0 0 5px 5px; } }

.text-image__content .default__text {
  margin-top: 15px;
  font-weight: 100; }
  .text-image__content .default__text .button-transparant {
    margin-top: 30px;
    padding: 10px 20px; }

.default__wrapper + .text-image__wrapper {
  margin-top: 85px; }

/* ==========================================================================
   Animations.
   ========================================================================== */
@-webkit-keyframes swipeFadeRight {
  0% {
    left: 5px;
    opacity: 1; }
  100% {
    left: 20px;
    opacity: 0; } }
@keyframes swipeFadeRight {
  0% {
    left: 5px;
    opacity: 1; }
  100% {
    left: 20px;
    opacity: 0; } }

@-webkit-keyframes swipeFadeLeft {
  0% {
    right: 5px;
    opacity: 1; }
  100% {
    right: 20px;
    opacity: 0; } }

@keyframes swipeFadeLeft {
  0% {
    right: 5px;
    opacity: 1; }
  100% {
    right: 20px;
    opacity: 0; } }

/* ==========================================================================
   Color
   ========================================================================== */
/**
 * Color utility classes.
 */
/**
       * `color` black-100 color utility.
       */
.color-black-100 {
  color: black; }

/**
       * `background-color` black-100 color utility.
       */
.background-color-black-100 {
  background-color: black; }

/**
       * `color` #abb9c2-200 color utility.
       */
.color-grey-200 {
  color: #abb9c2; }

/**
       * `background-color` #abb9c2-200 color utility.
       */
.background-color-grey-200 {
  background-color: #abb9c2; }

/**
       * `color` #688293-300 color utility.
       */
.color-grey-300 {
  color: #688293; }

/**
       * `background-color` #688293-300 color utility.
       */
.background-color-grey-300 {
  background-color: #688293; }

/**
       * `color` white-100 color utility.
       */
.color-white-100 {
  color: white; }

/**
       * `background-color` white-100 color utility.
       */
.background-color-white-100 {
  background-color: white; }

/**
       * `color` #ecf5fc-100 color utility.
       */
.color-blue-100 {
  color: #ecf5fc; }

/**
       * `background-color` #ecf5fc-100 color utility.
       */
.background-color-blue-100 {
  background-color: #ecf5fc; }

/**
       * `color` #b7c7d2-200 color utility.
       */
.color-blue-200 {
  color: #b7c7d2; }

/**
       * `background-color` #b7c7d2-200 color utility.
       */
.background-color-blue-200 {
  background-color: #b7c7d2; }

/**
       * `color` #1d435d-300 color utility.
       */
.color-blue-300 {
  color: #1d435d; }

/**
       * `background-color` #1d435d-300 color utility.
       */
.background-color-blue-300 {
  background-color: #1d435d; }

/**
       * `color` #042e4b-400 color utility.
       */
.color-blue-400 {
  color: #042e4b; }

/**
       * `background-color` #042e4b-400 color utility.
       */
.background-color-blue-400 {
  background-color: #042e4b; }

/**
       * `color` #ff6e2c-200 color utility.
       */
.color-orange-200 {
  color: #ff6e2c; }

/**
       * `background-color` #ff6e2c-200 color utility.
       */
.background-color-orange-200 {
  background-color: #ff6e2c; }

/**
       * `color` #f2f6f9-100 color utility.
       */
.color-purple-100 {
  color: #f2f6f9; }

/**
       * `background-color` #f2f6f9-100 color utility.
       */
.background-color-purple-100 {
  background-color: #f2f6f9; }

/**
       * `color` #f6f5fd-150 color utility.
       */
.color-purple-150 {
  color: #f6f5fd; }

/**
       * `background-color` #f6f5fd-150 color utility.
       */
.background-color-purple-150 {
  background-color: #f6f5fd; }

/**
       * `color` #deddf5-200 color utility.
       */
.color-purple-200 {
  color: #deddf5; }

/**
       * `background-color` #deddf5-200 color utility.
       */
.background-color-purple-200 {
  background-color: #deddf5; }

/**
       * `color` #4a20c6-300 color utility.
       */
.color-purple-300 {
  color: #4a20c6; }

/**
       * `background-color` #4a20c6-300 color utility.
       */
.background-color-purple-300 {
  background-color: #4a20c6; }

/**
       * `color` #ffc9c9-100 color utility.
       */
.color-red-100 {
  color: #ffc9c9; }

/**
       * `background-color` #ffc9c9-100 color utility.
       */
.background-color-red-100 {
  background-color: #ffc9c9; }

/* ==========================================================================
   Object Fit
   ========================================================================== */
/**
 * Object fit.
 *
 * 1. Font family polyfill with (https://github.com/bfred-it/object-fit-images).
 */
/**
   * `object-fit` fill utility class.
   */
.fill {
  font-family: "object-fit: fill;";
  /* 1 */
  -o-object-fit: fill;
     object-fit: fill; }

/**
   * `object-fit` contain utility class.
   */
.contain {
  font-family: "object-fit: contain;";
  /* 1 */
  -o-object-fit: contain;
     object-fit: contain; }

/**
   * `object-fit` cover utility class.
   */
.cover {
  font-family: "object-fit: cover;";
  /* 1 */
  -o-object-fit: cover;
     object-fit: cover; }

/**
   * `object-fit` none utility class.
   */
.none {
  font-family: "object-fit: none;";
  /* 1 */
  -o-object-fit: none;
     object-fit: none; }

/**
   * `object-fit` scale-down utility class.
   */
.scale-down {
  font-family: "object-fit: scale-down;";
  /* 1 */
  -o-object-fit: scale-down;
     object-fit: scale-down; }

/* ==========================================================================
   Position
   ========================================================================== */
/**
 * Position utility class.
 */
.static {
  position: static; }

.relative {
  position: relative; }

.absolute {
  position: absolute; }

.fixed {
  position: fixed; }

.sticky {
  position: sticky; }

/* ==========================================================================
   Text
   ========================================================================== */
/**
 * Font family utility classes.
 */
/**
 * Text size utility classes.
 */
.text-xs-h1 {
  font-size: 30px;
  font-size: 3rem;
  line-height: 1.16667em; }

.text-xs-h2 {
  font-size: 25px;
  font-size: 2.5rem;
  line-height: 1.2em; }

.text-xs-h3 {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.33333em; }

.text-xs-h4 {
  font-size: 22px;
  font-size: 2.2rem;
  line-height: 1.45455em; }

.text-xs-h5 {
  font-size: 20px;
  font-size: 2rem;
  line-height: 1.6em; }

.text-xs-h6 {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.77778em; }

.text-xs-p {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.33333em; }

@media only screen and (max-width: 599px) {
  .text-sm-h1 {
    font-size: 30px;
    font-size: 3rem;
    line-height: 1.16667em; }
  .text-sm-h2 {
    font-size: 25px;
    font-size: 2.5rem;
    line-height: 1.2em; }
  .text-sm-h3 {
    font-size: 15px;
    font-size: 1.5rem;
    line-height: 1.33333em; }
  .text-sm-h4 {
    font-size: 22px;
    font-size: 2.2rem;
    line-height: 1.45455em; }
  .text-sm-h5 {
    font-size: 20px;
    font-size: 2rem;
    line-height: 1.6em; }
  .text-sm-h6 {
    font-size: 18px;
    font-size: 1.8rem;
    line-height: 1.77778em; }
  .text-sm-p {
    font-size: 15px;
    font-size: 1.5rem;
    line-height: 1.33333em; } }

@media only screen and (min-width: 600px) {
  .text-md-h1 {
    font-size: 30px;
    font-size: 3rem;
    line-height: 1.16667em; }
  .text-md-h2 {
    font-size: 25px;
    font-size: 2.5rem;
    line-height: 1.2em; }
  .text-md-h3 {
    font-size: 15px;
    font-size: 1.5rem;
    line-height: 1.33333em; }
  .text-md-h4 {
    font-size: 22px;
    font-size: 2.2rem;
    line-height: 1.45455em; }
  .text-md-h5 {
    font-size: 20px;
    font-size: 2rem;
    line-height: 1.6em; }
  .text-md-h6 {
    font-size: 18px;
    font-size: 1.8rem;
    line-height: 1.77778em; }
  .text-md-p {
    font-size: 15px;
    font-size: 1.5rem;
    line-height: 1.33333em; } }

@media only screen and (min-width: 900px) {
  .text-lg-h1 {
    font-size: 30px;
    font-size: 3rem;
    line-height: 1.16667em; }
  .text-lg-h2 {
    font-size: 25px;
    font-size: 2.5rem;
    line-height: 1.2em; }
  .text-lg-h3 {
    font-size: 15px;
    font-size: 1.5rem;
    line-height: 1.33333em; }
  .text-lg-h4 {
    font-size: 22px;
    font-size: 2.2rem;
    line-height: 1.45455em; }
  .text-lg-h5 {
    font-size: 20px;
    font-size: 2rem;
    line-height: 1.6em; }
  .text-lg-h6 {
    font-size: 18px;
    font-size: 1.8rem;
    line-height: 1.77778em; }
  .text-lg-p {
    font-size: 15px;
    font-size: 1.5rem;
    line-height: 1.33333em; } }

@media only screen and (min-width: 1200px) {
  .text-xl-h1 {
    font-size: 30px;
    font-size: 3rem;
    line-height: 1.16667em; }
  .text-xl-h2 {
    font-size: 25px;
    font-size: 2.5rem;
    line-height: 1.2em; }
  .text-xl-h3 {
    font-size: 15px;
    font-size: 1.5rem;
    line-height: 1.33333em; }
  .text-xl-h4 {
    font-size: 22px;
    font-size: 2.2rem;
    line-height: 1.45455em; }
  .text-xl-h5 {
    font-size: 20px;
    font-size: 2rem;
    line-height: 1.6em; }
  .text-xl-h6 {
    font-size: 18px;
    font-size: 1.8rem;
    line-height: 1.77778em; }
  .text-xl-p {
    font-size: 15px;
    font-size: 1.5rem;
    line-height: 1.33333em; } }

/**
 * Text alignment utility classes.
 */
.text-xs-left {
  text-align: left; }

.text-xs-right {
  text-align: right; }

.text-xs-center {
  text-align: center; }

@media only screen and (max-width: 599px) {
  .text-sm-left {
    text-align: left; }
  .text-sm-right {
    text-align: right; }
  .text-sm-center {
    text-align: center; } }

@media only screen and (min-width: 600px) {
  .text-md-left {
    text-align: left; }
  .text-md-right {
    text-align: right; }
  .text-md-center {
    text-align: center; } }

@media only screen and (min-width: 900px) {
  .text-lg-left {
    text-align: left; }
  .text-lg-right {
    text-align: right; }
  .text-lg-center {
    text-align: center; } }

@media only screen and (min-width: 1200px) {
  .text-xl-left {
    text-align: left; }
  .text-xl-right {
    text-align: right; }
  .text-xl-center {
    text-align: center; } }

/**
 * Font weight utility classes.
 *
 * 1. Multiply looped integer by 100 for correct font weight value.
 */
.text-xs-100 {
  font-weight: 100; }

.text-xs-200 {
  font-weight: 200; }

.text-xs-300 {
  font-weight: 300; }

.text-xs-400 {
  font-weight: 400; }

.text-xs-500 {
  font-weight: 500; }

.text-xs-600 {
  font-weight: 600; }

.text-xs-700 {
  font-weight: 700; }

.text-xs-800 {
  font-weight: 800; }

.text-xs-900 {
  font-weight: 900; }

@media only screen and (max-width: 599px) {
  .text-sm-100 {
    font-weight: 100; }
  .text-sm-200 {
    font-weight: 200; }
  .text-sm-300 {
    font-weight: 300; }
  .text-sm-400 {
    font-weight: 400; }
  .text-sm-500 {
    font-weight: 500; }
  .text-sm-600 {
    font-weight: 600; }
  .text-sm-700 {
    font-weight: 700; }
  .text-sm-800 {
    font-weight: 800; }
  .text-sm-900 {
    font-weight: 900; } }

@media only screen and (min-width: 600px) {
  .text-md-100 {
    font-weight: 100; }
  .text-md-200 {
    font-weight: 200; }
  .text-md-300 {
    font-weight: 300; }
  .text-md-400 {
    font-weight: 400; }
  .text-md-500 {
    font-weight: 500; }
  .text-md-600 {
    font-weight: 600; }
  .text-md-700 {
    font-weight: 700; }
  .text-md-800 {
    font-weight: 800; }
  .text-md-900 {
    font-weight: 900; } }

@media only screen and (min-width: 900px) {
  .text-lg-100 {
    font-weight: 100; }
  .text-lg-200 {
    font-weight: 200; }
  .text-lg-300 {
    font-weight: 300; }
  .text-lg-400 {
    font-weight: 400; }
  .text-lg-500 {
    font-weight: 500; }
  .text-lg-600 {
    font-weight: 600; }
  .text-lg-700 {
    font-weight: 700; }
  .text-lg-800 {
    font-weight: 800; }
  .text-lg-900 {
    font-weight: 900; } }

@media only screen and (min-width: 1200px) {
  .text-xl-100 {
    font-weight: 100; }
  .text-xl-200 {
    font-weight: 200; }
  .text-xl-300 {
    font-weight: 300; }
  .text-xl-400 {
    font-weight: 400; }
  .text-xl-500 {
    font-weight: 500; }
  .text-xl-600 {
    font-weight: 600; }
  .text-xl-700 {
    font-weight: 700; }
  .text-xl-800 {
    font-weight: 800; }
  .text-xl-900 {
    font-weight: 900; } }

/**
 * Text transform uitlity classes.
 */
.text-xs-capitalize {
  text-transform: capitalize; }

.text-xs-uppercase {
  text-transform: uppercase; }

.text-xs-lowercase {
  text-transform: lowercase; }

.text-xs-none {
  text-transform: none; }

.text-xs-full-width {
  text-transform: full-width; }

@media only screen and (max-width: 599px) {
  .text-sm-capitalize {
    text-transform: capitalize; }
  .text-sm-uppercase {
    text-transform: uppercase; }
  .text-sm-lowercase {
    text-transform: lowercase; }
  .text-sm-none {
    text-transform: none; }
  .text-sm-full-width {
    text-transform: full-width; } }

@media only screen and (min-width: 600px) {
  .text-md-capitalize {
    text-transform: capitalize; }
  .text-md-uppercase {
    text-transform: uppercase; }
  .text-md-lowercase {
    text-transform: lowercase; }
  .text-md-none {
    text-transform: none; }
  .text-md-full-width {
    text-transform: full-width; } }

@media only screen and (min-width: 900px) {
  .text-lg-capitalize {
    text-transform: capitalize; }
  .text-lg-uppercase {
    text-transform: uppercase; }
  .text-lg-lowercase {
    text-transform: lowercase; }
  .text-lg-none {
    text-transform: none; }
  .text-lg-full-width {
    text-transform: full-width; } }

@media only screen and (min-width: 1200px) {
  .text-xl-capitalize {
    text-transform: capitalize; }
  .text-xl-uppercase {
    text-transform: uppercase; }
  .text-xl-lowercase {
    text-transform: lowercase; }
  .text-xl-none {
    text-transform: none; }
  .text-xl-full-width {
    text-transform: full-width; } }

/* ==========================================================================
   Vertical Rhythm
   ========================================================================== */
.vr-0 {
  margin-bottom: 0px; }

.vr-8 {
  margin-bottom: 8px; }

.vr-16 {
  margin-bottom: 16px; }

.vr-24 {
  margin-bottom: 24px; }

.vr-32 {
  margin-bottom: 32px; }

.vr-40 {
  margin-bottom: 40px; }

.vr-48 {
  margin-bottom: 48px; }

.vr-56 {
  margin-bottom: 56px; }

.vr-64 {
  margin-bottom: 64px; }

.vr-72 {
  margin-bottom: 72px; }

.vr-80 {
  margin-bottom: 80px; }

/* ==========================================================================
   Z-index
   ========================================================================== */
/**
 * 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNldHRpbmdzL19jb2xvci5zY3NzIiwiLi4vdmVuZG9yL25vcm1hbGl6ZS5zY3NzIiwibWFpbi5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvdGltZXBpY2tlci9qcXVlcnkudGltZXBpY2tlci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbWFnbmlmaWMtcG9wdXAvc3JjL2Nzcy9tYWluLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbWFnbmlmaWMtcG9wdXAvc3JjL2Nzcy9fc2V0dGluZ3Muc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9vd2wuY2Fyb3VzZWwvc3JjL3Njc3MvX2NvcmUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9vd2wuY2Fyb3VzZWwvc3JjL3Njc3MvX2FuaW1hdGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9vd2wuY2Fyb3VzZWwvc3JjL3Njc3MvX2F1dG9oZWlnaHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9vd2wuY2Fyb3VzZWwvc3JjL3Njc3MvX2xhenlsb2FkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvb3dsLmNhcm91c2VsL3NyYy9zY3NzL192aWRlby5zY3NzIiwidG9vbHMvX2V4dGVuZHMuc2NzcyIsImdlbmVyaWMvX2Jhc2Uuc2NzcyIsInRvb2xzL19taXhpbnMuc2NzcyIsInNldHRpbmdzL190eXBvZ3JhcGh5LnNjc3MiLCJ0b29scy9fZnVuY3Rpb25zLnNjc3MiLCJnZW5lcmljL19yZXNldC5zY3NzIiwib2JqZWN0cy9fYW5pbWF0aW9ucy5zY3NzIiwib2JqZWN0cy9fYnV0dG9ucy5zY3NzIiwib2JqZWN0cy9fY29udGFpbmVyLnNjc3MiLCJzZXR0aW5ncy9fZGVmaW5pdGlvbnMuc2NzcyIsIm9iamVjdHMvX2NvbnRlbnQtY29uc3RyYWludC5zY3NzIiwib2JqZWN0cy9fZmxleC5zY3NzIiwib2JqZWN0cy9faGVhZGluZy5zY3NzIiwib2JqZWN0cy9fbGFiZWwuc2NzcyIsIm9iamVjdHMvX2xpbmtzLnNjc3MiLCJvYmplY3RzL19ub3RpY2Uuc2NzcyIsIm9iamVjdHMvX3NlY3Rpb24uc2NzcyIsIm9iamVjdHMvX3dyYXBwZXIuc2NzcyIsImNvbXBvbmVudHMvX2JhbGxzLnNjc3MiLCJjb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwiY29tcG9uZW50cy9fY21zLW91dHB1dC5zY3NzIiwiY29tcG9uZW50cy9fZGFzaGJvYXJkLXJlbGV2YW50LnNjc3MiLCJjb21wb25lbnRzL19kYXNoYm9hcmQtc2hvcnRjdXQuc2NzcyIsImNvbXBvbmVudHMvX2RlZmF1bHQuc2NzcyIsImNvbXBvbmVudHMvX2RvY3VtZW50LWl0ZW0uc2NzcyIsImNvbXBvbmVudHMvX2RvY3VtZW50LWxpc3Quc2NzcyIsImNvbXBvbmVudHMvX2RvY3VtZW50LW1lbnUuc2NzcyIsImNvbXBvbmVudHMvX2RvY3VtZW50LXNpbmdsZS5zY3NzIiwiY29tcG9uZW50cy9fZG9jdW1lbnQtc3VibWVudS5zY3NzIiwiY29tcG9uZW50cy9fZG9jdW1lbnQtdXBsb2FkLWZvcm0uc2NzcyIsImNvbXBvbmVudHMvX2Rvd25sb2Fkcy1sYXRlc3Quc2NzcyIsImNvbXBvbmVudHMvX2Zvb3Rlci5zY3NzIiwiY29tcG9uZW50cy9fZm9ybS5zY3NzIiwiY29tcG9uZW50cy9faGVhZGVyLnNjc3MiLCJjb21wb25lbnRzL19sYW5ndWFnZS1tZW51LnNjc3MiLCJjb21wb25lbnRzL19sb2dpbi5zY3NzIiwiY29tcG9uZW50cy9fbWVzc2FnZXMuc2NzcyIsImNvbXBvbmVudHMvX3Byb2ZpbGUuc2NzcyIsImNvbXBvbmVudHMvX3F1ZXN0aW9uLWZpbHRlcnMuc2NzcyIsImNvbXBvbmVudHMvX3F1ZXN0aW9uLWxhdGVzdC5zY3NzIiwiY29tcG9uZW50cy9fcXVlc3Rpb24tc2luZ2xlLnNjc3MiLCJjb21wb25lbnRzL19xdWVzdGlvbi1maXhlZC1idXR0b24uc2NzcyIsImNvbXBvbmVudHMvX3F1ZXN0aW9uLWZvcm0uc2NzcyIsImNvbXBvbmVudHMvX3F1ZXN0aW9uLXRvZ2dsZS5zY3NzIiwiY29tcG9uZW50cy9fcmVnaXN0cmF0aW9uLXByb2dyZXNzLnNjc3MiLCJjb21wb25lbnRzL19zZWFyY2gtcmVzdWx0cy5zY3NzIiwiY29tcG9uZW50cy9fc2VhcmNoLnNjc3MiLCJjb21wb25lbnRzL19zdWJtZW51LnNjc3MiLCJjb21wb25lbnRzL190ZXh0LWltYWdlLnNjc3MiLCJ1dGlsaXRpZXMvX2FuaW1hdGlvbnMuc2NzcyIsInV0aWxpdGllcy9fY29sb3Iuc2NzcyIsInV0aWxpdGllcy9fb2JqZWN0LWZpdC5zY3NzIiwidXRpbGl0aWVzL19wb3NpdGlvbi5zY3NzIiwidXRpbGl0aWVzL190ZXh0LnNjc3MiLCJ1dGlsaXRpZXMvX3ZlcnRpY2FsLXJoeXRobS5zY3NzIiwidXRpbGl0aWVzL196LWluZGV4LnNjc3MiLCJzZXR0aW5ncy9fei1pbmRleC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlFQTtFQUNFLG1CQWpEK0IsRUFBQTs7QUFvRGpDO0VBQ0UsaUJBeEQrQixFQUFBOztBQ2RqQywyRUFBQTtBQUVBOytFQ00rRTtBREgvRTs7O0VDT0U7QURGRjtFQUNFLGlCQUFpQjtFQUFFLE1BQUE7RUFDbkIsOEJBQThCO0VBQUUsTUFBQSxFQUFPOztBQUd6QzsrRUNLK0U7QURGL0U7O0VDS0U7QURERjtFQUNFLFNBQVMsRUFBQTs7QUFHWDs7RUNHRTtBRENGO0VBQ0UsY0FBYyxFQUFBOztBQUdoQjs7O0VDRUU7QURHRjtFQUNFLGNBQWM7RUFDZCxnQkFBZ0IsRUFBQTs7QUFHbEI7K0VDRitFO0FESy9FOzs7RUNERTtBRE1GO0VBQ0UsdUJBQXVCO0VBQUUsTUFBQTtFQUN6QixTQUFTO0VBQUUsTUFBQTtFQUNYLGlCQUFpQjtFQUFFLE1BQUEsRUFBTzs7QUFHNUI7OztFQ0FFO0FES0Y7RUFDRSxpQ0FBaUM7RUFBRSxNQUFBO0VBQ25DLGNBQWM7RUFBRSxNQUFBLEVBQU87O0FBR3pCOytFQ0YrRTtBREsvRTs7RUNGRTtBRE1GO0VBQ0UsNkJBQTZCLEVBQUE7O0FB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ekJ4QjtJQTZCSSxrQkFBa0IsRUFBQTs7QUFLdEI7O0VoQjhpQ0U7QWdCMWlDRjtFQUNFLG1CbEJ6QjhCO0VrQjBCOUIsWWxCbkMrQixFQUFBO0VhMkY3QjtJSzFESjtNQU1NLG1CQUEwQztNQUMxQyxrREFBa0QsRUFBQSxFQUVyRDs7QUFJSDs7RWhCd2lDRTtBZ0JwaUNGO0VBQ0UsaUJsQm5EK0I7RWtCb0QvQixjbEI5QzJCO0VrQitDM0IsMENBQTBDLEVBQUE7RUxzQ3hDO0lLekNKO01BT00sbUJsQm5EdUI7TWtCb0R2QixZbEIxRDJCLEVBQUEsRWtCNEQ5Qjs7QUFJSDs7RWhCa2lDRTtBZ0I5aENGOztFQUVFLHVCbEJ0RStCO0VrQnVFL0IsdUJBQXVCO0VBQ3ZCLFlsQnhFK0IsRUFBQTtFYTJGN0I7SUt2Qko7O01BUU0saUJsQjVFMkI7TWtCNkUzQixjbEJ2RXVCLEVBQUEsRWtCeUUxQjs7QUFJSDs7RWhCNmhDRTtBZ0J6aENGO0VBQ0UseUJsQmxGMkI7RWtCbUYzQixpQmxCekYrQjtFa0IwRi9CLGNsQnBGMkIsRUFBQTtFYXFGekI7SUtKSjtNQU9NLG1CbEJ4RnVCO01rQnlGdkIsWWxCL0YyQixFQUFBLEVrQmlHOUI7O0FDL0dIOzsrRWpCMG9DK0U7QWlCdG9DL0U7O0VqQnlvQ0U7QWlCcm9DRjtFTk1NLDhCQUEwQztFQUMxQyxlT0VTO0VQRVgsV0FBVztFQUNYLGNBQWMsRUFBQTs7QVFwQmxCOzsrRW5Cc3BDK0U7QW1CbHBDL0U7Ozs7RW5CdXBDRTtBbUJqcENGO0VBU0Usa0JBQWtCO0VBQ2xCLFNBQVMsRUFBQTtFUnFHUDtJUS9HSjtNQUVJLFlBQVk7TUFDWixpQkFBaUI7TUFDakIsa0JBQWtCLEVBQUEsRUFXckI7RVJnSEc7SVEvSEo7TUFPSSxlQUFlLEVBQUEsRUFRbEI7RUFIQztJQVpGO01BYUksb0JBQW9CLEVBQUEsRUFFdkI7O0FDekJEOzsrRXBCNnFDK0U7QW9CenFDL0U7Ozs7Ozs7Ozs7OztFcEJzckNFO0FvQnhxQ0Y7Ozs7RXBCNnFDRTtBb0J2cUNGO0VBQ0UsYUFBYSxFQUFBOztBQUlmOztFcEJ3cUNFO0FvQnBxQ0Y7RUFDRSxlQUFlLEVBQUE7O0FBR2pCOztFcEJzcUNFO0FvQmxxQ0Y7RUFDRSxhQUFhO0VBQ2IsY0FBYztFQUNkLG1CQUFtQjtFQUNuQixlQUEyQixFQUFBOztBQUk3Qjs7RXBCbXFDRTtBb0IvcENGO0VBQ0UsT0FBTyxFQUFBOztBQWVIOztRcEJxcENFO0FvQmpwQ0Y7RUFDRSxjQUFjO0VBQ2QsZVAxQzhCO0VPMkM5QixlQUF3QixFQUFBOztBQVN4Qjs7VXBCNm9DRTtBb0J6b0NGO0VBQ0UscUJQekQ0QixFQUFBOztBT29DaEM7O1FwQm1xQ0U7QW9CL3BDRjtFQUNFLGNBQWM7RUFDZCxnQlAxQzhCO0VPMkM5QixlQUF3QixFQUFBOztBQVN4Qjs7VXBCMnBDRTtBb0J2cENGO0VBQ0Usc0JQekQ0QixFQUFBOztBT29DaEM7O1FwQmlyQ0U7QW9CN3FDRjtFQUNFLGNBQWM7RUFDZCxVUDFDOEI7RU8yQzlCLGVBQXdCLEVBQUE7O0FBU3hCOztVcEJ5cUNFO0FvQnJxQ0Y7RUFDRSxnQlB6RDRCLEVBQUE7O0FPb0NoQzs7UXBCK3JDRTtBb0IzckNGO0VBQ0UsY0FBYztFQUNkLGdCUDFDOEI7RU8yQzlCLGVBQXdCLEVBQUE7O0FBU3hCOztVcEJ1ckNFO0FvQm5yQ0Y7RUFDRSxzQlB6RDRCLEVBQUE7O0FPb0NoQzs7UXBCNnNDRTtBb0J6c0NGO0VBQ0UsY0FBYztFQUNkLGdCUDFDOEI7RU8yQzlCLGVBQXdCLEVBQUE7O0FBU3hCOztVcEJxc0NFO0FvQmpzQ0Y7RUFDRSxzQlB6RDRCLEVBQUE7O0FPb0NoQzs7UXBCMnRDRTtBb0J2dENGO0VBQ0UsY0FBYztFQUNkLFVQMUM4QjtFTzJDOUIsZUFBd0IsRUFBQTs7QUFTeEI7O1VwQm10Q0U7QW9CL3NDRjtFQUNFLGdCUHpENEIsRUFBQTs7QU9vQ2hDOztRcEJ5dUNFO0FvQnJ1Q0Y7RUFDRSxjQUFjO0VBQ2QsZ0JQMUM4QjtFTzJDOUIsZUFBd0IsRUFBQTs7QUFTeEI7O1VwQml1Q0U7QW9CN3RDRjtFQUNFLHNCUHpENEIsRUFBQTs7QU9vQ2hDOztRcEJ1dkNFO0FvQm52Q0Y7RUFDRSxjQUFjO0VBQ2QsZ0JQMUM4QjtFTzJDOUIsZUFBd0IsRUFBQTs7QUFTeEI7O1VwQit1Q0U7QW9CM3VDRjtFQUNFLHNCUHpENEIsRUFBQTs7QU9vQ2hDOztRcEJxd0NFO0FvQmp3Q0Y7RUFDRSxjQUFjO0VBQ2QsVVAxQzhCO0VPMkM5QixlQUF3QixFQUFBOztBQVN4Qjs7VXBCNnZDRTtBb0J6dkNGO0VBQ0UsZ0JQekQ0QixFQUFBOztBT29DaEM7O1FwQm14Q0U7QW9CL3dDRjtFQUNFLGNBQWM7RUFDZCxnQlAxQzhCO0VPMkM5QixlQUF3QixFQUFBOztBQVN4Qjs7VXBCMndDRTtBb0J2d0NGO0VBQ0Usc0JQekQ0QixFQUFBOztBT29DaEM7O1FwQml5Q0U7QW9CN3hDRjtFQUNFLGNBQWM7RUFDZCxnQlAxQzhCO0VPMkM5QixlQUF3QixFQUFBOztBQVN4Qjs7VXBCeXhDRTtBb0JyeENGO0VBQ0Usc0JQekQ0QixFQUFBOztBT29DaEM7O1FwQit5Q0U7QW9CM3lDRjtFQUNFLGNBQWM7RUFDZCxXUDFDOEI7RU8yQzlCLGVBQXdCLEVBQUE7O0FBdUIxQjs7UXBCeXhDRTtBb0JyeENGO0VBQ0Usb0JBUG1CLEVBQUE7O0FBRXJCOztRcEIreENFO0FvQjN4Q0Y7RUFDRSxtQkFQMkIsRUFBQTs7QUFFN0I7O1FwQnF5Q0U7QW9CanlDRjtFQUNFLHVCQVB1QyxFQUFBOztBQUV6Qzs7UXBCMnlDRTtBb0J2eUNGO0VBQ0UscUJBUGlELEVBQUE7O0FBRW5EOztRcEJpekNFO0FvQjd5Q0Y7RUFDRSxxQkFQMkQsRUFBQTs7QUFlN0Q7O1FwQjB5Q0U7QW9CdHlDRjtFQUNFLHNCQVBpQixFQUFBOztBQUVuQjs7UXBCZ3pDRTtBb0I1eUNGO0VBQ0UsdUJBUHlCLEVBQUE7O0FBRTNCOztRcEJzekNFO0FvQmx6Q0Y7RUFDRSw4QkFQd0MsRUFBQTs7QUFFMUM7O1FwQjR6Q0U7QW9CeHpDRjtFQUNFLDZCQVBzRCxFQUFBOztBQUV4RDs7UXBCazBDRTtBb0I5ekNGO0VBQ0UsNkJBUG9FLEVBQUE7O0FBRXRFOztRcEJ3MENFO0FvQnAwQ0Y7RUFDRSx5QkFQOEUsRUFBQTs7QUFlaEY7O1FwQmkwQ0U7QW9CN3pDRjtFQUNFLGVBQWdDLEVBQUE7O0FBTGxDOztRcEJ1MENFO0FvQm4wQ0Y7RUFDRSxnQkFBZ0MsRUFBQTs7QUFLcEM7O01wQm0wQ0U7QW9CL3pDRjtFQUNFLFNBQVMsRUFBQTs7QUFJWDs7TXBCZzBDRTtBb0I1ekNGO0VBQ0UsUUFBUSxFQUFBOztBQUlWOztNcEI2ekNFO0FvQnp6Q0Y7RUFDRSwyQkFBMkIsRUFBQTs7QVRyQjdCO0VTcEVFOztRcEJ3NUNFO0VvQnA1Q0Y7SUFDRSxjQUFjO0lBQ2QsZVAxQzhCO0lPMkM5QixlQUF3QixFQUFBO0VBU3hCOztVcEIrNENFO0VvQjM0Q0Y7SUFDRSxxQlB6RDRCLEVBQUE7RU9vQ2hDOztRcEJvNkNFO0VvQmg2Q0Y7SUFDRSxjQUFjO0lBQ2QsZ0JQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQVN4Qjs7VXBCMjVDRTtFb0J2NUNGO0lBQ0Usc0JQekQ0QixFQUFBO0VPb0NoQzs7UXBCZzdDRTtFb0I1NkNGO0lBQ0UsY0FBYztJQUNkLFVQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQVN4Qjs7VXBCdTZDRTtFb0JuNkNGO0lBQ0UsZ0JQekQ0QixFQUFBO0VPb0NoQzs7UXBCNDdDRTtFb0J4N0NGO0lBQ0UsY0FBYztJQUNkLGdCUDFDOEI7SU8yQzlCLGVBQXdCLEVBQUE7RUFTeEI7O1VwQm03Q0U7RW9CLzZDRjtJQUNFLHNCUHpENEIsRUFBQTtFT29DaEM7O1FwQnc4Q0U7RW9CcDhDRjtJQUNFLGNBQWM7SUFDZCxnQlAxQzhCO0lPMkM5QixlQUF3QixFQUFBO0VBU3hCOztVcEIrN0NFO0VvQjM3Q0Y7SUFDRSxzQlB6RDRCLEVBQUE7RU9vQ2hDOztRcEJvOUNFO0VvQmg5Q0Y7SUFDRSxjQUFjO0lBQ2QsVVAxQzhCO0lPMkM5QixlQUF3QixFQUFBO0VBU3hCOztVcEIyOENFO0VvQnY4Q0Y7SUFDRSxnQlB6RDRCLEVBQUE7RU9vQ2hDOztRcEJnK0NFO0VvQjU5Q0Y7SUFDRSxjQUFjO0lBQ2QsZ0JQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQVN4Qjs7VXBCdTlDRTtFb0JuOUNGO0lBQ0Usc0JQekQ0QixFQUFBO0VPb0NoQzs7UXBCNCtDRTtFb0J4K0NGO0lBQ0UsY0FBYztJQUNkLGdCUDFDOEI7SU8yQzlCLGVBQXdCLEVBQUE7RUFTeEI7O1VwQm0rQ0U7RW9CLzlDRjtJQUNFLHNCUHpENEIsRUFBQTtFT29DaEM7O1FwQncvQ0U7RW9CcC9DRjtJQUNFLGNBQWM7SUFDZCxVUDFDOEI7SU8yQzlCLGVBQXdCLEVBQUE7RUFTeEI7O1VwQisrQ0U7RW9CMytDRjtJQUNFLGdCUHpENEIsRUFBQTtFT29DaEM7O1FwQm9nREU7RW9CaGdERjtJQUNFLGNBQWM7SUFDZCxnQlAxQzhCO0lPMkM5QixlQUF3QixFQUFBO0VBU3hCOztVcEIyL0NFO0VvQnYvQ0Y7SUFDRSxzQlB6RDRCLEVBQUE7RU9vQ2hDOztRcEJnaERFO0VvQjVnREY7SUFDRSxjQUFjO0lBQ2QsZ0JQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQVN4Qjs7VXBCdWdERTtFb0JuZ0RGO0lBQ0Usc0JQekQ0QixFQUFBO0VPb0NoQzs7UXBCNGhERTtFb0J4aERGO0lBQ0UsY0FBYztJQUNkLFdQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQXVCMUI7O1FwQnFnREU7RW9CamdERjtJQUNFLG9CQVBtQixFQUFBO0VBRXJCOztRcEIwZ0RFO0VvQnRnREY7SUFDRSxtQkFQMkIsRUFBQTtFQUU3Qjs7UXBCK2dERTtFb0IzZ0RGO0lBQ0UsdUJBUHVDLEVBQUE7RUFFekM7O1FwQm9oREU7RW9CaGhERjtJQUNFLHFCQVBpRCxFQUFBO0VBRW5EOztRcEJ5aERFO0VvQnJoREY7SUFDRSxxQkFQMkQsRUFBQTtFQWU3RDs7UXBCaWhERTtFb0I3Z0RGO0lBQ0Usc0JBUGlCLEVBQUE7RUFFbkI7O1FwQnNoREU7RW9CbGhERjtJQUNFLHVCQVB5QixFQUFBO0VBRTNCOztRcEIyaERFO0VvQnZoREY7SUFDRSw4QkFQd0MsRUFBQTtFQUUxQzs7UXBCZ2lERTtFb0I1aERGO0lBQ0UsNkJBUHNELEVBQUE7RUFFeEQ7O1FwQnFpREU7RW9CamlERjtJQUNFLDZCQVBvRSxFQUFBO0VBRXRFOztRcEIwaURFO0VvQnRpREY7SUFDRSx5QkFQOEUsRUFBQTtFQWVoRjs7UXBCa2lERTtFb0I5aERGO0lBQ0UsZUFBZ0MsRUFBQTtFQUxsQzs7UXBCdWlERTtFb0JuaURGO0lBQ0UsZ0JBQWdDLEVBQUE7RUFLcEM7O01wQmtpREU7RW9COWhERjtJQUNFLFNBQVMsRUFBQTtFQUlYOztNcEI4aERFO0VvQjFoREY7SUFDRSxRQUFRLEVBQUE7RUFJVjs7TXBCMGhERTtFb0J0aERGO0lBQ0UsMkJBQTJCLEVBQUEsRUFDNUI7O0FUdENEO0VTcERFOztRcEJxbkRFO0VvQmpuREY7SUFDRSxjQUFjO0lBQ2QsZVAxQzhCO0lPMkM5QixlQUF3QixFQUFBO0VBU3hCOztVcEI0bURFO0VvQnhtREY7SUFDRSxxQlB6RDRCLEVBQUE7RU9vQ2hDOztRcEJpb0RFO0VvQjduREY7SUFDRSxjQUFjO0lBQ2QsZ0JQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQVN4Qjs7VXBCd25ERTtFb0JwbkRGO0lBQ0Usc0JQekQ0QixFQUFBO0VPb0NoQzs7UXBCNm9ERTtFb0J6b0RGO0lBQ0UsY0FBYztJQUNkLFVQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQVN4Qjs7VXBCb29ERTtFb0Job0RGO0lBQ0UsZ0JQekQ0QixFQUFBO0VPb0NoQzs7UXBCeXBERTtFb0JycERGO0lBQ0UsY0FBYztJQUNkLGdCUDFDOEI7SU8yQzlCLGVBQXdCLEVBQUE7RUFTeEI7O1VwQmdwREU7RW9CNW9ERjtJQUNFLHNCUHpENEIsRUFBQTtFT29DaEM7O1FwQnFxREU7RW9CanFERjtJQUNFLGNBQWM7SUFDZCxnQlAxQzhCO0lPMkM5QixlQUF3QixFQUFBO0VBU3hCOztVcEI0cERFO0VvQnhwREY7SUFDRSxzQlB6RDRCLEVBQUE7RU9vQ2hDOztRcEJpckRFO0VvQjdxREY7SUFDRSxjQUFjO0lBQ2QsVVAxQzhCO0lPMkM5QixlQUF3QixFQUFBO0VBU3hCOztVcEJ3cURFO0VvQnBxREY7SUFDRSxnQlB6RDRCLEVBQUE7RU9vQ2hDOztRcEI2ckRFO0VvQnpyREY7SUFDRSxjQUFjO0lBQ2QsZ0JQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQVN4Qjs7VXBCb3JERTtFb0JockRGO0lBQ0Usc0JQekQ0QixFQUFBO0VPb0NoQzs7UXBCeXNERTtFb0Jyc0RGO0lBQ0UsY0FBYztJQUNkLGdCUDFDOEI7SU8yQzlCLGVBQXdCLEVBQUE7RUFTeEI7O1VwQmdzREU7RW9CNXJERjtJQUNFLHNCUHpENEIsRUFBQTtFT29DaEM7O1FwQnF0REU7RW9CanRERjtJQUNFLGNBQWM7SUFDZCxVUDFDOEI7SU8yQzlCLGVBQXdCLEVBQUE7RUFTeEI7O1VwQjRzREU7RW9CeHNERjtJQUNFLGdCUHpENEIsRUFBQTtFT29DaEM7O1FwQml1REU7RW9CN3RERjtJQUNFLGNBQWM7SUFDZCxnQlAxQzhCO0lPMkM5QixlQUF3QixFQUFBO0VBU3hCOztVcEJ3dERFO0VvQnB0REY7SUFDRSxzQlB6RDRCLEVBQUE7RU9vQ2hDOztRcEI2dURFO0VvQnp1REY7SUFDRSxjQUFjO0lBQ2QsZ0JQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQVN4Qjs7VXBCb3VERTtFb0JodURGO0lBQ0Usc0JQekQ0QixFQUFBO0VPb0NoQzs7UXBCeXZERTtFb0JydkRGO0lBQ0UsY0FBYztJQUNkLFdQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQXVCMUI7O1FwQmt1REU7RW9COXRERjtJQUNFLG9CQVBtQixFQUFBO0VBRXJCOztRcEJ1dURFO0VvQm51REY7SUFDRSxtQkFQMkIsRUFBQTtFQUU3Qjs7UXBCNHVERTtFb0J4dURGO0lBQ0UsdUJBUHVDLEVBQUE7RUFFekM7O1FwQml2REU7RW9CN3VERjtJQUNFLHFCQVBpRCxFQUFBO0VBRW5EOztRcEJzdkRFO0VvQmx2REY7SUFDRSxxQkFQMkQsRUFBQTtFQWU3RDs7UXBCOHVERTtFb0IxdURGO0lBQ0Usc0JBUGlCLEVBQUE7RUFFbkI7O1FwQm12REU7RW9CL3VERjtJQUNFLHVCQVB5QixFQUFBO0VBRTNCOztRcEJ3dkRFO0VvQnB2REY7SUFDRSw4QkFQd0MsRUFBQTtFQUUxQzs7UXBCNnZERTtFb0J6dkRGO0lBQ0UsNkJBUHNELEVBQUE7RUFFeEQ7O1FwQmt3REU7RW9COXZERjtJQUNFLDZCQVBvRSxFQUFBO0VBRXRFOztRcEJ1d0RFO0VvQm53REY7SUFDRSx5QkFQOEUsRUFBQTtFQWVoRjs7UXBCK3ZERTtFb0IzdkRGO0lBQ0UsZUFBZ0MsRUFBQTtFQUxsQzs7UXBCb3dERTtFb0Jod0RGO0lBQ0UsZ0JBQWdDLEVBQUE7RUFLcEM7O01wQit2REU7RW9CM3ZERjtJQUNFLFNBQVMsRUFBQTtFQUlYOztNcEIydkRFO0VvQnZ2REY7SUFDRSxRQUFRLEVBQUE7RUFJVjs7TXBCdXZERTtFb0JudkRGO0lBQ0UsMkJBQTJCLEVBQUEsRUFDNUI7O0FUbEREO0VTeENFOztRcEJrMURFO0VvQjkwREY7SUFDRSxjQUFjO0lBQ2QsZVAxQzhCO0lPMkM5QixlQUF3QixFQUFBO0VBU3hCOztVcEJ5MERFO0VvQnIwREY7SUFDRSxxQlB6RDRCLEVBQUE7RU9vQ2hDOztRcEI4MURFO0VvQjExREY7SUFDRSxjQUFjO0lBQ2QsZ0JQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQVN4Qjs7VXBCcTFERTtFb0JqMURGO0lBQ0Usc0JQekQ0QixFQUFBO0VPb0NoQzs7UXBCMDJERTtFb0J0MkRGO0lBQ0UsY0FBYztJQUNkLFVQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQVN4Qjs7VXBCaTJERTtFb0I3MURGO0lBQ0UsZ0JQekQ0QixFQUFBO0VPb0NoQzs7UXBCczNERTtFb0JsM0RGO0lBQ0UsY0FBYztJQUNkLGdCUDFDOEI7SU8yQzlCLGVBQXdCLEVBQUE7RUFTeEI7O1VwQjYyREU7RW9CejJERjtJQUNFLHNCUHpENEIsRUFBQTtFT29DaEM7O1FwQms0REU7RW9COTNERjtJQUNFLGNBQWM7SUFDZCxnQlAxQzhCO0lPMkM5QixlQUF3QixFQUFBO0VBU3hCOztVcEJ5M0RFO0VvQnIzREY7SUFDRSxzQlB6RDRCLEVBQUE7RU9vQ2hDOztRcEI4NERFO0VvQjE0REY7SUFDRSxjQUFjO0lBQ2QsVVAxQzhCO0lPMkM5QixlQUF3QixFQUFBO0VBU3hCOztVcEJxNERFO0VvQmo0REY7SUFDRSxnQlB6RDRCLEVBQUE7RU9vQ2hDOztRcEIwNURFO0VvQnQ1REY7SUFDRSxjQUFjO0lBQ2QsZ0JQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQVN4Qjs7VXBCaTVERTtFb0I3NERGO0lBQ0Usc0JQekQ0QixFQUFBO0VPb0NoQzs7UXBCczZERTtFb0JsNkRGO0lBQ0UsY0FBYztJQUNkLGdCUDFDOEI7SU8yQzlCLGVBQXdCLEVBQUE7RUFTeEI7O1VwQjY1REU7RW9CejVERjtJQUNFLHNCUHpENEIsRUFBQTtFT29DaEM7O1FwQms3REU7RW9COTZERjtJQUNFLGNBQWM7SUFDZCxVUDFDOEI7SU8yQzlCLGVBQXdCLEVBQUE7RUFTeEI7O1VwQnk2REU7RW9CcjZERjtJQUNFLGdCUHpENEIsRUFBQTtFT29DaEM7O1FwQjg3REU7RW9CMTdERjtJQUNFLGNBQWM7SUFDZCxnQlAxQzhCO0lPMkM5QixlQUF3QixFQUFBO0VBU3hCOztVcEJxN0RFO0VvQmo3REY7SUFDRSxzQlB6RDRCLEVBQUE7RU9vQ2hDOztRcEIwOERFO0VvQnQ4REY7SUFDRSxjQUFjO0lBQ2QsZ0JQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQVN4Qjs7VXBCaThERTtFb0I3N0RGO0lBQ0Usc0JQekQ0QixFQUFBO0VPb0NoQzs7UXBCczlERTtFb0JsOURGO0lBQ0UsY0FBYztJQUNkLFdQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQXVCMUI7O1FwQis3REU7RW9CMzdERjtJQUNFLG9CQVBtQixFQUFBO0VBRXJCOztRcEJvOERFO0VvQmg4REY7SUFDRSxtQkFQMkIsRUFBQTtFQUU3Qjs7UXBCeThERTtFb0JyOERGO0lBQ0UsdUJBUHVDLEVBQUE7RUFFekM7O1FwQjg4REU7RW9CMThERjtJQUNFLHFCQVBpRCxFQUFBO0VBRW5EOztRcEJtOURFO0VvQi84REY7SUFDRSxxQkFQMkQsRUFBQTtFQWU3RDs7UXBCMjhERTtFb0J2OERGO0lBQ0Usc0JBUGlCLEVBQUE7RUFFbkI7O1FwQmc5REU7RW9CNThERjtJQUNFLHVCQVB5QixFQUFBO0VBRTNCOztRcEJxOURFO0VvQmo5REY7SUFDRSw4QkFQd0MsRUFBQTtFQUUxQzs7UXBCMDlERTtFb0J0OURGO0lBQ0UsNkJBUHNELEVBQUE7RUFFeEQ7O1FwQis5REU7RW9CMzlERjtJQUNFLDZCQVBvRSxFQUFBO0VBRXRFOztRcEJvK0RFO0VvQmgrREY7SUFDRSx5QkFQOEUsRUFBQTtFQWVoRjs7UXBCNDlERTtFb0J4OURGO0lBQ0UsZUFBZ0MsRUFBQTtFQUxsQzs7UXBCaStERTtFb0I3OURGO0lBQ0UsZ0JBQWdDLEVBQUE7RUFLcEM7O01wQjQ5REU7RW9CeDlERjtJQUNFLFNBQVMsRUFBQTtFQUlYOztNcEJ3OURFO0VvQnA5REY7SUFDRSxRQUFRLEVBQUE7RUFJVjs7TXBCbzlERTtFb0JoOURGO0lBQ0UsMkJBQTJCLEVBQUEsRUFDNUI7O0FUdEREO0VTcENFOztRcEIraUVFO0VvQjNpRUY7SUFDRSxjQUFjO0lBQ2QsZVAxQzhCO0lPMkM5QixlQUF3QixFQUFBO0VBU3hCOztVcEJzaUVFO0VvQmxpRUY7SUFDRSxxQlB6RDRCLEVBQUE7RU9vQ2hDOztRcEIyakVFO0VvQnZqRUY7SUFDRSxjQUFjO0lBQ2QsZ0JQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQVN4Qjs7VXBCa2pFRTtFb0I5aUVGO0lBQ0Usc0JQekQ0QixFQUFBO0VPb0NoQzs7UXBCdWtFRTtFb0Jua0VGO0lBQ0UsY0FBYztJQUNkLFVQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQVN4Qjs7VXBCOGpFRTtFb0IxakVGO0lBQ0UsZ0JQekQ0QixFQUFBO0VPb0NoQzs7UXBCbWxFRTtFb0Iva0VGO0lBQ0UsY0FBYztJQUNkLGdCUDFDOEI7SU8yQzlCLGVBQXdCLEVBQUE7RUFTeEI7O1VwQjBrRUU7RW9CdGtFRjtJQUNFLHNCUHpENEIsRUFBQTtFT29DaEM7O1FwQitsRUU7RW9CM2xFRjtJQUNFLGNBQWM7SUFDZCxnQlAxQzhCO0lPMkM5QixlQUF3QixFQUFBO0VBU3hCOztVcEJzbEVFO0VvQmxsRUY7SUFDRSxzQlB6RDRCLEVBQUE7RU9vQ2hDOztRcEIybUVFO0VvQnZtRUY7SUFDRSxjQUFjO0lBQ2QsVVAxQzhCO0lPMkM5QixlQUF3QixFQUFBO0VBU3hCOztVcEJrbUVFO0VvQjlsRUY7SUFDRSxnQlB6RDRCLEVBQUE7RU9vQ2hDOztRcEJ1bkVFO0VvQm5uRUY7SUFDRSxjQUFjO0lBQ2QsZ0JQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQVN4Qjs7VXBCOG1FRTtFb0IxbUVGO0lBQ0Usc0JQekQ0QixFQUFBO0VPb0NoQzs7UXBCbW9FRTtFb0IvbkVGO0lBQ0UsY0FBYztJQUNkLGdCUDFDOEI7SU8yQzlCLGVBQXdCLEVBQUE7RUFTeEI7O1VwQjBuRUU7RW9CdG5FRjtJQUNFLHNCUHpENEIsRUFBQTtFT29DaEM7O1FwQitvRUU7RW9CM29FRjtJQUNFLGNBQWM7SUFDZCxVUDFDOEI7SU8yQzlCLGVBQXdCLEVBQUE7RUFTeEI7O1VwQnNvRUU7RW9CbG9FRjtJQUNFLGdCUHpENEIsRUFBQTtFT29DaEM7O1FwQjJwRUU7RW9CdnBFRjtJQUNFLGNBQWM7SUFDZCxnQlAxQzhCO0lPMkM5QixlQUF3QixFQUFBO0VBU3hCOztVcEJrcEVFO0VvQjlvRUY7SUFDRSxzQlB6RDRCLEVBQUE7RU9vQ2hDOztRcEJ1cUVFO0VvQm5xRUY7SUFDRSxjQUFjO0lBQ2QsZ0JQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQVN4Qjs7VXBCOHBFRTtFb0IxcEVGO0lBQ0Usc0JQekQ0QixFQUFBO0VPb0NoQzs7UXBCbXJFRTtFb0IvcUVGO0lBQ0UsY0FBYztJQUNkLFdQMUM4QjtJTzJDOUIsZUFBd0IsRUFBQTtFQXVCMUI7O1FwQjRwRUU7RW9CeHBFRjtJQUNFLG9CQVBtQixFQUFBO0VBRXJCOztRcEJpcUVFO0VvQjdwRUY7SUFDRSxtQkFQMkIsRUFBQTtFQUU3Qjs7UXBCc3FFRTtFb0JscUVGO0lBQ0UsdUJBUHVDLEVBQUE7RUFFekM7O1FwQjJxRUU7RW9CdnFFRjtJQUNFLHFCQVBpRCxFQUFBO0VBRW5EOztRcEJnckVFO0VvQjVxRUY7SUFDRSxxQkFQMkQsRUFBQTtFQWU3RDs7UXBCd3FFRTtFb0JwcUVGO0lBQ0Usc0JBUGlCLEVBQUE7RUFFbkI7O1FwQjZxRUU7RW9CenFFRjtJQUNFLHVCQVB5QixFQUFBO0VBRTNCOztRcEJrckVFO0VvQjlxRUY7SUFDRSw4QkFQd0MsRUFBQTtFQUUxQzs7UXBCdXJFRTtFb0JuckVGO0lBQ0UsNkJBUHNELEVBQUE7RUFFeEQ7O1FwQjRyRUU7RW9CeHJFRjtJQUNFLDZCQVBvRSxFQUFBO0VBRXRFOztRcEJpc0VFO0VvQjdyRUY7SUFDRSx5QkFQOEUsRUFBQTtFQWVoRjs7UXBCeXJFRTtFb0JyckVGO0lBQ0UsZUFBZ0MsRUFBQTtFQUxsQzs7UXBCOHJFRTtFb0IxckVGO0lBQ0UsZ0JBQWdDLEVBQUE7RUFLcEM7O01wQnlyRUU7RW9CcnJFRjtJQUNFLFNBQVMsRUFBQTtFQUlYOztNcEJxckVFO0VvQmpyRUY7SUFDRSxRQUFRLEVBQUE7RUFJVjs7TXBCaXJFRTtFb0I3cUVGO0lBQ0UsMkJBQTJCLEVBQUEsRUFDNUI7O0FDL0pMOzsrRXJCZzFFK0U7QXFCNTBFL0U7O0VyQiswRUU7QXFCMzBFRjtFVjRDSSxlVTNDZ0I7RVY0Q2hCLGVFOUIrQjtFRm1DL0Isc0JBQWdEO0VVaERsRCxjdkJVMkI7RXVCVDNCLHFDVExvQztFU01wQyxnQkFBZ0IsRUFBQTs7QUFHbEI7RVZxQ0ksZVVwQ2dCO0VWcUNoQixpQkU5QitCO0VGbUMvQixnQkFBZ0Q7RVV6Q2xELGN2QkcyQjtFdUJGM0IscUNUWm9DO0VTYXBDLGdCQUFnQjtFQUNoQix5QkFBeUI7RUFDekIsWUFBWSxFQUFBOztBQUdkO0VWNEJJLGVVM0JnQjtFVjRCaEIsZUU5QitCO0VGbUMvQixzQkFBZ0Q7RVVoQ2xELFl2QlorQjtFdUJhL0IscUNUckJvQztFU3NCcEMsZ0JBQWdCLEVBQUE7O0FBR2xCO0VWcUJJLGVVcEJnQjtFVnFCaEIsaUJFOUIrQjtFRm1DL0IsZ0JBQWdEO0VVekJsRCxZdkJuQitCO0V1Qm9CL0IscUNUNUJvQztFUzZCcEMsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtFQUN6QixZQUFZLEVBQUE7O0FBR2Q7RVZZSSxlVVhnQjtFVlloQixpQkU5QitCO0VGbUMvQixnQkFBZ0Q7RVVoQmxELGN2QmhDK0I7RXVCaUMvQixxQ1RyQ29DO0VTc0NwQyxnQkFBZ0I7RUFDaEIseUJBQXlCO0VBQ3pCLFlBQVksRUFBQTs7QUFJZDs7RXJCazFFRTtBcUI5MEVGOztFVkZJLGVVSWdCO0VWSGhCLGlCRTlCK0I7RUZtQy9CLGtCQUFnRDtFVURsRCxjdkJyQzJCO0V1QnNDM0IscUNUcERvQztFU3FEcEMsZ0JBQWdCLEVBQUE7O0FBR2xCO0VWVkksZVVXZ0I7RVZWaEIsaUJFOUIrQjtFRm1DL0Isa0JBQWdEO0VVTWxELGN2QjVDMkI7RXVCNkMzQixxQ1QzRG9DO0VTNERwQyxnQkFBZ0I7RUFDaEIseUJBQXlCO0VBQ3pCLFlBQVksRUFBQTs7QUFHZDtFVm5CSSxlVW9CZ0I7RVZuQmhCLGlCRTlCK0I7RUZtQy9CLGtCQUFnRDtFVWVsRCxZdkIzRCtCO0V1QjREL0IscUNUcEVvQztFU3FFcEMsZ0JBQWdCLEVBQUE7O0FBR2xCO0VWMUJJLGVVMkJnQjtFVjFCaEIsaUJFOUIrQjtFRm1DL0Isa0JBQWdEO0VVc0JsRCxZdkJsRStCO0V1Qm1FL0IscUNUM0VvQztFUzRFcEMsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtFQUN6QixZQUFZLEVBQUE7O0FBR2Q7RVZuQ0ksZVVvQ2dCO0VWbkNoQixpQkU5QitCO0VGbUMvQixrQkFBZ0Q7RVUrQmxELGN2Qi9FK0I7RXVCZ0YvQixxQ1RwRm9DO0VTcUZwQyxnQkFBZ0I7RUFDaEIseUJBQXlCO0VBQ3pCLFlBQVksRUFBQTs7QUFLZDs7RXJCbzFFRTtBcUJoMUVGOztFVmxESSxlVW9EZ0I7RVZuRGhCLGlCRTlCK0I7RUZtQy9CLHNCQUFnRDtFVStDbEQsY3ZCckYyQjtFdUJzRjNCLHFDVHBHb0M7RVNxR3BDLGdCQUFnQixFQUFBOztBQUdsQjtFVjFESSxlVTJEZ0I7RVYxRGhCLGlCRTlCK0I7RUZtQy9CLHNCQUFnRDtFVXNEbEQsWXZCbEcrQjtFdUJtRy9CLHFDVDNHb0M7RVM0R3BDLGdCQUFnQixFQUFBOztBQUdsQjtFVmpFSSxlVWtFZ0I7RVZqRWhCLGlCRTlCK0I7RUZtQy9CLHNCQUFnRDtFVTZEbEQsY3ZCaEc4QjtFdUJpRzlCLHFDVGxIb0M7RVNtSHBDLGdCQUFnQixFQUFBOztBQ3pIbEI7OytFdEJrOUUrRTtBc0I1OEUvRTs7RXRCKzhFRTtBc0IzOEVGO0VYMENJLGVXcENnQjtFWHFDaEIsaUJFOUIrQjtFRm1DL0Isc0JBQWdEO0VXekNsRCxvQkFBb0I7RUFDcEIscUJBQXFCO0VBQ3JCLGN4QkMyQjtFd0JBM0IsaUNWYjBDO0VVYzFDLHVCQUF1QjtFQUN2Qix5QkFBeUI7RUFDekIsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixnQkFBZ0IsRUFBQTtFWGdIZDtJVy9ISjtNQUVJLHFCQUFxQjtNQUNyQixXQUFXLEVBQUEsRUFpQmQ7RUFwQkQ7SUFrQkksbUJBQW1CLEVBQUE7O0FBS3ZCOztFdEIyOEVFO0FzQnY4RUY7RUFDRSxtQnhCWCtCO0V3QlkvQixjeEJuQjJCLEVBQUE7O0F5QnBCN0I7OytFdkJtL0UrRTtBdUI3K0UvRTs7RXZCZy9FRTtBdUI1K0VGO0VaMENJLGVZekNnQjtFWjBDaEIsaUJFOUIrQjtFRm1DL0Isc0JBQWdEO0VZOUNsRCxvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLDRCQUE0QixFQUFBO0VBSjlCO0lBT0ksV0FBVztJQUNYLFlBQVk7SUFDWixhQUFhLEVBQUE7RUFUakI7SUFhSSwwQkFBMEIsRUFBQTs7QUFLOUI7O0V2QjIrRUU7QXVCditFRjtFQUNFLGN6QmIyQjtFeUJjM0IsZ0JBQWdCLEVBQUE7RVp1RWQ7SVl6RUo7TUFNTSxjekJmMEIsRUFBQSxFeUJpQjdCOztBQUlIOztFdkJxK0VFO0F1QmorRUY7RUFDRSxjekI3QjJCO0V5QjhCM0IsZ0JBQWdCLEVBQUE7RVp1RGQ7SVl6REo7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RUFDRSxjN0RUeUIsRUFBQTs7QTZESTNCOztRM0Q4OU1FO0FGbDdNUjtFNkR2Q1EseUI3RFR5QixFQUFBOztBNkRJM0I7O1EzRG8rTUU7QTJEaCtNRjtFQUNFLGM3RFJ5QixFQUFBOztBNkRHM0I7O1EzRDArTUU7QTJEdCtNRjtFQUNFLHlCN0RSeUIsRUFBQTs7QTZERzNCOztRM0RnL01FO0EyRDUrTUY7RUFDRSxjN0RQc0IsRUFBQTs7QTZERXhCOztRM0RzL01FO0EyRGwvTUY7RUFDRSx5QjdEUHNCLEVBQUE7O0E2REV4Qjs7UTNENC9NRTtBMkR4L01GO0VBQ0UsYzdETnFCLEVBQUE7O0E2REN2Qjs7UTNEa2dORTtBMkQ5L01GO0VBQ0UseUI3RE5xQixFQUFBOztBNkRDdkI7O1EzRHdnTkU7QTJEcGdORjtFQUNFLGM3REh3QixFQUFBOztBNkRGMUI7O1EzRDhnTkU7QTJEMWdORjtFQUNFLHlCN0RId0IsRUFBQTs7QTZERjFCOztRM0RvaE5FO0EyRGhoTkY7RUFDRSxjN0RBeUIsRUFBQTs7QTZETDNCOztRM0QwaE5FO0EyRHRoTkY7RUFDRSx5QjdEQXlCLEVBQUE7O0E2REwzQjs7UTNEZ2lORTtBMkQ1aE5GO0VBQ0UsYzdEQ3lCLEVBQUE7O0E2RE4zQjs7UTNEc2lORTtBMkRsaU5GO0VBQ0UseUI3REN5QixFQUFBOztBNkROM0I7O1EzRDRpTkU7QTJEeGlORjtFQUNFLGM3REV5QixFQUFBOztBNkRQM0I7O1EzRGtqTkU7QTJEOWlORjtFQUNFLHlCN0RFeUIsRUFBQTs7QTZEUDNCOztRM0R3ak5FO0EyRHBqTkY7RUFDRSxjN0RHdUIsRUFBQTs7QTZEUnpCOztRM0Q4ak5FO0EyRDFqTkY7RUFDRSx5QjdER3VCLEVBQUE7O0E2RFJ6Qjs7UTNEb2tORTtBMkRoa05GO0VBQ0UsYzdETXlCLEVBQUE7O0E2RFgzQjs7UTNEMGtORTtBMkR0a05GO0VBQ0UseUI3RE15QixFQUFBOztBOERoQ2pDOzsrRTVEcW1OK0U7QTREam1OL0U7Ozs7RTVEc21ORTtBNEQ3bE5BOztJNURnbU5FO0E0RDVsTkY7RUFDRSxnQ0FBcUM7RUFBRSxNQUFBO0VBQ3ZDLG1CQUFZO0tBQVosZ0JBQVksRUFBQTs7QUFOZDs7STVEd21ORTtBNERwbU5GO0VBQ0UsbUNBQXFDO0VBQUUsTUFBQTtFQUN2QyxzQkFBWTtLQUFaLG1CQUFZLEVBQUE7O0FBTmQ7O0k1RGduTkU7QTRENW1ORjtFQUNFLGlDQUFxQztFQUFFLE1BQUE7RUFDdkMsb0JBQVk7S0FBWixpQkFBWSxFQUFBOztBQU5kOztJNUR3bk5FO0E0RHBuTkY7RUFDRSxnQ0FBcUM7RUFBRSxNQUFBO0VBQ3ZDLG1CQUFZO0tBQVosZ0JBQVksRUFBQTs7QUFOZDs7STVEZ29ORTtBNEQ1bk5GO0VBQ0Usc0NBQXFDO0VBQUUsTUFBQTtFQUN2Qyx5QkFBWTtLQUFaLHNCQUFZLEVBQUE7O0FDbkJoQjs7K0U3RHFwTitFO0E2RGpwTi9FOztFN0RvcE5FO0E2RC9vTkE7RUFDRSxnQkFGa0IsRUFBQTs7QUFDcEI7RUFDRSxrQkFGNEIsRUFBQTs7QUFDOUI7RUFDRSxrQkFGc0MsRUFBQTs7QUFDeEM7RUFDRSxlQUY2QyxFQUFBOztBQUMvQztFQUNFLGdCQUZxRCxFQUFBOztBQ1J6RDs7K0U5RDBxTitFO0E4RHRxTi9FOztFOUR5cU5FO0E4RDFwTkY7O0U5RDZwTkU7QThEdHBOSTtFbkQwQkYsZUN6Q1E7RUQwQ1IsZUU5QitCO0VGbUMvQixzQkFBZ0QsRUFBQTs7QW1EaEM5QztFbkQwQkYsZUN4Q1E7RUR5Q1IsaUJFOUIrQjtFRm1DL0Isa0JBQWdELEVBQUE7O0FtRGhDOUM7RW5EMEJGLGVDdkNRO0VEd0NSLGlCRTlCK0I7RUZtQy9CLHNCQUFnRCxFQUFBOztBbURoQzlDO0VuRDBCRixlQ3RDUTtFRHVDUixpQkU5QitCO0VGbUMvQixzQkFBZ0QsRUFBQTs7QW1EaEM5QztFbkQwQkYsZUNyQ1E7RURzQ1IsZUU5QitCO0VGbUMvQixrQkFBZ0QsRUFBQTs7QW1EaEM5QztFbkQwQkYsZUNwQ1E7RURxQ1IsaUJFOUIrQjtFRm1DL0Isc0JBQWdELEVBQUE7O0FtRGhDOUM7RW5EMEJGLGVDbkNPO0VEb0NQLGlCRTlCK0I7RUZtQy9CLHNCQUFnRCxFQUFBOztBQStFaEQ7RW1EL0dFO0luRDBCRixlQ3pDUTtJRDBDUixlRTlCK0I7SUZtQy9CLHNCQUFnRCxFQUFBO0VtRGhDOUM7SW5EMEJGLGVDeENRO0lEeUNSLGlCRTlCK0I7SUZtQy9CLGtCQUFnRCxFQUFBO0VtRGhDOUM7SW5EMEJGLGVDdkNRO0lEd0NSLGlCRTlCK0I7SUZtQy9CLHNCQUFnRCxFQUFBO0VtRGhDOUM7SW5EMEJGLGVDdENRO0lEdUNSLGlCRTlCK0I7SUZtQy9CLHNCQUFnRCxFQUFBO0VtRGhDOUM7SW5EMEJGLGVDckNRO0lEc0NSLGVFOUIrQjtJRm1DL0Isa0JBQWdELEVBQUE7RW1EaEM5QztJbkQwQkYsZUNwQ1E7SURxQ1IsaUJFOUIrQjtJRm1DL0Isc0JBQWdELEVBQUE7RW1EaEM5QztJbkQwQkYsZUNuQ087SURvQ1AsaUJFOUIrQjtJRm1DL0Isc0JBQWdELEVBQUEsRW1EOUI3Qzs7QW5ENkZIO0VtRC9GRTtJbkQwQkYsZUN6Q1E7SUQwQ1IsZUU5QitCO0lGbUMvQixzQkFBZ0QsRUFBQTtFbURoQzlDO0luRDBCRixlQ3hDUTtJRHlDUixpQkU5QitCO0lGbUMvQixrQkFBZ0QsRUFBQTtFbURoQzlDO0luRDBCRixlQ3ZDUTtJRHdDUixpQkU5QitCO0lGbUMvQixzQkFBZ0QsRUFBQTtFbURoQzlDO0luRDBCRixlQ3RDUTtJRHVDUixpQkU5QitCO0lGbUMvQixzQkFBZ0QsRUFBQTtFbURoQzlDO0luRDBCRixlQ3JDUTtJRHNDUixlRTlCK0I7SUZtQy9CLGtCQUFnRCxFQUFBO0VtRGhDOUM7SW5EMEJGLGVDcENRO0lEcUNSLGlCRTlCK0I7SUZtQy9CLHNCQUFnRCxFQUFBO0VtRGhDOUM7SW5EMEJGLGVDbkNPO0lEb0NQLGlCRTlCK0I7SUZtQy9CLHNCQUFnRCxFQUFBLEVtRDlCN0M7O0FuRGlGSDtFbURuRkU7SW5EMEJGLGVDekNRO0lEMENSLGVFOUIrQjtJRm1DL0Isc0JBQWdELEVBQUE7RW1EaEM5QztJbkQwQkYsZUN4Q1E7SUR5Q1IsaUJFOUIrQjtJRm1DL0Isa0JBQWdELEVBQUE7RW1EaEM5QztJbkQwQkYsZUN2Q1E7SUR3Q1IsaUJFOUIrQjtJRm1DL0Isc0JBQWdELEVBQUE7RW1EaEM5QztJbkQwQkYsZUN0Q1E7SUR1Q1IsaUJFOUIrQjtJRm1DL0Isc0JBQWdELEVBQUE7RW1EaEM5QztJbkQwQkYsZUNyQ1E7SURzQ1IsZUU5QitCO0lGbUMvQixrQkFBZ0QsRUFBQTtFbURoQzlDO0luRDBCRixlQ3BDUTtJRHFDUixpQkU5QitCO0lGbUMvQixzQkFBZ0QsRUFBQTtFbURoQzlDO0luRDBCRixlQ25DTztJRG9DUCxpQkU5QitCO0lGbUMvQixzQkFBZ0QsRUFBQSxFbUQ5QjdDOztBbkQ2RUg7RW1EL0VFO0luRDBCRixlQ3pDUTtJRDBDUixlRTlCK0I7SUZtQy9CLHNCQUFnRCxFQUFBO0VtRGhDOUM7SW5EMEJGLGVDeENRO0lEeUNSLGlCRTlCK0I7SUZtQy9CLGtCQUFnRCxFQUFBO0VtRGhDOUM7SW5EMEJGLGVDdkNRO0lEd0NSLGlCRTlCK0I7SUZtQy9CLHNCQUFnRCxFQUFBO0VtRGhDOUM7SW5EMEJGLGVDdENRO0lEdUNSLGlCRTlCK0I7SUZtQy9CLHNCQUFnRCxFQUFBO0VtRGhDOUM7SW5EMEJGLGVDckNRO0lEc0NSLGVFOUIrQjtJRm1DL0Isa0JBQWdELEVBQUE7RW1EaEM5QztJbkQwQkYsZUNwQ1E7SURxQ1IsaUJFOUIrQjtJRm1DL0Isc0JBQWdELEVBQUE7RW1EaEM5QztJbkQwQkYsZUNuQ087SURvQ1AsaUJFOUIrQjtJRm1DL0Isc0JBQWdELEVBQUEsRW1EOUI3Qzs7QUFNUDs7RTlENHlORTtBOERyeU5JO0VBQ0UsZ0JBRm9CLEVBQUE7O0FBQ3RCO0VBQ0UsaUJBRjJCLEVBQUE7O0FBQzdCO0VBQ0Usa0JBRm1DLEVBQUE7O0FuRGlHdkM7RW1EaEdFO0lBQ0UsZ0JBRm9CLEVBQUE7RUFDdEI7SUFDRSxpQkFGMkIsRUFBQTtFQUM3QjtJQUNFLGtCQUZtQyxFQUFBLEVBR3BDOztBbkQ4RUg7RW1EaEZFO0lBQ0UsZ0JBRm9CLEVBQUE7RUFDdEI7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QixFQUFBO0VBQzVCO0lBQ0UseUJBRnFDLEVBQUE7RUFDdkM7SUFDRSx5QkFGZ0QsRUFBQTtFQUNsRDtJQUNFLG9CQUZzRCxFQUFBO0VBQ3hEO0lBQ0UsMEJBRmtFLEVBQUEsRUFHbkU7O0FDN0VQOzsrRS9ENGlPK0U7QStEcmlPN0U7RUFDRSxrQkFBZSxFQUFBOztBQURqQjtFQUNFLGtCQUFlLEVBQUE7O0FBRGpCO0VBQ0UsbUJBQWUsRUFBQTs7QUFEakI7RUFDRSxtQkFBZSxFQUFBOztBQURqQjtFQUNFLG1CQUFlLEVBQUE7O0FBRGpCO0VBQ0UsbUJBQWUsRUFBQTs7QUFEakI7RUFDRSxtQkFBZSxFQUFBOztBQURqQjtFQUNFLG1CQUFlLEVBQUE7O0FBRGpCO0VBQ0UsbUJBQWUsRUFBQTs7QUFEakI7RUFDRSxtQkFBZSxFQUFBOztBQURqQjtFQUNFLG1CQUFlLEVBQUE7O0FDUm5COzsrRWhFZ2xPK0U7QWdFNWtPL0U7O0VoRStrT0U7QWdFMWtPQTtFQUNFLFVDRkssRUFBQTs7QURDUDtFQUNFLFdDRE0sRUFBQTs7QURBUjtFQUNFLFdDQU0sRUFBQTs7QUREUjtFQUNFLFdDQ00sRUFBQTs7QURGUjtFQUNFLFdDRU0sRUFBQTs7QURIUjtFQUNFLFdDR00sRUFBQTs7QURKUjtFQUNFLFdDSU0sRUFBQTs7QURMUjtFQUNFLFdDS00sRUFBQTs7QUROUjtFQUNFLFdDTU0sRUFBQTs7QURQUjtFQUNFLFdDT00sRUFBQTs7QURSUjtFQUNFLFlDUU8sRUFBQSIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIENvbG9yXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBDb2xvciBtYXAuXHJcbiRjb2xvcnM6IChcclxuICAnYmxhY2snOiAoXHJcbiAgICAnMTAwJzogcmdiYSgwLCAwLCAwLCAxKVxyXG4gICksXHJcbiAgJ2dyZXknOiAoXHJcbiAgICAnMjAwJzogcmdiYSgxNzEsIDE4NSwgMTk0LCAxKSxcclxuICAgICczMDAnOiByZ2JhKDEwNCwgMTMwLCAxNDcsIDEpXHJcbiAgKSxcclxuICAnd2hpdGUnOiAoXHJcbiAgICAnMTAwJzogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKVxyXG4gICksXHJcbiAgJ2JsdWUnOiAoXHJcbiAgICAnMTAwJzogcmdiYSgyMzYsIDI0NSwgMjUyLCAxKSxcclxuICAgICcyMDAnOiByZ2JhKDE4MywgMTk5LCAyMTAsIDEpLFxyXG4gICAgJzMwMCc6IHJnYmEoMjksIDY3LCA5MywgMSksXHJcbiAgICAnNDAwJzogcmdiYSg0LCA0NiwgNzUsIDEpXHJcbiAgKSxcclxuICAnb3JhbmdlJzogKFxyXG4gICAgJzIwMCc6IHJnYmEoMjU1LCAxMTAsIDQ0LCAxKVxyXG4gICksXHJcbiAgJ3B1cnBsZSc6IChcclxuICAgICcxMDAnOiByZ2JhKDI0MiwgMjQ2LCAyNDksIDEpLFxyXG4gICAgJzE1MCc6IHJnYmEoMjQ2LCAyNDUsIDI1MywgMSksXHJcbiAgICAnMjAwJzogcmdiYSgyMjIsIDIyMSwgMjQ1LCAxKSxcclxuICAgICczMDAnOiByZ2JhKDc0LCAzMiwgMTk4LCAxKVxyXG4gICksXHJcbiAgJ3JlZCc6IChcclxuICAgICcxMDAnOiByZ2JhKDI1NSwgMjAxLCAyMDEsIDEpXHJcbiAgKVxyXG4pO1xyXG5cclxuLy8gQ29sb3Igc2hvcnRoYW5kIHZhcmlhYmxlcy5cclxuJGNvbG9yLWJsYWNrLTEwMDogICAgICAgICBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2JsYWNrJyksICcxMDAnKTtcclxuXHJcbiRjb2xvci1ncmV5LTIwMDogICAgICAgICAgbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICdncmV5JyksICcyMDAnKTtcclxuJGNvbG9yLWdyZXktMzAwOiAgICAgICAgICBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2dyZXknKSwgJzMwMCcpO1xyXG5cclxuJGNvbG9yLXdoaXRlLTEwMDogICAgICAgICBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ3doaXRlJyksICcxMDAnKTtcclxuXHJcbiRjb2xvci1ibHVlLTEwMDogICAgICAgICAgbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICdibHVlJyksICcxMDAnKTtcclxuJGNvbG9yLWJsdWUtMjAwOiAgICAgICAgICBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2JsdWUnKSwgJzIwMCcpO1xyXG4kY29sb3ItYmx1ZS0zMDA6ICAgICAgICAgIG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAnYmx1ZScpLCAnMzAwJyk7XHJcbiRjb2xvci1ibHVlLTQwMDogICAgICAgICAgbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICdibHVlJyksICc0MDAnKTtcclxuXHJcbiRjb2xvci1vcmFuZ2UtMjAwOiAgICAgICAgbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICdvcmFuZ2UnKSwgJzIwMCcpO1xyXG5cclxuJGNvbG9yLXB1cnBsZS0xMDA6ICAgICAgICBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ3B1cnBsZScpLCAnMTAwJyk7XHJcbiRjb2xvci1wdXJwbGUtMTUwOiAgICAgICAgbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICdwdXJwbGUnKSwgJzE1MCcpO1xyXG4kY29sb3ItcHVycGxlLTIwMDogICAgICAgIG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAncHVycGxlJyksICcyMDAnKTtcclxuJGNvbG9yLXB1cnBsZS0zMDA6ICAgICAgICBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ3B1cnBsZScpLCAnMzAwJyk7XHJcblxyXG4kY29sb3ItcmVkLTEwMDogICAgICAgICAgIG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAncmVkJyksICcxMDAnKTtcclxuXHJcbiRjb2xvci1ncmFkaWVudC1wdXJwbGU6ICAgbGluZWFyLWdyYWRpZW50KDIyNC43ZGVnLCAjOGIyZGU5IDAlLCAjMGIxNGEzIDEwMCUpO1xyXG4kY29sb3ItZ3JhZGllbnQtb3JhbmdlOiAgIGxpbmVhci1ncmFkaWVudCgyMjQuMzZkZWcsICNmZmMwMDAgMCUsICNmZjZlMmMgMTAwJSk7XHJcbiRjb2xvci1ncmFkaWVudC1ncmVlbjogICAgbGluZWFyLWdyYWRpZW50KDIyNC43ZGVnLCAjMDBkNjYwIDAlLCAjMDBiZmRmIDEwMCUpO1xyXG4kY29sb3ItZ3JhZGllbnQtcGluazogICAgIGxpbmVhci1ncmFkaWVudCgyMjQuN2RlZywgI2Y1MmZhZiAwJSwgI2ZmMzAzMCAxMDAlKTs7XHJcblxyXG5cclxuLy9CYWNrZ3JvdW5kIGNvbG9yIHNldHRpbmdzLlxyXG4uYmFja2dyb3VuZC1jb2xvci1ibHVlLTEwMCB7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLWJsdWUtMTAwO1xyXG59XHJcblxyXG4uYmFja2dyb3VuZC1jb2xvci13aGl0ZSB7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlLTEwMDtcclxufVxyXG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXHJcblxyXG4vKiBEb2N1bWVudFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cclxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXHJcbiAqL1xyXG5cclxuaHRtbCB7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cclxuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cclxufVxyXG5cclxuLyogU2VjdGlvbnNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuYm9keSB7XHJcbiAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4vKipcclxuICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXHJcbiAqL1xyXG5cclxubWFpbiB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXHJcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXHJcbiAqL1xyXG5cclxuaDEge1xyXG4gIGZvbnQtc2l6ZTogMmVtO1xyXG4gIG1hcmdpbjogMC42N2VtIDA7XHJcbn1cclxuXHJcbi8qIEdyb3VwaW5nIGNvbnRlbnRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxyXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cclxuICovXHJcblxyXG5ociB7XHJcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cclxuICBoZWlnaHQ6IDA7IC8qIDEgKi9cclxuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cclxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbnByZSB7XHJcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXHJcbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cclxufVxyXG5cclxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXHJcbiAqL1xyXG5cclxuYSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxyXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxyXG4gKi9cclxuXHJcbmFiYnJbdGl0bGVdIHtcclxuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXHJcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cclxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXHJcbiAqL1xyXG5cclxuYixcclxuc3Ryb25nIHtcclxuICBmb250LXdlaWdodDogYm9sZGVyO1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cclxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbmNvZGUsXHJcbmtiZCxcclxuc2FtcCB7XHJcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXHJcbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbnNtYWxsIHtcclxuICBmb250LXNpemU6IDgwJTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxyXG4gKiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuc3ViLFxyXG5zdXAge1xyXG4gIGZvbnQtc2l6ZTogNzUlO1xyXG4gIGxpbmUtaGVpZ2h0OiAwO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbn1cclxuXHJcbnN1YiB7XHJcbiAgYm90dG9tOiAtMC4yNWVtO1xyXG59XHJcblxyXG5zdXAge1xyXG4gIHRvcDogLTAuNWVtO1xyXG59XHJcblxyXG4vKiBFbWJlZGRlZCBjb250ZW50XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cclxuICovXHJcblxyXG5pbWcge1xyXG4gIGJvcmRlci1zdHlsZTogbm9uZTtcclxufVxyXG5cclxuLyogRm9ybXNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cclxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxyXG4gKi9cclxuXHJcbmJ1dHRvbixcclxuaW5wdXQsXHJcbm9wdGdyb3VwLFxyXG5zZWxlY3QsXHJcbnRleHRhcmVhIHtcclxuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xyXG4gIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXHJcbiAgbWFyZ2luOiAwOyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cclxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cclxuICovXHJcblxyXG5idXR0b24sXHJcbmlucHV0IHsgLyogMSAqL1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXHJcbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cclxuICovXHJcblxyXG5idXR0b24sXHJcbnNlbGVjdCB7IC8qIDEgKi9cclxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXHJcbiAqL1xyXG5cclxuYnV0dG9uLFxyXG5bdHlwZT1cImJ1dHRvblwiXSxcclxuW3R5cGU9XCJyZXNldFwiXSxcclxuW3R5cGU9XCJzdWJtaXRcIl0ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cclxuICovXHJcblxyXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXHJcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxyXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxyXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XHJcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXHJcbiAqL1xyXG5cclxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxyXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcclxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcclxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xyXG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cclxuICovXHJcblxyXG5maWVsZHNldCB7XHJcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cclxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxyXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XHJcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbmxlZ2VuZCB7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xyXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXHJcbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cclxuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cclxuICBwYWRkaW5nOiAwOyAvKiAzICovXHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xyXG59XHJcblxyXG4vKipcclxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cclxuICovXHJcblxyXG5wcm9ncmVzcyB7XHJcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXHJcbiAqL1xyXG5cclxudGV4dGFyZWEge1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXHJcbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cclxuICovXHJcblxyXG5bdHlwZT1cImNoZWNrYm94XCJdLFxyXG5bdHlwZT1cInJhZGlvXCJdIHtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXHJcbiAgcGFkZGluZzogMDsgLyogMiAqL1xyXG59XHJcblxyXG4vKipcclxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxyXG4gKi9cclxuXHJcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxyXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXHJcbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxyXG4gKi9cclxuXHJcblt0eXBlPVwic2VhcmNoXCJdIHtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xyXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXHJcbiAqL1xyXG5cclxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXHJcbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cclxuICovXHJcblxyXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xyXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cclxufVxyXG5cclxuLyogSW50ZXJhY3RpdmVcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXHJcbiAqL1xyXG5cclxuZGV0YWlscyB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi8qXHJcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cclxuICovXHJcblxyXG5zdW1tYXJ5IHtcclxuICBkaXNwbGF5OiBsaXN0LWl0ZW07XHJcbn1cclxuXHJcbi8qIE1pc2NcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXHJcbiAqL1xyXG5cclxudGVtcGxhdGUge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cclxuICovXHJcblxyXG5baGlkZGVuXSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG4iLCIuYmFja2dyb3VuZC1jb2xvci1ibHVlLTEwMCB7XG4gIGJhY2tncm91bmQ6ICNlY2Y1ZmM7IH1cblxuLmJhY2tncm91bmQtY29sb3Itd2hpdGUge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTsgfVxuXG4vKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG4vKiBEb2N1bWVudFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cclxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXHJcbiAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqLyB9XG5cbi8qIFNlY3Rpb25zXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyoqXHJcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxyXG4gKi9cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcclxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxyXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxyXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXHJcbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxyXG4gKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDEgKi9cbiAgaGVpZ2h0OiAwO1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAvKiAyICovIH1cblxuLyoqXHJcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cclxuICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cclxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyoqXHJcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXHJcbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXHJcbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgLyogMiAqLyB9XG5cbi8qKlxyXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxyXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyOyB9XG5cbi8qKlxyXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKipcclxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKipcclxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXHJcbiAqIGFsbCBicm93c2Vycy5cclxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cclxuICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7IH1cblxuLyogRm9ybXNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cclxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxyXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcclxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXHJcbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXHJcbiAqL1xuYnV0dG9uLFxuaW5wdXQge1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxyXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cclxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxyXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXHJcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXHJcbiAqL1xuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgfVxuXG4vKipcclxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cclxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDsgfVxuXG4vKipcclxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxyXG4gKi9cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0OyB9XG5cbi8qKlxyXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXHJcbiAqL1xuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07IH1cblxuLyoqXHJcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXHJcbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cclxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxyXG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cclxuICovXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlO1xuICAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIC8qIDEgKi8gfVxuXG4vKipcclxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cclxuICovXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG4vKipcclxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXHJcbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcclxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXHJcbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cclxuICovXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxyXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXHJcbiAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4vKipcclxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXHJcbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxyXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC8qIDIgKi8gfVxuXG4vKipcclxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxyXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxyXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxyXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXHJcbiAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi8gfVxuXG4vKiBJbnRlcmFjdGl2ZVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cclxuICovXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcclxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07IH1cblxuLyogTWlzY1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cclxuICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyoqXHJcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxyXG4gKi9cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4udWktdGltZXBpY2tlci13cmFwcGVyIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgbWF4LWhlaWdodDogMTUwcHg7XG4gIHdpZHRoOiA2LjVlbTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgLW1vei1ib3gtc2hhZG93OiAwIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgYm94LXNoYWRvdzogMCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHotaW5kZXg6IDEwMDUyO1xuICBtYXJnaW46IDA7IH1cblxuLnVpLXRpbWVwaWNrZXItd3JhcHBlci51aS10aW1lcGlja2VyLXdpdGgtZHVyYXRpb24ge1xuICB3aWR0aDogMTNlbTsgfVxuXG4udWktdGltZXBpY2tlci13cmFwcGVyLnVpLXRpbWVwaWNrZXItd2l0aC1kdXJhdGlvbi51aS10aW1lcGlja2VyLXN0ZXAtMzAsXG4udWktdGltZXBpY2tlci13cmFwcGVyLnVpLXRpbWVwaWNrZXItd2l0aC1kdXJhdGlvbi51aS10aW1lcGlja2VyLXN0ZXAtNjAge1xuICB3aWR0aDogMTFlbTsgfVxuXG4udWktdGltZXBpY2tlci1saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi51aS10aW1lcGlja2VyLWR1cmF0aW9uIHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgY29sb3I6ICM4ODg7IH1cblxuLnVpLXRpbWVwaWNrZXItbGlzdDpob3ZlciAudWktdGltZXBpY2tlci1kdXJhdGlvbiB7XG4gIGNvbG9yOiAjODg4OyB9XG5cbi51aS10aW1lcGlja2VyLWxpc3QgbGkge1xuICBwYWRkaW5nOiAzcHggMCAzcHggNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNvbG9yOiAjMDAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7IH1cblxuLnVpLXRpbWVwaWNrZXItbGlzdDpob3ZlciAudWktdGltZXBpY2tlci1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbmxpLnVpLXRpbWVwaWNrZXItc2VsZWN0ZWQsXG4udWktdGltZXBpY2tlci1saXN0IGxpOmhvdmVyLFxuLnVpLXRpbWVwaWNrZXItbGlzdCAudWktdGltZXBpY2tlci1zZWxlY3RlZDpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICMxOTgwRUM7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbmxpLnVpLXRpbWVwaWNrZXItc2VsZWN0ZWQgLnVpLXRpbWVwaWNrZXItZHVyYXRpb24sXG4udWktdGltZXBpY2tlci1saXN0IGxpOmhvdmVyIC51aS10aW1lcGlja2VyLWR1cmF0aW9uIHtcbiAgY29sb3I6ICNjY2M7IH1cblxuLnVpLXRpbWVwaWNrZXItbGlzdCBsaS51aS10aW1lcGlja2VyLWRpc2FibGVkLFxuLnVpLXRpbWVwaWNrZXItbGlzdCBsaS51aS10aW1lcGlja2VyLWRpc2FibGVkOmhvdmVyLFxuLnVpLXRpbWVwaWNrZXItbGlzdCBsaS51aS10aW1lcGlja2VyLXNlbGVjdGVkLnVpLXRpbWVwaWNrZXItZGlzYWJsZWQge1xuICBjb2xvcjogIzg4ODtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi51aS10aW1lcGlja2VyLWxpc3QgbGkudWktdGltZXBpY2tlci1kaXNhYmxlZDpob3Zlcixcbi51aS10aW1lcGlja2VyLWxpc3QgbGkudWktdGltZXBpY2tlci1zZWxlY3RlZC51aS10aW1lcGlja2VyLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZDogI2YyZjJmMjsgfVxuXG4vKiBNYWduaWZpYyBQb3B1cCBDU1MgKi9cbi5tZnAtYmcge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDEwNDI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYmFja2dyb3VuZDogIzBiMGIwYjtcbiAgb3BhY2l0eTogMC44OyB9XG5cbi5tZnAtd3JhcCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTA0MztcbiAgcG9zaXRpb246IGZpeGVkO1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5tZnAtY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcGFkZGluZzogMCA4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLm1mcC1jb250YWluZXI6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi5tZnAtYWxpZ24tdG9wIC5tZnAtY29udGFpbmVyOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1mcC1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB6LWluZGV4OiAxMDQ1OyB9XG5cbi5tZnAtaW5saW5lLWhvbGRlciAubWZwLWNvbnRlbnQsXG4ubWZwLWFqYXgtaG9sZGVyIC5tZnAtY29udGVudCB7XG4gIHdpZHRoOiAxMDAlO1xuICBjdXJzb3I6IGF1dG87IH1cblxuLm1mcC1hamF4LWN1ciB7XG4gIGN1cnNvcjogcHJvZ3Jlc3M7IH1cblxuLm1mcC16b29tLW91dC1jdXIsIC5tZnAtem9vbS1vdXQtY3VyIC5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtY2xvc2Uge1xuICBjdXJzb3I6IC1tb3otem9vbS1vdXQ7XG4gIGN1cnNvcjogLXdlYmtpdC16b29tLW91dDtcbiAgY3Vyc29yOiB6b29tLW91dDsgfVxuXG4ubWZwLXpvb20ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGN1cnNvcjogLXdlYmtpdC16b29tLWluO1xuICBjdXJzb3I6IC1tb3otem9vbS1pbjtcbiAgY3Vyc29yOiB6b29tLWluOyB9XG5cbi5tZnAtYXV0by1jdXJzb3IgLm1mcC1jb250ZW50IHtcbiAgY3Vyc29yOiBhdXRvOyB9XG5cbi5tZnAtY2xvc2UsXG4ubWZwLWFycm93LFxuLm1mcC1wcmVsb2FkZXIsXG4ubWZwLWNvdW50ZXIge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuXG4ubWZwLWxvYWRpbmcubWZwLWZpZ3VyZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1mcC1oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5tZnAtcHJlbG9hZGVyIHtcbiAgY29sb3I6ICNDQ0M7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IC0wLjhlbTtcbiAgbGVmdDogOHB4O1xuICByaWdodDogOHB4O1xuICB6LWluZGV4OiAxMDQ0OyB9XG4gIC5tZnAtcHJlbG9hZGVyIGEge1xuICAgIGNvbG9yOiAjQ0NDOyB9XG4gICAgLm1mcC1wcmVsb2FkZXIgYTpob3ZlciB7XG4gICAgICBjb2xvcjogI0ZGRjsgfVxuXG4ubWZwLXMtcmVhZHkgLm1mcC1wcmVsb2FkZXIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZnAtcy1lcnJvciAubWZwLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbmJ1dHRvbi5tZnAtY2xvc2UsIGJ1dHRvbi5tZnAtYXJyb3cge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdXRsaW5lOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICB6LWluZGV4OiAxMDQ2O1xuICBib3gtc2hhZG93OiBub25lO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgfVxuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7IH1cblxuLm1mcC1jbG9zZSB7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGxpbmUtaGVpZ2h0OiA0NHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBvcGFjaXR5OiAwLjY1O1xuICBwYWRkaW5nOiAwIDAgMThweCAxMHB4O1xuICBjb2xvcjogI0ZGRjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDI4cHg7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgQmFza2VydmlsbGUsIG1vbm9zcGFjZTsgfVxuICAubWZwLWNsb3NlOmhvdmVyLCAubWZwLWNsb3NlOmZvY3VzIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5tZnAtY2xvc2U6YWN0aXZlIHtcbiAgICB0b3A6IDFweDsgfVxuXG4ubWZwLWNsb3NlLWJ0bi1pbiAubWZwLWNsb3NlIHtcbiAgY29sb3I6ICMzMzM7IH1cblxuLm1mcC1pbWFnZS1ob2xkZXIgLm1mcC1jbG9zZSxcbi5tZnAtaWZyYW1lLWhvbGRlciAubWZwLWNsb3NlIHtcbiAgY29sb3I6ICNGRkY7XG4gIHJpZ2h0OiAtNnB4O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgcGFkZGluZy1yaWdodDogNnB4O1xuICB3aWR0aDogMTAwJTsgfVxuXG4ubWZwLWNvdW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGNvbG9yOiAjQ0NDO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5tZnAtYXJyb3cge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9wYWNpdHk6IDAuNjU7XG4gIG1hcmdpbjogMDtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6IC01NXB4O1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogOTBweDtcbiAgaGVpZ2h0OiAxMTBweDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOyB9XG4gIC5tZnAtYXJyb3c6YWN0aXZlIHtcbiAgICBtYXJnaW4tdG9wOiAtNTRweDsgfVxuICAubWZwLWFycm93OmhvdmVyLCAubWZwLWFycm93OmZvY3VzIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5tZnAtYXJyb3c6YmVmb3JlLCAubWZwLWFycm93OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIG1hcmdpbi10b3A6IDM1cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDM1cHg7XG4gICAgYm9yZGVyOiBtZWRpdW0gaW5zZXQgdHJhbnNwYXJlbnQ7IH1cbiAgLm1mcC1hcnJvdzphZnRlciB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMTNweDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxM3B4O1xuICAgIHRvcDogOHB4OyB9XG4gIC5tZnAtYXJyb3c6YmVmb3JlIHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAyMXB4O1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIxcHg7XG4gICAgb3BhY2l0eTogMC43OyB9XG5cbi5tZnAtYXJyb3ctbGVmdCB7XG4gIGxlZnQ6IDA7IH1cbiAgLm1mcC1hcnJvdy1sZWZ0OmFmdGVyIHtcbiAgICBib3JkZXItcmlnaHQ6IDE3cHggc29saWQgI0ZGRjtcbiAgICBtYXJnaW4tbGVmdDogMzFweDsgfVxuICAubWZwLWFycm93LWxlZnQ6YmVmb3JlIHtcbiAgICBtYXJnaW4tbGVmdDogMjVweDtcbiAgICBib3JkZXItcmlnaHQ6IDI3cHggc29saWQgIzNGM0YzRjsgfVxuXG4ubWZwLWFycm93LXJpZ2h0IHtcbiAgcmlnaHQ6IDA7IH1cbiAgLm1mcC1hcnJvdy1yaWdodDphZnRlciB7XG4gICAgYm9yZGVyLWxlZnQ6IDE3cHggc29saWQgI0ZGRjtcbiAgICBtYXJnaW4tbGVmdDogMzlweDsgfVxuICAubWZwLWFycm93LXJpZ2h0OmJlZm9yZSB7XG4gICAgYm9yZGVyLWxlZnQ6IDI3cHggc29saWQgIzNGM0YzRjsgfVxuXG4ubWZwLWlmcmFtZS1ob2xkZXIge1xuICBwYWRkaW5nLXRvcDogNDBweDtcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7IH1cbiAgLm1mcC1pZnJhbWUtaG9sZGVyIC5tZnAtY29udGVudCB7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA5MDBweDsgfVxuICAubWZwLWlmcmFtZS1ob2xkZXIgLm1mcC1jbG9zZSB7XG4gICAgdG9wOiAtNDBweDsgfVxuXG4ubWZwLWlmcmFtZS1zY2FsZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLXRvcDogNTYuMjUlOyB9XG4gIC5tZnAtaWZyYW1lLXNjYWxlciBpZnJhbWUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgYmFja2dyb3VuZDogIzAwMDsgfVxuXG4vKiBNYWluIGltYWdlIGluIHBvcHVwICovXG5pbWcubWZwLWltZyB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiA0MHB4IDAgNDBweDtcbiAgbWFyZ2luOiAwIGF1dG87IH1cblxuLyogVGhlIHNoYWRvdyBiZWhpbmQgdGhlIGltYWdlICovXG4ubWZwLWZpZ3VyZSB7XG4gIGxpbmUtaGVpZ2h0OiAwOyB9XG4gIC5tZnAtZmlndXJlOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDQwcHg7XG4gICAgYm90dG9tOiA0MHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB6LWluZGV4OiAtMTtcbiAgICBib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICBiYWNrZ3JvdW5kOiAjNDQ0OyB9XG4gIC5tZnAtZmlndXJlIHNtYWxsIHtcbiAgICBjb2xvcjogI0JEQkRCRDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7IH1cbiAgLm1mcC1maWd1cmUgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7IH1cblxuLm1mcC1ib3R0b20tYmFyIHtcbiAgbWFyZ2luLXRvcDogLTM2cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgY3Vyc29yOiBhdXRvOyB9XG5cbi5tZnAtdGl0bGUge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgY29sb3I6ICNGM0YzRjM7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgcGFkZGluZy1yaWdodDogMzZweDsgfVxuXG4ubWZwLWltYWdlLWhvbGRlciAubWZwLWNvbnRlbnQge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLm1mcC1nYWxsZXJ5IC5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtZmlndXJlIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDgwMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpLCBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiAzMDBweCkge1xuICAvKipcbiAgICAgICAqIFJlbW92ZSBhbGwgcGFkZGluZ3MgYXJvdW5kIHRoZSBpbWFnZSBvbiBzbWFsbCBzY3JlZW5cbiAgICAgICAqL1xuICAubWZwLWltZy1tb2JpbGUgLm1mcC1pbWFnZS1ob2xkZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5tZnAtaW1nLW1vYmlsZSBpbWcubWZwLWltZyB7XG4gICAgcGFkZGluZzogMDsgfVxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1maWd1cmU6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7IH1cbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtZmlndXJlIHNtYWxsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDsgfVxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1ib3R0b20tYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgYm90dG9tOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICB0b3A6IGF1dG87XG4gICAgcGFkZGluZzogM3B4IDVweDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAgIC5tZnAtaW1nLW1vYmlsZSAubWZwLWJvdHRvbS1iYXI6ZW1wdHkge1xuICAgICAgcGFkZGluZzogMDsgfVxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1jb3VudGVyIHtcbiAgICByaWdodDogNXB4O1xuICAgIHRvcDogM3B4OyB9XG4gIC5tZnAtaW1nLW1vYmlsZSAubWZwLWNsb3NlIHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7IH0gfVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA5MDBweCkge1xuICAubWZwLWFycm93IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC43NSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTsgfVxuICAubWZwLWFycm93LWxlZnQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwOyB9XG4gIC5tZnAtYXJyb3ctcmlnaHQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlOyB9XG4gIC5tZnAtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDZweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7IH0gfVxuXG4vKlxuICogIE93bCBDYXJvdXNlbCAtIENvcmVcbiAqL1xuLm93bC1jYXJvdXNlbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiBwb3NpdGlvbiByZWxhdGl2ZSBhbmQgei1pbmRleCBmaXggd2Via2l0IHJlbmRlcmluZyBmb250cyBpc3N1ZSAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7IH1cbiAgLm93bC1jYXJvdXNlbCAub3dsLXN0YWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLVk7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gICAgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLyogZml4IGZpcmVmb3ggYW5pbWF0aW9uIGdsaXRjaCAqLyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1zdGFnZTphZnRlciB7XG4gICAgY29udGVudDogXCIuXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGhlaWdodDogMDsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtc3RhZ2Utb3V0ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC8qIGZpeCBmb3IgZmxhc2hpbmcgYmFja2dyb3VuZCAqL1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtd3JhcHBlcixcbiAgLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0ge1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC1tcy1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYuZGlzYWJsZWQsXG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1kb3RzLmRpc2FibGVkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYgLm93bC1wcmV2LFxuICAub3dsLWNhcm91c2VsIC5vd2wtbmF2IC5vd2wtbmV4dCxcbiAgLm93bC1jYXJvdXNlbCAub3dsLWRvdCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYgYnV0dG9uLm93bC1wcmV2LFxuICAub3dsLWNhcm91c2VsIC5vd2wtbmF2IGJ1dHRvbi5vd2wtbmV4dCxcbiAgLm93bC1jYXJvdXNlbCBidXR0b24ub3dsLWRvdCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIGZvbnQ6IGluaGVyaXQ7IH1cbiAgLm93bC1jYXJvdXNlbC5vd2wtbG9hZGVkIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAub3dsLWNhcm91c2VsLm93bC1sb2FkaW5nIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLWhpZGRlbiB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAub3dsLWNhcm91c2VsLm93bC1yZWZyZXNoIC5vd2wtaXRlbSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLWRyYWcgLm93bC1pdGVtIHtcbiAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLm93bC1jYXJvdXNlbC5vd2wtZ3JhYiB7XG4gICAgY3Vyc29yOiBtb3ZlO1xuICAgIGN1cnNvcjogZ3JhYjsgfVxuICAub3dsLWNhcm91c2VsLm93bC1ydGwge1xuICAgIGRpcmVjdGlvbjogcnRsOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLXJ0bCAub3dsLWl0ZW0ge1xuICAgIGZsb2F0OiByaWdodDsgfVxuXG4vKiBObyBKcyAqL1xuLm5vLWpzIC5vd2wtY2Fyb3VzZWwge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKlxuICogIE93bCBDYXJvdXNlbCAtIEFuaW1hdGUgUGx1Z2luXG4gKi9cbi5vd2wtY2Fyb3VzZWwgLmFuaW1hdGVkIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxMDAwbXM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH1cblxuLm93bC1jYXJvdXNlbCAub3dsLWFuaW1hdGVkLWluIHtcbiAgei1pbmRleDogMDsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtYW5pbWF0ZWQtb3V0IHtcbiAgei1pbmRleDogMTsgfVxuXG4ub3dsLWNhcm91c2VsIC5mYWRlT3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7IH1cblxuQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbi8qXG4gKiBcdE93bCBDYXJvdXNlbCAtIEF1dG8gSGVpZ2h0IFBsdWdpblxuICovXG4ub3dsLWhlaWdodCB7XG4gIHRyYW5zaXRpb246IGhlaWdodCA1MDBtcyBlYXNlLWluLW91dDsgfVxuXG4vKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBMYXp5IExvYWQgUGx1Z2luXG4gKi9cbi5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIHtcbiAgLyoqXG5cdFx0XHRUaGlzIGlzIGludHJvZHVjZWQgZHVlIHRvIGEgYnVnIGluIElFMTEgd2hlcmUgbGF6eSBsb2FkaW5nIGNvbWJpbmVkIHdpdGggYXV0b2hlaWdodCBwbHVnaW4gY2F1c2VzIGEgd3Jvbmdcblx0XHRcdGNhbGN1bGF0aW9uIG9mIHRoZSBoZWlnaHQgb2YgdGhlIG93bC1pdGVtIHRoYXQgYnJlYWtzIHBhZ2UgbGF5b3V0c1xuXHRcdCAqLyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIC5vd2wtbGF6eSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7IH1cbiAgLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gLm93bC1sYXp5W3NyY149XCJcIl0sIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIC5vd2wtbGF6eTpub3QoW3NyY10pIHtcbiAgICBtYXgtaGVpZ2h0OiAwOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIGltZy5vd2wtbGF6eSB7XG4gICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDsgfVxuXG4vKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBWaWRlbyBQbHVnaW5cbiAqL1xuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzAwMDsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheS1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDgwcHg7XG4gIHdpZHRoOiA4MHB4O1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTQwcHg7XG4gIG1hcmdpbi10b3A6IC00MHB4O1xuICBiYWNrZ3JvdW5kOiB1cmwoXCJvd2wudmlkZW8ucGxheS5wbmdcIikgbm8tcmVwZWF0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHotaW5kZXg6IDE7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTAwbXMgZWFzZTsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheS1pY29uOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjMsIDEuMyk7IH1cblxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXlpbmcgLm93bC12aWRlby10bixcbi5vd2wtY2Fyb3VzZWwgLm93bC12aWRlby1wbGF5aW5nIC5vd2wtdmlkZW8tcGxheS1pY29uIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tdG4ge1xuICBvcGFjaXR5OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlOyB9XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC12aWRlby1mcmFtZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBIZWFkaW5nc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQmFzZVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIFJlbW92ZSBtYXJnaW4gYW5kIHBhZGRpbmcgZnJvbSBldmVyeSBzZWxlY3RvciBpbmNsdWRpbmcgdGhlaXJcclxuICogcHN1ZWRvIHNlbGVjdG9ycy5cclxuICpcclxuICogMS4gTW9yZSBzZW5zaWJsZSBkZWZhdWx0IGJveCBzaXppbmcuXHJcbiAqICAgIChjc3MtdHJpY2tzLmNvbS9pbmhlcml0aW5nLWJveC1zaXppbmctcHJvYmFibHktc2xpZ2h0bHktYmV0dGVyLWJlc3QtcHJhY3RpY2UpLlxyXG4gKi9cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgLyogMSAqLyB9XG5cbi8qKlxyXG4gKiBTZXQgaGVpZ2h0IG9mIHRoZSBkb2N1bWVudCB0byBtYXhpdW0gdmlld3BvcnQgaGVpZ2h0LlxyXG4gKlxyXG4gKiAxLiBTZXQgcm9vdCBmb250IHNpemUgdG8gMTAuXHJcbiAqL1xuaHRtbCB7XG4gIGhlaWdodDogMTAwdmg7XG4gIGZvbnQtc2l6ZTogNjIuNSU7XG4gIC8qIDEgKi9cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuOyB9XG5cbi8qKlxyXG4gKiBTZXQgbWluaW1hbCBoZWlnaHQgb2YgdGhlIGJvZHkgdG8gbWF4aW11bSB2aWV3cG9ydCBoZWlnaHQgdG9cclxuICogbWF0Y2ggdGhlIGRvY3VtZW50J3MgaGVpZ2h0LlxyXG4gKlxyXG4gKiAxLiBGaXJlZm94IDI1Ky5cclxuICogMi4gQ2hyb21lIDUrLlxyXG4gKi9cbmJvZHkge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS4zMzMzM2VtO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiBibGFjaztcbiAgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLCBzYW5zLXNlcmlmO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICBvcGFjaXR5OiAwO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAvKiAxICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAvKiAyICovXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgYW5pbWF0aW9uOiBmYWRlSW4gNTAwbXM7IH1cbiAgYm9keS5pcy1hY3RpdmUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgYm9keS5pcy1sb2FkZWQge1xuICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsgfVxuXG4uY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogMTUwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgUmVzZXRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBDdXN0b20gdXNlciBhZ2VudCByZXNldHMgYW5kIG92ZXJyaWRlcyB0aGF0IGFyZSBub3QgcHJlc2VudCBpblxyXG4gKiBOb3JtYWxpemUgOC4wLjAuIFRoaXMgbW9zdGx5IHJlbW92ZXMgc29tZSBhbm5veWluZyBtYXJnaW4gYW5kIHBhZGRpbmdcclxuICogZGVmYXVsdHMsIGJvcmRlciByYWRpdXMsIGFuZCBvdXRsaW5lcy5cclxuICovXG5hIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4vKipcclxuICogMS4gUmVtb3ZlIGJvcmRlciByYWRpdXMgb24gQ2hyb21lIDYyLjArIG9uIG1hY09TLlxyXG4gKi9cbmJ1dHRvbiB7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgLyogMSAqL1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuZmllbGRzZXQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDsgfVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0OyB9XG5cbmhyIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qKlxyXG4gKiAxLiBSZW1vdmUgd2hpdGUgc3BhY2UuXHJcbiAqL1xuaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIC8qIDEgKi8gfVxuXG4vKipcclxuICogMS4gUmVtb3ZlIGluaGVyaXRlZCB1c2VyIGFnZW50IGFwcGVhcmFuY2UuXHJcbiAqL1xuaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBvdXRsaW5lOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICAvKiAxICovIH1cblxuLyoqXHJcbiAqIDEuIE9ubHkgYWxsb3cgdmVydGljYWwgcmVzaXppbmcgdG8gcHJldmVudCB0aGUgdGV4dGFyZWFcclxuICogICAgZnJvbSBvdmVyZmxvd2luZyB0aGUgY29udGFpbmVyLlxyXG4gKi9cbnRleHRhcmVhIHtcbiAgcmVzaXplOiB2ZXJ0aWNhbDsgfVxuXG51bCxcbm9sIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cblxucCB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKipcclxuICogMS4gQ29sbGFwc2UgYm9yZGVycyB0byBwcmV2ZW50IGRvdWJsZSBzaWRlZCBib3JkZXJzLlxyXG4gKi9cbnRhYmxlIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAvKiAxICovIH1cblxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBBbmltYXRpb25zXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5Aa2V5ZnJhbWVzIHNsaWRlRG93biB7XG4gIDAlIHtcbiAgICB0b3A6IC0yMDBweDtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDEwMCUge1xuICAgIHRvcDogMDtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuQGtleWZyYW1lcyBmYWRlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQnV0dG9uc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIE1haW4gc2V0dGluZ3MuXHJcbiAqL1xuLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMTBweCA0MHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5idXR0b24gc3ZnIHtcbiAgICB3aWR0aDogMTNweDtcbiAgICBoZWlnaHQ6IDEzcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7IH1cbiAgLmJ1dHRvbi5zdmctbGVmdCBzdmcge1xuICAgIG1hcmdpbjogMCAxMHB4IDAgMDsgfVxuICAuYnV0dG9uLm5vLWxvd2VyY2FzZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cbiAgLmJ1dHRvbi5sZXNzLXBhZGRpbmcge1xuICAgIHBhZGRpbmc6IDEwcHggMjBweDsgfVxuXG4vKipcclxuICogT3JhbmdlIChQcmltYXJ5KS5cclxuICovXG4uYnV0dG9uLXByaW1hcnktLW9yYW5nZSB7XG4gIGJhY2tncm91bmQ6ICNmZjZlMmM7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5idXR0b24tcHJpbWFyeS0tb3JhbmdlOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmODRlMDA7XG4gICAgICBib3gtc2hhZG93OiAzcHggM3B4IDdweCAwIHJnYmEoMjU1LCAxMTAsIDQ0LCAwLjUxKTsgfSB9XG5cbi8qKlxyXG4gKiBXaGl0ZSAoUHJpbWFyeSkuXHJcbiAqL1xuLmJ1dHRvbi1wcmltYXJ5LS13aGl0ZSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogIzA0MmU0YjtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMDkpOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgLmJ1dHRvbi1wcmltYXJ5LS13aGl0ZTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMDQyZTRiO1xuICAgICAgY29sb3I6IHdoaXRlOyB9IH1cblxuLyoqXHJcbiAqIFRyYW5zcGFyZW50IChXaGl0ZSkuXHJcbiAqL1xuLmJ1dHRvbi10cmFuc3BhcmVudC0td2hpdGUsXG4uYnV0dG9uLXRyYW5zcGFyYW50IHtcbiAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogd2hpdGU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuYnV0dG9uLXRyYW5zcGFyZW50LS13aGl0ZTpob3ZlcixcbiAgICAuYnV0dG9uLXRyYW5zcGFyYW50OmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgY29sb3I6ICMwNDJlNGI7IH0gfVxuXG4vKipcclxuICogVHJhbnNwYXJlbnQgKEJsdWUpLlxyXG4gKi9cbi5idXR0b24tdHJhbnNwYXJlbnQtLWJsdWUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDQyZTRiO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6ICMwNDJlNGI7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuYnV0dG9uLXRyYW5zcGFyZW50LS1ibHVlOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwNDJlNGI7XG4gICAgICBjb2xvcjogd2hpdGU7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb250YWluZXJcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBUaGUgY29udGFpbmVyIG9iamVjdCBjZW50ZXJzIGFuIGVsZW1lbnQgaW4gdGhlIGRvY3VtZW50LlxyXG4gKi9cbi5jb250YWluZXIge1xuICBtYXgtd2lkdGg6IGNhbGMoMTAyNHB4ICsgNDBweCk7XG4gIHBhZGRpbmc6IDAgMjBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbnRlbnQgQ29uc3RyYWludFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIFRoZSBjb250ZW50IGNvbnN0cmFpbnQgaXMgYSBjb25zdHJhaW50IGZvciBhbGwgdGhlIGNvbnRlbnQgd2l0aGluXHJcbiAqIHRoZSBkb2N1bWVudC4gSXQgY2FuIGJlIG1hbmlwdWxhdGVkIGJ5IENTUyBvciBKYXZhU2NyaXB0IHdpdGhvdXRcclxuICogaW5mbHVlbmNpbmcgdGhlIGJvZHkuXHJcbiAqL1xuLmNvbnRlbnQtY29uc3RyYWludCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAuY29udGVudC1jb25zdHJhaW50IHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5jb250ZW50LWNvbnN0cmFpbnQge1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9IH1cbiAgQG1lZGlhIGFsbCBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICAuY29udGVudC1jb25zdHJhaW50IHtcbiAgICAgIGhlaWdodDogMCAhaW1wb3J0YW50OyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRmxleFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIEV4YW1wbGUgb2YgYSBmbGV4IGJhc2VkIGNvbHVtbiBncmlkIGxheW91dCBpbiBwcmFjdGljZTpcclxuICpcclxuICogPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gKiAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLXhzLTYgY29sLXNtLTEyXCI+PC9kaXY+XHJcbiAqICAgPGRpdiBjbGFzcz1cImNvbCBjb2wteHMtNiBjb2wtc20tMTJcIj48L2Rpdj5cclxuICogPC9kaXY+XHJcbiAqXHJcbiAqIFRoaXMgZXhhbXBsZSB3aWxsIGNyZWF0ZSBhIHJvdyB3aXRoIHR3byBjb2x1bW5zIGVhY2ggZmlsbGluZyBoYWxmIHRoZSB3aWR0aFxyXG4gKiBvZiB0aGUgcm93IG9uIGFsbCBtZWRpYSwgYnV0IHdpbGwgY29udmVydCB0byBhIGZ1bGwgd2lkdGggY29sdW1uIG9uIHRoZVxyXG4gKiBzbWFsbCBgLXNtYCBicmVha3BvaW50IGFsaWFzLCB3aGljaCBpcyBtb2JpbGUgb25seS4gUmVmZXIgdG9cclxuICogYHNldHRpbmdzL19kZWZpbml0aW9ucy5zY3NzYCBmb3IgYWxsIGJyZWFrcG9pbnQgYWxpYXMuXHJcbiAqL1xuLyoqXHJcbiAqIEZsZXggb2JqZWN0LlxyXG4gKlxyXG4gKiBUaXA6IFVzZSBmbGV4IG9uIGEgY29sdW1uIHRvIG1ha2UgdGhlIGJveCB0aGUgc2FtZSBoZWlnaHQgYXMgdGhlIGNvbHVtbi5cclxuICovXG4uZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cblxuLyoqXHJcbiAqIFNldCB2YWx1ZSBvZiB0aGUgZmxleC13cmFwIHByb3BlcnR5IHRvICd3cmFwJy5cclxuICovXG4uZmxleC13cmFwIHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG5cbi8qKlxyXG4gKiBGbGV4IG9iamVjdCB3aXRoIGEgY29sdW1uIGJhc2VkIGxheW91dCBzeXN0ZW0uXHJcbiAqL1xuLnJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBtYXJnaW46IDAgLTEwcHg7IH1cblxuLyoqXHJcbiAqIEJveCwgdGhlIGluc2lkZSBvZiBhIGNvbHVtbi5cclxuICovXG4uYm94IHtcbiAgZmxleDogMTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDEgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC14cy0xIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA4LjMzMzMzJTtcbiAgcGFkZGluZzogMCAxMHB4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCAxIGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC14cy0xIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMiBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhzLTIge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDE2LjY2NjY3JTtcbiAgcGFkZGluZzogMCAxMHB4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCAyIGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC14cy0yIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDMgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC14cy0zIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiAyNSU7XG4gIHBhZGRpbmc6IDAgMTBweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgMyBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQteHMtMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA0IGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteHMtNCB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogMzMuMzMzMzMlO1xuICBwYWRkaW5nOiAwIDEwcHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDQgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXhzLTQge1xuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gNSBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhzLTUge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDQxLjY2NjY3JTtcbiAgcGFkZGluZzogMCAxMHB4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA1IGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC14cy01IHtcbiAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDYgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC14cy02IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA1MCU7XG4gIHBhZGRpbmc6IDAgMTBweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgNiBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQteHMtNiB7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiA3IGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteHMtNyB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogNTguMzMzMzMlO1xuICBwYWRkaW5nOiAwIDEwcHg7IH1cblxuLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDcgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXhzLTcge1xuICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gOCBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhzLTgge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDY2LjY2NjY3JTtcbiAgcGFkZGluZzogMCAxMHB4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCA4IGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuLm9mZnNldC14cy04IHtcbiAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDkgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC14cy05IHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA3NSU7XG4gIHBhZGRpbmc6IDAgMTBweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgOSBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQteHMtOSB7XG4gIG1hcmdpbi1sZWZ0OiA3NSU7IH1cblxuLyoqXHJcbiAgICAgICAqIENvbHVtbiAxMCBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uY29sLXhzLTEwIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiA4My4zMzMzMyU7XG4gIHBhZGRpbmc6IDAgMTBweDsgfVxuXG4vKipcclxuICAgICAgICAgKiBPZmZzZXQgMTAgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4ub2Zmc2V0LXhzLTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuXG4vKipcclxuICAgICAgICogQ29sdW1uIDExIGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5jb2wteHMtMTEge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6IDkxLjY2NjY3JTtcbiAgcGFkZGluZzogMCAxMHB4OyB9XG5cbi8qKlxyXG4gICAgICAgICAqIE9mZnNldCAxMSBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbi5vZmZzZXQteHMtMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG5cbi8qKlxyXG4gICAgICAgKiBDb2x1bW4gMTIgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmNvbC14cy0xMiB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMCAxMHB4OyB9XG5cbi8qKlxyXG4gICAgICAgKiBBbGlnbiBgc3RyZXRjaGAgZm9yIHRoZSB4cyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5hbGlnbi14cy1zdHJldGNoIHtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cblxuLyoqXHJcbiAgICAgICAqIEFsaWduIGBjZW50ZXJgIGZvciB0aGUgeHMgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYWxpZ24teHMtY2VudGVyIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4vKipcclxuICAgICAgICogQWxpZ24gYGZsZXgtc3RhcnRgIGZvciB0aGUgeHMgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYWxpZ24teHMtZmxleC1zdGFydCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi8qKlxyXG4gICAgICAgKiBBbGlnbiBgZmxleC1lbmRgIGZvciB0aGUgeHMgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYWxpZ24teHMtZmxleC1lbmQge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cblxuLyoqXHJcbiAgICAgICAqIEFsaWduIGBiYXNlbGluZWAgZm9yIHRoZSB4cyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5hbGlnbi14cy1iYXNlbGluZSB7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuXG4vKipcclxuICAgICAgICogSnVzdGlmeSBgc3RhcnRgIGZvciB0aGUgeHMgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uanVzdGlmeS14cy1zdGFydCB7XG4gIGp1c3RpZnktY29udGVudDogc3RhcnQ7IH1cblxuLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYGNlbnRlcmAgZm9yIHRoZSB4cyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5qdXN0aWZ5LXhzLWNlbnRlciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzcGFjZS1iZXR3ZWVuYCBmb3IgdGhlIHhzIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmp1c3RpZnkteHMtc3BhY2UtYmV0d2VlbiB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuXG4vKipcclxuICAgICAgICogSnVzdGlmeSBgc3BhY2UtYXJvdW5kYCBmb3IgdGhlIHhzIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmp1c3RpZnkteHMtc3BhY2UtYXJvdW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxuLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHNwYWNlLWV2ZW5seWAgZm9yIHRoZSB4cyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5qdXN0aWZ5LXhzLXNwYWNlLWV2ZW5seSB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5OyB9XG5cbi8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBmbGV4LWVuZGAgZm9yIHRoZSB4cyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbi5qdXN0aWZ5LXhzLWZsZXgtZW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuXG4vKipcclxuICAgICAgICogQmxlZWQgbGVmdCBmb3IgdGhlIHhzIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuLmJsZWVkLXhzLWxlZnQge1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLyoqXHJcbiAgICAgICAqIEJsZWVkIHJpZ2h0IGZvciB0aGUgeHMgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4uYmxlZWQteHMtcmlnaHQge1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi8qKlxyXG4gICAgICogT3JkZXIgZmlyc3QgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgKi9cbi5maXJzdC14cyB7XG4gIG9yZGVyOiAtMTsgfVxuXG4vKipcclxuICAgICAqIE9yZGVyIGxhc3QgZm9yIHRoZSBgeHNgIGJyZWFrcG9pbnQuXHJcbiAgICAgKi9cbi5sYXN0LXhzIHtcbiAgb3JkZXI6IDE7IH1cblxuLyoqXHJcbiAgICAgKiBSZXZlcnNlIG9yZGVyIGZvciB0aGUgYHhzYCBicmVha3BvaW50LlxyXG4gICAgICovXG4ucmV2ZXJzZS14cyB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC8qKlxyXG4gICAgICAgKiBDb2x1bW4gMSBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5jb2wtc20tMSB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDguMzMzMzMlO1xuICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAvKipcclxuICAgICAgICAgKiBPZmZzZXQgMSBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbiAgLm9mZnNldC1zbS0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cbiAgLyoqXHJcbiAgICAgICAqIENvbHVtbiAyIGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmNvbC1zbS0yIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogMTYuNjY2NjclO1xuICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAvKipcclxuICAgICAgICAgKiBPZmZzZXQgMiBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbiAgLm9mZnNldC1zbS0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC8qKlxyXG4gICAgICAgKiBDb2x1bW4gMyBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5jb2wtc20tMyB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDI1JTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDMgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4gIC5vZmZzZXQtc20tMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAvKipcclxuICAgICAgICogQ29sdW1uIDQgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuY29sLXNtLTQge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7XG4gICAgcGFkZGluZzogMCAxMHB4OyB9XG4gIC8qKlxyXG4gICAgICAgICAqIE9mZnNldCA0IGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuICAub2Zmc2V0LXNtLTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLyoqXHJcbiAgICAgICAqIENvbHVtbiA1IGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmNvbC1zbS01IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogNDEuNjY2NjclO1xuICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAvKipcclxuICAgICAgICAgKiBPZmZzZXQgNSBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbiAgLm9mZnNldC1zbS01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC8qKlxyXG4gICAgICAgKiBDb2x1bW4gNiBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5jb2wtc20tNiB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDUwJTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDYgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4gIC5vZmZzZXQtc20tNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAvKipcclxuICAgICAgICogQ29sdW1uIDcgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuY29sLXNtLTcge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7XG4gICAgcGFkZGluZzogMCAxMHB4OyB9XG4gIC8qKlxyXG4gICAgICAgICAqIE9mZnNldCA3IGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuICAub2Zmc2V0LXNtLTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLyoqXHJcbiAgICAgICAqIENvbHVtbiA4IGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmNvbC1zbS04IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogNjYuNjY2NjclO1xuICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAvKipcclxuICAgICAgICAgKiBPZmZzZXQgOCBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbiAgLm9mZnNldC1zbS04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC8qKlxyXG4gICAgICAgKiBDb2x1bW4gOSBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5jb2wtc20tOSB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDc1JTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDkgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4gIC5vZmZzZXQtc20tOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAvKipcclxuICAgICAgICogQ29sdW1uIDEwIGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmNvbC1zbS0xMCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDgzLjMzMzMzJTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDEwIGZvciB0aGUgYHNtYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuICAub2Zmc2V0LXNtLTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC8qKlxyXG4gICAgICAgKiBDb2x1bW4gMTEgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuY29sLXNtLTExIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogOTEuNjY2NjclO1xuICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAvKipcclxuICAgICAgICAgKiBPZmZzZXQgMTEgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4gIC5vZmZzZXQtc20tMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cbiAgLyoqXHJcbiAgICAgICAqIENvbHVtbiAxMiBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5jb2wtc20tMTIge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAvKipcclxuICAgICAgICogQWxpZ24gYHN0cmV0Y2hgIGZvciB0aGUgc20gYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5hbGlnbi1zbS1zdHJldGNoIHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAvKipcclxuICAgICAgICogQWxpZ24gYGNlbnRlcmAgZm9yIHRoZSBzbSBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmFsaWduLXNtLWNlbnRlciB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAvKipcclxuICAgICAgICogQWxpZ24gYGZsZXgtc3RhcnRgIGZvciB0aGUgc20gYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5hbGlnbi1zbS1mbGV4LXN0YXJ0IHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuICAvKipcclxuICAgICAgICogQWxpZ24gYGZsZXgtZW5kYCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuYWxpZ24tc20tZmxleC1lbmQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuICAvKipcclxuICAgICAgICogQWxpZ24gYGJhc2VsaW5lYCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuYWxpZ24tc20tYmFzZWxpbmUge1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAvKipcclxuICAgICAgICogSnVzdGlmeSBgc3RhcnRgIGZvciB0aGUgc20gYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5qdXN0aWZ5LXNtLXN0YXJ0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0OyB9XG4gIC8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBjZW50ZXJgIGZvciB0aGUgc20gYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5qdXN0aWZ5LXNtLWNlbnRlciB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHNwYWNlLWJldHdlZW5gIGZvciB0aGUgc20gYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5qdXN0aWZ5LXNtLXNwYWNlLWJldHdlZW4ge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAvKipcclxuICAgICAgICogSnVzdGlmeSBgc3BhY2UtYXJvdW5kYCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuanVzdGlmeS1zbS1zcGFjZS1hcm91bmQge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG4gIC8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzcGFjZS1ldmVubHlgIGZvciB0aGUgc20gYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5qdXN0aWZ5LXNtLXNwYWNlLWV2ZW5seSB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7IH1cbiAgLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYGZsZXgtZW5kYCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuanVzdGlmeS1zbS1mbGV4LWVuZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAvKipcclxuICAgICAgICogQmxlZWQgbGVmdCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuYmxlZWQtc20tbGVmdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC8qKlxyXG4gICAgICAgKiBCbGVlZCByaWdodCBmb3IgdGhlIHNtIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuYmxlZWQtc20tcmlnaHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgLyoqXHJcbiAgICAgKiBPcmRlciBmaXJzdCBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAqL1xuICAuZmlyc3Qtc20ge1xuICAgIG9yZGVyOiAtMTsgfVxuICAvKipcclxuICAgICAqIE9yZGVyIGxhc3QgZm9yIHRoZSBgc21gIGJyZWFrcG9pbnQuXHJcbiAgICAgKi9cbiAgLmxhc3Qtc20ge1xuICAgIG9yZGVyOiAxOyB9XG4gIC8qKlxyXG4gICAgICogUmV2ZXJzZSBvcmRlciBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cclxuICAgICAqL1xuICAucmV2ZXJzZS1zbSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAvKipcclxuICAgICAgICogQ29sdW1uIDEgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuY29sLW1kLTEge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiA4LjMzMzMzJTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDEgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4gIC5vZmZzZXQtbWQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC8qKlxyXG4gICAgICAgKiBDb2x1bW4gMiBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5jb2wtbWQtMiB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDE2LjY2NjY3JTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDIgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4gIC5vZmZzZXQtbWQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAvKipcclxuICAgICAgICogQ29sdW1uIDMgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuY29sLW1kLTMge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiAyNSU7XG4gICAgcGFkZGluZzogMCAxMHB4OyB9XG4gIC8qKlxyXG4gICAgICAgICAqIE9mZnNldCAzIGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuICAub2Zmc2V0LW1kLTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLyoqXHJcbiAgICAgICAqIENvbHVtbiA0IGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmNvbC1tZC00IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogMzMuMzMzMzMlO1xuICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAvKipcclxuICAgICAgICAgKiBPZmZzZXQgNCBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbiAgLm9mZnNldC1tZC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC8qKlxyXG4gICAgICAgKiBDb2x1bW4gNSBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5jb2wtbWQtNSB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDQxLjY2NjY3JTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDUgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4gIC5vZmZzZXQtbWQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAvKipcclxuICAgICAgICogQ29sdW1uIDYgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuY29sLW1kLTYge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiA1MCU7XG4gICAgcGFkZGluZzogMCAxMHB4OyB9XG4gIC8qKlxyXG4gICAgICAgICAqIE9mZnNldCA2IGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuICAub2Zmc2V0LW1kLTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLyoqXHJcbiAgICAgICAqIENvbHVtbiA3IGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmNvbC1tZC03IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogNTguMzMzMzMlO1xuICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAvKipcclxuICAgICAgICAgKiBPZmZzZXQgNyBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbiAgLm9mZnNldC1tZC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC8qKlxyXG4gICAgICAgKiBDb2x1bW4gOCBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5jb2wtbWQtOCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDY2LjY2NjY3JTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDggZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4gIC5vZmZzZXQtbWQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAvKipcclxuICAgICAgICogQ29sdW1uIDkgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuY29sLW1kLTkge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiA3NSU7XG4gICAgcGFkZGluZzogMCAxMHB4OyB9XG4gIC8qKlxyXG4gICAgICAgICAqIE9mZnNldCA5IGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuICAub2Zmc2V0LW1kLTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLyoqXHJcbiAgICAgICAqIENvbHVtbiAxMCBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5jb2wtbWQtMTAge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiA4My4zMzMzMyU7XG4gICAgcGFkZGluZzogMCAxMHB4OyB9XG4gIC8qKlxyXG4gICAgICAgICAqIE9mZnNldCAxMCBmb3IgdGhlIGBtZGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbiAgLm9mZnNldC1tZC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAvKipcclxuICAgICAgICogQ29sdW1uIDExIGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmNvbC1tZC0xMSB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDkxLjY2NjY3JTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDExIGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuICAub2Zmc2V0LW1kLTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC8qKlxyXG4gICAgICAgKiBDb2x1bW4gMTIgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuY29sLW1kLTEyIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLyoqXHJcbiAgICAgICAqIEFsaWduIGBzdHJldGNoYCBmb3IgdGhlIG1kIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuYWxpZ24tbWQtc3RyZXRjaCB7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbiAgLyoqXHJcbiAgICAgICAqIEFsaWduIGBjZW50ZXJgIGZvciB0aGUgbWQgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5hbGlnbi1tZC1jZW50ZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLyoqXHJcbiAgICAgICAqIEFsaWduIGBmbGV4LXN0YXJ0YCBmb3IgdGhlIG1kIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuYWxpZ24tbWQtZmxleC1zdGFydCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbiAgLyoqXHJcbiAgICAgICAqIEFsaWduIGBmbGV4LWVuZGAgZm9yIHRoZSBtZCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmFsaWduLW1kLWZsZXgtZW5kIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbiAgLyoqXHJcbiAgICAgICAqIEFsaWduIGBiYXNlbGluZWAgZm9yIHRoZSBtZCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmFsaWduLW1kLWJhc2VsaW5lIHtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cbiAgLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHN0YXJ0YCBmb3IgdGhlIG1kIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuanVzdGlmeS1tZC1zdGFydCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzdGFydDsgfVxuICAvKipcclxuICAgICAgICogSnVzdGlmeSBgY2VudGVyYCBmb3IgdGhlIG1kIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuanVzdGlmeS1tZC1jZW50ZXIge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzcGFjZS1iZXR3ZWVuYCBmb3IgdGhlIG1kIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuanVzdGlmeS1tZC1zcGFjZS1iZXR3ZWVuIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHNwYWNlLWFyb3VuZGAgZm9yIHRoZSBtZCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmp1c3RpZnktbWQtc3BhY2UtYXJvdW5kIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuICAvKipcclxuICAgICAgICogSnVzdGlmeSBgc3BhY2UtZXZlbmx5YCBmb3IgdGhlIG1kIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuanVzdGlmeS1tZC1zcGFjZS1ldmVubHkge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5OyB9XG4gIC8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBmbGV4LWVuZGAgZm9yIHRoZSBtZCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmp1c3RpZnktbWQtZmxleC1lbmQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgLyoqXHJcbiAgICAgICAqIEJsZWVkIGxlZnQgZm9yIHRoZSBtZCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmJsZWVkLW1kLWxlZnQge1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAvKipcclxuICAgICAgICogQmxlZWQgcmlnaHQgZm9yIHRoZSBtZCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmJsZWVkLW1kLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC8qKlxyXG4gICAgICogT3JkZXIgZmlyc3QgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgKi9cbiAgLmZpcnN0LW1kIHtcbiAgICBvcmRlcjogLTE7IH1cbiAgLyoqXHJcbiAgICAgKiBPcmRlciBsYXN0IGZvciB0aGUgYG1kYCBicmVha3BvaW50LlxyXG4gICAgICovXG4gIC5sYXN0LW1kIHtcbiAgICBvcmRlcjogMTsgfVxuICAvKipcclxuICAgICAqIFJldmVyc2Ugb3JkZXIgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXHJcbiAgICAgKi9cbiAgLnJldmVyc2UtbWQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgLyoqXHJcbiAgICAgICAqIENvbHVtbiAxIGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmNvbC1sZy0xIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogOC4zMzMzMyU7XG4gICAgcGFkZGluZzogMCAxMHB4OyB9XG4gIC8qKlxyXG4gICAgICAgICAqIE9mZnNldCAxIGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuICAub2Zmc2V0LWxnLTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAvKipcclxuICAgICAgICogQ29sdW1uIDIgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuY29sLWxnLTIge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiAxNi42NjY2NyU7XG4gICAgcGFkZGluZzogMCAxMHB4OyB9XG4gIC8qKlxyXG4gICAgICAgICAqIE9mZnNldCAyIGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuICAub2Zmc2V0LWxnLTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLyoqXHJcbiAgICAgICAqIENvbHVtbiAzIGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmNvbC1sZy0zIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogMjUlO1xuICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAvKipcclxuICAgICAgICAgKiBPZmZzZXQgMyBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbiAgLm9mZnNldC1sZy0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC8qKlxyXG4gICAgICAgKiBDb2x1bW4gNCBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5jb2wtbGctNCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDQgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4gIC5vZmZzZXQtbGctNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAvKipcclxuICAgICAgICogQ29sdW1uIDUgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuY29sLWxnLTUge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiA0MS42NjY2NyU7XG4gICAgcGFkZGluZzogMCAxMHB4OyB9XG4gIC8qKlxyXG4gICAgICAgICAqIE9mZnNldCA1IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuICAub2Zmc2V0LWxnLTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLyoqXHJcbiAgICAgICAqIENvbHVtbiA2IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmNvbC1sZy02IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogNTAlO1xuICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAvKipcclxuICAgICAgICAgKiBPZmZzZXQgNiBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbiAgLm9mZnNldC1sZy02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC8qKlxyXG4gICAgICAgKiBDb2x1bW4gNyBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5jb2wtbGctNyB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDU4LjMzMzMzJTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDcgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4gIC5vZmZzZXQtbGctNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAvKipcclxuICAgICAgICogQ29sdW1uIDggZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuY29sLWxnLTgge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7XG4gICAgcGFkZGluZzogMCAxMHB4OyB9XG4gIC8qKlxyXG4gICAgICAgICAqIE9mZnNldCA4IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuICAub2Zmc2V0LWxnLTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLyoqXHJcbiAgICAgICAqIENvbHVtbiA5IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmNvbC1sZy05IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogNzUlO1xuICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAvKipcclxuICAgICAgICAgKiBPZmZzZXQgOSBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbiAgLm9mZnNldC1sZy05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC8qKlxyXG4gICAgICAgKiBDb2x1bW4gMTAgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuY29sLWxnLTEwIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogODMuMzMzMzMlO1xuICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAvKipcclxuICAgICAgICAgKiBPZmZzZXQgMTAgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4gIC5vZmZzZXQtbGctMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLyoqXHJcbiAgICAgICAqIENvbHVtbiAxMSBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5jb2wtbGctMTEge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiA5MS42NjY2NyU7XG4gICAgcGFkZGluZzogMCAxMHB4OyB9XG4gIC8qKlxyXG4gICAgICAgICAqIE9mZnNldCAxMSBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbiAgLm9mZnNldC1sZy0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAvKipcclxuICAgICAgICogQ29sdW1uIDEyIGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmNvbC1sZy0xMiB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMCAxMHB4OyB9XG4gIC8qKlxyXG4gICAgICAgKiBBbGlnbiBgc3RyZXRjaGAgZm9yIHRoZSBsZyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmFsaWduLWxnLXN0cmV0Y2gge1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG4gIC8qKlxyXG4gICAgICAgKiBBbGlnbiBgY2VudGVyYCBmb3IgdGhlIGxnIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuYWxpZ24tbGctY2VudGVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC8qKlxyXG4gICAgICAgKiBBbGlnbiBgZmxleC1zdGFydGAgZm9yIHRoZSBsZyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmFsaWduLWxnLWZsZXgtc3RhcnQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4gIC8qKlxyXG4gICAgICAgKiBBbGlnbiBgZmxleC1lbmRgIGZvciB0aGUgbGcgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5hbGlnbi1sZy1mbGV4LWVuZCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG4gIC8qKlxyXG4gICAgICAgKiBBbGlnbiBgYmFzZWxpbmVgIGZvciB0aGUgbGcgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5hbGlnbi1sZy1iYXNlbGluZSB7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gIC8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzdGFydGAgZm9yIHRoZSBsZyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmp1c3RpZnktbGctc3RhcnQge1xuICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7IH1cbiAgLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYGNlbnRlcmAgZm9yIHRoZSBsZyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmp1c3RpZnktbGctY2VudGVyIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAvKipcclxuICAgICAgICogSnVzdGlmeSBgc3BhY2UtYmV0d2VlbmAgZm9yIHRoZSBsZyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmp1c3RpZnktbGctc3BhY2UtYmV0d2VlbiB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIC8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzcGFjZS1hcm91bmRgIGZvciB0aGUgbGcgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5qdXN0aWZ5LWxnLXNwYWNlLWFyb3VuZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cbiAgLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHNwYWNlLWV2ZW5seWAgZm9yIHRoZSBsZyBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmp1c3RpZnktbGctc3BhY2UtZXZlbmx5IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTsgfVxuICAvKipcclxuICAgICAgICogSnVzdGlmeSBgZmxleC1lbmRgIGZvciB0aGUgbGcgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5qdXN0aWZ5LWxnLWZsZXgtZW5kIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gIC8qKlxyXG4gICAgICAgKiBCbGVlZCBsZWZ0IGZvciB0aGUgbGcgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5ibGVlZC1sZy1sZWZ0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLyoqXHJcbiAgICAgICAqIEJsZWVkIHJpZ2h0IGZvciB0aGUgbGcgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5ibGVlZC1sZy1yaWdodCB7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAvKipcclxuICAgICAqIE9yZGVyIGZpcnN0IGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICovXG4gIC5maXJzdC1sZyB7XG4gICAgb3JkZXI6IC0xOyB9XG4gIC8qKlxyXG4gICAgICogT3JkZXIgbGFzdCBmb3IgdGhlIGBsZ2AgYnJlYWtwb2ludC5cclxuICAgICAqL1xuICAubGFzdC1sZyB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLyoqXHJcbiAgICAgKiBSZXZlcnNlIG9yZGVyIGZvciB0aGUgYGxnYCBicmVha3BvaW50LlxyXG4gICAgICovXG4gIC5yZXZlcnNlLWxnIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAvKipcclxuICAgICAgICogQ29sdW1uIDEgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuY29sLXhsLTEge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiA4LjMzMzMzJTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDEgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4gIC5vZmZzZXQteGwtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC8qKlxyXG4gICAgICAgKiBDb2x1bW4gMiBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5jb2wteGwtMiB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDE2LjY2NjY3JTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDIgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4gIC5vZmZzZXQteGwtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAvKipcclxuICAgICAgICogQ29sdW1uIDMgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuY29sLXhsLTMge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiAyNSU7XG4gICAgcGFkZGluZzogMCAxMHB4OyB9XG4gIC8qKlxyXG4gICAgICAgICAqIE9mZnNldCAzIGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuICAub2Zmc2V0LXhsLTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLyoqXHJcbiAgICAgICAqIENvbHVtbiA0IGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmNvbC14bC00IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogMzMuMzMzMzMlO1xuICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAvKipcclxuICAgICAgICAgKiBPZmZzZXQgNCBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbiAgLm9mZnNldC14bC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC8qKlxyXG4gICAgICAgKiBDb2x1bW4gNSBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5jb2wteGwtNSB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDQxLjY2NjY3JTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDUgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4gIC5vZmZzZXQteGwtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAvKipcclxuICAgICAgICogQ29sdW1uIDYgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuY29sLXhsLTYge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiA1MCU7XG4gICAgcGFkZGluZzogMCAxMHB4OyB9XG4gIC8qKlxyXG4gICAgICAgICAqIE9mZnNldCA2IGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuICAub2Zmc2V0LXhsLTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLyoqXHJcbiAgICAgICAqIENvbHVtbiA3IGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmNvbC14bC03IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogNTguMzMzMzMlO1xuICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAvKipcclxuICAgICAgICAgKiBPZmZzZXQgNyBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbiAgLm9mZnNldC14bC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC8qKlxyXG4gICAgICAgKiBDb2x1bW4gOCBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5jb2wteGwtOCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDY2LjY2NjY3JTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDggZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAgICovXG4gIC5vZmZzZXQteGwtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAvKipcclxuICAgICAgICogQ29sdW1uIDkgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuY29sLXhsLTkge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiA3NSU7XG4gICAgcGFkZGluZzogMCAxMHB4OyB9XG4gIC8qKlxyXG4gICAgICAgICAqIE9mZnNldCA5IGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuICAub2Zmc2V0LXhsLTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLyoqXHJcbiAgICAgICAqIENvbHVtbiAxMCBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5jb2wteGwtMTAge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiA4My4zMzMzMyU7XG4gICAgcGFkZGluZzogMCAxMHB4OyB9XG4gIC8qKlxyXG4gICAgICAgICAqIE9mZnNldCAxMCBmb3IgdGhlIGB4bGAgYnJlYWtwb2ludC5cclxuICAgICAgICAgKi9cbiAgLm9mZnNldC14bC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAvKipcclxuICAgICAgICogQ29sdW1uIDExIGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmNvbC14bC0xMSB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDkxLjY2NjY3JTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLyoqXHJcbiAgICAgICAgICogT2Zmc2V0IDExIGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xuICAub2Zmc2V0LXhsLTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC8qKlxyXG4gICAgICAgKiBDb2x1bW4gMTIgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuY29sLXhsLTEyIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgLyoqXHJcbiAgICAgICAqIEFsaWduIGBzdHJldGNoYCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuYWxpZ24teGwtc3RyZXRjaCB7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbiAgLyoqXHJcbiAgICAgICAqIEFsaWduIGBjZW50ZXJgIGZvciB0aGUgeGwgYnJlYWtwb2ludC5cclxuICAgICAgICovXG4gIC5hbGlnbi14bC1jZW50ZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLyoqXHJcbiAgICAgICAqIEFsaWduIGBmbGV4LXN0YXJ0YCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuYWxpZ24teGwtZmxleC1zdGFydCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbiAgLyoqXHJcbiAgICAgICAqIEFsaWduIGBmbGV4LWVuZGAgZm9yIHRoZSB4bCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmFsaWduLXhsLWZsZXgtZW5kIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbiAgLyoqXHJcbiAgICAgICAqIEFsaWduIGBiYXNlbGluZWAgZm9yIHRoZSB4bCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmFsaWduLXhsLWJhc2VsaW5lIHtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cbiAgLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHN0YXJ0YCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuanVzdGlmeS14bC1zdGFydCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzdGFydDsgfVxuICAvKipcclxuICAgICAgICogSnVzdGlmeSBgY2VudGVyYCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuanVzdGlmeS14bC1jZW50ZXIge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBzcGFjZS1iZXR3ZWVuYCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuanVzdGlmeS14bC1zcGFjZS1iZXR3ZWVuIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgLyoqXHJcbiAgICAgICAqIEp1c3RpZnkgYHNwYWNlLWFyb3VuZGAgZm9yIHRoZSB4bCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmp1c3RpZnkteGwtc3BhY2UtYXJvdW5kIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuICAvKipcclxuICAgICAgICogSnVzdGlmeSBgc3BhY2UtZXZlbmx5YCBmb3IgdGhlIHhsIGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xuICAuanVzdGlmeS14bC1zcGFjZS1ldmVubHkge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5OyB9XG4gIC8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGBmbGV4LWVuZGAgZm9yIHRoZSB4bCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmp1c3RpZnkteGwtZmxleC1lbmQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgLyoqXHJcbiAgICAgICAqIEJsZWVkIGxlZnQgZm9yIHRoZSB4bCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmJsZWVkLXhsLWxlZnQge1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAvKipcclxuICAgICAgICogQmxlZWQgcmlnaHQgZm9yIHRoZSB4bCBicmVha3BvaW50LlxyXG4gICAgICAgKi9cbiAgLmJsZWVkLXhsLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC8qKlxyXG4gICAgICogT3JkZXIgZmlyc3QgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgKi9cbiAgLmZpcnN0LXhsIHtcbiAgICBvcmRlcjogLTE7IH1cbiAgLyoqXHJcbiAgICAgKiBPcmRlciBsYXN0IGZvciB0aGUgYHhsYCBicmVha3BvaW50LlxyXG4gICAgICovXG4gIC5sYXN0LXhsIHtcbiAgICBvcmRlcjogMTsgfVxuICAvKipcclxuICAgICAqIFJldmVyc2Ugb3JkZXIgZm9yIHRoZSBgeGxgIGJyZWFrcG9pbnQuXHJcbiAgICAgKi9cbiAgLnJldmVyc2UteGwge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEhlYWRpbmdcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBEZWZhdWx0IGhlYWRpbmdzIChIMSkuXHJcbiAqL1xuLmhlYWRpbmctMS1ibHVlIHtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBmb250LXNpemU6IDNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE2NjY3ZW07XG4gIGNvbG9yOiAjMDQyZTRiO1xuICBmb250LWZhbWlseTogXCJNb250c2VycmF0XCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7IH1cblxuLnN1YmhlYWRpbmctMS1ibHVlIHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDJlbTtcbiAgY29sb3I6ICMwNDJlNGI7XG4gIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgb3BhY2l0eTogMC41OyB9XG5cbi5oZWFkaW5nLTEtd2hpdGUge1xuICBmb250LXNpemU6IDMwcHg7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTY2NjdlbTtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LWZhbWlseTogXCJNb250c2VycmF0XCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7IH1cblxuLnN1YmhlYWRpbmctMS13aGl0ZSB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAyZW07XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBvcGFjaXR5OiAwLjU7IH1cblxuLnN1YmhlYWRpbmctMS1ncmV5IHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDJlbTtcbiAgY29sb3I6ICNhYmI5YzI7XG4gIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgb3BhY2l0eTogMC41OyB9XG5cbi8qKlxyXG4gKiBEZWZhdWx0IGhlYWRpbmdzIChIMikuXHJcbiAqL1xuLmRvY3VtZW50LXNpbmdsZV9fZWRpdG9yIGgyLFxuLmhlYWRpbmctMi1ibHVlIHtcbiAgZm9udC1zaXplOiAyNXB4O1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICBjb2xvcjogIzA0MmU0YjtcbiAgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogODAwOyB9XG5cbi5zdWJoZWFkaW5nLTItYmx1ZSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGxpbmUtaGVpZ2h0OiAyLjVlbTtcbiAgY29sb3I6ICMwNDJlNGI7XG4gIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgb3BhY2l0eTogMC41OyB9XG5cbi5oZWFkaW5nLTItd2hpdGUge1xuICBmb250LXNpemU6IDI1cHg7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogMS4yZW07XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogODAwOyB9XG5cbi5zdWJoZWFkaW5nLTItd2hpdGUge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBsaW5lLWhlaWdodDogMi41ZW07XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBvcGFjaXR5OiAwLjU7IH1cblxuLnN1YmhlYWRpbmctMi1ncmV5IHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuNWVtO1xuICBjb2xvcjogI2FiYjljMjtcbiAgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBvcGFjaXR5OiAwLjU7IH1cblxuLyoqXHJcbiAqIERlZmF1bHQgaGVhZGluZ3MgKEgzKS5cclxuICovXG4uZG9jdW1lbnQtc2luZ2xlX19lZGl0b3IgaDMsXG4uaGVhZGluZy0zLWJsdWUge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS4zMzMzM2VtO1xuICBjb2xvcjogIzA0MmU0YjtcbiAgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogODAwOyB9XG5cbi5oZWFkaW5nLTMtd2hpdGUge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS4zMzMzM2VtO1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDgwMDsgfVxuXG4uaGVhZGluZy0zLW9yYW5nZSB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzZW07XG4gIGNvbG9yOiAjZmY2ZTJjO1xuICBmb250LWZhbWlseTogXCJNb250c2VycmF0XCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgTGFiZWxzXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogTWFpbiBzZXR0aW5ncyAobGFiZWwpLlxyXG4gKi9cbi5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjUzODQ2ZW07XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwYWRkaW5nOiA3cHggMjBweCAzcHg7XG4gIGNvbG9yOiAjMDQyZTRiO1xuICBmb250LWZhbWlseTogXCJOdW5pdG9cIiwgc2Fucy1zZXJpZjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG9wYWNpdHk6IDAuNztcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLmxhYmVsLnJvdW5kZWQge1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7IH1cblxuLyoqXHJcbiAqIExpZ2h0IHB1cnBsZS5cclxuICovXG4ubGFiZWwtLWxpZ2h0cHVycGxlIHtcbiAgYmFja2dyb3VuZDogI2Y2ZjVmZDtcbiAgY29sb3I6ICMwNDJlNGI7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgTGlua3NcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBNYWluIHNldHRpbmdzIChMaW5rKS5cclxuICovXG4ubGluayB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzZW07XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBjb2xvciAyNTBtcyBlYXNlOyB9XG4gIC5saW5rIHN2ZyB7XG4gICAgd2lkdGg6IDE1cHg7XG4gICAgaGVpZ2h0OiAxNXB4O1xuICAgIG1hcmdpbjogMCA1cHg7IH1cbiAgLmxpbmsudW5kZXJsaW5lIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4vKipcclxuICogTGluayAoQmx1ZSkuXHJcbiAqL1xuLmxpbmstLWJsdWUge1xuICBjb2xvcjogIzA0MmU0YjtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5saW5rLS1ibHVlOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmY2ZTJjOyB9IH1cblxuLyoqXHJcbiAqIExpbmsgKEJsdWUsIGJvbGQpLlxyXG4gKi9cbi5saW5rLWJvbGQtLWJsdWUge1xuICBjb2xvcjogIzA0MmU0YjtcbiAgZm9udC13ZWlnaHQ6IDgwMDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5saW5rLWJvbGQtLWJsdWU6aG92ZXIge1xuICAgICAgY29sb3I6ICNmZjZlMmM7IH0gfVxuXG4vKipcclxuICogTGluayAoT3JhbmdlKS5cclxuICovXG4ubGluay0tb3JhbmdlIHtcbiAgY29sb3I6ICNmZjZlMmM7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAubGluay0tb3JhbmdlOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjMDQyZTRiOyB9IH1cblxuLyoqXHJcbiAqIExpbmsgd2l0aCBiYWNrZ3JvdW5kIChCbHVlKS5cclxuICovXG4ubGluay1iYWNrZ3JvdW5kLS1ibHVlIHtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kOiAjMDQyZTRiO1xuICBjb2xvcjogd2hpdGU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAubGluay1iYWNrZ3JvdW5kLS1ibHVlOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmY2ZTJjOyB9IH1cblxuLm5vdGljZS1kb3dubG9hZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZjVmYztcbiAgbWFyZ2luOiAtMjVweCAwIDUwcHggMDtcbiAgcGFkZGluZzogMTBweCAxMHB4IDEwcHggMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4OyB9XG4gIC5ub3RpY2UtZG93bmxvYWQ6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMzZweDtcbiAgICBsZWZ0OiAwcHg7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1sZWZ0OiA0MHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodDogNDBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiAyMHB4IHNvbGlkICNlY2Y1ZmM7XG4gICAgY29udGVudDogJyc7IH1cbiAgLm5vdGljZS1kb3dubG9hZCBzdmcge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTVweDtcbiAgICBtYXJnaW46IDAgMTBweCAwIDA7XG4gICAgb3BhY2l0eTogMC41OyB9XG4gIC5ub3RpY2UtZG93bmxvYWQgc3BhbiB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjMzMzMzZW07XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDI2cHgpO1xuICAgIGZvbnQtZmFtaWx5OiBcIk51bml0b1wiLCBzYW5zLXNlcmlmO1xuICAgIG9wYWNpdHk6IDAuNTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBTZWN0aW9uXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogIE1hcmdpbi5cclxuICovXG4ubTEwLXRvcCB7XG4gIG1hcmdpbi10b3A6IDEwcHggIWltcG9ydGFudDsgfVxuXG4ubTEwLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHggIWltcG9ydGFudDsgfVxuXG4ubTIwLXRvcCB7XG4gIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDsgfVxuXG4ubTIwLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHggIWltcG9ydGFudDsgfVxuXG4ubTMwLXRvcCB7XG4gIG1hcmdpbi10b3A6IDMwcHggIWltcG9ydGFudDsgfVxuXG4ubTMwLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDMwcHggIWltcG9ydGFudDsgfVxuXG4ubTUwLXRvcCB7XG4gIG1hcmdpbi10b3A6IDUwcHg7IH1cblxuLm01MC1ib3R0b20ge1xuICBtYXJnaW4tYm90dG9tOiA1MHB4OyB9XG5cbi5tODAtdG9wIHtcbiAgbWFyZ2luLXRvcDogODBweDsgfVxuXG4ubTgwLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDgwcHg7IH1cblxuLm0xMDAtdG9wIHtcbiAgbWFyZ2luLXRvcDogMTAwcHg7IH1cblxuLm0xMDAtYm90dG9tIHtcbiAgbWFyZ2luLWJvdHRvbTogMTAwcHg7IH1cblxuLyoqXHJcbiAqICBGb250IHdlaWdodC5cclxuICovXG4uZm9udC13ZWlnaHQtMTAwIHtcbiAgZm9udC13ZWlnaHQ6IDEwMDsgfVxuXG4uZm9udC13ZWlnaHQtMzAwIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuXG4vKipcclxuICogIFRleHQgYWxpZ24gbGVmdC5cclxuICovXG4udGV4dC1hbGlnbi1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBXcmFwcGVyXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogVGhlIHdyYXBwZXIgb2JqZWN0IGNlbnRlcnMgYW4gZWxlbWVudCBpbiB0aGUgZG9jdW1lbnQuXHJcbiAqL1xuLndyYXBwZXIge1xuICBtYXgtd2lkdGg6IGNhbGMoMTI0MHB4ICsgNDBweCk7XG4gIHBhZGRpbmc6IDAgMjBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLndyYXBwZXIge1xuICAgICAgcGFkZGluZzogMCAzMHB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLndyYXBwZXIge1xuICAgICAgcGFkZGluZzogMCA2MHB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC53cmFwcGVyIHtcbiAgICAgIHBhZGRpbmc6IDAgNTBweDsgfSB9XG5cbi53cmFwcGVyLS1zbWFsbCB7XG4gIG1heC13aWR0aDogNjUwcHg7XG4gIG1hcmdpbjogYXV0bztcbiAgcGFkZGluZzogMjBweDsgfVxuXG4ud3JhcHBlci0tbWVkaXVtIHtcbiAgbWF4LXdpZHRoOiA4NjFweDtcbiAgbWFyZ2luOiBhdXRvO1xuICBwYWRkaW5nOiAyMHB4OyB9XG5cbi53cmFwcGVyLS13aWRlIHtcbiAgbWF4LXdpZHRoOiAxMDY5cHg7XG4gIHBhZGRpbmc6IDIwcHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQmFsbHNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiAgTWFpbiBlbGVtZW50LlxyXG4gKi9cbi5iYWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAtMTsgfVxuXG4vKipcclxuICogIEZpcnN0IHNldCBvZiBiYWxscy5cclxuICovXG4uYmFsbC1wdXJwbGUge1xuICB0b3A6IC0yNTBweDtcbiAgcmlnaHQ6IC0xODBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmJhbGwtcHVycGxlIHtcbiAgICAgIHRvcDogLTIwMHB4O1xuICAgICAgcmlnaHQ6IC0xNzBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuYmFsbC1wdXJwbGUge1xuICAgICAgdG9wOiAtMjQwcHg7XG4gICAgICByaWdodDogLTIyMHB4OyB9IH1cblxuLmJhbGwtb3JhbmdlIHtcbiAgdG9wOiAzMjBweDtcbiAgbGVmdDogLTIzMHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuYmFsbC1vcmFuZ2Uge1xuICAgICAgbGVmdDogLTI1MHB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmJhbGwtb3JhbmdlIHtcbiAgICAgIGxlZnQ6IC0zMDBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuYmFsbC1vcmFuZ2Uge1xuICAgICAgbGVmdDogLTI0MHB4OyB9IH1cblxuLmJhbGwtZ3JlZW4ge1xuICB0b3A6IDE2MDBweDtcbiAgcmlnaHQ6IC0xODBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmJhbGwtZ3JlZW4ge1xuICAgICAgcmlnaHQ6IC0yMDBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuYmFsbC1ncmVlbiB7XG4gICAgICByaWdodDogLTI0MHB4OyB9IH1cblxuLyoqXHJcbiAqICBTZWNvbmQgc2V0IG9mIGJhbGxzLlxyXG4gKi9cbi5iYWxsLXB1cnBsZS0tc2Vjb25kIHtcbiAgdG9wOiAyNDAwcHg7XG4gIGxlZnQ6IC0xODBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmJhbGwtcHVycGxlLS1zZWNvbmQge1xuICAgICAgbGVmdDogLTE3MHB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5iYWxsLXB1cnBsZS0tc2Vjb25kIHtcbiAgICAgIGxlZnQ6IC0yNDBweDsgfSB9XG5cbi5iYWxsLW9yYW5nZS0tc2Vjb25kIHtcbiAgdG9wOiAzMDAwcHg7XG4gIHJpZ2h0OiAtMjcwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5iYWxsLW9yYW5nZS0tc2Vjb25kIHtcbiAgICAgIHJpZ2h0OiAtMzgwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuYmFsbC1vcmFuZ2UtLXNlY29uZCB7XG4gICAgICByaWdodDogLTMwMHB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5iYWxsLW9yYW5nZS0tc2Vjb25kIHtcbiAgICAgIHJpZ2h0OiAtMjQwcHg7IH0gfVxuXG4uYmFsbC1ncmVlbi0tc2Vjb25kIHtcbiAgdG9wOiAzODAwcHg7XG4gIGxlZnQ6IC0xODBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmJhbGwtZ3JlZW4tLXNlY29uZCB7XG4gICAgICBsZWZ0OiAtMzAwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLmJhbGwtZ3JlZW4tLXNlY29uZCB7XG4gICAgICBsZWZ0OiAtMjQwcHg7IH0gfVxuXG4vKipcclxuICogIFRoaXJkIHNldCBvZiBiYWxscy5cclxuICovXG4uYmFsbC1wdXJwbGUtLXRoaXJkIHtcbiAgdG9wOiA0NjAwcHg7XG4gIHJpZ2h0OiAtMTgwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5iYWxsLXB1cnBsZS0tdGhpcmQge1xuICAgICAgcmlnaHQ6IC0xODBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5iYWxsLXB1cnBsZS0tdGhpcmQge1xuICAgICAgcmlnaHQ6IC0zMDBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuYmFsbC1wdXJwbGUtLXRoaXJkIHtcbiAgICAgIHJpZ2h0OiAtMjQwcHg7IH0gfVxuXG4uYmFsbC1vcmFuZ2UtLXRoaXJkIHtcbiAgdG9wOiA1NDAwcHg7XG4gIGxlZnQ6IC0xODBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmJhbGwtb3JhbmdlLS10aGlyZCB7XG4gICAgICBsZWZ0OiAtMzgwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuYmFsbC1vcmFuZ2UtLXRoaXJkIHtcbiAgICAgIGxlZnQ6IC0zMDBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuYmFsbC1vcmFuZ2UtLXRoaXJkIHtcbiAgICAgIGxlZnQ6IC0yNDBweDsgfSB9XG5cbi5iYWxsLWdyZWVuLS10aGlyZCB7XG4gIHRvcDogNjIwMHB4O1xuICByaWdodDogLTE4MHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuYmFsbC1ncmVlbi0tdGhpcmQge1xuICAgICAgcmlnaHQ6IC0zODBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5iYWxsLWdyZWVuLS10aGlyZCB7XG4gICAgICByaWdodDogLTMwMHB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5iYWxsLWdyZWVuLS10aGlyZCB7XG4gICAgICByaWdodDogLTI0MHB4OyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQnJlYWRjcnVtYnNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiAgQnJlYWRjcnVtYnMuXHJcbiAqL1xuLmJyZWFkY3J1bWJzIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTdlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAxMDBweCAwIDUwcHg7XG4gIGNvbG9yOiAjYWJiOWMyOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZzogNzVweCAwIDUwcHg7IH0gfVxuICAuYnJlYWRjcnVtYnMuaXMtZW1wdHkge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLmJyZWFkY3J1bWJzIC53cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmJyZWFkY3J1bWJzIC5idXR0b24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAuYnJlYWRjcnVtYnMgLmJ1dHRvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICByaWdodDogLTE4MnB4O1xuICAgICAgICBib3R0b206IDU3cHg7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAgIC5icmVhZGNydW1icyAuYnV0dG9uIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLmJyZWFkY3J1bWJzIC5idXR0b24uYnV0dG9uLS1xdWVzdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4vKipcclxuICogIEJyZWFkY3J1bWIgY29udGFpbmVyLlxyXG4gKi9cbi5icmVhZGNydW1iIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5icmVhZGNydW1iIGEgc3ZnIHtcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5icmVhZGNydW1iIHN2ZyB7XG4gICAgd2lkdGg6IDI1cHg7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuXG4vKipcclxuICogIElmIGEgcGFnZSBvbmx5IGhhcyAxIGJyZWFkY3J1bWIuXHJcbiAqL1xuLmlzLXByaW1hcnktYnJlYWRjcnVtYiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgyMjQuN2RlZywgIzhiMmRlOSAwJSwgIzBiMTRhMyAxMDAlKTtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LWZhbWlseTogXCJOdW5pdG9cIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4OyB9XG4gIC5pcy1wcmltYXJ5LWJyZWFkY3J1bWIgc3ZnIHtcbiAgICB3aWR0aDogMTVweDtcbiAgICBoZWlnaHQ6IDE1cHg7XG4gICAgbWFyZ2luOiAwIDEwcHggMCAwOyB9XG5cbi8qKlxyXG4gKiAgQnJlYWRjcnVtYiBpdGVtLlxyXG4gKi9cbi5icmVhZGNydW1iIGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAuYnJlYWRjcnVtYiBsaS5maXJzdCB7XG4gICAgcGFkZGluZzogMTBweCAxNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMjI0LjdkZWcsICM4YjJkZTkgMCUsICMwYjE0YTMgMTAwJSk7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtZmFtaWx5OiBcIk51bml0b1wiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAuYnJlYWRjcnVtYiBsaS5maXJzdCB7XG4gICAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4OyB9IH1cbiAgICAuYnJlYWRjcnVtYiBsaS5maXJzdCAuZmEtYW5nbGUtcmlnaHQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5icmVhZGNydW1iIGxpLmZpcnN0IC5mYS1icm93c2VyIHtcbiAgICAgIHdpZHRoOiAxM3B4O1xuICAgICAgaGVpZ2h0OiAxM3B4O1xuICAgICAgbWFyZ2luOiAwIDEwcHggMCAwOyB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAgIC5icmVhZGNydW1iIGxpLmZpcnN0IC5mYS1icm93c2VyIHtcbiAgICAgICAgICBtYXJnaW46IDA7IH0gfVxuICAuYnJlYWRjcnVtYiBsaTpub3QoOm50aC1jaGlsZCgxKSkge1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENNUyBPdXRwdXRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBFdmVyeSBjb25jZWl2YWJsZSBIVE1MIGVsZW1lbnQgd2l0aGluIGEgYC5jbXMtb3V0cHV0YCB3cmFwcGVyLlxyXG4gKlxyXG4gKiAxLiBFeGNsdWRlIGxhc3QgY2hpbGRzLlxyXG4gKi9cbi5jbXMtb3V0cHV0IHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzNlbTtcbiAgbWFyZ2luLXRvcDogNTBweDtcbiAgY29sb3I6ICMwNDJlNGI7XG4gIGZvbnQtZmFtaWx5OiBcIk51bml0b1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogMzAwOyB9XG4gIC5jbXMtb3V0cHV0ICoge1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICAvKiAxICovIH1cbiAgLmNtcy1vdXRwdXQgPiBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1MHB4OyB9XG4gIC5jbXMtb3V0cHV0IHVsLFxuICAuY21zLW91dHB1dCBvbCB7XG4gICAgbWFyZ2luOiAtMzBweCAxMDBweCA2MHB4IDEzNXB4O1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgY291bnRlci1yZXNldDogbXktYXdlc29tZS1jb3VudGVyOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAgIC5jbXMtb3V0cHV0IHVsLFxuICAgICAgLmNtcy1vdXRwdXQgb2wge1xuICAgICAgICBtYXJnaW46IC0zMHB4IDEwMHB4IDYwcHggNTBweDsgfSB9XG4gICAgLmNtcy1vdXRwdXQgdWwgbGksXG4gICAgLmNtcy1vdXRwdXQgb2wgbGkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgICBjb3VudGVyLWluY3JlbWVudDogbXktYXdlc29tZS1jb3VudGVyOyB9XG4gICAgICAuY21zLW91dHB1dCB1bCBsaTo6YmVmb3JlLFxuICAgICAgLmNtcy1vdXRwdXQgb2wgbGk6OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDJweDtcbiAgICAgICAgbGVmdDogLTI1cHg7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMjI0LjdkZWcsICM4YjJkZTkgMCUsICMwYjE0YTMgMTAwJSk7XG4gICAgICAgIGJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBjb250ZW50OiBjb3VudGVyKG15LWF3ZXNvbWUtY291bnRlcik7XG4gICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OyB9XG4gIC5jbXMtb3V0cHV0IHVsIHtcbiAgICBtYXJnaW46IC0zMHB4IDEwMHB4IDYwcHggMTM1cHg7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAgIC5jbXMtb3V0cHV0IHVsIHtcbiAgICAgICAgbWFyZ2luOiAtMzBweCAxMDBweCA2MHB4IDUwcHg7IH0gfVxuICAgIC5jbXMtb3V0cHV0IHVsIGxpIHtcbiAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNzY0NzFlbTsgfVxuICAgICAgLmNtcy1vdXRwdXQgdWwgbGk6OmJlZm9yZSB7XG4gICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgbGVmdDogLTE2cHg7XG4gICAgICAgIHdpZHRoOiA3cHg7XG4gICAgICAgIGhlaWdodDogN3B4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMDQyZTRiO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgb3BhY2l0eTogMC44OyB9XG4gIC5jbXMtb3V0cHV0IHAge1xuICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICBsaW5lLWhlaWdodDogMS43NjQ3MWVtOyB9XG4gIC5jbXMtb3V0cHV0IHAgPiBhIHtcbiAgICBjb2xvcjogYmxhY2s7IH1cbiAgICAuY21zLW91dHB1dCBwID4gYTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBEYXNoYm9hcmQgcmVsZXZhbnQuXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uZGFzaGJvYXJkLWFydGljbGVzX190aXRsZSxcbi5kYXNoYm9hcmQtZG93bmxvYWRzX190aXRsZSxcbi5kYXNoYm9hcmQtcXVlc3Rpb25zX190aXRsZSB7XG4gIG1hcmdpbjogNTBweCAwIDQwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5kYXNoYm9hcmQtYXJ0aWNsZXNfX3RpdGxlLFxuICAgIC5kYXNoYm9hcmQtZG93bmxvYWRzX190aXRsZSxcbiAgICAuZGFzaGJvYXJkLXF1ZXN0aW9uc19fdGl0bGUge1xuICAgICAgbWFyZ2luOiA1MHB4IDAgMjVweDsgfSB9XG5cbi5kYXNoYm9hcmQtcXVlc3Rpb25zX190aXRsZSB7XG4gIG1hcmdpbjogMzBweCAwIDQwcHg7IH1cblxuLmRhc2hib2FyZC1hcnRpY2xlc19fYnV0dG9ucyxcbi5kYXNoYm9hcmQtZG93bmxvYWRzX19idXR0b25zLFxuLmRhc2hib2FyZC1xdWVzdGlvbnNfX2J1dHRvbnMge1xuICBtYXJnaW4tdG9wOiA1MHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuZGFzaGJvYXJkLWFydGljbGVzX19idXR0b25zLFxuICAgIC5kYXNoYm9hcmQtZG93bmxvYWRzX19idXR0b25zLFxuICAgIC5kYXNoYm9hcmQtcXVlc3Rpb25zX19idXR0b25zIHtcbiAgICAgIG1hcmdpbi10b3A6IDMwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmRhc2hib2FyZC1hcnRpY2xlc19fYnV0dG9ucyAuYnV0dG9uLFxuICAgIC5kYXNoYm9hcmQtZG93bmxvYWRzX19idXR0b25zIC5idXR0b24sXG4gICAgLmRhc2hib2FyZC1xdWVzdGlvbnNfX2J1dHRvbnMgLmJ1dHRvbiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICBmb250LXNpemU6IDAuODVlbTsgfSB9XG5cbi5kYXNoYm9hcmQtYXJ0aWNsZXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLnN3aXBlLWljb24ge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuc3dpcGUtaWNvbiB7XG4gICAgICBvcGFjaXR5OiAxOyB9IH1cbiAgLnN3aXBlLWljb24gc3ZnIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDI1cHg7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIGNvbG9yOiAjMDQyZTRiO1xuICAgIHotaW5kZXg6IDM7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAuc3dpcGUtaWNvbiBzdmcge1xuICAgICAgICBtYXJnaW4tdG9wOiAtMTBweDsgfSB9XG4gIC5zd2lwZS1pY29uIC51cCxcbiAgLnN3aXBlLWljb24gLmRvd24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuc3dpcGUtaWNvbiAudXAgc3ZnLFxuICAgIC5zd2lwZS1pY29uIC5kb3duIHN2ZyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnN3aXBlLWljb24gLnVwIHN2ZyB7XG4gICAgdG9wOiA3cHg7XG4gICAgbGVmdDogNXB4O1xuICAgIGFuaW1hdGlvbjogc3dpcGVGYWRlUmlnaHQgMjAwMG1zIGVhc2UgaW5maW5pdGU7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAuc3dpcGUtaWNvbiAudXAgc3ZnIHtcbiAgICAgICAgdG9wOiAzcHg7IH0gfVxuICAuc3dpcGUtaWNvbiAuZG93biBzdmcge1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgYm90dG9tOiA3cHg7XG4gICAgYW5pbWF0aW9uOiBzd2lwZUZhZGVMZWZ0IDIwMDBtcyBlYXNlIGluZmluaXRlOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLnN3aXBlLWljb24gLmRvd24gc3ZnIHtcbiAgICAgICAgYm90dG9tOiAzcHg7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBEYXNoYm9hcmQgc2hvcnRjdXQuXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uZGFzaGJvYXJkLXNob3J0Y3V0IHtcbiAgbWFyZ2luLWJvdHRvbTogMTAwcHg7IH1cblxuLmRhc2hib2FyZC1zaG9ydGN1dF9fdGl0bGUge1xuICBtYXJnaW46IDYwcHggMCA1MHB4OyB9XG5cbi5kYXNoYm9hcmQtc2hvcnRjdXRfX2NvbHVtbnMge1xuICBtYXgtd2lkdGg6IDYxMHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuZGFzaGJvYXJkLXNob3J0Y3V0X19jb2x1bW5zIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG5cbi5kYXNoYm9hcmQtc2hvcnRjdXRfX2NvbHVtbiB7XG4gIHdpZHRoOiAxOTBweDsgfVxuICAuZGFzaGJvYXJkLXNob3J0Y3V0X19jb2x1bW4gLmhlYWRpbmctMy1ibHVlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuZGFzaGJvYXJkLXNob3J0Y3V0X19jb2x1bW4ge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4uZGFzaGJvYXJkLXNob3J0Y3V0X19idXR0b24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxOTBweDtcbiAgaGVpZ2h0OiA5NXB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2FiYjljMjtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6ICMwNDJlNGI7XG4gIGZvbnQtZmFtaWx5OiBcIk51bml0b1wiLCBzYW5zLXNlcmlmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5kYXNoYm9hcmQtc2hvcnRjdXRfX2J1dHRvbiB7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSAxMHB4KTsgfSB9XG4gIC5kYXNoYm9hcmQtc2hvcnRjdXRfX2J1dHRvbjpob3ZlciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzRhMjBjNjtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMjI0LjdkZWcsICM4YjJkZTkgMCUsICMwYjE0YTMgMTAwJSk7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDIwcHggMCByZ2JhKDEzNiwgNDUsIDIzMSwgMC4zKTsgfVxuICAgIC5kYXNoYm9hcmQtc2hvcnRjdXRfX2J1dHRvbjpob3ZlciBzdmcge1xuICAgICAgY29sb3I6IHdoaXRlOyB9XG4gIC5kYXNoYm9hcmQtc2hvcnRjdXRfX2J1dHRvbiBzdmcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMjVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMTBweDtcbiAgICBjb2xvcjogIzA0MmU0YjsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBEZWZhdWx0XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogIE1haW4gZWxlbWVudC5cclxuICovXG4uZGVmYXVsdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogNzVweCAwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuZGVmYXVsdCB7XG4gICAgICBtYXJnaW46IDUwcHggMDsgfSB9XG5cbi5jb250ZW50LWRlZmF1bHQge1xuICBtYXJnaW46IDEwMHB4IDAgMDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmNvbnRlbnQtZGVmYXVsdCB7XG4gICAgICBtYXJnaW46IDE1MHB4IDAgMDsgfSB9XG5cbi8qKlxyXG4gKiAgRWRpdG9yLlxyXG4gKi9cbi5kZWZhdWx0X19lZGl0b3Ige1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS4zMzMzM2VtO1xuICBtYXJnaW4tdG9wOiA1MHB4O1xuICBjb2xvcjogIzA0MmU0YjtcbiAgZm9udC1mYW1pbHk6IFwiTnVuaXRvXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIG9wYWNpdHk6IDAuODsgfVxuICAuZGVmYXVsdF9fZWRpdG9yIGIsXG4gIC5kZWZhdWx0X19lZGl0b3Igc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG5cbi5kZWZhdWx0X190ZXh0IHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzNlbTtcbiAgZm9udC1mYW1pbHk6IFwiTnVuaXRvXCIsIHNhbnMtc2VyaWY7IH1cbiAgLmRlZmF1bHRfX3RleHQuY29sb3Itd2hpdGUtMTAwIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cblxuLyoqXHJcbiAqICBEZWZhdWx0IGJ1dHRvbiBzZXR0aW5ncy5cclxuICovXG4uZGVmYXVsdF9fYnV0dG9uIHtcbiAgbWFyZ2luLXRvcDogMzBweDtcbiAgcGFkZGluZzogMTBweCAyMHB4OyB9XG5cbi50aGlyZC1zdGVwICsgLmRlZmF1bHQge1xuICBtYXgtd2lkdGg6IDYyMHB4O1xuICBtYXJnaW46IC03NXB4IGF1dG8gMTUwcHg7XG4gIHBhZGRpbmc6IDIwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC50aGlyZC1zdGVwICsgLmRlZmF1bHQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDc1cHg7IH0gfVxuXG4uYnJlYWRjcnVtYnMgKyAuZGVmYXVsdCB7XG4gIG1hcmdpbjogMCAwIDc1cHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRG9jdW1lbnQgaXRlbS5cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiAgU2luZ2xlIGl0ZW0uXHJcbiAqL1xuLmRvY3VtZW50LWl0ZW0sXG4ucXVlc3Rpb24taXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgdHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogIzA0MmU0YjtcbiAgYm94LXNoYWRvdzogMCAycHggMTBweCAzcHggI2YyZjZmOTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5kb2N1bWVudC1pdGVtOmhvdmVyLFxuICAgIC5xdWVzdGlvbi1pdGVtOmhvdmVyIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggM3B4IHJnYmEoNCwgNDYsIDc1LCAwLjIxKTsgfVxuICAgICAgLmRvY3VtZW50LWl0ZW06aG92ZXIgLmRvY3VtZW50LWl0ZW1fX2dvLFxuICAgICAgLnF1ZXN0aW9uLWl0ZW06aG92ZXIgLmRvY3VtZW50LWl0ZW1fX2dvIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzA0MmU0YjtcbiAgICAgICAgY29sb3I6IHdoaXRlOyB9IH1cbiAgLmRvY3VtZW50LWl0ZW06bnRoLWxhc3QtY2hpbGQoMSksXG4gIC5xdWVzdGlvbi1pdGVtOm50aC1sYXN0LWNoaWxkKDEpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5kb2N1bWVudC1pdGVtLmpzLWhpZGUsXG4gIC5xdWVzdGlvbi1pdGVtLmpzLWhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmRvY3VtZW50LWl0ZW0uanMtcmVtb3ZlLFxuICAucXVlc3Rpb24taXRlbS5qcy1yZW1vdmUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmRvY3VtZW50LWl0ZW0gLnJvdyxcbiAgLnF1ZXN0aW9uLWl0ZW0gLnJvdyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmRvY3VtZW50LWl0ZW0gLnN3aXBlLWljb24sXG4gIC5xdWVzdGlvbi1pdGVtIC5zd2lwZS1pY29uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpOyB9XG4gICAgLmRvY3VtZW50LWl0ZW0gLnN3aXBlLWljb24gc3ZnLFxuICAgIC5xdWVzdGlvbi1pdGVtIC5zd2lwZS1pY29uIHN2ZyB7XG4gICAgICB3aWR0aDogMzBweDtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIGNvbG9yOiAjMDQyZTRiOyB9XG5cbi5kb2N1bWVudC1pdGVtX191cGxvYWRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDI1JTtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDY4MHB4KSB7XG4gICAgLmRvY3VtZW50LWl0ZW1fX3VwbG9hZGVyIHtcbiAgICAgIHdpZHRoOiA1MCU7IH0gfVxuICAuZG9jdW1lbnQtaXRlbV9fdXBsb2FkZXIgLmZhLWJ1aWxkaW5nIHtcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgLmRvY3VtZW50LWl0ZW0uaGFzLWRlbGV0ZSAuZG9jdW1lbnQtaXRlbV9fZ28ge1xuICAgIHRvcDogNTAlO1xuICAgIGhlaWdodDogNTAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAxMHB4OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAuZG9jdW1lbnQtaXRlbS5oYXMtZGVsZXRlIC5kb2N1bWVudC1pdGVtX19kZWxldGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGhlaWdodDogNTAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMmY2Zjk7XG4gICAgYm9yZGVyLXJhZGl1czogMCAxMHB4IDAgMDsgfVxuICAgIC5kb2N1bWVudC1pdGVtLmhhcy1kZWxldGUgLmRvY3VtZW50LWl0ZW1fX2RlbGV0ZSBzdmcge1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBoZWlnaHQ6IDIwcHg7IH0gfVxuXG4ucXVlc3Rpb24taXRlbSAuZG9jdW1lbnQtaXRlbV9fY2VudGVyIHtcbiAgcGFkZGluZzogMjBweCAyNXB4IDEwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnF1ZXN0aW9uLWl0ZW0gLmRvY3VtZW50LWl0ZW1fX2NlbnRlciB7XG4gICAgICBwYWRkaW5nOiAyMHB4IDIwcHggMTBweDsgfSB9XG5cbi8qKlxyXG4gKiAgSWNvbi5cclxuICovXG4uZG9jdW1lbnQtaXRlbV9faWNvbiB7XG4gIGZvbnQtc2l6ZTogMjVweDtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDYwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMTBweCAwIDAgMTBweDtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LWZhbWlseTogXCJNb250c2VycmF0XCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDY4MHB4KSB7XG4gICAgLmRvY3VtZW50LWl0ZW1fX2ljb24ge1xuICAgICAgd2lkdGg6IDMwcHg7IH0gfVxuICAuZG9jdW1lbnQtaXRlbV9faWNvbi5hcnRpY2xlIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMjI0LjdkZWcsICNmNTJmYWYgMCUsICNmZjMwMzAgMTAwJSk7IH1cbiAgLmRvY3VtZW50LWl0ZW1fX2ljb24uZG93bmxvYWQge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgyMjQuN2RlZywgIzAwZDY2MCAwJSwgIzAwYmZkZiAxMDAlKTsgfVxuICAuZG9jdW1lbnQtaXRlbV9faWNvbi5xdWVzdGlvbiB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDIyNC4zNmRlZywgI2ZmYzAwMCAwJSwgI2ZmNmUyYyAxMDAlKTsgfVxuXG4vKipcclxuICogIENlbnRlciBjb250ZW50ICh0aXRsZSAmIGRhdGUpLlxyXG4gKi9cbi5kb2N1bWVudC1pdGVtX19jZW50ZXIge1xuICBtYXJnaW46IDAgNDBweCAwIDYwcHg7XG4gIHBhZGRpbmc6IDIwcHggMzBweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNjgwcHgpIHtcbiAgICAuZG9jdW1lbnQtaXRlbV9fY2VudGVyIHtcbiAgICAgIG1hcmdpbjogMCA1MHB4IDAgMzBweDtcbiAgICAgIHBhZGRpbmc6IDIwcHggMTBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5kb2N1bWVudC1pdGVtX19jZW50ZXIge1xuICAgICAgcGFkZGluZzogMjBweDsgfSB9XG4gIC5kb2N1bWVudC1pdGVtX19jZW50ZXIgc3ZnIHtcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG4gICAgLmRvY3VtZW50LWl0ZW1fX2NlbnRlciBzdmcuZmEtYnVpbGRpbmcge1xuICAgICAgaGVpZ2h0OiAxMXB4OyB9XG4gICAgLmRvY3VtZW50LWl0ZW1fX2NlbnRlciBzdmcuZmEtdXNlciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IC0ycHg7IH1cblxuLmRvY3VtZW50LWl0ZW0gLmZhLWNhbGVuZGFyLWFsdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAzcHg7IH1cblxuLnF1ZXN0aW9uLWl0ZW0gLmZhLWNhbGVuZGFyLWFsdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMXB4OyB9XG5cbi8qKlxyXG4gKiAgUXVlc3Rpb24uXHJcbiAqL1xuLmRvY3VtZW50LWl0ZW1fX3F1ZXN0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgcGFkZGluZzogMzBweCAwO1xuICBmb250LWZhbWlseTogXCJOdW5pdG9cIiwgc2Fucy1zZXJpZjsgfVxuICAuZG9jdW1lbnQtaXRlbV9fcXVlc3Rpb246OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZDogI2RlZGRmNTtcbiAgICBjb250ZW50OiAnJzsgfVxuXG4vKipcclxuICogIFRpdGxlLlxyXG4gKi9cbi5kb2N1bWVudC1pdGVtX190aXRsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDYwJTtcbiAgY29sb3I6ICMwNDJlNGI7XG4gIGZvbnQtZmFtaWx5OiBcIk51bml0b1wiLCBzYW5zLXNlcmlmO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNjgwcHgpIHtcbiAgICAuZG9jdW1lbnQtaXRlbV9fdGl0bGUge1xuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5kb2N1bWVudC1pdGVtX190aXRsZSB7XG4gICAgICB3aWR0aDogNTAlOyB9IH1cbiAgLmRvY3VtZW50LWl0ZW1fX3RpdGxlOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMXB4O1xuICAgIGJhY2tncm91bmQ6ICNkZWRkZjU7XG4gICAgY29udGVudDogJyc7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjgwcHgpIHtcbiAgICAgIC5kb2N1bWVudC1pdGVtX190aXRsZTo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLyoqXHJcbiAqICBEYXRlLlxyXG4gKi9cbi5kb2N1bWVudC1pdGVtX19kYXRlIHtcbiAgd2lkdGg6IDE1JTtcbiAgY29sb3I6ICMwNDJlNGI7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDY4MHB4KSB7XG4gICAgLmRvY3VtZW50LWl0ZW1fX2RhdGUge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmRvY3VtZW50LWl0ZW1fX2RhdGUge1xuICAgICAgd2lkdGg6IDIwJTsgfSB9XG4gIC5kb2N1bWVudC1pdGVtX19kYXRlIHN2ZyB7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuXG4vKipcclxuICogIExpbmsuXHJcbiAqL1xuLmRvY3VtZW50LWl0ZW1fX2dvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiA1NXB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjUwbXMgZWFzZTtcbiAgYm9yZGVyLXJhZGl1czogMCAxMHB4IDEwcHggMDtcbiAgYmFja2dyb3VuZDogI2RlZGRmNTtcbiAgY29sb3I6ICM0YTIwYzY7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5kb2N1bWVudC1pdGVtX19nbyB7XG4gICAgICB3aWR0aDogNTBweDsgfSB9XG4gIC5kb2N1bWVudC1pdGVtX19nbyBzdmcge1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2ODBweCkge1xuICAgICAgLmRvY3VtZW50LWl0ZW1fX2dvIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7IH0gfVxuXG4vKipcclxuICogIERlbGV0ZS5cclxuICovXG4uZG9jdW1lbnQtaXRlbV9fZGVsZXRlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAtNjVweDtcbiAgYm90dG9tOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5kb2N1bWVudC1pdGVtX19kZWxldGUgc3ZnIHtcbiAgICB3aWR0aDogMTVweDtcbiAgICBoZWlnaHQ6IDE1cHg7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMjUwbXMgZWFzZTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5kb2N1bWVudC1pdGVtX19kZWxldGU6aG92ZXIgc3ZnIHtcbiAgICAgIGNvbG9yOiAjZmY2ZTJjOyB9IH1cblxuLyoqXHJcbiAqICBGb290ZXIuXHJcbiAqL1xuLmRvY3VtZW50LWl0ZW1fX2Zvb3RlciB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3ZW07XG4gIGNvbG9yOiAjMDQyZTRiO1xuICBvcGFjaXR5OiAwLjY7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAuaXRlbS1uYW1lIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAuaXRlbS1vcmdhbmlzYXRpb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gIC5pdGVtLW9yZ2FuaXNhdGlvbiBzcGFuIHtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9IH1cblxuLyoqXHJcbiAqICBEYXNoYm9hcmQgZXhjZXB0aW9ucy5cclxuICovXG4uYXJ0aWNsZXMgLmRvY3VtZW50LWl0ZW0ge1xuICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5hcnRpY2xlcyAuZG9jdW1lbnQtaXRlbTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMjI0LjdkZWcsICNmNTJmYWYgMCUsICNmZjMwMzAgMTAwJSk7XG4gICAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAgIC5hcnRpY2xlcyAuZG9jdW1lbnQtaXRlbTpob3ZlciAuZG9jdW1lbnQtaXRlbV9faWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgICAuYXJ0aWNsZXMgLmRvY3VtZW50LWl0ZW06aG92ZXIgLmRvY3VtZW50LWl0ZW1fX3RpdGxlIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAgICAgLmFydGljbGVzIC5kb2N1bWVudC1pdGVtOmhvdmVyIC5kb2N1bWVudC1pdGVtX19kYXRlIHtcbiAgICAgICAgY29sb3I6IHdoaXRlOyB9IH1cblxuLmlzLWRhc2hib2FyZCAub3dsLXN0YWdlLW91dGVyIHtcbiAgbWFyZ2luOiAtMTBweDtcbiAgcGFkZGluZzogMTBweDsgfVxuXG4uaXMtZGFzaGJvYXJkIC5kb2N1bWVudC1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuaXMtZGFzaGJvYXJkIC5kb2N1bWVudC1pdGVtIHtcbiAgICAgIHdpZHRoOiAyNjBweDsgfSB9XG5cbi5pcy1kYXNoYm9hcmQgLmRvY3VtZW50LWl0ZW0gYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuXG4uaXMtZGFzaGJvYXJkIC5kb2N1bWVudC1pdGVtX19pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNjBweDtcbiAgaGVpZ2h0OiA2MHB4O1xuICBtYXJnaW46IGF1dG87XG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xuICBib3JkZXItcmFkaXVzOiA4cHg7IH1cblxuLmlzLWRhc2hib2FyZCAuZG9jdW1lbnQtaXRlbV9fY2VudGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlOyB9XG5cbi5pcy1kYXNoYm9hcmQgLmRvY3VtZW50LWl0ZW1fX3RpdGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQwcHg7XG4gIG1hcmdpbjogMzBweCAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LW92ZXJmbG93OiBpbmhlcml0O1xuICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsgfVxuICAuaXMtZGFzaGJvYXJkIC5kb2N1bWVudC1pdGVtX190aXRsZTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLmlzLWRhc2hib2FyZCAuZG9jdW1lbnQtaXRlbV9fZGF0ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi5pcy1kYXNoYm9hcmQgLmRvY3VtZW50LWl0ZW1fX2dvIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBEb2N1bWVudCBsaXN0LlxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmRvY3VtZW50LWxpc3Qge1xuICBtYXJnaW4tYm90dG9tOiAxMzBweDsgfVxuICAuZG9jdW1lbnQtbGlzdCAudXBsb2FkLWZvcm0ge1xuICAgIG1hcmdpbi10b3A6IDEwMHB4O1xuICAgIHBhZGRpbmctdG9wOiAxMDBweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2I3YzdkMjsgfVxuXG4uZG9jdW1lbnQtbGlzdF9fc2VhcmNoIHtcbiAgbWFyZ2luLWJvdHRvbTogNTBweDsgfVxuXG4uZG9jdW1lbnQtbGlzdF9fc2VhcmNoLnN1YmplY3QtdHlwZS0xLmlzLWJvYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgLmRvY3VtZW50LWxpc3RfX3NlYXJjaC5zdWJqZWN0LXR5cGUtMS5pcy1ib2FyZCAuZG9jdW1lbnQtbGlzdF9fc2VhcmNoLWlucHV0IHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxMHB4KTsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgIC5kb2N1bWVudC1saXN0X19zZWFyY2guc3ViamVjdC10eXBlLTEuaXMtYm9hcmQgLmRvY3VtZW50LWxpc3RfX3NlYXJjaC1pbnB1dCB7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLmRvY3VtZW50LWxpc3RfX3NlYXJjaC5zdWJqZWN0LXR5cGUtMS5pcy1ib2FyZCAuZG9jdW1lbnQtbGlzdF9fc2VhcmNoLXNlbGVjdCB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMTBweCk7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAuZG9jdW1lbnQtbGlzdF9fc2VhcmNoLnN1YmplY3QtdHlwZS0xLmlzLWJvYXJkIC5kb2N1bWVudC1saXN0X19zZWFyY2gtc2VsZWN0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4uZG9jdW1lbnQtbGlzdF9fc2VhcmNoLWlucHV0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiA1MHB4OyB9XG4gIC5kb2N1bWVudC1saXN0X19zZWFyY2gtaW5wdXQgaW5wdXQge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4zMzMzM2VtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiA1cHggMjBweDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXIgMjUwbXMgZWFzZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYjdjN2QyO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgY29sb3I6ICMwNDJlNGI7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVuaXRvXCIsIHNhbnMtc2VyaWY7IH1cbiAgICAuZG9jdW1lbnQtbGlzdF9fc2VhcmNoLWlucHV0IGlucHV0OmhvdmVyIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM0YTIwYzY7IH1cbiAgICAuZG9jdW1lbnQtbGlzdF9fc2VhcmNoLWlucHV0IGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogI2I3YzdkMjtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmRvY3VtZW50LWxpc3RfX3NlYXJjaC1pbnB1dCBzdmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwcHg7XG4gICAgcmlnaHQ6IDIwcHg7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAjYjdjN2QyOyB9XG5cbi5kb2N1bWVudC1saXN0X19zZWFyY2gtc2VsZWN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAyNnB4OyB9XG4gIC5kb2N1bWVudC1saXN0X19zZWFyY2gtc2VsZWN0IGxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgIGNvbG9yOiAjYWJiOWMyOyB9XG4gIC5kb2N1bWVudC1saXN0X19zZWFyY2gtc2VsZWN0IHNlbGVjdCB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjMzMzMzZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDVweCAyMHB4O1xuICAgIHRyYW5zaXRpb246IGJvcmRlciAyNTBtcyBlYXNlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiN2M3ZDI7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjMDQyZTRiO1xuICAgIGZvbnQtZmFtaWx5OiBcIk51bml0b1wiLCBzYW5zLXNlcmlmOyB9XG4gICAgLmRvY3VtZW50LWxpc3RfX3NlYXJjaC1zZWxlY3Qgc2VsZWN0OmhvdmVyIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM0YTIwYzY7IH1cbiAgLmRvY3VtZW50LWxpc3RfX3NlYXJjaC1zZWxlY3Qgc3ZnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAzNXB4O1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBjb2xvcjogIzA0MmU0YjtcbiAgICB6LWluZGV4OiAtMTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBEb2N1bWVudCBtZW51XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogIE1haW4gZWxlbWVudC5cclxuICovXG4uZG9jdW1lbnQtbWVudSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAxNDhweDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgZm9udC1mYW1pbHk6IFwiTnVuaXRvXCIsIHNhbnMtc2VyaWY7XG4gIGJveC1zaGFkb3c6IDAgMTNweCAxNXB4IDAgcmdiYSg0LCA0NiwgNzUsIDAuMDQpO1xuICB6LWluZGV4OiAyMDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmRvY3VtZW50LW1lbnUge1xuICAgICAgdG9wOiAxOTVweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuZG9jdW1lbnQtbWVudSB7XG4gICAgICB0b3A6IDExMHB4OyB9IH1cbiAgLmRvY3VtZW50LW1lbnUgLnN1Ym1lbnUtcmlnaHQge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cblxuLmRvY3VtZW50LW1lbnUgLnN1Ym1lbnUtbGVmdCB7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgLmRvY3VtZW50LW1lbnUgLnN1Ym1lbnUtbGVmdCB7XG4gICAgICB3aWR0aDogMTg1cHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5kb2N1bWVudC1tZW51IC5zdWJtZW51LWxlZnQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgei1pbmRleDogMjE7IH0gfVxuXG4uZG9jdW1lbnQtbWVudV9fbW9iaWxlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZG9jdW1lbnQtbWVudV9fbGlua3Mge1xuICB3aWR0aDogY2FsYygxMDAlIC0gMTg1cHgpOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLmRvY3VtZW50LW1lbnVfX2xpbmtzIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTUwcHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCA0NTBtcyBlYXNlO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgb3ZlcmZsb3cteTogYXV0bzsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLmRvY3VtZW50LW1lbnVfX2xpbmtzLmlzLWFjdGl2ZSB7XG4gICAgICB0b3A6IDYwcHg7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgei1pbmRleDogMjA7XG4gICAgICBwb2ludGVyLWV2ZW50czogYWxsOyB9IH1cblxuLmRvY3VtZW50LWxlZnRfX2xpbmtzIHtcbiAgd2lkdGg6IDgyJTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5kb2N1bWVudC1sZWZ0X19saW5rcyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOyB9IH1cblxuLmRvY3VtZW50LW1lbnVfX2l0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5kb2N1bWVudC1tZW51X19pdGVtIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiAjMDQyZTRiOyB9IH1cbiAgLmRvY3VtZW50LW1lbnVfX2l0ZW0gYSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IDAgMTVweDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgICAuZG9jdW1lbnQtbWVudV9faXRlbSBhIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMjVweCAwO1xuICAgICAgICBjb2xvcjogd2hpdGU7IH0gfVxuICAgIC5kb2N1bWVudC1tZW51X19pdGVtIGEgc3ZnIHtcbiAgICAgIHdpZHRoOiAxM3B4O1xuICAgICAgaGVpZ2h0OiAxM3B4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDVweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gICAgLmRvY3VtZW50LW1lbnVfX2l0ZW06aG92ZXIge1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG4gICAgICBiYWNrZ3JvdW5kOiAjMDQyZTRiOyB9XG4gICAgICAuZG9jdW1lbnQtbWVudV9faXRlbTpob3ZlciBhIHtcbiAgICAgICAgY29sb3I6IHdoaXRlOyB9XG4gICAgICAuZG9jdW1lbnQtbWVudV9faXRlbTpob3ZlciAuZG9jdW1lbnQtbWVudV9fc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgei1pbmRleDogOTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsgfSB9XG5cbi5kb2N1bWVudC1tZW51X19zdWJtZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDcwJTtcbiAgbGVmdDogLTMwJTtcbiAgd2lkdGg6IDQwdnc7XG4gIG1heC13aWR0aDogNTAwcHg7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyMTBweCk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgdHJhbnNpdGlvbjogYWxsIDM1MG1zIGVhc2U7XG4gIGJhY2tncm91bmQ6ICMwNDJlNGI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMDtcbiAgei1pbmRleDogLTE7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLmRvY3VtZW50LW1lbnVfX3N1Ym1lbnUge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgNDUwbXMgZWFzZTtcbiAgICAgIGJhY2tncm91bmQ6ICMwNTNkNjM7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfSB9XG4gIC5kb2N1bWVudC1tZW51X19zdWJtZW51Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDEwcHg7IH1cbiAgLmRvY3VtZW50LW1lbnVfX3N1Ym1lbnU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAuZG9jdW1lbnQtbWVudV9fc3VibWVudTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjZlMmM7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5kb2N1bWVudC1tZW51X19zdWJtZW51LmlzLWFjdGl2ZSB7XG4gICAgICBtYXgtaGVpZ2h0OiAxNTAwcHg7XG4gICAgICBwYWRkaW5nOiAxNXB4IDA7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsgfSB9XG5cbi5kb2N1bWVudC1tZW51X19zdWJtZW51LWl0ZW0ge1xuICBwYWRkaW5nOiAwIDYwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAzNTBtcyBlYXNlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLmRvY3VtZW50LW1lbnVfX3N1Ym1lbnUtaXRlbSB7XG4gICAgICBwYWRkaW5nOiAwIDMwcHg7IH0gfVxuICAuZG9jdW1lbnQtbWVudV9fc3VibWVudS1pdGVtOm50aC1jaGlsZCgwKSBhIHtcbiAgICBib3JkZXItYm90dG9tOiAwOyB9XG4gIC5kb2N1bWVudC1tZW51X19zdWJtZW51LWl0ZW06Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7IH1cbiAgLmRvY3VtZW50LW1lbnVfX3N1Ym1lbnUtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG4gIC5kb2N1bWVudC1tZW51X19zdWJtZW51LWl0ZW06bnRoLWxhc3QtY2hpbGQoMSkgYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuZG9jdW1lbnQtbWVudV9fc3VibWVudS1pdGVtOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZjZlMmM7IH0gfVxuXG4uZG9jdW1lbnQtbWVudV9fc3VibWVudS1pdGVtIGEge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS4zMzMzM2VtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBwYWRkaW5nOiAxNXB4IDA7XG4gIGZvbnQtZmFtaWx5OiBcIk51bml0b1wiLCBzYW5zLXNlcmlmO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5kb2N1bWVudC1tZW51X19zdWJtZW51LWl0ZW0gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiAjYjdjN2QyO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIG9wYWNpdHk6IDAuMzsgfVxuXG4uZG9jdW1lbnQtbWVudV9fdGVhc2VyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDkwcHg7XG4gIGxlZnQ6IDUwcHg7XG4gIHdpZHRoOiAxODVweDtcbiAgaGVpZ2h0OiA1NXB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXI6IDFweCBkYXNoZWQgIzA0MmU0YjtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgb3BhY2l0eTogMC42O1xuICB6LWluZGV4OiAyOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuZG9jdW1lbnQtbWVudV9fdGVhc2VyIHtcbiAgICAgIHRvcDogODBweDtcbiAgICAgIHdpZHRoOiAzMDhweDtcbiAgICAgIGhlaWdodDogNDBweDsgfSB9XG4gIC5kb2N1bWVudC1tZW51X190ZWFzZXI6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMHB4O1xuICAgIGxlZnQ6IC00MHB4O1xuICAgIHdpZHRoOiAyNXB4O1xuICAgIGhlaWdodDogMzdweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9JbWFnZXMvYXJyb3cuc3ZnXCIpO1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAgIC5kb2N1bWVudC1tZW51X190ZWFzZXI6OmJlZm9yZSB7XG4gICAgICAgIHJpZ2h0OiAtNDBweDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL0ltYWdlcy9hcnJvdzIuc3ZnXCIpOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRG9jdW1lbnQgbWVudVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmRvY3VtZW50LXNpbmdsZV9faGVhZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuZG9jdW1lbnQtc2luZ2xlX19oZWFkIC5sYWJlbCB7XG4gICAgd2lkdGg6IGF1dG87IH1cblxuLmRvY3VtZW50LXNpbmdsZV9fZGF0ZSB7XG4gIG9wYWNpdHk6IDAuNzsgfVxuICAuZG9jdW1lbnQtc2luZ2xlX19kYXRlIHN2ZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMnB4O1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cblxuLmRvY3VtZW50LXNpbmdsZV9faWNvbiB7XG4gIGZvbnQtc2l6ZTogMjVweDtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xMHB4O1xuICBib3R0b206IDA7XG4gIGxlZnQ6IC0xMDVweDtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgcGFkZGluZy10b3A6IDlweDtcbiAgYm9yZGVyLXJhZGl1czogMzNweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDIyNC43ZGVnLCAjZjUyZmFmIDAlLCAjZmYzMDMwIDEwMCUpO1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2ODBweCkge1xuICAgIC5kb2N1bWVudC1zaW5nbGVfX2ljb24ge1xuICAgICAgd2lkdGg6IDMwcHg7IH0gfVxuXG4uZG9jdW1lbnQtc2luZ2xlX190aXRsZSB7XG4gIG1hcmdpbjogNTBweCAwIDUwcHg7IH1cblxuLmRvY3VtZW50LXNpbmdsZV9fZWRpdG9yIHtcbiAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYjdjN2QyOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIERvY3VtZW50IHN1Ym1lbnUuXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uZG9jdW1lbnQtc3VibWVudSB7XG4gIG1hcmdpbi10b3A6IDUwcHg7IH1cblxuLmRvY3VtZW50LXN1Ym1lbnVfX2l0ZW0ge1xuICB3aWR0aDogY2FsYygyNSUgLSAxNXB4KTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmRvY3VtZW50LXN1Ym1lbnVfX2l0ZW0ge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAuZG9jdW1lbnQtc3VibWVudV9faXRlbSBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDE2MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgcGFkZGluZy10b3A6IDE1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBjb2xvcjogIzY4ODI5MztcbiAgICBmb250LWZhbWlseTogXCJOdW5pdG9cIiwgc2Fucy1zZXJpZjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm94LXNoYWRvdzogMCAycHggMTBweCAzcHggI2YyZjZmOTsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgIC5kb2N1bWVudC1zdWJtZW51X19pdGVtIGEge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgIHBhZGRpbmc6IDIzcHggMjBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG4gICAgLmRvY3VtZW50LXN1Ym1lbnVfX2l0ZW0gYTpob3ZlciB7XG4gICAgICBib3gtc2hhZG93OiAwIDJweCAxMHB4IDNweCByZ2JhKDQsIDQ2LCA3NSwgMC4yMSk7IH1cbiAgICAuZG9jdW1lbnQtc3VibWVudV9faXRlbSBhIHN2ZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwcHg7XG4gICAgICBjb2xvcjogIzY4ODI5MzsgfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgICAuZG9jdW1lbnQtc3VibWVudV9faXRlbSBhIHN2ZyB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHRvcDogLTEzcHg7XG4gICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIERvY3VtZW50IHVwbG9hZCBmb3JtLlxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVwbG9hZC1mb3JtIHtcbiAgbWFyZ2luLWJvdHRvbTogMTMwcHg7IH1cblxuLnVwbG9hZC1mb3JtX19uby1hY2Nlc3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCAwIDEwMHB4IDA7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmM5Yzk7XG4gIGNvbG9yOiAjMDQyZTRiO1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4udXBsb2FkLWZvcm1fX3RpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDsgfVxuXG4udXBsb2FkLWZvcm1fX3NlbGVjdHMge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cbi51cGxvYWQtZm9ybV9fc2VsZWN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogY2FsYyg1MCUgLSAxMHB4KTtcbiAgbWFyZ2luLXRvcDogMjVweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLnVwbG9hZC1mb3JtX19zZWxlY3Qge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAudXBsb2FkLWZvcm1fX3NlbGVjdCBsYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICBjb2xvcjogI2FiYjljMjsgfVxuICAudXBsb2FkLWZvcm1fX3NlbGVjdCBzZWxlY3Qge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4zMzMzM2VtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiA1cHggMjBweDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXIgMjUwbXMgZWFzZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYjdjN2QyO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzA0MmU0YjtcbiAgICBmb250LWZhbWlseTogXCJOdW5pdG9cIiwgc2Fucy1zZXJpZjsgfVxuICAgIC51cGxvYWQtZm9ybV9fc2VsZWN0IHNlbGVjdDpob3ZlciB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjNGEyMGM2OyB9XG4gIC51cGxvYWQtZm9ybV9fc2VsZWN0IHN2ZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMzVweDtcbiAgICByaWdodDogMjBweDtcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICMwNDJlNGI7XG4gICAgei1pbmRleDogLTE7IH1cblxuLnVwbG9hZC1mb3JtX191cGxvYWQtZmllbGQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyMjBweDtcbiAgYm9yZGVyOiAxcHggZGFzaGVkICNhYmI5YzI7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAudXBsb2FkLWZvcm1fX3VwbG9hZC1maWVsZCBzdmcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNTBweDtcbiAgICBtYXJnaW46IDUwcHggMCAyNXB4O1xuICAgIGNvbG9yOiAjMDQyZTRiOyB9XG4gIC51cGxvYWQtZm9ybV9fdXBsb2FkLWZpZWxkIGlucHV0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC51cGxvYWQtZm9ybV9fdXBsb2FkLWZpZWxkOmhvdmVyIC5idXR0b24ge1xuICAgIGJhY2tncm91bmQ6ICNmODRlMDA7XG4gICAgYm94LXNoYWRvdzogM3B4IDNweCA3cHggMCByZ2JhKDI1NSwgMTEwLCA0NCwgMC41MSk7IH1cblxuLnVwbG9hZC1mb3JtX191cGxvYWQtYXJlYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4udXBsb2FkLWZvcm1fX2luZm8ge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xuICBsaW5lLWhlaWdodDogMS41Mzg0NmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAyOTBweDtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDQ1cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgYmFja2dyb3VuZDogI2VjZjVmYztcbiAgY29sb3I6IHJnYmEoNCwgNDYsIDc1LCAwLjUpOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTU1MHB4KSB7XG4gICAgLnVwbG9hZC1mb3JtX19pbmZvIHtcbiAgICAgIHRvcDogY2FsYygxMDAlICsgMjVweCk7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE1NTBweCkge1xuICAgIC51cGxvYWQtZm9ybV9faW5mbyB7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHJpZ2h0OiBjYWxjKDEwMCUgKyAxMHB4KTsgfSB9XG4gIC51cGxvYWQtZm9ybV9faW5mbyA+IHN2ZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYyg1MCUgLSA3LjVweCk7XG4gICAgcmlnaHQ6IDIwcHg7XG4gICAgd2lkdGg6IDE1cHg7XG4gICAgaGVpZ2h0OiAxNXB4OyB9XG4gIC51cGxvYWQtZm9ybV9faW5mbzo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBjb250ZW50OiAnJzsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTU1MHB4KSB7XG4gICAgICAudXBsb2FkLWZvcm1fX2luZm86OmFmdGVyIHtcbiAgICAgICAgYm90dG9tOiAxMDAlO1xuICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtIDcuNXB4KTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDcuNXB4IDVweDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZWNmNWZjOyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE1NTBweCkge1xuICAgICAgLnVwbG9hZC1mb3JtX19pbmZvOjphZnRlciB7XG4gICAgICAgIHRvcDogY2FsYyg1MCUgLSA3LjVweCk7XG4gICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgIGJvcmRlci13aWR0aDogNy41cHggMCA3LjVweCA1cHg7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2VjZjVmYzsgfSB9XG5cbi51cGxvYWQtZm9ybV9fdXBsb2FkLWNhcHRpb24ge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBsaW5lLWhlaWdodDogMS4yODU3MWVtO1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgY29sb3I6IHJnYmEoNCwgNDYsIDc1LCAwLjYpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC51cGxvYWQtZm9ybV9fdXBsb2FkLWNhcHRpb24ge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBMYXRlc3QgZG93bmxvYWQuXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uZG93bmxvYWRzLWxhdGVzdF9fdGl0bGUge1xuICBtYXJnaW46IDMwcHggMCA1MHB4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEZvb3RlclxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqICBNYWluIGVsZW1lbnQuXHJcbiAqL1xuLmZvb3RlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6ICMwNDJlNGI7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuZm9vdGVyLmhhcy1tb2JpbGUtbWVudSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNjBweDsgfSB9XG5cbi8qKlxyXG4gKiAgRm9vdGVyIHVwcGVyIHBhcnQuXHJcbiAqL1xuLmZvb3Rlcl9fdXBwZXIge1xuICBwYWRkaW5nOiA3MHB4IDA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5mb290ZXJfX3VwcGVyIHtcbiAgICAgIHBhZGRpbmc6IDUwcHggMDsgfSB9XG5cbi8qKlxyXG4gKiAgRm9vdGVyIGxvd2VyIHBhcnQuXHJcbiAqL1xuLmZvb3Rlcl9fbG93ZXIge1xuICBwYWRkaW5nOiAyMHB4IDA7XG4gIGZvbnQtZmFtaWx5OiBcIk51bml0b1wiLCBzYW5zLXNlcmlmOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuZm9vdGVyX19sb3dlciB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDA7IH0gfVxuICAuZm9vdGVyX19sb3dlciAubGluayB7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgIC5mb290ZXJfX2xvd2VyIC5saW5rIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAuZm9vdGVyX19sb3dlciAubGluazpudGgtbGFzdC1jaGlsZCgxKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7IH0gfVxuXG4vKipcclxuICogIEZvb3RlciBjb2x1bW4gc2V0dGluZ3MuXHJcbiAqL1xuLmZvb3Rlci1jb2x1bW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMzUlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3ODBweCkge1xuICAgIC5mb290ZXItY29sdW1uIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc4MHB4KSBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuZm9vdGVyLWNvbHVtbiB7XG4gICAgICB3aWR0aDogNTAlOyB9IH1cbiAgLmZvb3Rlci1jb2x1bW4gLmhlYWRpbmctMy1ibHVlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuZm9vdGVyLWNvbHVtbjpudGgtbGFzdC1jaGlsZCgxKSB7XG4gICAgICBtYXJnaW4tdG9wOiA1MHB4OyB9IH1cblxuLyoqXHJcbiAqICBGb290ZXIgY29sdW1uIGRlc2NyaXB0aW9uLlxyXG4gKi9cbi5mb290ZXItY29sdW1uX19kZXNjcmlwdGlvbiBzdmcge1xuICB3aWR0aDogMTNweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRm9ybVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIE1haW4gc2V0dGluZ3MuXHJcbiAqL1xuLmZvcm0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLyoqXHJcbiAqIEZvcm0gZ3JvdXAuXHJcbiAqL1xuLmZvcm0tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbjogMCAtMTBweDsgfVxuICAuZm9ybS1ncm91cC5yYWRpbyB7XG4gICAgbWFyZ2luOiAtMTBweDsgfVxuICAgIC5mb3JtLWdyb3VwLnJhZGlvIC5sYWJlbCB7XG4gICAgICBtYXJnaW46IDI1cHggMTBweCAtMjBweDsgfVxuXG4uZm9ybS1ncm91cC0td2lkZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luOiAwIC0xMHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuZm9ybS1ncm91cC0td2lkZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi8qKlxyXG4gKiBGb3JtIGl0ZW0uXHJcbiAqL1xuLmZvcm0taXRlbSB7XG4gIHdpZHRoOiBjYWxjKDUwJSAtIDIwcHgpO1xuICBtYXJnaW46IDBweCAxMHB4IDA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5mb3JtLWl0ZW0ge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAuZm9ybS1pdGVtLnNlbGVjdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLmZvcm0taXRlbS5zZWxlY3Qge1xuICAgICAgICB3aWR0aDogOTYlOyB9IH1cbiAgICAuZm9ybS1pdGVtLnNlbGVjdCBzdmcge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICBib3R0b206IDEzcHg7XG4gICAgICB3aWR0aDogMTRweDtcbiAgICAgIGhlaWdodDogMTRweDtcbiAgICAgIGNvbG9yOiAjMDQyZTRiO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLmZvcm0taXRlbS0td2lkZSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5mb3JtLWl0ZW1fX3JhZGlvLS13aWRlIHtcbiAgd2lkdGg6IGNhbGMoMjUlIC0gMjBweCk7XG4gIG1hcmdpbjogMTBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmZvcm0taXRlbV9fcmFkaW8tLXdpZGUge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4vKipcclxuICogTGFiZWwuXHJcbiAqL1xuLmZvcm0taXRlbSBsYWJlbCxcbi5mb3JtIC5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM4NDYyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICBwYWRkaW5nOiAwO1xuICBjb2xvcjogIzA0MmU0YjtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICBvcGFjaXR5OiAwLjc7IH1cbiAgLmZvcm0taXRlbSBsYWJlbC5mdW5jdGlvbnMsXG4gIC5mb3JtIC5sYWJlbC5mdW5jdGlvbnMge1xuICAgIG1hcmdpbi1ib3R0b206IDZweDsgfVxuXG4uZm9ybS1pdGVtX19sYWJlbCB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5mb3JtLWl0ZW1fX2xhYmVsLS13aWRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMjBweCAyMHB4IC0zNXB4OyB9XG5cbi8qKlxyXG4gKiBJbnB1dCBzZXR0aW5ncy5cclxuICovXG4uZm9ybS1pdGVtIGlucHV0W3R5cGU9J3RleHQnXSxcbi5mb3JtLWl0ZW0gaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSxcbi5mb3JtLWl0ZW0gdGV4dGFyZWEsXG4uZm9ybS1pdGVtIHNlbGVjdCB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzZW07XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQwcHg7XG4gIHBhZGRpbmc6IDVweCAyMHB4O1xuICB0cmFuc2l0aW9uOiBib3JkZXIgMjUwbXMgZWFzZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2I3YzdkMjtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjb2xvcjogIzA0MmU0YjtcbiAgZm9udC1mYW1pbHk6IFwiTnVuaXRvXCIsIHNhbnMtc2VyaWY7IH1cbiAgLmZvcm0taXRlbSBpbnB1dFt0eXBlPSd0ZXh0J106aG92ZXIsXG4gIC5mb3JtLWl0ZW0gaW5wdXRbdHlwZT0ncGFzc3dvcmQnXTpob3ZlcixcbiAgLmZvcm0taXRlbSB0ZXh0YXJlYTpob3ZlcixcbiAgLmZvcm0taXRlbSBzZWxlY3Q6aG92ZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM0YTIwYzY7IH1cblxuLmZvcm0taXRlbSB0ZXh0YXJlYSB7XG4gIGhlaWdodDogMjUwcHg7XG4gIHBhZGRpbmctdG9wOiAxMHB4OyB9XG5cbi5mb3JtLWl0ZW0gaW5wdXRbdHlwZT0ndGV4dCddOmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZDogI2VjZjVmYztcbiAgb3BhY2l0eTogMC44OyB9XG5cbnNlbGVjdDo6LW1zLWV4cGFuZCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyoqXHJcbiAqIFJhZGlvIGJ1dHRvbnMuXHJcbiAqL1xuLmZvcm0taXRlbV9fcmFkaW8gbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiA4NXB4O1xuICBoZWlnaHQ6IDg1cHg7XG4gIG1hcmdpbjogMTBweDtcbiAgdHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYmI5YzI7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiAjYWJiOWMyO1xuICBmb250LWZhbWlseTogXCJOdW5pdG9cIiwgc2Fucy1zZXJpZjtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5mb3JtLWl0ZW1fX3JhZGlvIGxhYmVsIHN2ZyxcbiAgLmZvcm0taXRlbV9fcmFkaW8gbGFiZWwgaW1nIHtcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogLTI1cHg7IH1cbiAgLmZvcm0taXRlbV9fcmFkaW8gbGFiZWwgc3BhbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5mb3JtLWl0ZW1fX3JhZGlvIGxhYmVsOmhvdmVyIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjNGEyMGM2OyB9XG5cbi5mb3JtLWl0ZW1fX3JhZGlvLS13aWRlIGxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDEwcHg7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYWJiOWMyO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogI2FiYjljMjtcbiAgZm9udC1mYW1pbHk6IFwiTnVuaXRvXCIsIHNhbnMtc2VyaWY7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmZvcm0taXRlbV9fcmFkaW8tLXdpZGUgbGFiZWwge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgcGFkZGluZzogMDsgfSB9XG4gIC5mb3JtLWl0ZW1fX3JhZGlvLS13aWRlIGxhYmVsIHN2ZyxcbiAgLmZvcm0taXRlbV9fcmFkaW8tLXdpZGUgbGFiZWwgaW1nIHtcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogLTE1cHg7XG4gICAgY29sb3I6ICMwNDJlNGI7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAuZm9ybS1pdGVtX19yYWRpby0td2lkZSBsYWJlbCBzdmcsXG4gICAgICAuZm9ybS1pdGVtX19yYWRpby0td2lkZSBsYWJlbCBpbWcge1xuICAgICAgICB3aWR0aDogMjVweDtcbiAgICAgICAgaGVpZ2h0OiAyNXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMTBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7IH0gfVxuICAuZm9ybS1pdGVtX19yYWRpby0td2lkZSBsYWJlbCBzcGFuIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAuZm9ybS1pdGVtX19yYWRpby0td2lkZSBsYWJlbCBzcGFuIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9IH1cbiAgLmZvcm0taXRlbV9fcmFkaW8tLXdpZGUgbGFiZWw6aG92ZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM0YTIwYzY7IH1cblxuLmZvcm0taXRlbV9fcmFkaW86bnRoLWxhc3QtY2hpbGQoMSkgc3ZnIHtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDsgfVxuXG4vKipcclxuICogV2hlbiBhIHJhZGlvIGJ1dHRvbiBpcyBhY3RpdmUuXHJcbiAqL1xuLmZvcm0taXRlbV9fcmFkaW8gaW5wdXQ6Y2hlY2tlZCArIGxhYmVsLFxuLmZvcm0taXRlbV9fcmFkaW8tLXdpZGUgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzRhMjBjNjtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDIyNC43ZGVnLCAjOGIyZGU5IDAlLCAjMGIxNGEzIDEwMCUpO1xuICBjb2xvcjogd2hpdGU7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDIwcHggMCByZ2JhKDEzNiwgNDUsIDIzMSwgMC4zKTsgfVxuICAuZm9ybS1pdGVtX19yYWRpbyBpbnB1dDpjaGVja2VkICsgbGFiZWwgc3ZnLFxuICAuZm9ybS1pdGVtX19yYWRpby0td2lkZSBpbnB1dDpjaGVja2VkICsgbGFiZWwgc3ZnIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cblxuLm9yZ2FuaXNhdGlvbi0tZm91bmQge1xuICBmb250LXNpemU6IDI1cHg7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogMS4zNmVtO1xuICBtYXJnaW4tdG9wOiA0MHB4O1xuICBwYWRkaW5nOiAwIDAgMzBweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDIyNC43ZGVnLCAjOGIyZGU5IDAlLCAjMGIxNGEzIDEwMCUpO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IH1cbiAgLm9yZ2FuaXNhdGlvbi0tZm91bmQgc3ZnIHtcbiAgICB3aWR0aDogMjVweDtcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgY29sb3I6ICM0YTIwYzY7IH1cblxuLyoqXHJcbiAqIEZvcmd0IHBhc3N3b3JkIChvbiB0aGUgbG9naW4gcGFnZSkuXHJcbiAqL1xuLmZvcm0gLmZvcmdvdC1wYXNzd29yZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBjb2xvcjogIzA0MmU0YjtcbiAgZm9udC1zaXplOiAxM3B4OyB9XG5cbi5mb3JtIC5mb3Jnb3QtcGFzc3dvcmRfX2xpbmsge1xuICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDsgfVxuXG4vKipcclxuICogU3VibWl0IGJ1dHRvbiBzZXR0aW5ncy5cclxuICovXG4uZm9ybSAuc3VibWl0LWJ1dHRvbiB7XG4gIG1hcmdpbi10b3A6IDUwcHg7XG4gIHBhZGRpbmc6IDEwcHggNDBweCAxMHB4IDIwcHg7IH1cblxuLmpzLWxvZ2luLXN1Ym1pdCBzdmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMTJweDtcbiAgbGVmdDogMTAwcHg7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLyoqXHJcbiAqIEJ1dHRvbiBzZXR0aW5ncyBvbiB0aGUgZm9yZ290IHBhc3N3b3JkIHBhZ2UuXHJcbiAqL1xuLmNoYW5nZS1wYXNzd29yZCBidXR0b24sXG4uZm9yZ290LXBhc3N3b3JkLWZvcm0gYnV0dG9uIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDMwcHg7IH1cblxuLmZvcm1fX2hlbHAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMzUlO1xuICByaWdodDogMDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogI2VjZjVmYztcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSgzLCA1OSwgOTgsIDAuMTkpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiA5OTk7IH1cbiAgLmZvcm1fX2hlbHAgLmlzLWFjdGl2ZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5mb3JtX19oZWxwIC5pcy1pbmFjdGl2ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5mb3JtX19oZWxwLS1zbWFsbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDI1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmZvcm1fX2hlbHAtLXNtYWxsIHtcbiAgICAgIHBhZGRpbmc6IDhweCAxMHB4IDJweDsgfSB9XG4gIC5mb3JtX19oZWxwLS1zbWFsbCBzdmcge1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIGhlaWdodDogMTVweDtcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAuZm9ybV9faGVscC0tc21hbGwgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDI1cHg7XG4gICAgICAgIGhlaWdodDogMjVweDtcbiAgICAgICAgei1pbmRleDogMjA7IH0gfVxuICAuZm9ybV9faGVscC0tc21hbGwgc3BhbiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAuZm9ybV9faGVscC0tc21hbGwgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uZm9ybV9faGVscC0tbGFyZ2Uge1xuICBtYXgtd2lkdGg6IDU4MHB4O1xuICBiYWNrZ3JvdW5kOiAjZmY2ZTJjO1xuICBjb2xvcjogd2hpdGU7IH1cbiAgLmZvcm1fX2hlbHAtLWxhcmdlIC5kZWZhdWx0X19lZGl0b3Ige1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgY29sb3I6IHdoaXRlOyB9XG4gIC5mb3JtX19oZWxwLS1sYXJnZS5pcy1hY3RpdmUge1xuICAgIHBhZGRpbmc6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDIwcHggMCByZ2JhKDIxOSwgODYsIDU2LCAwLjQ5KTsgfVxuXG4uZm9ybV9faGVscCAuZXhwYW5kIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0zMnB4O1xuICBsZWZ0OiAtMjZweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiA2MHB4O1xuICBoZWlnaHQ6IDcwcHg7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgYmFja2dyb3VuZDogI2I3YzdkMjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmZvcm1fX2hlbHAgLmV4cGFuZCB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfSB9XG4gIC5mb3JtX19oZWxwIC5leHBhbmQgc3ZnIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIGhlaWdodDogMTVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0yNHB4O1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAuZm9ybV9faGVscCAuZXhwYW5kIHN2Zy5pcy12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuZm9ybV9faGVscCAuZXhwYW5kIC5mYS1leHBhbmQtYWx0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gIC5mb3JtX19oZWxwIC5leHBhbmQuaXMtYWN0aXZlIHtcbiAgICB0b3A6IC0yMHB4O1xuICAgIGxlZnQ6IC0xOHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgIC5mb3JtX19oZWxwIC5leHBhbmQuaXMtYWN0aXZlIHN2ZyB7XG4gICAgICB3aWR0aDogMjBweDtcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogLTMwcHg7IH1cblxuLmNyZWF0ZS1wYXNzd29yZCB7XG4gIHdpZHRoOiAxMDUlO1xuICBtYXJnaW4tdG9wOiAxMjBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmNyZWF0ZS1wYXNzd29yZCB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIC5jcmVhdGUtcGFzc3dvcmQgLmhlYWRpbmctMy1ibHVlIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9XG4gIC5jcmVhdGUtcGFzc3dvcmQgLmZvcm0tZ3JvdXBfX2xlZnQsXG4gIC5jcmVhdGUtcGFzc3dvcmQgLmZvcm0tZ3JvdXBfX3JpZ2h0IHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSA1cHgpOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLmNyZWF0ZS1wYXNzd29yZCAuZm9ybS1ncm91cF9fbGVmdCxcbiAgICAgIC5jcmVhdGUtcGFzc3dvcmQgLmZvcm0tZ3JvdXBfX3JpZ2h0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAgIC5jcmVhdGUtcGFzc3dvcmQgLmZvcm0tZ3JvdXBfX2xlZnQgLmZvcm0taXRlbSxcbiAgICAuY3JlYXRlLXBhc3N3b3JkIC5mb3JtLWdyb3VwX19yaWdodCAuZm9ybS1pdGVtIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAgIC5jcmVhdGUtcGFzc3dvcmQgLmZvcm0tZ3JvdXBfX2xlZnQgLmZvcm0taXRlbSxcbiAgICAgICAgLmNyZWF0ZS1wYXNzd29yZCAuZm9ybS1ncm91cF9fcmlnaHQgLmZvcm0taXRlbSB7XG4gICAgICAgICAgbWFyZ2luOiA0MHB4IDAgMDsgfSB9XG4gIC5jcmVhdGUtcGFzc3dvcmQgLmZvcm0tZ3JvdXBfX2xlZnQge1xuICAgIG1hcmdpbjogLTEwcHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAuY3JlYXRlLXBhc3N3b3JkIC5mb3JtLWdyb3VwX19sZWZ0IHtcbiAgICAgICAgbWFyZ2luOiAwOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5jcmVhdGUtcGFzc3dvcmQgLmZvcm0tZ3JvdXBfX3JpZ2h0IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAuY3JlYXRlLXBhc3N3b3JkIHN2ZyB7XG4gICAgd2lkdGg6IDE1cHg7XG4gICAgaGVpZ2h0OiAxNXB4OyB9XG4gIC5jcmVhdGUtcGFzc3dvcmQgLmZvcm0tZ3JvdXBfX3JpZ2h0IC5mb3JtLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDZweCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiAjZWNmNWZjO1xuICAgIGZvbnQtZmFtaWx5OiBcIk51bml0b1wiLCBzYW5zLXNlcmlmOyB9XG4gICAgLmNyZWF0ZS1wYXNzd29yZCAuZm9ybS1ncm91cF9fcmlnaHQgLmZvcm0taXRlbTo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAtNnB4O1xuICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBib3JkZXItd2lkdGg6IDhweCA2cHggOHB4IDA7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZWNmNWZjIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgICAgY29udGVudDogJyc7XG4gICAgICB6LWluZGV4OiAtMTsgfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgICAuY3JlYXRlLXBhc3N3b3JkIC5mb3JtLWdyb3VwX19yaWdodCAuZm9ybS1pdGVtOjpiZWZvcmUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uZm9ybS1ncm91cF9fYnVzaW5lc3MtbWFpbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5mb3JtLWdyb3VwX19idXNpbmVzcy1tYWlsIHtcbiAgICAgIHdpZHRoOiAxMDUlOyB9IH1cbiAgLmZvcm0tZ3JvdXBfX2J1c2luZXNzLW1haWwgLmZvcm0taXRlbSB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gNXB4KTsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgIC5mb3JtLWdyb3VwX19idXNpbmVzcy1tYWlsIC5mb3JtLWl0ZW0ge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5mb3JtLWdyb3VwX19idXNpbmVzcy1tYWlsIC5jcmVhdGUtcGFzc3dvcmRfX2luZm8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IGNhbGMoNTAlIC0gNDVweCk7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6ICNlY2Y1ZmM7XG4gIGZvbnQtZmFtaWx5OiBcIk51bml0b1wiLCBzYW5zLXNlcmlmOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuZm9ybS1ncm91cF9fYnVzaW5lc3MtbWFpbCAuY3JlYXRlLXBhc3N3b3JkX19pbmZvIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLmZvcm0tZ3JvdXBfX2J1c2luZXNzLW1haWwgLmNyZWF0ZS1wYXNzd29yZF9faW5mbzo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAtNnB4O1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXdpZHRoOiA4cHggNnB4IDhweCAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZWNmNWZjIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHotaW5kZXg6IC0xOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLmZvcm0tZ3JvdXBfX2J1c2luZXNzLW1haWwgLmNyZWF0ZS1wYXNzd29yZF9faW5mbzo6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5jcmVhdGUtcGFzc3dvcmRfX2luZm8ge1xuICBwYWRkaW5nOiAxMHB4O1xuICBjb2xvcjogIzA0MmU0YjsgfVxuXG4uY3JlYXRlLXBhc3N3b3JkX19pY29uIHtcbiAgd2lkdGg6IDglOyB9XG5cbi5jcmVhdGUtcGFzc3dvcmRfX2NvbnRlbnQge1xuICB3aWR0aDogOTIlO1xuICBmb250LXdlaWdodDogMzAwOyB9XG4gIC5jcmVhdGUtcGFzc3dvcmRfX2NvbnRlbnQgc3Ryb25nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG5cbi5mb3JtX19mb290ZXIge1xuICBtYXJnaW4tdG9wOiAxMDBweDsgfVxuXG4uZm9ybV9fZm9vdGVyIC5kZWZhdWx0X19lZGl0b3Ige1xuICBtYXJnaW46IDMwcHggMCAyMHB4O1xuICBmb250LXdlaWdodDogMzAwOyB9XG5cbi5mb3JtX19jaGVja2JveC0tc21hbGwge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBjb2xvcjogIzA0MmU0YjsgfVxuXG4uZm9ybV9fY2hlY2tib3gtLXNtYWxsIGxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gIGZvbnQtZmFtaWx5OiBcIk51bml0b1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogMzAwOyB9XG4gIC5mb3JtX19jaGVja2JveC0tc21hbGwgbGFiZWwgc3ZnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1cHg7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTVweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyNTBtcyBlYXNlO1xuICAgIGNvbG9yOiAjMDQyZTRiO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmZvcm1fX2NoZWNrYm94LS1zbWFsbCBsYWJlbDo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDJweDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIGhlaWdodDogMTVweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDQyZTRiO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4uZm9ybV9fY2hlY2tib3gtLXNtYWxsIGlucHV0OmNoZWNrZWQgKyBsYWJlbCBzdmcge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5mb3JtX19jaGVja2JveC1pbmZvcm1hdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM4NDYyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMTBweCAxMHB4IDEwcHggNTBweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNmNWZjO1xuICBjb2xvcjogcmdiYSg0LCA0NiwgNzUsIDAuNik7IH1cbiAgLmZvcm1fX2NoZWNrYm94LWluZm9ybWF0aW9uIHN2ZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYyg1MCUgLSA3LjVweCk7XG4gICAgbGVmdDogMjBweDtcbiAgICB3aWR0aDogMTVweDtcbiAgICBoZWlnaHQ6IDE1cHg7IH1cbiAgLmZvcm1fX2NoZWNrYm94LWluZm9ybWF0aW9uOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMTAwJTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIGJvcmRlci13aWR0aDogNy41cHggNXB4IDcuNXB4IDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNlY2Y1ZmMgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgY29udGVudDogJyc7IH1cblxuLnJlZ2lzdGVyLXN1Ym1pdCB7XG4gIG1hcmdpbjogMTAwcHggMDtcbiAgcGFkZGluZzogMTBweCAyMHB4OyB9XG5cbi8qKlxyXG4gKiBFcnJvci5cclxuICovXG4uZm9ybS1pdGVtLWVycm9yIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmNmUyYzsgfVxuXG4ucGFzc3dvcmQtdmFsaWRhdGlvbi1mYWlsZWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA5Ny41JTtcbiAgbWFyZ2luOiAtMTAwcHggMCA0MHB4O1xuICBwYWRkaW5nOiAyMHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiAjZmZjOWM5O1xuICBjb2xvcjogIzA0MmU0YjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiA5OTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5wYXNzd29yZC12YWxpZGF0aW9uLWZhaWxlZCB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIC5wYXNzd29yZC12YWxpZGF0aW9uLWZhaWxlZCBzdmcge1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBjb2xvcjogIzA0MmU0YjsgfVxuICAucGFzc3dvcmQtdmFsaWRhdGlvbi1mYWlsZWQgLnNlY29uZC1zdGVwIC5jb250ZW50LWZvcm1fX2hlYWRpbmcge1xuICAgIG1hcmdpbi10b3A6IDEwMHB4ICFpbXBvcnRhbnQ7IH1cbiAgLnBhc3N3b3JkLXZhbGlkYXRpb24tZmFpbGVkIC5jbG9zZS1tZXNzYWdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1cHg7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLnBhc3N3b3JkLXZhbGlkYXRpb24tZmFpbGVkIC5oZWFkaW5nLTMtYmx1ZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuICAucGFzc3dvcmQtdmFsaWRhdGlvbi1mYWlsZWQgLmRlZmF1bHRfX2VkaXRvciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAzNTBweDtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIC5wYXNzd29yZC12YWxpZGF0aW9uLWZhaWxlZC5pcy12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW46IDQwcHggMDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBvaW50ZXItZXZlbnRzOiBpbml0aWFsOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEhlYWRlclxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqICBNYWluIGVsZW1lbnQuXHJcbiAqL1xuLmhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMzBweCAwO1xuICB6LWluZGV4OiAyMDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5oZWFkZXIge1xuICAgICAgei1pbmRleDogMjE7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmhlYWRlciB7XG4gICAgICBoZWlnaHQ6IDE5NXB4O1xuICAgICAgcGFkZGluZzogMTBweCAwOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5oZWFkZXIge1xuICAgICAgaGVpZ2h0OiAxMTBweDtcbiAgICAgIHBhZGRpbmc6IDVweCAwOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuaGVhZGVyIHtcbiAgICAgIGhlaWdodDogMTUwcHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC5oZWFkZXIgLndyYXBwZXIge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfSB9XG5cbi8qKlxyXG4gKiAgTG9nby5cclxuICovXG4uaGVhZGVyLWxvZ28ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmhlYWRlci1sb2dvIC5kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgIC5oZWFkZXItbG9nbyAuZGVza3RvcCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgLmhlYWRlci1sb2dvIC5tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgIC5oZWFkZXItbG9nbyAubW9iaWxlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5oZWFkZXItbG9nb19fdXNlcmdyb3VwIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5oZWFkZXItbG9nb19fdXNlcmdyb3VwIHtcbiAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMTc2NDdlbTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxMnB4O1xuICAgICAgbGVmdDogNjVweDtcbiAgICAgIGNvbG9yOiAjMDQyZTRiO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLmhlYWRlci1sb2dvX191c2VyZ3JvdXAubm90LWxvZ2dlZGluIHtcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDAuODMzMzNlbTtcbiAgICAgICAgbGVmdDogNjZweDsgfSB9XG5cbi8qKlxyXG4gKiAgTGluay5cclxuICovXG4uaGVhZGVyLXJpZ2h0IC5saW5rIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKipcclxuICogIE5vdCBsb2dnZWQgaW4gc2V0dGluZ3MuXHJcbiAqL1xuLmhlYWRlci1yaWdodCAubm90LWxvZ2dlZC1pbiB7XG4gIG1heC13aWR0aDogMTg1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuaGVhZGVyLXJpZ2h0IC5ub3QtbG9nZ2VkLWluIC5idXR0b24ge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7IH1cblxuLyoqXHJcbiAqICBIZWFkZXIgbG9nZ2VkIGluIHNldHRpbmdzLlxyXG4gKi9cbi5oZWFkZXItLWxvZ2dlZGluIC5oZWFkZXJfX2xlZnQge1xuICB3aWR0aDogMjUlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuaGVhZGVyLS1sb2dnZWRpbiAuaGVhZGVyX19sZWZ0IHtcbiAgICAgIHdpZHRoOiAyNSU7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuaGVhZGVyLS1sb2dnZWRpbiAuaGVhZGVyX19sZWZ0IHtcbiAgICAgIHdpZHRoOiAxNCU7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLmhlYWRlci0tbG9nZ2VkaW4gLmhlYWRlcl9fbGVmdCB7XG4gICAgICB3aWR0aDogYXV0bzsgfSB9XG5cbi5oZWFkZXItLWxvZ2dlZGluIC5oZWFkZXJfX2NlbnRlciB7XG4gIHdpZHRoOiAzMCU7XG4gIHBhZGRpbmctbGVmdDogMzBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmhlYWRlci0tbG9nZ2VkaW4gLmhlYWRlcl9fY2VudGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuaGVhZGVyLS1sb2dnZWRpbiAuaGVhZGVyX19jZW50ZXIge1xuICAgICAgd2lkdGg6IDQ2JTsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuaGVhZGVyLS1sb2dnZWRpbiAuaGVhZGVyX19jZW50ZXIge1xuICAgICAgd2lkdGg6IDUwJTsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLmhlYWRlci0tbG9nZ2VkaW4gLmhlYWRlcl9fY2VudGVyIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLmhlYWRlci0tbG9nZ2VkaW4gLmhlYWRlcl9fcmlnaHQge1xuICAgIHdpZHRoOiBhdXRvOyB9IH1cblxuLmhlYWRlci0tbG9nZ2VkaW4gLmhlYWRlcl9fYmVuZWF0aCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAtNXB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAuaGVhZGVyLS1sb2dnZWRpbiAuaGVhZGVyX19iZW5lYXRoIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4vKipcclxuICogIEhlYWRlciAocmlnaHQpLlxyXG4gKi9cbi5oZWFkZXJfX3JpZ2h0LFxuLnRvcC1tZW51X19tb2JpbGUge1xuICBjb2xvcjogIzA0MmU0YjtcbiAgZm9udC1mYW1pbHk6IFwiTnVuaXRvXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgLmhlYWRlcl9fcmlnaHQgc3ZnLFxuICAudG9wLW1lbnVfX21vYmlsZSBzdmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBtYXJnaW46IGF1dG8gYXV0byA3cHg7IH1cbiAgLmhlYWRlcl9fcmlnaHQgYSxcbiAgLnRvcC1tZW51X19tb2JpbGUgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMjUwbXMgZWFzZTsgfVxuXG4vKipcclxuICogIEhlYWRlciAocHJvZmlsZSBhbmQgbG9nb3V0IGJ1dHRvbiBzZXR0aW5ncykuXHJcbiAqL1xuLmhlYWRlci1wcm9maWxlIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuXG4uaGVhZGVyX19yaWdodCAucHJvZmlsZSB7XG4gIG1heC13aWR0aDogMTAwcHg7XG4gIG1hcmdpbjogMCAxMHB4O1xuICBwYWRkaW5nOiAxNXB4IDdweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5oZWFkZXJfX3JpZ2h0IC5wcm9maWxlLmFjdGl2ZSB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICMwNDJlNGI7XG4gICAgY29sb3I6ICNlY2Y1ZmM7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuaGVhZGVyX19yaWdodCAucHJvZmlsZTpob3ZlciB7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjMDQyZTRiO1xuICAgICAgY29sb3I6ICNlY2Y1ZmM7IH0gfVxuXG4uaGVhZGVyX19yaWdodCAubG9nb3V0LWJ1dHRvbiB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG4gIG9wYWNpdHk6IDAuNTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5oZWFkZXJfX3JpZ2h0IC5sb2dvdXQtYnV0dG9uOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmY2ZTJjO1xuICAgICAgb3BhY2l0eTogMC43OyB9IH1cblxuLyoqXHJcbiAqICBEYXNoYm9hcmQgLyBRdWVzdGlvbnMgLyBVcGxvYWQuXHJcbiAqL1xuLmhlYWRlciAudG9wLW1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5oZWFkZXIgLnRvcC1tZW51IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5oZWFkZXIgLnRvcC1tZW51IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH0gfVxuICAuaGVhZGVyIC50b3AtbWVudSBsaSB7XG4gICAgbWFyZ2luOiAwIDdweDtcbiAgICBwYWRkaW5nOiAxNXB4IDEwcHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyNTBtcyBlYXNlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgIC5oZWFkZXIgLnRvcC1tZW51IGxpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzA0MmU0YjtcbiAgICAgICAgY29sb3I6ICNlY2Y1ZmM7IH0gfVxuICAuaGVhZGVyIC50b3AtbWVudTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDE1cHg7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDMxcHg7XG4gICAgYmFja2dyb3VuZDogIzA0MmU0YjtcbiAgICBjb250ZW50OiAnJzsgfVxuICAuaGVhZGVyIC50b3AtbWVudSAuYWN0aXZlIHtcbiAgICBwYWRkaW5nOiAxNXB4IDdweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogIzA0MmU0YjtcbiAgICBjb2xvcjogI2VjZjVmYzsgfVxuXG4vKipcclxuICogIERhc2hib2FyZCAvIFF1ZXN0aW9ucyAvIFVwbG9hZCAoZnJvbSB0YWJsZXQgbGFuZHNjYXBlIGRvd24pLlxyXG4gKi9cbi50b3AtbWVudV9fbW9iaWxlIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBtaW4taGVpZ2h0OiA2MHB4O1xuICBwYWRkaW5nOiAxNXB4IDAgMTBweDtcbiAgei1pbmRleDogMjA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAudG9wLW1lbnVfX21vYmlsZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLnRvcC1tZW51X19tb2JpbGUgLnRvcC1tZW51IHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC50b3AtbWVudV9fbW9iaWxlIGxpIHtcbiAgICBwYWRkaW5nOiAwIDM1cHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgTGFuZ3VhZ2UgbWVudVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmxhbmd1YWdlLW1lbnUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmxhbmd1YWdlLW1lbnUgLmN1cnJlbnQge1xuICAgIG9wYWNpdHk6IDAuNjsgfVxuXG4ubGFuZ3VhZ2UtbWVudV9faXRlbSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAubGFuZ3VhZ2UtbWVudV9faXRlbS5pcy1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAubGFuZ3VhZ2UtbWVudV9faXRlbS5pcy1ub3QtYWN0aXZlIHtcbiAgICBoZWlnaHQ6IDI2cHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgei1pbmRleDogOTk7IH1cblxuLmxhbmd1YWdlLW1lbnVfX2l0ZW0tLW5sLmlzLW5vdC1hY3RpdmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMjJweDtcbiAgbGVmdDogMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBMb2dpblxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIE1haW4gc2V0dGluZ3MuXHJcbiAqL1xuLmxvZ2luIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNDQwcHg7XG4gIG1hcmdpbjogYXV0bztcbiAgcGFkZGluZzogMTUwcHggMjBweDtcbiAgY29sb3I6ICMwNDJlNGI7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5sb2dpbiB7XG4gICAgICBwYWRkaW5nOiA3NXB4IDIwcHg7IH0gfVxuXG4ubG9naW4gLm1lc3NhZ2Uge1xuICBtYXJnaW4tdG9wOiAtMzBweDtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgcGFkZGluZzogMDtcbiAgY29sb3I6ICMwNDJlNGI7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLyoqXHJcbiAqIFN1YmhlYWRpbmcuXHJcbiAqL1xuLmxvZ2luIC5zdWJoZWFkaW5nLTEtYmx1ZSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuLyoqXHJcbiAqIEhlYWRpbmcuXHJcbiAqL1xuLmxvZ2luIC5oZWFkaW5nLTEtYmx1ZSB7XG4gIG1hcmdpbi1ib3R0b206IDcwcHg7IH1cblxuLyoqXHJcbiAqIEZvcm0uXHJcbiAqL1xuLmxvZ2luLWZvcm0gLmZvcm0taXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4ubWVzc2FnZS5mb3Jnb3QtcGFzc3dvcmQge1xuICBjb2xvcjogIzA0MmU0YjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgb3BhY2l0eTogMC44OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIE1lc3NhZ2VzXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogIE1lc3NhZ2UgbGF5b3V0LlxyXG4gKi9cbi5tZXNzYWdlIHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuMTMzMzNlbTtcbiAgbWFyZ2luOiAyMHB4IDA7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZm9udC1mYW1pbHk6IFwiTnVuaXRvXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKipcclxuICogIEVycm9yLlxyXG4gKi9cbi5tZXNzYWdlLS1lcnJvciB7XG4gIGJhY2tncm91bmQ6ICNmZmM5Yzk7XG4gIGNvbG9yOiAjMDQyZTRiOyB9XG5cbi8qKlxyXG4gKiAgU3VjY2Vzcy5cclxuICovXG4ubWVzc2FnZS0tc3VjY2Vzcyxcbi5tZXNzYWdlLS1pbmZvIHtcbiAgYmFja2dyb3VuZDogI2VjZjVmYztcbiAgY29sb3I6ICMwNDJlNGI7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29udGFjdFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqICBTcGVjaWZpYyBwYWdlIHJ1bGVzLlxyXG4gKi9cbi5pcy1wcm9maWxlIC5icmVhZGNydW1icyB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyoqXHJcbiAqICBQcm9maWxlXHJcbiAqL1xuLnByb2ZpbGUge1xuICBwYWRkaW5nOiA1MHB4IDA7XG4gIGZvbnQtZmFtaWx5OiBcIk51bml0b1wiLCBzYW5zLXNlcmlmOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAucHJvZmlsZSB7XG4gICAgICBwYWRkaW5nOiA1MHB4IDA7IH0gfVxuXG4ucHJvZmlsZV9fdGl0bGVzIHtcbiAgbWFyZ2luLWJvdHRvbTogMzVweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLnByb2ZpbGVfX3RpdGxlcyB7XG4gICAgICBtYXJnaW46IDVweDsgfSB9XG5cbi8qKlxyXG4gKiAgQnV0dG9ucyAodG9wKS5cclxuICovXG4ucHJvZmlsZV9fYnV0dG9ucyB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLnByb2ZpbGVfX2J1dHRvbnMge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA4MHB4O1xuICAgICAgcmlnaHQ6IDMwcHg7IH0gfVxuXG4ucHJvZmlsZV9fYnV0dG9ucyAubGluayxcbi5zZWNvbmQtc3RlcCAuZWRpdC1saW5rIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tbGVmdDogMTVweDtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsgfVxuICAucHJvZmlsZV9fYnV0dG9ucyAubGluayBzdmcsXG4gIC5zZWNvbmQtc3RlcCAuZWRpdC1saW5rIHN2ZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLnByb2ZpbGVfX2J1dHRvbnMgLmxpbmsgc3ZnLFxuICAgICAgLnNlY29uZC1zdGVwIC5lZGl0LWxpbmsgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDI1cHg7XG4gICAgICAgIGhlaWdodDogMjVweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAucHJvZmlsZV9fYnV0dG9ucyAubGluayBzcGFuLFxuICAgIC5zZWNvbmQtc3RlcCAuZWRpdC1saW5rIHNwYW4ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5wcm9maWxlX19idXR0b25zIC5saW5rOjphZnRlcixcbiAgLnNlY29uZC1zdGVwIC5lZGl0LWxpbms6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAtMXB4O1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyNTBtcyBlYXNlO1xuICAgIGJhY2tncm91bmQ6ICNmZjZlMmM7XG4gICAgY29udGVudDogJyc7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAucHJvZmlsZV9fYnV0dG9ucyAubGluazo6YWZ0ZXIsXG4gICAgICAuc2Vjb25kLXN0ZXAgLmVkaXQtbGluazo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLnByb2ZpbGVfX2J1dHRvbnMgLmxpbms6aG92ZXI6OmFmdGVyLFxuICAuc2Vjb25kLXN0ZXAgLmVkaXQtbGluazpob3Zlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICMwNDJlNGI7IH1cblxuLnNlY29uZC1zdGVwIC5jb250ZW50LWZvcm1fX2hlYWRpbmcge1xuICBtYXJnaW4tdG9wOiAzMHB4OyB9XG5cbi5zZWNvbmQtc3RlcCAuY29udGVudC1mb3JtX19oZWFkaW5nLS1tYXJnaW4ge1xuICBtYXJnaW4tdG9wOiA1MHB4O1xuICBtYXJnaW4tYm90dG9tOiAzNXB4OyB9XG5cbi8qKlxyXG4gKiAgRGV0YWlsc1xyXG4gKi9cbi5wcm9maWxlX19kZXRhaWxzIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgcGFkZGluZzogNTBweCA1MHB4IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3gtc2hhZG93OiAwIDJweCAxMHB4IDNweCAjZjJmNmY5OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAucHJvZmlsZV9fZGV0YWlscyB7XG4gICAgICBwYWRkaW5nOiA1MHB4OyB9IH1cblxuLnByb2ZpbGVfX2RldGFpbHMgLmNvbC14cy02LFxuLnN0YXRpc3RpY3MgLmNvbC14cy02IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbiNkZXRhaWxzIC5jb2wteHMtNiB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLyoqXHJcbiAqICBQcm9maWxlIGhlYWRpbmcuXHJcbiAqL1xuLnByb2ZpbGVfX2hlYWQtLXNtYWxsIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLCBzYW5zLXNlcmlmOyB9XG5cbi8qKlxyXG4gKiAgTGFiZWxcclxuICovXG4ucHJvZmlsZV9fbGFiZWwge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBsaW5lLWhlaWdodDogMS4yODU3MWVtO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjb2xvcjogI2FiYjljMjsgfVxuXG4vKipcclxuICogIFZhbHVlXHJcbiAqL1xuLnByb2ZpbGVfX3ZhbHVlIHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzNlbTtcbiAgY29sb3I6ICMwNDJlNGI7IH1cblxuLyoqXHJcbiAqICBTcGVjaWZpYyBjb2x1bW4gc2V0dGluZ3MuXHJcbiAqL1xuLnByb2ZpbGVfX2RldGFpbHMgLmNvbC14cy02IHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnByb2ZpbGVfX2RldGFpbHMgLmNvbC14cy02IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5wcm9maWxlX19kZXRhaWxzIC5jb2wteHMtNi5uYW1lLCAucHJvZmlsZV9fZGV0YWlscyAuY29sLXhzLTYuZ2VuZGVyIHtcbiAgICAgIHdpZHRoOiA1MCU7IH0gfVxuXG4vKipcclxuICogIEJvYXJkIHNlY3Rpb25cclxuICovXG4ucHJvZmlsZV9fYm9hcmQsXG4ucHJvZmlsZV9fZGFzaGJvYXJkIHtcbiAgbWFyZ2luLXRvcDogNTBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnByb2ZpbGVfX2JvYXJkLFxuICAgIC5wcm9maWxlX19kYXNoYm9hcmQge1xuICAgICAgbWFyZ2luLXRvcDogMTAwcHg7IH0gfVxuXG4ucHJvZmlsZV9fYm9hcmQgLmhlYWRpbmctMi1ibHVlIHtcbiAgbWFyZ2luLWJvdHRvbTogNTBweDsgfVxuXG4ucHJvZmlsZV9fYm9hcmQgLmRlZmF1bHRfX2VkaXRvciB7XG4gIG1hcmdpbi10b3A6IDMwcHg7IH1cblxuLnByb2ZpbGVfX29yZ2FuaXNhdGlvbiB7XG4gIHBhZGRpbmc6IDUwcHg7IH1cblxuLyoqXHJcbiAqICBDYWxjdWxhdGlvbi5cclxuICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC5wcm9maWxlX19jcmVkaXQge1xuICAgIHBhZGRpbmc6IDUwcHggNTBweCAxNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG5cbi5wcm9maWxlX19jYWxjdWxhdGlvbnMge1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuICBwYWRkaW5nOiAzMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMjI0LjdkZWcsICM4YjJkZTkgMCUsICMwYjE0YTMgMTAwJSk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm94LXNoYWRvdzogMCAycHggMjBweCAwIHJnYmEoMTM2LCA0NSwgMjMxLCAwLjMpOyB9XG5cbi8qKlxyXG4gKiAgQ2FsY3VsYXRpb24gYmxvY2suXHJcbiAqL1xuLnByb2ZpbGVfX2NhbGN1bGF0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxNTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAucHJvZmlsZV9fY2FsY3VsYXRpb24ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7IH0gfVxuXG4vKipcclxuICogIENhbGN1bGF0aW9uIGJsb2NrIHNwYW4uXHJcbiAqL1xuLnByb2ZpbGVfX2NhbGN1bGF0aW9uIHNwYW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiBhdXRvOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAucHJvZmlsZV9fY2FsY3VsYXRpb24gc3BhbjpudGgtY2hpbGQoMSkge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDMpOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5wcm9maWxlX19jYWxjdWxhdGlvbiBzcGFuOm50aC1jaGlsZCgyKSB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC8gMyk7IH0gfVxuXG4uZG9udXQtY2hhcnQgdGV4dCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjUzODQ2ZW07XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiAjMDQyZTRiO1xuICBmb250LWZhbWlseTogXCJOdW5pdG9cIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG4vKipcclxuICogIENhbGN1bGF0aW9uIGJsb2NrIGhlYWQuXHJcbiAqL1xuLnByb2ZpbGVfX2NhbGN1bGF0aW9uIC5oZWFkIHtcbiAgZm9udC1zaXplOiA0MHB4O1xuICBmb250LXNpemU6IDRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjIyNWVtO1xuICBmb250LWZhbWlseTogXCJNb250c2VycmF0XCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7IH1cblxuLyoqXHJcbiAqICBDYWxjdWxhdGlvbiBibG9jayBpY29uLlxyXG4gKi9cbi5wcm9maWxlX19jYWxjdWxhdGlvbiBzdmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTVweDtcbiAgbGVmdDogLTEycHg7XG4gIHdpZHRoOiA4MHB4O1xuICBoZWlnaHQ6IDgwcHg7XG4gIG9wYWNpdHk6IDAuMjsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLnByb2ZpbGVfX2NhbGN1bGF0aW9uIHN2ZyB7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogNTBweDtcbiAgICAgIGhlaWdodDogNTBweDsgfSB9XG5cbi8qKlxyXG4gKiAgQ2FsY3VsYXRpb24gYmxvY2sgZGVzY3JpcHRpb24uXHJcbiAqL1xuLnByb2ZpbGVfX2NhbGN1bGF0aW9uIC5kZXNjcmlwdGlvbiB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiAxMDA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5wcm9maWxlX19jYWxjdWxhdGlvbiAuZGVzY3JpcHRpb24ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBtYXJnaW46IDA7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLnByb2ZpbGVfX2NhbGN1bGF0aW9uIC5kZXNjcmlwdGlvbiBzcGFuIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxNDBweDsgfSB9XG5cbi8qKlxyXG4gKiAgRGVsZXRlIHByb2ZpbGUgY29udGFpbmVyLlxyXG4gKi9cbi5wcm9maWxlLWRlbGV0ZSB7XG4gIHBhZGRpbmc6IDE1MHB4IDA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5wcm9maWxlLWRlbGV0ZSB7XG4gICAgICBwYWRkaW5nOiA3NXB4IDA7IH0gfVxuXG4vKipcclxuICogIERlbGV0ZSBwcm9maWxlIGNvbnRhaW5lci5cclxuICovXG4ucHJvZmlsZS1kZWxldGVfX2J1dHRvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLXRvcDogNTBweDsgfVxuICAucHJvZmlsZS1kZWxldGVfX2J1dHRvbnMgLmJ1dHRvbiB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMjBweCk7XG4gICAgcGFkZGluZzogMTBweCAyMHB4OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLnByb2ZpbGUtZGVsZXRlX19idXR0b25zIC5idXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAxMHB4IDA7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5wcm9maWxlLXN1YnNjcmlwdGlvbl9fbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9IH1cblxuLnByb2ZpbGUtc3Vic2NyaXB0aW9uX19yaWdodCB7XG4gIGNvbG9yOiAjMDQyZTRiOyB9XG4gIC5wcm9maWxlLXN1YnNjcmlwdGlvbl9fcmlnaHQgc3ZnIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgY29sb3I6ICMwNDJlNGI7IH1cbiAgLnByb2ZpbGUtc3Vic2NyaXB0aW9uX19yaWdodCBzcGFuIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uc3RhdGlzdGljc19fY2hhcnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDEwOyB9XG5cbi5zdGF0aXN0aWNzX190b3RhbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgei1pbmRleDogOTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gICAgLnN0YXRpc3RpY3NfX3RvdGFsIHtcbiAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICBwYWRkaW5nLXRvcDogNDBweDsgfSB9XG5cbi5zdGF0aXN0aWNzX19hbW91bnQge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS4zMzMzM2VtO1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6ICMwNDJlNGI7XG4gIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5zdGF0aXN0aWNzX19yZW1haW5pbmcge1xuICBmb250LXNpemU6IDQwcHg7XG4gIGZvbnQtc2l6ZTogNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDAuODc1ZW07XG4gIG1hcmdpbi10b3A6IDUwcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgyMjQuN2RlZywgIzhiMmRlOSAwJSwgIzBiMTRhMyAxMDAlKTtcbiAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5zdGF0aXN0aWNzX19yZW1haW5pbmcge1xuICAgICAgbWFyZ2luOiAzMHB4IDA7IH0gfVxuXG4uc3RhdGlzdGljcy1jdGEge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA2MzBweDtcbiAgbWFyZ2luOiBhdXRvO1xuICBwYWRkaW5nOiAzMHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6ICNmZjZlMmM7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgYm94LXNoYWRvdzogMCAycHggMjBweCAwIHJnYmEoMjE5LCA4NiwgNTYsIDAuNDkpOyB9XG4gIC5zdGF0aXN0aWNzLWN0YSAuY29sLXhzLTYge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLnN0YXRpc3RpY3MtY3RhIC5jb2wteHMtNiB7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgICAuc3RhdGlzdGljcy1jdGEgLmNvbC14cy02Om50aC1jaGlsZCgyKSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gIC5zdGF0aXN0aWNzLWN0YSAuaGVhZGluZy0zLXdoaXRlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gIC5zdGF0aXN0aWNzLWN0YSBzcGFuIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5zdGF0aXN0aWNzLWN0YSBhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLnN0YXRpc3RpY3MtY3RhIGEge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7IH1cbiAgICAgICAgLnN0YXRpc3RpY3MtY3RhIGEgc3BhbiB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5zdGF0aXN0aWNzLWN0YSBzdmcge1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIGhlaWdodDogMTVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAuc3RhdGlzdGljcy1jdGEgc3ZnIHtcbiAgICAgICAgbWFyZ2luOiBhdXRvOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAuc3RhdGlzdGljcy1pbmZvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDE1cHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gIC5zdGF0aXN0aWNzLWluZm8gbGkge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDE1cHgpOyB9IH1cblxuLnN0YXRpc3RpY3MtaW5mbyBsaTpudGgtbGFzdC1jaGlsZCgxKSB7XG4gIG1hcmdpbi10b3A6IDEwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5zdGF0aXN0aWNzLWluZm8gbGk6bnRoLWxhc3QtY2hpbGQoMSkge1xuICAgICAgbWFyZ2luOiAwOyB9IH1cblxuLnByb2ZpbGUgLnRpbWUge1xuICBtYXJnaW4tdG9wOiA1MHB4O1xuICBjb2xvcjogIzA0MmU0YjsgfVxuXG4udGltZV9fdG90YWwge1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1cHgpO1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4udGltZV9faG91cnMge1xuICBmb250LXNpemU6IDI1cHg7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogMS42ZW07XG4gIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDkwMDsgfVxuXG4udGltZS1yZWdpc3RyYXRpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDMwcHg7IH1cbiAgLnRpbWUtcmVnaXN0cmF0aW9uOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiAjMDQyZTRiO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIG9wYWNpdHk6IDAuMTsgfVxuXG4udGltZS1yZWdpc3RyYXRpb25fX3NpbmdsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAzMHB4IDA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC50aW1lLXJlZ2lzdHJhdGlvbl9fc2luZ2xlIHtcbiAgICAgIHBhZGRpbmc6IDMwcHggMCAwOyB9IH1cbiAgLnRpbWUtcmVnaXN0cmF0aW9uX19zaW5nbGUgLmNvbC14cy02IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC50aW1lLXJlZ2lzdHJhdGlvbl9fc2luZ2xlIC50aXRsZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE0Mjg2ZW07XG4gICAgY29sb3I6ICMwNDJlNGI7XG4gICAgb3BhY2l0eTogMC42OyB9XG4gIC50aW1lLXJlZ2lzdHJhdGlvbl9fc2luZ2xlIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4zMzMzM2VtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgY29sb3I6ICMwNDJlNGI7IH1cbiAgLnRpbWUtcmVnaXN0cmF0aW9uX19zaW5nbGUgLmxvY2F0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnRpbWUtcmVnaXN0cmF0aW9uX19zaW5nbGUgLmxvY2F0aW9uIHN2ZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDdweDtcbiAgICBjb2xvcjogIzA0MmU0YjsgfVxuICAudGltZS1yZWdpc3RyYXRpb25fX3NpbmdsZSAubG9jYXRpb24gc3BhbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAyMnB4OyB9XG4gIC50aW1lLXJlZ2lzdHJhdGlvbl9fc2luZ2xlOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMXB4O1xuICAgIGJhY2tncm91bmQ6ICMwNDJlNGI7XG4gICAgY29udGVudDogJyc7XG4gICAgb3BhY2l0eTogMC4xOyB9XG4gIC50aW1lLXJlZ2lzdHJhdGlvbl9fc2luZ2xlOm50aC1sYXN0LWNoaWxkKDEpIHtcbiAgICBwYWRkaW5nOiAzMHB4IDAgMTBweDsgfVxuICAgIC50aW1lLXJlZ2lzdHJhdGlvbl9fc2luZ2xlOm50aC1sYXN0LWNoaWxkKDEpOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgLndlcmt6YWFtaGVpZCB7XG4gICAgb3JkZXI6IDM7XG4gICAgbWFyZ2luLXRvcDogMzBweDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgLnVzZXJncm91cCxcbiAgLmhvdXJzIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuXG4vKipcclxuICogIEFkZGl0aW9uYWwgcnVsZXMuXHJcbiAqL1xuLmRlZmF1bHRfX2VkaXRvciArIC5oZWFkaW5nLTMtYmx1ZSB7XG4gIG1hcmdpbi10b3A6IDM1cHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgUXVlc3Rpb24gZmlsdGVycy5cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5xdWVzdGlvbi1maWx0ZXJzX19mb3JtIHtcbiAgbWFyZ2luOiA1MHB4IDAgMzBweDsgfVxuICAucXVlc3Rpb24tZmlsdGVyc19fZm9ybSBzdHJvbmcge1xuICAgIG1hcmdpbi1yaWdodDogNjBweDtcbiAgICBjb2xvcjogIzA0MmU0YjsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgIC5xdWVzdGlvbi1maWx0ZXJzX19mb3JtIHN0cm9uZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9IH1cbiAgICAucXVlc3Rpb24tZmlsdGVyc19fZm9ybSBzdHJvbmcgc3ZnIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMnB4O1xuICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cbiAgLnF1ZXN0aW9uLWZpbHRlcnNfX2Zvcm0gLnNlbGVjdC13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLXRvcDogMnB4OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLnF1ZXN0aW9uLWZpbHRlcnNfX2Zvcm0gLnNlbGVjdC13cmFwIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMjBweCk7IH0gfVxuICAgIC5xdWVzdGlvbi1maWx0ZXJzX19mb3JtIC5zZWxlY3Qtd3JhcC5pcy1kYXRlIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAzNXB4OyB9XG4gICAgICAucXVlc3Rpb24tZmlsdGVyc19fZm9ybSAuc2VsZWN0LXdyYXAuaXMtZGF0ZSBzZWxlY3Qge1xuICAgICAgICBtYXgtd2lkdGg6IDExMHB4OyB9XG4gICAgLnF1ZXN0aW9uLWZpbHRlcnNfX2Zvcm0gLnNlbGVjdC13cmFwLmlzLXN1YmplY3RzIHNlbGVjdCB7XG4gICAgICBtYXgtd2lkdGg6IDE0N3B4OyB9XG4gICAgLnF1ZXN0aW9uLWZpbHRlcnNfX2Zvcm0gLnNlbGVjdC13cmFwIHNlbGVjdCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogIzA0MmU0YjtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIk51bml0b1wiLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAgIC5xdWVzdGlvbi1maWx0ZXJzX19mb3JtIC5zZWxlY3Qtd3JhcCBzdmcge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAycHg7XG4gICAgICByaWdodDogMjBweDtcbiAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgY29sb3I6ICMwNDJlNGI7XG4gICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICB6LWluZGV4OiAtMTsgfVxuXG4ucXVlc3Rpb24tZmlsdGVyc19fY29udGFpbmVyIC5uby1yZXN1bHRzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogNTBweCAwIDUwcHggMzBweDsgfVxuXG4ucXVlc3Rpb24tZmlsdGVyc19fY29udGFpbmVyIC5xdWVzdGlvbi1pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogNTBweDsgfVxuXG4ucXVlc3Rpb24tZmlsdGVyc19fY29udGFpbmVyIC5mMy13aWRnZXQtcGFnaW5hdG9yIHtcbiAgbWFyZ2luLWJvdHRvbTogNTBweDsgfVxuICAucXVlc3Rpb24tZmlsdGVyc19fY29udGFpbmVyIC5mMy13aWRnZXQtcGFnaW5hdG9yIGxpIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5xdWVzdGlvbi1maWx0ZXJzX19jb250YWluZXIgLmYzLXdpZGdldC1wYWdpbmF0b3IgLm5leHQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5xdWVzdGlvbi1maWx0ZXJzX19jb250YWluZXIgLmYzLXdpZGdldC1wYWdpbmF0b3IgLm5leHQgYSB7XG4gICAgICBjb2xvcjogI2ZmNmUyYztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgICAucXVlc3Rpb24tZmlsdGVyc19fY29udGFpbmVyIC5mMy13aWRnZXQtcGFnaW5hdG9yIC5uZXh0IGEgc3ZnIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgcGFkZGluZzogN3B4IDZweCA1cHggN3B4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZTJjO1xuICAgICAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAgICAgLnF1ZXN0aW9uLWZpbHRlcnNfX2NvbnRhaW5lciAuZjMtd2lkZ2V0LXBhZ2luYXRvciAubmV4dCBhIHN2ZyBwYXRoLFxuICAgICAgICAucXVlc3Rpb24tZmlsdGVyc19fY29udGFpbmVyIC5mMy13aWRnZXQtcGFnaW5hdG9yIC5uZXh0IGEgc3ZnIHJlY3Qge1xuICAgICAgICAgIGZpbGw6IHdoaXRlOyB9XG5cbi5xdWVzdGlvbi1maWx0ZXJzX19pbmZvcm1hdGlvbiAudGV4dC1pbWFnZV9faW1hZ2Uge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnF1ZXN0aW9uLWZpbHRlcnNfX2luZm9ybWF0aW9uIC50ZXh0LWltYWdlX19pbWFnZSBzdmcge1xuICAgIG1hcmdpbjogOTBweCAwIDAgNTVweDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAgIC5xdWVzdGlvbi1maWx0ZXJzX19pbmZvcm1hdGlvbiAudGV4dC1pbWFnZV9faW1hZ2Ugc3ZnIHtcbiAgICAgICAgbWFyZ2luOiA5MHB4IDAgMDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIExhdGVzdCBxdWVzdGlvbnMuXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucXVlc3Rpb24tbGF0ZXN0IHtcbiAgbWFyZ2luLWJvdHRvbTogMTMwcHg7IH1cblxuLnF1ZXN0aW9uLWxhdGVzdF9fdGl0bGUge1xuICBtYXJnaW46IDYwcHggMCA1MHB4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFF1ZXN0aW9uIHNpbmdsZS5cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5xdWVzdGlvbi1zaW5nbGVfX2hlYWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLnF1ZXN0aW9uLXNpbmdsZV9fZGF0ZSB7XG4gIGNvbG9yOiAjMDQyZTRiO1xuICBvcGFjaXR5OiAwLjY7IH1cbiAgLnF1ZXN0aW9uLXNpbmdsZV9fZGF0ZSBzdmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDJweDtcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG5cbi5xdWVzdGlvbi1zaW5nbGVfX2ljb24ge1xuICBmb250LXNpemU6IDI1cHg7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogMS4yZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMTBweDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAtMTA1cHg7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIHBhZGRpbmctdG9wOiAxMXB4O1xuICBib3JkZXItcmFkaXVzOiAzM3B4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMjI0LjM2ZGVnLCAjZmZjMDAwIDAlLCAjZmY2ZTJjIDEwMCUpO1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2ODBweCkge1xuICAgIC5xdWVzdGlvbi1zaW5nbGVfX2ljb24ge1xuICAgICAgd2lkdGg6IDMwcHg7IH0gfVxuXG4ucXVlc3Rpb24tc2luZ2xlX19hdXRob3Ige1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBsaW5lLWhlaWdodDogMS40Mjg1N2VtO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBwYWRkaW5nOiAyMHB4IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGVkZGY1O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RlZGRmNTtcbiAgY29sb3I6ICMwNDJlNGI7XG4gIG9wYWNpdHk6IDAuNjsgfVxuICAucXVlc3Rpb24tc2luZ2xlX19hdXRob3Igc3ZnIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuICAgIC5xdWVzdGlvbi1zaW5nbGVfX2F1dGhvciBzdmcuZmEtYnVpbGRpbmcge1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBoZWlnaHQ6IDEycHg7IH1cbiAgLnF1ZXN0aW9uLXNpbmdsZV9fYXV0aG9yIC5xdWVzdGlvbi1zaW5nbGVfX2F1dGhvci1uYW1lIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDUwcHg7IH1cblxuLnF1ZXN0aW9uLXNpbmdsZV9fdGl0bGUge1xuICBtYXJnaW46IDUwcHggMDsgfVxuXG4ucXVlc3Rpb24tc2luZ2xlX19lZGl0b3Ige1xuICBwYWRkaW5nLWJvdHRvbTogNDBweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBRdWVzdGlvbiBmaXhlZCBidXR0b25cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiAgTWFpbiBlbGVtZW50LlxyXG4gKi9cbi5xdWVzdGlvbi1maXhlZC1idXR0b24td3JhcHBlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiBjYWxjKDUwJSAtIDYwcHgpO1xuICByaWdodDogMDtcbiAgei1pbmRleDogOTk7IH1cbiAgLnF1ZXN0aW9uLWZpeGVkLWJ1dHRvbi13cmFwcGVyLmlzLW9wZW4gLnFmYl9fb3BlbiB7XG4gICAgcmlnaHQ6IC0xMDBweDtcbiAgICB0cmFuc2l0aW9uOiBwYWRkaW5nLXJpZ2h0IDIwMG1zLCByaWdodCAzMDBtczsgfVxuICAucXVlc3Rpb24tZml4ZWQtYnV0dG9uLXdyYXBwZXIuaXMtb3BlbiAucXVlc3Rpb24tZml4ZWQtYnV0dG9uIHtcbiAgICByaWdodDogMDtcbiAgICB0cmFuc2l0aW9uOiByaWdodCAzMDBtcyAzMDBtczsgfVxuXG4ucXVlc3Rpb24tZml4ZWQtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAtMjUwcHg7XG4gIHdpZHRoOiAyNDBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAxNXB4O1xuICB0cmFuc2l0aW9uOiByaWdodCAzMDBtcztcbiAgYm9yZGVyLXJhZGl1czogNXB4IDAgMCA1cHg7XG4gIGJhY2tncm91bmQ6ICNlY2Y1ZmM7XG4gIGNvbG9yOiAjMDQyZTRiO1xuICBib3gtc2hhZG93OiAwIDJweCA2cHggMCByZ2JhKDMsIDU5LCA5OCwgMC4xOSk7XG4gIHotaW5kZXg6IDk5OyB9XG4gIC5xdWVzdGlvbi1maXhlZC1idXR0b24gc3ZnIHtcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7IH1cblxuLnFmYl9fb3BlbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgcGFkZGluZzogMTBweDtcbiAgdHJhbnNpdGlvbjogcGFkZGluZy1yaWdodCAyMDBtcywgcmlnaHQgMzAwbXMgMzAwbXM7XG4gIGJhY2tncm91bmQ6ICNlY2Y1ZmM7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoMywgNTksIDk4LCAwLjE5KTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgLnFmYl9fb3BlbiB7XG4gICAgICBwYWRkaW5nOiAyMHB4OyB9IH1cbiAgLnFmYl9fb3BlbiBzdmcge1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIGhlaWdodDogMzBweDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgICAucWZiX19vcGVuIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAyOXB4O1xuICAgICAgICBoZWlnaHQ6IDI1cHg7IH0gfVxuICAucWZiX19vcGVuOmhvdmVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA1MHB4OyB9XG5cbi5xZmJfX2Nsb3NlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0yMHB4O1xuICByaWdodDogMDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5xZmJfX2Nsb3NlIHN2ZyB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAjMWQ0MzVkOyB9XG4gIC5xZmJfX2Nsb3NlOmhvdmVyIHN2ZyB7XG4gICAgY29sb3I6ICM2ODgyOTM7IH1cblxuLnFmYl9faWNvbiBzdmcge1xuICB3aWR0aDogMjVweDtcbiAgaGVpZ2h0OiAyNXB4OyB9XG5cbi5xZmJfX3RleHQge1xuICBwYWRkaW5nOiAyMHB4IDUwcHggNDBweCAwO1xuICBmb250LWZhbWlseTogXCJOdW5pdG9cIiwgc2Fucy1zZXJpZjsgfVxuXG4ucWZiX19saW5rIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzBweDtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDVweCA1cHg7XG4gIGJhY2tncm91bmQ6ICNmZjZlMmM7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgLnFmYl9fbGluazpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmY1YzEzOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgUXVlc3Rpb24gZm9ybVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnF1ZXN0aW9uLWZvcm1fX2luZm9ybWF0aW9uIHtcbiAgbWFyZ2luOiAyMHB4IDAgMHB4OyB9XG4gIC5xdWVzdGlvbi1mb3JtX19pbmZvcm1hdGlvbiBzdHJvbmcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAucXVlc3Rpb24tZm9ybV9faW5mb3JtYXRpb24gLnByb2ZpbGVfX2NhbGN1bGF0aW9ucyB7XG4gICAgd2lkdGg6IDE5NXB4OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLnF1ZXN0aW9uLWZvcm1fX2luZm9ybWF0aW9uIC5wcm9maWxlX19jYWxjdWxhdGlvbnMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogNTBweDsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLnF1ZXN0aW9uLWZvcm1fX2luZm9ybWF0aW9uIC5wcm9maWxlX19jYWxjdWxhdGlvbnMgLnByb2ZpbGVfX2NhbGN1bGF0aW9uIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA0NXB4OyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAucXVlc3Rpb24tZm9ybV9faW5mb3JtYXRpb24gLnByb2ZpbGVfX2NhbGN1bGF0aW9ucyAuaGVhZCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDE4cHg7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgIC5xdWVzdGlvbi1mb3JtX19pbmZvcm1hdGlvbiAucHJvZmlsZV9fY2FsY3VsYXRpb25zIHN2ZyB7XG4gICAgICAgIGxlZnQ6IDEwcHg7IH0gfVxuXG4ucXVlc3Rpb24tZm9ybV9faW5mb3JtYXRpb24tdGV4dCB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxOTVweCk7XG4gIHBhZGRpbmctcmlnaHQ6IDEwMHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAucXVlc3Rpb24tZm9ybV9faW5mb3JtYXRpb24tdGV4dCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5xdWVzdGlvbi1mb3JtX19pbmZvcm1hdGlvbi10ZXh0IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDUwcHg7IH0gfVxuICAucXVlc3Rpb24tZm9ybV9faW5mb3JtYXRpb24tdGV4dCBzdHJvbmcge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5xdWVzdGlvbi1mb3JtX19pbmZvcm1hdGlvbi10ZXh0IHAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG5cbi5xdWVzdGlvbi1mb3JtIHtcbiAgbWFyZ2luLWJvdHRvbTogMTMwcHg7IH1cbiAgLnF1ZXN0aW9uLWZvcm0gLmZvcm0ge1xuICAgIG1hcmdpbi10b3A6IDMwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5xdWVzdGlvbi1mb3JtIHRleHRhcmVhLFxuICAgIC5xdWVzdGlvbi1mb3JtIC5zZWxlY3Qge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAucXVlc3Rpb24tZm9ybSAuZm9ybS1pdGVtIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7IH0gfVxuICAucXVlc3Rpb24tZm9ybSAuZm9ybV9fY2hlY2tib3gtLXNtYWxsIGlucHV0IHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5xdWVzdGlvbi1mb3JtIC5mb3JtX19jaGVja2JveC0tc21hbGwgbGFiZWwge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA2MTVweCk7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgICAucXVlc3Rpb24tZm9ybSAuZm9ybV9fY2hlY2tib3gtLXNtYWxsIGxhYmVsIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAucXVlc3Rpb24tZm9ybSAuZm9ybV9fY2hlY2tib3gtaW5mb3JtYXRpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICByaWdodDogLTMwcHg7XG4gICAgd2lkdGg6IDYwMHB4OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLnF1ZXN0aW9uLWZvcm0gLmZvcm1fX2NoZWNrYm94LWluZm9ybWF0aW9uIHtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4OyB9IH1cbiAgLnF1ZXN0aW9uLWZvcm0gLnJlZ2lzdGVyLXN1Ym1pdCB7XG4gICAgbWFyZ2luOiAzMHB4IDAgMDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgIC5xdWVzdGlvbi1mb3JtIC5yZWdpc3Rlci1zdWJtaXQge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAucXVlc3Rpb24tZm9ybSAuZm9ybV9fY2hlY2tib3gtaW5mb3JtYXRpb246OmJlZm9yZSB7XG4gICAgICB0b3A6IC0ycHg7XG4gICAgICByaWdodDogMDtcbiAgICAgIGxlZnQ6IDIycHg7XG4gICAgICBib3JkZXItd2lkdGg6IDAgNy41cHggNXB4O1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZWNmNWZjOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgUXVlc3Rpb24gdG9nZ2xlLlxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnF1ZXN0aW9uLXRvZ2dsZSB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggM3B4ICNmMmY2Zjk7XG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlOyB9XG4gIC5xdWVzdGlvbi10b2dnbGU6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggM3B4IHJnYmEoNCwgNDYsIDc1LCAwLjIxKTsgfVxuICAucXVlc3Rpb24tdG9nZ2xlLmlzLWFjdGl2ZSAucXVlc3Rpb24tdG9nZ2xlX190b2dnbGUgc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAucXVlc3Rpb24tdG9nZ2xlLmpzLWhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLnF1ZXN0aW9uLXRvZ2dsZV9faWNvbiB7XG4gIHdpZHRoOiA2MHB4OyB9XG5cbi5xdWVzdGlvbi10b2dnbGVfX2hlYWQge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAyMHB4IDAgMjBweCA4MHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLnF1ZXN0aW9uLXRvZ2dsZV9fcXVlc3Rpb24ge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBsaW5lLWhlaWdodDogMS40Mjg1N2VtO1xuICB3aWR0aDogY2FsYygxMDAlIC0gODBweCk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzA0MmU0YjtcbiAgb3BhY2l0eTogMC44OyB9XG5cbi5xdWVzdGlvbi10b2dnbGVfX3RvZ2dsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAucXVlc3Rpb24tdG9nZ2xlX190b2dnbGUgc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgbWFyZ2luOiAwIDI2cHg7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIGNvbG9yOiAjMDQyZTRiO1xuICAgIG9wYWNpdHk6IDAuODtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTsgfVxuXG4ucXVlc3Rpb24tdG9nZ2xlX19ib2R5IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ucXVlc3Rpb24tdG9nZ2xlX19tZXRhIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW46IDI1cHggMCAwIDA7XG4gIHBhZGRpbmc6IDAgODBweDtcbiAgY29sb3I6ICMwNDJlNGI7XG4gIG9wYWNpdHk6IDAuODsgfVxuXG4ucXVlc3Rpb24tdG9nZ2xlX19zdWJqZWN0IHtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDsgfVxuXG4ucXVlc3Rpb24tdG9nZ2xlX191c2VyIHtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDsgfVxuICAucXVlc3Rpb24tdG9nZ2xlX191c2VyIHN2ZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMnB4O1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cblxuLnF1ZXN0aW9uLXRvZ2dsZV9fb3JnYW5pc2F0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDsgfVxuICAucXVlc3Rpb24tdG9nZ2xlX19vcmdhbmlzYXRpb24gc3ZnIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAycHg7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuXG4ucXVlc3Rpb24tdG9nZ2xlX19kYXRlIHtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDsgfVxuICAucXVlc3Rpb24tdG9nZ2xlX19kYXRlIHN2ZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMnB4O1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cblxuLmRvY3VtZW50LWl0ZW1fX2Fuc3dlciB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzZW07XG4gIGNvbG9yOiAjMDQyZTRiO1xuICBmb250LWZhbWlseTogXCJOdW5pdG9cIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgb3BhY2l0eTogMC44O1xuICBwYWRkaW5nOiAwIDgwcHggMTVweCA4MHB4OyB9XG4gIC5kb2N1bWVudC1pdGVtX19hbnN3ZXIgcCB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjMzMzMzZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtOyB9XG4gIC5kb2N1bWVudC1pdGVtX19hbnN3ZXIgaDEge1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBmb250LXNpemU6IDNyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMTY2NjdlbTtcbiAgICBjb2xvcjogIzA0MmU0YjtcbiAgICBmb250LWZhbWlseTogXCJNb250c2VycmF0XCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07IH1cbiAgLmRvY3VtZW50LWl0ZW1fX2Fuc3dlciBoMiB7XG4gICAgZm9udC1zaXplOiAyNXB4O1xuICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICBjb2xvcjogIzA0MmU0YjtcbiAgICBmb250LWZhbWlseTogXCJNb250c2VycmF0XCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07IH1cbiAgLmRvY3VtZW50LWl0ZW1fX2Fuc3dlciBoMyB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjMzMzMzZW07XG4gICAgY29sb3I6ICMwNDJlNGI7XG4gICAgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7IH1cbiAgLmRvY3VtZW50LWl0ZW1fX2Fuc3dlciB1bCxcbiAgLmRvY3VtZW50LWl0ZW1fX2Fuc3dlciBvbCB7XG4gICAgbWFyZ2luOiAwIDAgMWVtIDQwcHg7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBjb3VudGVyLXJlc2V0OiBteS1hd2Vzb21lLWNvdW50ZXI7IH1cbiAgICAuZG9jdW1lbnQtaXRlbV9fYW5zd2VyIHVsIGxpLFxuICAgIC5kb2N1bWVudC1pdGVtX19hbnN3ZXIgb2wgbGkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgICBjb3VudGVyLWluY3JlbWVudDogbXktYXdlc29tZS1jb3VudGVyOyB9XG4gICAgICAuZG9jdW1lbnQtaXRlbV9fYW5zd2VyIHVsIGxpOjpiZWZvcmUsXG4gICAgICAuZG9jdW1lbnQtaXRlbV9fYW5zd2VyIG9sIGxpOjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAycHg7XG4gICAgICAgIGxlZnQ6IC0yNXB4O1xuICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDIyNC43ZGVnLCAjOGIyZGU5IDAlLCAjMGIxNGEzIDEwMCUpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgY29udGVudDogY291bnRlcihteS1hd2Vzb21lLWNvdW50ZXIpO1xuICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsgfVxuICAuZG9jdW1lbnQtaXRlbV9fYW5zd2VyIHVsIHtcbiAgICBtYXJnaW46IDAgMCAxZW0gNDBweDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cbiAgICAuZG9jdW1lbnQtaXRlbV9fYW5zd2VyIHVsIGxpOjpiZWZvcmUge1xuICAgICAgdG9wOiA2cHg7XG4gICAgICBsZWZ0OiAtMTZweDtcbiAgICAgIHdpZHRoOiA3cHg7XG4gICAgICBoZWlnaHQ6IDdweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjMDQyZTRiO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBvcGFjaXR5OiAwLjg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgUmVnaXN0cmF0aW9uIFByb2dyZXNzXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogIE1haW4gZWxlbWVudC5cclxuICovXG4ucmVnaXN0cmF0aW9uLXByb2dyZXNzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiA1MHB4O1xuICBtYXJnaW4tYm90dG9tOiAxNDBweDsgfVxuICAucmVnaXN0cmF0aW9uLXByb2dyZXNzOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTBweDtcbiAgICByaWdodDogNzVweDtcbiAgICBsZWZ0OiAzNXB4O1xuICAgIGhlaWdodDogMnB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBwYWRkaW5nLWxlZnQ6IDMwMHB4O1xuICAgIGJhY2tncm91bmQ6ICNhYmI5YzI7XG4gICAgY29udGVudDogJyc7XG4gICAgei1pbmRleDogLTE7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAucmVnaXN0cmF0aW9uLXByb2dyZXNzOjphZnRlciB7XG4gICAgICAgIGxlZnQ6IDgwcHg7IH0gfVxuXG4vKipcclxuICogIFNpbmdsZSBzdGVwLlxyXG4gKi9cbi5yZWdpc3RyYXRpb24tcHJvZ3Jlc3NfX3N0ZXAge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBsaW5lLWhlaWdodDogMi41ZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmb250LXdlaWdodDogMzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5yZWdpc3RyYXRpb24tcHJvZ3Jlc3NfX3N0ZXAge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDMpOyB9IH1cbiAgLnJlZ2lzdHJhdGlvbi1wcm9ncmVzc19fc3RlcCBzcGFuIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjb2xvcjogIzA0MmU0YjsgfVxuICAucmVnaXN0cmF0aW9uLXByb2dyZXNzX19zdGVwLmFjdGl2ZSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBvcGFjaXR5OiAxOyB9XG4gICAgLnJlZ2lzdHJhdGlvbi1wcm9ncmVzc19fc3RlcC5hY3RpdmUgc3BhbiB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLnJlZ2lzdHJhdGlvbi1wcm9ncmVzc19fc3RlcC5hY3RpdmU6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMDQyZTRiOyB9XG4gIC5yZWdpc3RyYXRpb24tcHJvZ3Jlc3NfX3N0ZXA6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNjg4MjkzO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgY29udGVudDogJyc7IH1cblxuLmZpcnN0LXN0ZXAgLnJlZ2lzdHJhdGlvbi1wcm9ncmVzc19fc3RlcDpudGgtY2hpbGQoMSkge1xuICBmb250LXdlaWdodDogNzAwO1xuICBvcGFjaXR5OiAxOyB9XG4gIC5maXJzdC1zdGVwIC5yZWdpc3RyYXRpb24tcHJvZ3Jlc3NfX3N0ZXA6bnRoLWNoaWxkKDEpOjpiZWZvcmUge1xuICAgIHBhZGRpbmc6IDNweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDQyZTRiO1xuICAgIGJhY2tncm91bmQ6ICMwNDJlNGI7IH1cblxuLmZpcnN0LXN0ZXAgLnJlZ2lzdHJhdGlvbi1wcm9ncmVzc19fc3RlcDpudGgtY2hpbGQoMikgc3BhbiwgLmZpcnN0LXN0ZXAgLnJlZ2lzdHJhdGlvbi1wcm9ncmVzc19fc3RlcDpudGgtY2hpbGQoMykgc3BhbiB7XG4gIGNvbG9yOiAjMDQyZTRiO1xuICBmb250LXdlaWdodDogNTAwO1xuICBvcGFjaXR5OiAwLjY7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAuc2Vjb25kLXN0ZXAgLnJlZ2lzdHJhdGlvbi1wcm9ncmVzc19fc3RlcDpudGgtY2hpbGQoMSkgc3BhbiwgLnNlY29uZC1zdGVwIC5yZWdpc3RyYXRpb24tcHJvZ3Jlc3NfX3N0ZXA6bnRoLWNoaWxkKDMpIHNwYW4ge1xuICAgIGNvbG9yOiAjMDQyZTRiO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH0gfVxuXG4uc2Vjb25kLXN0ZXAgLnJlZ2lzdHJhdGlvbi1wcm9ncmVzc19fc3RlcDpudGgtY2hpbGQoMSksIC5zZWNvbmQtc3RlcCAucmVnaXN0cmF0aW9uLXByb2dyZXNzX19zdGVwOm50aC1jaGlsZCgyKSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgLnNlY29uZC1zdGVwIC5yZWdpc3RyYXRpb24tcHJvZ3Jlc3NfX3N0ZXA6bnRoLWNoaWxkKDEpOjpiZWZvcmUsIC5zZWNvbmQtc3RlcCAucmVnaXN0cmF0aW9uLXByb2dyZXNzX19zdGVwOm50aC1jaGlsZCgyKTo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDQyZTRiOyB9XG5cbi5zZWNvbmQtc3RlcCAucmVnaXN0cmF0aW9uLXByb2dyZXNzX19zdGVwOm50aC1jaGlsZCgxKSB7XG4gIGNvbG9yOiAjYWJiOWMyOyB9XG4gIC5zZWNvbmQtc3RlcCAucmVnaXN0cmF0aW9uLXByb2dyZXNzX19zdGVwOm50aC1jaGlsZCgxKSBzcGFuOjphZnRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDQyZTRiO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgY29udGVudDogJyc7IH1cbiAgLnNlY29uZC1zdGVwIC5yZWdpc3RyYXRpb24tcHJvZ3Jlc3NfX3N0ZXA6bnRoLWNoaWxkKDEpOjpiZWZvcmUge1xuICAgIGJvcmRlcjogM3B4IHNvbGlkIHdoaXRlOyB9XG5cbi5maXJzdC1zdGVwIC5kZWZhdWx0X19lZGl0b3Ige1xuICBmb250LXdlaWdodDogMzAwOyB9XG5cbi50aGlyZC1zdGVwIC5yZWdpc3RyYXRpb24tcHJvZ3Jlc3Mge1xuICBtYXJnaW4tYm90dG9tOiAxMTBweDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC50aGlyZC1zdGVwIC5yZWdpc3RyYXRpb24tcHJvZ3Jlc3NfX3N0ZXA6bnRoLWNoaWxkKDEpIHNwYW4sIC50aGlyZC1zdGVwIC5yZWdpc3RyYXRpb24tcHJvZ3Jlc3NfX3N0ZXA6bnRoLWNoaWxkKDIpIHNwYW4ge1xuICAgIGNvbG9yOiB3aGl0ZTsgfSB9XG5cbi50aGlyZC1zdGVwIC5yZWdpc3RyYXRpb24tcHJvZ3Jlc3NfX3N0ZXA6bnRoLWNoaWxkKDEpLCAudGhpcmQtc3RlcCAucmVnaXN0cmF0aW9uLXByb2dyZXNzX19zdGVwOm50aC1jaGlsZCgyKSB7XG4gIGNvbG9yOiAjYWJiOWMyO1xuICBmb250LXdlaWdodDogNjAwOyB9XG4gIC50aGlyZC1zdGVwIC5yZWdpc3RyYXRpb24tcHJvZ3Jlc3NfX3N0ZXA6bnRoLWNoaWxkKDEpIHNwYW46OmFmdGVyLCAudGhpcmQtc3RlcCAucmVnaXN0cmF0aW9uLXByb2dyZXNzX19zdGVwOm50aC1jaGlsZCgyKSBzcGFuOjphZnRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDQyZTRiO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgY29udGVudDogJyc7IH1cbiAgLnRoaXJkLXN0ZXAgLnJlZ2lzdHJhdGlvbi1wcm9ncmVzc19fc3RlcDpudGgtY2hpbGQoMSk6OmJlZm9yZSwgLnRoaXJkLXN0ZXAgLnJlZ2lzdHJhdGlvbi1wcm9ncmVzc19fc3RlcDpudGgtY2hpbGQoMik6OmJlZm9yZSB7XG4gICAgYm9yZGVyOiAzcHggc29saWQgd2hpdGU7XG4gICAgYmFja2dyb3VuZDogIzA0MmU0YjsgfVxuXG4udGhpcmQtc3RlcCAucmVnaXN0cmF0aW9uLXByb2dyZXNzX19zdGVwLmxhc3Qge1xuICBmb250LXdlaWdodDogNzAwOyB9XG4gIC50aGlyZC1zdGVwIC5yZWdpc3RyYXRpb24tcHJvZ3Jlc3NfX3N0ZXAubGFzdDo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDQyZTRiOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFNlYXJjaCByZXN1bHRzLlxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnNlYXJjaC1yZXN1bHRzIHtcbiAgbWFyZ2luLWJvdHRvbTogMTMwcHg7IH1cbiAgLnNlYXJjaC1yZXN1bHRzIC5kb2N1bWVudC1pdGVtOm50aC1sYXN0LWNoaWxkKDEpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cbi5zZWFyY2gtcmVzdWx0c19fc2VjdGlvbnMge1xuICBtYXJnaW4tYm90dG9tOiAxMDBweDsgfVxuXG4uc2VhcmNoLXJlc3VsdHNfX3NlY3Rpb24gLnF1ZXN0aW9uLWl0ZW0ge1xuICBtYXJnaW4tYm90dG9tOiA1MHB4OyB9XG5cbi5zZWFyY2gtcmVzdWx0c19fc2VjdGlvbi10aXRsZSB7XG4gIG1hcmdpbjogNTBweCAwIDUwcHg7IH1cblxuLnNlYXJjaC1yZXN1bHRzX19icmVhZGNydW1icyB7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIGNvbG9yOiAjYWJiOWMyOyB9XG4gIC5zZWFyY2gtcmVzdWx0c19fYnJlYWRjcnVtYnMgc3ZnIHtcbiAgICB3aWR0aDogN3B4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBtYXJnaW46IDAgMjBweDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gIC5zZWFyY2gtcmVzdWx0c19faGVhZCAuaGVhZGluZy0xLWJsdWUge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLnNlYXJjaC1yZXN1bHRzX19zb3J0IHtcbiAgdG9wOiAxMHB4O1xuICBmb250LWZhbWlseTogXCJOdW5pdG9cIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnNlYXJjaC1yZXN1bHRzX19zb3J0IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLnNlYXJjaC1yZXN1bHRzX19zb3J0IGJ1dHRvbiB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICAgIGNvbG9yOiAjZmY2ZTJjOyB9XG4gIC5zZWFyY2gtcmVzdWx0c19fc29ydCBzdmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDJweDtcbiAgICB3aWR0aDogMTFweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICBjb2xvcjogI2ZmNmUyYzsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBTZWFyY2hcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiAgTWFpbiBlbGVtZW50LlxyXG4gKi9cbi5oZWFkZXJfX3NlYXJjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1mYW1pbHk6IFwiTnVuaXRvXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDsgfVxuXG4uc2VhcmNoLWZvcm1fX2lucHV0IHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnNlYXJjaC1mb3JtX19pbnB1dCBpbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMzVweCAxMHB4IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBmb250LXNpemU6IDEzcHg7IH1cbiAgICAuc2VhcmNoLWZvcm1fX2lucHV0IGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogI2FiYjljMjsgfVxuXG4uc2VhcmNoLWZvcm1fX2V4cGFuZCBzdmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzJweDtcbiAgcmlnaHQ6IDE1cHg7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIGNvbG9yOiAjYWJiOWMyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBTdWJtZW51XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogIFN1Ym1lbnUuXHJcbiAqL1xuLnN1Ym1lbnUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6ICMwNDJlNGI7XG4gIGZvbnQtZmFtaWx5OiBcIk51bml0b1wiLCBzYW5zLXNlcmlmO1xuICBib3gtc2hhZG93OiAwIDEzcHggMTVweCAwIHJnYmEoNCwgNDYsIDc1LCAwLjA0KTsgfVxuICAuc3VibWVudS5pcy1maXhlZCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDk5OyB9XG4gIC5zdWJtZW51IC5zdWJtZW51LWxlZnRfX3VzZXIge1xuICAgIHBhZGRpbmc6IDIwcHg7IH1cblxuLnN1Ym1lbnUtbGVmdF9fdXNlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMjBweCAwO1xuICBiYWNrZ3JvdW5kOiAjZGVkZGY1O1xuICBmb250LXdlaWdodDogNzAwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLnN1Ym1lbnUtbGVmdF9fdXNlciB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLnN1Ym1lbnUtbGVmdF9fdXNlciBzdmcge1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIGhlaWdodDogMTVweDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgZWFzZTsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgICAuc3VibWVudS1sZWZ0X191c2VyIHN2ZyB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyOyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgICAgLnN1Ym1lbnUtbGVmdF9fdXNlciBzdmcuaXMtYWN0aXZlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC5zdWJtZW51LWxlZnQge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLnN1Ym1lbnUtbGVmdF9fbGlua3Mge1xuICBwYWRkaW5nOiAxOHB4IDMwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgei1pbmRleDogOTk7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuc3VibWVudS1sZWZ0X19saW5rcyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC0xMDAlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgICBwb2ludGVyLWV2ZW50czogMDsgfSB9XG4gIC5zdWJtZW51LWxlZnRfX2xpbmtzIGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAyNTBtcyBlYXNlOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAgIC5zdWJtZW51LWxlZnRfX2xpbmtzIGEge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgICAgLnN1Ym1lbnUtbGVmdF9fbGlua3MgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjZmY2ZTJjOyB9IH1cbiAgLnN1Ym1lbnUtbGVmdF9fbGlua3Mgc3ZnIHtcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA3cHg7IH1cbiAgLnN1Ym1lbnUtbGVmdF9fbGlua3MuaXMtYWN0aXZlIHtcbiAgICB0b3A6IDEwMCU7XG4gICAgb3BhY2l0eTogMTtcbiAgICB6LWluZGV4OiA5OTtcbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDsgfVxuXG4uc3VibWVudS1yaWdodCB7XG4gIHBhZGRpbmc6IDIwcHggMzBweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5zdWJtZW51LXJpZ2h0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuc3VibWVudS1yaWdodCBzdmcge1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDdweDsgfVxuXG4uc3VibWVudS1yaWdodF9fbW9iaWxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDIwcHggMDtcbiAgb3BhY2l0eTogMC41OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgLnN1Ym1lbnUtcmlnaHRfX21vYmlsZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgVGV4dC9pbWFnZVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqICBNYWluIGVsZW1lbnQuXHJcbiAqL1xuLnRleHQtaW1hZ2VfX3dyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFuaW1hdGlvbjogc2xpZGVEb3duIDEwMDBtcyBlYXNlOyB9XG5cbi50ZXh0LWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogODIwcHg7XG4gIG1hcmdpbjogYXV0byBhdXRvIDE1MHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgyMjQuN2RlZywgIzhiMmRlOSAwJSwgIzBiMTRhMyAxMDAlKTtcbiAgY29sb3I6IHdoaXRlO1xuICBib3gtc2hhZG93OiAwIDJweCAyMHB4IDAgcmdiYSgxMzYsIDQ1LCAyMzEsIDAuMyk7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC50ZXh0LWltYWdlIHtcbiAgICAgIG1hcmdpbjogYXV0byBhdXRvIDc1cHg7IH0gfVxuICAudGV4dC1pbWFnZS5vcmRlci1yaWdodCAuZmxleCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgLnRleHQtaW1hZ2Uub3JkZXItcmlnaHQgLmZsZXgge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH0gfVxuXG4udGV4dC1pbWFnZS5oYXMtc3ZnIC50ZXh0LWltYWdlX19pbWFnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMjMlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAudGV4dC1pbWFnZS5oYXMtc3ZnIC50ZXh0LWltYWdlX19pbWFnZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctdG9wOiAzNXB4OyB9IH1cblxuLnRleHQtaW1hZ2UuaGFzLXN2ZyAudGV4dC1pbWFnZV9fY29udGVudCB7XG4gIHdpZHRoOiA3NyU7XG4gIHBhZGRpbmc6IDYwcHggMzBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLnRleHQtaW1hZ2UuaGFzLXN2ZyAudGV4dC1pbWFnZV9fY29udGVudCB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi50ZXh0LWltYWdlLmhhcy1zdmcgLmRlZmF1bHRfX3RleHQge1xuICBsZXR0ZXItc3BhY2luZzogMC4zcHg7XG4gIG9wYWNpdHk6IDAuODsgfVxuXG4udGV4dC1pbWFnZS5oYXMtc3ZnIHN2ZyB7XG4gIG1hcmdpbi1sZWZ0OiAyNXB4OyB9XG5cbi50ZXh0LWltYWdlX19pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDMwJTtcbiAgaGVpZ2h0OiBhdXRvOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAudGV4dC1pbWFnZV9faW1hZ2Uge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAudGV4dC1pbWFnZV9faW1hZ2UgaW1nIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHggMCAwIDVweDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAgIC50ZXh0LWltYWdlX19pbWFnZSBpbWcge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHggNXB4IDAgMDsgfSB9XG4gIC50ZXh0LWltYWdlX19pbWFnZSBzdmcge1xuICAgIHdpZHRoOiA3MHB4O1xuICAgIGhlaWdodDogNzBweDsgfVxuXG4udGV4dC1pbWFnZV9fY29udGVudCB7XG4gIHdpZHRoOiA3MCU7XG4gIHBhZGRpbmc6IDUwcHggNjBweDtcbiAgYm9yZGVyLXJhZGl1czogMCA1cHggNXB4IDA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC50ZXh0LWltYWdlX19jb250ZW50IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDVweCA1cHg7IH0gfVxuXG4udGV4dC1pbWFnZV9fY29udGVudCAuZGVmYXVsdF9fdGV4dCB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiAxMDA7IH1cbiAgLnRleHQtaW1hZ2VfX2NvbnRlbnQgLmRlZmF1bHRfX3RleHQgLmJ1dHRvbi10cmFuc3BhcmFudCB7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7IH1cblxuLmRlZmF1bHRfX3dyYXBwZXIgKyAudGV4dC1pbWFnZV9fd3JhcHBlciB7XG4gIG1hcmdpbi10b3A6IDg1cHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQW5pbWF0aW9ucy5cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBrZXlmcmFtZXMgc3dpcGVGYWRlUmlnaHQge1xuICAwJSB7XG4gICAgbGVmdDogNXB4O1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgbGVmdDogMjBweDtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuQGtleWZyYW1lcyBzd2lwZUZhZGVMZWZ0IHtcbiAgMCUge1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICByaWdodDogMjBweDtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29sb3JcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBDb2xvciB1dGlsaXR5IGNsYXNzZXMuXHJcbiAqL1xuLyoqXHJcbiAgICAgICAqIGBjb2xvcmAgYmxhY2stMTAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmNvbG9yLWJsYWNrLTEwMCB7XG4gIGNvbG9yOiBibGFjazsgfVxuXG4vKipcclxuICAgICAgICogYGJhY2tncm91bmQtY29sb3JgIGJsYWNrLTEwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5iYWNrZ3JvdW5kLWNvbG9yLWJsYWNrLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOyB9XG5cbi8qKlxyXG4gICAgICAgKiBgY29sb3JgICNhYmI5YzItMjAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmNvbG9yLWdyZXktMjAwIHtcbiAgY29sb3I6ICNhYmI5YzI7IH1cblxuLyoqXHJcbiAgICAgICAqIGBiYWNrZ3JvdW5kLWNvbG9yYCAjYWJiOWMyLTIwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5iYWNrZ3JvdW5kLWNvbG9yLWdyZXktMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FiYjljMjsgfVxuXG4vKipcclxuICAgICAgICogYGNvbG9yYCAjNjg4MjkzLTMwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5jb2xvci1ncmV5LTMwMCB7XG4gIGNvbG9yOiAjNjg4MjkzOyB9XG5cbi8qKlxyXG4gICAgICAgKiBgYmFja2dyb3VuZC1jb2xvcmAgIzY4ODI5My0zMDAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uYmFja2dyb3VuZC1jb2xvci1ncmV5LTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2ODgyOTM7IH1cblxuLyoqXHJcbiAgICAgICAqIGBjb2xvcmAgd2hpdGUtMTAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmNvbG9yLXdoaXRlLTEwMCB7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuXG4vKipcclxuICAgICAgICogYGJhY2tncm91bmQtY29sb3JgIHdoaXRlLTEwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5iYWNrZ3JvdW5kLWNvbG9yLXdoaXRlLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG5cbi8qKlxyXG4gICAgICAgKiBgY29sb3JgICNlY2Y1ZmMtMTAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmNvbG9yLWJsdWUtMTAwIHtcbiAgY29sb3I6ICNlY2Y1ZmM7IH1cblxuLyoqXHJcbiAgICAgICAqIGBiYWNrZ3JvdW5kLWNvbG9yYCAjZWNmNWZjLTEwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5iYWNrZ3JvdW5kLWNvbG9yLWJsdWUtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZjVmYzsgfVxuXG4vKipcclxuICAgICAgICogYGNvbG9yYCAjYjdjN2QyLTIwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5jb2xvci1ibHVlLTIwMCB7XG4gIGNvbG9yOiAjYjdjN2QyOyB9XG5cbi8qKlxyXG4gICAgICAgKiBgYmFja2dyb3VuZC1jb2xvcmAgI2I3YzdkMi0yMDAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uYmFja2dyb3VuZC1jb2xvci1ibHVlLTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiN2M3ZDI7IH1cblxuLyoqXHJcbiAgICAgICAqIGBjb2xvcmAgIzFkNDM1ZC0zMDAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uY29sb3ItYmx1ZS0zMDAge1xuICBjb2xvcjogIzFkNDM1ZDsgfVxuXG4vKipcclxuICAgICAgICogYGJhY2tncm91bmQtY29sb3JgICMxZDQzNWQtMzAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmJhY2tncm91bmQtY29sb3ItYmx1ZS0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWQ0MzVkOyB9XG5cbi8qKlxyXG4gICAgICAgKiBgY29sb3JgICMwNDJlNGItNDAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmNvbG9yLWJsdWUtNDAwIHtcbiAgY29sb3I6ICMwNDJlNGI7IH1cblxuLyoqXHJcbiAgICAgICAqIGBiYWNrZ3JvdW5kLWNvbG9yYCAjMDQyZTRiLTQwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5iYWNrZ3JvdW5kLWNvbG9yLWJsdWUtNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA0MmU0YjsgfVxuXG4vKipcclxuICAgICAgICogYGNvbG9yYCAjZmY2ZTJjLTIwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5jb2xvci1vcmFuZ2UtMjAwIHtcbiAgY29sb3I6ICNmZjZlMmM7IH1cblxuLyoqXHJcbiAgICAgICAqIGBiYWNrZ3JvdW5kLWNvbG9yYCAjZmY2ZTJjLTIwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5iYWNrZ3JvdW5kLWNvbG9yLW9yYW5nZS0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZTJjOyB9XG5cbi8qKlxyXG4gICAgICAgKiBgY29sb3JgICNmMmY2ZjktMTAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmNvbG9yLXB1cnBsZS0xMDAge1xuICBjb2xvcjogI2YyZjZmOTsgfVxuXG4vKipcclxuICAgICAgICogYGJhY2tncm91bmQtY29sb3JgICNmMmY2ZjktMTAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmJhY2tncm91bmQtY29sb3ItcHVycGxlLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmY2Zjk7IH1cblxuLyoqXHJcbiAgICAgICAqIGBjb2xvcmAgI2Y2ZjVmZC0xNTAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uY29sb3ItcHVycGxlLTE1MCB7XG4gIGNvbG9yOiAjZjZmNWZkOyB9XG5cbi8qKlxyXG4gICAgICAgKiBgYmFja2dyb3VuZC1jb2xvcmAgI2Y2ZjVmZC0xNTAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uYmFja2dyb3VuZC1jb2xvci1wdXJwbGUtMTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjVmZDsgfVxuXG4vKipcclxuICAgICAgICogYGNvbG9yYCAjZGVkZGY1LTIwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5jb2xvci1wdXJwbGUtMjAwIHtcbiAgY29sb3I6ICNkZWRkZjU7IH1cblxuLyoqXHJcbiAgICAgICAqIGBiYWNrZ3JvdW5kLWNvbG9yYCAjZGVkZGY1LTIwMCBjb2xvciB1dGlsaXR5LlxyXG4gICAgICAgKi9cbi5iYWNrZ3JvdW5kLWNvbG9yLXB1cnBsZS0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVkZGY1OyB9XG5cbi8qKlxyXG4gICAgICAgKiBgY29sb3JgICM0YTIwYzYtMzAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmNvbG9yLXB1cnBsZS0zMDAge1xuICBjb2xvcjogIzRhMjBjNjsgfVxuXG4vKipcclxuICAgICAgICogYGJhY2tncm91bmQtY29sb3JgICM0YTIwYzYtMzAwIGNvbG9yIHV0aWxpdHkuXHJcbiAgICAgICAqL1xuLmJhY2tncm91bmQtY29sb3ItcHVycGxlLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0YTIwYzY7IH1cblxuLyoqXHJcbiAgICAgICAqIGBjb2xvcmAgI2ZmYzljOS0xMDAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uY29sb3ItcmVkLTEwMCB7XG4gIGNvbG9yOiAjZmZjOWM5OyB9XG5cbi8qKlxyXG4gICAgICAgKiBgYmFja2dyb3VuZC1jb2xvcmAgI2ZmYzljOS0xMDAgY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXG4uYmFja2dyb3VuZC1jb2xvci1yZWQtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYzljOTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBPYmplY3QgRml0XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogT2JqZWN0IGZpdC5cclxuICpcclxuICogMS4gRm9udCBmYW1pbHkgcG9seWZpbGwgd2l0aCAoaHR0cHM6Ly9naXRodWIuY29tL2JmcmVkLWl0L29iamVjdC1maXQtaW1hZ2VzKS5cclxuICovXG4vKipcclxuICAgKiBgb2JqZWN0LWZpdGAgZmlsbCB1dGlsaXR5IGNsYXNzLlxyXG4gICAqL1xuLmZpbGwge1xuICBmb250LWZhbWlseTogXCJvYmplY3QtZml0OiBmaWxsO1wiO1xuICAvKiAxICovXG4gIG9iamVjdC1maXQ6IGZpbGw7IH1cblxuLyoqXHJcbiAgICogYG9iamVjdC1maXRgIGNvbnRhaW4gdXRpbGl0eSBjbGFzcy5cclxuICAgKi9cbi5jb250YWluIHtcbiAgZm9udC1mYW1pbHk6IFwib2JqZWN0LWZpdDogY29udGFpbjtcIjtcbiAgLyogMSAqL1xuICBvYmplY3QtZml0OiBjb250YWluOyB9XG5cbi8qKlxyXG4gICAqIGBvYmplY3QtZml0YCBjb3ZlciB1dGlsaXR5IGNsYXNzLlxyXG4gICAqL1xuLmNvdmVyIHtcbiAgZm9udC1mYW1pbHk6IFwib2JqZWN0LWZpdDogY292ZXI7XCI7XG4gIC8qIDEgKi9cbiAgb2JqZWN0LWZpdDogY292ZXI7IH1cblxuLyoqXHJcbiAgICogYG9iamVjdC1maXRgIG5vbmUgdXRpbGl0eSBjbGFzcy5cclxuICAgKi9cbi5ub25lIHtcbiAgZm9udC1mYW1pbHk6IFwib2JqZWN0LWZpdDogbm9uZTtcIjtcbiAgLyogMSAqL1xuICBvYmplY3QtZml0OiBub25lOyB9XG5cbi8qKlxyXG4gICAqIGBvYmplY3QtZml0YCBzY2FsZS1kb3duIHV0aWxpdHkgY2xhc3MuXHJcbiAgICovXG4uc2NhbGUtZG93biB7XG4gIGZvbnQtZmFtaWx5OiBcIm9iamVjdC1maXQ6IHNjYWxlLWRvd247XCI7XG4gIC8qIDEgKi9cbiAgb2JqZWN0LWZpdDogc2NhbGUtZG93bjsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBQb3NpdGlvblxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIFBvc2l0aW9uIHV0aWxpdHkgY2xhc3MuXHJcbiAqL1xuLnN0YXRpYyB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7IH1cblxuLnJlbGF0aXZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5hYnNvbHV0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuXG4uZml4ZWQge1xuICBwb3NpdGlvbjogZml4ZWQ7IH1cblxuLnN0aWNreSB7XG4gIHBvc2l0aW9uOiBzdGlja3k7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgVGV4dFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIEZvbnQgZmFtaWx5IHV0aWxpdHkgY2xhc3Nlcy5cclxuICovXG4vKipcclxuICogVGV4dCBzaXplIHV0aWxpdHkgY2xhc3Nlcy5cclxuICovXG4udGV4dC14cy1oMSB7XG4gIGZvbnQtc2l6ZTogMzBweDtcbiAgZm9udC1zaXplOiAzcmVtO1xuICBsaW5lLWhlaWdodDogMS4xNjY2N2VtOyB9XG5cbi50ZXh0LXhzLWgyIHtcbiAgZm9udC1zaXplOiAyNXB4O1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMmVtOyB9XG5cbi50ZXh0LXhzLWgzIHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzNlbTsgfVxuXG4udGV4dC14cy1oNCB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgZm9udC1zaXplOiAyLjJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ1NDU1ZW07IH1cblxuLnRleHQteHMtaDUge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNmVtOyB9XG5cbi50ZXh0LXhzLWg2IHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzc3NzhlbTsgfVxuXG4udGV4dC14cy1wIHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzNlbTsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC50ZXh0LXNtLWgxIHtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgZm9udC1zaXplOiAzcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE2NjY3ZW07IH1cbiAgLnRleHQtc20taDIge1xuICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yZW07IH1cbiAgLnRleHQtc20taDMge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4zMzMzM2VtOyB9XG4gIC50ZXh0LXNtLWg0IHtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgZm9udC1zaXplOiAyLjJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU0NTVlbTsgfVxuICAudGV4dC1zbS1oNSB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42ZW07IH1cbiAgLnRleHQtc20taDYge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBsaW5lLWhlaWdodDogMS43Nzc3OGVtOyB9XG4gIC50ZXh0LXNtLXAge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4zMzMzM2VtOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAudGV4dC1tZC1oMSB7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xNjY2N2VtOyB9XG4gIC50ZXh0LW1kLWgyIHtcbiAgICBmb250LXNpemU6IDI1cHg7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMmVtOyB9XG4gIC50ZXh0LW1kLWgzIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMzMzMzNlbTsgfVxuICAudGV4dC1tZC1oNCB7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1NDU1ZW07IH1cbiAgLnRleHQtbWQtaDUge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNmVtOyB9XG4gIC50ZXh0LW1kLWg2IHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNzc3NzhlbTsgfVxuICAudGV4dC1tZC1wIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMzMzMzNlbTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgLnRleHQtbGctaDEge1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBmb250LXNpemU6IDNyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMTY2NjdlbTsgfVxuICAudGV4dC1sZy1oMiB7XG4gICAgZm9udC1zaXplOiAyNXB4O1xuICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTsgfVxuICAudGV4dC1sZy1oMyB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjMzMzMzZW07IH1cbiAgLnRleHQtbGctaDQge1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBmb250LXNpemU6IDIuMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40NTQ1NWVtOyB9XG4gIC50ZXh0LWxnLWg1IHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjZlbTsgfVxuICAudGV4dC1sZy1oNiB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjc3Nzc4ZW07IH1cbiAgLnRleHQtbGctcCB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjMzMzMzZW07IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudGV4dC14bC1oMSB7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xNjY2N2VtOyB9XG4gIC50ZXh0LXhsLWgyIHtcbiAgICBmb250LXNpemU6IDI1cHg7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMmVtOyB9XG4gIC50ZXh0LXhsLWgzIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMzMzMzNlbTsgfVxuICAudGV4dC14bC1oNCB7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1NDU1ZW07IH1cbiAgLnRleHQteGwtaDUge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNmVtOyB9XG4gIC50ZXh0LXhsLWg2IHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNzc3NzhlbTsgfVxuICAudGV4dC14bC1wIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMzMzMzNlbTsgfSB9XG5cbi8qKlxyXG4gKiBUZXh0IGFsaWdubWVudCB1dGlsaXR5IGNsYXNzZXMuXHJcbiAqL1xuLnRleHQteHMtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLnRleHQteHMtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4udGV4dC14cy1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAudGV4dC1zbS1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC50ZXh0LXNtLXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAudGV4dC1zbS1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLnRleHQtbWQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAudGV4dC1tZC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLnRleHQtbWQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gIC50ZXh0LWxnLWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLnRleHQtbGctcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC50ZXh0LWxnLWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnRleHQteGwtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAudGV4dC14bC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLnRleHQteGwtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuXG4vKipcclxuICogRm9udCB3ZWlnaHQgdXRpbGl0eSBjbGFzc2VzLlxyXG4gKlxyXG4gKiAxLiBNdWx0aXBseSBsb29wZWQgaW50ZWdlciBieSAxMDAgZm9yIGNvcnJlY3QgZm9udCB3ZWlnaHQgdmFsdWUuXHJcbiAqL1xuLnRleHQteHMtMTAwIHtcbiAgZm9udC13ZWlnaHQ6IDEwMDsgfVxuXG4udGV4dC14cy0yMDAge1xuICBmb250LXdlaWdodDogMjAwOyB9XG5cbi50ZXh0LXhzLTMwMCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cblxuLnRleHQteHMtNDAwIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG4udGV4dC14cy01MDAge1xuICBmb250LXdlaWdodDogNTAwOyB9XG5cbi50ZXh0LXhzLTYwMCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuLnRleHQteHMtNzAwIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG4udGV4dC14cy04MDAge1xuICBmb250LXdlaWdodDogODAwOyB9XG5cbi50ZXh0LXhzLTkwMCB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAudGV4dC1zbS0xMDAge1xuICAgIGZvbnQtd2VpZ2h0OiAxMDA7IH1cbiAgLnRleHQtc20tMjAwIHtcbiAgICBmb250LXdlaWdodDogMjAwOyB9XG4gIC50ZXh0LXNtLTMwMCB7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAudGV4dC1zbS00MDAge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgLnRleHQtc20tNTAwIHtcbiAgICBmb250LXdlaWdodDogNTAwOyB9XG4gIC50ZXh0LXNtLTYwMCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAudGV4dC1zbS03MDAge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgLnRleHQtc20tODAwIHtcbiAgICBmb250LXdlaWdodDogODAwOyB9XG4gIC50ZXh0LXNtLTkwMCB7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLnRleHQtbWQtMTAwIHtcbiAgICBmb250LXdlaWdodDogMTAwOyB9XG4gIC50ZXh0LW1kLTIwMCB7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDsgfVxuICAudGV4dC1tZC0zMDAge1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgLnRleHQtbWQtNDAwIHtcbiAgICBmb250LXdlaWdodDogNDAwOyB9XG4gIC50ZXh0LW1kLTUwMCB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuICAudGV4dC1tZC02MDAge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgLnRleHQtbWQtNzAwIHtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG4gIC50ZXh0LW1kLTgwMCB7XG4gICAgZm9udC13ZWlnaHQ6IDgwMDsgfVxuICAudGV4dC1tZC05MDAge1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gIC50ZXh0LWxnLTEwMCB7XG4gICAgZm9udC13ZWlnaHQ6IDEwMDsgfVxuICAudGV4dC1sZy0yMDAge1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7IH1cbiAgLnRleHQtbGctMzAwIHtcbiAgICBmb250LXdlaWdodDogMzAwOyB9XG4gIC50ZXh0LWxnLTQwMCB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAudGV4dC1sZy01MDAge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7IH1cbiAgLnRleHQtbGctNjAwIHtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gIC50ZXh0LWxnLTcwMCB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAudGV4dC1sZy04MDAge1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7IH1cbiAgLnRleHQtbGctOTAwIHtcbiAgICBmb250LXdlaWdodDogOTAwOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnRleHQteGwtMTAwIHtcbiAgICBmb250LXdlaWdodDogMTAwOyB9XG4gIC50ZXh0LXhsLTIwMCB7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDsgfVxuICAudGV4dC14bC0zMDAge1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgLnRleHQteGwtNDAwIHtcbiAgICBmb250LXdlaWdodDogNDAwOyB9XG4gIC50ZXh0LXhsLTUwMCB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuICAudGV4dC14bC02MDAge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgLnRleHQteGwtNzAwIHtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG4gIC50ZXh0LXhsLTgwMCB7XG4gICAgZm9udC13ZWlnaHQ6IDgwMDsgfVxuICAudGV4dC14bC05MDAge1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7IH0gfVxuXG4vKipcclxuICogVGV4dCB0cmFuc2Zvcm0gdWl0bGl0eSBjbGFzc2VzLlxyXG4gKi9cbi50ZXh0LXhzLWNhcGl0YWxpemUge1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsgfVxuXG4udGV4dC14cy11cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi50ZXh0LXhzLWxvd2VyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cblxuLnRleHQteHMtbm9uZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi50ZXh0LXhzLWZ1bGwtd2lkdGgge1xuICB0ZXh0LXRyYW5zZm9ybTogZnVsbC13aWR0aDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC50ZXh0LXNtLWNhcGl0YWxpemUge1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG4gIC50ZXh0LXNtLXVwcGVyY2FzZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAudGV4dC1zbS1sb3dlcmNhc2Uge1xuICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cbiAgLnRleHQtc20tbm9uZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cbiAgLnRleHQtc20tZnVsbC13aWR0aCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IGZ1bGwtd2lkdGg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC50ZXh0LW1kLWNhcGl0YWxpemUge1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG4gIC50ZXh0LW1kLXVwcGVyY2FzZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAudGV4dC1tZC1sb3dlcmNhc2Uge1xuICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cbiAgLnRleHQtbWQtbm9uZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cbiAgLnRleHQtbWQtZnVsbC13aWR0aCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IGZ1bGwtd2lkdGg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gIC50ZXh0LWxnLWNhcGl0YWxpemUge1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG4gIC50ZXh0LWxnLXVwcGVyY2FzZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAudGV4dC1sZy1sb3dlcmNhc2Uge1xuICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cbiAgLnRleHQtbGctbm9uZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cbiAgLnRleHQtbGctZnVsbC13aWR0aCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IGZ1bGwtd2lkdGg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudGV4dC14bC1jYXBpdGFsaXplIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsgfVxuICAudGV4dC14bC11cHBlcmNhc2Uge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLnRleHQteGwtbG93ZXJjYXNlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyB9XG4gIC50ZXh0LXhsLW5vbmUge1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG4gIC50ZXh0LXhsLWZ1bGwtd2lkdGgge1xuICAgIHRleHQtdHJhbnNmb3JtOiBmdWxsLXdpZHRoOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgVmVydGljYWwgUmh5dGhtXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udnItMCB7XG4gIG1hcmdpbi1ib3R0b206IDBweDsgfVxuXG4udnItOCB7XG4gIG1hcmdpbi1ib3R0b206IDhweDsgfVxuXG4udnItMTYge1xuICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG5cbi52ci0yNCB7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7IH1cblxuLnZyLTMyIHtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDsgfVxuXG4udnItNDAge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9XG5cbi52ci00OCB7XG4gIG1hcmdpbi1ib3R0b206IDQ4cHg7IH1cblxuLnZyLTU2IHtcbiAgbWFyZ2luLWJvdHRvbTogNTZweDsgfVxuXG4udnItNjQge1xuICBtYXJnaW4tYm90dG9tOiA2NHB4OyB9XG5cbi52ci03MiB7XG4gIG1hcmdpbi1ib3R0b206IDcycHg7IH1cblxuLnZyLTgwIHtcbiAgbWFyZ2luLWJvdHRvbTogODBweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBaLWluZGV4XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogVXRpbGl0eSBjbGFzc2VzIGZvciBtYW5pcHVsYXRpbmcgc3RhY2tpbmcgb3JkZXIgaW4gSFRNTC5cclxuICovXG4uei1pbmRleC0wIHtcbiAgei1pbmRleDogMDsgfVxuXG4uei1pbmRleC0xIHtcbiAgei1pbmRleDogMTA7IH1cblxuLnotaW5kZXgtMiB7XG4gIHotaW5kZXg6IDIwOyB9XG5cbi56LWluZGV4LTMge1xuICB6LWluZGV4OiAzMDsgfVxuXG4uei1pbmRleC00IHtcbiAgei1pbmRleDogNDA7IH1cblxuLnotaW5kZXgtNSB7XG4gIHotaW5kZXg6IDUwOyB9XG5cbi56LWluZGV4LTYge1xuICB6LWluZGV4OiA2MDsgfVxuXG4uei1pbmRleC03IHtcbiAgei1pbmRleDogNzA7IH1cblxuLnotaW5kZXgtOCB7XG4gIHotaW5kZXg6IDgwOyB9XG5cbi56LWluZGV4LTkge1xuICB6LWluZGV4OiA5MDsgfVxuXG4uei1pbmRleC0xMCB7XG4gIHotaW5kZXg6IDEwMDsgfVxuIiwiLnVpLXRpbWVwaWNrZXItd3JhcHBlciB7XG5cdG92ZXJmbG93LXk6IGF1dG87XG5cdG1heC1oZWlnaHQ6IDE1MHB4O1xuXHR3aWR0aDogNi41ZW07XG5cdGJhY2tncm91bmQ6ICNmZmY7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG5cdC13ZWJraXQtYm94LXNoYWRvdzowIDVweCAxMHB4IHJnYmEoMCwwLDAsMC4yKTtcblx0LW1vei1ib3gtc2hhZG93OjAgNXB4IDEwcHggcmdiYSgwLDAsMCwwLjIpO1xuXHRib3gtc2hhZG93OjAgNXB4IDEwcHggcmdiYSgwLDAsMCwwLjIpO1xuXHRvdXRsaW5lOiBub25lO1xuXHR6LWluZGV4OiAxMDA1Mjtcblx0bWFyZ2luOiAwO1xufVxuXG4udWktdGltZXBpY2tlci13cmFwcGVyLnVpLXRpbWVwaWNrZXItd2l0aC1kdXJhdGlvbiB7XG5cdHdpZHRoOiAxM2VtO1xufVxuXG4udWktdGltZXBpY2tlci13cmFwcGVyLnVpLXRpbWVwaWNrZXItd2l0aC1kdXJhdGlvbi51aS10aW1lcGlja2VyLXN0ZXAtMzAsXG4udWktdGltZXBpY2tlci13cmFwcGVyLnVpLXRpbWVwaWNrZXItd2l0aC1kdXJhdGlvbi51aS10aW1lcGlja2VyLXN0ZXAtNjAge1xuXHR3aWR0aDogMTFlbTtcbn1cblxuLnVpLXRpbWVwaWNrZXItbGlzdCB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0bGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLnVpLXRpbWVwaWNrZXItZHVyYXRpb24ge1xuXHRtYXJnaW4tbGVmdDogNXB4OyBjb2xvcjogIzg4ODtcbn1cblxuLnVpLXRpbWVwaWNrZXItbGlzdDpob3ZlciAudWktdGltZXBpY2tlci1kdXJhdGlvbiB7XG5cdGNvbG9yOiAjODg4O1xufVxuXG4udWktdGltZXBpY2tlci1saXN0IGxpIHtcblx0cGFkZGluZzogM3B4IDAgM3B4IDVweDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRjb2xvcjogIzAwMDtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwO1xufVxuXG4udWktdGltZXBpY2tlci1saXN0OmhvdmVyIC51aS10aW1lcGlja2VyLXNlbGVjdGVkIHtcblx0YmFja2dyb3VuZDogI2ZmZjsgY29sb3I6ICMwMDA7XG59XG5cbmxpLnVpLXRpbWVwaWNrZXItc2VsZWN0ZWQsXG4udWktdGltZXBpY2tlci1saXN0IGxpOmhvdmVyLFxuLnVpLXRpbWVwaWNrZXItbGlzdCAudWktdGltZXBpY2tlci1zZWxlY3RlZDpob3ZlciB7XG5cdGJhY2tncm91bmQ6ICMxOTgwRUM7IGNvbG9yOiAjZmZmO1xufVxuXG5saS51aS10aW1lcGlja2VyLXNlbGVjdGVkIC51aS10aW1lcGlja2VyLWR1cmF0aW9uLFxuLnVpLXRpbWVwaWNrZXItbGlzdCBsaTpob3ZlciAudWktdGltZXBpY2tlci1kdXJhdGlvbiB7XG5cdGNvbG9yOiAjY2NjO1xufVxuXG4udWktdGltZXBpY2tlci1saXN0IGxpLnVpLXRpbWVwaWNrZXItZGlzYWJsZWQsXG4udWktdGltZXBpY2tlci1saXN0IGxpLnVpLXRpbWVwaWNrZXItZGlzYWJsZWQ6aG92ZXIsXG4udWktdGltZXBpY2tlci1saXN0IGxpLnVpLXRpbWVwaWNrZXItc2VsZWN0ZWQudWktdGltZXBpY2tlci1kaXNhYmxlZCB7XG5cdGNvbG9yOiAjODg4O1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi51aS10aW1lcGlja2VyLWxpc3QgbGkudWktdGltZXBpY2tlci1kaXNhYmxlZDpob3Zlcixcbi51aS10aW1lcGlja2VyLWxpc3QgbGkudWktdGltZXBpY2tlci1zZWxlY3RlZC51aS10aW1lcGlja2VyLWRpc2FibGVkIHtcblx0YmFja2dyb3VuZDogI2YyZjJmMjtcbn1cbiIsIi8qIE1hZ25pZmljIFBvcHVwIENTUyAqL1xuXG5AaW1wb3J0IFwic2V0dGluZ3NcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vL1xuLy8gQ29udGVudHM6XG4vL1xuLy8gMS4gR2VuZXJhbCBzdHlsZXNcbi8vICAgIC0gVHJhbnNsdXNjZW50IG92ZXJsYXlcbi8vICAgIC0gQ29udGFpbmVycywgd3JhcHBlcnNcbi8vICAgIC0gQ3Vyc29yc1xuLy8gICAgLSBIZWxwZXIgY2xhc3Nlc1xuLy8gMi4gQXBwZWFyYW5jZVxuLy8gICAgLSBQcmVsb2FkZXIgJiB0ZXh0IHRoYXQgZGlzcGxheXMgZXJyb3IgbWVzc2FnZXNcbi8vICAgIC0gQ1NTIHJlc2V0IGZvciBidXR0b25zXG4vLyAgICAtIENsb3NlIGljb25cbi8vICAgIC0gXCIxIG9mIFhcIiBjb3VudGVyXG4vLyAgICAtIE5hdmlnYXRpb24gKGxlZnQvcmlnaHQpIGFycm93c1xuLy8gICAgLSBJZnJhbWUgY29udGVudCB0eXBlIHN0eWxlc1xuLy8gICAgLSBJbWFnZSBjb250ZW50IHR5cGUgc3R5bGVzXG4vLyAgICAtIE1lZGlhIHF1ZXJ5IHdoZXJlIHNpemUgb2YgYXJyb3dzIGlzIHJlZHVjZWRcbi8vICAgIC0gSUU3IHN1cHBvcnRcbi8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gMS4gR2VuZXJhbCBzdHlsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLyBUcmFuc2x1c2NlbnQgb3ZlcmxheVxuLm1mcC1iZyB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogJG1mcC16LWluZGV4LWJhc2UgKyAyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgYmFja2dyb3VuZDogJG1mcC1vdmVybGF5LWNvbG9yO1xuICBvcGFjaXR5OiAkbWZwLW92ZXJsYXktb3BhY2l0eTtcbn1cblxuLy8gV3JhcHBlciBmb3IgcG9wdXBcbi5tZnAtd3JhcCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogJG1mcC16LWluZGV4LWJhc2UgKyAzO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IC8vIGZpeGVzIHdlYmtpdCBidWcgdGhhdCBjYW4gY2F1c2UgXCJmYWxzZVwiIHNjcm9sbGJhclxufVxuXG4vLyBSb290IGNvbnRhaW5lclxuLm1mcC1jb250YWluZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBwYWRkaW5nOiAwICRtZnAtcG9wdXAtcGFkZGluZy1sZWZ0O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vLyBWZXJ0aWNhbCBjZW50ZXJlciBoZWxwZXJcbi5tZnAtY29udGFpbmVyIHtcbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG4vLyBSZW1vdmUgdmVydGljYWwgY2VudGVyaW5nIHdoZW4gcG9wdXAgaGFzIGNsYXNzIGBtZnAtYWxpZ24tdG9wYFxuLm1mcC1hbGlnbi10b3Age1xuICAubWZwLWNvbnRhaW5lciB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gUG9wdXAgY29udGVudCBob2xkZXJcbi5tZnAtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgei1pbmRleDogJG1mcC16LWluZGV4LWJhc2UgKyA1O1xufVxuLm1mcC1pbmxpbmUtaG9sZGVyLFxuLm1mcC1hamF4LWhvbGRlciB7XG4gIC5tZnAtY29udGVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY3Vyc29yOiBhdXRvO1xuICB9XG59XG5cbi8vIEN1cnNvcnNcbi5tZnAtYWpheC1jdXIge1xuICBjdXJzb3I6IHByb2dyZXNzO1xufVxuLm1mcC16b29tLW91dC1jdXIge1xuICAmLCAubWZwLWltYWdlLWhvbGRlciAubWZwLWNsb3NlIHtcbiAgICBjdXJzb3I6IC1tb3otem9vbS1vdXQ7XG4gICAgY3Vyc29yOiAtd2Via2l0LXpvb20tb3V0O1xuICAgIGN1cnNvcjogem9vbS1vdXQ7XG4gIH1cbn1cbi5tZnAtem9vbSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY3Vyc29yOiAtd2Via2l0LXpvb20taW47XG4gIGN1cnNvcjogLW1vei16b29tLWluO1xuICBjdXJzb3I6IHpvb20taW47XG59XG4ubWZwLWF1dG8tY3Vyc29yIHtcbiAgLm1mcC1jb250ZW50IHtcbiAgICBjdXJzb3I6IGF1dG87XG4gIH1cbn1cblxuLm1mcC1jbG9zZSxcbi5tZnAtYXJyb3csXG4ubWZwLXByZWxvYWRlcixcbi5tZnAtY291bnRlciB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi8vIEhpZGUgdGhlIGltYWdlIGR1cmluZyB0aGUgbG9hZGluZ1xuLm1mcC1sb2FkaW5nIHtcbiAgJi5tZnAtZmlndXJlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vIEhlbHBlciBjbGFzcyB0aGF0IGhpZGVzIHN0dWZmXG5AaWYgJG1mcC11c2UtdmlzdWFsbHloaWRkZW4ge1xuICAvLyBGcm9tIEhUTUw1IEJvaWxlcnBsYXRlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvdjQuMi4wL2RvYy9jc3MubWQjdmlzdWFsbHloaWRkZW5cbiAgLm1mcC1oaWRlIHtcbiAgICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgICBtYXJnaW46IC0xcHggIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgfVxufSBAZWxzZSB7XG4gIC5tZnAtaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyAyLiBBcHBlYXJhbmNlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8gUHJlbG9hZGVyIGFuZCB0ZXh0IHRoYXQgZGlzcGxheXMgZXJyb3IgbWVzc2FnZXNcbi5tZnAtcHJlbG9hZGVyIHtcbiAgY29sb3I6ICRtZnAtY29udHJvbHMtdGV4dC1jb2xvcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogLTAuOGVtO1xuICBsZWZ0OiA4cHg7XG4gIHJpZ2h0OiA4cHg7XG4gIHotaW5kZXg6ICRtZnAtei1pbmRleC1iYXNlICsgNDtcbiAgYSB7XG4gICAgY29sb3I6ICRtZnAtY29udHJvbHMtdGV4dC1jb2xvcjtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkbWZwLWNvbnRyb2xzLXRleHQtY29sb3ItaG92ZXI7XG4gICAgfVxuICB9XG59XG5cbi8vIEhpZGUgcHJlbG9hZGVyIHdoZW4gY29udGVudCBzdWNjZXNzZnVsbHkgbG9hZGVkXG4ubWZwLXMtcmVhZHkge1xuICAubWZwLXByZWxvYWRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLyBIaWRlIGNvbnRlbnQgd2hlbiBpdCB3YXMgbm90IGxvYWRlZFxuLm1mcC1zLWVycm9yIHtcbiAgLm1mcC1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vIENTUy1yZXNldCBmb3IgYnV0dG9uc1xuYnV0dG9uIHtcbiAgJi5tZnAtY2xvc2UsXG4gICYubWZwLWFycm93IHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgei1pbmRleDogJG1mcC16LWluZGV4LWJhc2UgKyA2O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIH1cbiAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyOiAwXG4gIH1cbn1cblxuXG4vLyBDbG9zZSBpY29uXG4ubWZwLWNsb3NlIHtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgbGluZS1oZWlnaHQ6IDQ0cHg7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgb3BhY2l0eTogJG1mcC1jb250cm9scy1vcGFjaXR5O1xuICBwYWRkaW5nOiAwIDAgMThweCAxMHB4O1xuICBjb2xvcjogJG1mcC1jb250cm9scy1jb2xvcjtcblxuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBCYXNrZXJ2aWxsZSwgbW9ub3NwYWNlO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgdG9wOiAxcHg7XG4gIH1cbn1cbi5tZnAtY2xvc2UtYnRuLWluIHtcbiAgLm1mcC1jbG9zZSB7XG4gICAgY29sb3I6ICRtZnAtaW5uZXItY2xvc2UtaWNvbi1jb2xvcjtcbiAgfVxufVxuLm1mcC1pbWFnZS1ob2xkZXIsXG4ubWZwLWlmcmFtZS1ob2xkZXIge1xuICAubWZwLWNsb3NlIHtcbiAgICBjb2xvcjogJG1mcC1jb250cm9scy1jb2xvcjtcbiAgICByaWdodDogLTZweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLy8gXCIxIG9mIFhcIiBjb3VudGVyXG4ubWZwLWNvdW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGNvbG9yOiAkbWZwLWNvbnRyb2xzLXRleHQtY29sb3I7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8vIE5hdmlnYXRpb24gYXJyb3dzXG5AaWYgJG1mcC1pbmNsdWRlLWFycm93cyB7XG4gIC5tZnAtYXJyb3cge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvcGFjaXR5OiAkbWZwLWNvbnRyb2xzLW9wYWNpdHk7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC01NXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDkwcHg7XG4gICAgaGVpZ2h0OiAxMTBweDtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG4gICAgJjphY3RpdmUge1xuICAgICAgbWFyZ2luLXRvcDogLTU0cHg7XG4gICAgfVxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICBtYXJnaW4tdG9wOiAzNXB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDM1cHg7XG4gICAgICBib3JkZXI6IG1lZGl1bSBpbnNldCB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcblxuICAgICAgYm9yZGVyLXRvcC13aWR0aDogMTNweDtcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDEzcHg7XG4gICAgICB0b3A6OHB4O1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGJvcmRlci10b3Atd2lkdGg6IDIxcHg7XG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMXB4O1xuICAgICAgb3BhY2l0eTogMC43O1xuICAgIH1cblxuICB9XG5cbiAgLm1mcC1hcnJvdy1sZWZ0IHtcbiAgICBsZWZ0OiAwO1xuICAgICY6YWZ0ZXIge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxN3B4IHNvbGlkICRtZnAtY29udHJvbHMtY29sb3I7XG4gICAgICBtYXJnaW4tbGVmdDogMzFweDtcbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gICAgICBib3JkZXItcmlnaHQ6IDI3cHggc29saWQgJG1mcC1jb250cm9scy1ib3JkZXItY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1mcC1hcnJvdy1yaWdodCB7XG4gICAgcmlnaHQ6IDA7XG4gICAgJjphZnRlciB7XG4gICAgICBib3JkZXItbGVmdDogMTdweCBzb2xpZCAkbWZwLWNvbnRyb2xzLWNvbG9yO1xuICAgICAgbWFyZ2luLWxlZnQ6IDM5cHhcbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgYm9yZGVyLWxlZnQ6IDI3cHggc29saWQgJG1mcC1jb250cm9scy1ib3JkZXItY29sb3I7XG4gICAgfVxuICB9XG59XG5cblxuXG4vLyBJZnJhbWUgY29udGVudCB0eXBlXG5AaWYgJG1mcC1pbmNsdWRlLWlmcmFtZS10eXBlIHtcbiAgLm1mcC1pZnJhbWUtaG9sZGVyIHtcbiAgICBwYWRkaW5nLXRvcDogJG1mcC1pZnJhbWUtcGFkZGluZy10b3A7XG4gICAgcGFkZGluZy1ib3R0b206ICRtZnAtaWZyYW1lLXBhZGRpbmctdG9wO1xuICAgIC5tZnAtY29udGVudCB7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAkbWZwLWlmcmFtZS1tYXgtd2lkdGg7XG4gICAgfVxuICAgIC5tZnAtY2xvc2Uge1xuICAgICAgdG9wOiAtNDBweDtcbiAgICB9XG4gIH1cbiAgLm1mcC1pZnJhbWUtc2NhbGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nLXRvcDogJG1mcC1pZnJhbWUtcmF0aW8gKiAxMDAlO1xuICAgIGlmcmFtZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJveC1zaGFkb3c6ICRtZnAtc2hhZG93O1xuICAgICAgYmFja2dyb3VuZDogJG1mcC1pZnJhbWUtYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cbn1cblxuXG5cbi8vIEltYWdlIGNvbnRlbnQgdHlwZVxuQGlmICRtZnAtaW5jbHVkZS1pbWFnZS10eXBlIHtcblxuICAvKiBNYWluIGltYWdlIGluIHBvcHVwICovXG4gIGltZyB7XG4gICAgJi5tZnAtaW1nIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBwYWRkaW5nOiAkbWZwLWltYWdlLXBhZGRpbmctdG9wIDAgJG1mcC1pbWFnZS1wYWRkaW5nLWJvdHRvbTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC8qIFRoZSBzaGFkb3cgYmVoaW5kIHRoZSBpbWFnZSAqL1xuICAubWZwLWZpZ3VyZSB7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6ICRtZnAtaW1hZ2UtcGFkZGluZy10b3A7XG4gICAgICBib3R0b206ICRtZnAtaW1hZ2UtcGFkZGluZy1ib3R0b207XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICAgIGJveC1zaGFkb3c6ICRtZnAtc2hhZG93O1xuICAgICAgYmFja2dyb3VuZDogJG1mcC1pbWFnZS1iYWNrZ3JvdW5kO1xuICAgIH1cbiAgICBzbWFsbCB7XG4gICAgICBjb2xvcjogJG1mcC1jYXB0aW9uLXN1YnRpdGxlLWNvbG9yO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICB9XG4gICAgZmlndXJlIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbiAgLm1mcC1ib3R0b20tYmFyIHtcbiAgICBtYXJnaW4tdG9wOiAtJG1mcC1pbWFnZS1wYWRkaW5nLWJvdHRvbSArIDQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGN1cnNvcjogYXV0bztcbiAgfVxuICAubWZwLXRpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiAkbWZwLWNhcHRpb24tdGl0bGUtY29sb3I7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIHBhZGRpbmctcmlnaHQ6IDM2cHg7IC8vIGxlYXZlIHNvbWUgc3BhY2UgZm9yIGNvdW50ZXIgYXQgcmlnaHQgc2lkZVxuICB9XG5cbiAgLm1mcC1pbWFnZS1ob2xkZXIge1xuICAgIC5tZnAtY29udGVudCB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLm1mcC1nYWxsZXJ5IHtcbiAgICAubWZwLWltYWdlLWhvbGRlciB7XG4gICAgICAubWZwLWZpZ3VyZSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gIEBpZiAkbWZwLWluY2x1ZGUtbW9iaWxlLWxheW91dC1mb3ItaW1hZ2Uge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDgwMHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSksIHNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6IDMwMHB4KSB7XG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSBhbGwgcGFkZGluZ3MgYXJvdW5kIHRoZSBpbWFnZSBvbiBzbWFsbCBzY3JlZW5cbiAgICAgICAqL1xuICAgICAgLm1mcC1pbWctbW9iaWxlIHtcbiAgICAgICAgLm1mcC1pbWFnZS1ob2xkZXIge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgJi5tZnAtaW1nIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5tZnAtZmlndXJlIHtcbiAgICAgICAgICAvLyBUaGUgc2hhZG93IGJlaGluZCB0aGUgaW1hZ2VcbiAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgc21hbGwge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLm1mcC1ib3R0b20tYmFyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNik7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgcGFkZGluZzogM3B4IDVweDtcbiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5tZnAtY291bnRlciB7XG4gICAgICAgICAgcmlnaHQ6IDVweDtcbiAgICAgICAgICB0b3A6IDNweDtcbiAgICAgICAgfVxuICAgICAgICAubWZwLWNsb3NlIHtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgd2lkdGg6IDM1cHg7XG4gICAgICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5cbi8vIFNjYWxlIG5hdmlnYXRpb24gYXJyb3dzIGFuZCByZWR1Y2UgcGFkZGluZyBmcm9tIHNpZGVzXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA5MDBweCkge1xuICAubWZwLWFycm93IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC43NSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcbiAgfVxuICAubWZwLWFycm93LWxlZnQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwO1xuICB9XG4gIC5tZnAtYXJyb3ctcmlnaHQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlO1xuICB9XG4gIC5tZnAtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRtZnAtcG9wdXAtcGFkZGluZy1sZWZ0LW1vYmlsZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkbWZwLXBvcHVwLXBhZGRpbmctbGVmdC1tb2JpbGU7XG4gIH1cbn1cblxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyAgICAgIFNldHRpbmdzICAgICAgLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLyBvdmVybGF5XG4kbWZwLW92ZXJsYXktY29sb3I6ICAgICAgICAgICAgICAgICAgICMwYjBiMGIgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAvLyBDb2xvciBvZiBvdmVybGF5IHNjcmVlblxuJG1mcC1vdmVybGF5LW9wYWNpdHk6ICAgICAgICAgICAgICAgICAwLjggIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3BhY2l0eSBvZiBvdmVybGF5IHNjcmVlblxuJG1mcC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgICAgICAwIDAgOHB4IHJnYmEoMCwgMCwgMCwgMC42KSAhZGVmYXVsdDsgLy8gU2hhZG93IG9uIGltYWdlIG9yIGlmcmFtZVxuXG4vLyBzcGFjaW5nXG4kbWZwLXBvcHVwLXBhZGRpbmctbGVmdDogICAgICAgICAgICAgIDhweCAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgICAvLyBQYWRkaW5nIGZyb20gbGVmdCBhbmQgZnJvbSByaWdodCBzaWRlXG4kbWZwLXBvcHVwLXBhZGRpbmctbGVmdC1tb2JpbGU6ICAgICAgIDZweCAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYW1lIGFzIGFib3ZlLCBidXQgaXMgYXBwbGllZCB3aGVuIHdpZHRoIG9mIHdpbmRvdyBpcyBsZXNzIHRoYW4gODAwcHhcblxuJG1mcC16LWluZGV4LWJhc2U6ICAgICAgICAgICAgICAgICAgICAxMDQwICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgLy8gQmFzZSB6LWluZGV4IG9mIHBvcHVwXG5cbi8vIGNvbnRyb2xzXG4kbWZwLWluY2x1ZGUtYXJyb3dzOiAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAvLyBJbmNsdWRlIHN0eWxlcyBmb3IgbmF2IGFycm93c1xuJG1mcC1jb250cm9scy1vcGFjaXR5OiAgICAgICAgICAgICAgICAwLjY1ICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgLy8gT3BhY2l0eSBvZiBjb250cm9sc1xuJG1mcC1jb250cm9scy1jb2xvcjogICAgICAgICAgICAgICAgICAjRkZGICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgLy8gQ29sb3Igb2YgY29udHJvbHNcbiRtZnAtY29udHJvbHMtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgIzNGM0YzRiAhZGVmYXVsdDsgXHQgICAgICAgICAgICAgICAgIC8vIEJvcmRlciBjb2xvciBvZiBjb250cm9sc1xuJG1mcC1pbm5lci1jbG9zZS1pY29uLWNvbG9yOiAgICAgICAgICAjMzMzICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgLy8gQ29sb3Igb2YgY2xvc2UgYnV0dG9uIHdoZW4gaW5zaWRlXG4kbWZwLWNvbnRyb2xzLXRleHQtY29sb3I6ICAgICAgICAgICAgICNDQ0MgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAvLyBDb2xvciBvZiBwcmVsb2FkZXIgYW5kIFwiMSBvZiBYXCIgaW5kaWNhdG9yXG4kbWZwLWNvbnRyb2xzLXRleHQtY29sb3ItaG92ZXI6ICAgICAgICNGRkYgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAvLyBIb3ZlciBjb2xvciBvZiBwcmVsb2FkZXIgYW5kIFwiMSBvZiBYXCIgaW5kaWNhdG9yXG5cbi8vIElmcmFtZS10eXBlIG9wdGlvbnNcbiRtZnAtaW5jbHVkZS1pZnJhbWUtdHlwZTogICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgIC8vIEVuYWJsZSBJZnJhbWUtdHlwZSBwb3B1cHNcbiRtZnAtaWZyYW1lLXBhZGRpbmctdG9wOiAgICAgICAgICAgICAgNDBweCAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgIC8vIElmcmFtZSBwYWRkaW5nIHRvcFxuJG1mcC1pZnJhbWUtYmFja2dyb3VuZDogICAgICAgICAgICAgICAjMDAwICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgLy8gQmFja2dyb3VuZCBjb2xvciBvZiBpZnJhbWVzXG4kbWZwLWlmcmFtZS1tYXgtd2lkdGg6ICAgICAgICAgICAgICAgIDkwMHB4ICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAvLyBNYXhpbXVtIHdpZHRoIG9mIGlmcmFtZXNcbiRtZnAtaWZyYW1lLXJhdGlvOiAgICAgICAgICAgICAgICAgICAgOS8xNiAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgIC8vIFJhdGlvIG9mIGlmcmFtZSAoOS8xNiA9IHdpZGVzY3JlZW4sIDMvNCA9IHN0YW5kYXJkLCBldGMuKVxuXG4vLyBJbWFnZS10eXBlIG9wdGlvbnNcbiRtZnAtaW5jbHVkZS1pbWFnZS10eXBlOiAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgIC8vIEVuYWJsZSBJbWFnZS10eXBlIHBvcHVwc1xuJG1mcC1pbWFnZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAjNDQ0ICFkZWZhdWx0O1xuJG1mcC1pbWFnZS1wYWRkaW5nLXRvcDogICAgICAgICAgICAgICA0MHB4ICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgLy8gSW1hZ2UgcGFkZGluZyB0b3BcbiRtZnAtaW1hZ2UtcGFkZGluZy1ib3R0b206ICAgICAgICAgICAgNDBweCAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgIC8vIEltYWdlIHBhZGRpbmcgYm90dG9tXG4kbWZwLWluY2x1ZGUtbW9iaWxlLWxheW91dC1mb3ItaW1hZ2U6IHRydWUgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAvLyBSZW1vdmVzIHBhZGRpbmdzIGZyb20gdG9wIGFuZCBib3R0b21cblxuLy8gSW1hZ2UgY2FwdGlvbiBvcHRpb25zXG4kbWZwLWNhcHRpb24tdGl0bGUtY29sb3I6ICAgICAgICAgICAgICNGM0YzRjMgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAvLyBDYXB0aW9uIHRpdGxlIGNvbG9yXG4kbWZwLWNhcHRpb24tc3VidGl0bGUtY29sb3I6ICAgICAgICAgICNCREJEQkQgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAvLyBDYXB0aW9uIHN1YnRpdGxlIGNvbG9yXG5cbi8vIEExMXlcbiRtZnAtdXNlLXZpc3VhbGx5aGlkZGVuOiAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgIC8vIEhpZGUgY29udGVudCBmcm9tIGJyb3dzZXJzLCBidXQgbWFrZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzXG4iLCIvKlxuICogIE93bCBDYXJvdXNlbCAtIENvcmVcbiAqL1xuLm93bC1jYXJvdXNlbCB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdHdpZHRoOiAxMDAlO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHQvKiBwb3NpdGlvbiByZWxhdGl2ZSBhbmQgei1pbmRleCBmaXggd2Via2l0IHJlbmRlcmluZyBmb250cyBpc3N1ZSAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IDE7XG5cblx0Lm93bC1zdGFnZSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdC1tcy10b3VjaC1hY3Rpb246IHBhbi1ZO1xuXHRcdHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuXHRcdC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyAvKiBmaXggZmlyZWZveCBhbmltYXRpb24gZ2xpdGNoICovXG5cdH1cblxuXHQub3dsLXN0YWdlOmFmdGVyIHtcblx0XHRjb250ZW50OiBcIi5cIjtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRjbGVhcjogYm90aDtcblx0XHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0bGluZS1oZWlnaHQ6IDA7XG5cdFx0aGVpZ2h0OiAwO1xuXHR9XG5cblx0Lm93bC1zdGFnZS1vdXRlciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0LyogZml4IGZvciBmbGFzaGluZyBiYWNrZ3JvdW5kICovXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpO1xuXHR9XG5cblx0Lm93bC13cmFwcGVyLFxuXHQub3dsLWl0ZW17XG5cdFx0LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0LW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0LW1zLWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuXHRcdC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG5cdFx0LW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuXHR9XG5cblx0Lm93bC1pdGVtIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bWluLWhlaWdodDogMXB4O1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0LXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuXHR9XG5cdC5vd2wtaXRlbSBpbWcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0Lm93bC1uYXYuZGlzYWJsZWQsXG5cdC5vd2wtZG90cy5kaXNhYmxlZCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC5vd2wtbmF2IC5vd2wtcHJldixcblx0Lm93bC1uYXYgLm93bC1uZXh0LFxuXHQub3dsLWRvdCB7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0LWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuXHRcdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHRcdHVzZXItc2VsZWN0OiBub25lO1xuXHR9XG5cblx0Lm93bC1uYXYgYnV0dG9uLm93bC1wcmV2LFxuXHQub3dsLW5hdiBidXR0b24ub3dsLW5leHQsXG5cdGJ1dHRvbi5vd2wtZG90IHtcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRwYWRkaW5nOjAhaW1wb3J0YW50O1xuXHRcdGZvbnQ6IGluaGVyaXQ7XG5cdH1cblxuXHQmLm93bC1sb2FkZWQge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0Ji5vd2wtbG9hZGluZyB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdCYub3dsLWhpZGRlbiB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXG5cdCYub3dsLXJlZnJlc2ggLm93bC1pdGVtIHtcblx0XHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdH1cblxuXHQmLm93bC1kcmFnIC5vd2wtaXRlbSB7XG5cdFx0dG91Y2gtYWN0aW9uOiBwYW4teTtcblx0XHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHRcdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHRcdHVzZXItc2VsZWN0OiBub25lO1xuXHR9XG5cblx0Ji5vd2wtZ3JhYiB7XG5cdFx0Y3Vyc29yOiBtb3ZlO1xuXHRcdGN1cnNvcjogZ3JhYjtcblx0fVxuXG5cdCYub3dsLXJ0bCB7XG5cdFx0ZGlyZWN0aW9uOiBydGw7XG5cdH1cblxuXHQmLm93bC1ydGwgLm93bC1pdGVtIHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdH1cbn1cblxuLyogTm8gSnMgKi9cbi5uby1qcyAub3dsLWNhcm91c2VsIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG4iLCIvKlxuICogIE93bCBDYXJvdXNlbCAtIEFuaW1hdGUgUGx1Z2luXG4gKi9cbi5vd2wtY2Fyb3VzZWx7XG5cdC5hbmltYXRlZCB7XG5cdFx0YW5pbWF0aW9uLWR1cmF0aW9uOiAxMDAwbXM7XG5cdFx0YW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcblx0fVxuXHQub3dsLWFuaW1hdGVkLWluIHtcblx0XHR6LWluZGV4OiAwO1xuXHR9XG5cdC5vd2wtYW5pbWF0ZWQtb3V0IHtcblx0XHR6LWluZGV4OiAxO1xuXHR9XG5cdC5mYWRlT3V0IHtcblx0XHRhbmltYXRpb24tbmFtZTogZmFkZU91dDtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXQge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cbn1cbiIsIi8qXG4gKiBcdE93bCBDYXJvdXNlbCAtIEF1dG8gSGVpZ2h0IFBsdWdpblxuICovXG5cbi5vd2wtaGVpZ2h0IHtcblx0dHJhbnNpdGlvbjogaGVpZ2h0IDUwMG1zIGVhc2UtaW4tb3V0O1xufVxuIiwiLypcbiAqIFx0T3dsIENhcm91c2VsIC0gTGF6eSBMb2FkIFBsdWdpblxuICovXG5cbi5vd2wtY2Fyb3VzZWwge1xuXHQub3dsLWl0ZW0ge1xuXHRcdC5vd2wtbGF6eSB7XG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZTtcblx0XHR9XG5cblx0XHQvKipcblx0XHRcdFRoaXMgaXMgaW50cm9kdWNlZCBkdWUgdG8gYSBidWcgaW4gSUUxMSB3aGVyZSBsYXp5IGxvYWRpbmcgY29tYmluZWQgd2l0aCBhdXRvaGVpZ2h0IHBsdWdpbiBjYXVzZXMgYSB3cm9uZ1xuXHRcdFx0Y2FsY3VsYXRpb24gb2YgdGhlIGhlaWdodCBvZiB0aGUgb3dsLWl0ZW0gdGhhdCBicmVha3MgcGFnZSBsYXlvdXRzXG5cdFx0ICovXG5cdFx0Lm93bC1sYXp5W3NyY149XCJcIl0sIC5vd2wtbGF6eTpub3QoW3NyY10pIHtcblx0XHRcdG1heC1oZWlnaHQ6IDA7XG5cdFx0fVxuXG5cdFx0aW1nLm93bC1sYXp5IHtcblx0XHRcdHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG5cdFx0fVxuXHR9XG59XG5cbiIsIiRvd2wtaW1hZ2UtcGF0aDogXCJcIiAhZGVmYXVsdDtcblxuLypcbiAqIFx0T3dsIENhcm91c2VsIC0gVmlkZW8gUGx1Z2luXG4gKi9cblxuLm93bC1jYXJvdXNlbHtcblx0Lm93bC12aWRlby13cmFwcGVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGJhY2tncm91bmQ6ICMwMDA7XG5cdH1cblxuXHQub3dsLXZpZGVvLXBsYXktaWNvbiB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGhlaWdodDogODBweDtcblx0XHR3aWR0aDogODBweDtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0dG9wOiA1MCU7XG5cdFx0bWFyZ2luLWxlZnQ6IC00MHB4O1xuXHRcdG1hcmdpbi10b3A6IC00MHB4O1xuXHRcdGJhY2tncm91bmQ6IHVybChcIiN7JG93bC1pbWFnZS1wYXRofW93bC52aWRlby5wbGF5LnBuZ1wiKSBuby1yZXBlYXQ7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdHotaW5kZXg6IDE7XG5cdFx0LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDEwMG1zIGVhc2U7XG5cdH1cblxuXHQub3dsLXZpZGVvLXBsYXktaWNvbjpob3ZlciB7XG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgxLjMsIDEuMyk7XG5cdH1cblxuXHQub3dsLXZpZGVvLXBsYXlpbmcgLm93bC12aWRlby10bixcblx0Lm93bC12aWRlby1wbGF5aW5nIC5vd2wtdmlkZW8tcGxheS1pY29uIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0Lm93bC12aWRlby10biB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcblx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7XG5cdH1cblxuXHQub3dsLXZpZGVvLWZyYW1lIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ei1pbmRleDogMTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEhlYWRpbmdzXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4laGVhZGluZyB7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG5cclxuJWhlYWRpbmctMSB7XHJcbiAgQGV4dGVuZCAlaGVhZGluZztcclxuICBAaW5jbHVkZSBmb250KG1hcC1nZXQoJGZvbnQtc2l6ZSwgJ2gxJyksIG1hcC1nZXQoJGxpbmUtaGVpZ2h0LCAnaDEnKSk7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuJWhlYWRpbmctMiB7XHJcbiAgQGV4dGVuZCAlaGVhZGluZztcclxuICBAaW5jbHVkZSBmb250KG1hcC1nZXQoJGZvbnQtc2l6ZSwgJ2gyJyksIG1hcC1nZXQoJGxpbmUtaGVpZ2h0LCAnaDInKSk7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxufVxyXG5cclxuJWhlYWRpbmctMyB7XHJcbiAgQGV4dGVuZCAlaGVhZGluZztcclxuICBAaW5jbHVkZSBmb250KG1hcC1nZXQoJGZvbnQtc2l6ZSwgJ2gzJyksIG1hcC1nZXQoJGxpbmUtaGVpZ2h0LCAnaDMnKSk7XHJcbn1cclxuXHJcbiVhIHtcclxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgfVxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEJhc2VcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgbWFyZ2luIGFuZCBwYWRkaW5nIGZyb20gZXZlcnkgc2VsZWN0b3IgaW5jbHVkaW5nIHRoZWlyXHJcbiAqIHBzdWVkbyBzZWxlY3RvcnMuXHJcbiAqXHJcbiAqIDEuIE1vcmUgc2Vuc2libGUgZGVmYXVsdCBib3ggc2l6aW5nLlxyXG4gKiAgICAoY3NzLXRyaWNrcy5jb20vaW5oZXJpdGluZy1ib3gtc2l6aW5nLXByb2JhYmx5LXNsaWdodGx5LWJldHRlci1iZXN0LXByYWN0aWNlKS5cclxuICovXHJcblxyXG4qLFxyXG4qOjpiZWZvcmUsXHJcbio6OmFmdGVyIHtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBib3gtc2l6aW5nOiBpbmhlcml0OyAvKiAxICovXHJcbn1cclxuXHJcblxyXG4vKipcclxuICogU2V0IGhlaWdodCBvZiB0aGUgZG9jdW1lbnQgdG8gbWF4aXVtIHZpZXdwb3J0IGhlaWdodC5cclxuICpcclxuICogMS4gU2V0IHJvb3QgZm9udCBzaXplIHRvIDEwLlxyXG4gKi9cclxuXHJcbmh0bWwge1xyXG4gIGhlaWdodDogMTAwdmg7XHJcbiAgZm9udC1zaXplOiA2Mi41JTsgLyogMSAqL1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFNldCBtaW5pbWFsIGhlaWdodCBvZiB0aGUgYm9keSB0byBtYXhpbXVtIHZpZXdwb3J0IGhlaWdodCB0b1xyXG4gKiBtYXRjaCB0aGUgZG9jdW1lbnQncyBoZWlnaHQuXHJcbiAqXHJcbiAqIDEuIEZpcmVmb3ggMjUrLlxyXG4gKiAyLiBDaHJvbWUgNSsuXHJcbiAqL1xyXG5cclxuYm9keSB7XHJcbiAgQGluY2x1ZGUgdGV4dCgkYm9keS10ZXh0KTtcclxuICBtaW4taGVpZ2h0OiAxMDB2aDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iYWNrZ3JvdW5kLWNvbG9yO1xyXG4gIGNvbG9yOiAkYm9keS1jb2xvcjtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xyXG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XHJcbiAgb3BhY2l0eTogMDtcclxuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyAvKiAxICovXHJcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IC8qIDIgKi9cclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgYW5pbWF0aW9uOiBmYWRlSW4gNTAwbXM7XHJcblxyXG4gICYuaXMtYWN0aXZlIHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgfVxyXG5cclxuICAmLmlzLWxvYWRlZCB7XHJcbiAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4uY29udGVudCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG1hcmdpbi10b3A6IDE1MHB4O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5pcy1oaWRkZW4ge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gTWl4aW5zXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBDb250YWluZXJcclxuLy8gQ2VudGVyIGFsaWducyBlbGVtZW50IHdpdGggZ2l2ZW4gbWF4aW11bSB3aWR0aCwgcGFkZGluZywgYW5kIG1hcmdpbnMgdG9wXHJcbi8vIGFuZCBib3R0b20uXHJcbi8vIEBwYXJhbSB7U3RyaW5nfSAkd2lkdGggLSBQaXhlbCB1bml0IHZhbHVlLlxyXG4vLyBAcGFyYW0ge1N0cmluZ30gJGdhcCAtIFBpeGVsIHVuaXQgdmFsdWUuXHJcbi8vIEBleGFtcGxlXHJcbi8vICAgQGluY2x1ZGUgY29udGFpbmVyKDEwMjRweCwgMjBweCk7XHJcbkBtaXhpbiBjb250YWluZXIoJHdpZHRoOiAkZ3JpZC13aWR0aCwgJGdhcDogJGdyaWQtZ2FwKSB7XHJcbiAgQGlmICh0eXBlLW9mKCR3aWR0aCkgPT0gbnVtYmVyIGFuZCB0eXBlLW9mKCRnYXApID09IG51bWJlcikge1xyXG4gICAgQGlmICgkZ2FwICE9IDApIHtcclxuICAgICAgbWF4LXdpZHRoOiBjYWxjKCN7JHdpZHRofSArICN7KCRnYXAgKiAyKX0pO1xyXG4gICAgICBwYWRkaW5nOiAwICRnYXA7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgbWF4LXdpZHRoOiAkd2lkdGg7XHJcbiAgICB9XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGVycm9yICdBcmd1bWVudHMgYCR3aWR0aGAgYW5kIGAkZ2FwYCBzaG91bGQgYmUgYSBudW1iZXInO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIFNlY3Rpb25cclxuLy8gQWRkIHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgdG8gZWxlbWVudCB1c2luZyBwYWRkaW5ncy5cclxuLy8gQHBhcmFtIHtTdHJpbmd9ICR0b3AgLSBQaXhlbCB1bml0IHZhbHVlLlxyXG4vLyBAcGFyYW0ge1N0cmluZ30gJGJvdHRvbSAtIFBpeGVsIHVuaXQgdmFsdWUuXHJcbi8vIEBleGFtcGxlXHJcbi8vICAgQGluY2x1ZGUgc2VjdGlvbigxMDBweCwgMTAwcHgpO1xyXG5AbWl4aW4gc2VjdGlvbigkdG9wOiAwLCAkYm90dG9tOiAwKSB7XHJcbiAgQGlmICh0eXBlLW9mKCR0b3ApID09IG51bWJlciBhbmQgdHlwZS1vZigkYm90dG9tKSA9PSBudW1iZXIpIHtcclxuICAgIHBhZGRpbmc6ICR0b3AgMCAkYm90dG9tO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGVycm9yICdBcmd1bWVudHMgYCR0b3BgIGFuZCBgYm90dG9tYCBzaG91bGQgYmUgYSBudW1iZXInO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIEZvbnRcclxuLy8gQWRkcyBgcmVtYCB1bml0IGJhc2VkIGZvbnQgc2l6ZSBwcm9wZXJ0eSwgYSBmYWxsYmFja1xyXG4vLyBgcHhgIHVuaXQgYmFzZWQgZm9udCBzaXplIHByb3BlcnR5LCBhbmQgYSBgZW1gIHVuaXQgYmFzZWQgbGluZSBoZWlnaHRcclxuLy8gcHJvcGVydHkgdG8gYW55IHJ1bGUuXHJcbi8vIEBwYXJhbSB7U3RyaW5nfSAkZm9udC1zaXplIC0gUGl4ZWwgdW5pdCB2YWx1ZS5cclxuLy8gQHBhcmFtIHtTdHJpbmd9ICRsaW5lLWhlaWdodCAtIFBpeGVsIHVuaXQgdmFsdWUuXHJcbi8vIEBleGFtcGxlXHJcbi8vICAgQGluY2x1ZGUgZm9udC1zaXplKDE2cHgsIDI0cHgpO1xyXG5AbWl4aW4gZm9udCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQpIHtcclxuICBAaWYgKHR5cGUtb2YoJGZvbnQtc2l6ZSkgPT0gbnVtYmVyIGFuZCB1bml0KCRmb250LXNpemUpID09ICdweCcpIHtcclxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcclxuICAgIGZvbnQtc2l6ZTogcmVtKCRmb250LXNpemUpOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzXHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAZXJyb3IgJ1ZhbHVlIGZvciBgI3skZm9udC1zaXplfWAgc2hvdWxkIGJlIGEgYHB4YCB1bml0JztcclxuICB9XHJcbiAgQGlmICh0eXBlLW9mKCRsaW5lLWhlaWdodCkgPT0gbnVtYmVyIGFuZCB1bml0KCRsaW5lLWhlaWdodCkgPT0gJ3B4Jykge1xyXG4gICAgbGluZS1oZWlnaHQ6ICgoJGxpbmUtaGVpZ2h0IC8gJGZvbnQtc2l6ZSkgKiAxZW0pO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGVycm9yICdWYWx1ZSBmb3IgYCN7JGxpbmUtaGVpZ2h0fWAgc2hvdWxkIGJlIGEgYHB4YCB1bml0JztcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBUZXh0XHJcbi8vIFNob3J0aGFuZCBmb3IgdGhlIGZvbnQgbWl4aW4sIHJ1bnMgdGhlIGZvbnQgbWl4aW4gYmFzZWQgb24gYSBjb21tb25cclxuLy8gZGVtZWFub3VyIGV4aXN0aW5nIGJvdGggaW4gdGhlIGAkZm9udC1zaXplYCBhbmQgdGhlIGAkbGluZS1oZWlnaHRgIG1hcHMuXHJcbi8vIEBwYXJhbSB7c3RyaW5nfSAkdmFsdWUgLSBTdHJpbmdcclxuLy8gQGV4YW1wbGVcclxuLy8gICBAaW5jbHVkZSB0ZXh0KCdwJyk7XHJcbkBtaXhpbiB0ZXh0KCR2YWx1ZSkge1xyXG4gIEBpZiAodHlwZS1vZigkdmFsdWUpID09IHN0cmluZykge1xyXG4gICAgQGluY2x1ZGUgZm9udChtYXAtZ2V0KCRmb250LXNpemUsICR2YWx1ZSksIG1hcC1nZXQoJGxpbmUtaGVpZ2h0LCAkdmFsdWUpKTtcclxuICB9IEBlbHNlIHtcclxuICAgIEBlcnJvciAnVmFsdWUgc2hvdWxkIGJlIGEgc3RyaW5nJztcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBGb250IEF3ZXNvbWVcclxuLy8gQWRkIEZvbnQgQXdlc29tZSBpY29ucyBhcyBwc3VlZG8gZWxlbWVudHMgYnkgdXNpbmcgdGhlaXIgdW5pY29kZS5cclxuLy8gQHBhcmFtIHtTdHJpbmd9ICRjb250ZW50IC0gVW5pY29kZSBzdHJpbmcuXHJcbi8vIEBwYXJhbSB7U3RyaW5nfSAkZmFtaWx5IC0gRm9udCBBd2Vzb21lIGZvbnQgZmFtaWx5IHN0cmluZy5cclxuLy8gQGV4YW1wbGVcclxuLy8gICBAaW5jbHVkZSBmb250YXdlc29tZSgnZjEwMCcsICdMaWdodCcpO1xyXG5AbWl4aW4gZm9udGF3ZXNvbWUoJGNvbnRlbnQsICRmYW1pbHkpIHtcclxuICBAaWYgKHR5cGUtb2YoJGZhbWlseSkgPT0gc3RyaW5nKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSAjeyRmYW1pbHl9JztcclxuICAgIGNvbnRlbnQ6IHVuaWNvZGUoJGNvbnRlbnQpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGVycm9yICdBcmd1bWVudCBgJGZhbWlseWAgc2hvdWxkIGJlIGEgc3RyaW5nJztcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBNZWRpYVxyXG4vLyBNZWRpYSBxdWVyaWVzIGFjY29yZGluZyB0byBcIlRoZSAxMDAlIENvcnJlY3QgV2F5IFRvIERvIENTUyBCcmVha3BvaW50c1wiXHJcbi8vIChodHRwczovL21lZGl1bS5mcmVlY29kZWNhbXAuY29tL3RoZS0xMDAtY29ycmVjdC13YXktdG8tZG8tY3NzLWJyZWFrcG9pbnRzLTg4ZDZhNWJhMTg2MikuXHJcbi8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCAtIEJyZWFrcG9pbnQgcGl4ZWwgdW5pdCB2YWx1ZS5cclxuLy8gQGV4YW1wbGVcclxuLy8gICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7fVxyXG5AbWl4aW4gbWVkaWEoJHNpemUpIHtcclxuICBAaWYgKCRzaXplID09ICdkZXNrdG9wJykge1xyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtaW4td2lkdGg6IDEyMDBweCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQobWluLXdpZHRoOiA5MDBweCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0LWxhbmRzY2FwZScpIHtcclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQobWluLXdpZHRoOiA5MDBweCkgYW5kKG1heC13aWR0aDogMTE5OXB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1heC13aWR0aDogMTE5OXB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQtcG9ydHJhaXQtdXAnKSB7XHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1pbi13aWR0aDogNjAwcHgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJHNpemUgPT0gJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQobWluLXdpZHRoOiA2MDBweCkgYW5kKG1heC13aWR0aDogODk5cHgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJHNpemUgPT0gJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtYXgtd2lkdGg6IDg5OXB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQnKSB7XHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1pbi13aWR0aDogNjAwcHgpIGFuZChtYXgtd2lkdGg6IDExOTlweCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkc2l6ZSA9PSAncGhvbmUnKSB7XHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1heC13aWR0aDogNTk5cHgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gVHlwb2dyYXBoeVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuXHJcbi8vIEZvbnQgZmFtaWx5IG1hcC5cclxuJGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7XHJcbiRmb250LWZhbWlseS1zZWNvbmRhcnk6ICdOdW5pdG8nLCBzYW5zLXNlcmlmO1xyXG5cclxuLy8gRm9udCBzaXplIG1hcC5cclxuJGZvbnQtc2l6ZTogKFxyXG4gICdoMSc6IDMwcHgsXHJcbiAgJ2gyJzogMjVweCxcclxuICAnaDMnOiAxNXB4LFxyXG4gICdoNCc6IDIycHgsXHJcbiAgJ2g1JzogMjBweCxcclxuICAnaDYnOiAxOHB4LFxyXG4gICdwJzogMTVweFxyXG4pO1xyXG5cclxuXHJcbi8vIExpbmUgaGVpZ2h0IG1hcC5cclxuJGxpbmUtaGVpZ2h0OiAoXHJcbiAgJ2gxJzogMzVweCxcclxuICAnaDInOiAzMHB4LFxyXG4gICdoMyc6IDIwcHgsXHJcbiAgJ2g0JzogMzJweCxcclxuICAnaDUnOiAzMnB4LFxyXG4gICdoNic6IDMycHgsXHJcbiAgJ3AnOiAyMHB4XHJcbik7XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIEZ1bmN0aW9uc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gVW5pY29kZVxyXG4vLyBQcmVzZXJ2ZSBlc2NhcGVkIHVuaWNvZGUgc3RyaW5nLlxyXG4vLyBAcGFyYW0ge1N0cmluZ30gJHN0cmluZyAtIEFuIHVuaWNvZGUgc3RyaW5nLlxyXG4vLyBAcmV0dXJuIHtTdHJpbmd9IEEgcHJlc2VydmVkIGVzY2FwZWQgdW5pY29kZSBzdHJpbmdcclxuLy8gc2Fzcy1saW50OmRpc2FibGUgcXVvdGVzXHJcbkBmdW5jdGlvbiB1bmljb2RlKCRzdHJpbmcpIHtcclxuICBAcmV0dXJuIHVucXVvdGUoXCJcXCdcIikgKyB1bnF1b3RlKHN0ci1pbnNlcnQoJHN0cmluZywgJ1xcXFwnLCAxKSkgKyB1bnF1b3RlKFwiXFwnXCIpO1xyXG59XHJcbi8vIHNhc3MtbGludDplbmFibGUgcXVvdGVzXHJcblxyXG5cclxuLy8gUkVNXHJcbi8vIENvbnZlcnQgcGl4ZWwgdW5pdHMgdG8gUkVNIHVuaXRzLlxyXG4vLyBAcGFyYW0ge051bWJlcn0gJHBpeGVscyAtIFBpeGVsIHZhbHVlLlxyXG4vLyBAcmV0dXJuIHsqfSAtIEEgY29udmVydGVkIGByZW1gIHVuaXQuXHJcbkBmdW5jdGlvbiByZW0oJHBpeGVscykge1xyXG4gIEBpZiAodW5pdGxlc3MoJHBpeGVscykpIHtcclxuICAgIEBlcnJvciAnVmFsdWUgZm9yIGAjeyRwaXhlbHN9YCBzaG91bGQgYmUgYSBgcHhgIHVuaXQuJztcclxuICB9XHJcbiAgQHJldHVybiAoKCRwaXhlbHMgLyAxMHB4KSAqIDFyZW0pO1xyXG59XHJcblxyXG5cclxuLy8gQ29sdW1uXHJcbi8vIENhbGN1bGF0ZSBnaXZlbiBjb2x1bW4gd2lkdGguXHJcbi8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1uIC0gVGhlIGFtb3VudCBvZiBjb2x1bW5zIHRvIHNwYW4uXHJcbi8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyAtIFRoZSBhbW91bnQgb2YgY29sdW1ucyB0aGF0IGNhbiBiZSBzcGFubmVkLlxyXG4vLyBAcmV0dXJuIHtTdHJpbmd9IC0gUGVyY2VudGFnZSB2YWx1ZS5cclxuQGZ1bmN0aW9uIGNvbHVtbigkY29sdW1uLCAkY29sdW1uczogJGdyaWQtY29sdW1ucykge1xyXG4gIEByZXR1cm4gKCRjb2x1bW4gICogMTAwJSAvICRjb2x1bW5zKTtcclxufVxyXG5cclxuXHJcbi8vIENvbG9yXHJcbi8vIEdldCBhIGNvbG9yIHZhbHVlIGZyb20gdHdvIGxldmVscyBkZWVwIGluIHRoZSBgJGNvbG9yYCBtYXAuXHJcbi8vIEBwYXJhbSB7JHN0cmluZ30gJGtleSAtIEtleSBvZiB0aGUgY29sb3IgdG8gZ2V0IGZyb20gdGhlIG1hcC5cclxuLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIG9mIHRoZSBrZXkgdG8gZ2V0IGZyb20gdGhlIG1hcC5cclxuLy8gQHJldHVybiB7Kn0gQSBIU0xBIGNvbG9yIHZhbHVlLlxyXG5AZnVuY3Rpb24gY29sb3IoJGtleSwgJHZhbHVlKSB7XHJcbiAgQHJldHVybiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJGtleSksICR2YWx1ZSk7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgUmVzZXRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBDdXN0b20gdXNlciBhZ2VudCByZXNldHMgYW5kIG92ZXJyaWRlcyB0aGF0IGFyZSBub3QgcHJlc2VudCBpblxyXG4gKiBOb3JtYWxpemUgOC4wLjAuIFRoaXMgbW9zdGx5IHJlbW92ZXMgc29tZSBhbm5veWluZyBtYXJnaW4gYW5kIHBhZGRpbmdcclxuICogZGVmYXVsdHMsIGJvcmRlciByYWRpdXMsIGFuZCBvdXRsaW5lcy5cclxuICovXHJcblxyXG5hIHtcclxuICBjb2xvcjogaW5oZXJpdDtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogMS4gUmVtb3ZlIGJvcmRlciByYWRpdXMgb24gQ2hyb21lIDYyLjArIG9uIG1hY09TLlxyXG4gKi9cclxuXHJcbmJ1dHRvbiB7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJvcmRlci1yYWRpdXM6IDA7IC8qIDEgKi9cclxuICBvdXRsaW5lOiBub25lO1xyXG4gIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG5maWVsZHNldCB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgYm9yZGVyOiAwO1xyXG59XHJcblxyXG5maWd1cmUge1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuaDEsXHJcbmgyLFxyXG5oMyxcclxuaDQsXHJcbmg1LFxyXG5oNiB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xyXG59XHJcblxyXG5ociB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogMS4gUmVtb3ZlIHdoaXRlIHNwYWNlLlxyXG4gKi9cclxuXHJcbmltZyB7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogYXV0bztcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvKiAxICovXHJcbn1cclxuXHJcblxyXG4vKipcclxuICogMS4gUmVtb3ZlIGluaGVyaXRlZCB1c2VyIGFnZW50IGFwcGVhcmFuY2UuXHJcbiAqL1xyXG5cclxuaW5wdXQsXHJcbnNlbGVjdCxcclxudGV4dGFyZWEge1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICBib3JkZXI6IDA7XHJcbiAgYm9yZGVyLXJhZGl1czogMDtcclxuICBvdXRsaW5lOiBub25lO1xyXG4gIGFwcGVhcmFuY2U6IG5vbmU7IC8qIDEgKi9cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAxLiBPbmx5IGFsbG93IHZlcnRpY2FsIHJlc2l6aW5nIHRvIHByZXZlbnQgdGhlIHRleHRhcmVhXHJcbiAqICAgIGZyb20gb3ZlcmZsb3dpbmcgdGhlIGNvbnRhaW5lci5cclxuICovXHJcblxyXG50ZXh0YXJlYSB7XHJcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcclxufVxyXG5cclxudWwsXHJcbm9sIHtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbn1cclxuXHJcbnAge1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAxLiBDb2xsYXBzZSBib3JkZXJzIHRvIHByZXZlbnQgZG91YmxlIHNpZGVkIGJvcmRlcnMuXHJcbiAqL1xyXG5cclxudGFibGUge1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyAvKiAxICovXHJcbn1cclxuXHJcbnN0cm9uZyB7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBBbmltYXRpb25zXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5cclxuQGtleWZyYW1lcyBzbGlkZURvd24ge1xyXG4gIDAlIHtcclxuICAgIHRvcDogLTIwMHB4O1xyXG4gICAgb3BhY2l0eTogMDtcclxuICB9XHJcblxyXG4gIDEwMCUge1xyXG4gICAgdG9wOiAwO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgZmFkZUluIHtcclxuICAwJSB7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gIH1cclxuXHJcbiAgMTAwJSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBCdXR0b25zXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5cclxuLyoqXHJcbiAqIE1haW4gc2V0dGluZ3MuXHJcbiAqL1xyXG5cclxuLmJ1dHRvbiB7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBwYWRkaW5nOiAxMHB4IDQwcHg7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XHJcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICBzdmcge1xyXG4gICAgd2lkdGg6IDEzcHg7XHJcbiAgICBoZWlnaHQ6IDEzcHg7XHJcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcclxuICB9XHJcblxyXG4gICYuc3ZnLWxlZnQge1xyXG4gICAgXHJcbiAgICBzdmcge1xyXG4gICAgICBtYXJnaW46IDAgMTBweCAwIDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLm5vLWxvd2VyY2FzZSB7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICB9XHJcblxyXG4gICYubGVzcy1wYWRkaW5nIHtcclxuICAgIHBhZGRpbmc6IDEwcHggMjBweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogT3JhbmdlIChQcmltYXJ5KS5cclxuICovXHJcblxyXG4uYnV0dG9uLXByaW1hcnktLW9yYW5nZSB7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLW9yYW5nZS0yMDA7XHJcbiAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ2Rlc2t0b3AnKSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkY29sb3Itb3JhbmdlLTIwMCwgMTAlKTtcclxuICAgICAgYm94LXNoYWRvdzogM3B4IDNweCA3cHggMCByZ2JhKDI1NSwgMTEwLCA0NCwgMC41MSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFdoaXRlIChQcmltYXJ5KS5cclxuICovXHJcblxyXG4uYnV0dG9uLXByaW1hcnktLXdoaXRlIHtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMDkpO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdkZXNrdG9wJykge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBUcmFuc3BhcmVudCAoV2hpdGUpLlxyXG4gKi9cclxuXHJcbi5idXR0b24tdHJhbnNwYXJlbnQtLXdoaXRlLFxyXG4uYnV0dG9uLXRyYW5zcGFyYW50IHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdkZXNrdG9wJykge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gICAgICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBUcmFuc3BhcmVudCAoQmx1ZSkuXHJcbiAqL1xyXG5cclxuLmJ1dHRvbi10cmFuc3BhcmVudC0tYmx1ZSB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJsdWUtNDAwO1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnZGVza3RvcCcpIHtcclxuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWJsdWUtNDAwO1xyXG4gICAgICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29udGFpbmVyXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogVGhlIGNvbnRhaW5lciBvYmplY3QgY2VudGVycyBhbiBlbGVtZW50IGluIHRoZSBkb2N1bWVudC5cclxuICovXHJcblxyXG4uY29udGFpbmVyIHtcclxuICBAaW5jbHVkZSBjb250YWluZXI7XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gRGVmaW5pdGlvbnNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIEdyaWRcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIEdyaWQgd2lkdGguXHJcbi8vIE1heGltdW0gY29udGFpbmVyIHdpZHRoLlxyXG4kZ3JpZC13aWR0aDogMTAyNHB4O1xyXG5cclxuLy8gR3JpZCBjb2x1bW5zLlxyXG4vLyBBbW91bnQgb2YgZ3JpZCBjb2x1bW5zIHRvIGNhbGN1bGF0ZSBhIGNvbHVtbiB3aWR0aCB3aXRoLlxyXG4kZ3JpZC1jb2x1bW5zOiAxMjtcclxuXHJcbi8vIEdyaWQgZ2FwLlxyXG4vLyBTcGFjZSBiZXR3ZWVuIGdyaWQgY29sdW1ucywgYXV0b21hdGVkLlxyXG4kZ3JpZC1nYXA6IDIwcHg7XHJcblxyXG5cclxuLy8gQXNzZXRzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBJbWFnZSBwYXRoLlxyXG4kaW1hZ2UtcGF0aDogJy4uL0ltYWdlcy8nO1xyXG5cclxuXHJcbi8vIEJvZHlcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIEJvZHkgYmFja2dyb3VuZCBjb2xvci5cclxuJGJvZHktYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuXHJcbi8vIEJvZHkgY29sb3IuXHJcbiRib2R5LWNvbG9yOiAkY29sb3ItYmxhY2stMTAwO1xyXG5cclxuLy8gQm9keSBmb250IGZhbWlseS5cclxuLy8kYm9keS1mb250LWZhbWlseTogbWFwLWdldCgkZm9udC1mYW1pbHksICdkZWZhdWx0Jyk7XHJcblxyXG4vLyBCb2R5IHRleHQuXHJcbiRib2R5LXRleHQ6ICdwJztcclxuXHJcblxyXG4vLyBPdGhlclxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gTGluayBjb2xvci5cclxuJGxpbmstY29sb3I6ICRjb2xvci1ibGFjay0xMDA7XHJcblxyXG5cclxuLy8gUmVzcG9uc2l2ZVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gR3JpZCBicmVha3BvaW50IGFsaWFzLlxyXG4kYnJlYWtwb2ludHM6IChcclxuICB4czogbnVsbCxcclxuICBzbTogJ3Bob25lJyxcclxuICBtZDogJ3RhYmxldC1wb3J0cmFpdC11cCcsXHJcbiAgbGc6ICd0YWJsZXQtbGFuZHNjYXBlLXVwJyxcclxuICB4bDogJ2Rlc2t0b3AnXHJcbik7XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbnRlbnQgQ29uc3RyYWludFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBjb250ZW50IGNvbnN0cmFpbnQgaXMgYSBjb25zdHJhaW50IGZvciBhbGwgdGhlIGNvbnRlbnQgd2l0aGluXHJcbiAqIHRoZSBkb2N1bWVudC4gSXQgY2FuIGJlIG1hbmlwdWxhdGVkIGJ5IENTUyBvciBKYXZhU2NyaXB0IHdpdGhvdXRcclxuICogaW5mbHVlbmNpbmcgdGhlIGJvZHkuXHJcbiAqL1xyXG5cclxuLmNvbnRlbnQtY29uc3RyYWludCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgfVxyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBoZWlnaHQ6IDA7XHJcblxyXG4gIEBtZWRpYSBhbGwgYW5kICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSksICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XHJcbiAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRmxleFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEV4YW1wbGUgb2YgYSBmbGV4IGJhc2VkIGNvbHVtbiBncmlkIGxheW91dCBpbiBwcmFjdGljZTpcclxuICpcclxuICogPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gKiAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLXhzLTYgY29sLXNtLTEyXCI+PC9kaXY+XHJcbiAqICAgPGRpdiBjbGFzcz1cImNvbCBjb2wteHMtNiBjb2wtc20tMTJcIj48L2Rpdj5cclxuICogPC9kaXY+XHJcbiAqXHJcbiAqIFRoaXMgZXhhbXBsZSB3aWxsIGNyZWF0ZSBhIHJvdyB3aXRoIHR3byBjb2x1bW5zIGVhY2ggZmlsbGluZyBoYWxmIHRoZSB3aWR0aFxyXG4gKiBvZiB0aGUgcm93IG9uIGFsbCBtZWRpYSwgYnV0IHdpbGwgY29udmVydCB0byBhIGZ1bGwgd2lkdGggY29sdW1uIG9uIHRoZVxyXG4gKiBzbWFsbCBgLXNtYCBicmVha3BvaW50IGFsaWFzLCB3aGljaCBpcyBtb2JpbGUgb25seS4gUmVmZXIgdG9cclxuICogYHNldHRpbmdzL19kZWZpbml0aW9ucy5zY3NzYCBmb3IgYWxsIGJyZWFrcG9pbnQgYWxpYXMuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEZsZXggb2JqZWN0LlxyXG4gKlxyXG4gKiBUaXA6IFVzZSBmbGV4IG9uIGEgY29sdW1uIHRvIG1ha2UgdGhlIGJveCB0aGUgc2FtZSBoZWlnaHQgYXMgdGhlIGNvbHVtbi5cclxuICovXHJcblxyXG4uZmxleCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBTZXQgdmFsdWUgb2YgdGhlIGZsZXgtd3JhcCBwcm9wZXJ0eSB0byAnd3JhcCcuXHJcbiAqL1xyXG5cclxuLmZsZXgtd3JhcCB7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG59XHJcblxyXG4vKipcclxuICogRmxleCBvYmplY3Qgd2l0aCBhIGNvbHVtbiBiYXNlZCBsYXlvdXQgc3lzdGVtLlxyXG4gKi9cclxuXHJcbi5yb3cge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleDogMCAxIGF1dG87XHJcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcclxuICBtYXJnaW46IDAgLSN7KCRncmlkLWdhcC8yKX07XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQm94LCB0aGUgaW5zaWRlIG9mIGEgY29sdW1uLlxyXG4gKi9cclxuXHJcbi5ib3gge1xyXG4gIGZsZXg6IDE7XHJcbn1cclxuXHJcblxyXG4vLyBMb29wIHRocm91Z2ggYWxsIHRoZSBrZXlzIGluIHRoZSBgJGJyZWFrcG9pbnRzYCB2YXJpYWJsZSBtYXAgZGVmaW5lZCBpblxyXG4vLyBgc2V0dGluZ3MvX2RlZmluaXRpb25zLnNjc3NgLlxyXG5AZWFjaCAka2V5LCAkdmFsdWUgaW4gJGJyZWFrcG9pbnRzIHtcclxuXHJcbiAgLy8gQ3JlYXRlIGEgbWVkaWEgcXVlcnkgZm9yIGV2ZXJ5IGtleSBpbiBgJGJyZWFrcG9pbnRzYC5cclxuICBAaW5jbHVkZSBtZWRpYSgkdmFsdWUpIHtcclxuXHJcbiAgICAvLyBJdGVyYXRlIGZyb20gMSB0aHJvdWdoIHRoZSBhbW91bnQgb2YgZ3JpZCBjb2x1bW5zIGRlZmluZWQgYnlcclxuICAgIC8vIGAkZ3JpZC1jb2x1bW5zYCBpbiBgc2V0dGluZ3MvX2RlZmluaXRpb25zLnNjc3NgLlxyXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcclxuXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBDb2x1bW4gI3skaX0gZm9yIHRoZSBgI3ska2V5fWAgYnJlYWtwb2ludC5cclxuICAgICAgICovXHJcblxyXG4gICAgICAuY29sLSN7JGtleX0tI3skaX0ge1xyXG4gICAgICAgIGZsZXg6IDAgMSBhdXRvO1xyXG4gICAgICAgIHdpZHRoOiBjb2x1bW4oJGkpO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgKCRncmlkLWdhcC8yKTtcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICAgIC8vIE91dHB1dCBhbiBvZmZzZXQgdXRpbGl0eSBjbGFzcyBpZiB0aGUgaXRlcmF0b3IgaXMgbGVzcyB0aGFuIHRoZSBhbW91bnRcclxuICAgICAgLy8gb2YgZ3JpZCBjb2x1bW5zIGRlZmluZWQgYnkgYCRncmlkLWNvbHVtbnNgIGluXHJcbiAgICAgIC8vIGBzZXR0aW5ncy9fZGVmaW5pdGlvbnMuc2Nzc2AuXHJcbiAgICAgIEBpZiAoJGkgPCAkZ3JpZC1jb2x1bW5zKSB7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIE9mZnNldCAjeyRpfSBmb3IgdGhlIGAjeyRrZXl9YCBicmVha3BvaW50LlxyXG4gICAgICAgICAqL1xyXG5cclxuICAgICAgICAub2Zmc2V0LSN7JGtleX0tI3skaX0ge1xyXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IGNvbHVtbigkaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vIExvb3AgdGhyb3VnaCBhbGwgdmFsdWVzIGZvciB0aGUgYGFsaWduLWl0ZW1zYCBwcm9wZXJ0eS5cclxuICAgIEBlYWNoICR2YWx1ZSBpbiBzdHJldGNoLCBjZW50ZXIsIGZsZXgtc3RhcnQsIGZsZXgtZW5kLCBiYXNlbGluZSB7XHJcblxyXG4gICAgICAvKipcclxuICAgICAgICogQWxpZ24gYCN7JHZhbHVlfWAgZm9yIHRoZSAjeyRrZXl9IGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xyXG5cclxuICAgICAgLmFsaWduLSN7JGtleX0tI3skdmFsdWV9IHtcclxuICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vIExvb3AgdGhyb3VnaCBhbGwgdmFsdWVzIGZvciB0aGUgYGp1c3RpZnktY29udGVudGAgcHJvcGVydHkuXHJcbiAgICBAZWFjaCAkdmFsdWUgaW4gc3RhcnQsIGNlbnRlciwgc3BhY2UtYmV0d2Vlbiwgc3BhY2UtYXJvdW5kLCBzcGFjZS1ldmVubHksIGZsZXgtZW5kIHtcclxuXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBKdXN0aWZ5IGAjeyR2YWx1ZX1gIGZvciB0aGUgI3ska2V5fSBicmVha3BvaW50LlxyXG4gICAgICAgKi9cclxuXHJcbiAgICAgIC5qdXN0aWZ5LSN7JGtleX0tI3skdmFsdWV9IHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvLyBMb29wIHRocm91Z2ggZXZlcnkgZGlyZWN0aW9uIGZyb20gbGVmdCB0byByaWdodC5cclxuICAgIEBlYWNoICRkaXJlY3Rpb24gaW4gbGVmdCwgcmlnaHQge1xyXG5cclxuICAgICAgLyoqXHJcbiAgICAgICAqIEJsZWVkICN7JGRpcmVjdGlvbn0gZm9yIHRoZSAjeyRrZXl9IGJyZWFrcG9pbnQuXHJcbiAgICAgICAqL1xyXG5cclxuICAgICAgLmJsZWVkLSN7JGtleX0tI3skZGlyZWN0aW9ufSB7XHJcbiAgICAgICAgcGFkZGluZy0jeyRkaXJlY3Rpb259OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3JkZXIgZmlyc3QgZm9yIHRoZSBgI3ska2V5fWAgYnJlYWtwb2ludC5cclxuICAgICAqL1xyXG5cclxuICAgIC5maXJzdC0jeyRrZXl9IHtcclxuICAgICAgb3JkZXI6IC0xO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9yZGVyIGxhc3QgZm9yIHRoZSBgI3ska2V5fWAgYnJlYWtwb2ludC5cclxuICAgICAqL1xyXG5cclxuICAgIC5sYXN0LSN7JGtleX0ge1xyXG4gICAgICBvcmRlcjogMTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXZlcnNlIG9yZGVyIGZvciB0aGUgYCN7JGtleX1gIGJyZWFrcG9pbnQuXHJcbiAgICAgKi9cclxuXHJcbiAgICAucmV2ZXJzZS0jeyRrZXl9IHtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBIZWFkaW5nXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogRGVmYXVsdCBoZWFkaW5ncyAoSDEpLlxyXG4gKi9cclxuXHJcbi5oZWFkaW5nLTEtYmx1ZSB7XHJcbiAgQGluY2x1ZGUgZm9udCgzMHB4LCAzNXB4KTtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XHJcbiAgZm9udC13ZWlnaHQ6IDkwMDtcclxufVxyXG5cclxuLnN1YmhlYWRpbmctMS1ibHVlIHtcclxuICBAaW5jbHVkZSBmb250KDE1cHgsIDMwcHgpO1xyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgb3BhY2l0eTogMC41O1xyXG59XHJcblxyXG4uaGVhZGluZy0xLXdoaXRlIHtcclxuICBAaW5jbHVkZSBmb250KDMwcHgsIDM1cHgpO1xyXG4gIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XHJcbiAgZm9udC13ZWlnaHQ6IDkwMDtcclxufVxyXG5cclxuLnN1YmhlYWRpbmctMS13aGl0ZSB7XHJcbiAgQGluY2x1ZGUgZm9udCgxNXB4LCAzMHB4KTtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBvcGFjaXR5OiAwLjU7XHJcbn1cclxuXHJcbi5zdWJoZWFkaW5nLTEtZ3JleSB7XHJcbiAgQGluY2x1ZGUgZm9udCgxNXB4LCAzMHB4KTtcclxuICBjb2xvcjogJGNvbG9yLWdyZXktMjAwO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIG9wYWNpdHk6IDAuNTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBEZWZhdWx0IGhlYWRpbmdzIChIMikuXHJcbiAqL1xyXG5cclxuLmRvY3VtZW50LXNpbmdsZV9fZWRpdG9yIGgyLFxyXG4uaGVhZGluZy0yLWJsdWUge1xyXG4gIEBpbmNsdWRlIGZvbnQoMjVweCwgMzBweCk7XHJcbiAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbn1cclxuXHJcbi5zdWJoZWFkaW5nLTItYmx1ZSB7XHJcbiAgQGluY2x1ZGUgZm9udCgxMnB4LCAzMHB4KTtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIG9wYWNpdHk6IDAuNTtcclxufVxyXG5cclxuLmhlYWRpbmctMi13aGl0ZSB7XHJcbiAgQGluY2x1ZGUgZm9udCgyNXB4LCAzMHB4KTtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbn1cclxuXHJcbi5zdWJoZWFkaW5nLTItd2hpdGUge1xyXG4gIEBpbmNsdWRlIGZvbnQoMTJweCwgMzBweCk7XHJcbiAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgb3BhY2l0eTogMC41O1xyXG59XHJcblxyXG4uc3ViaGVhZGluZy0yLWdyZXkge1xyXG4gIEBpbmNsdWRlIGZvbnQoMTJweCwgMzBweCk7XHJcbiAgY29sb3I6ICRjb2xvci1ncmV5LTIwMDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBvcGFjaXR5OiAwLjU7XHJcbn1cclxuXHJcblxyXG5cclxuLyoqXHJcbiAqIERlZmF1bHQgaGVhZGluZ3MgKEgzKS5cclxuICovXHJcblxyXG4uZG9jdW1lbnQtc2luZ2xlX19lZGl0b3IgaDMsXHJcbi5oZWFkaW5nLTMtYmx1ZSB7XHJcbiAgQGluY2x1ZGUgZm9udCgxNXB4LCAyMHB4KTtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XHJcbiAgZm9udC13ZWlnaHQ6IDgwMDtcclxufVxyXG5cclxuLmhlYWRpbmctMy13aGl0ZSB7XHJcbiAgQGluY2x1ZGUgZm9udCgxNXB4LCAyMHB4KTtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbn1cclxuXHJcbi5oZWFkaW5nLTMtb3JhbmdlIHtcclxuICBAaW5jbHVkZSBmb250KDE1cHgsIDIwcHgpO1xyXG4gIGNvbG9yOiAkY29sb3Itb3JhbmdlLTIwMDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbn1cclxuXHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIExhYmVsc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuXHJcblxyXG4vKipcclxuICogTWFpbiBzZXR0aW5ncyAobGFiZWwpLlxyXG4gKi9cclxuXHJcbi5sYWJlbCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyBcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgZm9udCgxM3B4LCAyMHB4KTtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICBwYWRkaW5nOiA3cHggMjBweCAzcHg7XHJcbiAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNlY29uZGFyeTtcclxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIG9wYWNpdHk6IDAuNztcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAmLnJvdW5kZWQge1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogTGlnaHQgcHVycGxlLlxyXG4gKi9cclxuXHJcbi5sYWJlbC0tbGlnaHRwdXJwbGUge1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci1wdXJwbGUtMTUwO1xyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgTGlua3NcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcblxyXG5cclxuLyoqXHJcbiAqIE1haW4gc2V0dGluZ3MgKExpbmspLlxyXG4gKi9cclxuXHJcbi5saW5rIHtcclxuICBAaW5jbHVkZSBmb250KDE1cHgsIDIwcHgpO1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgdHJhbnNpdGlvbjogY29sb3IgMjUwbXMgZWFzZTtcclxuXHJcbiAgc3ZnIHtcclxuICAgIHdpZHRoOiAxNXB4O1xyXG4gICAgaGVpZ2h0OiAxNXB4O1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICB9XHJcblxyXG4gICYudW5kZXJsaW5lIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBMaW5rIChCbHVlKS5cclxuICovXHJcblxyXG4ubGluay0tYmx1ZSB7XHJcbiAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdkZXNrdG9wJykge1xyXG4gICAgICBjb2xvcjogJGNvbG9yLW9yYW5nZS0yMDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIExpbmsgKEJsdWUsIGJvbGQpLlxyXG4gKi9cclxuXHJcbi5saW5rLWJvbGQtLWJsdWUge1xyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgZm9udC13ZWlnaHQ6IDgwMDtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnZGVza3RvcCcpIHtcclxuICAgICAgY29sb3I6ICRjb2xvci1vcmFuZ2UtMjAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBMaW5rIChPcmFuZ2UpLlxyXG4gKi9cclxuXHJcbi5saW5rLS1vcmFuZ2Uge1xyXG4gIGNvbG9yOiAkY29sb3Itb3JhbmdlLTIwMDtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnZGVza3RvcCcpIHtcclxuICAgICAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogTGluayB3aXRoIGJhY2tncm91bmQgKEJsdWUpLlxyXG4gKi9cclxuXHJcbi5saW5rLWJhY2tncm91bmQtLWJsdWUge1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLTQwMDtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnZGVza3RvcCcpIHtcclxuICAgICAgY29sb3I6ICRjb2xvci1vcmFuZ2UtMjAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIubm90aWNlLWRvd25sb2FkIHtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ibHVlLTEwMDtcclxuXHRtYXJnaW46IC0yNXB4IDAgNTBweCAwO1xyXG5cdHBhZGRpbmc6IDEwcHggMTBweCAxMHB4IDEwcHg7XHJcblx0Ym9yZGVyLXJhZGl1czogNXB4O1xyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR0b3A6IC0zNnB4O1xyXG5cdFx0bGVmdDogMHB4O1xyXG5cdFx0d2lkdGg6IDUwcHg7XHJcblx0XHRoZWlnaHQ6IDUwcHg7XHJcblx0XHRib3JkZXItbGVmdDogNDBweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuXHRcdGJvcmRlci1yaWdodDogNDBweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuXHRcdGJvcmRlci1ib3R0b206IDIwcHggc29saWQgJGNvbG9yLWJsdWUtMTAwO1xyXG5cdFx0Y29udGVudDogJyc7IFxyXG5cdH1cclxuXHJcblx0c3ZnIHtcclxuXHRcdHdpZHRoOiAxNnB4O1xyXG5cdFx0aGVpZ2h0OiAxNXB4O1xyXG5cdFx0bWFyZ2luOiAwIDEwcHggMCAwO1xyXG5cdFx0b3BhY2l0eTogMC41O1xyXG5cdH1cclxuXHJcblx0c3BhbiB7XHJcblx0XHRAaW5jbHVkZSBmb250KDE1cHgsIDIwcHgpO1xyXG5cdFx0d2lkdGg6IGNhbGMoMTAwJSAtIDI2cHgpO1xyXG5cdFx0Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zZWNvbmRhcnk7XHJcblx0XHRvcGFjaXR5OiAwLjU7XHJcblx0fVxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFNlY3Rpb25cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcblxyXG4vKipcclxuICogIE1hcmdpbi5cclxuICovXHJcblxyXG5cclxuLm0xMC10b3Age1xyXG4gIG1hcmdpbi10b3A6IDEwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm0xMC1ib3R0b20ge1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm0yMC10b3Age1xyXG4gIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm0yMC1ib3R0b20ge1xyXG4gIG1hcmdpbi1ib3R0b206IDIwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuXHJcbi5tMzAtdG9wIHtcclxuICBtYXJnaW4tdG9wOiAzMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tMzAtYm90dG9tIHtcclxuICBtYXJnaW4tYm90dG9tOiAzMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tNTAtdG9wIHtcclxuICBtYXJnaW4tdG9wOiA1MHB4O1xyXG59XHJcblxyXG4ubTUwLWJvdHRvbSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcclxufVxyXG5cclxuLm04MC10b3Age1xyXG4gIG1hcmdpbi10b3A6IDgwcHg7XHJcbn1cclxuXHJcbi5tODAtYm90dG9tIHtcclxuICBtYXJnaW4tYm90dG9tOiA4MHB4O1xyXG59XHJcblxyXG4ubTEwMC10b3Age1xyXG4gIG1hcmdpbi10b3A6IDEwMHB4O1xyXG59XHJcblxyXG4ubTEwMC1ib3R0b20ge1xyXG4gIG1hcmdpbi1ib3R0b206IDEwMHB4O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqICBGb250IHdlaWdodC5cclxuICovXHJcblxyXG5cclxuLmZvbnQtd2VpZ2h0LTEwMCB7XHJcbiAgZm9udC13ZWlnaHQ6IDEwMDtcclxufVxyXG5cclxuLmZvbnQtd2VpZ2h0LTMwMCB7XHJcbiAgZm9udC13ZWlnaHQ6IDMwMDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAgVGV4dCBhbGlnbiBsZWZ0LlxyXG4gKi9cclxuXHJcbi50ZXh0LWFsaWduLWxlZnQge1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgV3JhcHBlclxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSB3cmFwcGVyIG9iamVjdCBjZW50ZXJzIGFuIGVsZW1lbnQgaW4gdGhlIGRvY3VtZW50LlxyXG4gKi9cclxuXHJcbi8vIFxyXG4kd2Vic2l0ZS13aWR0aDogICAxMjQwcHg7XHJcbiR3ZWJzaXRlLXBhZGRpbmc6IDIwcHg7XHJcblxyXG4ud3JhcHBlciB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgcGFkZGluZzogMCAzMHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuICAgIHBhZGRpbmc6IDAgNjBweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlJykge1xyXG4gICAgcGFkZGluZzogMCA1MHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgY29udGFpbmVyKCR3ZWJzaXRlLXdpZHRoLCAkd2Vic2l0ZS1wYWRkaW5nKTtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLndyYXBwZXItLXNtYWxsIHtcclxuICBtYXgtd2lkdGg6IDY1MHB4O1xyXG4gIG1hcmdpbjogYXV0bztcclxuICBwYWRkaW5nOiAkd2Vic2l0ZS1wYWRkaW5nO1xyXG59XHJcblxyXG4ud3JhcHBlci0tbWVkaXVtIHtcclxuICBtYXgtd2lkdGg6IDg2MXB4O1xyXG4gIG1hcmdpbjogYXV0bztcclxuICBwYWRkaW5nOiAkd2Vic2l0ZS1wYWRkaW5nO1xyXG59XHJcblxyXG4ud3JhcHBlci0td2lkZSB7XHJcbiAgbWF4LXdpZHRoOiAxMDY5cHg7XHJcbiAgcGFkZGluZzogJHdlYnNpdGUtcGFkZGluZztcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBCYWxsc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqICBNYWluIGVsZW1lbnQuXHJcbiAqL1xyXG5cclxuLmJhbGwge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB6LWluZGV4OiAtMTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAgRmlyc3Qgc2V0IG9mIGJhbGxzLlxyXG4gKi9cclxuXHJcbi5iYWxsLXB1cnBsZSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgdG9wOiAtMjAwcHg7XHJcbiAgICByaWdodDogLTE3MHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldCcpIHtcclxuICAgIHRvcDogLTI0MHB4O1xyXG4gICAgcmlnaHQ6IC0yMjBweDtcclxuICB9XHJcblxyXG4gIHRvcDogLTI1MHB4O1xyXG4gIHJpZ2h0OiAtMTgwcHg7XHJcbn1cclxuXHJcbi5iYWxsLW9yYW5nZSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgbGVmdDogLTI1MHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuICAgIGxlZnQ6IC0zMDBweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlJykge1xyXG4gICAgbGVmdDogLTI0MHB4O1xyXG4gIH1cclxuXHJcbiAgdG9wOiAzMjBweDtcclxuICBsZWZ0OiAtMjMwcHg7XHJcbn1cclxuXHJcbi5iYWxsLWdyZWVuIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICByaWdodDogLTIwMHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUnKSB7XHJcbiAgICByaWdodDogLTI0MHB4O1xyXG4gIH1cclxuXHJcbiAgdG9wOiAxNjAwcHg7XHJcbiAgcmlnaHQ6IC0xODBweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAgU2Vjb25kIHNldCBvZiBiYWxscy5cclxuICovXHJcblxyXG4uYmFsbC1wdXJwbGUtLXNlY29uZCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgbGVmdDogLTE3MHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUnKSB7XHJcbiAgICBsZWZ0OiAtMjQwcHg7XHJcbiAgfVxyXG5cclxuICB0b3A6IDI0MDBweDtcclxuICBsZWZ0OiAtMTgwcHg7XHJcbn1cclxuXHJcbi5iYWxsLW9yYW5nZS0tc2Vjb25kIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICByaWdodDogLTM4MHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuICAgIHJpZ2h0OiAtMzAwcHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZScpIHtcclxuICAgIHJpZ2h0OiAtMjQwcHg7XHJcbiAgfVxyXG5cclxuICB0b3A6IDMwMDBweDtcclxuICByaWdodDogLTI3MHB4O1xyXG59XHJcblxyXG4uYmFsbC1ncmVlbi0tc2Vjb25kIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBsZWZ0OiAtMzAwcHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZScpIHtcclxuICAgIGxlZnQ6IC0yNDBweDtcclxuICB9XHJcblxyXG4gIHRvcDogMzgwMHB4O1xyXG4gIGxlZnQ6IC0xODBweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAgVGhpcmQgc2V0IG9mIGJhbGxzLlxyXG4gKi9cclxuXHJcbi5iYWxsLXB1cnBsZS0tdGhpcmQge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIHJpZ2h0OiAtMTgwcHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0Jykge1xyXG4gICAgcmlnaHQ6IC0zMDBweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlJykge1xyXG4gICAgcmlnaHQ6IC0yNDBweDtcclxuICB9XHJcblxyXG4gIHRvcDogNDYwMHB4O1xyXG4gIHJpZ2h0OiAtMTgwcHg7XHJcbn1cclxuXHJcbi5iYWxsLW9yYW5nZS0tdGhpcmQge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIGxlZnQ6IC0zODBweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQnKSB7XHJcbiAgICBsZWZ0OiAtMzAwcHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZScpIHtcclxuICAgIGxlZnQ6IC0yNDBweDtcclxuICB9XHJcblxyXG4gIHRvcDogNTQwMHB4O1xyXG4gIGxlZnQ6IC0xODBweDtcclxufVxyXG5cclxuLmJhbGwtZ3JlZW4tLXRoaXJkIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICByaWdodDogLTM4MHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuICAgIHJpZ2h0OiAtMzAwcHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZScpIHtcclxuICAgIHJpZ2h0OiAtMjQwcHg7XHJcbiAgfVxyXG5cclxuICB0b3A6IDYyMDBweDtcclxuICByaWdodDogLTE4MHB4O1xyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEJyZWFkY3J1bWJzXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogIEJyZWFkY3J1bWJzLlxyXG4gKi9cclxuXHJcbi5icmVhZGNydW1icyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgcGFkZGluZzogNzVweCAwIDUwcHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBmb250KDE0cHgsIDIwcHgpO1xyXG5cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgcGFkZGluZzogMTAwcHggMCA1MHB4O1xyXG4gIGNvbG9yOiAkY29sb3ItZ3JleS0yMDA7XHJcblxyXG4gICYuaXMtZW1wdHkge1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcblxyXG4gIC53cmFwcGVyIHtcclxuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5idXR0b24ge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogYXV0bztcclxuICAgICAgcmlnaHQ6IC0xODJweDtcclxuICAgICAgYm90dG9tOiA1N3B4O1xyXG4gICAgfVxyXG5cclxuICAgIHN2ZyB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgICB3aWR0aDogMzBweDtcclxuICAgICAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b24tLXF1ZXN0aW9uIHtcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0b3A6IC0xMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMzBweDtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAgQnJlYWRjcnVtYiBjb250YWluZXIuXHJcbiAqL1xyXG5cclxuLmJyZWFkY3J1bWIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gIGEgc3ZnIHtcclxuICAgIHdpZHRoOiAxNHB4OyBcclxuICAgIGhlaWdodDogMTRweDtcclxuICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gIH1cclxuXHJcbiAgc3ZnIHtcclxuICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgaGVpZ2h0OiAyNXB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqICBJZiBhIHBhZ2Ugb25seSBoYXMgMSBicmVhZGNydW1iLlxyXG4gKi9cclxuXHJcbi5pcy1wcmltYXJ5LWJyZWFkY3J1bWIge1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci1ncmFkaWVudC1wdXJwbGU7XHJcbiAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zZWNvbmRhcnk7XHJcbiAgZm9udC13ZWlnaHQ6IDIwMDtcclxuICBsZXR0ZXItc3BhY2luZzogMC4ycHg7XHJcblxyXG4gIHN2ZyB7XHJcbiAgICB3aWR0aDogMTVweDtcclxuICAgIGhlaWdodDogMTVweDtcclxuICAgIG1hcmdpbjogMCAxMHB4IDAgMDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogIEJyZWFkY3J1bWIgaXRlbS5cclxuICovXHJcblxyXG4uYnJlYWRjcnVtYiBsaSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuXHJcbiAgJi5maXJzdCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xyXG4gICAgfVxyXG5cclxuICAgIHBhZGRpbmc6IDEwcHggMTVweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvci1ncmFkaWVudC1wdXJwbGU7XHJcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Vjb25kYXJ5O1xyXG4gICAgZm9udC13ZWlnaHQ6IDIwMDtcclxuXHJcbiAgICAuZmEtYW5nbGUtcmlnaHQge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC5mYS1icm93c2VyIHtcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgd2lkdGg6IDEzcHg7XHJcbiAgICAgIGhlaWdodDogMTNweDtcclxuICAgICAgbWFyZ2luOiAwIDEwcHggMCAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gc3BhbiB7XHJcbiAgLy8gICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgLy8gICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG5cclxuICAvLyAmOm50aC1sYXN0LWNoaWxkKDEpIHtcclxuICAvLyAgIHN2ZyB7XHJcbiAgLy8gICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG5cclxuICAmOm5vdCg6bnRoLWNoaWxkKDEpKSB7XHJcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ01TIE91dHB1dFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEV2ZXJ5IGNvbmNlaXZhYmxlIEhUTUwgZWxlbWVudCB3aXRoaW4gYSBgLmNtcy1vdXRwdXRgIHdyYXBwZXIuXHJcbiAqXHJcbiAqIDEuIEV4Y2x1ZGUgbGFzdCBjaGlsZHMuXHJcbiAqL1xyXG5cclxuLmNtcy1vdXRwdXQge1xyXG4gIEBpbmNsdWRlIGZvbnQoMTVweCwgMjBweCk7XHJcbiAgbWFyZ2luLXRvcDogNTBweDtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Vjb25kYXJ5O1xyXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XHJcblxyXG4gICoge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMWVtOyAvKiAxICovXHJcbiAgfVxyXG5cclxuICA+IHAge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNTBweDtcclxuICB9XHJcblxyXG4gIHVsLFxyXG4gIG9sIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICAgIG1hcmdpbjogLTMwcHggMTAwcHggNjBweCA1MHB4O1xyXG4gICAgfVxyXG5cclxuICAgIGxpIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcclxuICAgICAgY291bnRlci1pbmNyZW1lbnQ6IG15LWF3ZXNvbWUtY291bnRlcjtcclxuXHJcbiAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDJweDtcclxuICAgICAgICBsZWZ0OiAtMjVweDtcclxuICAgICAgICB3aWR0aDogMThweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JhZGllbnQtcHVycGxlO1xyXG4gICAgICAgIGJhY2tncm91bmQtY2xpcDogdGV4dDtcclxuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIobXktYXdlc29tZS1jb3VudGVyKTtcclxuICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG1hcmdpbjogLTMwcHggMTAwcHggNjBweCAxMzVweDtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBjb3VudGVyLXJlc2V0OiBteS1hd2Vzb21lLWNvdW50ZXI7XHJcbiAgfVxyXG5cclxuICB1bCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgICBtYXJnaW46IC0zMHB4IDEwMHB4IDYwcHggNTBweDtcclxuICAgIH1cclxuICBcclxuICAgIG1hcmdpbjogLTMwcHggMTAwcHggNjBweCAxMzVweDtcclxuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgIEBpbmNsdWRlIGZvbnQoMTdweCwgMzBweCk7XHJcblxyXG4gICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgIHRvcDogMTBweDtcclxuICAgICAgICBsZWZ0OiAtMTZweDtcclxuICAgICAgICB3aWR0aDogN3B4O1xyXG4gICAgICAgIGhlaWdodDogN3B4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWJsdWUtNDAwO1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIG9wYWNpdHk6IDAuODtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcCB7XHJcbiAgICBAaW5jbHVkZSBmb250KDE3cHgsIDMwcHgpO1xyXG4gIH1cclxuXHJcbiAgcCA+IGEge1xyXG4gICAgY29sb3I6ICRsaW5rLWNvbG9yO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRGFzaGJvYXJkIHJlbGV2YW50LlxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLmRhc2hib2FyZC1hcnRpY2xlc19fdGl0bGUsXHJcbi5kYXNoYm9hcmQtZG93bmxvYWRzX190aXRsZSxcclxuLmRhc2hib2FyZC1xdWVzdGlvbnNfX3RpdGxlIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBtYXJnaW46IDUwcHggMCAyNXB4O1xyXG4gIH1cclxuXHJcbiAgbWFyZ2luOiA1MHB4IDAgNDBweDtcclxufVxyXG5cclxuLmRhc2hib2FyZC1xdWVzdGlvbnNfX3RpdGxlIHtcclxuICBtYXJnaW46IDMwcHggMCA0MHB4O1xyXG59XHJcblxyXG4uZGFzaGJvYXJkLWFydGljbGVzX19idXR0b25zLFxyXG4uZGFzaGJvYXJkLWRvd25sb2Fkc19fYnV0dG9ucyxcclxuLmRhc2hib2FyZC1xdWVzdGlvbnNfX2J1dHRvbnMge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIG1hcmdpbi10b3A6IDMwcHg7XHJcbiAgfVxyXG5cclxuICAuYnV0dG9uIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogMC44NWVtO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBtYXJnaW4tdG9wOiA1MHB4O1xyXG59XHJcblxyXG4uZGFzaGJvYXJkLWFydGljbGVzIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5zd2lwZS1pY29uIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcblxyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICByaWdodDogMDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHJcbiAgc3ZnIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgICAgbWFyZ2luLXRvcDogLTEwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IDI1cHg7XHJcbiAgICBoZWlnaHQ6IDI1cHg7XHJcbiAgICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gICAgei1pbmRleDogMztcclxuICAgIC8vcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAudXAsXHJcbiAgLmRvd24ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgc3ZnIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnVwIHN2ZyB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIHRvcDogM3B4O1xyXG4gICAgfVxyXG5cclxuICAgIHRvcDogN3B4O1xyXG4gICAgbGVmdDogNXB4O1xyXG4gICAgYW5pbWF0aW9uOiBzd2lwZUZhZGVSaWdodCAyMDAwbXMgZWFzZSBpbmZpbml0ZTtcclxuICB9XHJcblxyXG4gIC5kb3duIHN2ZyB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIGJvdHRvbTogM3B4O1xyXG4gICAgfVxyXG5cclxuICAgIHJpZ2h0OiA1cHg7XHJcbiAgICBib3R0b206IDdweDtcclxuICAgIGFuaW1hdGlvbjogc3dpcGVGYWRlTGVmdCAyMDAwbXMgZWFzZSBpbmZpbml0ZTtcclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRGFzaGJvYXJkIHNob3J0Y3V0LlxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLmRhc2hib2FyZC1zaG9ydGN1dCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTAwcHg7XHJcbn1cclxuXHJcbi5kYXNoYm9hcmQtc2hvcnRjdXRfX3RpdGxlIHtcclxuICBtYXJnaW46IDYwcHggMCA1MHB4O1xyXG59XHJcblxyXG4uZGFzaGJvYXJkLXNob3J0Y3V0X19jb2x1bW5zIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICBtYXgtd2lkdGg6IDYxMHB4O1xyXG59XHJcblxyXG4uZGFzaGJvYXJkLXNob3J0Y3V0X19jb2x1bW4ge1xyXG4gIC5oZWFkaW5nLTMtYmx1ZSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICB3aWR0aDogMTkwcHg7XHJcbn1cclxuXHJcbi5kYXNoYm9hcmQtc2hvcnRjdXRfX2J1dHRvbiB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMTBweCk7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIHN2ZyB7XHJcbiAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gICAgfVxyXG5cclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1wdXJwbGUtMzAwO1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWdyYWRpZW50LXB1cnBsZTtcclxuICAgIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gICAgLy9zYXNzLWxpbnQ6ZGlzYWJsZTogbm8tY29sb3ItbGl0ZXJhbHNcclxuICAgIGJveC1zaGFkb3c6IDAgMnB4IDIwcHggMCByZ2JhKDEzNiwgNDUsIDIzMSwgMC4zKTtcclxuICAgIC8vc2Fzcy1saW50OmVuYWJsZTogbm8tY29sb3ItbGl0ZXJhbHNcclxuICB9XHJcblxyXG4gIHN2ZyB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMjVweDtcclxuICAgIG1hcmdpbi1ib3R0b206IC0xMHB4O1xyXG4gICAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICB9XHJcblxyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHdpZHRoOiAxOTBweDtcclxuICBoZWlnaHQ6IDk1cHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ncmV5LTIwMDtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlLTEwMDtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Vjb25kYXJ5O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBEZWZhdWx0XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogIE1haW4gZWxlbWVudC5cclxuICovXHJcblxyXG4uZGVmYXVsdCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgbWFyZ2luOiA1MHB4IDA7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgLy9tYXgtd2lkdGg6IDYyMHB4O1xyXG4gIG1hcmdpbjogNzVweCAwO1xyXG59XHJcblxyXG4uY29udGVudC1kZWZhdWx0IHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBtYXJnaW46IDE1MHB4IDAgMDtcclxuICB9XHJcblxyXG4gIG1hcmdpbjogMTAwcHggMCAwO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqICBFZGl0b3IuXHJcbiAqL1xyXG5cclxuLmRlZmF1bHRfX2VkaXRvciB7XHJcbiAgQGluY2x1ZGUgZm9udCgxNXB4LCAyMHB4KTtcclxuICBtYXJnaW4tdG9wOiA1MHB4O1xyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zZWNvbmRhcnk7XHJcbiAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICBvcGFjaXR5OiAwLjg7XHJcblxyXG4gIGIsXHJcbiAgc3Ryb25nIHtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgfVxyXG59XHJcblxyXG4uZGVmYXVsdF9fdGV4dCB7XHJcbiAgQGluY2x1ZGUgZm9udCgxNXB4LCAyMHB4KTtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNlY29uZGFyeTtcclxuXHJcbiAgJi5jb2xvci13aGl0ZS0xMDAge1xyXG4gICAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqICBEZWZhdWx0IGJ1dHRvbiBzZXR0aW5ncy5cclxuICovXHJcblxyXG4uZGVmYXVsdF9fYnV0dG9uIHtcclxuICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gIHBhZGRpbmc6IDEwcHggMjBweDtcclxufVxyXG5cclxuXHJcbi50aGlyZC1zdGVwICsgLmRlZmF1bHQge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA3NXB4O1xyXG4gIH1cclxuXHJcbiAgbWF4LXdpZHRoOiA2MjBweDtcclxuICBtYXJnaW46IC03NXB4IGF1dG8gMTUwcHg7XHJcbiAgcGFkZGluZzogMjBweDtcclxufVxyXG5cclxuLmJyZWFkY3J1bWJzICsgLmRlZmF1bHQge1xyXG4gIG1hcmdpbjogMCAwIDc1cHg7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRG9jdW1lbnQgaXRlbS5cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcblxyXG4vKipcclxuICogIFNpbmdsZSBpdGVtLlxyXG4gKi9cclxuXHJcblxyXG4uZG9jdW1lbnQtaXRlbSxcclxuLnF1ZXN0aW9uLWl0ZW0ge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlLTEwMDtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggM3B4ICNmMmY2Zjk7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ2Rlc2t0b3AnKSB7XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggM3B4IHJnYmEoNCwgNDYsIDc1LCAwLjIxKTtcclxuXHJcbiAgICAgIC5kb2N1bWVudC1pdGVtX19nbyB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWJsdWUtNDAwO1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmOm50aC1sYXN0LWNoaWxkKDEpIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG5cclxuICAmLmpzLWhpZGUge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gICYuanMtcmVtb3ZlIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAucm93IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgLnN3aXBlLWljb24ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XHJcblxyXG4gICAgc3ZnIHtcclxuICAgICAgd2lkdGg6IDMwcHg7XHJcbiAgICAgIGhlaWdodDogMzBweDtcclxuICAgICAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICAgICAgLy9ib3gtc2hhZG93OiAwIDAgMjBweCAkY29sb3ItYmx1ZS0xMDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uZG9jdW1lbnQtaXRlbV9fdXBsb2FkZXIge1xyXG4gIEBtZWRpYShtYXgtd2lkdGg6IDY4MHB4KSB7XHJcbiAgICB3aWR0aDogNTAlO1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiAyNSU7XHJcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAuZmEtYnVpbGRpbmcge1xyXG4gICAgd2lkdGg6IDE0cHg7XHJcbiAgICBoZWlnaHQ6IDE0cHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4uZG9jdW1lbnQtaXRlbS5oYXMtZGVsZXRlIHtcclxuXHJcbiAgLmRvY3VtZW50LWl0ZW1fX2dvIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgdG9wOiA1MCU7ICAgICAgXHJcbiAgICAgIGhlaWdodDogNTAlO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAwIDAgMTBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5kb2N1bWVudC1pdGVtX19kZWxldGUge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgaGVpZ2h0OiA1MCU7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1wdXJwbGUtMTAwO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAwIDEwcHggMCAwO1xyXG5cclxuICAgICAgc3ZnIHtcclxuICAgICAgICB3aWR0aDogMjBweDtcclxuICAgICAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5xdWVzdGlvbi1pdGVtIC5kb2N1bWVudC1pdGVtX19jZW50ZXIge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQnKSB7XHJcbiAgICBwYWRkaW5nOiAyMHB4IDIwcHggMTBweDtcclxuICB9XHJcblxyXG4gIHBhZGRpbmc6IDIwcHggMjVweCAxMHB4O1xyXG59XHJcblxyXG4vKipcclxuICogIEljb24uXHJcbiAqL1xyXG5cclxuLmRvY3VtZW50LWl0ZW1fX2ljb24ge1xyXG4gIEBtZWRpYShtYXgtd2lkdGg6IDY4MHB4KSB7XHJcbiAgICB3aWR0aDogMzBweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGZvbnQoMjVweCwgMzBweCk7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICB3aWR0aDogNjBweDtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgYm9yZGVyLXJhZGl1czogMTBweCAwIDAgMTBweDtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcblxyXG4gICYuYXJ0aWNsZSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JhZGllbnQtcGluaztcclxuICB9XHJcblxyXG4gICYuZG93bmxvYWQge1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWdyYWRpZW50LWdyZWVuO1xyXG4gIH1cclxuXHJcbiAgJi5xdWVzdGlvbiB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JhZGllbnQtb3JhbmdlO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAgQ2VudGVyIGNvbnRlbnQgKHRpdGxlICYgZGF0ZSkuXHJcbiAqL1xyXG5cclxuLmRvY3VtZW50LWl0ZW1fX2NlbnRlciB7XHJcbiAgQG1lZGlhKG1heC13aWR0aDogNjgwcHgpIHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMzBweDtcclxuICAgIHBhZGRpbmc6IDIwcHggMTBweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQnKSB7XHJcbiAgICBwYWRkaW5nOiAyMHB4O1xyXG4gIH1cclxuXHJcbiAgbWFyZ2luOiAwIDQwcHggMCA2MHB4O1xyXG4gIHBhZGRpbmc6IDIwcHggMzBweDtcclxuXHJcbiAgc3ZnIHtcclxuICAgICYuZmEtYnVpbGRpbmcge1xyXG4gICAgICBoZWlnaHQ6IDExcHg7XHJcbiAgICB9XHJcblxyXG4gICAgJi5mYS11c2VyIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB0b3A6IC0ycHg7XHJcbiAgICB9XHJcblxyXG4gICAgd2lkdGg6IDE0cHg7XHJcbiAgICBoZWlnaHQ6IDE0cHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4uZG9jdW1lbnQtaXRlbSB7XHJcbiAgLmZhLWNhbGVuZGFyLWFsdCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0b3A6IDNweDtcclxuICB9XHJcbn1cclxuXHJcbi5xdWVzdGlvbi1pdGVtIHtcclxuICAuZmEtY2FsZW5kYXItYWx0IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRvcDogLTFweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogIFF1ZXN0aW9uLlxyXG4gKi9cclxuXHJcbi5kb2N1bWVudC1pdGVtX19xdWVzdGlvbiB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgIFxyXG4gIHBhZGRpbmc6IDMwcHggMDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNlY29uZGFyeTtcclxuXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMXB4O1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yLXB1cnBsZS0yMDA7XHJcbiAgICBjb250ZW50OiAnJztcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogIFRpdGxlLlxyXG4gKi9cclxuXHJcbi5kb2N1bWVudC1pdGVtX190aXRsZSB7XHJcbiAgQG1lZGlhKG1heC13aWR0aDogNjgwcHgpIHtcclxuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0Jykge1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICB9XHJcblxyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB3aWR0aDogNjAlO1xyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zZWNvbmRhcnk7XHJcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAmOjphZnRlciB7XHJcbiAgICBAbWVkaWEobWluLXdpZHRoOiA2ODBweCkge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDFweDtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvci1wdXJwbGUtMjAwO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqICBEYXRlLlxyXG4gKi9cclxuXHJcbi5kb2N1bWVudC1pdGVtX19kYXRlIHtcclxuICBAbWVkaWEobWF4LXdpZHRoOiA2ODBweCkge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuICAgIHdpZHRoOiAyMCU7XHJcbiAgfVxyXG5cclxuICB3aWR0aDogMTUlO1xyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcblxyXG4gIHN2ZyB7XHJcbiAgICB3aWR0aDogMTRweDtcclxuICAgIGhlaWdodDogMTRweDtcclxuICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogIExpbmsuXHJcbiAqL1xyXG5cclxuLmRvY3VtZW50LWl0ZW1fX2dvIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICB3aWR0aDogNTBweDtcclxuXHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICB3aWR0aDogNTVweDtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyNTBtcyBlYXNlO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAgMTBweCAxMHB4IDA7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLXB1cnBsZS0yMDA7XHJcbiAgY29sb3I6ICRjb2xvci1wdXJwbGUtMzAwO1xyXG5cclxuICBzdmcge1xyXG4gICAgQG1lZGlhKG1heC13aWR0aDogNjgwcHgpIHtcclxuICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgIGhlaWdodDogMjBweDtcclxuICAgIH1cclxuXHJcbiAgICB3aWR0aDogMTRweDtcclxuICAgIGhlaWdodDogMTRweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogIERlbGV0ZS5cclxuICovXHJcblxyXG4uZG9jdW1lbnQtaXRlbV9fZGVsZXRlIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IC02NXB4O1xyXG4gIGJvdHRvbTogMDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIHdpZHRoOiA1MHB4O1xyXG4gIGhlaWdodDogMTAwJTtcclxuXHJcbiAgc3ZnIHtcclxuICAgIHdpZHRoOiAxNXB4O1xyXG4gICAgaGVpZ2h0OiAxNXB4O1xyXG4gICAgdHJhbnNpdGlvbjogY29sb3IgMjUwbXMgZWFzZTtcclxuICB9XHJcblxyXG4gICY6aG92ZXIgc3ZnIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdkZXNrdG9wJykge1xyXG4gICAgICBjb2xvcjogJGNvbG9yLW9yYW5nZS0yMDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqICBGb290ZXIuXHJcbiAqL1xyXG5cclxuLmRvY3VtZW50LWl0ZW1fX2Zvb3RlciB7XHJcbiAgQGluY2x1ZGUgZm9udCgxNHB4LCAyMHB4KTtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gIG9wYWNpdHk6IDAuNjtcclxufVxyXG5cclxuLml0ZW0tbmFtZSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi5pdGVtLW9yZ2FuaXNhdGlvbiB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIHNwYW4ge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICB3aWR0aDogMjAwcHg7XHJcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqICBEYXNoYm9hcmQgZXhjZXB0aW9ucy5cclxuICovXHJcblxyXG4uYXJ0aWNsZXMgLmRvY3VtZW50LWl0ZW0ge1xyXG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdkZXNrdG9wJykge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JhZGllbnQtcGluaztcclxuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcblxyXG4gICAgICAuZG9jdW1lbnQtaXRlbV9faWNvbiB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5kb2N1bWVudC1pdGVtX190aXRsZSB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5kb2N1bWVudC1pdGVtX19kYXRlIHtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmlzLWRhc2hib2FyZCAub3dsLXN0YWdlLW91dGVyIHtcclxuICBtYXJnaW46IC0xMHB4O1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbn1cclxuXHJcbi5pcy1kYXNoYm9hcmQgLmRvY3VtZW50LWl0ZW0ge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIHdpZHRoOiAyNjBweDsgICAgXHJcbiAgfVxyXG5cclxuICB3aWR0aDogMTAwJTtcclxuICBwYWRkaW5nOiAyMHB4O1xyXG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xyXG59XHJcblxyXG4uaXMtZGFzaGJvYXJkIC5kb2N1bWVudC1pdGVtIGEge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG59XHJcblxyXG4uaXMtZGFzaGJvYXJkIC5kb2N1bWVudC1pdGVtX19pY29uIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDYwcHg7XHJcbiAgaGVpZ2h0OiA2MHB4O1xyXG4gIG1hcmdpbjogYXV0bztcclxuICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTtcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbn1cclxuXHJcbi5pcy1kYXNoYm9hcmQgLmRvY3VtZW50LWl0ZW1fX2NlbnRlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTtcclxufVxyXG5cclxuLmlzLWRhc2hib2FyZCAuZG9jdW1lbnQtaXRlbV9fdGl0bGUge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiA0MHB4O1xyXG4gIG1hcmdpbjogMzBweCAwO1xyXG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB0ZXh0LW92ZXJmbG93OiBpbmhlcml0O1xyXG4gIHdoaXRlLXNwYWNlOiBpbmhlcml0O1xyXG5cclxuICAmOjphZnRlciB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLmlzLWRhc2hib2FyZCAuZG9jdW1lbnQtaXRlbV9fZGF0ZSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLmlzLWRhc2hib2FyZCAuZG9jdW1lbnQtaXRlbV9fZ28ge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRG9jdW1lbnQgbGlzdC5cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5kb2N1bWVudC1saXN0IHtcclxuICBtYXJnaW4tYm90dG9tOiAxMzBweDtcclxuXHJcbiAgLnVwbG9hZC1mb3JtIHtcclxuICAgIG1hcmdpbi10b3A6IDEwMHB4O1xyXG4gICAgcGFkZGluZy10b3A6IDEwMHB4O1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvci1ibHVlLTIwMDtcclxuICB9XHJcbn1cclxuXHJcbi5kb2N1bWVudC1saXN0X19zZWFyY2gge1xyXG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbn1cclxuXHJcbi5kb2N1bWVudC1saXN0X19zZWFyY2guc3ViamVjdC10eXBlLTEuaXMtYm9hcmQge1xyXG4gIC5kb2N1bWVudC1saXN0X19zZWFyY2gtaW5wdXQge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxMHB4KTtcclxuICB9XHJcblxyXG4gIC5kb2N1bWVudC1saXN0X19zZWFyY2gtc2VsZWN0IHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMTBweCk7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbn1cclxuXHJcbi5kb2N1bWVudC1saXN0X19zZWFyY2gtaW5wdXQge1xyXG4gIGlucHV0IHtcclxuICAgIEBpbmNsdWRlIGZvbnQoMTVweCwgMjBweCk7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogNDBweDtcclxuICAgIHBhZGRpbmc6IDVweCAyMHB4O1xyXG4gICAgdHJhbnNpdGlvbjogYm9yZGVyIDI1MG1zIGVhc2U7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYmx1ZS0yMDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xyXG4gICAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Vjb25kYXJ5O1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItcHVycGxlLTMwMDtcclxuICAgIH1cclxuXHJcbiAgICAmOjpwbGFjZWhvbGRlciB7XHJcbiAgICAgIGNvbG9yOiAkY29sb3ItYmx1ZS0yMDA7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdmcge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAxMHB4O1xyXG4gICAgcmlnaHQ6IDIwcHg7XHJcbiAgICB3aWR0aDogMTRweDtcclxuICAgIGhlaWdodDogMjBweDtcclxuICAgIGNvbG9yOiAkY29sb3ItYmx1ZS0yMDA7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWFyZ2luLXRvcDogNTBweDtcclxufVxyXG5cclxuLmRvY3VtZW50LWxpc3RfX3NlYXJjaC1zZWxlY3Qge1xyXG4gIGxhYmVsIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgIGNvbG9yOiAjYWJiOWMyO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0IHtcclxuICAgIEBpbmNsdWRlIGZvbnQoMTVweCwgMjBweCk7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogNDBweDtcclxuICAgIHBhZGRpbmc6IDVweCAyMHB4O1xyXG4gICAgdHJhbnNpdGlvbjogYm9yZGVyIDI1MG1zIGVhc2U7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYmx1ZS0yMDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNlY29uZGFyeTtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLXB1cnBsZS0zMDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdmcge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAzNXB4O1xyXG4gICAgcmlnaHQ6IDIwcHg7XHJcbiAgICB3aWR0aDogMTRweDtcclxuICAgIGhlaWdodDogMjBweDtcclxuICAgIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgICB6LWluZGV4OiAtMTtcclxuICB9XHJcblxyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXJnaW4tdG9wOiAyNnB4O1xyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIERvY3VtZW50IG1lbnVcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiAgTWFpbiBlbGVtZW50LlxyXG4gKi9cclxuXHJcbi5kb2N1bWVudC1tZW51IHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICB0b3A6IDE5NXB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldCcpIHtcclxuICAgIHRvcDogMTEwcHg7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAxNDhweDtcclxuICByaWdodDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zZWNvbmRhcnk7XHJcbiAgYm94LXNoYWRvdzogMCAxM3B4IDE1cHggMCByZ2JhKDQsIDQ2LCA3NSwgMC4wNCk7XHJcbiAgei1pbmRleDogMjA7XHJcblxyXG4gIC5zdWJtZW51LXJpZ2h0IHtcclxuICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4uZG9jdW1lbnQtbWVudSAuc3VibWVudS1sZWZ0IHtcclxuICBAaW5jbHVkZSBtZWRpYSgnZGVza3RvcCcpIHtcclxuICAgIHdpZHRoOiAxODVweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB6LWluZGV4OiAyMTtcclxuICB9XHJcblxyXG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xyXG59XHJcblxyXG4uZG9jdW1lbnQtbWVudV9fbW9iaWxlIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4uZG9jdW1lbnQtbWVudV9fbGlua3Mge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC01MHB4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgNDUwbXMgZWFzZTtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgfVxyXG5cclxuICB3aWR0aDogY2FsYygxMDAlIC0gMTg1cHgpO1xyXG5cclxuICAmLmlzLWFjdGl2ZSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgICB0b3A6IDYwcHg7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgIHotaW5kZXg6IDIwO1xyXG4gICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbn1cclxuXHJcbi5kb2N1bWVudC1sZWZ0X19saW5rcyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgfVxyXG5cclxuICB3aWR0aDogODIlO1xyXG59XHJcblxyXG4uZG9jdW1lbnQtbWVudV9faXRlbSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICBhIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIHBhZGRpbmc6IDI1cHggMDtcclxuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgICB9XHJcblxyXG4gICAgc3ZnIHtcclxuICAgICAgd2lkdGg6IDEzcHg7XHJcbiAgICAgIGhlaWdodDogMTNweDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcclxuICAgIH1cclxuXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG4gIH1cclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLTQwMDtcclxuXHJcbiAgICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuZG9jdW1lbnQtbWVudV9fc3VibWVudSB7XHJcbiAgICAgICAgdG9wOiAxMDAlO1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgei1pbmRleDogOTtcclxuICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uZG9jdW1lbnQtbWVudV9fc3VibWVudSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1heC1oZWlnaHQ6IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDQ1MG1zIGVhc2U7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCRjb2xvci1ibHVlLTQwMCwgNSUpO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHotaW5kZXg6IC0xO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA3MCU7XHJcbiAgbGVmdDogLTMwJTtcclxuICB3aWR0aDogNDB2dztcclxuICBtYXgtd2lkdGg6IDUwMHB4O1xyXG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyMTBweCk7XHJcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG4gIHRyYW5zaXRpb246IGFsbCAzNTBtcyBlYXNlO1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLTQwMDtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICBvcGFjaXR5OiAwO1xyXG4gIHotaW5kZXg6IC0xO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICB3aWR0aDogMTBweDtcclxuICB9XHJcblxyXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIH1cclxuXHJcbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW9yYW5nZS0yMDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gIH1cclxuXHJcbiAgJi5pcy1hY3RpdmUge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgICAgbWF4LWhlaWdodDogMTUwMHB4O1xyXG4gICAgICBwYWRkaW5nOiAxNXB4IDA7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uZG9jdW1lbnQtbWVudV9fc3VibWVudS1pdGVtIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgcGFkZGluZzogMCAzMHB4O1xyXG4gIH1cclxuXHJcbiAgcGFkZGluZzogMCA2MHB4O1xyXG4gIHRyYW5zaXRpb246IGFsbCAzNTBtcyBlYXNlO1xyXG5cclxuICAmOm50aC1jaGlsZCgwKSBhIHtcclxuICAgIGJvcmRlci1ib3R0b206IDA7XHJcbiAgfVxyXG5cclxuICAmOmZpcnN0LWNoaWxkIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgfVxyXG5cclxuICAmOmxhc3QtY2hpbGQge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuICB9XHJcblxyXG4gICY6bnRoLWxhc3QtY2hpbGQoMSkgYTo6YWZ0ZXIge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ2Rlc2t0b3AnKSB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1vcmFuZ2UtMjAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmRvY3VtZW50LW1lbnVfX3N1Ym1lbnUtaXRlbSBhIHtcclxuICBAaW5jbHVkZSBmb250KDE1cHgsIDIwcHgpO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW4tbGVmdDogMDtcclxuICBwYWRkaW5nOiAxNXB4IDA7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zZWNvbmRhcnk7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMnB4O1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWJsdWUtMjAwO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBvcGFjaXR5OiAwLjM7XHJcbiAgfVxyXG59XHJcblxyXG4uZG9jdW1lbnQtbWVudV9fdGVhc2VyIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICB0b3A6IDgwcHg7XHJcbiAgICB3aWR0aDogMzA4cHg7XHJcbiAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA5MHB4O1xyXG4gIGxlZnQ6IDUwcHg7XHJcbiAgd2lkdGg6IDE4NXB4O1xyXG4gIGhlaWdodDogNTVweDtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG4gIGJvcmRlcjogMXB4IGRhc2hlZCAjMDQyZTRiO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBmb250LXNpemU6IDE0cHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG9wYWNpdHk6IDAuNjtcclxuICB6LWluZGV4OiAyO1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgICAgcmlnaHQ6IC00MHB4O1xyXG4gICAgICBsZWZ0OiBhdXRvO1xyXG4gICAgICB3aWR0aDogMzBweDtcclxuICAgICAgYmFja2dyb3VuZDogdXJsKCcjeyRpbWFnZS1wYXRofWFycm93Mi5zdmcnKTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC0xMHB4O1xyXG4gICAgbGVmdDogLTQwcHg7XHJcbiAgICB3aWR0aDogMjVweDtcclxuICAgIGhlaWdodDogMzdweDtcclxuICAgIGJhY2tncm91bmQ6IHVybCgnI3skaW1hZ2UtcGF0aH1hcnJvdy5zdmcnKTtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBEb2N1bWVudCBtZW51XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4uZG9jdW1lbnQtc2luZ2xlX19oZWFkIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gIC5sYWJlbCB7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICB9XHJcbn1cclxuXHJcbi5kb2N1bWVudC1zaW5nbGVfX2RhdGUge1xyXG4gIHN2ZyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0b3A6IDJweDtcclxuICAgIHdpZHRoOiAxNHB4O1xyXG4gICAgaGVpZ2h0OiAxNHB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gIH1cclxuXHJcbiAgb3BhY2l0eTogMC43O1xyXG59XHJcblxyXG4uZG9jdW1lbnQtc2luZ2xlX19pY29uIHtcclxuICBAbWVkaWEobWF4LXdpZHRoOiA2ODBweCkge1xyXG4gICAgd2lkdGg6IDMwcHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBmb250KDI1cHgsIDMwcHgpO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IC0xMHB4O1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiAtMTA1cHg7XHJcbiAgd2lkdGg6IDUwcHg7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIHBhZGRpbmctdG9wOiA5cHg7XHJcbiAgYm9yZGVyLXJhZGl1czogMzNweDtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JhZGllbnQtcGluaztcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uZG9jdW1lbnQtc2luZ2xlX190aXRsZSB7XHJcbiAgbWFyZ2luOiA1MHB4IDAgNTBweDtcclxufVxyXG5cclxuLmRvY3VtZW50LXNpbmdsZV9fZWRpdG9yIHtcclxuICBwYWRkaW5nLWJvdHRvbTogMzBweDtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yLWJsdWUtMjAwO1xyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIERvY3VtZW50IHN1Ym1lbnUuXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4uZG9jdW1lbnQtc3VibWVudSB7XHJcbiAgbWFyZ2luLXRvcDogNTBweDtcclxufVxyXG5cclxuLmRvY3VtZW50LXN1Ym1lbnVfX2l0ZW0ge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgd2lkdGg6IGNhbGMoMjUlIC0gMTVweCk7XHJcblxyXG4gIGEge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBoZWlnaHQ6IDYwcHg7XHJcbiAgICAgIHBhZGRpbmc6IDIzcHggMjBweDtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIH1cclxuXHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGhlaWdodDogMTYwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgcGFkZGluZy10b3A6IDE1cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICAgIGNvbG9yOiAkY29sb3ItZ3JleS0zMDA7XHJcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNlY29uZGFyeTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggM3B4ICNmMmY2Zjk7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggM3B4IHJnYmEoNCwgNDYsIDc1LCAwLjIxKTtcclxuICAgIH1cclxuXHJcbiAgICBzdmcge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHRvcDogLTEzcHg7XHJcbiAgICAgICAgd2lkdGg6IDQwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcclxuICAgICAgICBcclxuICAgICAgfVxyXG5cclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogMTAwcHg7XHJcbiAgICAgIGNvbG9yOiAkY29sb3ItZ3JleS0zMDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIERvY3VtZW50IHVwbG9hZCBmb3JtLlxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVwbG9hZC1mb3JtIHtcclxuICBtYXJnaW4tYm90dG9tOiAxMzBweDtcclxufVxyXG5cclxuLnVwbG9hZC1mb3JtX19uby1hY2Nlc3Mge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW46IDAgMCAxMDBweCAwO1xyXG4gIHBhZGRpbmc6IDIwcHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXJlZC0xMDA7XHJcbiAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLnVwbG9hZC1mb3JtX190aXRsZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxufVxyXG5cclxuLnVwbG9hZC1mb3JtX19zZWxlY3RzIHtcclxuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG59XHJcblxyXG4udXBsb2FkLWZvcm1fX3NlbGVjdCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICBsYWJlbCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICBjb2xvcjogI2FiYjljMjtcclxuICB9XHJcblxyXG4gIHNlbGVjdCB7XHJcbiAgICBAaW5jbHVkZSBmb250KDE1cHgsIDIwcHgpO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICBwYWRkaW5nOiA1cHggMjBweDtcclxuICAgIHRyYW5zaXRpb246IGJvcmRlciAyNTBtcyBlYXNlO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJsdWUtMjAwO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zZWNvbmRhcnk7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1wdXJwbGUtMzAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3ZnIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMzVweDtcclxuICAgIHJpZ2h0OiAyMHB4O1xyXG4gICAgd2lkdGg6IDE0cHg7XHJcbiAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IGNhbGMoNTAlIC0gMTBweCk7XHJcbiAgbWFyZ2luLXRvcDogMjVweDtcclxufVxyXG5cclxuLnVwbG9hZC1mb3JtX191cGxvYWQtZmllbGQge1xyXG4gIHN2ZyB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogNTBweDtcclxuICAgIG1hcmdpbjogNTBweCAwIDI1cHg7XHJcbiAgICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gIH1cclxuXHJcbiAgaW5wdXQge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICB9XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgLmJ1dHRvbiB7XHJcbiAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkY29sb3Itb3JhbmdlLTIwMCwgMTAlKTtcclxuICAgICAgYm94LXNoYWRvdzogM3B4IDNweCA3cHggMCByZ2JhKDI1NSwgMTEwLCA0NCwgMC41MSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAyMjBweDtcclxuICBib3JkZXI6IDFweCBkYXNoZWQgJGNvbG9yLWdyZXktMjAwOyAgXHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4udXBsb2FkLWZvcm1fX3VwbG9hZC1hcmVhIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi51cGxvYWQtZm9ybV9faW5mbyB7XHJcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNTUwcHgpIHtcclxuICAgIHRvcDogY2FsYygxMDAlICsgMjVweCk7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE1NTBweCkge1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICByaWdodDogY2FsYygxMDAlICsgMTBweCk7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBmb250KDEzcHgsIDIwcHgpO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB3aWR0aDogMjkwcHg7XHJcbiAgcGFkZGluZy10b3A6IDEwcHg7XHJcbiAgcGFkZGluZy1yaWdodDogNDVweDtcclxuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLTEwMDtcclxuICBjb2xvcjogcmdiYSgkY29sb3ItYmx1ZS00MDAsIDAuNSk7XHJcblxyXG4gID4gc3ZnIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogY2FsYyg1MCUgLSA3LjVweCk7XHJcbiAgICByaWdodDogMjBweDtcclxuICAgIHdpZHRoOiAxNXB4O1xyXG4gICAgaGVpZ2h0OiAxNXB4O1xyXG4gIH1cclxuXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNTUwcHgpIHtcclxuICAgICAgYm90dG9tOiAxMDAlO1xyXG4gICAgICBsZWZ0OiBjYWxjKDUwJSAtIDcuNXB4KTtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwIDcuNXB4IDVweDtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkY29sb3ItYmx1ZS0xMDA7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNTUwcHgpIHtcclxuICAgICAgdG9wOiBjYWxjKDUwJSAtIDcuNXB4KTtcclxuICAgICAgbGVmdDogMTAwJTtcclxuICAgICAgYm9yZGVyLXdpZHRoOiA3LjVweCAwIDcuNXB4IDVweDtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkY29sb3ItYmx1ZS0xMDA7XHJcbiAgICB9XHJcblxyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgd2lkdGg6IDA7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgfVxyXG59XHJcblxyXG4udXBsb2FkLWZvcm1fX3VwbG9hZC1jYXB0aW9uIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGZvbnQoMTRweCwgMThweCk7XHJcbiAgcGFkZGluZy10b3A6IDEwcHg7XHJcbiAgY29sb3I6IHJnYmEoJGNvbG9yLWJsdWUtNDAwLCAwLjYpO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBMYXRlc3QgZG93bmxvYWQuXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4uZG93bmxvYWRzLWxhdGVzdF9fdGl0bGUge1xyXG4gIG1hcmdpbjogMzBweCAwIDUwcHg7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRm9vdGVyXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogIE1haW4gZWxlbWVudC5cclxuICovXHJcblxyXG4uZm9vdGVyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuXHJcbiAgJi5oYXMtbW9iaWxlLW1lbnUge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDYwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqICBGb290ZXIgdXBwZXIgcGFydC5cclxuICovXHJcblxyXG4uZm9vdGVyX191cHBlciB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgcGFkZGluZzogNTBweCAwO1xyXG4gIH1cclxuXHJcbiAgcGFkZGluZzogNzBweCAwO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqICBGb290ZXIgbG93ZXIgcGFydC5cclxuICovXHJcblxyXG4uZm9vdGVyX19sb3dlciB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgcGFkZGluZzogMTBweCAwO1xyXG4gIH1cclxuXHJcbiAgcGFkZGluZzogMjBweCAwO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Vjb25kYXJ5O1xyXG5cclxuICAubGluayB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICBmb250LXdlaWdodDogMzAwO1xyXG5cclxuICAgICY6bnRoLWxhc3QtY2hpbGQoMSkge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAgRm9vdGVyIGNvbHVtbiBzZXR0aW5ncy5cclxuICovXHJcblxyXG4uZm9vdGVyLWNvbHVtbiB7XHJcbiAgQG1lZGlhKG1heC13aWR0aDogNzgwcHgpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhKG1pbi13aWR0aDogNzgwcHgpIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICB9XHJcblxyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB3aWR0aDogMzUlO1xyXG5cclxuICAuaGVhZGluZy0zLWJsdWUge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gIH1cclxuXHJcbiAgJjpudGgtbGFzdC1jaGlsZCgxKSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDUwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqICBGb290ZXIgY29sdW1uIGRlc2NyaXB0aW9uLlxyXG4gKi9cclxuXHJcbi5mb290ZXItY29sdW1uX19kZXNjcmlwdGlvbiB7XHJcblxyXG4gIHN2ZyB7XHJcbiAgICB3aWR0aDogMTNweDtcclxuICAgIGhlaWdodDogMTRweDtcclxuICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRm9ybVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuXHJcblxyXG4vKipcclxuICogTWFpbiBzZXR0aW5ncy5cclxuICovXHJcblxyXG4uZm9ybSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEZvcm0gZ3JvdXAuXHJcbiAqL1xyXG5cclxuLmZvcm0tZ3JvdXAge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIG1hcmdpbjogMCAtMTBweDtcclxuXHJcbiAgJi5yYWRpbyB7XHJcbiAgICBtYXJnaW46IC0xMHB4O1xyXG5cclxuICAgIC5sYWJlbCB7XHJcbiAgICAgIG1hcmdpbjogMjVweCAxMHB4IC0yMHB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmZvcm0tZ3JvdXAtLXdpZGUge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgbWFyZ2luOiAwIC0xMHB4O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEZvcm0gaXRlbS5cclxuICovXHJcblxyXG4uZm9ybS1pdGVtIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIHdpZHRoOiBjYWxjKDUwJSAtIDIwcHgpO1xyXG4gIG1hcmdpbjogMHB4IDEwcHggMDtcclxuXHJcbiAgJi5zZWxlY3Qge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICB3aWR0aDogOTYlO1xyXG4gICAgfVxyXG5cclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICBzdmcge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHJpZ2h0OiAxMHB4O1xyXG4gICAgICBib3R0b206IDEzcHg7XHJcbiAgICAgIHdpZHRoOiAxNHB4O1xyXG4gICAgICBoZWlnaHQ6IDE0cHg7XHJcbiAgICAgIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmZvcm0taXRlbS0td2lkZSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5mb3JtLWl0ZW1fX3JhZGlvLS13aWRlIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIHdpZHRoOiBjYWxjKDI1JSAtIDIwcHgpO1xyXG4gIG1hcmdpbjogMTBweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBMYWJlbC5cclxuICovXHJcblxyXG4uZm9ybS1pdGVtIGxhYmVsLFxyXG4uZm9ybSAubGFiZWwge1xyXG4gIEBpbmNsdWRlIGZvbnQoMTNweCwgMThweCk7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICBmb250LWZhbWlseTogaW5oZXJpdDtcclxuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcclxuICBvcGFjaXR5OiAwLjc7XHJcblxyXG4gICYuZnVuY3Rpb25zIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDZweDsgXHJcbiAgfVxyXG59XHJcblxyXG4uZm9ybS1pdGVtX19sYWJlbCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5mb3JtLWl0ZW1fX2xhYmVsLS13aWRlIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW46IDIwcHggMjBweCAtMzVweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBJbnB1dCBzZXR0aW5ncy5cclxuICovXHJcblxyXG4uZm9ybS1pdGVtIGlucHV0W3R5cGU9J3RleHQnXSxcclxuLmZvcm0taXRlbSBpbnB1dFt0eXBlPSdwYXNzd29yZCddLFxyXG4uZm9ybS1pdGVtIHRleHRhcmVhLFxyXG4uZm9ybS1pdGVtIHNlbGVjdCB7XHJcbiAgQGluY2x1ZGUgZm9udCgxNXB4LCAyMHB4KTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDQwcHg7XHJcbiAgcGFkZGluZzogNXB4IDIwcHg7XHJcbiAgdHJhbnNpdGlvbjogYm9yZGVyIDI1MG1zIGVhc2U7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJsdWUtMjAwO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Vjb25kYXJ5O1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1wdXJwbGUtMzAwO1xyXG4gIH1cclxufVxyXG5cclxuLmZvcm0taXRlbSB0ZXh0YXJlYSB7XHJcbiAgaGVpZ2h0OiAyNTBweDtcclxuICBwYWRkaW5nLXRvcDogMTBweDtcclxufVxyXG5cclxuLmZvcm0taXRlbSBpbnB1dFt0eXBlPSd0ZXh0J106ZGlzYWJsZWQge1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLTEwMDtcclxuICBvcGFjaXR5OiAwLjg7XHJcbn1cclxuXHJcbnNlbGVjdDo6LW1zLWV4cGFuZCB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJhZGlvIGJ1dHRvbnMuXHJcbiAqL1xyXG5cclxuLmZvcm0taXRlbV9fcmFkaW8gbGFiZWwge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHdpZHRoOiA4NXB4O1xyXG4gIGhlaWdodDogODVweDtcclxuICBtYXJnaW46IDEwcHg7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWdyZXktMjAwO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIGNvbG9yOiAkY29sb3ItZ3JleS0yMDA7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zZWNvbmRhcnk7XHJcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gIHN2ZyxcclxuICBpbWcge1xyXG4gICAgd2lkdGg6IDMwcHg7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAtMjVweDtcclxuICB9XHJcblxyXG4gIHNwYW4ge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci1wdXJwbGUtMzAwO1xyXG4gIH1cclxufVxyXG5cclxuLmZvcm0taXRlbV9fcmFkaW8tLXdpZGUgbGFiZWwge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgbWFyZ2luOiAxMHB4O1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWdyZXktMjAwO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIGNvbG9yOiAkY29sb3ItZ3JleS0yMDA7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zZWNvbmRhcnk7XHJcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gIHN2ZyxcclxuICBpbWcge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICB3aWR0aDogMjVweDtcclxuICAgICAgaGVpZ2h0OiAyNXB4O1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAtMTBweDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgd2lkdGg6IDMwcHg7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAtMTVweDtcclxuICAgIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgfVxyXG5cclxuICBzcGFuIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xyXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgfVxyXG5cclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItcHVycGxlLTMwMDtcclxuICB9XHJcbn1cclxuXHJcbi5mb3JtLWl0ZW1fX3JhZGlvOm50aC1sYXN0LWNoaWxkKDEpIHtcclxuICBcclxuICBzdmcge1xyXG4gICAgd2lkdGg6IDE1cHg7XHJcbiAgICBoZWlnaHQ6IDE1cHg7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogV2hlbiBhIHJhZGlvIGJ1dHRvbiBpcyBhY3RpdmUuXHJcbiAqL1xyXG5cclxuLmZvcm0taXRlbV9fcmFkaW8gaW5wdXQ6Y2hlY2tlZCArIGxhYmVsLFxyXG4uZm9ybS1pdGVtX19yYWRpby0td2lkZSBpbnB1dDpjaGVja2VkICsgbGFiZWwge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1wdXJwbGUtMzAwO1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci1ncmFkaWVudC1wdXJwbGU7XHJcbiAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgLy9zYXNzLWxpbnQ6ZGlzYWJsZTogbm8tY29sb3ItbGl0ZXJhbHNcclxuICBib3gtc2hhZG93OiAwIDJweCAyMHB4IDAgcmdiYSgxMzYsIDQ1LCAyMzEsIDAuMyk7XHJcbiAgLy9zYXNzLWxpbnQ6ZW5hYmxlOiBuby1jb2xvci1saXRlcmFsc1xyXG5cclxuICBzdmcge1xyXG4gICAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgfVxyXG59XHJcblxyXG4vLyAub3JnYW5pc2F0aW9uIC5mb3JtLWl0ZW0ge1xyXG4vLyAgIHdpZHRoOiAxMDAlO1xyXG4vLyB9XHJcblxyXG4ub3JnYW5pc2F0aW9uLS1mb3VuZCB7XHJcbiAgQGluY2x1ZGUgZm9udCgyNXB4LCAzNHB4KTtcclxuICBtYXJnaW4tdG9wOiA0MHB4O1xyXG4gIHBhZGRpbmc6IDAgMCAzMHB4O1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci1ncmFkaWVudC1wdXJwbGU7XHJcbiAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xyXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xyXG5cclxuICBzdmcge1xyXG4gICAgd2lkdGg6IDI1cHg7XHJcbiAgICBoZWlnaHQ6IDI1cHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICAgIGNvbG9yOiAkY29sb3ItcHVycGxlLTMwMDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogRm9yZ3QgcGFzc3dvcmQgKG9uIHRoZSBsb2dpbiBwYWdlKS5cclxuICovXHJcblxyXG4uZm9ybSAuZm9yZ290LXBhc3N3b3JkIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG59XHJcblxyXG4uZm9ybSAuZm9yZ290LXBhc3N3b3JkX19saW5rIHtcclxuICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBTdWJtaXQgYnV0dG9uIHNldHRpbmdzLlxyXG4gKi9cclxuXHJcbi5mb3JtIC5zdWJtaXQtYnV0dG9uIHtcclxuICBtYXJnaW4tdG9wOiA1MHB4O1xyXG4gIHBhZGRpbmc6IDEwcHggNDBweCAxMHB4IDIwcHg7XHJcbn1cclxuXHJcbi5qcy1sb2dpbi1zdWJtaXQge1xyXG5cclxuICBzdmcge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYm90dG9tOiAxMnB4O1xyXG4gICAgbGVmdDogMTAwcHg7XHJcbiAgICB3aWR0aDogMTJweDtcclxuICAgIGhlaWdodDogMTJweDtcclxuICAgIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEJ1dHRvbiBzZXR0aW5ncyBvbiB0aGUgZm9yZ290IHBhc3N3b3JkIHBhZ2UuXHJcbiAqL1xyXG5cclxuLmNoYW5nZS1wYXNzd29yZCBidXR0b24sXHJcbi5mb3Jnb3QtcGFzc3dvcmQtZm9ybSBidXR0b24ge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbi10b3A6IDMwcHg7XHJcbn1cclxuXHJcblxyXG4uZm9ybV9faGVscCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAzNSU7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IFxyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIC8vdHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLWJsdWUtMTAwO1xyXG4gIC8vc2Fzcy1saW50OmRpc2FibGUgbm8tY29sb3ItbGl0ZXJhbHNcclxuICBib3gtc2hhZG93OiAwIDJweCA2cHggMCByZ2JhKDMsIDU5LCA5OCwgMC4xOSk7XHJcbiAgLy9zYXNzLWxpbnQ6ZW5hYmxlIG5vLWNvbG9yLWxpdGVyYWxzXHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB6LWluZGV4OiA5OTk7IFxyXG5cclxuICAuaXMtYWN0aXZlIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgLmlzLWluYWN0aXZlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHdpZHRoOiAwO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB9XHJcbn1cclxuXHJcbi5mb3JtX19oZWxwLS1zbWFsbCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgcGFkZGluZzogOHB4IDEwcHggMnB4O1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgcGFkZGluZzogMjVweDtcclxuICAvL3RyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgc3ZnIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgd2lkdGg6IDI1cHg7IFxyXG4gICAgICBoZWlnaHQ6IDI1cHg7XHJcbiAgICAgIHotaW5kZXg6IDIwO1xyXG4gICAgfVxyXG5cclxuICAgIHdpZHRoOiAxNXB4O1xyXG4gICAgaGVpZ2h0OiAxNXB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogN3B4O1xyXG4gIH1cclxuXHJcbiAgc3BhbiB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG4uZm9ybV9faGVscC0tbGFyZ2Uge1xyXG4gIG1heC13aWR0aDogNTgwcHg7XHJcbiAgLy90cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3Itb3JhbmdlLTIwMDtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuXHJcbiAgLmRlZmF1bHRfX2VkaXRvciB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG4gICAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgfVxyXG5cclxuICAmLmlzLWFjdGl2ZSB7XHJcbiAgICBwYWRkaW5nOiA1MHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgYm94LXNoYWRvdzogMCAycHggMjBweCAwIHJnYmEoMjE5LCA4NiwgNTYsIDAuNDkpO1xyXG4gIH1cclxufVxyXG5cclxuLmZvcm1fX2hlbHAgLmV4cGFuZCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IC0zMnB4O1xyXG4gIGxlZnQ6IC0yNnB4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgd2lkdGg6IDYwcHg7XHJcbiAgaGVpZ2h0OiA3MHB4O1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAvL3RyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLTIwMDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICBzdmcge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIHdpZHRoOiAxNXB4O1xyXG4gICAgaGVpZ2h0OiAxNXB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAtMjRweDtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgICAmLmlzLXZpc2libGUge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5mYS1leHBhbmQtYWx0IHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5pcy1hY3RpdmUge1xyXG4gICAgdG9wOiAtMjBweDtcclxuICAgIGxlZnQ6IC0xOHB4O1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuXHJcbiAgICBzdmcge1xyXG4gICAgICB3aWR0aDogMjBweDtcclxuICAgICAgaGVpZ2h0OiAyMHB4O1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IC0zMHB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmNyZWF0ZS1wYXNzd29yZCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICB3aWR0aDogMTA1JTtcclxuICBtYXJnaW4tdG9wOiAxMjBweDtcclxuXHJcbiAgLmhlYWRpbmctMy1ibHVlIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgfVxyXG5cclxuICAuZm9ybS1ncm91cF9fbGVmdCxcclxuICAuZm9ybS1ncm91cF9fcmlnaHQge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICB3aWR0aDogY2FsYyg1MCUgLSA1cHgpO1xyXG5cclxuICAgIC5mb3JtLWl0ZW0ge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgICAgbWFyZ2luOiA0MHB4IDAgMDtcclxuICAgICAgfVxyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5mb3JtLWdyb3VwX19sZWZ0IHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIG1hcmdpbjogLTEwcHg7XHJcbiAgfVxyXG5cclxuICAuZm9ybS1ncm91cF9fcmlnaHQge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdmcge1xyXG4gICAgd2lkdGg6IDE1cHg7XHJcbiAgICBoZWlnaHQ6IDE1cHg7XHJcbiAgfVxyXG5cclxuICAuZm9ybS1ncm91cF9fcmlnaHQgLmZvcm0taXRlbSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDZweCAxMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWJsdWUtMTAwO1xyXG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zZWNvbmRhcnk7XHJcblxyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgbGVmdDogLTZweDtcclxuICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xyXG4gICAgICB3aWR0aDogMDtcclxuICAgICAgaGVpZ2h0OiAwO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDhweCA2cHggOHB4IDA7XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJGNvbG9yLWJsdWUtMTAwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG4gICAgICBjb250ZW50OiAnJztcclxuICAgICAgei1pbmRleDogLTE7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uZm9ybS1ncm91cF9fYnVzaW5lc3MtbWFpbCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgd2lkdGg6IDEwNSU7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICB3aWR0aDogMTAwJTtcclxuXHJcbiAgLmZvcm0taXRlbSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDVweCk7XHJcbiAgfVxyXG59XHJcblxyXG4uZm9ybS1ncm91cF9fYnVzaW5lc3MtbWFpbCAuY3JlYXRlLXBhc3N3b3JkX19pbmZvIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIHdpZHRoOiBjYWxjKDUwJSAtIDQ1cHgpO1xyXG4gIHBhZGRpbmc6IDZweCAxMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZS0xMDA7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zZWNvbmRhcnk7XHJcblxyXG4gICY6OmJlZm9yZSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IC02cHg7XHJcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB3aWR0aDogMDtcclxuICAgIGhlaWdodDogMDtcclxuICAgIGJvcmRlci13aWR0aDogOHB4IDZweCA4cHggMDtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICRjb2xvci1ibHVlLTEwMCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgfVxyXG59XHJcblxyXG4uY3JlYXRlLXBhc3N3b3JkX19pbmZvIHtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbn1cclxuXHJcbi5jcmVhdGUtcGFzc3dvcmRfX2ljb24ge1xyXG4gIHdpZHRoOiA4JTtcclxufVxyXG5cclxuLmNyZWF0ZS1wYXNzd29yZF9fY29udGVudCB7XHJcbiAgd2lkdGg6IDkyJTtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG5cclxuICBzdHJvbmcge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmZvcm1fX2Zvb3RlciB7XHJcbiAgbWFyZ2luLXRvcDogMTAwcHg7XHJcbn1cclxuXHJcbi5mb3JtX19mb290ZXIgLmRlZmF1bHRfX2VkaXRvciB7XHJcbiAgbWFyZ2luOiAzMHB4IDAgMjBweDtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG59XHJcblxyXG4uZm9ybV9fY2hlY2tib3gtLXNtYWxsIHtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbn1cclxuXHJcbi5mb3JtX19jaGVja2JveC0tc21hbGwgbGFiZWwge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIHBhZGRpbmctbGVmdDogMjVweDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNlY29uZGFyeTtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG5cclxuICBzdmcge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiA1cHg7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDE1cHg7XHJcbiAgICBoZWlnaHQ6IDEwcHg7XHJcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI1MG1zIGVhc2U7XHJcbiAgICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICB9XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMnB4O1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxNXB4O1xyXG4gICAgaGVpZ2h0OiAxNXB4O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJsdWUtNDAwO1xyXG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi5mb3JtX19jaGVja2JveC0tc21hbGwgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsIHtcclxuXHJcbiAgc3ZnIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG59XHJcblxyXG4uZm9ybV9fY2hlY2tib3gtaW5mb3JtYXRpb24ge1xyXG4gIEBpbmNsdWRlIGZvbnQoMTNweCwgMThweCk7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHBhZGRpbmc6IDEwcHggMTBweCAxMHB4IDUwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ibHVlLTEwMDtcclxuICBjb2xvcjogcmdiYSgkY29sb3ItYmx1ZS00MDAsIDAuNik7XHJcblxyXG4gIHN2ZyB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IGNhbGMoNTAlIC0gNy41cHgpO1xyXG4gICAgbGVmdDogMjBweDtcclxuICAgIHdpZHRoOiAxNXB4O1xyXG4gICAgaGVpZ2h0OiAxNXB4O1xyXG4gIH1cclxuXHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgcmlnaHQ6IDEwMCU7XHJcbiAgICB3aWR0aDogMDtcclxuICAgIGhlaWdodDogMDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgIGJvcmRlci13aWR0aDogNy41cHggNXB4IDcuNXB4IDA7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkY29sb3ItYmx1ZS0xMDAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XHJcbiAgICBjb250ZW50OiAnJztcclxuICB9XHJcbn1cclxuXHJcbi5yZWdpc3Rlci1zdWJtaXQge1xyXG4gIG1hcmdpbjogMTAwcHggMDtcclxuICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogRXJyb3IuXHJcbiAqL1xyXG5cclxuLmZvcm0taXRlbS1lcnJvciB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLW9yYW5nZS0yMDA7XHJcbn1cclxuXHJcbi5wYXNzd29yZC12YWxpZGF0aW9uLWZhaWxlZCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDk3LjUlO1xyXG4gIG1hcmdpbjogLTEwMHB4IDAgNDBweDtcclxuICBwYWRkaW5nOiAyMHB4O1xyXG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3ItcmVkLTEwMDtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBvcGFjaXR5OiAwO1xyXG4gIHotaW5kZXg6IDk5O1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cclxuICBzdmcge1xyXG4gICAgd2lkdGg6IDE0cHg7XHJcbiAgICBoZWlnaHQ6IDE0cHg7XHJcbiAgICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gIH1cclxuXHJcbiAgLnNlY29uZC1zdGVwIC5jb250ZW50LWZvcm1fX2hlYWRpbmcge1xyXG4gICAgbWFyZ2luLXRvcDogMTAwcHggIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5jbG9zZS1tZXNzYWdlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNXB4O1xyXG4gICAgcmlnaHQ6IDVweDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcblxyXG4gIC5oZWFkaW5nLTMtYmx1ZSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgfVxyXG5cclxuICAuZGVmYXVsdF9fZWRpdG9yIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiAzNTBweDtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgfVxyXG5cclxuICAmLmlzLXZpc2libGUge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgbWFyZ2luOiA0MHB4IDA7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7XHJcbiAgfVxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEhlYWRlclxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqICBNYWluIGVsZW1lbnQuXHJcbiAqL1xyXG5cclxuLmhlYWRlciB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgIC8vcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogMjE7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBoZWlnaHQ6IDE5NXB4O1xyXG4gICAgcGFkZGluZzogMTBweCAwO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldCcpIHtcclxuICAgIGhlaWdodDogMTEwcHg7XHJcbiAgICBwYWRkaW5nOiA1cHggMDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCdkZXNrdG9wJykge1xyXG4gICAgaGVpZ2h0OiAxNTBweDtcclxuICB9XHJcblxyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICByaWdodDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgcGFkZGluZzogMzBweCAwO1xyXG4gIHotaW5kZXg6IDIwO1xyXG59XHJcblxyXG4uaGVhZGVyIC53cmFwcGVyIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqICBMb2dvLlxyXG4gKi9cclxuXHJcbi5oZWFkZXItbG9nbyB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAuZGVza3RvcCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnZGVza3RvcCcpIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIC5tb2JpbGUge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ2Rlc2t0b3AnKSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG59XHJcblxyXG4uaGVhZGVyLWxvZ29fX3VzZXJncm91cCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ2Rlc2t0b3AnKSB7XHJcbiAgICBAaW5jbHVkZSBmb250KDE3cHgsIDIwcHgpO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDEycHg7XHJcbiAgICBsZWZ0OiA2NXB4O1xyXG4gICAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgJi5ub3QtbG9nZ2VkaW4ge1xyXG4gICAgICBAaW5jbHVkZSBmb250KDI0cHgsIDIwcHgpO1xyXG4gICAgICBsZWZ0OiA2NnB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLyoqXHJcbiAqICBMaW5rLlxyXG4gKi9cclxuXHJcblxyXG4uaGVhZGVyLXJpZ2h0IC5saW5rIHtcclxuICB3aWR0aDogMTAwJTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogIE5vdCBsb2dnZWQgaW4gc2V0dGluZ3MuXHJcbiAqL1xyXG5cclxuXHJcbi5oZWFkZXItcmlnaHQgLm5vdC1sb2dnZWQtaW4ge1xyXG4gIG1heC13aWR0aDogMTg1cHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAuYnV0dG9uIHtcclxuICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqICBIZWFkZXIgbG9nZ2VkIGluIHNldHRpbmdzLlxyXG4gKi9cclxuXHJcbi5oZWFkZXItLWxvZ2dlZGluIHtcclxuXHJcbiAgLmhlYWRlcl9fbGVmdCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIHdpZHRoOiAyNSU7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuICAgICAgd2lkdGg6IDE0JTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZScpIHtcclxuICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgd2lkdGg6IDI1JTtcclxuICB9XHJcblxyXG4gIC5oZWFkZXJfX2NlbnRlciB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuICAgICAgd2lkdGg6IDQ2JTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZScpIHtcclxuICAgICAgd2lkdGg6IDUwJTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgd2lkdGg6IDMwJTtcclxuICAgIHBhZGRpbmctbGVmdDogMzBweDtcclxuICB9XHJcblxyXG4gIC5oZWFkZXJfX3JpZ2h0IHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlJykge1xyXG4gICAgICB3aWR0aDogYXV0bztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5oZWFkZXJfX2JlbmVhdGgge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi10b3A6IC01cHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqICBIZWFkZXIgKHJpZ2h0KS5cclxuICovXHJcblxyXG4uaGVhZGVyX19yaWdodCxcclxuLnRvcC1tZW51X19tb2JpbGUge1xyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zZWNvbmRhcnk7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuXHJcbiAgc3ZnIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgd2lkdGg6IDE0cHg7XHJcbiAgICBoZWlnaHQ6IDE0cHg7XHJcbiAgICBtYXJnaW46IGF1dG8gYXV0byA3cHg7XHJcbiAgfVxyXG5cclxuICBhIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgdHJhbnNpdGlvbjogY29sb3IgMjUwbXMgZWFzZTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogIEhlYWRlciAocHJvZmlsZSBhbmQgbG9nb3V0IGJ1dHRvbiBzZXR0aW5ncykuXHJcbiAqL1xyXG5cclxuLmhlYWRlci1wcm9maWxlIHtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG59XHJcblxyXG4uaGVhZGVyX19yaWdodCAucHJvZmlsZSB7XHJcbiAgbWF4LXdpZHRoOiAxMDBweDtcclxuICBtYXJnaW46IDAgMTBweDtcclxuICBwYWRkaW5nOiAxNXB4IDdweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgJi5hY3RpdmUge1xyXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWJsdWUtNDAwO1xyXG4gICAgY29sb3I6ICRjb2xvci1ibHVlLTEwMDtcclxuICB9XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ2Rlc2t0b3AnKSB7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWJsdWUtNDAwO1xyXG4gICAgICBjb2xvcjogJGNvbG9yLWJsdWUtMTAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmhlYWRlcl9fcmlnaHQgLmxvZ291dC1idXR0b24ge1xyXG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XHJcbiAgb3BhY2l0eTogMC41O1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdkZXNrdG9wJykge1xyXG4gICAgICBjb2xvcjogJGNvbG9yLW9yYW5nZS0yMDA7XHJcbiAgICAgIG9wYWNpdHk6IDAuNztcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogIERhc2hib2FyZCAvIFF1ZXN0aW9ucyAvIFVwbG9hZC5cclxuICovXHJcblxyXG4uaGVhZGVyIC50b3AtbWVudSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgnZGVza3RvcCcpIHtcclxuICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgbGkge1xyXG4gICAgbWFyZ2luOiAwIDdweDtcclxuICAgIHBhZGRpbmc6IDE1cHggMTBweDtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjUwbXMgZWFzZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCdkZXNrdG9wJykge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLTQwMDtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLWJsdWUtMTAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmOjphZnRlciB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAxNXB4O1xyXG4gICAgd2lkdGg6IDFweDtcclxuICAgIGhlaWdodDogMzFweDtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLTQwMDtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gIH1cclxuXHJcbiAgLmFjdGl2ZSB7XHJcbiAgICBwYWRkaW5nOiAxNXB4IDdweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLTQwMDtcclxuICAgIGNvbG9yOiAkY29sb3ItYmx1ZS0xMDA7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqICBEYXNoYm9hcmQgLyBRdWVzdGlvbnMgLyBVcGxvYWQgKGZyb20gdGFibGV0IGxhbmRzY2FwZSBkb3duKS5cclxuICovXHJcblxyXG4udG9wLW1lbnVfX21vYmlsZSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ2Rlc2t0b3AnKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiAwO1xyXG4gIG1pbi1oZWlnaHQ6IDYwcHg7XHJcbiAgcGFkZGluZzogMTVweCAwIDEwcHg7XHJcbiAgei1pbmRleDogMjA7XHJcblxyXG4gIC50b3AtbWVudSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH1cclxuXHJcbiAgbGkge1xyXG4gICAgcGFkZGluZzogMCAzNXB4O1xyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBMYW5ndWFnZSBtZW51XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4ubGFuZ3VhZ2UtbWVudSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAuY3VycmVudCB7XHJcbiAgICBvcGFjaXR5OiAwLjY7XHJcbiAgfVxyXG59XHJcblxyXG4ubGFuZ3VhZ2UtbWVudV9faXRlbSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcblxyXG4gICYuaXMtYWN0aXZlIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuXHJcbiAgJi5pcy1ub3QtYWN0aXZlIHtcclxuICAgIGhlaWdodDogMjZweDtcclxuICAgIHBhZGRpbmc6IDAgNXB4O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJsYWNrLTEwMDtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgICB6LWluZGV4OiA5OTtcclxuICB9XHJcbn1cclxuXHJcbi5sYW5ndWFnZS1tZW51X19pdGVtLS1ubCB7XHJcbiAgJi5pcy1ub3QtYWN0aXZlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMjJweDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgfVxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIExvZ2luXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiBNYWluIHNldHRpbmdzLlxyXG4gKi9cclxuXHJcbi5sb2dpbiB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgcGFkZGluZzogNzVweCAyMHB4O1xyXG4gIH1cclxuXHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWF4LXdpZHRoOiA0NDBweDtcclxuICBtYXJnaW46IGF1dG87XHJcbiAgcGFkZGluZzogMTUwcHggMjBweDtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG59XHJcblxyXG4ubG9naW4gLm1lc3NhZ2Uge1xyXG4gIG1hcmdpbi10b3A6IC0zMHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgcGFkZGluZzogMDtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBTdWJoZWFkaW5nLlxyXG4gKi9cclxuXHJcbi5sb2dpbiAuc3ViaGVhZGluZy0xLWJsdWUge1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogSGVhZGluZy5cclxuICovXHJcblxyXG4ubG9naW4gLmhlYWRpbmctMS1ibHVlIHtcclxuICBtYXJnaW4tYm90dG9tOiA3MHB4O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEZvcm0uXHJcbiAqL1xyXG5cclxuLmxvZ2luLWZvcm0ge1xyXG4gIC5mb3JtLWl0ZW0ge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxuICB9XHJcbn1cclxuXHJcbi5tZXNzYWdlLmZvcmdvdC1wYXNzd29yZCB7XHJcbiAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG4gIG9wYWNpdHk6IDAuODtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBNZXNzYWdlc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqICBNZXNzYWdlIGxheW91dC5cclxuICovXHJcblxyXG4ubWVzc2FnZSB7XHJcbiAgQGluY2x1ZGUgZm9udCgxNXB4LCAzMnB4KTtcclxuICBtYXJnaW46IDIwcHggMDtcclxuICBwYWRkaW5nOiAyMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNlY29uZGFyeTtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAgRXJyb3IuXHJcbiAqL1xyXG5cclxuLm1lc3NhZ2UtLWVycm9yIHtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3ItcmVkLTEwMDtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqICBTdWNjZXNzLlxyXG4gKi9cclxuXHJcbi5tZXNzYWdlLS1zdWNjZXNzLFxyXG4ubWVzc2FnZS0taW5mbyB7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLWJsdWUtMTAwO1xyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29udGFjdFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqICBTcGVjaWZpYyBwYWdlIHJ1bGVzLlxyXG4gKi9cclxuXHJcbi5pcy1wcm9maWxlIC5icmVhZGNydW1icyB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAgUHJvZmlsZVxyXG4gKi9cclxuXHJcblxyXG4ucHJvZmlsZSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgcGFkZGluZzogNTBweCAwO1xyXG4gIH1cclxuXHJcbiAgcGFkZGluZzogNTBweCAwO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Vjb25kYXJ5O1xyXG59XHJcblxyXG4ucHJvZmlsZV9fdGl0bGVzIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBtYXJnaW46IDVweDtcclxuICB9XHJcblxyXG4gIG1hcmdpbi1ib3R0b206IDM1cHg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogIEJ1dHRvbnMgKHRvcCkuXHJcbiAqL1xyXG5cclxuLnByb2ZpbGVfX2J1dHRvbnMge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogODBweDtcclxuICAgIHJpZ2h0OiAzMHB4O1xyXG4gIH1cclxuXHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG59XHJcblxyXG4ucHJvZmlsZV9fYnV0dG9ucyAubGluayxcclxuLnNlY29uZC1zdGVwIC5lZGl0LWxpbmsge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXJnaW4tbGVmdDogMTVweDtcclxuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xyXG5cclxuICBzdmcge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgICB3aWR0aDogMjVweDtcclxuICAgICAgaGVpZ2h0OiAyNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICB9XHJcblxyXG4gIHNwYW4ge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBib3R0b206IC0xcHg7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDFweDtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjUwbXMgZWFzZTtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvci1vcmFuZ2UtMjAwO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyOjphZnRlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgfVxyXG59XHJcblxyXG4uc2Vjb25kLXN0ZXAgLmNvbnRlbnQtZm9ybV9faGVhZGluZyB7XHJcbiAgbWFyZ2luLXRvcDogMzBweDtcclxufVxyXG5cclxuLnNlY29uZC1zdGVwIC5jb250ZW50LWZvcm1fX2hlYWRpbmctLW1hcmdpbiB7XHJcbiAgbWFyZ2luLXRvcDogNTBweDtcclxuICBtYXJnaW4tYm90dG9tOiAzNXB4O1xyXG59XHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiAgRGV0YWlsc1xyXG4gKi9cclxuXHJcbi5wcm9maWxlX19kZXRhaWxzIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBwYWRkaW5nOiA1MHB4O1xyXG4gIH1cclxuXHJcbiAgbWFyZ2luLXRvcDogMjBweDtcclxuICBwYWRkaW5nOiA1MHB4IDUwcHggMjBweDtcclxuICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgYm94LXNoYWRvdzogMCAycHggMTBweCAzcHggI2YyZjZmOTtcclxufVxyXG5cclxuLnByb2ZpbGVfX2RldGFpbHMsXHJcbi5zdGF0aXN0aWNzIHtcclxuICAuY29sLXhzLTYge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxufVxyXG5cclxuLy9zYXNzLWxpbnQ6ZGlzYWJsZSBpZC1uYW1lLWZvcm1hdCBuby1pZHNcclxuI2RldGFpbHMge1xyXG4gIC5jb2wteHMtNiB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxufVxyXG4vL3Nhc3MtbGludDplbmFibGUgaWQtbmFtZS1mb3JtYXQgbm8taWRzXHJcblxyXG5cclxuLyoqXHJcbiAqICBQcm9maWxlIGhlYWRpbmcuXHJcbiAqL1xyXG5cclxuXHJcbi5wcm9maWxlX19oZWFkLS1zbWFsbCB7XHJcbiAgbWFyZ2luLXRvcDogMjBweDtcclxuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogIExhYmVsXHJcbiAqL1xyXG5cclxuLnByb2ZpbGVfX2xhYmVsIHtcclxuICBAaW5jbHVkZSBmb250KDE0cHgsIDE4cHgpO1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgY29sb3I6ICRjb2xvci1ncmV5LTIwMDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAgVmFsdWVcclxuICovXHJcblxyXG5cclxuLnByb2ZpbGVfX3ZhbHVlIHtcclxuICBAaW5jbHVkZSBmb250KDE1cHgsIDIwcHgpO1xyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogIFNwZWNpZmljIGNvbHVtbiBzZXR0aW5ncy5cclxuICovXHJcblxyXG5cclxuLnByb2ZpbGVfX2RldGFpbHMgLmNvbC14cy02IHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcblxyXG4gICYubmFtZSxcclxuICAmLmdlbmRlciB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqICBCb2FyZCBzZWN0aW9uXHJcbiAqL1xyXG5cclxuXHJcbi5wcm9maWxlX19ib2FyZCxcclxuLnByb2ZpbGVfX2Rhc2hib2FyZCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgbWFyZ2luLXRvcDogMTAwcHg7XHJcbiAgfVxyXG5cclxuICBtYXJnaW4tdG9wOiA1MHB4O1xyXG59XHJcblxyXG4ucHJvZmlsZV9fYm9hcmQgLmhlYWRpbmctMi1ibHVlIHtcclxuICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG59XHJcblxyXG4ucHJvZmlsZV9fYm9hcmQgLmRlZmF1bHRfX2VkaXRvciB7XHJcbiAgbWFyZ2luLXRvcDogMzBweDtcclxufVxyXG5cclxuLnByb2ZpbGVfX29yZ2FuaXNhdGlvbiB7XHJcbiAgcGFkZGluZzogNTBweDtcclxufVxyXG5cclxuLyoqXHJcbiAqICBDYWxjdWxhdGlvbi5cclxuICovXHJcblxyXG4ucHJvZmlsZV9fY3JlZGl0IHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBwYWRkaW5nOiA1MHB4IDUwcHggMTVweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcbn1cclxuXHJcbi5wcm9maWxlX19jYWxjdWxhdGlvbnMge1xyXG4gIG1hcmdpbi10b3A6IDMwcHg7XHJcbiAgcGFkZGluZzogMzBweDtcclxuICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci1ncmFkaWVudC1wdXJwbGU7XHJcbiAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgYm94LXNoYWRvdzogMCAycHggMjBweCAwIHJnYmEoMTM2LCA0NSwgMjMxLCAwLjMpO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqICBDYWxjdWxhdGlvbiBibG9jay5cclxuICovXHJcblxyXG5cclxuLnByb2ZpbGVfX2NhbGN1bGF0aW9uIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuICB9XHJcblxyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDE1MHB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAgQ2FsY3VsYXRpb24gYmxvY2sgc3Bhbi5cclxuICovXHJcblxyXG4ucHJvZmlsZV9fY2FsY3VsYXRpb24gc3BhbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luOiBhdXRvO1xyXG5cclxuICAmOm50aC1jaGlsZCgxKSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICY6bnRoLWNoaWxkKDIpIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmRvbnV0LWNoYXJ0IHRleHQge1xyXG4gIEBpbmNsdWRlIGZvbnQoMTNweCwgMjBweCk7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Vjb25kYXJ5O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogIENhbGN1bGF0aW9uIGJsb2NrIGhlYWQuXHJcbiAqL1xyXG5cclxuLnByb2ZpbGVfX2NhbGN1bGF0aW9uIC5oZWFkIHtcclxuICBAaW5jbHVkZSBmb250KDQwcHgsIDQ5cHgpO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XHJcbiAgZm9udC13ZWlnaHQ6IDgwMDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAgQ2FsY3VsYXRpb24gYmxvY2sgaWNvbi5cclxuICovXHJcblxyXG4ucHJvZmlsZV9fY2FsY3VsYXRpb24gc3ZnIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICB0b3A6IDA7XHJcbiAgICB3aWR0aDogNTBweDtcclxuICAgIGhlaWdodDogNTBweDtcclxuICB9XHJcblxyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDE1cHg7XHJcbiAgbGVmdDogLTEycHg7XHJcbiAgd2lkdGg6IDgwcHg7XHJcbiAgaGVpZ2h0OiA4MHB4O1xyXG4gIG9wYWNpdHk6IDAuMjtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAgQ2FsY3VsYXRpb24gYmxvY2sgZGVzY3JpcHRpb24uXHJcbiAqL1xyXG5cclxuLnByb2ZpbGVfX2NhbGN1bGF0aW9uIC5kZXNjcmlwdGlvbiB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG5cclxuICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiAxMDA7XHJcblxyXG4gIHNwYW4ge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgbWF4LXdpZHRoOiAxNDBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAgRGVsZXRlIHByb2ZpbGUgY29udGFpbmVyLlxyXG4gKi9cclxuXHJcbi5wcm9maWxlLWRlbGV0ZSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgcGFkZGluZzogNzVweCAwO1xyXG4gIH1cclxuXHJcbiAgcGFkZGluZzogMTUwcHggMDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAgRGVsZXRlIHByb2ZpbGUgY29udGFpbmVyLlxyXG4gKi9cclxuXHJcbi5wcm9maWxlLWRlbGV0ZV9fYnV0dG9ucyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIG1hcmdpbi10b3A6IDUwcHg7XHJcblxyXG4gIC5idXR0b24ge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgbWFyZ2luOiAxMHB4IDA7XHJcbiAgICB9XHJcblxyXG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMjBweCk7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJvZmlsZS1zdWJzY3JpcHRpb25fX2xlZnQge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtdXAnKSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJvZmlsZS1zdWJzY3JpcHRpb25fX3JpZ2h0IHtcclxuXHJcblxyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcblxyXG4gIHN2ZyB7XHJcbiAgICB3aWR0aDogNDBweDtcclxuICAgIGhlaWdodDogNDBweDtcclxuICAgIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgfVxyXG5cclxuICBzcGFuIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcbn1cclxuXHJcbi5zdGF0aXN0aWNzX19jaGFydCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHotaW5kZXg6IDEwO1xyXG59XHJcblxyXG4uc3RhdGlzdGljc19fdG90YWwge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcclxuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xyXG4gIH1cclxuXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIHotaW5kZXg6IDk7XHJcbn1cclxuXHJcbi5zdGF0aXN0aWNzX19hbW91bnQge1xyXG4gIEBpbmNsdWRlIGZvbnQoMTVweCwgMjBweCk7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uc3RhdGlzdGljc19fcmVtYWluaW5nIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBtYXJnaW46IDMwcHggMDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGZvbnQoNDBweCwgMzVweCk7XHJcbiAgbWFyZ2luLXRvcDogNTBweDtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JhZGllbnQtcHVycGxlO1xyXG4gIGJhY2tncm91bmQtY2xpcDogdGV4dDtcclxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcclxuICBmb250LXdlaWdodDogOTAwO1xyXG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xyXG59XHJcblxyXG4uc3RhdGlzdGljcy1jdGEge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1heC13aWR0aDogNjMwcHg7XHJcbiAgbWFyZ2luOiBhdXRvO1xyXG4gIHBhZGRpbmc6IDMwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci1vcmFuZ2UtMjAwO1xyXG4gIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIGZvbnQtd2VpZ2h0OiAxMDA7XHJcbiAgYm94LXNoYWRvdzogMCAycHggMjBweCAwIHJnYmEoMjE5LCA4NiwgNTYsIDAuNDkpO1xyXG5cclxuICAuY29sLXhzLTYge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICB3aWR0aDogNTAlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG5cclxuICAgICY6bnRoLWNoaWxkKDIpIHtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5oZWFkaW5nLTMtd2hpdGUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICB9XHJcblxyXG4gIHNwYW4ge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICB9XHJcblxyXG4gIGEge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgcGFkZGluZzogOHB4O1xyXG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAkY29sb3Itd2hpdGUtMTAwO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcclxuXHJcbiAgICAgIHNwYW4ge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIHN2ZyB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIG1hcmdpbjogYXV0bztcclxuICAgIH1cclxuXHJcbiAgICB3aWR0aDogMTVweDsgXHJcbiAgICBoZWlnaHQ6IDE1cHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4uc3RhdGlzdGljcy1pbmZvIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxuICB9XHJcblxyXG4gIGxpIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMTVweCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsaTpudGgtbGFzdC1jaGlsZCgxKSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuXHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLnByb2ZpbGUgLnRpbWUge1xyXG4gIG1hcmdpbi10b3A6IDUwcHg7XHJcbiAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxufVxyXG5cclxuLnRpbWVfX3RvdGFsIHtcclxuICBtYXJnaW4tcmlnaHQ6IDEwcHg7IFxyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1cHgpO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4udGltZV9faG91cnMge1xyXG4gIEBpbmNsdWRlIGZvbnQoMjVweCwgNDBweCk7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcclxuICBmb250LXdlaWdodDogOTAwO1xyXG59XHJcblxyXG4udGltZS1yZWdpc3RyYXRpb24ge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXJnaW4tdG9wOiAzMHB4O1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxcHg7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIG9wYWNpdHk6IDAuMTtcclxuICB9XHJcbn1cclxuXHJcbi50aW1lLXJlZ2lzdHJhdGlvbl9fc2luZ2xlIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBwYWRkaW5nOiAzMHB4IDAgMDtcclxuICB9XHJcblxyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgcGFkZGluZzogMzBweCAwO1xyXG5cclxuICAuY29sLXhzLTYge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICB9XHJcblxyXG4gIC50aXRsZSB7XHJcbiAgICBAaW5jbHVkZSBmb250KDE0cHgsIDE2cHgpO1xyXG4gICAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICAgIG9wYWNpdHk6IDAuNjtcclxuICB9XHJcblxyXG4gIHNwYW4ge1xyXG4gICAgQGluY2x1ZGUgZm9udCgxNXB4LCAyMHB4KTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgfVxyXG5cclxuICAubG9jYXRpb24ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuXHJcbiAgLmxvY2F0aW9uIHN2ZyB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDRweDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTRweDtcclxuICAgIGhlaWdodDogMTRweDtcclxuICAgIG1hcmdpbi10b3A6IDdweDtcclxuICAgIG1hcmdpbi1yaWdodDogN3B4O1xyXG4gICAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICB9XHJcblxyXG4gIC5sb2NhdGlvbiBzcGFuIHtcclxuICAgIHBhZGRpbmctbGVmdDogMjJweDtcclxuICB9XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDFweDtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLTQwMDtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgb3BhY2l0eTogMC4xO1xyXG4gIH1cclxuXHJcbiAgJjpudGgtbGFzdC1jaGlsZCgxKSB7XHJcbiAgICBwYWRkaW5nOiAzMHB4IDAgMTBweDtcclxuXHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ud2Vya3phYW1oZWlkIHtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgb3JkZXI6IDM7XHJcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLnVzZXJncm91cCxcclxuLmhvdXJzIHtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogIEFkZGl0aW9uYWwgcnVsZXMuXHJcbiAqL1xyXG5cclxuLmRlZmF1bHRfX2VkaXRvciArIC5oZWFkaW5nLTMtYmx1ZSB7XHJcbiAgbWFyZ2luLXRvcDogMzVweDtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBRdWVzdGlvbiBmaWx0ZXJzLlxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnF1ZXN0aW9uLWZpbHRlcnNfX2Zvcm0ge1xyXG4gIG1hcmdpbjogNTBweCAwIDMwcHg7XHJcblxyXG4gIHN0cm9uZyB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIG1hcmdpbi1yaWdodDogNjBweDtcclxuICAgIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcblxyXG4gICAgc3ZnIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB0b3A6IDJweDtcclxuICAgICAgd2lkdGg6IDE1cHg7XHJcbiAgICAgIGhlaWdodDogMTVweDtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnNlbGVjdC13cmFwIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMjBweCk7XHJcbiAgICB9XHJcblxyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luLXRvcDogMnB4O1xyXG5cclxuICAgICYuaXMtZGF0ZSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAzNXB4O1xyXG5cclxuICAgICAgc2VsZWN0IHtcclxuICAgICAgICBtYXgtd2lkdGg6IDExMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5pcy1zdWJqZWN0cyB7XHJcbiAgICAgIHNlbGVjdCB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxNDdweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdCB7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDI1cHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNlY29uZGFyeTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgIH1cclxuXHJcbiAgICBzdmcge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIHRvcDogMnB4O1xyXG4gICAgICByaWdodDogMjBweDtcclxuICAgICAgd2lkdGg6IDE0cHg7XHJcbiAgICAgIGhlaWdodDogMTRweDtcclxuICAgICAgY29sb3I6ICMwNDJlNGI7XHJcbiAgICAgIG9wYWNpdHk6IDAuODtcclxuICAgICAgei1pbmRleDogLTE7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ucXVlc3Rpb24tZmlsdGVyc19fY29udGFpbmVyIHtcclxuICAubm8tcmVzdWx0cyB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbjogNTBweCAwIDUwcHggMzBweDtcclxuICB9XHJcblxyXG4gIC5xdWVzdGlvbi1pdGVtIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbiAgfVxyXG5cclxuICAuZjMtd2lkZ2V0LXBhZ2luYXRvciB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG5cclxuICAgIGxpIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAubmV4dCB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgICBhIHtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLW9yYW5nZS0yMDA7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcblxyXG4gICAgICAgIHN2ZyB7XHJcbiAgICAgICAgICBwYXRoLFxyXG4gICAgICAgICAgcmVjdCB7XHJcbiAgICAgICAgICAgIGZpbGw6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICB3aWR0aDogMzBweDtcclxuICAgICAgICAgIGhlaWdodDogMzBweDtcclxuICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgICAgIHBhZGRpbmc6IDdweCA2cHggNXB4IDdweDtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZTJjO1xyXG4gICAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ucXVlc3Rpb24tZmlsdGVyc19faW5mb3JtYXRpb24ge1xyXG4gIC50ZXh0LWltYWdlX19pbWFnZSB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgc3ZnIHtcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICAgIG1hcmdpbjogOTBweCAwIDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG1hcmdpbjogOTBweCAwIDAgNTVweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgTGF0ZXN0IHF1ZXN0aW9ucy5cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5xdWVzdGlvbi1sYXRlc3Qge1xyXG4gIG1hcmdpbi1ib3R0b206IDEzMHB4O1xyXG59XHJcblxyXG4ucXVlc3Rpb24tbGF0ZXN0X190aXRsZSB7XHJcbiAgbWFyZ2luOiA2MHB4IDAgNTBweDtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBRdWVzdGlvbiBzaW5nbGUuXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4ucXVlc3Rpb24tc2luZ2xlX19oZWFkIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5xdWVzdGlvbi1zaW5nbGVfX2RhdGUge1xyXG4gIHN2ZyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0b3A6IDJweDtcclxuICAgIHdpZHRoOiAxNHB4O1xyXG4gICAgaGVpZ2h0OiAxNHB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gIH1cclxuXHJcbiAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICBvcGFjaXR5OiAwLjY7XHJcbn1cclxuXHJcbi5xdWVzdGlvbi1zaW5nbGVfX2ljb24ge1xyXG4gIEBtZWRpYShtYXgtd2lkdGg6IDY4MHB4KSB7XHJcbiAgICB3aWR0aDogMzBweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGZvbnQoMjVweCwgMzBweCk7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogLTEwcHg7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IC0xMDVweDtcclxuICB3aWR0aDogNTBweDtcclxuICBoZWlnaHQ6IDUwcHg7XHJcbiAgcGFkZGluZy10b3A6IDExcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogMzNweDtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JhZGllbnQtb3JhbmdlO1xyXG4gIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XHJcbiAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5xdWVzdGlvbi1zaW5nbGVfX2F1dGhvciB7XHJcbiAgQGluY2x1ZGUgZm9udCgxNHB4LCAyMHB4KTtcclxuICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gIHBhZGRpbmc6IDIwcHggMDtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yLXB1cnBsZS0yMDA7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1wdXJwbGUtMjAwO1xyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgb3BhY2l0eTogMC42O1xyXG5cclxuICBzdmcge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgdG9wOiAxcHg7XHJcbiAgICB3aWR0aDogMTRweDtcclxuICAgIGhlaWdodDogMTRweDtcclxuICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuXHJcbiAgICAmLmZhLWJ1aWxkaW5nIHtcclxuICAgICAgd2lkdGg6IDEycHg7XHJcbiAgICAgIGhlaWdodDogMTJweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5xdWVzdGlvbi1zaW5nbGVfX2F1dGhvci1uYW1lIHtcclxuICAgIG1hcmdpbi1yaWdodDogNTBweDtcclxuICB9XHJcbn1cclxuXHJcbi5xdWVzdGlvbi1zaW5nbGVfX3RpdGxlIHtcclxuICBtYXJnaW46IDUwcHggMDtcclxufVxyXG5cclxuLnF1ZXN0aW9uLXNpbmdsZV9fZWRpdG9yIHtcclxuICBwYWRkaW5nLWJvdHRvbTogNDBweDtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBRdWVzdGlvbiBmaXhlZCBidXR0b25cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiAgTWFpbiBlbGVtZW50LlxyXG4gKi9cclxuXHJcbi5xdWVzdGlvbi1maXhlZC1idXR0b24td3JhcHBlciB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogY2FsYyg1MCUgLSA2MHB4KTtcclxuICByaWdodDogMDtcclxuICB6LWluZGV4OiA5OTtcclxuXHJcbiAgJi5pcy1vcGVuIHtcclxuICAgIC5xZmJfX29wZW4ge1xyXG4gICAgICByaWdodDogLTEwMHB4O1xyXG4gICAgICB0cmFuc2l0aW9uOiBwYWRkaW5nLXJpZ2h0IDIwMG1zLCByaWdodCAzMDBtcztcclxuICAgIH1cclxuXHJcbiAgICAucXVlc3Rpb24tZml4ZWQtYnV0dG9uIHtcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgIHRyYW5zaXRpb246IHJpZ2h0IDMwMG1zIDMwMG1zO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnF1ZXN0aW9uLWZpeGVkLWJ1dHRvbiB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICByaWdodDogLTI1MHB4O1xyXG4gIHdpZHRoOiAyNDBweDtcclxuICBoZWlnaHQ6IGF1dG87XHJcbiAgcGFkZGluZzogMTVweDtcclxuICB0cmFuc2l0aW9uOiByaWdodCAzMDBtcztcclxuICBib3JkZXItcmFkaXVzOiA1cHggMCAwIDVweDtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZS0xMDA7XHJcbiAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICBib3gtc2hhZG93OiAwIDJweCA2cHggMCByZ2JhKDMsIDU5LCA5OCwgMC4xOSk7XHJcbiAgei1pbmRleDogOTk7XHJcblxyXG4gIHN2ZyB7XHJcbiAgICB3aWR0aDogMTRweDtcclxuICAgIGhlaWdodDogMTRweDtcclxuICB9XHJcbn1cclxuXHJcbi5xZmJfX29wZW4ge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdkZXNrdG9wJykge1xyXG4gICAgcGFkZGluZzogMjBweDtcclxuICB9XHJcblxyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgcGFkZGluZzogMTBweDtcclxuICB0cmFuc2l0aW9uOiBwYWRkaW5nLXJpZ2h0IDIwMG1zLCByaWdodCAzMDBtcyAzMDBtcztcclxuICBiYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZS0xMDA7XHJcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSgzLCA1OSwgOTgsIDAuMTkpO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgc3ZnIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdkZXNrdG9wJykge1xyXG4gICAgICB3aWR0aDogMjlweDtcclxuICAgICAgaGVpZ2h0OiAyNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIHdpZHRoOiAzNHB4O1xyXG4gICAgaGVpZ2h0OiAzMHB4O1xyXG4gIH1cclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA1MHB4O1xyXG4gIH1cclxufVxyXG5cclxuLnFmYl9fY2xvc2Uge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IC0yMHB4O1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgc3ZnIHtcclxuICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgaGVpZ2h0OiAyMHB4O1xyXG4gICAgY29sb3I6ICRjb2xvci1ibHVlLTMwMDtcclxuICB9XHJcblxyXG4gICY6aG92ZXIgc3ZnIHtcclxuICAgIGNvbG9yOiAkY29sb3ItZ3JleS0zMDA7XHJcbiAgfVxyXG59XHJcblxyXG4ucWZiX19pY29uIHtcclxuXHJcbiAgc3ZnIHtcclxuICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgaGVpZ2h0OiAyNXB4O1xyXG4gIH1cclxufVxyXG5cclxuLnFmYl9fdGV4dCB7XHJcbiAgcGFkZGluZzogMjBweCA1MHB4IDQwcHggMDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNlY29uZGFyeTtcclxufVxyXG5cclxuLnFmYl9fbGluayB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDMwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogMCAwIDVweCA1cHg7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLW9yYW5nZS0yMDA7XHJcbiAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdkZXNrdG9wJykge1xyXG4gICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJGNvbG9yLW9yYW5nZS0yMDAsIDUlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgUXVlc3Rpb24gZm9ybVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnF1ZXN0aW9uLWZvcm1fX2luZm9ybWF0aW9uIHtcclxuICBtYXJnaW46IDIwcHggMCAwcHg7XHJcblxyXG4gIHN0cm9uZyB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgfVxyXG5cclxuICAucHJvZmlsZV9fY2FsY3VsYXRpb25zIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1hcmdpbi10b3A6IDUwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgd2lkdGg6IDE5NXB4O1xyXG5cclxuICAgIC5wcm9maWxlX19jYWxjdWxhdGlvbiB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogNDVweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5oZWFkIHtcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDE4cHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdmcge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgICAgbGVmdDogMTBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcbn1cclxuXHJcbi5xdWVzdGlvbi1mb3JtX19pbmZvcm1hdGlvbi10ZXh0IHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi10b3A6IDMwcHg7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgcGFkZGluZy1yaWdodDogNTBweDtcclxuICB9XHJcblxyXG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxOTVweCk7XHJcbiAgcGFkZGluZy1yaWdodDogMTAwcHg7XHJcblxyXG4gIHN0cm9uZyB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIH1cclxuXHJcbiAgcCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuLnF1ZXN0aW9uLWZvcm0ge1xyXG4gIG1hcmdpbi1ib3R0b206IDEzMHB4O1xyXG5cclxuICAuZm9ybSB7XHJcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gIH1cclxuXHJcbiAgdGV4dGFyZWEsXHJcbiAgLnNlbGVjdCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuZm9ybS1pdGVtIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5mb3JtX19jaGVja2JveC0tc21hbGwgaW5wdXQge1xyXG4gICAgb3BhY2l0eTogMDtcclxuICB9XHJcblxyXG4gIC5mb3JtX19jaGVja2JveC0tc21hbGwgbGFiZWwge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gNjE1cHgpO1xyXG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcbiAgICBmb250LXdlaWdodDogaW5oZXJpdDtcclxuICB9XHJcblxyXG4gIC5mb3JtX19jaGVja2JveC1pbmZvcm1hdGlvbiB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgIH1cclxuXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICByaWdodDogLTMwcHg7XHJcbiAgICB3aWR0aDogNjAwcHg7XHJcbiAgfVxyXG5cclxuICAucmVnaXN0ZXItc3VibWl0IHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgbWFyZ2luOiAzMHB4IDAgMDtcclxuICB9XHJcblxyXG4gIC5mb3JtX19jaGVja2JveC1pbmZvcm1hdGlvbjo6YmVmb3JlIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgICAgdG9wOiAtMnB4O1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgbGVmdDogMjJweDtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwIDcuNXB4IDVweDtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkY29sb3ItYmx1ZS0xMDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBRdWVzdGlvbiB0b2dnbGUuXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4ucXVlc3Rpb24tdG9nZ2xlIHtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgYm94LXNoYWRvdzogMCAycHggMTBweCAzcHggI2YyZjZmOTtcclxuICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBib3gtc2hhZG93OiAwIDJweCAxMHB4IDNweCByZ2JhKDQsIDQ2LCA3NSwgMC4yMSk7XHJcbiAgfVxyXG5cclxuICAmLmlzLWFjdGl2ZSB7XHJcbiAgICAucXVlc3Rpb24tdG9nZ2xlX190b2dnbGUgc3ZnIHtcclxuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmpzLWhpZGUge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi5xdWVzdGlvbi10b2dnbGVfX2ljb24ge1xyXG4gIHdpZHRoOiA2MHB4O1xyXG59XHJcblxyXG4ucXVlc3Rpb24tdG9nZ2xlX19oZWFkIHtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIHBhZGRpbmc6IDIwcHggMCAyMHB4IDgwcHg7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4ucXVlc3Rpb24tdG9nZ2xlX19xdWVzdGlvbiB7XHJcbiAgQGluY2x1ZGUgZm9udCgxNHB4LCAyMHB4KTtcclxuICB3aWR0aDogY2FsYygxMDAlIC0gODBweCk7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICBvcGFjaXR5OiAwLjg7XHJcbn1cclxuXHJcbi5xdWVzdGlvbi10b2dnbGVfX3RvZ2dsZSB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICBzdmcge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMjhweDtcclxuICAgIGhlaWdodDogMjhweDtcclxuICAgIG1hcmdpbjogMCAyNnB4O1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gICAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICAgIG9wYWNpdHk6IDAuODtcclxuICAgIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xyXG4gIH1cclxufVxyXG5cclxuLnF1ZXN0aW9uLXRvZ2dsZV9fYm9keSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLnF1ZXN0aW9uLXRvZ2dsZV9fbWV0YSB7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgbWFyZ2luOiAyNXB4IDAgMCAwO1xyXG4gIHBhZGRpbmc6IDAgODBweDtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gIG9wYWNpdHk6IDAuODtcclxufVxyXG5cclxuLnF1ZXN0aW9uLXRvZ2dsZV9fc3ViamVjdCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxufVxyXG5cclxuLnF1ZXN0aW9uLXRvZ2dsZV9fdXNlciB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuXHJcbiAgc3ZnIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRvcDogMnB4O1xyXG4gICAgd2lkdGg6IDE0cHg7XHJcbiAgICBoZWlnaHQ6IDE0cHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4ucXVlc3Rpb24tdG9nZ2xlX19vcmdhbmlzYXRpb24ge1xyXG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcblxyXG4gIHN2ZyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0b3A6IDJweDtcclxuICAgIHdpZHRoOiAxNHB4O1xyXG4gICAgaGVpZ2h0OiAxNHB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLnF1ZXN0aW9uLXRvZ2dsZV9fZGF0ZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuXHJcbiAgc3ZnIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRvcDogMnB4O1xyXG4gICAgd2lkdGg6IDE0cHg7XHJcbiAgICBoZWlnaHQ6IDE0cHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4uZG9jdW1lbnQtaXRlbV9fYW5zd2VyIHtcclxuICBAaW5jbHVkZSBmb250KDE1cHgsIDIwcHgpO1xyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zZWNvbmRhcnk7XHJcbiAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICBvcGFjaXR5OiAwLjg7XHJcbiAgcGFkZGluZzogMCA4MHB4IDE1cHggODBweDtcclxuXHJcbiAgICBwIHtcclxuICAgICAgQGluY2x1ZGUgZm9udCgxNXB4LCAyMHB4KTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gICAgfVxyXG5cclxuICAgIGgxIHtcclxuICAgICAgQGluY2x1ZGUgZm9udCgzMHB4LCAzNXB4KTtcclxuICAgICAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gICAgfVxyXG5cclxuICAgIGgyIHtcclxuICAgICAgQGluY2x1ZGUgZm9udCgyNXB4LCAzMHB4KTtcclxuICAgICAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gICAgfVxyXG5cclxuICAgIGgzIHtcclxuICAgICAgQGluY2x1ZGUgZm9udCgxNXB4LCAyMHB4KTtcclxuICAgICAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICAgIH1cclxuXHJcbiAgICB1bCxcclxuICAgIG9sIHtcclxuICAgICAgbGkge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcclxuICAgICAgICBjb3VudGVyLWluY3JlbWVudDogbXktYXdlc29tZS1jb3VudGVyO1xyXG5cclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgdG9wOiAycHg7XHJcbiAgICAgICAgICBsZWZ0OiAtMjVweDtcclxuICAgICAgICAgIHdpZHRoOiAxOHB4O1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWdyYWRpZW50LXB1cnBsZTtcclxuICAgICAgICAgIGJhY2tncm91bmQtY2xpcDogdGV4dDtcclxuICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgY29udGVudDogY291bnRlcihteS1hd2Vzb21lLWNvdW50ZXIpO1xyXG4gICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBtYXJnaW46IDAgMCAxZW0gNDBweDtcclxuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgY291bnRlci1yZXNldDogbXktYXdlc29tZS1jb3VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIHVsIHtcclxuICAgICAgbWFyZ2luOiAwIDAgMWVtIDQwcHg7XHJcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuXHJcbiAgICAgIGxpIHtcclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgdG9wOiA2cHg7XHJcbiAgICAgICAgICBsZWZ0OiAtMTZweDtcclxuICAgICAgICAgIHdpZHRoOiA3cHg7XHJcbiAgICAgICAgICBoZWlnaHQ6IDdweDtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgIG9wYWNpdHk6IDAuODtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBSZWdpc3RyYXRpb24gUHJvZ3Jlc3NcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiAgTWFpbiBlbGVtZW50LlxyXG4gKi9cclxuXHJcbi5yZWdpc3RyYXRpb24tcHJvZ3Jlc3Mge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXJnaW4tdG9wOiA1MHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDE0MHB4O1xyXG5cclxuICAmOjphZnRlciB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIGxlZnQ6IDgwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAxMHB4O1xyXG4gICAgcmlnaHQ6IDc1cHg7XHJcbiAgICBsZWZ0OiAzNXB4O1xyXG4gICAgaGVpZ2h0OiAycHg7XHJcbiAgICBtYXJnaW46IGF1dG87XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDMwMHB4O1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWdyZXktMjAwO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICB6LWluZGV4OiAtMTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogIFNpbmdsZSBzdGVwLlxyXG4gKi9cclxuXHJcbi5yZWdpc3RyYXRpb24tcHJvZ3Jlc3NfX3N0ZXAge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAzKTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGZvbnQoMTJweCwgMzBweCk7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblxyXG4gIHNwYW4ge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gIH1cclxuXHJcbiAgJi5hY3RpdmUge1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIG9wYWNpdHk6IDE7XHJcblxyXG4gICAgc3BhbiB7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWJsdWUtNDAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgd2lkdGg6IDIwcHg7XHJcbiAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICBtYXJnaW46IGF1dG87XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItZ3JleS0zMDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlLTEwMDtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gIH1cclxufVxyXG5cclxuLmZpcnN0LXN0ZXAgLnJlZ2lzdHJhdGlvbi1wcm9ncmVzc19fc3RlcCB7XHJcblxyXG4gICY6bnRoLWNoaWxkKDEpIHtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG5cclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIHBhZGRpbmc6IDNweDtcclxuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJsdWUtNDAwO1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZS00MDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmOm50aC1jaGlsZCgyKSxcclxuICAmOm50aC1jaGlsZCgzKSB7XHJcbiAgICBzcGFuIHtcclxuICAgICAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgb3BhY2l0eTogMC42O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi5zZWNvbmQtc3RlcCAucmVnaXN0cmF0aW9uLXByb2dyZXNzX19zdGVwIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAmOm50aC1jaGlsZCgxKSxcclxuICAgICY6bnRoLWNoaWxkKDMpIHtcclxuICAgICAgc3BhbiB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci1ibHVlLTQwMDtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmOm50aC1jaGlsZCgxKSxcclxuICAmOm50aC1jaGlsZCgyKSB7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG5cclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLTQwMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICY6bnRoLWNoaWxkKDEpIHtcclxuICAgIGNvbG9yOiAkY29sb3ItZ3JleS0yMDA7XHJcblxyXG4gICAgc3BhbiB7XHJcbiAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB3aWR0aDogMjBweDtcclxuICAgICAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ibHVlLTQwMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgYm9yZGVyOiAzcHggc29saWQgJGNvbG9yLXdoaXRlLTEwMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5maXJzdC1zdGVwIC5kZWZhdWx0X19lZGl0b3Ige1xyXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbn1cclxuXHJcbi50aGlyZC1zdGVwIC5yZWdpc3RyYXRpb24tcHJvZ3Jlc3Mge1xyXG4gIG1hcmdpbi1ib3R0b206IDExMHB4O1xyXG59XHJcblxyXG4udGhpcmQtc3RlcCAucmVnaXN0cmF0aW9uLXByb2dyZXNzX19zdGVwIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAmOm50aC1jaGlsZCgxKSxcclxuICAgICY6bnRoLWNoaWxkKDIpIHtcclxuICAgICAgc3BhbiB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICY6bnRoLWNoaWxkKDEpLFxyXG4gICY6bnRoLWNoaWxkKDIpIHtcclxuICAgIGNvbG9yOiAkY29sb3ItZ3JleS0yMDA7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG5cclxuICAgIHNwYW4ge1xyXG4gICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xyXG4gICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYmx1ZS00MDA7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcclxuICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIGJvcmRlcjogM3B4IHNvbGlkICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLTQwMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubGFzdCB7XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG5cclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLTQwMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgU2VhcmNoIHJlc3VsdHMuXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4uc2VhcmNoLXJlc3VsdHMge1xyXG4gIG1hcmdpbi1ib3R0b206IDEzMHB4O1xyXG5cclxuICAuZG9jdW1lbnQtaXRlbSB7XHJcbiAgICAmOm50aC1sYXN0LWNoaWxkKDEpIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zZWFyY2gtcmVzdWx0c19fc2VjdGlvbnMge1xyXG4gIG1hcmdpbi1ib3R0b206IDEwMHB4O1xyXG59XHJcblxyXG4uc2VhcmNoLXJlc3VsdHNfX3NlY3Rpb24ge1xyXG4gIC5xdWVzdGlvbi1pdGVtIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4uc2VhcmNoLXJlc3VsdHNfX3NlY3Rpb24tdGl0bGUge1xyXG4gIG1hcmdpbjogNTBweCAwIDUwcHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtcmVzdWx0c19fYnJlYWRjcnVtYnMge1xyXG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgY29sb3I6ICRjb2xvci1ncmV5LTIwMDtcclxuXHJcbiAgc3ZnIHtcclxuICAgIHdpZHRoOiA3cHg7XHJcbiAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICBtYXJnaW46IDAgMjBweDtcclxuICB9XHJcbn1cclxuXHJcbi5zZWFyY2gtcmVzdWx0c19faGVhZCAuaGVhZGluZy0xLWJsdWUge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLnNlYXJjaC1yZXN1bHRzX19zb3J0IHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIHRvcDogMTBweDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNlY29uZGFyeTtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG5cclxuICBidXR0b24ge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xyXG4gICAgY29sb3I6ICRjb2xvci1vcmFuZ2UtMjAwO1xyXG4gIH1cclxuXHJcbiAgc3ZnIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRvcDogMnB4O1xyXG4gICAgd2lkdGg6IDExcHg7XHJcbiAgICBoZWlnaHQ6IDE0cHg7XHJcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gICAgY29sb3I6ICRjb2xvci1vcmFuZ2UtMjAwO1xyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBTZWFyY2hcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiAgTWFpbiBlbGVtZW50LlxyXG4gKi9cclxuXHJcbi5oZWFkZXJfX3NlYXJjaCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Vjb25kYXJ5O1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxufVxyXG5cclxuLnNlYXJjaC1mb3JtX19pbnB1dCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcblxyXG4gIGlucHV0IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgcGFkZGluZzogMTBweCAzNXB4IDEwcHggMjBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcblxyXG4gICAgJjo6cGxhY2Vob2xkZXIge1xyXG4gICAgICBjb2xvcjogJGNvbG9yLWdyZXktMjAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnNlYXJjaC1mb3JtX19leHBhbmQge1xyXG5cclxuICBzdmcge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAzMnB4O1xyXG4gICAgcmlnaHQ6IDE1cHg7XHJcbiAgICB3aWR0aDogMTRweDtcclxuICAgIGhlaWdodDogMTRweDtcclxuICAgIGNvbG9yOiAkY29sb3ItZ3JleS0yMDA7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgU3VibWVudVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqICBTdWJtZW51LlxyXG4gKi9cclxuXHJcbi5zdWJtZW51IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlLTEwMDtcclxuICBjb2xvcjogJGNvbG9yLWJsdWUtNDAwO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Vjb25kYXJ5O1xyXG4gIGJveC1zaGFkb3c6IDAgMTNweCAxNXB4IDAgcmdiYSg0LCA0NiwgNzUsIDAuMDQpO1xyXG5cclxuICAmLmlzLWZpeGVkIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHotaW5kZXg6IDk5O1xyXG4gIH1cclxuXHJcbiAgLnN1Ym1lbnUtbGVmdF9fdXNlciB7XHJcbiAgICBwYWRkaW5nOiAyMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLnN1Ym1lbnUtbGVmdF9fdXNlciB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcGFkZGluZzogMjBweCAwO1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci1wdXJwbGUtMjAwO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcblxyXG4gIHN2ZyB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICB3aWR0aDogMTVweDtcclxuICAgIGhlaWdodDogMTVweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDI1MG1zIGVhc2U7XHJcblxyXG4gICAgJi5pcy1hY3RpdmUge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zdWJtZW51LWxlZnQge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcbi5zdWJtZW51LWxlZnRfX2xpbmtzIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAtMTAwJTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHotaW5kZXg6IC0xO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IDA7XHJcbiAgfVxyXG5cclxuICBwYWRkaW5nOiAxOHB4IDMwcHg7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2U7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlLTEwMDtcclxuICB6LWluZGV4OiA5OTtcclxuXHJcbiAgYSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIHBhZGRpbmc6IDIwcHggMDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIG1hcmdpbi1yaWdodDogMzBweDtcclxuICAgIHRyYW5zaXRpb246IGNvbG9yIDI1MG1zIGVhc2U7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCdkZXNrdG9wJykge1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3Itb3JhbmdlLTIwMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3ZnIHtcclxuICAgIHdpZHRoOiAxNHB4O1xyXG4gICAgaGVpZ2h0OiAxNHB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA3cHg7XHJcbiAgfVxyXG5cclxuICAmLmlzLWFjdGl2ZSB7XHJcbiAgICB0b3A6IDEwMCU7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgei1pbmRleDogOTk7XHJcbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcclxuICB9XHJcbn1cclxuXHJcbi5zdWJtZW51LXJpZ2h0IHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIHBhZGRpbmc6IDIwcHggMzBweDtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIG9wYWNpdHk6IDAuNTtcclxuXHJcbiAgc3ZnIHtcclxuICAgIHdpZHRoOiAxNHB4O1xyXG4gICAgaGVpZ2h0OiAxNHB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA3cHg7XHJcbiAgfVxyXG59XHJcblxyXG4uc3VibWVudS1yaWdodF9fbW9iaWxlIHtcclxuICBAaW5jbHVkZSBtZWRpYSgnZGVza3RvcCcpIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHBhZGRpbmc6IDIwcHggMDtcclxuICBvcGFjaXR5OiAwLjU7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgVGV4dC9pbWFnZVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqICBNYWluIGVsZW1lbnQuXHJcbiAqL1xyXG5cclxuLnRleHQtaW1hZ2VfX3dyYXBwZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBhbmltYXRpb246IHNsaWRlRG93biAxMDAwbXMgZWFzZTtcclxufVxyXG5cclxuLnRleHQtaW1hZ2Uge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIG1hcmdpbjogYXV0byBhdXRvIDc1cHg7XHJcbiAgfVxyXG5cclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDgyMHB4O1xyXG4gIG1hcmdpbjogYXV0byBhdXRvIDE1MHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JhZGllbnQtcHVycGxlO1xyXG4gIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIC8vc2Fzcy1saW50OmRpc2FibGUgbm8tY29sb3ItbGl0ZXJhbHNcclxuICBib3gtc2hhZG93OiAwIDJweCAyMHB4IDAgcmdiYSgxMzYsIDQ1LCAyMzEsIDAuMyk7XHJcbiAgLy9zYXNzLWxpbnQ6ZW5hYmxlIG5vLWNvbG9yLWxpdGVyYWxzXHJcblxyXG4gICYub3JkZXItcmlnaHQgLmZsZXgge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xyXG4gIH1cclxufVxyXG5cclxuLnRleHQtaW1hZ2UuaGFzLXN2ZyB7XHJcblxyXG4gIC50ZXh0LWltYWdlX19pbWFnZSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBwYWRkaW5nLXRvcDogMzVweDtcclxuICAgIH1cclxuXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgd2lkdGg6IDIzJTtcclxuICB9XHJcblxyXG4gIC50ZXh0LWltYWdlX19jb250ZW50IHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgd2lkdGg6IDc3JTtcclxuICAgIHBhZGRpbmc6IDYwcHggMzBweDtcclxuICB9XHJcblxyXG4gIC5kZWZhdWx0X190ZXh0IHtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwLjNweDtcclxuICAgIG9wYWNpdHk6IDAuODtcclxuICB9XHJcblxyXG4gIHN2ZyB7XHJcbiAgICBtYXJnaW4tbGVmdDogMjVweDtcclxuICB9XHJcbn1cclxuXHJcbi50ZXh0LWltYWdlX19pbWFnZSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDMwJTtcclxuICBoZWlnaHQ6IGF1dG87XHJcblxyXG4gIGltZyB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICAgIGhlaWdodDogMjAwcHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xyXG4gICAgfVxyXG5cclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4IDAgMCA1cHg7XHJcbiAgfVxyXG5cclxuICBzdmcge1xyXG4gICAgd2lkdGg6IDcwcHg7XHJcbiAgICBoZWlnaHQ6IDcwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4udGV4dC1pbWFnZV9fY29udGVudCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgNXB4IDVweDtcclxuICB9XHJcblxyXG4gIHdpZHRoOiA3MCU7XHJcbiAgcGFkZGluZzogNTBweCA2MHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDAgNXB4IDVweCAwO1xyXG59XHJcblxyXG4udGV4dC1pbWFnZV9fY29udGVudCAuZGVmYXVsdF9fdGV4dCB7XHJcbiAgbWFyZ2luLXRvcDogMTVweDtcclxuICBmb250LXdlaWdodDogMTAwO1xyXG5cclxuICAuYnV0dG9uLXRyYW5zcGFyYW50IHtcclxuICAgIG1hcmdpbi10b3A6IDMwcHg7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4uZGVmYXVsdF9fd3JhcHBlciArIC50ZXh0LWltYWdlX193cmFwcGVyIHtcclxuICBtYXJnaW4tdG9wOiA4NXB4O1xyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEFuaW1hdGlvbnMuXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5Aa2V5ZnJhbWVzIHN3aXBlRmFkZVJpZ2h0IHtcclxuICAwJSB7XHJcbiAgICBsZWZ0OiA1cHg7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxuXHJcbiAgMTAwJSB7XHJcbiAgICBsZWZ0OiAyMHB4O1xyXG4gICAgb3BhY2l0eTogMDtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgc3dpcGVGYWRlTGVmdCB7XHJcbiAgMCUge1xyXG4gICAgcmlnaHQ6IDVweDtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG5cclxuICAxMDAlIHtcclxuICAgIHJpZ2h0OiAyMHB4O1xyXG4gICAgb3BhY2l0eTogMDtcclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29sb3JcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBDb2xvciB1dGlsaXR5IGNsYXNzZXMuXHJcbiAqL1xyXG5cclxuLy8gQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgY29sb3IgYW5kIGJhY2tncm91bmQgY29sb3IgdXRpbGl0eSBjbGFzc2VzIGJhc2VkIG9uXHJcbi8vIGV2ZXJ5IGNvbG9yIGRlZmluaXRpb24gaW4gYHNldHRpbmdzL19jb2xvci5zY3NzYC5cclxuLy9cclxuLy8gTG9vcCB0aHJvdWdoIGV2ZXJ5IGAka2V5YCBhbmQgYCRtYXBgIGluIHRoZSBgJGNvbG9yc2AgdmFyaWFibGUgbWFwIGRlZmluZWQgaW5cclxuLy8gYHNldHRpbmdzL19jb2xvci5zY3NzYC5cclxuQGVhY2ggJGtleSwgJG1hcCBpbiAkY29sb3JzIHtcclxuXHJcbiAgLy8gTG9vcCB0aHJvdWdoIGV2ZXJ5IGAkc2hhZGVgIGFuZCBgJHJnYmAgaW4gYCRtYXBgLlxyXG4gIEBlYWNoICRzaGFkZSwgJHJnYiBpbiAkbWFwIHtcclxuXHJcbiAgICAvLyBMb29wIHRocm91Z2ggZXZlcnkgYGNvbG9yYCBhbmQgYGJhY2tncm91bmQtY29sb3JgIHJ1bGVzLlxyXG4gICAgQGVhY2ggJHJ1bGUgaW4gY29sb3IsIGJhY2tncm91bmQtY29sb3Ige1xyXG5cclxuICAgICAgLyoqXHJcbiAgICAgICAqIGAjeyRydWxlfWAgI3skcmdifS0jeyRzaGFkZX0gY29sb3IgdXRpbGl0eS5cclxuICAgICAgICovXHJcblxyXG4gICAgICAuI3skcnVsZX0tI3t1bnF1b3RlKCRrZXkpfS0je3VucXVvdGUoJHNoYWRlKX0ge1xyXG4gICAgICAgICN7JHJ1bGV9OiAkcmdiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIE9iamVjdCBGaXRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBPYmplY3QgZml0LlxyXG4gKlxyXG4gKiAxLiBGb250IGZhbWlseSBwb2x5ZmlsbCB3aXRoIChodHRwczovL2dpdGh1Yi5jb20vYmZyZWQtaXQvb2JqZWN0LWZpdC1pbWFnZXMpLlxyXG4gKi9cclxuXHJcbi8vIExvb3AgdGhyb3VnaCBldmVyeSB2YWx1ZSBmb3IgdGhlIGBvYmplY3QtZml0YCBwcm9wZXJ0eS5cclxuQGVhY2ggJHZhbHVlIGluIGZpbGwsIGNvbnRhaW4sIGNvdmVyLCBub25lLCBzY2FsZS1kb3duIHtcclxuXHJcbiAgLyoqXHJcbiAgICogYG9iamVjdC1maXRgICN7JHZhbHVlfSB1dGlsaXR5IGNsYXNzLlxyXG4gICAqL1xyXG5cclxuICAuI3skdmFsdWV9IHtcclxuICAgIGZvbnQtZmFtaWx5OiAnb2JqZWN0LWZpdDogI3skdmFsdWV9Oyc7IC8qIDEgKi9cclxuICAgIG9iamVjdC1maXQ6ICN7JHZhbHVlfTtcclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgUG9zaXRpb25cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBQb3NpdGlvbiB1dGlsaXR5IGNsYXNzLlxyXG4gKi9cclxuXHJcbkBlYWNoICR2YWx1ZSBpbiBzdGF0aWMsIHJlbGF0aXZlLCBhYnNvbHV0ZSwgZml4ZWQsIHN0aWNreSB7XHJcbiAgLiN7JHZhbHVlfSB7XHJcbiAgICBwb3NpdGlvbjogJHZhbHVlO1xyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBUZXh0XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogRm9udCBmYW1pbHkgdXRpbGl0eSBjbGFzc2VzLlxyXG4gKi9cclxuXHJcbi8vIEBlYWNoICRrZXksICRicmVha3BvaW50IGluICRicmVha3BvaW50cyB7XHJcbi8vICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQpIHtcclxuLy8gICAgIEBlYWNoICRwcm9wZXJ0eSwgJHZhbHVlIGluICRmb250LWZhbWlseSB7XHJcbi8vICAgICAgIC50ZXh0LSN7JGtleX0tI3skcHJvcGVydHl9IHtcclxuLy8gICAgICAgICBmb250LWZhbWlseTogbWFwLWdldCgkZm9udC1mYW1pbHksICRwcm9wZXJ0eSk7XHJcbi8vICAgICAgIH1cclxuLy8gICAgIH1cclxuLy8gICB9XHJcbi8vIH1cclxuXHJcblxyXG4vKipcclxuICogVGV4dCBzaXplIHV0aWxpdHkgY2xhc3Nlcy5cclxuICovXHJcblxyXG5AZWFjaCAka2V5LCAkYnJlYWtwb2ludCBpbiAkYnJlYWtwb2ludHMge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50KSB7XHJcbiAgICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiAkZm9udC1zaXplIHtcclxuICAgICAgLnRleHQtI3ska2V5fS0jeyRwcm9wZXJ0eX0ge1xyXG4gICAgICAgIEBpbmNsdWRlIHRleHQoJHByb3BlcnR5KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBUZXh0IGFsaWdubWVudCB1dGlsaXR5IGNsYXNzZXMuXHJcbiAqL1xyXG5cclxuQGVhY2ggJGtleSwgJGJyZWFrcG9pbnQgaW4gJGJyZWFrcG9pbnRzIHtcclxuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludCkge1xyXG4gICAgQGVhY2ggJGRpcmVjdGlvbiBpbiBsZWZ0LCByaWdodCwgY2VudGVyIHtcclxuICAgICAgLnRleHQtI3ska2V5fS0jeyRkaXJlY3Rpb259IHtcclxuICAgICAgICB0ZXh0LWFsaWduOiAkZGlyZWN0aW9uO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEZvbnQgd2VpZ2h0IHV0aWxpdHkgY2xhc3Nlcy5cclxuICpcclxuICogMS4gTXVsdGlwbHkgbG9vcGVkIGludGVnZXIgYnkgMTAwIGZvciBjb3JyZWN0IGZvbnQgd2VpZ2h0IHZhbHVlLlxyXG4gKi9cclxuXHJcbkBlYWNoICRrZXksICRicmVha3BvaW50IGluICRicmVha3BvaW50cyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQpIHtcclxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggOSB7XHJcbiAgICAgICRpOiAkaSAqIDEwMDsgLy8gWzFdXHJcblxyXG4gICAgICAudGV4dC0jeyRrZXl9LSN7JGl9IHtcclxuICAgICAgICBmb250LXdlaWdodDogI3skaX07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGV4dCB0cmFuc2Zvcm0gdWl0bGl0eSBjbGFzc2VzLlxyXG4gKi9cclxuXHJcbkBlYWNoICRrZXksICRicmVha3BvaW50IGluICRicmVha3BvaW50cyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQpIHtcclxuICAgIEBlYWNoICR0cmFuc2Zvcm0gaW4gY2FwaXRhbGl6ZSwgdXBwZXJjYXNlLCBsb3dlcmNhc2UsIG5vbmUsIGZ1bGwtd2lkdGgge1xyXG4gICAgICAudGV4dC0jeyRrZXl9LSN7JHRyYW5zZm9ybX0ge1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFZlcnRpY2FsIFJoeXRobVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAxMCB7XHJcbiAgJGk6ICRpICogODtcclxuXHJcbiAgLnZyLSN7JGl9IHtcclxuICAgIG1hcmdpbi1ib3R0b206ICN7JGl9cHg7XHJcbiAgfVxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFotaW5kZXhcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBVdGlsaXR5IGNsYXNzZXMgZm9yIG1hbmlwdWxhdGluZyBzdGFja2luZyBvcmRlciBpbiBIVE1MLlxyXG4gKi9cclxuXHJcbkBlYWNoICRrZXksICR2YWx1ZSBpbiAkei1pbmRleCB7XHJcbiAgLnotaW5kZXgtI3ska2V5fSB7XHJcbiAgICB6LWluZGV4OiAkdmFsdWU7XHJcbiAgfVxyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFotaW5kZXhcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIEEgbGltaXRlZCBhcnJheSBvZiB2YWx1ZXMgZm9yIHRoZSBgei1pbmRleGAgcHJvcGVydHkgdG8gcHJldmVudFxyXG4vLyBleGFnZ2VyYXRlZCBhbW91bnRzIGFuZCB1Z2x5IGhhY2tzLlxyXG5cclxuJHotaW5kZXg6IChcclxuICAnMCc6ICAwLFxyXG4gICcxJzogIDEwLFxyXG4gICcyJzogIDIwLFxyXG4gICczJzogIDMwLFxyXG4gICc0JzogIDQwLFxyXG4gICc1JzogIDUwLFxyXG4gICc2JzogIDYwLFxyXG4gICc3JzogIDcwLFxyXG4gICc4JzogIDgwLFxyXG4gICc5JzogIDkwLFxyXG4gICcxMCc6IDEwMFxyXG4pO1xyXG4iXX0= */
