/*
 *  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 {
    -webkit-transform-style: preserve-3d;
            transform-style: preserve-3d; }

/*
 * 	Owl Carousel - Video Plugin
 */
.owl-carousel .owl-video-wrapper {
  position: relative;
  height: 100%;
  background: #000; }

.owl-carousel .owl-video-play-icon {
  position: absolute;
  height: 80px;
  width: 80px;
  left: 50%;
  top: 50%;
  margin-left: -40px;
  margin-top: -40px;
  background: url("owl.video.play.png") no-repeat;
  cursor: pointer;
  z-index: 1;
  -webkit-backface-visibility: hidden;
  transition: -webkit-transform 100ms ease;
  transition: transform 100ms ease;
  transition: transform 100ms ease, -webkit-transform 100ms ease; }

.owl-carousel .owl-video-play-icon:hover {
  -webkit-transform: scale(1.3, 1.3);
          transform: scale(1.3, 1.3); }

.owl-carousel .owl-video-playing .owl-video-tn,
.owl-carousel .owl-video-playing .owl-video-play-icon {
  display: none; }

.owl-carousel .owl-video-tn {
  opacity: 0;
  height: 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  transition: opacity 400ms ease; }

.owl-carousel .owl-video-frame {
  position: relative;
  z-index: 1;
  height: 100%;
  width: 100%; }

.hero__category-icon > img, .usp__image {
  font-family: 'object-fit: contain;';
  -o-object-fit: contain;
     object-fit: contain; }

.header__image, .news-item__image {
  font-family: 'object-fit: cover;';
  -o-object-fit: cover;
     object-fit: cover; }

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

.mfp-arrow:active {
  margin-top: -54px; }

.mfp-arrow:hover,
.mfp-arrow:focus {
  opacity: 1; }

.mfp-arrow:before,
.mfp-arrow:after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  position: absolute;
  left: 0;
  top: 0;
  margin-top: 35px;
  margin-left: 35px;
  border: medium inset transparent; }

.mfp-arrow:after {
  border-top-width: 13px;
  border-bottom-width: 13px;
  top: 8px; }

.mfp-arrow:before {
  border-top-width: 21px;
  border-bottom-width: 21px;
  opacity: 0.7; }

.mfp-arrow-left {
  left: 0; }

.mfp-arrow-left:after {
  border-right: 17px solid #FFF;
  margin-left: 31px; }

.mfp-arrow-left:before {
  margin-left: 25px;
  border-right: 27px solid #3F3F3F; }

.mfp-arrow-right {
  right: 0; }

.mfp-arrow-right:after {
  border-left: 17px solid #FFF;
  margin-left: 39px; }

.mfp-arrow-right:before {
  border-left: 27px solid #3F3F3F; }

.mfp-iframe-holder {
  padding-top: 40px;
  padding-bottom: 40px; }

.mfp-iframe-holder .mfp-content {
  line-height: 0;
  width: 100%;
  max-width: 900px; }

.mfp-iframe-holder .mfp-close {
  top: -40px; }

.mfp-iframe-scaler {
  width: 100%;
  height: 0;
  overflow: hidden;
  padding-top: 56.25%; }

.mfp-iframe-scaler iframe {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
  background: #000; }

/* Main image in popup */
img.mfp-img {
  width: auto;
  max-width: 100%;
  height: auto;
  display: block;
  line-height: 0;
  box-sizing: border-box;
  padding: 40px 0 40px;
  margin: 0 auto; }

/* The shadow behind the image */
.mfp-figure {
  line-height: 0; }

.mfp-figure:after {
  content: '';
  position: absolute;
  left: 0;
  top: 40px;
  bottom: 40px;
  display: block;
  right: 0;
  width: auto;
  height: auto;
  z-index: -1;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
  background: #444; }

.mfp-figure small {
  color: #BDBDBD;
  display: block;
  font-size: 12px;
  line-height: 14px; }

.mfp-figure figure {
  margin: 0; }

.mfp-bottom-bar {
  margin-top: -36px;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  cursor: auto; }

.mfp-title {
  text-align: left;
  line-height: 18px;
  color: #F3F3F3;
  word-wrap: break-word;
  padding-right: 36px; }

.mfp-image-holder .mfp-content {
  max-width: 100%; }

.mfp-gallery .mfp-image-holder .mfp-figure {
  cursor: pointer; }

@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
  /**
       * Remove all paddings around the image on small screen
       */
  .mfp-img-mobile .mfp-image-holder {
    padding-left: 0;
    padding-right: 0; }
  .mfp-img-mobile img.mfp-img {
    padding: 0; }
  .mfp-img-mobile .mfp-figure:after {
    top: 0;
    bottom: 0; }
  .mfp-img-mobile .mfp-figure small {
    display: inline;
    margin-left: 5px; }
  .mfp-img-mobile .mfp-bottom-bar {
    background: rgba(0, 0, 0, 0.6);
    bottom: 0;
    margin: 0;
    top: auto;
    padding: 3px 5px;
    position: fixed;
    box-sizing: border-box; }
  .mfp-img-mobile .mfp-bottom-bar:empty {
    padding: 0; }
  .mfp-img-mobile .mfp-counter {
    right: 5px;
    top: 3px; }
  .mfp-img-mobile .mfp-close {
    top: 0;
    right: 0;
    width: 35px;
    height: 35px;
    line-height: 35px;
    background: rgba(0, 0, 0, 0.6);
    position: fixed;
    text-align: center;
    padding: 0; } }

@media all and (max-width: 900px) {
  .mfp-arrow {
    -webkit-transform: scale(0.75);
    transform: scale(0.75); }
  .mfp-arrow-left {
    -webkit-transform-origin: 0;
    transform-origin: 0; }
  .mfp-arrow-right {
    -webkit-transform-origin: 100%;
    transform-origin: 100%; }
  .mfp-container {
    padding-left: 6px;
    padding-right: 6px; } }

/* ==========================================================================
   Reset
   ========================================================================== */
/**
 * Custom user agent resets and overrides that are not present in
 * Normalize 7.0.0. This mostly removes some annoying margin and padding
 * defaults, border radius, and outlines.
 */
a {
  color: inherit;
  text-decoration: none; }

/**
 * 1. Remove border radius on Chrome 62.0+ on macOS.
 */
button {
  border: 0;
  border-radius: 0;
  outline: none;
  background: none;
  cursor: pointer; }

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

figure {
  margin: 0; }

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: inherit; }

hr {
  margin: 0;
  padding: 0; }

/**
 * 1. Remove white space.
 */
img {
  max-width: 100%;
  height: auto;
  vertical-align: middle; }

/**
 * 1. Remove inherited user agent appearance.
 */
input,
select,
textarea {
  max-width: 100%;
  border: 0;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }

/**
 * 1. Only allow vertical resizing to prevent the textarea
 *    from overflowing the container.
 */
textarea {
  resize: vertical; }

ul,
ol {
  margin: 0;
  padding: 0;
  list-style-type: none; }

p {
  margin: 0; }

/**
 * 1. Collapse borders to prevent double sided borders.
 */
table {
  max-width: 100%;
  border-collapse: collapse; }

strong {
  font-weight: 700; }

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

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

/**
 * Set minimal height of the body to maximum viewport height to
 * match the document's height.
 *
 * 1. Firefox 25+.
 * 2. Chrome 5+.
 */
body {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5em;
  min-height: 100vh;
  background-color: white;
  color: #6b6c6a;
  font-family: "Open Sans", sans-serif;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden; }

/* ==========================================================================
   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;
  min-height: 100vh;
  overflow: hidden; }

/* ==========================================================================
   Wrapper
   ========================================================================== */
/**
 * The wrapper object centers an element in the document.
 */
@media only screen and (min-width: 600px) {
  .wrapper {
    max-width: calc(1220px + 96px);
    padding: 0 48px;
    margin: 0 auto; } }

@media only screen and (max-width: 599px) {
  .wrapper {
    max-width: calc(1220px + 48px);
    padding: 0 24px;
    margin: 0 auto; } }

/**
 * Small wrapper.
 */
.wrapper--small {
  max-width: calc(800px + 96px); }
  @media only screen and (max-width: 599px) {
    .wrapper--small {
      max-width: calc(800px + 48px); } }

.page {
  transition: opacity 100ms; }

/**
 * Visually hide content until document is ready.
 */
.page:not(.ready) {
  opacity: 0; }

/* ==========================================================================
   Layout
   ========================================================================== */
/**
 * Layout sets an element as flexbox object.
 */
.layout {
  display: flex;
  flex-wrap: wrap;
  margin: -12px; }

/**
 * Justify center.
 */
.layout--justify-center {
  justify-content: center; }

/**
 * Equal height layout items.
 */
.layout--equal > .layout__item {
  display: flex; }

/**
 * The layout item adds a gutter around the grid column.
 */
.layout__item {
  padding: 12px; }

/**
 * Automatically generated layout items to accomodate all columns in the
 * grid with the appropriate widths.
 */
@media only screen and (min-width: 1200px) {
  .col-xl-1 {
    flex-basis: 8.33333%;
    max-width: 8.33333%; } }

@media only screen and (min-width: 900px) and (max-width: 1199px) {
  .col-lg-1 {
    flex-basis: 8.33333%;
    max-width: 8.33333%; } }

@media only screen and (min-width: 600px) and (max-width: 899px) {
  .col-md-1 {
    flex-basis: 8.33333%;
    max-width: 8.33333%; } }

@media only screen and (max-width: 599px) {
  .col-sm-1 {
    flex-basis: 8.33333%;
    max-width: 8.33333%; } }

@media only screen and (min-width: 1200px) {
  .col-xl-2 {
    flex-basis: 16.66667%;
    max-width: 16.66667%; } }

@media only screen and (min-width: 900px) and (max-width: 1199px) {
  .col-lg-2 {
    flex-basis: 16.66667%;
    max-width: 16.66667%; } }

@media only screen and (min-width: 600px) and (max-width: 899px) {
  .col-md-2 {
    flex-basis: 16.66667%;
    max-width: 16.66667%; } }

@media only screen and (max-width: 599px) {
  .col-sm-2 {
    flex-basis: 16.66667%;
    max-width: 16.66667%; } }

@media only screen and (min-width: 1200px) {
  .col-xl-3 {
    flex-basis: 25%;
    max-width: 25%; } }

@media only screen and (min-width: 900px) and (max-width: 1199px) {
  .col-lg-3 {
    flex-basis: 25%;
    max-width: 25%; } }

@media only screen and (min-width: 600px) and (max-width: 899px) {
  .col-md-3 {
    flex-basis: 25%;
    max-width: 25%; } }

@media only screen and (max-width: 599px) {
  .col-sm-3 {
    flex-basis: 25%;
    max-width: 25%; } }

@media only screen and (min-width: 1200px) {
  .col-xl-4 {
    flex-basis: 33.33333%;
    max-width: 33.33333%; } }

@media only screen and (min-width: 900px) and (max-width: 1199px) {
  .col-lg-4 {
    flex-basis: 33.33333%;
    max-width: 33.33333%; } }

@media only screen and (min-width: 600px) and (max-width: 899px) {
  .col-md-4 {
    flex-basis: 33.33333%;
    max-width: 33.33333%; } }

@media only screen and (max-width: 599px) {
  .col-sm-4 {
    flex-basis: 33.33333%;
    max-width: 33.33333%; } }

@media only screen and (min-width: 1200px) {
  .col-xl-5 {
    flex-basis: 41.66667%;
    max-width: 41.66667%; } }

@media only screen and (min-width: 900px) and (max-width: 1199px) {
  .col-lg-5 {
    flex-basis: 41.66667%;
    max-width: 41.66667%; } }

@media only screen and (min-width: 600px) and (max-width: 899px) {
  .col-md-5 {
    flex-basis: 41.66667%;
    max-width: 41.66667%; } }

@media only screen and (max-width: 599px) {
  .col-sm-5 {
    flex-basis: 41.66667%;
    max-width: 41.66667%; } }

@media only screen and (min-width: 1200px) {
  .col-xl-6 {
    flex-basis: 50%;
    max-width: 50%; } }

@media only screen and (min-width: 900px) and (max-width: 1199px) {
  .col-lg-6 {
    flex-basis: 50%;
    max-width: 50%; } }

@media only screen and (min-width: 600px) and (max-width: 899px) {
  .col-md-6 {
    flex-basis: 50%;
    max-width: 50%; } }

@media only screen and (max-width: 599px) {
  .col-sm-6 {
    flex-basis: 50%;
    max-width: 50%; } }

@media only screen and (min-width: 1200px) {
  .col-xl-7 {
    flex-basis: 58.33333%;
    max-width: 58.33333%; } }

@media only screen and (min-width: 900px) and (max-width: 1199px) {
  .col-lg-7 {
    flex-basis: 58.33333%;
    max-width: 58.33333%; } }

@media only screen and (min-width: 600px) and (max-width: 899px) {
  .col-md-7 {
    flex-basis: 58.33333%;
    max-width: 58.33333%; } }

@media only screen and (max-width: 599px) {
  .col-sm-7 {
    flex-basis: 58.33333%;
    max-width: 58.33333%; } }

@media only screen and (min-width: 1200px) {
  .col-xl-8 {
    flex-basis: 66.66667%;
    max-width: 66.66667%; } }

@media only screen and (min-width: 900px) and (max-width: 1199px) {
  .col-lg-8 {
    flex-basis: 66.66667%;
    max-width: 66.66667%; } }

@media only screen and (min-width: 600px) and (max-width: 899px) {
  .col-md-8 {
    flex-basis: 66.66667%;
    max-width: 66.66667%; } }

@media only screen and (max-width: 599px) {
  .col-sm-8 {
    flex-basis: 66.66667%;
    max-width: 66.66667%; } }

@media only screen and (min-width: 1200px) {
  .col-xl-9 {
    flex-basis: 75%;
    max-width: 75%; } }

@media only screen and (min-width: 900px) and (max-width: 1199px) {
  .col-lg-9 {
    flex-basis: 75%;
    max-width: 75%; } }

@media only screen and (min-width: 600px) and (max-width: 899px) {
  .col-md-9 {
    flex-basis: 75%;
    max-width: 75%; } }

@media only screen and (max-width: 599px) {
  .col-sm-9 {
    flex-basis: 75%;
    max-width: 75%; } }

@media only screen and (min-width: 1200px) {
  .col-xl-10 {
    flex-basis: 83.33333%;
    max-width: 83.33333%; } }

@media only screen and (min-width: 900px) and (max-width: 1199px) {
  .col-lg-10 {
    flex-basis: 83.33333%;
    max-width: 83.33333%; } }

@media only screen and (min-width: 600px) and (max-width: 899px) {
  .col-md-10 {
    flex-basis: 83.33333%;
    max-width: 83.33333%; } }

@media only screen and (max-width: 599px) {
  .col-sm-10 {
    flex-basis: 83.33333%;
    max-width: 83.33333%; } }

@media only screen and (min-width: 1200px) {
  .col-xl-11 {
    flex-basis: 91.66667%;
    max-width: 91.66667%; } }

@media only screen and (min-width: 900px) and (max-width: 1199px) {
  .col-lg-11 {
    flex-basis: 91.66667%;
    max-width: 91.66667%; } }

@media only screen and (min-width: 600px) and (max-width: 899px) {
  .col-md-11 {
    flex-basis: 91.66667%;
    max-width: 91.66667%; } }

@media only screen and (max-width: 599px) {
  .col-sm-11 {
    flex-basis: 91.66667%;
    max-width: 91.66667%; } }

@media only screen and (min-width: 1200px) {
  .col-xl-12 {
    flex-basis: 100%;
    max-width: 100%; } }

@media only screen and (min-width: 900px) and (max-width: 1199px) {
  .col-lg-12 {
    flex-basis: 100%;
    max-width: 100%; } }

@media only screen and (min-width: 600px) and (max-width: 899px) {
  .col-md-12 {
    flex-basis: 100%;
    max-width: 100%; } }

@media only screen and (max-width: 599px) {
  .col-sm-12 {
    flex-basis: 100%;
    max-width: 100%; } }

/* ==========================================================================
   Button
   ========================================================================== */
/**
 * Button.
 */
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 150px;
  min-height: 48px;
  padding: 15px 20px;
  transition: background-color 140ms ease-out;
  border-radius: 2px;
  background-color: #84bb5e;
  color: white;
  text-align: center; }
  .button:hover {
    transition: background-color 140ms ease-in;
    background-color: #60a82c; }
  .button > .inline-icon {
    margin-right: 10px; }

/**
 * Button small.
 */
.button--small {
  padding: 10px 18px; }

/**
 * Button shadow.
 */
.button--shadow {
  box-shadow: 0 2px 20px 0 rgba(0, 85, 83, 0.28); }

/* ==========================================================================
   CMS Output
   ========================================================================== */
/**
 * Every conceivable HTML element within a `.cms-output` wrapper.
 */
.cms-output > *:not(:last-child) {
  margin-bottom: 1em; }

.cms-output ul {
  list-style-type: disc; }

.cms-output ol {
  list-style-type: decimal; }

.cms-output p > a {
  color: #60a82c; }
  .cms-output p > a:hover {
    text-decoration: underline; }

/* ==========================================================================
   Contact
   ========================================================================== */
/**
 * Contact.
 */
@media only screen and (min-width: 600px) {
  .contact {
    padding: 80px 0 160px;
    padding-left: 65px; } }

@media only screen and (max-width: 599px) {
  .contact {
    padding: 80px 0 80px; } }

/**
 * Contact title.
 */
.contact__title {
  margin-bottom: 10px; }
  @media only screen and (min-width: 600px) {
    .contact__title {
      font-size: 26px;
      font-size: 2.6rem;
      line-height: 1.23077em; } }
  @media only screen and (max-width: 599px) {
    .contact__title {
      font-size: 23px;
      font-size: 2.3rem;
      line-height: 1.3913em; } }

/**
 * Contact content.
 */
.contact__content {
  margin-bottom: 50px; }
  @media only screen and (max-width: 599px) {
    .contact__content {
      text-align: center; } }

/**
 * Contact text.
 */
.contact__text .inline-icon {
  margin-right: 10px;
  color: #456a69; }

/**
 * Contact opening times.
 */
.contact__day {
  display: inline-block;
  width: 100px; }

/* ==========================================================================
   Content Columns
   ========================================================================== */
/**
 * Content columns.
 */
@media only screen and (min-width: 600px) {
  .content-columns {
    padding: 80px 0 160px; } }

@media only screen and (max-width: 599px) {
  .content-columns {
    padding: 40px 0 80px; } }

.content-columns.background-color-white {
  position: relative;
  background-color: white; }
  .content-columns.background-color-white::before {
    top: calc(-5vw + 1px);
    border-width: 0 0 5vw 100vw;
    border-color: transparent transparent white;
    content: ''; }
  .content-columns.background-color-white::before, .content-columns.background-color-white::after {
    position: absolute;
    left: 0;
    border-style: solid;
    z-index: 10; }

.content-columns.background-color-grey {
  position: relative;
  background-color: #f9f8f8; }
  .content-columns.background-color-grey::before {
    top: calc(-5vw + 1px);
    border-width: 0 0 5vw 100vw;
    border-color: transparent transparent #f9f8f8;
    content: ''; }
  .content-columns.background-color-grey::before, .content-columns.background-color-grey::after {
    position: absolute;
    left: 0;
    border-style: solid;
    z-index: 10; }

/**
 * Content columns header.
 */
.content-columns__header {
  margin-bottom: 40px; }

/**
 * Content columns title.
 */
.content-columns__title {
  margin-bottom: 24px; }

/* ==========================================================================
   Content Default
   ========================================================================== */
/**
 * Content default.
 */
@media only screen and (min-width: 600px) {
  .content-default {
    padding: 80px 0 160px; } }

@media only screen and (max-width: 599px) {
  .content-default {
    padding: 40px 0 80px; } }

.content-default.background-color-white {
  position: relative;
  background-color: white; }
  .content-default.background-color-white::before {
    top: calc(-5vw + 1px);
    border-width: 0 0 5vw 100vw;
    border-color: transparent transparent white;
    content: ''; }
  .content-default.background-color-white::before, .content-default.background-color-white::after {
    position: absolute;
    left: 0;
    border-style: solid;
    z-index: 10; }

.content-default.background-color-grey {
  position: relative;
  background-color: #f9f8f8; }
  .content-default.background-color-grey::before {
    top: calc(-5vw + 1px);
    border-width: 0 0 5vw 100vw;
    border-color: transparent transparent #f9f8f8;
    content: ''; }
  .content-default.background-color-grey::before, .content-default.background-color-grey::after {
    position: absolute;
    left: 0;
    border-style: solid;
    z-index: 10; }

/**
 * Hide corners after hero.
 */
@media only screen and (min-width: 600px) {
  .hero + .content-default {
    padding-top: 160px; } }

@media only screen and (max-width: 599px) {
  .hero + .content-default {
    padding-top: 80px; } }

.hero + .content-default::before, .hero + .content-default::after {
  content: none; }

/**
 * Content default content.
 */
.content-default__content {
  text-align: center; }

/**
 * Content default title.
 */
.content-default__title {
  margin-bottom: 24px; }

/**
 * Content default editor.
 */
.content-default__editor:not(:last-child) {
  margin-bottom: 35px; }

/* ==========================================================================
   Editor
   ========================================================================== */
/**
 * Editor.
 */
.editor {
  font-size: 20px;
  font-size: 2rem;
  line-height: 1.5em;
  font-weight: 300; }

/* ==========================================================================
   Featured Products
   ========================================================================== */
/**
 * Featured products.
 */
@media only screen and (min-width: 600px) {
  .featured-products {
    padding: 80px 0 160px; } }

@media only screen and (max-width: 599px) {
  .featured-products {
    padding: 40px 0 80px; } }

.featured-products.background-color-white {
  position: relative;
  background-color: white; }
  .featured-products.background-color-white::before {
    top: calc(-5vw + 1px);
    border-width: 0 0 5vw 100vw;
    border-color: transparent transparent white;
    content: ''; }
  .featured-products.background-color-white::before, .featured-products.background-color-white::after {
    position: absolute;
    left: 0;
    border-style: solid;
    z-index: 10; }

.featured-products.background-color-grey {
  position: relative;
  background-color: #f9f8f8; }
  .featured-products.background-color-grey::before {
    top: calc(-5vw + 1px);
    border-width: 0 0 5vw 100vw;
    border-color: transparent transparent #f9f8f8;
    content: ''; }
  .featured-products.background-color-grey::before, .featured-products.background-color-grey::after {
    position: absolute;
    left: 0;
    border-style: solid;
    z-index: 10; }

/**
 * Featured products content.
 */
.featured-products__content {
  text-align: center; }

/**
 * Featured products title.
 */
.featured-products__title {
  margin-bottom: 24px; }

/**
 * Featured products list.
 */
@media only screen and (min-width: 600px) {
  .featured-products__list {
    padding: 40px 0 15px;
    display: flex; }
    .featured-products__list > .owl-stage-outer {
      display: flex; }
      .featured-products__list > .owl-stage-outer > .owl-stage {
        display: flex;
        padding: 10px 0 80px; }
        .featured-products__list > .owl-stage-outer > .owl-stage > .owl-item {
          display: flex; }
    .featured-products__list .owl-nav {
      position: absolute;
      top: 50%;
      left: 0;
      width: 100%; }
      .featured-products__list .owl-nav .owl-next,
      .featured-products__list .owl-nav .owl-prev {
        position: absolute;
        top: calc(50% - 52.5px);
        width: 32px;
        height: 32px;
        transition: opacity 140ms ease-out;
        color: #b2b2b2;
        opacity: 0.5; }
        .featured-products__list .owl-nav .owl-next:hover,
        .featured-products__list .owl-nav .owl-prev:hover {
          transition: opacity 140ms ease-in;
          opacity: 1; }
        .featured-products__list .owl-nav .owl-next > .inline-icon,
        .featured-products__list .owl-nav .owl-prev > .inline-icon {
          width: 25px;
          height: 25px; }
      .featured-products__list .owl-nav .owl-next {
        left: calc(100% + 40px); }
      .featured-products__list .owl-nav .owl-prev {
        right: calc(100% + 40px); } }

@media only screen and (max-width: 599px) {
  .featured-products__list {
    padding: 45px 0 45px; } }

/**
 * Featured products item.
 */
.featured-products__item {
  display: flex;
  width: 100%; }
  @media only screen and (min-width: 600px) {
    .featured-products__item {
      padding: 0 12px; } }
  @media only screen and (max-width: 599px) {
    .featured-products__item {
      flex-direction: column;
      margin-bottom: 10px; } }

/* ==========================================================================
   Fixed phonenumber
   ========================================================================== */
/**
 * Fixed phonenumber.
 */
.fixed-phonenumber {
  position: fixed;
  top: 50%;
  right: 15px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  z-index: 80; }
  @media only screen and (max-width: 599px) {
    .fixed-phonenumber {
      display: none; } }

/* ==========================================================================
   Form
   ========================================================================== */
/**
 * Form.
 */
.form {
  position: relative;
  background-color: #005553;
  color: white;
  z-index: 10; }
  @media only screen and (min-width: 1200px) {
    .form {
      padding: 75px 100px; } }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .form {
      padding: 75px 70px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .form {
      padding: 40px; } }
  @media only screen and (min-width: 600px) {
    .form {
      margin: -110px 0 110px;
      border-radius: 8px;
      box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06); } }
  @media only screen and (max-width: 599px) {
    .form {
      position: relative;
      position: relative;
      margin: 0 -24px;
      padding: 75px 24px; }
      .form::before {
        top: calc(-5vw + 1px);
        border-width: 0 0 5vw 100vw;
        border-color: transparent transparent #005553;
        content: ''; }
      .form::before, .form::after {
        position: absolute;
        left: 0;
        border-style: solid;
        z-index: 10; }
      .form::after {
        bottom: calc(-5vw + 1px);
        border-width: 0 0 5vw 100vw;
        border-color: transparent transparent transparent #005553;
        content: ''; }
      .form::before, .form::after {
        position: absolute;
        left: 0;
        border-style: solid;
        z-index: 10; } }

.form--small {
  width: 100%;
  max-width: 600px;
  margin: 100px auto;
  padding: 40px !important; }
  @media only screen and (max-width: 899px) {
    .form--small {
      margin: 50px auto; } }
  .form--small .gform_title {
    font-size: 30px;
    font-size: 3rem;
    line-height: 1.16667em;
    margin-bottom: 30px; }

/* Gravity Froms
   ========================================================================== */
/**
 * WordPress Gravity Forms plugin overrides.
 */
.ginput_container {
  margin-bottom: 10px; }

.gfield {
  position: relative; }

.gfield_label {
  display: none; }

.gfield_html {
  font-size: 22px;
  font-size: 2.2rem;
  line-height: 1.27273em;
  margin-bottom: 35px;
  font-weight: font-weight("bold"); }

.ginput_container input[type=text],
.ginput_container input[type=email],
.ginput_container input[type=tel],
.ginput_container textarea {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5em;
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 43px;
  padding: 10px 25px;
  border-radius: 8px;
  background-color: white;
  font-family: "Open Sans", sans-serif;
  font-weight: 300;
  overflow: auto; }
  .ginput_container input[type=text]::-webkit-input-placeholder,
  .ginput_container input[type=email]::-webkit-input-placeholder,
  .ginput_container input[type=tel]::-webkit-input-placeholder,
  .ginput_container textarea::-webkit-input-placeholder {
    color: #272c2e; }
  .ginput_container input[type=text]:-ms-input-placeholder,
  .ginput_container input[type=email]:-ms-input-placeholder,
  .ginput_container input[type=tel]:-ms-input-placeholder,
  .ginput_container textarea:-ms-input-placeholder {
    color: #272c2e; }
  .ginput_container input[type=text]::-ms-input-placeholder,
  .ginput_container input[type=email]::-ms-input-placeholder,
  .ginput_container input[type=tel]::-ms-input-placeholder,
  .ginput_container textarea::-ms-input-placeholder {
    color: #272c2e; }
  .ginput_container input[type=text]::placeholder,
  .ginput_container input[type=email]::placeholder,
  .ginput_container input[type=tel]::placeholder,
  .ginput_container textarea::placeholder {
    color: #272c2e; }

.ginput_container textarea.small {
  height: 94px; }

.gform_validation_container {
  display: none; }

.gform_footer {
  margin-top: 40px; }

.gform_button {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5em;
  font-family: "Open Sans", sans-serif;
  cursor: pointer; }

.validation_error {
  margin-bottom: 20px;
  padding: 5px 10px;
  border-radius: 2px;
  background-color: red;
  color: white;
  font-weight: 300;
  box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06); }

.validation_message {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.5em;
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  padding: 5px 10px;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  border-radius: 2px;
  background-color: red;
  color: white;
  font-weight: 300;
  text-align: center;
  box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06);
  z-index: 10; }
  .validation_message::before {
    position: absolute;
    top: -10px;
    left: calc(50% - 5px);
    border-width: 5px;
    border-style: solid;
    border-color: transparent transparent red;
    content: ''; }

/* ==========================================================================
   Header
   ========================================================================== */
/**
 * Header.
 */
.header {
  position: relative; }
  @media only screen and (min-width: 1200px) {
    .header {
      height: 450px; } }
  @media only screen and (min-width: 600px) and (max-width: 1199px) {
    .header {
      height: 450px; } }
  @media only screen and (max-width: 599px) {
    .header {
      height: 300px; } }

/**
 * Header image.
 */
.header__image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

/* ==========================================================================
   Hero
   ========================================================================== */
/**
 * Hero.
 */
.hero {
  position: relative; }
  @media only screen and (min-width: 1200px) {
    .hero {
      height: 700px; } }
  @media only screen and (min-width: 600px) and (max-width: 1199px) {
    .hero {
      height: 600px; } }
  @media only screen and (max-width: 599px) {
    .hero {
      min-height: 565px;
      height: auto;
      padding-top: 40px; } }

/**
 * Hero categories.
 */
.hero__categories {
  position: relative;
  -webkit-transform: rotate(-3deg);
          transform: rotate(-3deg);
  border-radius: 0 8px 8px 0;
  background-color: #005553;
  box-shadow: 0 2px 20px 0 rgba(0, 83, 81, 0.31);
  z-index: 80; }
  @media only screen and (min-width: 1200px) {
    .hero__categories {
      margin-top: -30px; } }
  @media only screen and (min-width: 900px) and (max-width: 1199px) {
    .hero__categories {
      margin-top: -10px; } }
  .hero__categories::before {
    position: absolute;
    top: 0;
    right: calc(100% - 1px);
    width: 100vw;
    height: 100%;
    background-color: #005553;
    content: ''; }

/**
 * Hero categories content.
 */
.hero__categories-content {
  -webkit-transform: rotate(3deg);
          transform: rotate(3deg);
  color: white; }
  @media only screen and (min-width: 1200px) {
    .hero__categories-content {
      padding: 130px 0 130px; } }
  @media only screen and (min-width: 600px) and (max-width: 1199px) {
    .hero__categories-content {
      padding: 90px 0 40px; } }
  @media only screen and (max-width: 599px) {
    .hero__categories-content {
      padding: 70px 0 70px; } }

/**
 * Hero categories body.
 */
.hero__categories-body {
  padding-right: 101.66667px; }
  @media only screen and (min-width: 900px) {
    .hero__categories-body {
      margin-bottom: 60px; } }
  @media only screen and (max-width: 899px) {
    .hero__categories-body {
      margin-bottom: 20px; } }

/**
 * Hero categories title.
 */
.hero__categories-title {
  margin-bottom: 20px; }

/**
 * Hero categories text.
 */
.hero__categories-text {
  font-size: 20px;
  font-size: 2rem;
  line-height: 1.5em;
  display: inline-block;
  padding-bottom: 2px;
  border-bottom: 2px solid #60a82c; }

/**
 * Hero carousel wrapper.
 */
@media only screen and (min-width: 600px) {
  .hero__carousel-wrapper {
    padding-right: 101.66667px; } }

@media only screen and (max-width: 599px) {
  .hero__carousel-wrapper {
    padding: 0 43px; } }

/**
 * Hero carousel.
 */
.hero__carousel {
  display: flex; }
  .hero__carousel > .owl-stage-outer {
    display: flex; }
    .hero__carousel > .owl-stage-outer > .owl-stage {
      display: flex; }
      .hero__carousel > .owl-stage-outer > .owl-stage > .owl-item {
        display: flex; }

_:-ms-fullscreen,
:root .hero__carousel {
  display: block; }
  _:-ms-fullscreen > .owl-stage-outer,
  :root .hero__carousel > .owl-stage-outer {
    display: block; }
    _:-ms-fullscreen > .owl-stage-outer > .owl-stage,
    :root .hero__carousel > .owl-stage-outer > .owl-stage {
      display: block; }
      _:-ms-fullscreen > .owl-stage-outer > .owl-stage > .owl-item,
      :root .hero__carousel > .owl-stage-outer > .owl-stage > .owl-item {
        display: block; }

.hero__carousel.owl-carousel .owl-nav {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%; }
  .hero__carousel.owl-carousel .owl-nav .owl-prev,
  .hero__carousel.owl-carousel .owl-nav .owl-next {
    position: absolute;
    top: calc(50% - 16.5px); }
    @media only screen and (min-width: 600px) {
      .hero__carousel.owl-carousel .owl-nav .owl-prev,
      .hero__carousel.owl-carousel .owl-nav .owl-next {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 33px;
        height: 33px;
        transition: background-color 140ms ease-out;
        border-radius: 16.5px;
        background-color: #004e4c; }
        .hero__carousel.owl-carousel .owl-nav .owl-prev:hover,
        .hero__carousel.owl-carousel .owl-nav .owl-next:hover {
          transition: background-color 140ms ease-in;
          background-color: #3b6e6d; }
        .hero__carousel.owl-carousel .owl-nav .owl-prev.animating,
        .hero__carousel.owl-carousel .owl-nav .owl-next.animating {
          -webkit-animation-name: flash;
                  animation-name: flash;
          -webkit-animation-duration: 250ms;
                  animation-duration: 250ms;
          -webkit-animation-iteration-count: infinite;
                  animation-iteration-count: infinite;
          -webkit-animation-direction: alternate;
                  animation-direction: alternate; } }
    .hero__carousel.owl-carousel .owl-nav .owl-prev > .inline-icon,
    .hero__carousel.owl-carousel .owl-nav .owl-next > .inline-icon {
      width: 17px;
      height: 17px; }
  @media only screen and (min-width: 1200px) {
    .hero__carousel.owl-carousel .owl-nav .owl-prev {
      right: calc(100% + 25px); } }
  @media only screen and (max-width: 1199px) {
    .hero__carousel.owl-carousel .owl-nav .owl-prev {
      right: calc(100% + 10px); } }
  @media only screen and (min-width: 1200px) {
    .hero__carousel.owl-carousel .owl-nav .owl-next {
      left: calc(100% + 25px); } }
  @media only screen and (max-width: 1199px) {
    .hero__carousel.owl-carousel .owl-nav .owl-next {
      left: calc(100% + 10px); } }

/**
 * Hero carousel item.
 */
.hero__carousel-item {
  display: flex;
  flex-grow: 1; }

/**
 * Hero category.
 */
.hero__category {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  align-items: center;
  padding: 18px 10px 10px;
  transition: background-color 140ms ease-out;
  border-radius: 2px; }
  .hero__category:hover {
    transition: background-color 140ms ease-in;
    background-color: #004e4c; }

_:-ms-fullscreen,
:root .hero__category {
  display: block; }

/**
 * Hero category icon.
 */
.hero__category-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 76px;
  height: 76px;
  margin-bottom: 10px; }
  .hero__category-icon > img {
    width: 76px;
    height: 76px; }

/**
 * Hero category title.
 */
.hero__category-title {
  font-size: 13px;
  font-size: 1.3rem;
  line-height: 1.5em;
  text-align: center; }

/* Slideshow
   ========================================================================== */
/**
 * Hero slideshow.
 */
.hero__slideshow-container {
  position: absolute;
  top: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 100%;
  height: 100%;
  overflow: hidden; }
  @media only screen and (min-width: 600px) {
    .hero__slideshow-container {
      padding-top: 12px; } }
  @media only screen and (max-width: 899px) {
    .hero__slideshow-container {
      max-width: 100%;
      padding: 0; } }

/**
 * Hero slideshow slide.
 */
.hero__slideshow-slide {
  position: relative; }
  @media only screen and (min-width: 1200px) {
    .hero__slideshow-slide {
      height: 700px; } }
  @media only screen and (min-width: 600px) and (max-width: 1199px) {
    .hero__slideshow-slide {
      height: 600px; } }
  @media only screen and (max-width: 599px) {
    .hero__slideshow-slide {
      height: 565px; } }

/**
 * Hero slideshow image.
 */
.hero__slideshow-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  -o-object-position: right;
     object-position: right; }

/**
 * Animation.
 */
@-webkit-keyframes flash {
  from {
    background-color: #004e4c; }
  to {
    background-color: #3b6e6d; } }
@keyframes flash {
  from {
    background-color: #004e4c; }
  to {
    background-color: #3b6e6d; } }

/* ==========================================================================
   Input
   ========================================================================== */
/**
 * Input.
 */
.input {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.5em;
  display: inline-flex;
  transition: background-color 140ms ease-out;
  font-family: "Open Sans", sans-serif; }
  .input:focus {
    transition: background-color 140ms ease-in; }
  .input::-webkit-input-placeholder {
    color: #c1c1c1; }
  .input:-ms-input-placeholder {
    color: #c1c1c1; }
  .input::-ms-input-placeholder {
    color: #c1c1c1; }
  .input::placeholder {
    color: #c1c1c1; }

/**
 * Text input.
 */
.input--text {
  height: 36px;
  padding: 0 10px; }

/* ==========================================================================
   Login
   ========================================================================== */
/**
 * Page.
 */
.login-page {
  padding-bottom: 160px; }
  @media only screen and (max-width: 599px) {
    .login-page {
      padding-bottom: 80px; } }

/**
 * Form.
 */
.login-form {
  padding: 50px;
  border-radius: 5px;
  background-color: #f9f8f8; }
  @media only screen and (max-width: 899px) {
    .login-form {
      padding: 20px; } }
  .login-form form {
    display: flex;
    flex-wrap: wrap;
    margin: -10px; }

/**
 * Warning.
 */
.login-form__invalid {
  margin-bottom: 20px;
  padding: 5px 10px;
  border: 1px solid #60a82c;
  background-color: #edf8e5;
  text-align: center; }

/**
 * Inputs.
 */
.login-username,
.login-password {
  display: flex;
  flex-wrap: wrap;
  width: 50%;
  padding: 10px; }
  @media only screen and (max-width: 599px) {
    .login-username,
    .login-password {
      width: 100%; } }
  .login-username label,
  .login-password label {
    width: 100%;
    margin-bottom: 10px; }
  .login-username input,
  .login-password input {
    width: 100%;
    padding: 10px; }

/**
 * Submit.
 */
.login-submit {
  width: 100%;
  padding: 10px;
  text-align: center; }
  .login-submit input {
    cursor: pointer; }

/* ==========================================================================
   News Item
   ========================================================================== */
/**
 * News item.
 */
.news-item {
  flex-grow: 1;
  width: 100%;
  border-radius: 2px;
  background-color: white;
  box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06); }

/**
 * News item image wrapper.
 */
.news-item__image-wrapper {
  position: relative;
  height: 190px;
  border-radius: 2px; }

/**
 * News item image.
 */
.news-item__image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

/**
 * News item body.
 */
.news-item__body {
  padding: 40px; }

/**
 * News item title.
 */
.news-item__title {
  margin-bottom: 6px; }

/**
 * News item teaser.
 */
/* ==========================================================================
   News List
   ========================================================================== */
/**
 * News list.
 */
.news-list {
  background-color: #f9f8f8; }
  @media only screen and (min-width: 600px) {
    .news-list {
      padding: 0 0 160px; } }
  @media only screen and (max-width: 599px) {
    .news-list {
      padding: 0 0 80px; } }

/**
 * News list item.
 */
.news-list__item {
  display: flex; }

/* ==========================================================================
   News Single
   ========================================================================== */
/**
 * News single.
 */
@media only screen and (min-width: 600px) {
  .news-single {
    padding: 0 0 160px; } }

@media only screen and (max-width: 599px) {
  .news-single {
    padding: 0 0 80px; } }

/**
 * News single wrapper.
 */
@media only screen and (min-width: 900px) {
  .news-single__wrapper {
    max-width: calc(813.33333px + 48px);
    padding: 0 24px;
    margin: 0 auto; } }

@media only screen and (min-width: 600px) and (max-width: 899px) {
  .news-single__wrapper {
    max-width: calc(1016.66667px + 48px);
    padding: 0 24px;
    margin: 0 auto; } }

@media only screen and (max-width: 599px) {
  .news-single__wrapper {
    max-width: calc(1220px + 48px);
    padding: 0 24px;
    margin: 0 auto; } }

/**
 * News single image.
 */
.news-single__image {
  max-width: 1000px;
  margin: 75px auto; }
  @media only screen and (max-width: 1199px) {
    .news-single__image {
      margin-top: 0; } }

/**
 * News single content.
 */
.news-single__content {
  margin-bottom: 50px; }

/**
 * News single title.
 */
.news-single__title {
  margin-bottom: 50px; }

/**
 * News single text.
 */
.news-single__text {
  margin-bottom: 25px; }

/* ==========================================================================
   Page Footer
   ========================================================================== */
/**
 * Page footer.
 */
.page-footer {
  position: relative;
  background-color: #0c4b49; }
  @media only screen and (min-width: 900px) {
    .page-footer {
      padding: 80px 0 60px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .page-footer {
      padding: 0 0 40px; } }
  @media only screen and (max-width: 599px) {
    .page-footer {
      padding: 80px 0 60px; } }
  .page-footer::before {
    top: calc(-5vw + 1px);
    border-width: 5vw 0 0 100vw;
    border-color: transparent transparent transparent #0c4b49;
    content: ''; }
  .page-footer::before, .page-footer::after {
    position: absolute;
    left: 0;
    border-style: solid;
    z-index: 10; }

/**
 * Page footer column.
 */
@media only screen and (max-width: 599px) {
  .page-footer__column:not(:last-child) {
    margin-bottom: 14px; } }

/**
 * Page footer logo column.
 */
@media only screen and (max-width: 899px) {
  .page-footer__column--logo {
    margin-bottom: 54px; } }

@media only screen and (max-width: 599px) {
  .page-footer__column--logo {
    margin-bottom: 24px; } }

/**
 * Page footer logo.
 */
.page-footer__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  background-color: white; }
  @media only screen and (min-width: 900px) {
    .page-footer__logo {
      max-width: 181px;
      height: 75px; } }
  @media only screen and (max-width: 899px) {
    .page-footer__logo {
      max-width: 116px;
      height: 48px; } }
  @media only screen and (max-width: 599px) {
    .page-footer__logo {
      margin: 0 auto; } }
  .page-footer__logo > img {
    width: 100%; }
    @media only screen and (min-width: 900px) {
      .page-footer__logo > img {
        max-width: 118px; } }
    @media only screen and (max-width: 899px) {
      .page-footer__logo > img {
        max-width: 76px; } }

/**
 * Page footer title.
 */
.page-footer__title {
  margin-bottom: 20px;
  color: white;
  font-weight: 800; }
  @media only screen and (max-width: 599px) {
    .page-footer__title {
      text-align: center; } }

/**
 * Page footer text.
 */
.page-footer__text {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 2em;
  color: #acc1c0;
  font-weight: 300; }
  @media only screen and (max-width: 599px) {
    .page-footer__text {
      text-align: center; } }
  .page-footer__text .inline-icon {
    margin-right: 10px;
    color: white; }
  .page-footer__text a {
    transition: color 140ms ease-out; }
    .page-footer__text a:hover {
      transition: color 140ms ease-in;
      color: white; }

/* ==========================================================================
   Page Header
   ========================================================================== */
/**
 * Page header.
 */
.page-header {
  position: relative;
  background-color: white;
  box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06); }
  .page-header:not(.is-active) {
    z-index: 80; }
  @media only screen and (min-width: 600px) {
    .page-header + *:not(.slideshow):not(.news-single):not(.google-maps):not(.header):not(.hero) {
      padding: 160px 0 160px; } }
  @media only screen and (max-width: 599px) {
    .page-header + *:not(.slideshow):not(.news-single):not(.google-maps):not(.header):not(.hero) {
      padding: 80px 0 80px; } }

/* ==========================================================================
   Page Micro
   ========================================================================== */
/**
 * Page micro.
 */
.page-micro {
  padding: 30px 0 30px;
  display: flex;
  justify-content: center;
  background-color: #17504e; }

/**
 * Page micro list.
 */
.page-micro__list {
  display: flex; }
  @media only screen and (min-width: 600px) {
    .page-micro__list {
      align-items: center; } }
  @media only screen and (max-width: 599px) {
    .page-micro__list {
      flex-direction: column; } }

/**
 * Page micro list item.
 */
.page-micro__list-item {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.06667em;
  padding: 0 20px;
  color: #acc1c0; }
  @media only screen and (max-width: 599px) {
    .page-micro__list-item {
      margin-bottom: 16px;
      text-align: center; } }
  @media only screen and (min-width: 600px) {
    .page-micro__list-item:not(:last-child) {
      border-right: 1px solid #acc1c0; } }
  .page-micro__list-item a {
    transition: color 140ms ease-out; }
    .page-micro__list-item a:hover {
      transition: color 140ms ease-in;
      color: white; }

/* ==========================================================================
   Pagination
   ========================================================================== */
/**
 * Pagination.
 */
.pagination {
  display: flex;
  justify-content: center; }
  @media only screen and (min-width: 600px) {
    .pagination {
      margin-top: 85px; } }
  @media only screen and (max-width: 599px) {
    .pagination {
      margin-top: 40px; } }

/**
 * Page numbers.
 */
.page-numbers {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 2.28571em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  transition: background-color 140ms ease-out;
  border-right: 1px solid #f1f1f1;
  background-color: white;
  color: #26292b; }
  .page-numbers:not(.current):hover {
    transition: background-color 140ms ease-in;
    background-color: #f1f1f1; }
  .page-numbers:nth-last-child(2) {
    border-right: 0; }
  .page-numbers.current {
    border-right-color: #84bb5e;
    background-color: #84bb5e;
    color: white; }
  .page-numbers.next, .page-numbers.prev {
    display: none; }

/* ==========================================================================
   Products Single
   ========================================================================== */
/**
 * Products single.
 */
.products-single {
  background-color: #f9f8f8; }
  @media only screen and (min-width: 600px) {
    .products-single {
      padding: 160px 0 160px; } }
  @media only screen and (max-width: 599px) {
    .products-single {
      padding: 80px 0 80px; } }

/**
 * Products single column.
 */
/**
 * Products single back.
 */
.products-single__back {
  margin-bottom: 20px; }

/**
 * Products single image.
 */
.products-single__image {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 40px;
  background-color: white;
  box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06); }
  @media only screen and (max-width: 599px) {
    .products-single__image {
      width: calc(100% + 48px);
      margin: 0 -24px; } }

/**
 * Products single content.
 */
@media only screen and (min-width: 600px) {
  .products-single__content {
    padding: 80px 0 80px;
    padding-left: 101.66667px; } }

@media only screen and (max-width: 599px) {
  .products-single__content {
    padding: 40px 0 0; } }

/**
 * Products single title.
 */
.products-single__title {
  margin-bottom: 40px; }

/**
 * Product single details.
 */
.products-single__details {
  margin-bottom: 40px;
  padding-bottom: 40px;
  border-bottom: 2px solid #f1f1f1; }

/**
 * Product single detail.
 */
.products-single__detail {
  font-size: 20px;
  font-size: 2rem;
  line-height: 1.5em;
  display: flex;
  color: #456a69; }
  @media only screen and (max-width: 1199px) {
    .products-single__detail {
      display: flex;
      flex-direction: column; }
      .products-single__detail:not(:last-child) {
        margin-bottom: 10px; } }

/**
 * Product single detail label.
 */
.products-single__detail-label {
  min-width: 165px;
  font-family: "Montserrat", sans-serif;
  font-weight: 800; }
  @media only screen and (max-width: 1199px) {
    .products-single__detail-label {
      width: 100%; } }

/**
 * Products single phonenumber.
 */
.products-single__phonenumber {
  margin-bottom: 25px; }

/**
 * Products single tel.
 */
.products-single__tel {
  display: inline-flex;
  padding: 16px 20px;
  background-color: #f1f1f1;
  color: #456a69; }

/**
 * Products single tel label.
 */
.products-single__tel-label {
  margin-right: 10px; }

.products--select .products-load > .layout {
  display: none; }

/* ==========================================================================
   Products
   ========================================================================== */
/**
 * Products.
 */
.products {
  background-color: #f9f8f8; }
  @media only screen and (min-width: 600px) {
    .products {
      padding: 0 0 160px; } }
  @media only screen and (max-width: 599px) {
    .products {
      padding: 0 0 80px; } }

/* Categories
   ========================================================================== */
/**
 * Products categories.
 */
.products-categories {
  margin-bottom: 50px; }

/**
 * Products categories list.
 */
.products-categories__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center; }

/* Category
   ========================================================================== */
/**
 * Product category.
 */
.product-category {
  display: flex;
  position: relative;
  padding-top: 40px; }
  @media only screen and (min-width: 600px) {
    .product-category {
      margin: 0 20px 18px; } }
  @media only screen and (max-width: 599px) {
    .product-category {
      margin-top: 20px; } }
  .product-category::before {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    width: 30px;
    height: 34px;
    margin: auto;
    background-repeat: no-repeat;
    background-size: cover;
    content: ''; }
  .product-category.product-category-8::before {
    height: 30px;
    background-image: url("../images//accessoires.svg"); }
  .product-category.product-category-3::before {
    background-image: url("../images//aluminum-profielen.png"); }
  .product-category.product-category-6::before {
    background-image: url("../images//glassoorten.svg"); }
  .product-category.product-category-1::before {
    height: 28px;
    background-image: url("../images//houten-profielen.svg"); }
  .product-category.product-category-2::before {
    height: 34px;
    background-image: url("../images//baklijst.svg"); }
  .product-category.product-category-7::before {
    width: 38px;
    background-image: url("../images//kartonsoorten.svg"); }
  .product-category.product-category-5::before {
    background-image: url("../images//passe-partoutkarton.svg"); }
  .product-category.product-category-4::before {
    background-image: url("../images//spieramen.svg"); }

/**
 * Product category input.
 */
.product-category__input {
  display: none; }

/**
 * Product category label.
 */
.product-category__label {
  color: #456a69; }
  @media only screen and (min-width: 600px) {
    .product-category__label {
      font-size: 17px;
      font-size: 1.7rem;
      line-height: 1.58824em;
      position: relative;
      padding-bottom: 11px;
      font-family: "Montserrat", sans-serif;
      cursor: pointer; }
      .product-category__label::after {
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 3px;
        transition: opacity 140ms ease-out;
        background-color: #84bb5e;
        content: '';
        opacity: 0; } }
  @media only screen and (max-width: 599px) {
    .product-category__label {
      font-size: 12px;
      font-size: 1.2rem;
      line-height: 1.25em;
      display: inline-flex;
      padding: 20px;
      transition: background-color 140ms, color 140ms ease-out;
      border-radius: 2px;
      background-color: white;
      box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.06); } }

/**
 * Checked product category.
 */
@media only screen and (min-width: 600px) {
  .product-category__label:hover,
  .product-category__input:checked + .product-category__label {
    color: #84bb5e; }
    .product-category__label:hover::after,
    .product-category__input:checked + .product-category__label::after {
      transition: opacity 140ms ease-in;
      opacity: 1; } }

@media only screen and (max-width: 599px) {
  .product-category__label:hover,
  .product-category__input:checked + .product-category__label {
    transition: background-color 140ms, color 140ms ease-in;
    background-color: #84bb5e;
    color: white; } }

/* Search
   ========================================================================== */
/**
 * Products search.
 */
.products-search {
  margin-bottom: 35px; }

/**
 * Products search label.
 */
.products-search__legend {
  margin-bottom: 20px;
  color: #456a69; }

/**
 * Products search field.
 */
.products-search__field {
  display: flex;
  position: relative; }

/**
 * Products search input.
 */
.products-search__input {
  align-items: center;
  width: 100%;
  transition: background-color 140ms ease-out;
  border: 2px solid #f1f1f1;
  border-right: 0;
  border-radius: 2px;
  background-color: transparent; }
  .products-search__input:focus {
    transition: background-color 140ms ease-in;
    background-color: white; }
  .products-search__input::-webkit-input-placeholder {
    color: #c1c1c1; }
  .products-search__input:-ms-input-placeholder {
    color: #c1c1c1; }
  .products-search__input::-ms-input-placeholder {
    color: #c1c1c1; }
  .products-search__input::placeholder {
    color: #c1c1c1; }

/**
 * Products search submit.
 */
.products-search__submit {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.5em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  transition: background-color 140ms ease-out;
  border-radius: 2px;
  background-color: #84bb5e;
  color: white; }
  .products-search__submit:hover {
    transition: background-color 140ms ease-in;
    background-color: #60a82c; }

/* Filters
   ========================================================================== */
/**
 * Products filters.
 */
.products-filters {
  display: flex;
  border-radius: 2px;
  background-color: white;
  box-shadow: 0 2px 13px 0 rgba(0, 0, 0, 0.06); }
  @media only screen and (min-width: 600px) {
    .products-filters {
      justify-content: space-between;
      padding: 28px 35px; } }
  @media only screen and (max-width: 599px) {
    .products-filters {
      flex-direction: column;
      padding: 30px; } }

/**
 * Products filters group.
 */
@media only screen and (min-width: 600px) {
  .products-filters__group {
    max-width: 50%;
    margin: 0 20px; }
    .products-filters__group:first-child {
      margin-left: 0; }
    .products-filters__group:last-child {
      margin-right: 0; } }

@media only screen and (max-width: 599px) {
  .products-filters__group:not(:last-child) {
    margin-bottom: 40px; } }

/**
 * Products filters label.
 */
.products-filters__legend {
  margin-bottom: 15px;
  color: #456a69; }

/**
 * Products filters list.
 */
.products-filters__list {
  display: flex;
  flex-wrap: wrap; }

/**
 * Product filter input.
 */
.product-filter__input {
  display: none; }

/**
 * Product filter label.
 */
.product-filter__label {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 2.57143em;
  display: inline-flex;
  position: relative;
  align-items: center;
  height: 36px;
  margin: -1px;
  padding: 0 20px;
  transition: background-color 140ms, border-color 140ms ease-out;
  border-width: 2px;
  border-style: solid;
  border-radius: 2px;
  border-color: #f1f1f1;
  font-weight: 300;
  cursor: pointer; }
  .product-filter__label:hover {
    transition: background-color 140ms, border-color 140ms ease-in;
    background-color: #f1f1f1; }

/**
 * Checked filter.
 */
.product-filter__input:checked + .product-filter__label {
  transition: background-color 140ms, border-color 140ms ease-in;
  border-color: white;
  background-color: #84bb5e;
  color: white;
  z-index: 10; }

/* List
   ========================================================================== */
/**
 * Products load.
 */
.products-load.is-loading {
  position: relative;
  min-height: 300px; }
  .products-load.is-loading::before {
    display: none;
    font-family: "Font Awesome 5 Regular";
    content: '\f110'; }
  .products-load.is-loading > .inline-icon {
    position: absolute;
    top: calc(50% - 10px);
    left: calc(50% - 10px);
    width: 20px;
    height: 20px;
    color: #0c4b49;
    -webkit-animation-name: spinning;
            animation-name: spinning;
    -webkit-animation-duration: 1s;
            animation-duration: 1s;
    -webkit-animation-timing-function: ease;
            animation-timing-function: ease;
    -webkit-animation-iteration-count: infinite;
            animation-iteration-count: infinite; }

/**
 * Products list.
 */
.products-list {
  padding: 100px 0 0; }

/**
 * Products list item.
 */
.products-list__item {
  display: flex; }

/**
 * Product item.
 */
.product-item {
  display: flex;
  position: relative;
  flex-direction: column;
  flex-grow: 1;
  align-items: center;
  height: 100%;
  padding: 40px 40px 20px;
  transition: height 140ms ease-out;
  background-color: white;
  box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06);
  overflow: hidden; }
  @media only screen and (min-width: 600px) {
    .product-item:hover {
      height: calc(100% + 60px);
      transition: height 140ms ease-in;
      z-index: 90; }
      .product-item:hover .product-item__more-info {
        transition: opacity 140ms ease-in;
        opacity: 1; } }

/**
 * Product item image.
 */
.product-item__image {
  margin-bottom: 34px; }

/**
 * product item title.
 */
.product-item__title {
  color: #747474; }

/**
 * Product item more info.
 */
.product-item__more-info {
  display: flex;
  position: absolute;
  bottom: 0;
  left: 0;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 80px;
  transition: opacity 140ms ease-out;
  color: #84bb5e;
  opacity: 0; }

/* ==========================================================================
   Reviews
   ========================================================================== */
/**
 * Reviews.
 */
@media only screen and (min-width: 600px) {
  .reviews {
    padding: 80px 0 160px; } }

@media only screen and (max-width: 599px) {
  .reviews {
    padding: 40px 0 80px; } }

.reviews.background-color-white {
  position: relative;
  background-color: white; }
  .reviews.background-color-white::before {
    top: calc(-5vw + 1px);
    border-width: 0 0 5vw 100vw;
    border-color: transparent transparent white;
    content: ''; }
  .reviews.background-color-white::before, .reviews.background-color-white::after {
    position: absolute;
    left: 0;
    border-style: solid;
    z-index: 10; }

.reviews.background-color-grey {
  position: relative;
  background-color: #f9f8f8; }
  .reviews.background-color-grey::before {
    top: calc(-5vw + 1px);
    border-width: 0 0 5vw 100vw;
    border-color: transparent transparent #f9f8f8;
    content: ''; }
  .reviews.background-color-grey::before, .reviews.background-color-grey::after {
    position: absolute;
    left: 0;
    border-style: solid;
    z-index: 10; }

/**
 * Reviews title.
 */
.reviews__title {
  margin-bottom: 24px; }

/**
 * Reviews wrapper.
 */
@media only screen and (min-width: 600px) {
  .reviews__wrapper {
    max-width: 813.33333px;
    margin: 0 auto; } }

/**
 * Revies list.
 */
.reviews__list {
  padding: 45px 0 45px;
  display: flex; }
  .reviews__list > .owl-stage-outer {
    display: flex; }
    .reviews__list > .owl-stage-outer > .owl-stage {
      display: flex; }
      .reviews__list > .owl-stage-outer > .owl-stage > .owl-item {
        display: flex; }
  .reviews__list .owl-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 50px; }
    .reviews__list .owl-dots .owl-dot {
      height: 3px;
      margin: 0 7.5px;
      transition: background-color 140ms ease-out;
      background-color: #e3e3e3; }
      @media only screen and (min-width: 600px) {
        .reviews__list .owl-dots .owl-dot {
          width: 100%;
          max-width: 136px; } }
      @media only screen and (max-width: 599px) {
        .reviews__list .owl-dots .owl-dot {
          width: 100%;
          max-width: 58px; } }
      .reviews__list .owl-dots .owl-dot:hover {
        transition: background-color 140ms ease-in;
        background-color: #b2b2b2; }
      .reviews__list .owl-dots .owl-dot.active {
        background-color: #0c4b49; }

_:-ms-fullscreen,
:root .reviews__list {
  display: block; }
  _:-ms-fullscreen > .owl-stage-outer,
  :root .reviews__list > .owl-stage-outer {
    display: block; }
    _:-ms-fullscreen > .owl-stage-outer > .owl-stage,
    :root .reviews__list > .owl-stage-outer > .owl-stage {
      display: block; }
      _:-ms-fullscreen > .owl-stage-outer > .owl-stage > .owl-item,
      :root .reviews__list > .owl-stage-outer > .owl-stage > .owl-item {
        display: block; }

/**
 * Reviews item.
 */
.reviews__item {
  display: flex; }
  @media only screen and (min-width: 600px) {
    .reviews__item {
      padding: 12px; } }
  @media only screen and (max-width: 599px) {
    .reviews__item {
      padding: 24px; } }

/* Review
   ========================================================================== */
/**
 * Review.
 */
.review {
  display: flex;
  position: relative;
  border-radius: 8px;
  background-color: white;
  box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06); }
  .review::before {
    display: none;
    font-family: "Font Awesome 5 Solid";
    content: '\f10e'; }
  .review > .inline-icon {
    position: absolute;
    top: 40px;
    left: 45px;
    width: 32px;
    height: 32px;
    color: #c9b277; }
  .review .reviews__item-quote::before {
    display: none;
    font-family: "Font Awesome 5 Solid";
    content: '\f10e'; }
  .review .reviews__item-quote > .inline-icon {
    position: absolute;
    top: -50px;
    right: 25px;
    width: 230px;
    height: 230px;
    color: #c9b277;
    opacity: 0.04; }

/**
 * Review body.
 */
.review__body {
  padding: 38px 40px 38px 101.66667px; }

/**
 * Revies item title.
 */
.reviews__item-title {
  margin-bottom: 10px; }

/* ==========================================================================
   Site Nav
   ========================================================================== */
/**
 * Site navigation.
 */
.site-nav {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: space-between; }
  @media only screen and (min-width: 900px) {
    .site-nav {
      height: 133px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .site-nav {
      height: 72px; } }
  @media only screen and (max-width: 599px) {
    .site-nav {
      height: 62px; } }

/**
 * Site navigation home link.
 */
.site-nav__link--home {
  width: 100%; }
  @media only screen and (min-width: 900px) {
    .site-nav__link--home {
      max-width: 137px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .site-nav__link--home {
      max-width: 95px; } }
  @media only screen and (max-width: 599px) {
    .site-nav__link--home {
      max-width: 92px; } }

/**
 * Login button.
 */
.site-nav__login {
  font-size: 12px;
  font-size: 1.2rem;
  line-height: 1.5em;
  color: #60a82c; }
  @media only screen and (min-width: 900px) {
    .site-nav__login {
      position: absolute;
      top: 10px;
      right: 0; } }
  @media only screen and (max-width: 899px) {
    .site-nav__login {
      margin-top: 20px;
      text-align: center; } }
  .site-nav__login::before {
    display: none;
    font-family: "Font Awesome 5 Light";
    content: '\f023'; }
  .site-nav__login > .inline-icon {
    margin-right: 5px; }

.site-nav__login--logout::before {
  display: none;
  font-family: "Font Awesome 5 Light";
  content: '\f09c'; }

/**
 * Site navigation list.
 */
@media only screen and (max-width: 899px) {
  .site-nav__list {
    display: flex;
    position: fixed;
    top: 0;
    left: 0;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    height: 100%;
    background-color: white;
    z-index: 90; }
    .site-nav__list:not(.is-active) {
      display: none; } }

/**
 * Site navigation button.
 */
.site-nav__button {
  position: absolute;
  top: 0;
  right: 0;
  align-items: center;
  justify-content: center;
  border-radius: 2px;
  background-color: #005553;
  color: white;
  z-index: 90; }
  @media only screen and (min-width: 900px) {
    .site-nav__button {
      display: none; } }
  @media only screen and (max-width: 899px) {
    .site-nav__button {
      display: flex; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .site-nav__button {
      width: 72px;
      height: 72px; } }
  @media only screen and (max-width: 599px) {
    .site-nav__button {
      width: 63px;
      height: 63px; } }
  .site-nav__button > .inline-icon {
    width: 20px;
    height: 20px; }
  .site-nav__button::after {
    display: none;
    font-family: "Font Awesome 5 Light";
    content: '\f0c9'; }
  .site-nav__button.is-active {
    position: fixed; }
    .site-nav__button.is-active::after {
      display: none;
      font-family: "Font Awesome 5 Light";
      content: '\f00d'; }

/* Main Menu
   ========================================================================== */
/**
 * WordPress main menu class overrides.
 */
/**
 * Main menu.
 */
.main-menu {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5em;
  display: flex;
  font-family: "Montserrat", sans-serif; }
  @media only screen and (max-width: 899px) {
    .main-menu {
      flex-direction: column; } }

/**
 * Menu item.
 */
@media only screen and (min-width: 900px) {
  .main-menu > .menu-item {
    margin: 0 15px; }
    .main-menu > .menu-item:last-child {
      margin-right: 0; }
    .main-menu > .menu-item:first-child {
      margin-left: 0; } }

@media only screen and (max-width: 899px) {
  .main-menu > .menu-item {
    margin: 5px 0; } }

/**
 * Menu item link.
 */
.main-menu > .menu-item > a {
  display: block;
  transition: color 140ms ease-out; }
  @media only screen and (max-width: 899px) {
    .main-menu > .menu-item > a {
      text-align: center; } }
  .main-menu > .menu-item > a:hover {
    transition: color 140ms ease-in;
    color: #60a82c; }

/**
 * Menu item with children.
 */
.main-menu > .menu-item-has-children {
  position: relative; }
  .main-menu > .menu-item-has-children > a {
    position: relative; }
    @media only screen and (min-width: 900px) {
      .main-menu > .menu-item-has-children > a {
        padding-right: 24px; } }

.main-menu > .menu-item-has-children:hover .submenu-container {
  pointer-events: auto; }
  @media only screen and (min-width: 900px) {
    .main-menu > .menu-item-has-children:hover .submenu-container {
      display: block; } }

/**
 * Current menu item.
 */
.main-menu > .current-menu-item > a,
.main-menu > .current-page-ancestor > a {
  color: #60a82c;
  font-weight: 800; }

/* Submenu
   ========================================================================== */
/**
 * Submenu button.
 */
.submenu-button {
  position: absolute;
  top: calc(50% - 8px);
  color: #005553; }
  @media only screen and (min-width: 900px) {
    .submenu-button {
      right: 0; } }
  @media only screen and (max-width: 899px) {
    .submenu-button {
      right: 20px; } }
  .submenu-button > .inline-icon {
    width: 16px;
    height: 16px;
    transition: -webkit-transform 140ms ease-out;
    transition: transform 140ms ease-out;
    transition: transform 140ms ease-out, -webkit-transform 140ms ease-out; }
  @media only screen and (max-width: 1199px) {
    .submenu-button.is-active > .inline-icon {
      -webkit-transform: rotate(180deg);
              transform: rotate(180deg);
      transition: -webkit-transform 140ms ease-in;
      transition: transform 140ms ease-in;
      transition: transform 140ms ease-in, -webkit-transform 140ms ease-in; } }

/**
 * Submenu container.
 */
.submenu-container {
  display: none; }
  @media only screen and (min-width: 900px) {
    .submenu-container {
      position: absolute;
      top: 100%;
      left: calc(50% - 120px);
      width: 240px;
      padding-top: 20px; } }
  @media only screen and (max-width: 899px) {
    .submenu-container {
      padding-top: 10px; } }

/**
 * Submenu.
 */
.submenu {
  background-color: #005553;
  color: white; }
  @media only screen and (min-width: 900px) {
    .submenu {
      display: flex;
      position: relative;
      flex-direction: column;
      align-items: center;
      padding: 15px 20px;
      border-radius: 8px; }
      .submenu::before {
        position: absolute;
        top: -3px;
        left: calc(50% - 5px);
        width: 10px;
        height: 10px;
        -webkit-transform: rotate(45deg);
                transform: rotate(45deg);
        border-radius: 2px;
        background-color: #005553;
        content: ''; } }
  @media only screen and (max-width: 899px) {
    .submenu {
      padding: 5px 0; } }

/**
 * Submenu item.
 */
.submenu > .menu-item {
  padding: 5px 0; }

/**
 * Submenu item link.
 */
.submenu > .menu-item > a {
  transition: color 140ms ease-out; }
  @media only screen and (max-width: 899px) {
    .submenu > .menu-item > a {
      display: block;
      text-align: center; } }
  .submenu > .menu-item > a:hover {
    transition: color 140ms ease-in;
    color: #c8c8c8; }

/* ==========================================================================
   Stores
   ========================================================================== */
.store-finder__introduction {
  margin-bottom: 50px;
  text-align: center; }

/**
 * Store locator plugin [disabled ID's in sass lint]
 */
/**
 * Search.
 */
.wpsl-search {
  margin-bottom: 0;
  padding: 22px 12px 10px; }

#wpsl-search-wrap {
  max-width: calc(1220px + 48px);
  padding: 0 24px;
  margin: 0 auto;
  float: none; }

#wpsl-wrap .wpsl-selected-item {
  padding: 5px 12px !important; }

#wpsl-search-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 34px;
  padding: 10px 20px;
  transition: background-color 140ms ease-out;
  border: 0 !important;
  border-radius: 2px;
  background-color: #84bb5e;
  background-image: none;
  color: white;
  line-height: 1;
  text-align: center;
  box-shadow: none; }
  #wpsl-search-btn:hover {
    transition: background-color 140ms ease-in;
    background-color: #60a82c; }
  #wpsl-search-btn > .inline-icon {
    margin-right: 10px; }

/**
 * Map.
 */
#wpsl-gmap {
  display: block;
  width: 100%;
  margin-top: 0;
  float: none; }

/**
 * Results.
 */
#wpsl-result-list #wpsl-stores {
  height: auto !important;
  margin-top: 50px; }

#wpsl-result-list {
  max-width: calc(1220px + 48px);
  padding: 0 24px;
  margin: 0 auto;
  width: 100%; }

#wpsl-result-list ul {
  display: flex;
  flex-wrap: wrap; }

#wpsl-wrap #wpsl-result-list ul li {
  position: relative;
  width: calc(25% - 24px);
  margin: 12px;
  padding: 40px 40px 120px;
  border: 0;
  box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06); }
  @media only screen and (max-width: 1199px) {
    #wpsl-wrap #wpsl-result-list ul li {
      width: calc(33.3334% - 24px); } }
  @media only screen and (max-width: 899px) {
    #wpsl-wrap #wpsl-result-list ul li {
      width: calc(50% - 24px); }
      #wpsl-wrap #wpsl-result-list ul li:nth-child(2n + 2)::after {
        content: none; } }
  @media only screen and (max-width: 599px) {
    #wpsl-wrap #wpsl-result-list ul li {
      width: 100%; }
      #wpsl-wrap #wpsl-result-list ul li:nth-child(1n + 1)::after {
        content: none; } }
  #wpsl-wrap #wpsl-result-list ul li::after {
    position: absolute;
    top: 0;
    right: 0;
    width: 1px;
    height: calc(100% - 25px);
    content: ''; }
  #wpsl-wrap #wpsl-result-list ul li:nth-child(4n + 4)::after {
    content: none; }

.wpsl-store-location strong {
  display: inline-block;
  width: 100%;
  margin-bottom: 10px; }

#wpsl-stores .wpsl-directions {
  display: inline-flex;
  position: absolute;
  right: 40px;
  bottom: 40px;
  left: 40px;
  align-items: center;
  justify-content: center;
  width: calc(100% - 80px);
  min-height: 48px;
  padding: 15px 20px;
  transition: background-color 140ms ease-out;
  border-radius: 2px;
  background-color: #84bb5e;
  color: white;
  text-align: center; }
  #wpsl-stores .wpsl-directions:hover {
    transition: background-color 140ms ease-in;
    background-color: #60a82c; }
  #wpsl-stores .wpsl-directions > .inline-icon {
    margin-right: 10px; }

/* ==========================================================================
   USP's
   ========================================================================== */
/**
 * USP's.
 */
@media only screen and (min-width: 600px) {
  .usps {
    padding: 80px 0 160px; } }

@media only screen and (max-width: 599px) {
  .usps {
    padding: 40px 0 80px; } }

.usps.background-color-white {
  position: relative;
  background-color: white; }
  .usps.background-color-white::before {
    top: calc(-5vw + 1px);
    border-width: 0 0 5vw 100vw;
    border-color: transparent transparent white;
    content: ''; }
  .usps.background-color-white::before, .usps.background-color-white::after {
    position: absolute;
    left: 0;
    border-style: solid;
    z-index: 10; }

.usps.background-color-grey {
  position: relative;
  background-color: #f9f8f8; }
  .usps.background-color-grey::before {
    top: calc(-5vw + 1px);
    border-width: 0 0 5vw 100vw;
    border-color: transparent transparent #f9f8f8;
    content: ''; }
  .usps.background-color-grey::before, .usps.background-color-grey::after {
    position: absolute;
    left: 0;
    border-style: solid;
    z-index: 10; }

/**
 * USP's wrapper.
 */
@media only screen and (min-width: 600px) {
  .usps__wrapper {
    max-width: calc(1220px + 96px);
    padding: 0 48px;
    margin: 0 auto; } }

/**
 * USP's list.
 */
@media only screen and (max-width: 599px) {
  .usps__list {
    display: flex;
    margin-right: 0;
    margin-left: 0; }
    .usps__list > .owl-stage-outer {
      display: flex; }
      .usps__list > .owl-stage-outer > .owl-stage {
        display: flex; }
        .usps__list > .owl-stage-outer > .owl-stage > .owl-item {
          display: flex; }
          .usps__list > .owl-stage-outer > .owl-stage > .owl-item > .usps__item {
            display: flex; } }

@media only screen and (max-width: 599px) {
  _:-ms-fullscreen,
  :root .usps__list {
    display: block; }
    _:-ms-fullscreen > .owl-stage-outer,
    :root .usps__list > .owl-stage-outer {
      display: block; }
      _:-ms-fullscreen > .owl-stage-outer > .owl-stage,
      :root .usps__list > .owl-stage-outer > .owl-stage {
        display: block; }
        _:-ms-fullscreen > .owl-stage-outer > .owl-stage > .owl-item,
        :root .usps__list > .owl-stage-outer > .owl-stage > .owl-item {
          display: block; }
          _:-ms-fullscreen > .owl-stage-outer > .owl-stage > .owl-item > .usps__item,
          :root .usps__list > .owl-stage-outer > .owl-stage > .owl-item > .usps__item {
            display: block; } }

/**
 * USP's content.
 */
.usps__content {
  text-align: center; }

/**
 * USP's title.
 */
.usps__title {
  margin-bottom: 24px; }

/**
 * USP's editor.
 */
.usps__editor {
  margin-bottom: 35px; }

/* USP
   ========================================================================== */
/**
 * USP.
 */
.usp {
  position: relative;
  width: 100%;
  border-radius: 2px;
  background-color: white;
  box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06); }
  @media only screen and (min-width: 900px) {
    .usp {
      padding: 40px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .usp {
      padding: 80px 40px 40px; } }
  @media only screen and (max-width: 599px) {
    .usp {
      padding: 40px; } }

/**
 * USP image.
 */
.usp__icon {
  position: absolute;
  top: 20px;
  right: 40px;
  width: 60px;
  height: 60px; }

.usp__image {
  width: 60px;
  height: 60px; }

/**
 * USP title.
 */
.usp__title {
  margin-bottom: 6px;
  padding-right: 80px; }

/**
 * USP editor.
 */
.usp__editor {
  font-weight: 300; }

.gallery-item {
  display: flex;
  position: relative;
  flex-direction: column;
  flex-grow: 1;
  align-items: center;
  height: 100%;
  padding: 40px 40px 20px;
  transition: height 140ms ease-out;
  background-color: white;
  box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06);
  overflow: hidden; }

.gallery-item__image {
  margin-bottom: 34px; }
  .gallery-item__image img {
    width: auto;
    max-width: 200px;
    height: auto;
    max-height: 133px; }

.gallery-item__title {
  color: #747474; }

.gallery-list__item {
  display: flex; }

/* ==========================================================================
   Animations
   ========================================================================== */
/**
 * Spinning animation.
 */
@-webkit-keyframes spinning {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }
@keyframes spinning {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

/* ==========================================================================
   Heading
   ========================================================================== */
/**
 * Heading utility class.
 */
.heading {
  font-family: "Montserrat", sans-serif; }

/**
 * Heading 1.
 */
.heading-1 {
  font-family: "Montserrat", sans-serif;
  font-weight: 700; }
  @media only screen and (max-width: 599px) {
    .heading-1 {
      font-size: 25px;
      font-size: 2.5rem;
      line-height: 1.24em; } }
  @media only screen and (min-width: 600px) {
    .heading-1 {
      font-size: 45px;
      font-size: 4.5rem;
      line-height: 1.2em; } }

/**
 * Heading 2.
 */
.heading-2 {
  font-family: "Montserrat", sans-serif;
  font-weight: 800; }
  @media only screen and (min-width: 600px) {
    .heading-2 {
      font-size: 40px;
      font-size: 4rem;
      line-height: 1.2em; } }
  @media only screen and (max-width: 599px) {
    .heading-2 {
      font-size: 23px;
      font-size: 2.3rem;
      line-height: 1.43478em; } }

/**
 * Heading 3.
 */
.heading-3 {
  font-size: 20px;
  font-size: 2rem;
  line-height: 1.5em;
  font-family: "Montserrat", sans-serif;
  font-weight: 700; }

/* ==========================================================================
   Object Fit
   ========================================================================== */
/**
 * Helper class for object fit polyfill. Add this class to any element
 * that utilizes the `object-fit` property.
 */
.object-fit {
  font-family: 'object-fit: cover;';
  -o-object-fit: cover;
     object-fit: cover; }

/* ==========================================================================
   Text
   ========================================================================== */
/**
 * Generate utility classes for manipulation of font sizes.
 */
.text-jumbo {
  font-size: 45px;
  font-size: 4.5rem;
  line-height: 1.2em; }

.text-huge {
  font-size: 40px;
  font-size: 4rem;
  line-height: 1.2em; }

.text-large {
  font-size: 20px;
  font-size: 2rem;
  line-height: 1.5em; }

.text-regular {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.5em; }

.text-small {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5em; }

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

.text-micro {
  font-size: 13px;
  font-size: 1.3rem;
  line-height: 1.5em; }

/**
 * Generate utility classes for manipulation of text alignment.
 */
.text-left {
  text-align: left; }

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

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

/**
 * Generate utility classes for manipulation of font weight.
 */
.text-100 {
  font-weight: 100; }

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

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

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

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

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

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

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

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

/**
 * Text colors.
 */
.text-white-100 {
  color: white; }

.text-dark-green-700 {
  color: #456a69; }

/* ==========================================================================
   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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9vd2wuY2Fyb3VzZWwvc3JjL3Njc3MvX2NvcmUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9vd2wuY2Fyb3VzZWwvc3JjL3Njc3MvX2FuaW1hdGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9vd2wuY2Fyb3VzZWwvc3JjL3Njc3MvX2F1dG9oZWlnaHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9vd2wuY2Fyb3VzZWwvc3JjL3Njc3MvX2xhenlsb2FkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvb3dsLmNhcm91c2VsL3NyYy9zY3NzL192aWRlby5zY3NzIiwidG9vbHMvX2V4dGVuZHMuc2NzcyIsInRvb2xzL19tYWduaWZpYy1wb3B1cC5zY3NzIiwiZWxlbWVudHMvX3Jlc2V0LnNjc3MiLCJnZW5lcmljL19iYXNlLnNjc3MiLCJ0b29scy9fbWl4aW5zLnNjc3MiLCJzZXR0aW5ncy9fdHlwb2dyYXBoeS5zY3NzIiwidG9vbHMvX2Z1bmN0aW9ucy5zY3NzIiwic2V0dGluZ3MvX2NvbG9yLnNjc3MiLCJvYmplY3RzL19jb250ZW50LWNvbnN0cmFpbnQuc2NzcyIsIm9iamVjdHMvX3dyYXBwZXIuc2NzcyIsInNldHRpbmdzL19kZWZpbml0aW9ucy5zY3NzIiwib2JqZWN0cy9fcGFnZS5zY3NzIiwib2JqZWN0cy9fbGF5b3V0LnNjc3MiLCJjb21wb25lbnRzL19idXR0b24uc2NzcyIsImNvbXBvbmVudHMvX2Ntcy1vdXRwdXQuc2NzcyIsImNvbXBvbmVudHMvX2NvbnRhY3Quc2NzcyIsImNvbXBvbmVudHMvX2NvbnRlbnQtY29sdW1ucy5zY3NzIiwidG9vbHMvX2Nvcm5lci5zY3NzIiwic2V0dGluZ3MvX3otaW5kZXguc2NzcyIsImNvbXBvbmVudHMvX2NvbnRlbnQtZGVmYXVsdC5zY3NzIiwiY29tcG9uZW50cy9fZWRpdG9yLnNjc3MiLCJjb21wb25lbnRzL19mZWF0dXJlZC1wcm9kdWN0cy5zY3NzIiwiY29tcG9uZW50cy9fZml4ZWQtcGhvbmVudW1iZXIuc2NzcyIsImNvbXBvbmVudHMvX2Zvcm0uc2NzcyIsImNvbXBvbmVudHMvX2hlYWRlci5zY3NzIiwiY29tcG9uZW50cy9faGVyby5zY3NzIiwiY29tcG9uZW50cy9faW5wdXQuc2NzcyIsImNvbXBvbmVudHMvX2xvZ2luLnNjc3MiLCJjb21wb25lbnRzL19uZXdzLWl0ZW0uc2NzcyIsImNvbXBvbmVudHMvX25ld3MtbGlzdC5zY3NzIiwiY29tcG9uZW50cy9fbmV3cy1zaW5nbGUuc2NzcyIsImNvbXBvbmVudHMvX3BhZ2UtZm9vdGVyLnNjc3MiLCJjb21wb25lbnRzL19wYWdlLWhlYWRlci5zY3NzIiwiY29tcG9uZW50cy9fcGFnZS1taWNyby5zY3NzIiwiY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzIiwiY29tcG9uZW50cy9fcHJvZHVjdHMtc2luZ2xlLnNjc3MiLCJjb21wb25lbnRzL19wcm9kdWN0LXNlbGVjdC5zY3NzIiwiY29tcG9uZW50cy9fcHJvZHVjdHMuc2NzcyIsImNvbXBvbmVudHMvX3Jldmlld3Muc2NzcyIsImNvbXBvbmVudHMvX3NpdGUtbmF2LnNjc3MiLCJjb21wb25lbnRzL19zdG9yZXMuc2NzcyIsImNvbXBvbmVudHMvX3VzcHMuc2NzcyIsImNvbXBvbmVudHMvX2dhbGxlcnkuc2NzcyIsInV0aWxpdGllcy9fYW5pbWF0aW9ucy5zY3NzIiwidXRpbGl0aWVzL19oZWFkaW5nLnNjc3MiLCJ1dGlsaXRpZXMvX29iamVjdC1maXQuc2NzcyIsInV0aWxpdGllcy9fdGV4dC5zY3NzIiwidXRpbGl0aWVzL196LWluZGV4LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSDtFQUNDLGNBQWE7RUFDYixZQUFXO0VBQ1gseUNBQXdDO0VBQ3hDLG9FQUFvRTtFQUNwRSxtQkFBa0I7RUFDbEIsV0FBVSxFQStHVjtFQXJIRDtJQVNFLG1CQUFrQjtJQUVsQiwyQkFBMEI7SUFDMUIsaUNBQWdDO0lBQUUsa0NBQWtDLEVB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O0VBQ0UsWTdCSUksRTZCSEw7O0FBRkQ7RUFDRSxZN0JLSSxFNkJKTDs7QUFGRDtFQUNFLFk3Qk1JLEU2QkxMOztBQUZEO0VBQ0UsWTdCT0ksRTZCTkw7O0FBRkQ7RUFDRSxhN0JRSyxFNkJQTiIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiAgT3dsIENhcm91c2VsIC0gQ29yZVxuICovXG4ub3dsLWNhcm91c2VsIHtcblx0ZGlzcGxheTogbm9uZTtcblx0d2lkdGg6IDEwMCU7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdC8qIHBvc2l0aW9uIHJlbGF0aXZlIGFuZCB6LWluZGV4IGZpeCB3ZWJraXQgcmVuZGVyaW5nIGZvbnRzIGlzc3VlICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMTtcblxuXHQub3dsLXN0YWdlIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0LW1zLXRvdWNoLWFjdGlvbjogcGFuLVk7XG5cdFx0dG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG5cdFx0LW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IC8qIGZpeCBmaXJlZm94IGFuaW1hdGlvbiBnbGl0Y2ggKi9cblx0fVxuXG5cdC5vd2wtc3RhZ2U6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiLlwiO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGNsZWFyOiBib3RoO1xuXHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHRsaW5lLWhlaWdodDogMDtcblx0XHRoZWlnaHQ6IDA7XG5cdH1cblxuXHQub3dsLXN0YWdlLW91dGVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHQvKiBmaXggZm9yIGZsYXNoaW5nIGJhY2tncm91bmQgKi9cblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwcHgsIDBweCk7XG5cdH1cblxuXHQub3dsLXdyYXBwZXIsXG5cdC5vd2wtaXRlbXtcblx0XHQtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHQtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHQtbXMtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG5cdFx0LW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcblx0XHQtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG5cdH1cblxuXHQub3dsLWl0ZW0ge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRtaW4taGVpZ2h0OiAxcHg7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHQtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG5cdH1cblx0Lm93bC1pdGVtIGltZyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHQub3dsLW5hdi5kaXNhYmxlZCxcblx0Lm93bC1kb3RzLmRpc2FibGVkIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0Lm93bC1uYXYgLm93bC1wcmV2LFxuXHQub3dsLW5hdiAub3dsLW5leHQsXG5cdC5vd2wtZG90IHtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0XHQta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0XHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdH1cblxuXHQub3dsLW5hdiBidXR0b24ub3dsLXByZXYsXG5cdC5vd2wtbmF2IGJ1dHRvbi5vd2wtbmV4dCxcblx0YnV0dG9uLm93bC1kb3Qge1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHRcdHBhZGRpbmc6MCFpbXBvcnRhbnQ7XG5cdFx0Zm9udDogaW5oZXJpdDtcblx0fVxuXG5cdCYub3dsLWxvYWRlZCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHQmLm93bC1sb2FkaW5nIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0Ji5vd2wtaGlkZGVuIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cblx0Ji5vd2wtcmVmcmVzaCAub3dsLWl0ZW0ge1xuXHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0fVxuXG5cdCYub3dsLWRyYWcgLm93bC1pdGVtIHtcblx0XHR0b3VjaC1hY3Rpb246IHBhbi15O1xuXHRcdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0XHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdH1cblxuXHQmLm93bC1ncmFiIHtcblx0XHRjdXJzb3I6IG1vdmU7XG5cdFx0Y3Vyc29yOiBncmFiO1xuXHR9XG5cblx0Ji5vd2wtcnRsIHtcblx0XHRkaXJlY3Rpb246IHJ0bDtcblx0fVxuXG5cdCYub3dsLXJ0bCAub3dsLWl0ZW0ge1xuXHRcdGZsb2F0OiByaWdodDtcblx0fVxufVxuXG4vKiBObyBKcyAqL1xuLm5vLWpzIC5vd2wtY2Fyb3VzZWwge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cbiIsIi8qXG4gKiAgT3dsIENhcm91c2VsIC0gQW5pbWF0ZSBQbHVnaW5cbiAqL1xuLm93bC1jYXJvdXNlbHtcblx0LmFuaW1hdGVkIHtcblx0XHRhbmltYXRpb24tZHVyYXRpb246IDEwMDBtcztcblx0XHRhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuXHR9XG5cdC5vd2wtYW5pbWF0ZWQtaW4ge1xuXHRcdHotaW5kZXg6IDA7XG5cdH1cblx0Lm93bC1hbmltYXRlZC1vdXQge1xuXHRcdHotaW5kZXg6IDE7XG5cdH1cblx0LmZhZGVPdXQge1xuXHRcdGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0O1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dCB7XG5cdDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxufVxuIiwiLypcbiAqIFx0T3dsIENhcm91c2VsIC0gQXV0byBIZWlnaHQgUGx1Z2luXG4gKi9cblxuLm93bC1oZWlnaHQge1xuXHR0cmFuc2l0aW9uOiBoZWlnaHQgNTAwbXMgZWFzZS1pbi1vdXQ7XG59XG4iLCIvKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBMYXp5IExvYWQgUGx1Z2luXG4gKi9cblxuLm93bC1jYXJvdXNlbCB7XG5cdC5vd2wtaXRlbSB7XG5cdFx0Lm93bC1sYXp5IHtcblx0XHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlO1xuXHRcdH1cblxuXHRcdC8qKlxuXHRcdFx0VGhpcyBpcyBpbnRyb2R1Y2VkIGR1ZSB0byBhIGJ1ZyBpbiBJRTExIHdoZXJlIGxhenkgbG9hZGluZyBjb21iaW5lZCB3aXRoIGF1dG9oZWlnaHQgcGx1Z2luIGNhdXNlcyBhIHdyb25nXG5cdFx0XHRjYWxjdWxhdGlvbiBvZiB0aGUgaGVpZ2h0IG9mIHRoZSBvd2wtaXRlbSB0aGF0IGJyZWFrcyBwYWdlIGxheW91dHNcblx0XHQgKi9cblx0XHQub3dsLWxhenlbc3JjXj1cIlwiXSwgLm93bC1sYXp5Om5vdChbc3JjXSkge1xuXHRcdFx0bWF4LWhlaWdodDogMDtcblx0XHR9XG5cblx0XHRpbWcub3dsLWxhenkge1xuXHRcdFx0dHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcblx0XHR9XG5cdH1cbn1cblxuIiwiJG93bC1pbWFnZS1wYXRoOiBcIlwiICFkZWZhdWx0O1xuXG4vKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBWaWRlbyBQbHVnaW5cbiAqL1xuXG4ub3dsLWNhcm91c2Vse1xuXHQub3dsLXZpZGVvLXdyYXBwZXIge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0YmFja2dyb3VuZDogIzAwMDtcblx0fVxuXG5cdC5vd2wtdmlkZW8tcGxheS1pY29uIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0aGVpZ2h0OiA4MHB4O1xuXHRcdHdpZHRoOiA4MHB4O1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0b3A6IDUwJTtcblx0XHRtYXJnaW4tbGVmdDogLTQwcHg7XG5cdFx0bWFyZ2luLXRvcDogLTQwcHg7XG5cdFx0YmFja2dyb3VuZDogdXJsKFwiI3skb3dsLWltYWdlLXBhdGh9b3dsLnZpZGVvLnBsYXkucG5nXCIpIG5vLXJlcGVhdDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0ei1pbmRleDogMTtcblx0XHQtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTAwbXMgZWFzZTtcblx0fVxuXG5cdC5vd2wtdmlkZW8tcGxheS1pY29uOmhvdmVyIHtcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDEuMywgMS4zKTtcblx0fVxuXG5cdC5vd2wtdmlkZW8tcGxheWluZyAub3dsLXZpZGVvLXRuLFxuXHQub3dsLXZpZGVvLXBsYXlpbmcgLm93bC12aWRlby1wbGF5LWljb24ge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQub3dsLXZpZGVvLXRuIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuXHRcdHRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZTtcblx0fVxuXG5cdC5vd2wtdmlkZW8tZnJhbWUge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR6LWluZGV4OiAxO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gRXh0ZW5kc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuXHJcbi8vIFZpc3VhbGx5IEhpZGRlblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gVmlzdWFsbHkgaGlkZSBhbiBlbGVtZW50IGZyb20gdGhlIHVzZXIuXHJcbiV2aXN1YWxseS1oaWRkZW4ge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB3aWR0aDogMXB4O1xyXG4gIGhlaWdodDogMXB4O1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XHJcbiAgY2xpcC1wYXRoOiBpbnNldCgxcHgpO1xyXG59XHJcblxyXG5cclxuLy8gT2JqZWN0IEZpdFxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gQ29udGFpbiBwcm9wb3J0aW9ucy5cclxuJW9iamVjdC1maXQtY29udGFpbiB7XHJcbiAgZm9udC1mYW1pbHk6ICdvYmplY3QtZml0OiBjb250YWluOyc7XHJcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcclxufVxyXG5cclxuLy8gQ292ZXIgYmFja2dyb3VuZC5cclxuJW9iamVjdC1maXQtY292ZXIge1xyXG4gIGZvbnQtZmFtaWx5OiAnb2JqZWN0LWZpdDogY292ZXI7JztcclxuICBvYmplY3QtZml0OiBjb3ZlcjtcclxufVxyXG5cclxuXHJcbi8vIFRleHRcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbkBlYWNoICRrZXksICR2YWx1ZSBpbiAkZm9udC1zaXplIHtcclxuICAldGV4dC0jeyRrZXl9IHtcclxuICAgIEBpbmNsdWRlIGZvbnQoJHZhbHVlLCBtYXAtZ2V0KCRsaW5lLWhlaWdodCwgJGtleSkpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIEZvbnQgV2VpZ2h0XHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5AZm9yICRpIGZyb20gMSB0aHJvdWdoIDkge1xyXG4gICRpOiAkaSAqIDEwMDtcclxuXHJcbiAgJXRleHQtI3skaX0ge1xyXG4gICAgZm9udC13ZWlnaHQ6ICN7JGl9O1xyXG4gIH1cclxufVxyXG4iLCIvLyBzYXNzLWxpbnQ6ZGlzYWJsZSBpbmRlbnRhdGlvbiBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzIHNob3J0aGFuZC12YWx1ZXMgc2luZ2xlLWxpbmUtcGVyLXNlbGVjdG9yIGNsYXNzLW5hbWUtZm9ybWF0IG5vLWlkcyBpZC1uYW1lLWZvcm1hdCBwcm9wZXJ0eS1zb3J0LW9yZGVyIG5vLWNvbG9yLWxpdGVyYWxzIGhleC1ub3RhdGlvbiBicmFjZS1zdHlsZSB6ZXJvLXVuaXQgc3BhY2UtYWZ0ZXItY29sb24gZW1wdHktbGluZS1iZXR3ZWVuLWJsb2Nrc1xyXG5cclxuXHJcbi8qIE1hZ25pZmljIFBvcHVwIENTUyAqL1xyXG4ubWZwLWJnIHtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgei1pbmRleDogMTA0MjtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBiYWNrZ3JvdW5kOiAjMGIwYjBiO1xyXG4gIG9wYWNpdHk6IDAuODsgfVxyXG5cclxuLm1mcC13cmFwIHtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgei1pbmRleDogMTA0MztcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xyXG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XHJcblxyXG4ubWZwLWNvbnRhaW5lciB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDA7XHJcbiAgcGFkZGluZzogMCA4cHg7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxyXG5cclxuLm1mcC1jb250YWluZXI6YmVmb3JlIHtcclxuICBjb250ZW50OiAnJztcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cclxuXHJcbi5tZnAtYWxpZ24tdG9wIC5tZnAtY29udGFpbmVyOmJlZm9yZSB7XHJcbiAgZGlzcGxheTogbm9uZTsgfVxyXG5cclxuLm1mcC1jb250ZW50IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxuICB6LWluZGV4OiAxMDQ1OyB9XHJcblxyXG4ubWZwLWlubGluZS1ob2xkZXIgLm1mcC1jb250ZW50LFxyXG4ubWZwLWFqYXgtaG9sZGVyIC5tZnAtY29udGVudCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgY3Vyc29yOiBhdXRvOyB9XHJcblxyXG4ubWZwLWFqYXgtY3VyIHtcclxuICBjdXJzb3I6IHByb2dyZXNzOyB9XHJcblxyXG4ubWZwLXpvb20tb3V0LWN1ciwgLm1mcC16b29tLW91dC1jdXIgLm1mcC1pbWFnZS1ob2xkZXIgLm1mcC1jbG9zZSB7XHJcbiAgY3Vyc29yOiAtbW96LXpvb20tb3V0O1xyXG4gIGN1cnNvcjogLXdlYmtpdC16b29tLW91dDtcclxuICBjdXJzb3I6IHpvb20tb3V0OyB9XHJcblxyXG4ubWZwLXpvb20ge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBjdXJzb3I6IC13ZWJraXQtem9vbS1pbjtcclxuICBjdXJzb3I6IC1tb3otem9vbS1pbjtcclxuICBjdXJzb3I6IHpvb20taW47IH1cclxuXHJcbi5tZnAtYXV0by1jdXJzb3IgLm1mcC1jb250ZW50IHtcclxuICBjdXJzb3I6IGF1dG87IH1cclxuXHJcbi5tZnAtY2xvc2UsXHJcbi5tZnAtYXJyb3csXHJcbi5tZnAtcHJlbG9hZGVyLFxyXG4ubWZwLWNvdW50ZXIge1xyXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxyXG5cclxuLm1mcC1sb2FkaW5nLm1mcC1maWd1cmUge1xyXG4gIGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcbi5tZnAtaGlkZSB7XHJcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XHJcblxyXG4ubWZwLXByZWxvYWRlciB7XHJcbiAgY29sb3I6ICNDQ0M7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogNTAlO1xyXG4gIHdpZHRoOiBhdXRvO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBtYXJnaW4tdG9wOiAtMC44ZW07XHJcbiAgbGVmdDogOHB4O1xyXG4gIHJpZ2h0OiA4cHg7XHJcbiAgei1pbmRleDogMTA0NDsgfVxyXG4ubWZwLXByZWxvYWRlciBhIHtcclxuICBjb2xvcjogI0NDQzsgfVxyXG4ubWZwLXByZWxvYWRlciBhOmhvdmVyIHtcclxuICBjb2xvcjogI0ZGRjsgfVxyXG5cclxuLm1mcC1zLXJlYWR5IC5tZnAtcHJlbG9hZGVyIHtcclxuICBkaXNwbGF5OiBub25lOyB9XHJcblxyXG4ubWZwLXMtZXJyb3IgLm1mcC1jb250ZW50IHtcclxuICBkaXNwbGF5OiBub25lOyB9XHJcblxyXG5idXR0b24ubWZwLWNsb3NlLFxyXG5idXR0b24ubWZwLWFycm93IHtcclxuICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBvdXRsaW5lOiBub25lO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgei1pbmRleDogMTA0NjtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9XHJcblxyXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgYm9yZGVyOiAwOyB9XHJcblxyXG4ubWZwLWNsb3NlIHtcclxuICB3aWR0aDogNDRweDtcclxuICBoZWlnaHQ6IDQ0cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDQ0cHg7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHRvcDogMDtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG9wYWNpdHk6IDAuNjU7XHJcbiAgcGFkZGluZzogMCAwIDE4cHggMTBweDtcclxuICBjb2xvcjogI0ZGRjtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zaXplOiAyOHB4O1xyXG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgQmFza2VydmlsbGUsIG1vbm9zcGFjZTsgfVxyXG4ubWZwLWNsb3NlOmhvdmVyLFxyXG4ubWZwLWNsb3NlOmZvY3VzIHtcclxuICBvcGFjaXR5OiAxOyB9XHJcbi5tZnAtY2xvc2U6YWN0aXZlIHtcclxuICB0b3A6IDFweDsgfVxyXG5cclxuLm1mcC1jbG9zZS1idG4taW4gLm1mcC1jbG9zZSB7XHJcbiAgY29sb3I6ICMzMzM7IH1cclxuXHJcbi5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtY2xvc2UsXHJcbi5tZnAtaWZyYW1lLWhvbGRlciAubWZwLWNsb3NlIHtcclxuICBjb2xvcjogI0ZGRjtcclxuICByaWdodDogLTZweDtcclxuICB0ZXh0LWFsaWduOiByaWdodDtcclxuICBwYWRkaW5nLXJpZ2h0OiA2cHg7XHJcbiAgd2lkdGg6IDEwMCU7IH1cclxuXHJcbi5tZnAtY291bnRlciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICByaWdodDogMDtcclxuICBjb2xvcjogI0NDQztcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxyXG5cclxuLm1mcC1hcnJvdyB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIG9wYWNpdHk6IDAuNjU7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHRvcDogNTAlO1xyXG4gIG1hcmdpbi10b3A6IC01NXB4O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgd2lkdGg6IDkwcHg7XHJcbiAgaGVpZ2h0OiAxMTBweDtcclxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XHJcbi5tZnAtYXJyb3c6YWN0aXZlIHtcclxuICBtYXJnaW4tdG9wOiAtNTRweDsgfVxyXG4ubWZwLWFycm93OmhvdmVyLFxyXG4ubWZwLWFycm93OmZvY3VzIHtcclxuICBvcGFjaXR5OiAxOyB9XHJcbi5tZnAtYXJyb3c6YmVmb3JlLFxyXG4ubWZwLWFycm93OmFmdGVyIHtcclxuICBjb250ZW50OiAnJztcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB3aWR0aDogMDtcclxuICBoZWlnaHQ6IDA7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDA7XHJcbiAgdG9wOiAwO1xyXG4gIG1hcmdpbi10b3A6IDM1cHg7XHJcbiAgbWFyZ2luLWxlZnQ6IDM1cHg7XHJcbiAgYm9yZGVyOiBtZWRpdW0gaW5zZXQgdHJhbnNwYXJlbnQ7IH1cclxuLm1mcC1hcnJvdzphZnRlciB7XHJcbiAgYm9yZGVyLXRvcC13aWR0aDogMTNweDtcclxuICBib3JkZXItYm90dG9tLXdpZHRoOiAxM3B4O1xyXG4gIHRvcDogOHB4OyB9XHJcbi5tZnAtYXJyb3c6YmVmb3JlIHtcclxuICBib3JkZXItdG9wLXdpZHRoOiAyMXB4O1xyXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDIxcHg7XHJcbiAgb3BhY2l0eTogMC43OyB9XHJcblxyXG4ubWZwLWFycm93LWxlZnQge1xyXG4gIGxlZnQ6IDA7IH1cclxuLm1mcC1hcnJvdy1sZWZ0OmFmdGVyIHtcclxuICBib3JkZXItcmlnaHQ6IDE3cHggc29saWQgI0ZGRjtcclxuICBtYXJnaW4tbGVmdDogMzFweDsgfVxyXG4ubWZwLWFycm93LWxlZnQ6YmVmb3JlIHtcclxuICBtYXJnaW4tbGVmdDogMjVweDtcclxuICBib3JkZXItcmlnaHQ6IDI3cHggc29saWQgIzNGM0YzRjsgfVxyXG5cclxuLm1mcC1hcnJvdy1yaWdodCB7XHJcbiAgcmlnaHQ6IDA7IH1cclxuLm1mcC1hcnJvdy1yaWdodDphZnRlciB7XHJcbiAgYm9yZGVyLWxlZnQ6IDE3cHggc29saWQgI0ZGRjtcclxuICBtYXJnaW4tbGVmdDogMzlweDsgfVxyXG4ubWZwLWFycm93LXJpZ2h0OmJlZm9yZSB7XHJcbiAgYm9yZGVyLWxlZnQ6IDI3cHggc29saWQgIzNGM0YzRjsgfVxyXG5cclxuLm1mcC1pZnJhbWUtaG9sZGVyIHtcclxuICBwYWRkaW5nLXRvcDogNDBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNDBweDsgfVxyXG4ubWZwLWlmcmFtZS1ob2xkZXIgLm1mcC1jb250ZW50IHtcclxuICBsaW5lLWhlaWdodDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDkwMHB4OyB9XHJcbi5tZnAtaWZyYW1lLWhvbGRlciAubWZwLWNsb3NlIHtcclxuICB0b3A6IC00MHB4OyB9XHJcblxyXG4ubWZwLWlmcmFtZS1zY2FsZXIge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHBhZGRpbmctdG9wOiA1Ni4yNSU7IH1cclxuLm1mcC1pZnJhbWUtc2NhbGVyIGlmcmFtZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMCwgMCwgMCwgMC42KTtcclxuICBiYWNrZ3JvdW5kOiAjMDAwOyB9XHJcblxyXG4vKiBNYWluIGltYWdlIGluIHBvcHVwICovXHJcbmltZy5tZnAtaW1nIHtcclxuICB3aWR0aDogYXV0bztcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGxpbmUtaGVpZ2h0OiAwO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgcGFkZGluZzogNDBweCAwIDQwcHg7XHJcbiAgbWFyZ2luOiAwIGF1dG87IH1cclxuXHJcbi8qIFRoZSBzaGFkb3cgYmVoaW5kIHRoZSBpbWFnZSAqL1xyXG4ubWZwLWZpZ3VyZSB7XHJcbiAgbGluZS1oZWlnaHQ6IDA7IH1cclxuLm1mcC1maWd1cmU6YWZ0ZXIge1xyXG4gIGNvbnRlbnQ6ICcnO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAwO1xyXG4gIHRvcDogNDBweDtcclxuICBib3R0b206IDQwcHg7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG4gIHotaW5kZXg6IC0xO1xyXG4gIGJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjYpO1xyXG4gIGJhY2tncm91bmQ6ICM0NDQ7IH1cclxuLm1mcC1maWd1cmUgc21hbGwge1xyXG4gIGNvbG9yOiAjQkRCREJEO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBsaW5lLWhlaWdodDogMTRweDsgfVxyXG4ubWZwLWZpZ3VyZSBmaWd1cmUge1xyXG4gIG1hcmdpbjogMDsgfVxyXG5cclxuLm1mcC1ib3R0b20tYmFyIHtcclxuICBtYXJnaW4tdG9wOiAtMzZweDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAxMDAlO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgY3Vyc29yOiBhdXRvOyB9XHJcblxyXG4ubWZwLXRpdGxlIHtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xyXG4gIGNvbG9yOiAjRjNGM0YzO1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuICBwYWRkaW5nLXJpZ2h0OiAzNnB4OyB9XHJcblxyXG4ubWZwLWltYWdlLWhvbGRlciAubWZwLWNvbnRlbnQge1xyXG4gIG1heC13aWR0aDogMTAwJTsgfVxyXG5cclxuLm1mcC1nYWxsZXJ5IC5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtZmlndXJlIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7IH1cclxuXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDgwMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpLCBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiAzMDBweCkge1xyXG4gIC8qKlxyXG4gICAgICAgKiBSZW1vdmUgYWxsIHBhZGRpbmdzIGFyb3VuZCB0aGUgaW1hZ2Ugb24gc21hbGwgc2NyZWVuXHJcbiAgICAgICAqL1xyXG4gIC5tZnAtaW1nLW1vYmlsZSAubWZwLWltYWdlLWhvbGRlciB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XHJcbiAgLm1mcC1pbWctbW9iaWxlIGltZy5tZnAtaW1nIHtcclxuICAgIHBhZGRpbmc6IDA7IH1cclxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1maWd1cmU6YWZ0ZXIge1xyXG4gICAgdG9wOiAwO1xyXG4gICAgYm90dG9tOiAwOyB9XHJcbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtZmlndXJlIHNtYWxsIHtcclxuICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgIG1hcmdpbi1sZWZ0OiA1cHg7IH1cclxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1ib3R0b20tYmFyIHtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHRvcDogYXV0bztcclxuICAgIHBhZGRpbmc6IDNweCA1cHg7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XHJcbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtYm90dG9tLWJhcjplbXB0eSB7XHJcbiAgICBwYWRkaW5nOiAwOyB9XHJcbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtY291bnRlciB7XHJcbiAgICByaWdodDogNXB4O1xyXG4gICAgdG9wOiAzcHg7IH1cclxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1jbG9zZSB7XHJcbiAgICB0b3A6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIHdpZHRoOiAzNXB4O1xyXG4gICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDM1cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiAwOyB9IH1cclxuXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDkwMHB4KSB7XHJcbiAgLm1mcC1hcnJvdyB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC43NSk7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNzUpOyB9XHJcbiAgLm1mcC1hcnJvdy1sZWZ0IHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMDtcclxuICAgIHRyYW5zZm9ybS1vcmlnaW46IDA7IH1cclxuICAubWZwLWFycm93LXJpZ2h0IHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJTtcclxuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCU7IH1cclxuICAubWZwLWNvbnRhaW5lciB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDZweDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDZweDsgfSB9XHJcblxyXG4vLyBzYXNzLWxpbnQ6ZW5hYmxlIGluZGVudGF0aW9uIG5vLXF1YWxpZnlpbmctZWxlbWVudHMgc2hvcnRoYW5kLXZhbHVlcyBzaW5nbGUtbGluZS1wZXItc2VsZWN0b3IgY2xhc3MtbmFtZS1mb3JtYXQgbm8taWRzIGlkLW5hbWUtZm9ybWF0IHByb3BlcnR5LXNvcnQtb3JkZXIgbm8tY29sb3ItbGl0ZXJhbHMgaGV4LW5vdGF0aW9uIGJyYWNlLXN0eWxlIHplcm8tdW5pdCBzcGFjZS1hZnRlci1jb2xvbiBlbXB0eS1saW5lLWJldHdlZW4tYmxvY2tzXHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFJlc2V0XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogQ3VzdG9tIHVzZXIgYWdlbnQgcmVzZXRzIGFuZCBvdmVycmlkZXMgdGhhdCBhcmUgbm90IHByZXNlbnQgaW5cclxuICogTm9ybWFsaXplIDcuMC4wLiBUaGlzIG1vc3RseSByZW1vdmVzIHNvbWUgYW5ub3lpbmcgbWFyZ2luIGFuZCBwYWRkaW5nXHJcbiAqIGRlZmF1bHRzLCBib3JkZXIgcmFkaXVzLCBhbmQgb3V0bGluZXMuXHJcbiAqL1xyXG5cclxuYSB7XHJcbiAgY29sb3I6IGluaGVyaXQ7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIDEuIFJlbW92ZSBib3JkZXIgcmFkaXVzIG9uIENocm9tZSA2Mi4wKyBvbiBtYWNPUy5cclxuICovXHJcblxyXG5idXR0b24ge1xyXG4gIGJvcmRlcjogMDtcclxuICBib3JkZXItcmFkaXVzOiAwOyAvLyBbMV1cclxuICBvdXRsaW5lOiBub25lO1xyXG4gIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG5maWVsZHNldCB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgYm9yZGVyOiAwO1xyXG59XHJcblxyXG5maWd1cmUge1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuaDEsXHJcbmgyLFxyXG5oMyxcclxuaDQsXHJcbmg1LFxyXG5oNiB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xyXG59XHJcblxyXG5ociB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogMS4gUmVtb3ZlIHdoaXRlIHNwYWNlLlxyXG4gKi9cclxuXHJcbmltZyB7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogYXV0bztcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvLyBbMV1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAxLiBSZW1vdmUgaW5oZXJpdGVkIHVzZXIgYWdlbnQgYXBwZWFyYW5jZS5cclxuICovXHJcblxyXG5pbnB1dCxcclxuc2VsZWN0LFxyXG50ZXh0YXJlYSB7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIGJvcmRlcjogMDtcclxuICBib3JkZXItcmFkaXVzOiAwO1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgYXBwZWFyYW5jZTogbm9uZTsgLy8gWzFdXHJcbn1cclxuXHJcblxyXG4vKipcclxuICogMS4gT25seSBhbGxvdyB2ZXJ0aWNhbCByZXNpemluZyB0byBwcmV2ZW50IHRoZSB0ZXh0YXJlYVxyXG4gKiAgICBmcm9tIG92ZXJmbG93aW5nIHRoZSBjb250YWluZXIuXHJcbiAqL1xyXG5cclxudGV4dGFyZWEge1xyXG4gIHJlc2l6ZTogdmVydGljYWw7XHJcbn1cclxuXHJcbnVsLFxyXG5vbCB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG59XHJcblxyXG5wIHtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogMS4gQ29sbGFwc2UgYm9yZGVycyB0byBwcmV2ZW50IGRvdWJsZSBzaWRlZCBib3JkZXJzLlxyXG4gKi9cclxuXHJcbnRhYmxlIHtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgLy8gWzFdXHJcbn1cclxuXHJcbnN0cm9uZyB7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBCYXNlXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogUmVtb3ZlIG1hcmdpbiBhbmQgcGFkZGluZyBmcm9tIGV2ZXJ5IHNlbGVjdG9yIGluY2x1ZGluZyB0aGVpclxyXG4gKiBwc3VlZG8gc2VsZWN0b3JzLlxyXG4gKlxyXG4gKiAxLiBNb3JlIHNlbnNpYmxlIGRlZmF1bHQgYm94IHNpemluZy5cclxuICogICAgKGNzcy10cmlja3MuY29tL2luaGVyaXRpbmctYm94LXNpemluZy1wcm9iYWJseS1zbGlnaHRseS1iZXR0ZXItYmVzdC1wcmFjdGljZSkuXHJcbiAqL1xyXG5cclxuKixcclxuKjo6YmVmb3JlLFxyXG4qOjphZnRlciB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgYm94LXNpemluZzogaW5oZXJpdDsgLy8gWzFdXHJcbn1cclxuXHJcblxyXG4vKipcclxuICogU2V0IGhlaWdodCBvZiB0aGUgZG9jdW1lbnQgdG8gbWF4aXVtIHZpZXdwb3J0IGhlaWdodC5cclxuICpcclxuICogMS4gU2V0IHJvb3QgZm9udCBzaXplIHRvIDEwLlxyXG4gKi9cclxuXHJcbmh0bWwge1xyXG4gIGhlaWdodDogMTAwdmg7XHJcbiAgZm9udC1zaXplOiA2Mi41JTsgLy8gWzFdXHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBTZXQgbWluaW1hbCBoZWlnaHQgb2YgdGhlIGJvZHkgdG8gbWF4aW11bSB2aWV3cG9ydCBoZWlnaHQgdG9cclxuICogbWF0Y2ggdGhlIGRvY3VtZW50J3MgaGVpZ2h0LlxyXG4gKlxyXG4gKiAxLiBGaXJlZm94IDI1Ky5cclxuICogMi4gQ2hyb21lIDUrLlxyXG4gKi9cclxuXHJcbmJvZHkge1xyXG4gIEBpbmNsdWRlIGZvbnQoJGJvZHktZm9udC1zaXplLCAkYm9keS1saW5lLWhlaWdodCk7XHJcbiAgbWluLWhlaWdodDogMTAwdmg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJvZHktYmFja2dyb3VuZC1jb2xvcjtcclxuICBjb2xvcjogJGJvZHktY29sb3I7XHJcbiAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xyXG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XHJcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgLy8gWzFdXHJcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IC8vIFsyXVxyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBNaXhpbnNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcblxyXG4vLyBDbGVhcmZpeFxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gY2xlYXJmaXhcclxuLy8gQ2xlYXIgZmxvYXRzLlxyXG4vLyBAZXhhbXBsZVxyXG4vLyAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XHJcbi8vIEBhdXRob3IgKGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvY3NzL2NsZWFyLWZpeC8pLlxyXG5AbWl4aW4gY2xlYXJmaXgge1xyXG4gICY6OmFmdGVyIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgY2xlYXI6IGJvdGg7XHJcbiAgICBjb250ZW50OiAnJztcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBXcmFwcGVyXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyB3cmFwcGVyXHJcbi8vIENlbnRlciBhbGlnbnMgZWxlbWVudCB3aXRoIGdpdmVuIG1heGltdW0gd2lkdGgsIHBhZGRpbmcsIGFuZCBtYXJnaW5zIHRvcFxyXG4vLyBhbmQgYm90dG9tLlxyXG4vLyBAcGFyYW0gJHdpZHRoIC0gUGl4ZWwgdW5pdCB2YWx1ZS5cclxuLy8gQHBhcmFtICRndXR0ZXIgLSBQaXhlbCB1bml0IHZhbHVlLlxyXG4vLyBAZXhhbXBsZVxyXG4vLyAgIEBpbmNsdWRlIHdyYXBwZXIoMTAyNHB4LCAyMHB4KTtcclxuQG1peGluIHdyYXBwZXIoJHdpZHRoOiAkZ3JpZC13aWR0aCwgJGd1dHRlcjogJGdyaWQtZ3V0dGVyKSB7XHJcbiAgQGlmICgkZ3V0dGVyICE9IDApIHtcclxuICAgIG1heC13aWR0aDogY2FsYygjeyR3aWR0aH0gKyAjeygkZ3V0dGVyICogMil9KTtcclxuICAgIHBhZGRpbmc6IDAgJGd1dHRlcjtcclxuICB9IEBlbHNlIHtcclxuICAgIG1heC13aWR0aDogJHdpZHRoO1xyXG4gIH1cclxuICBtYXJnaW46IDAgYXV0bztcclxufVxyXG5cclxuXHJcbi8vIEJhbmRcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIGJhbmRcclxuLy8gQWRkIHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgdG8gZWxlbWVudCB1c2luZyBwYWRkaW5ncy5cclxuLy8gQHBhcmFtICR0b3AgLSBQaXhlbCB1bml0IHZhbHVlLlxyXG4vLyBAcGFyYW0gJGJvdHRvbSAtIFBpeGVsIHVuaXQgdmFsdWUuXHJcbi8vIEBleGFtcGxlXHJcbi8vICAgQGluY2x1ZGUgYmFuZCgxMDBweCwgMTAwcHgpO1xyXG5AbWl4aW4gYmFuZCgkdG9wOiAwLCAkYm90dG9tOiAwKSB7XHJcbiAgcGFkZGluZzogJHRvcCAwICRib3R0b207XHJcbn1cclxuXHJcblxyXG4vLyBGb250XHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBmb250XHJcbi8vIEFkZHMgYHJlbWAgdW5pdCBiYXNlZCBmb250IHNpemUgcHJvcGVydHksIGEgZmFsbGJhY2tcclxuLy8gYHB4YCB1bml0IGJhc2VkIGZvbnQgc2l6ZSBwcm9wZXJ0eSwgYW5kIGEgYGVtYCB1bml0IGJhc2VkIGxpbmUgaGVpZ2h0XHJcbi8vIHByb3BlcnR5IHRvIGFueSBydWxlLlxyXG4vLyBAcGFyYW0gJGZvbnQtc2l6ZSAtIFBpeGVsIHVuaXQgdmFsdWUuXHJcbi8vIEBwYXJhbSAkbGluZS1oZWlnaHQgLSBQaXhlbCB1bml0IHZhbHVlLlxyXG4vLyBAZXhhbXBsZVxyXG4vLyAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNnB4LCAyNHB4KTtcclxuQG1peGluIGZvbnQoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0KSB7XHJcbiAgQGlmICh1bml0bGVzcygkZm9udC1zaXplKSkge1xyXG4gICAgQGVycm9yICdWYWx1ZSBmb3IgYCN7JGZvbnQtc2l6ZX1gIHNob3VsZCBiZSBhIGBweGAgdW5pdCc7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XHJcbiAgICBmb250LXNpemU6IHJlbSgkZm9udC1zaXplKTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1kdXBsaWNhdGUtcHJvcGVydGllc1xyXG4gIH1cclxuICBAaWYgKHVuaXRsZXNzKCRsaW5lLWhlaWdodCkpIHtcclxuICAgIEBlcnJvciAnVmFsdWUgZm9yIGAjeyRsaW5lLWhlaWdodH1gIHNob3VsZCBiZSBhIGBweGAgdW5pdCc7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBsaW5lLWhlaWdodDogKCgkbGluZS1oZWlnaHQgLyAkZm9udC1zaXplKSAqIDFlbSk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gVGV4dFxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuQG1peGluIHRleHQoJHZhbHVlKSB7XHJcbiAgQGluY2x1ZGUgZm9udChtYXAtZ2V0KCRmb250LXNpemUsICR2YWx1ZSksIG1hcC1nZXQoJGxpbmUtaGVpZ2h0LCAkdmFsdWUpKTtcclxufVxyXG5cclxuXHJcbi8vIEZvbnQgQXdlc29tZVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gZm9udGF3ZXNvbWVcclxuLy8gQWRkIEZvbnQgQXdlc29tZSBpY29ucyBhcyBwc3VlZG8gZWxlbWVudHMgYnkgdXNpbmcgdGhlaXIgdW5pY29kZS5cclxuLy8gQHBhcmFtICRjb250ZW50IC0gVW5pY29kZSBzdHJpbmcuXHJcbi8vIEBwYXJhbSAkZmFtaWx5IC0gRm9udCBBd2Vzb21lIGZvbnQgZmFtaWx5IHN0cmluZy5cclxuLy8gQGV4YW1wbGVcclxuLy8gICBAaW5jbHVkZSBmb250YXdlc29tZSgnZjEwMCcsICdMaWdodCcpO1xyXG5AbWl4aW4gZm9udGF3ZXNvbWUoJGNvbnRlbnQsICRmYW1pbHkpIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIGZvbnQtZmFtaWx5OiAnRm9udCBBd2Vzb21lIDUgI3skZmFtaWx5fSc7XHJcbiAgY29udGVudDogdW5pY29kZSgkY29udGVudCk7XHJcbn1cclxuXHJcblxyXG4vLyBNZWRpYVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gbWVkaWFcclxuLy8gTWVkaWEgcXVlcmllcyBhY2NvcmRpbmcgdG8gXCJUaGUgMTAwJSBDb3JyZWN0IFdheSBUbyBEbyBDU1MgQnJlYWtwb2ludHNcIlxyXG4vLyAoaHR0cHM6Ly9tZWRpdW0uZnJlZWNvZGVjYW1wLmNvbS90aGUtMTAwLWNvcnJlY3Qtd2F5LXRvLWRvLWNzcy1icmVha3BvaW50cy04OGQ2YTViYTE4NjIpLlxyXG4vLyBAcGFyYW0gJHNpemUgLSBCcmVha3BvaW50IHBpeGVsIHVuaXQgdmFsdWUuXHJcbi8vIEBleGFtcGxlXHJcbi8vICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge31cclxuQG1peGluIG1lZGlhKCRzaXplKSB7XHJcbiAgQGlmICgkc2l6ZSA9PSAnZGVza3RvcCcpIHtcclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQobWluLXdpZHRoOiAxMjAwcHgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJHNpemUgPT0gJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1pbi13aWR0aDogOTAwcHgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJHNpemUgPT0gJ3RhYmxldC1sYW5kc2NhcGUnKSB7XHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1pbi13aWR0aDogOTAwcHgpIGFuZChtYXgtd2lkdGg6IDExOTlweCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtYXgtd2lkdGg6IDExOTlweCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0LXBvcnRyYWl0LXVwJykge1xyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtaW4td2lkdGg6IDYwMHB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQtcG9ydHJhaXQnKSB7XHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1pbi13aWR0aDogNjAwcHgpIGFuZChtYXgtd2lkdGg6IDg5OXB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQobWF4LXdpZHRoOiA4OTlweCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0Jykge1xyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtaW4td2lkdGg6IDYwMHB4KSBhbmQobWF4LXdpZHRoOiAxMTk5cHgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJHNpemUgPT0gJ3Bob25lJykge1xyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtYXgtd2lkdGg6IDU5OXB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBUeXBvZ3JhcGh5XHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5cclxuLy8gRm9udCBGYW1pbGllc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gSGVhZGluZyBmb250IGZhbWlseS5cclxuJGZvbnQtZmFtaWx5LWhlYWRpbmc6ICdNb250c2VycmF0Jywgc2Fucy1zZXJpZjtcclxuXHJcbi8vIEJvZHkgZm9udCBmYW1pbHkuXHJcbiRmb250LWZhbWlseS1ib2R5OiAnT3BlbiBTYW5zJywgc2Fucy1zZXJpZjtcclxuXHJcblxyXG4vLyBGb250IFNpemVzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBGb250IHNpemUgbWFwLlxyXG4kZm9udC1zaXplOiAoXHJcbiAgJ2p1bWJvJzogNDVweCxcclxuICAnaHVnZSc6IDQwcHgsXHJcbiAgJ2xhcmdlJzogMjBweCxcclxuICAncmVndWxhcic6IDE4cHgsXHJcbiAgJ3NtYWxsJzogMTZweCxcclxuICAndGlueSc6IDE1cHgsXHJcbiAgJ21pY3JvJzogMTNweFxyXG4pO1xyXG5cclxuXHJcbi8vIExpbmUgSGVpZ2h0c1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gTGluZSBoZWlnaHQgbWFwLlxyXG4kbGluZS1oZWlnaHQ6IChcclxuICAnanVtYm8nOiA1NHB4LFxyXG4gICdodWdlJzogNDhweCxcclxuICAnbGFyZ2UnOiAzMHB4LFxyXG4gICdyZWd1bGFyJzogMjdweCxcclxuICAnc21hbGwnOiAyNHB4LFxyXG4gICd0aW55JzogMjIuNXB4LFxyXG4gICdtaWNybyc6IDE5LjVweFxyXG4pO1xyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBGdW5jdGlvbnNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIHNhc3MtbGludDpkaXNhYmxlIHF1b3Rlc1xyXG5cclxuLy8gVW5pY29kZVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gdW5pY29kZVxyXG4vLyBQcmVzZXJ2ZSBlc2NhcGVkIHVuaWNvZGUgc3RyaW5nLlxyXG4vLyBAcGFyYW0gJHN0cmluZyAtIEFuIHVuaWNvZGUgc3RyaW5nLlxyXG4vLyBAcmV0dXJucyBBIHByZXNlcnZlZCBlc2NhcGVkIHVuaWNvZGUgc3RyaW5nXHJcbi8vIEBleGFtcGxlXHJcbi8vICAgdW5pY29kZSgnZTYwMScpO1xyXG5AZnVuY3Rpb24gdW5pY29kZSgkc3RyaW5nKSB7XHJcbiAgQHJldHVybiB1bnF1b3RlKFwiXFwnXCIpICsgdW5xdW90ZShzdHItaW5zZXJ0KCRzdHJpbmcsICdcXFxcJywgMSkpICsgdW5xdW90ZShcIlxcJ1wiKTtcclxufVxyXG5cclxuLy8gc2Fzcy1saW50OmVuYWJsZSBxdW90ZXNcclxuXHJcblxyXG4vLyBSRU1cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIHJlbVxyXG4vLyBDb252ZXJ0IHBpeGVsIHVuaXRzIHRvIFJFTSB1bml0cy5cclxuLy8gQHBhcmFtICRudW1iZXIgLSBQaXhlbCB2YWx1ZS5cclxuLy8gQHJldHVybnMgQSBjb252ZXJ0ZWQgUkVNIHVuaXQgdmFsdWUuXHJcbi8vIEBleGFtcGxlXHJcbi8vICAgZm9udC1zaXplOiByZW0oMTZweCk7XHJcbkBmdW5jdGlvbiByZW0oJHBpeGVscykge1xyXG4gIEBpZiAodW5pdGxlc3MoJHBpeGVscykpIHtcclxuICAgIEBlcnJvciAnVmFsdWUgZm9yIGAjeyRwaXhlbHN9YCBzaG91bGQgYmUgYSBgcHhgIHVuaXQuJztcclxuICB9XHJcbiAgQHJldHVybiAoKCRwaXhlbHMgLyAxMHB4KSAqIDFyZW0pO1xyXG59XHJcblxyXG5cclxuLy8gU3BhblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gc3BhblxyXG4vLyBDcmVhdGUgY29sc3BhbnMuXHJcbi8vIEBwYXJhbSB7SW50ZWdlcn0gJGNvbHVtbiB0aGUgYW1vdW50IG9mIGNvbHVtbnMgdG8gc3Bhbi5cclxuQGZ1bmN0aW9uIHNwYW4oJGNvbHVtbikge1xyXG4gIEByZXR1cm4gKCgkZ3JpZC13aWR0aCAvICRncmlkLWNvbHVtbnMpICogJGNvbHVtbik7XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gQ29sb3JcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcblxyXG4vLyBCbGFja1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuJGNvbG9yLWJsYWNrLTEwMDogcmdiKDAsIDAsIDApO1xyXG4kY29sb3ItYmxhY2stMjAwOiByZ2IoMTA3LCAxMDgsIDEwNik7XHJcbiRjb2xvci1ibGFjay0zMDA6IHJnYigwLCA4MywgODEpO1xyXG4kY29sb3ItYmxhY2stNDAwOiByZ2IoMzgsIDQxLCA0Myk7XHJcbiRjb2xvci1ibGFjay01MDA6IHJnYigzOSwgNDQsIDQ2KTtcclxuXHJcbi8vIFdoaXRlXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4kY29sb3Itd2hpdGUtMTAwOiByZ2IoMjU1LCAyNTUsIDI1NSk7XHJcbiRjb2xvci13aGl0ZS0yMDA6IHJnYigyNDksIDI0OCwgMjQ4KTtcclxuJGNvbG9yLXdoaXRlLTMwMDogcmdiKDIwMCwgMjAwLCAyMDApO1xyXG4kY29sb3Itd2hpdGUtNDAwOiByZ2IoMTcyLCAxOTMsIDE5Mik7XHJcbiRjb2xvci13aGl0ZS01MDA6IHJnYigyNDEsIDI0MSwgMjQxKTtcclxuJGNvbG9yLXdoaXRlLTYwMDogcmdiKDE5MywgMTkzLCAxOTMpO1xyXG4kY29sb3Itd2hpdGUtNzAwOiByZ2IoMTE2LCAxMTYsIDExNik7XHJcbiRjb2xvci13aGl0ZS04MDA6IHJnYigxNzgsIDE3OCwgMTc4KTtcclxuJGNvbG9yLXdoaXRlLTkwMDogcmdiKDIyNywgMjI3LCAyMjcpO1xyXG5cclxuXHJcbi8vIEdyZWVuXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4kY29sb3ItZ3JlZW4tMTAwOiByZ2IoOTYsIDE2OCwgNDQpO1xyXG4kY29sb3ItZ3JlZW4tMjAwOiByZ2IoMTIzLCAxODUsIDc3KTtcclxuJGNvbG9yLWdyZWVuLTMwMDogcmdiKDEzMiwgMTg3LCA5NCk7XHJcblxyXG5cclxuLy8gRGFyayBHcmVlblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuJGNvbG9yLWRhcmstZ3JlZW4tMTAwOiByZ2IoMCwgODUsIDgzKTtcclxuJGNvbG9yLWRhcmstZ3JlZW4tMjAwOiByZ2IoMCwgNzgsIDc2KTtcclxuJGNvbG9yLWRhcmstZ3JlZW4tMzAwOiByZ2IoNTksIDExMCwgMTA5KTtcclxuJGNvbG9yLWRhcmstZ3JlZW4tNDAwOiByZ2IoNjAsIDkxLCA5MCk7XHJcbiRjb2xvci1kYXJrLWdyZWVuLTUwMDogcmdiKDEyLCA3NSwgNzMpO1xyXG4kY29sb3ItZGFyay1ncmVlbi02MDA6IHJnYigyMywgODAsIDc4KTtcclxuJGNvbG9yLWRhcmstZ3JlZW4tNzAwOiByZ2IoNjksIDEwNiwgMTA1KTtcclxuJGNvbG9yLWRhcmstZ3JlZW4tODAwOiByZ2IoNTMsIDg3LCA4Nyk7XHJcblxyXG5cclxuLy8gUmVkXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4kY29sb3ItcmVkLTEwMDogcmdiKDI1NSwgMCwgMCk7XHJcblxyXG5cclxuLy8gWWVsbG93XHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4kY29sb3IteWVsbG93LTEwMDogcmdiKDIwMSwgMTc4LCAxMTkpO1xyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb250ZW50IENvbnN0cmFpbnRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgY29udGVudCBjb25zdHJhaW50IGlzIGEgY29uc3RyYWludCBmb3IgYWxsIHRoZSBjb250ZW50IHdpdGhpblxyXG4gKiB0aGUgZG9jdW1lbnQuIEl0IGNhbiBiZSBtYW5pcHVsYXRlZCBieSBDU1Mgb3IgSmF2YVNjcmlwdCB3aXRob3V0XHJcbiAqIGluZmx1ZW5jaW5nIHRoZSBib2R5LlxyXG4gKi9cclxuXHJcbi5jb250ZW50LWNvbnN0cmFpbnQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtaW4taGVpZ2h0OiAxMDB2aDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFdyYXBwZXJcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgd3JhcHBlciBvYmplY3QgY2VudGVycyBhbiBlbGVtZW50IGluIHRoZSBkb2N1bWVudC5cclxuICovXHJcblxyXG4ud3JhcHBlciB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgIEBpbmNsdWRlIHdyYXBwZXIoJGd1dHRlcjogKCRncmlkLWd1dHRlciAqIDIpKTtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgQGluY2x1ZGUgd3JhcHBlcjtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogU21hbGwgd3JhcHBlci5cclxuICovXHJcblxyXG4kZ3JpZC13aWR0aC1zbWFsbDogIDgwMHB4O1xyXG5cclxuLndyYXBwZXItLXNtYWxsIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBtYXgtd2lkdGg6IGNhbGMoI3skZ3JpZC13aWR0aC1zbWFsbH0gKyAjeygkZ3JpZC1ndXR0ZXIgKiAyKX0pO1xyXG4gIH1cclxuICBtYXgtd2lkdGg6IGNhbGMoI3skZ3JpZC13aWR0aC1zbWFsbH0gKyAjeygkZ3JpZC1ndXR0ZXIgKiA0KX0pO1xyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIERlZmluaXRpb25zXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5cclxuLy8gR3JpZFxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gR3JpZCB3aWR0aC5cclxuJGdyaWQtd2lkdGg6IDEyMjBweDtcclxuXHJcbi8vIEdyaWQgZ3V0dGVyLlxyXG4kZ3JpZC1ndXR0ZXI6IDI0cHg7XHJcblxyXG4vLyBHcmlkIGNvbHVtbnMuXHJcbiRncmlkLWNvbHVtbnM6IDEyO1xyXG5cclxuXHJcbi8vIEFzc2V0c1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gSW1hZ2UgcGF0aC5cclxuJGltYWdlLXBhdGg6ICcuLi9pbWFnZXMvJztcclxuXHJcblxyXG4vLyBCb2R5XHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBCb2R5IGJhY2tncm91bmQgY29sb3IuXHJcbiRib2R5LWJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiRib2R5LWJhY2tncm91bmQtY29sb3Itc2Vjb25kYXJ5OiAkY29sb3Itd2hpdGUtMjAwO1xyXG5cclxuLy8gQm9keSBjb2xvci5cclxuJGJvZHktY29sb3I6ICRjb2xvci1ibGFjay0yMDA7XHJcblxyXG4vLyBCb2R5IGZvbnQgZmFtaWx5LlxyXG4kYm9keS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJvZHk7XHJcblxyXG4vLyBCb2R5IGZvbnQgc2l6ZS5cclxuJGJvZHktZm9udC1zaXplOiBtYXAtZ2V0KCRmb250LXNpemUsICdzbWFsbCcpO1xyXG5cclxuLy8gQm9keSBsaW5lIGhlaWdodC5cclxuJGJvZHktbGluZS1oZWlnaHQ6IG1hcC1nZXQoJGxpbmUtaGVpZ2h0LCAnc21hbGwnKTtcclxuXHJcbi8vIExpbmsgY29sb3IuXHJcbiRsaW5rLWNvbG9yOiAkY29sb3ItZ3JlZW4tMTAwO1xyXG5cclxuXHJcbi8vIEhlYWRpbmdzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBKdW1ibyBmb250IHNpemUuXHJcbiRqdW1iby1mb250LXNpemU6IG1hcC1nZXQoJGZvbnQtc2l6ZSwgJ2p1bWJvJyk7XHJcblxyXG4vLyBIdWdlIGZvbnQgc2l6ZS5cclxuJGh1Z2UtZm9udC1zaXplOiBtYXAtZ2V0KCRmb250LXNpemUsICdodWdlJyk7XHJcblxyXG4vLyBKdW1ibyBsaW5lIGhlaWdodC5cclxuJGp1bWJvLWxpbmUtaGVpZ2h0OiBtYXAtZ2V0KCRsaW5lLWhlaWdodCwgJ2p1bWJvJyk7XHJcblxyXG4vLyBIdWdlIGxpbmUgaGVpZ2h0LlxyXG4kaHVnZS1saW5lLWhlaWdodDogbWFwLWdldCgkbGluZS1oZWlnaHQsICdodWdlJyk7XHJcblxyXG5cclxuLy8gQm9yZGVyIFJhZGl1c1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuXHJcbi8vIFJlZ3VsYXIgYm9yZGVyIHJhZGl1cy5cclxuJGJvcmRlci1yYWRpdXMtcmVndWxhcjogOHB4O1xyXG5cclxuLy8gU21hbGwgYm9yZGVyIHJhZGl1cy5cclxuJGJvcmRlci1yYWRpdXMtc21hbGw6IDJweDtcclxuXHJcblxyXG4vLyBCb3ggU2hhZG93XHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBQYWdlIGhlYWQgYm94IHNoYWRvdy5cclxuJGJveC1zaGFkb3ctcGFnZS1oZWFkOiAwIDJweCAxNnB4IDAgcmdiYSgkY29sb3ItYmxhY2stMTAwLCAwLjA2KTtcclxuXHJcbi8vIEZpbHRlcnMgYm94IHNoYWRvdy5cclxuJGJveC1zaGFkb3ctZmlsdGVyczogMCAycHggMTNweCAwIHJnYmEoJGNvbG9yLWJsYWNrLTEwMCwgMC4wNik7XHJcblxyXG4vLyBDYXRlZ29yeSBib3ggc2hhZG93LlxyXG4kYm94LXNoYWRvdy1jYXRlZ29yeTogMCAxcHggMnB4IDAgcmdiYSgkY29sb3ItYmxhY2stMTAwLCAwLjA2KTtcclxuXHJcbi8vIEhlcm8gYm94IHNoYWRvdy5cclxuJGJveC1zaGFkb3ctaGVybzogMCAycHggMjBweCAwIHJnYmEoJGNvbG9yLWJsYWNrLTMwMCwgMC4zMSk7XHJcblxyXG4vLyBCdXR0b24gYm94IHNoYWRvdy5cclxuJGJveC1zaGFkb3ctYnV0dG9uOiAwIDJweCAyMHB4IDAgcmdiYSgwLCA4NSwgODMsIDAuMjgpO1xyXG5cclxuXHJcbi8vIFRleHQgU2hhZG93XHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5cclxuXHJcbi8vIEdyYWRpZW50c1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuXHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFBhZ2VcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5wYWdlIHtcclxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEwMG1zO1xyXG59XHJcblxyXG4vKipcclxuICogVmlzdWFsbHkgaGlkZSBjb250ZW50IHVudGlsIGRvY3VtZW50IGlzIHJlYWR5LlxyXG4gKi9cclxuXHJcbi5wYWdlOm5vdCgucmVhZHkpIHtcclxuICBvcGFjaXR5OiAwO1xyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIExheW91dFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIExheW91dCBzZXRzIGFuIGVsZW1lbnQgYXMgZmxleGJveCBvYmplY3QuXHJcbiAqL1xyXG5cclxuLmxheW91dCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgbWFyZ2luOiAtI3soJGdyaWQtZ3V0dGVyLzIpfTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBKdXN0aWZ5IGNlbnRlci5cclxuICovXHJcblxyXG4ubGF5b3V0LS1qdXN0aWZ5LWNlbnRlciB7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogRXF1YWwgaGVpZ2h0IGxheW91dCBpdGVtcy5cclxuICovXHJcblxyXG4ubGF5b3V0LS1lcXVhbCA+IC5sYXlvdXRfX2l0ZW0ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGhlIGxheW91dCBpdGVtIGFkZHMgYSBndXR0ZXIgYXJvdW5kIHRoZSBncmlkIGNvbHVtbi5cclxuICovXHJcblxyXG4ubGF5b3V0X19pdGVtIHtcclxuICBwYWRkaW5nOiAoJGdyaWQtZ3V0dGVyLzIpO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGxheW91dCBpdGVtcyB0byBhY2NvbW9kYXRlIGFsbCBjb2x1bW5zIGluIHRoZVxyXG4gKiBncmlkIHdpdGggdGhlIGFwcHJvcHJpYXRlIHdpZHRocy5cclxuICovXHJcblxyXG5AZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xyXG5cclxuICAvLyBTZXQgY29sdW1uIHdpZHRoLlxyXG4gICRjb2x1bW4td2lkdGg6ICgoJGkgLyAkZ3JpZC1jb2x1bW5zKSoxMDAlKTtcclxuXHJcbiAgLmNvbC14bC0jeyRpfSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnZGVza3RvcCcpIHtcclxuICAgICAgZmxleC1iYXNpczogJGNvbHVtbi13aWR0aDtcclxuICAgICAgbWF4LXdpZHRoOiAkY29sdW1uLXdpZHRoO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNvbC1sZy0jeyRpfSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZScpIHtcclxuICAgICAgZmxleC1iYXNpczogJGNvbHVtbi13aWR0aDtcclxuICAgICAgbWF4LXdpZHRoOiAkY29sdW1uLXdpZHRoO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNvbC1tZC0jeyRpfSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0Jykge1xyXG4gICAgICBmbGV4LWJhc2lzOiAkY29sdW1uLXdpZHRoO1xyXG4gICAgICBtYXgtd2lkdGg6ICRjb2x1bW4td2lkdGg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY29sLXNtLSN7JGl9IHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgICAgZmxleC1iYXNpczogJGNvbHVtbi13aWR0aDtcclxuICAgICAgbWF4LXdpZHRoOiAkY29sdW1uLXdpZHRoO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBCdXR0b25cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBCdXR0b24uXHJcbiAqL1xyXG5cclxuLmJ1dHRvbiB7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBtaW4td2lkdGg6IDE1MHB4O1xyXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XHJcbiAgcGFkZGluZzogMTVweCAyMHB4O1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMgZWFzZS1vdXQ7XHJcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc21hbGw7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyZWVuLTMwMDtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcyBlYXNlLWluO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyZWVuLTEwMDtcclxuICB9XHJcblxyXG4gID4gLmlubGluZS1pY29uIHtcclxuICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQnV0dG9uIHNtYWxsLlxyXG4gKi9cclxuXHJcbi5idXR0b24tLXNtYWxsIHtcclxuICBwYWRkaW5nOiAxMHB4IDE4cHg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQnV0dG9uIHNoYWRvdy5cclxuICovXHJcblxyXG4uYnV0dG9uLS1zaGFkb3cge1xyXG4gIGJveC1zaGFkb3c6ICRib3gtc2hhZG93LWJ1dHRvbjtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDTVMgT3V0cHV0XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogRXZlcnkgY29uY2VpdmFibGUgSFRNTCBlbGVtZW50IHdpdGhpbiBhIGAuY21zLW91dHB1dGAgd3JhcHBlci5cclxuICovXHJcblxyXG4uY21zLW91dHB1dCB7XHJcblxyXG4gIC8vIEV2ZXJ5dGhpbmcgZGlyZWN0bHkgZGVzY2VuZGluZ1xyXG4gID4gKiB7XHJcblxyXG4gICAgLy8gRXhjbHVkZSBsYXN0IGNoaWxkcmVuLlxyXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gVW5vcmRlcmVkIGxpc3QuXHJcbiAgdWwge1xyXG4gICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xyXG4gIH1cclxuXHJcbiAgLy8gT3JkZXJlZCBsaXN0LlxyXG4gIG9sIHtcclxuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcclxuICB9XHJcblxyXG4gIC8vIEFuY2hvcnMgZGlyZWN0bHkgZGVzY2VuZGluZyBwYXJhZ3JhcGhzLlxyXG4gIHAgPiBhIHtcclxuICAgIGNvbG9yOiAkbGluay1jb2xvcjtcclxuXHJcbiAgICAvLyBIb3ZlciBzdGF0ZS5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29udGFjdFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIENvbnRhY3QuXHJcbiAqL1xyXG5cclxuLmNvbnRhY3Qge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtdXAnKSB7XHJcbiAgICBAaW5jbHVkZSBiYW5kKDgwcHgsIDE2MHB4KTtcclxuICAgIHBhZGRpbmctbGVmdDogNjVweDtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgQGluY2x1ZGUgYmFuZCg4MHB4LCA4MHB4KTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQ29udGFjdCB0aXRsZS5cclxuICovXHJcblxyXG4uY29udGFjdF9fdGl0bGUge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtdXAnKSB7XHJcbiAgICBAaW5jbHVkZSBmb250KDI2cHgsIDMycHgpO1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBAaW5jbHVkZSBmb250KDIzcHgsIDMycHgpO1xyXG4gIH1cclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIENvbnRhY3QgY29udGVudC5cclxuICovXHJcblxyXG4uY29udGFjdF9fY29udGVudCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIENvbnRhY3QgdGV4dC5cclxuICovXHJcblxyXG4uY29udGFjdF9fdGV4dCB7XHJcblxyXG4gIC5pbmxpbmUtaWNvbiB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICBjb2xvcjogJGNvbG9yLWRhcmstZ3JlZW4tNzAwO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBDb250YWN0IG9wZW5pbmcgdGltZXMuXHJcbiAqL1xyXG5cclxuLmNvbnRhY3RfX2RheSB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiAxMDBweDtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb250ZW50IENvbHVtbnNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBDb250ZW50IGNvbHVtbnMuXHJcbiAqL1xyXG5cclxuLmNvbnRlbnQtY29sdW1ucyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgIEBpbmNsdWRlIGJhbmQoODBweCwgMTYwcHgpO1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBAaW5jbHVkZSBiYW5kKDQwcHgsIDgwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuLmNvbnRlbnQtY29sdW1ucy5iYWNrZ3JvdW5kLWNvbG9yLXdoaXRlIHtcclxuICBAaW5jbHVkZSBjb3JuZXIoNXZ3LCAkY29sb3Itd2hpdGUtMTAwLCB0b3AsIHJpZ2h0KTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG59XHJcblxyXG4uY29udGVudC1jb2x1bW5zLmJhY2tncm91bmQtY29sb3ItZ3JleSB7XHJcbiAgQGluY2x1ZGUgY29ybmVyKDV2dywgJGNvbG9yLXdoaXRlLTIwMCwgdG9wLCByaWdodCk7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlLTIwMDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBDb250ZW50IGNvbHVtbnMgaGVhZGVyLlxyXG4gKi9cclxuXHJcbi5jb250ZW50LWNvbHVtbnNfX2hlYWRlciB7XHJcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBDb250ZW50IGNvbHVtbnMgdGl0bGUuXHJcbiAqL1xyXG5cclxuLmNvbnRlbnQtY29sdW1uc19fdGl0bGUge1xyXG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gQ29ybmVyXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBjb3JuZXJcclxuLy8gQWRkIGEgc2tld2VkIGxvb2tpbmcgYm9yZGVyIHRvIGFuIGVsZW1lbnQuXHJcbi8vIEBwYXJhbSB7VmFsdWV9ICRzaXplIFBpeGVsIHVuaXQgdmFsdWUuXHJcbi8vIEBwYXJhbSB7VmFsdWV9ICRjb2xvciBIRVgvUkdCKEEpLEhTTChBKSB2YWx1ZS5cclxuLy8gQHBhcmFtIHtTdHJpbmd9ICRwb3NpdGlvbiBQb3NpdGlvbiBvZiB0aGUgYm9yZGVyLCBhdmFpbGFibGUgb3B0aW9uczogdG9wLCBib3R0b20uXHJcbi8vIEBhdXRob3IgSGFzY28gVWxpam4gaHVsaWpuQGFudHVtLm5sXHJcbkBtaXhpbiBjb3JuZXIoJHNpemUsICRjb2xvciwgJHBvc2l0aW9uOiB0b3AsICRkaXJlY3Rpb246IGxlZnQpIHtcclxuXHJcbiAgQGlmICgkcG9zaXRpb24gPT0gdG9wKSB7XHJcblxyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgdG9wOiBjYWxjKC0jeyRzaXplfSArIDFweCk7XHJcblxyXG4gICAgICBAaWYgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xyXG4gICAgICAgIGJvcmRlci13aWR0aDogJHNpemUgMCAwIDEwMHZ3O1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJGNvbG9yO1xyXG5cclxuICAgICAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSByaWdodCkge1xyXG4gICAgICAgIGJvcmRlci13aWR0aDogMCAwICRzaXplIDEwMHZ3O1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJGNvbG9yO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRwb3NpdGlvbiA9PSBib3R0b20pIHtcclxuXHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgIGJvdHRvbTogY2FsYygtI3skc2l6ZX0gKyAxcHgpO1xyXG5cclxuICAgICAgQGlmICgkZGlyZWN0aW9uID09IGxlZnQpIHtcclxuICAgICAgICBib3JkZXItd2lkdGg6IDAgMCAkc2l6ZSAxMDB2dztcclxuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICRjb2xvcjtcclxuXHJcbiAgICAgIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIHtcclxuICAgICAgICBib3JkZXItd2lkdGg6ICRzaXplIDAgMCAxMDB2dztcclxuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuICAgICAgfVxyXG4gICAgICBjb250ZW50OiAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgJjo6YmVmb3JlLFxyXG4gICY6OmFmdGVyIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgei1pbmRleDogbWFwLWdldCgkei1pbmRleCwgMSk7XHJcbiAgfVxyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFotaW5kZXhcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIEEgbGltaXRlZCBhcnJheSBvZiB2YWx1ZXMgZm9yIHRoZSBgei1pbmRleGAgcHJvcGVydHkgdG8gcHJldmVudFxyXG4vLyBleGFnZ2VyYXRlZCBhbW91bnRzIGFuZCB1Z2x5IGhhY2tzLlxyXG5cclxuJHotaW5kZXg6IChcclxuICAwOiAgMCxcclxuICAxOiAgMTAsXHJcbiAgMjogIDIwLFxyXG4gIDM6ICAzMCxcclxuICA0OiAgNDAsXHJcbiAgNTogIDUwLFxyXG4gIDY6ICA2MCxcclxuICA3OiAgNzAsXHJcbiAgODogIDgwLFxyXG4gIDk6ICA5MCxcclxuICAxMDogMTAwXHJcbik7XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbnRlbnQgRGVmYXVsdFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIENvbnRlbnQgZGVmYXVsdC5cclxuICovXHJcblxyXG4uY29udGVudC1kZWZhdWx0IHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LXVwJykge1xyXG4gICAgQGluY2x1ZGUgYmFuZCg4MHB4LCAxNjBweCk7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIEBpbmNsdWRlIGJhbmQoNDBweCwgODBweCk7XHJcbiAgfVxyXG59XHJcblxyXG4uY29udGVudC1kZWZhdWx0LmJhY2tncm91bmQtY29sb3Itd2hpdGUge1xyXG4gIEBpbmNsdWRlIGNvcm5lcig1dncsICRjb2xvci13aGl0ZS0xMDAsIHRvcCwgcmlnaHQpO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbn1cclxuXHJcbi5jb250ZW50LWRlZmF1bHQuYmFja2dyb3VuZC1jb2xvci1ncmV5IHtcclxuICBAaW5jbHVkZSBjb3JuZXIoNXZ3LCAkY29sb3Itd2hpdGUtMjAwLCB0b3AsIHJpZ2h0KTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGUtMjAwO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEhpZGUgY29ybmVycyBhZnRlciBoZXJvLlxyXG4gKi9cclxuXHJcbi5oZXJvICsgLmNvbnRlbnQtZGVmYXVsdCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgIHBhZGRpbmctdG9wOiAxNjBweDtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgcGFkZGluZy10b3A6IDgwcHg7XHJcbiAgfVxyXG5cclxuICAmOjpiZWZvcmUsXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuLyoqXHJcbiAqIENvbnRlbnQgZGVmYXVsdCBjb250ZW50LlxyXG4gKi9cclxuXHJcbi5jb250ZW50LWRlZmF1bHRfX2NvbnRlbnQge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBDb250ZW50IGRlZmF1bHQgdGl0bGUuXHJcbiAqL1xyXG5cclxuLmNvbnRlbnQtZGVmYXVsdF9fdGl0bGUge1xyXG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQ29udGVudCBkZWZhdWx0IGVkaXRvci5cclxuICovXHJcblxyXG4uY29udGVudC1kZWZhdWx0X19lZGl0b3Ige1xyXG5cclxuICAmOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMzVweDtcclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRWRpdG9yXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogRWRpdG9yLlxyXG4gKi9cclxuXHJcbi5lZGl0b3Ige1xyXG4gIEBpbmNsdWRlIHRleHQoJ2xhcmdlJyk7XHJcbiAgZm9udC13ZWlnaHQ6IDMwMDtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBGZWF0dXJlZCBQcm9kdWN0c1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEZlYXR1cmVkIHByb2R1Y3RzLlxyXG4gKi9cclxuXHJcbi5mZWF0dXJlZC1wcm9kdWN0cyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgIEBpbmNsdWRlIGJhbmQoODBweCwgMTYwcHgpO1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBAaW5jbHVkZSBiYW5kKDQwcHgsIDgwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuLmZlYXR1cmVkLXByb2R1Y3RzLmJhY2tncm91bmQtY29sb3Itd2hpdGUge1xyXG4gIEBpbmNsdWRlIGNvcm5lcig1dncsICRjb2xvci13aGl0ZS0xMDAsIHRvcCwgcmlnaHQpO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbn1cclxuXHJcbi5mZWF0dXJlZC1wcm9kdWN0cy5iYWNrZ3JvdW5kLWNvbG9yLWdyZXkge1xyXG4gIEBpbmNsdWRlIGNvcm5lcig1dncsICRjb2xvci13aGl0ZS0yMDAsIHRvcCwgcmlnaHQpO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZS0yMDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogRmVhdHVyZWQgcHJvZHVjdHMgY29udGVudC5cclxuICovXHJcblxyXG4uZmVhdHVyZWQtcHJvZHVjdHNfX2NvbnRlbnQge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBGZWF0dXJlZCBwcm9kdWN0cyB0aXRsZS5cclxuICovXHJcblxyXG4uZmVhdHVyZWQtcHJvZHVjdHNfX3RpdGxlIHtcclxuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEZlYXR1cmVkIHByb2R1Y3RzIGxpc3QuXHJcbiAqL1xyXG5cclxuLmZlYXR1cmVkLXByb2R1Y3RzX19saXN0IHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LXVwJykge1xyXG4gICAgQGluY2x1ZGUgYmFuZCg0MHB4LCAxNXB4KTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgPiAub3dsLXN0YWdlLW91dGVyIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgICAgID4gLm93bC1zdGFnZSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBwYWRkaW5nOiAxMHB4IDAgODBweDtcclxuXHJcbiAgICAgICAgPiAub3dsLWl0ZW0ge1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAub3dsLW5hdiB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiA1MCU7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgLm93bC1uZXh0LFxyXG4gICAgICAub3dsLXByZXYge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IGNhbGMoNTAlIC0gNTIuNXB4KTtcclxuICAgICAgICB3aWR0aDogMzJweDtcclxuICAgICAgICBoZWlnaHQ6IDMycHg7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNDBtcyBlYXNlLW91dDtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXdoaXRlLTgwMDtcclxuICAgICAgICBvcGFjaXR5OiAwLjU7XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNDBtcyBlYXNlLWluO1xyXG4gICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgID4gLmlubGluZS1pY29uIHtcclxuICAgICAgICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgICAgICAgaGVpZ2h0OiAyNXB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLm93bC1uZXh0IHtcclxuICAgICAgICBsZWZ0OiBjYWxjKDEwMCUgKyA0MHB4KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLm93bC1wcmV2IHtcclxuICAgICAgICByaWdodDogY2FsYygxMDAlICsgNDBweCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgQGluY2x1ZGUgYmFuZCg0NXB4LCA0NXB4KTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogRmVhdHVyZWQgcHJvZHVjdHMgaXRlbS5cclxuICovXHJcblxyXG4uZmVhdHVyZWQtcHJvZHVjdHNfX2l0ZW0ge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtdXAnKSB7XHJcbiAgICBwYWRkaW5nOiAwICgkZ3JpZC1ndXR0ZXIvMik7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gIH1cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEZpeGVkIHBob25lbnVtYmVyXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogRml4ZWQgcGhvbmVudW1iZXIuXHJcbiAqL1xyXG5cclxuLmZpeGVkLXBob25lbnVtYmVyIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiA1MCU7XHJcbiAgcmlnaHQ6IDE1cHg7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gIHotaW5kZXg6IG1hcC1nZXQoJHotaW5kZXgsIDgpO1xyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEZvcm1cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBGb3JtLlxyXG4gKi9cclxuXHJcbi5mb3JtIHtcclxuICBAaW5jbHVkZSBtZWRpYSgnZGVza3RvcCcpIHtcclxuICAgIHBhZGRpbmc6IDc1cHggMTAwcHg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlJykge1xyXG4gICAgcGFkZGluZzogNzVweCA3MHB4O1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0Jykge1xyXG4gICAgcGFkZGluZzogNDBweDtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgIG1hcmdpbjogLTExMHB4IDAgMTEwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1yZWd1bGFyO1xyXG4gICAgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctcGFnZS1oZWFkO1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBAaW5jbHVkZSBjb3JuZXIoNXZ3LCAkY29sb3ItZGFyay1ncmVlbi0xMDAsIHRvcCwgcmlnaHQpO1xyXG4gICAgQGluY2x1ZGUgY29ybmVyKDV2dywgJGNvbG9yLWRhcmstZ3JlZW4tMTAwLCBib3R0b20sIGxlZnQpO1xyXG4gICAgbWFyZ2luOiAwIC0jeyRncmlkLWd1dHRlcn07XHJcbiAgICBwYWRkaW5nOiA3NXB4ICRncmlkLWd1dHRlcjtcclxuICB9XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWRhcmstZ3JlZW4tMTAwO1xyXG4gIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIHotaW5kZXg6IG1hcC1nZXQoJHotaW5kZXgsIDEpO1xyXG59XHJcblxyXG4uZm9ybS0tc21hbGwge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIG1hcmdpbjogNTBweCBhdXRvO1xyXG4gIH1cclxuXHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWF4LXdpZHRoOiA2MDBweDtcclxuICBtYXJnaW46IDEwMHB4IGF1dG87XHJcbiAgcGFkZGluZzogNDBweCAhaW1wb3J0YW50O1xyXG5cclxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZSBjbGFzcy1uYW1lLWZvcm1hdFxyXG4gIC5nZm9ybV90aXRsZSB7XHJcbiAgICBAaW5jbHVkZSBmb250KDMwcHgsIDM1cHgpO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKiBHcmF2aXR5IEZyb21zXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogV29yZFByZXNzIEdyYXZpdHkgRm9ybXMgcGx1Z2luIG92ZXJyaWRlcy5cclxuICovXHJcblxyXG5cclxuXHJcbi5naW5wdXRfY29udGFpbmVyIHtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG59XHJcblxyXG4uZ2ZpZWxkIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5nZmllbGRfbGFiZWwge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5nZmllbGRfaHRtbCB7XHJcbiAgQGluY2x1ZGUgZm9udCgyMnB4LCAyOHB4KTtcclxuICBtYXJnaW4tYm90dG9tOiAzNXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBmb250LXdlaWdodCgnYm9sZCcpO1xyXG59XHJcblxyXG4uZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPXRleHRdLFxyXG4uZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPWVtYWlsXSxcclxuLmdpbnB1dF9jb250YWluZXIgaW5wdXRbdHlwZT10ZWxdLFxyXG4uZ2lucHV0X2NvbnRhaW5lciB0ZXh0YXJlYSB7XHJcbiAgQGluY2x1ZGUgdGV4dCgnc21hbGwnKTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWluLWhlaWdodDogNDNweDtcclxuICBwYWRkaW5nOiAxMHB4IDI1cHg7XHJcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtcmVndWxhcjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYm9keTtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG5cclxuICAmOjpwbGFjZWhvbGRlciB7XHJcbiAgICBjb2xvcjogJGNvbG9yLWJsYWNrLTUwMDtcclxuICB9XHJcbn1cclxuXHJcbi8vIHNhc3MtbGludDpkaXNhYmxlIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcclxuLmdpbnB1dF9jb250YWluZXIgdGV4dGFyZWEuc21hbGwge1xyXG4gIGhlaWdodDogOTRweDtcclxufVxyXG4vLyBzYXNzLWxpbnQ6ZW5hYmxlIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcclxuXHJcbi5nZm9ybV92YWxpZGF0aW9uX2NvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLmdmb3JtX2Zvb3RlciB7XHJcbiAgbWFyZ2luLXRvcDogNDBweDtcclxufVxyXG5cclxuLmdmb3JtX2J1dHRvbiB7XHJcbiAgQGluY2x1ZGUgdGV4dCgnc21hbGwnKTtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJvZHk7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4udmFsaWRhdGlvbl9lcnJvciB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICBwYWRkaW5nOiA1cHggMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbWFsbDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcmVkLTEwMDtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG4gIGJveC1zaGFkb3c6ICRib3gtc2hhZG93LXBhZ2UtaGVhZDtcclxufVxyXG5cclxuLnZhbGlkYXRpb25fbWVzc2FnZSB7XHJcbiAgQGluY2x1ZGUgdGV4dCgndGlueScpO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IGNhbGMoMTAwJSArIDEwcHgpO1xyXG4gIGxlZnQ6IDUwJTtcclxuICBwYWRkaW5nOiA1cHggMTBweDtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc21hbGw7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXJlZC0xMDA7XHJcbiAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctcGFnZS1oZWFkO1xyXG4gIHotaW5kZXg6IG1hcC1nZXQoJHotaW5kZXgsIDEpO1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAtMTBweDtcclxuICAgIGxlZnQ6IGNhbGMoNTAlIC0gNXB4KTtcclxuICAgIGJvcmRlci13aWR0aDogNXB4O1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJGNvbG9yLXJlZC0xMDA7XHJcbiAgICBjb250ZW50OiAnJztcclxuICB9XHJcbn1cclxuXHJcbi8vIHNhc3MtbGludDplbmFibGUgY2xhc3MtbmFtZS1mb3JtYXRcclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgSGVhZGVyXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogSGVhZGVyLlxyXG4gKi9cclxuXHJcbi5oZWFkZXIge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdkZXNrdG9wJykge1xyXG4gICAgaGVpZ2h0OiA0NTBweDtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldCcpIHtcclxuICAgIGhlaWdodDogNDUwcHg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIGhlaWdodDogMzAwcHg7XHJcbiAgfVxyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBIZWFkZXIgaW1hZ2UuXHJcbiAqL1xyXG5cclxuLmhlYWRlcl9faW1hZ2Uge1xyXG4gIEBleHRlbmQgJW9iamVjdC1maXQtY292ZXI7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBIZXJvXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogSGVyby5cclxuICovXHJcblxyXG4uaGVybyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ2Rlc2t0b3AnKSB7XHJcbiAgICBoZWlnaHQ6IDcwMHB4O1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0Jykge1xyXG4gICAgaGVpZ2h0OiA2MDBweDtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgbWluLWhlaWdodDogNTY1cHg7XHJcblx0aGVpZ2h0OiBhdXRvO1xyXG4gICAgcGFkZGluZy10b3A6IDQwcHg7XHJcbiAgfVxyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBIZXJvIGNhdGVnb3JpZXMuXHJcbiAqL1xyXG5cclxuLmhlcm9fX2NhdGVnb3JpZXMge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdkZXNrdG9wJykge1xyXG4gICAgbWFyZ2luLXRvcDogLTMwcHg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlJykge1xyXG4gICAgbWFyZ2luLXRvcDogLTEwcHg7XHJcbiAgfVxyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtM2RlZyk7XHJcbiAgYm9yZGVyLXJhZGl1czogMCAkYm9yZGVyLXJhZGl1cy1yZWd1bGFyICRib3JkZXItcmFkaXVzLXJlZ3VsYXIgMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZGFyay1ncmVlbi0xMDA7XHJcbiAgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctaGVybztcclxuICB6LWluZGV4OiBtYXAtZ2V0KCR6LWluZGV4LCA4KTtcclxuXHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiBjYWxjKDEwMCUgLSAxcHgpO1xyXG4gICAgd2lkdGg6IDEwMHZ3O1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWRhcmstZ3JlZW4tMTAwO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEhlcm8gY2F0ZWdvcmllcyBjb250ZW50LlxyXG4gKi9cclxuXHJcbi5oZXJvX19jYXRlZ29yaWVzLWNvbnRlbnQge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdkZXNrdG9wJykge1xyXG4gICAgQGluY2x1ZGUgYmFuZCgxMzBweCwgMTMwcHgpO1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0Jykge1xyXG4gICAgQGluY2x1ZGUgYmFuZCg5MHB4LCA0MHB4KTtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgQGluY2x1ZGUgYmFuZCg3MHB4LCA3MHB4KTtcclxuICB9XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoM2RlZyk7XHJcbiAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogSGVybyBjYXRlZ29yaWVzIGJvZHkuXHJcbiAqL1xyXG5cclxuLmhlcm9fX2NhdGVnb3JpZXMtYm9keSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gIH1cclxuICBwYWRkaW5nLXJpZ2h0OiBzcGFuKDEpO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEhlcm8gY2F0ZWdvcmllcyB0aXRsZS5cclxuICovXHJcblxyXG4uaGVyb19fY2F0ZWdvcmllcy10aXRsZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBIZXJvIGNhdGVnb3JpZXMgdGV4dC5cclxuICovXHJcblxyXG4uaGVyb19fY2F0ZWdvcmllcy10ZXh0IHtcclxuICBAaW5jbHVkZSB0ZXh0KCdsYXJnZScpO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBwYWRkaW5nLWJvdHRvbTogMnB4O1xyXG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkY29sb3ItZ3JlZW4tMTAwO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEhlcm8gY2Fyb3VzZWwgd3JhcHBlci5cclxuICovXHJcblxyXG4uaGVyb19fY2Fyb3VzZWwtd3JhcHBlciB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IHNwYW4oMSk7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIHBhZGRpbmc6IDAgNDNweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogSGVybyBjYXJvdXNlbC5cclxuICovXHJcblxyXG4uaGVyb19fY2Fyb3VzZWwge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gID4gLm93bC1zdGFnZS1vdXRlciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgID4gLm93bC1zdGFnZSB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgICA+IC5vd2wtaXRlbSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXzotbXMtZnVsbHNjcmVlbixcclxuOnJvb3QgLmhlcm9fX2Nhcm91c2VsIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgPiAub3dsLXN0YWdlLW91dGVyIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgID4gLm93bC1zdGFnZSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgICAgPiAub3dsLWl0ZW0ge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uaGVyb19fY2Fyb3VzZWwub3dsLWNhcm91c2VsIC5vd2wtbmF2IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgbGVmdDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuXHJcbiAgLm93bC1wcmV2LFxyXG4gIC5vd2wtbmV4dCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LXVwJykge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgd2lkdGg6IDMzcHg7XHJcbiAgICAgIGhlaWdodDogMzNweDtcclxuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcyBlYXNlLW91dDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMTYuNXB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZGFyay1ncmVlbi0yMDA7XHJcblxyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zIGVhc2UtaW47XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWRhcmstZ3JlZW4tMzAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmFuaW1hdGluZyB7XHJcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGZsYXNoO1xyXG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMjUwbXM7XHJcbiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XHJcbiAgICAgICAgYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTYuNXB4KTtcclxuXHJcbiAgICA+IC5pbmxpbmUtaWNvbiB7XHJcbiAgICAgIHdpZHRoOiAxN3B4O1xyXG4gICAgICBoZWlnaHQ6IDE3cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAub3dsLXByZXYge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ2Rlc2t0b3AnKSB7XHJcbiAgICAgIHJpZ2h0OiBjYWxjKDEwMCUgKyAyNXB4KTtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICAgIHJpZ2h0OiBjYWxjKDEwMCUgKyAxMHB4KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5vd2wtbmV4dCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnZGVza3RvcCcpIHtcclxuICAgICAgbGVmdDogY2FsYygxMDAlICsgMjVweCk7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgICBsZWZ0OiBjYWxjKDEwMCUgKyAxMHB4KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogSGVybyBjYXJvdXNlbCBpdGVtLlxyXG4gKi9cclxuXHJcbi5oZXJvX19jYXJvdXNlbC1pdGVtIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZ3JvdzogMTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBIZXJvIGNhdGVnb3J5LlxyXG4gKi9cclxuXHJcbi5oZXJvX19jYXRlZ29yeSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGZsZXgtZ3JvdzogMTtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIHBhZGRpbmc6IDE4cHggMTBweCAxMHB4O1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMgZWFzZS1vdXQ7XHJcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc21hbGw7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcyBlYXNlLWluO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWRhcmstZ3JlZW4tMjAwO1xyXG4gIH1cclxufVxyXG5cclxuXzotbXMtZnVsbHNjcmVlbixcclxuOnJvb3QgLmhlcm9fX2NhdGVnb3J5IHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLyoqXHJcbiAqIEhlcm8gY2F0ZWdvcnkgaWNvbi5cclxuICovXHJcblxyXG4uaGVyb19fY2F0ZWdvcnktaWNvbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHdpZHRoOiA3NnB4O1xyXG4gIGhlaWdodDogNzZweDtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cclxuICA+IGltZyB7XHJcbiAgICBAZXh0ZW5kICVvYmplY3QtZml0LWNvbnRhaW47XHJcbiAgICB3aWR0aDogNzZweDtcclxuICAgIGhlaWdodDogNzZweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogSGVybyBjYXRlZ29yeSB0aXRsZS5cclxuICovXHJcblxyXG4uaGVyb19fY2F0ZWdvcnktdGl0bGUge1xyXG4gIEBpbmNsdWRlIHRleHQoJ21pY3JvJyk7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG5cclxuLyogU2xpZGVzaG93XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogSGVybyBzbGlkZXNob3cuXHJcbiAqL1xyXG5cclxuLmhlcm9fX3NsaWRlc2hvdy1jb250YWluZXIge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtdXAnKSB7XHJcbiAgICBwYWRkaW5nLXRvcDogKCRncmlkLWd1dHRlci8yKTtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdG1heC13aWR0aDogMTAwJTtcclxuXHRwYWRkaW5nOiAwO1xyXG4gIH1cclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogSGVybyBzbGlkZXNob3cgc2xpZGUuXHJcbiAqL1xyXG5cclxuLmhlcm9fX3NsaWRlc2hvdy1zbGlkZSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ2Rlc2t0b3AnKSB7XHJcbiAgICBoZWlnaHQ6IDcwMHB4O1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0Jykge1xyXG4gICAgaGVpZ2h0OiA2MDBweDtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgaGVpZ2h0OiA1NjVweDtcclxuICB9XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEhlcm8gc2xpZGVzaG93IGltYWdlLlxyXG4gKi9cclxuXHJcbi5oZXJvX19zbGlkZXNob3ctaW1hZ2Uge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgei1pbmRleDogLTE7XHJcbiAgb2JqZWN0LXBvc2l0aW9uOiByaWdodDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFuaW1hdGlvbi5cclxuICovXHJcbkBrZXlmcmFtZXMgZmxhc2gge1xyXG4gIGZyb20ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWRhcmstZ3JlZW4tMjAwO1xyXG4gIH1cclxuXHJcbiAgdG8ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWRhcmstZ3JlZW4tMzAwO1xyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBJbnB1dFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIElucHV0LlxyXG4gKi9cclxuXHJcbi5pbnB1dCB7XHJcbiAgQGluY2x1ZGUgdGV4dCgndGlueScpO1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMgZWFzZS1vdXQ7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1ib2R5O1xyXG5cclxuICAmOmZvY3VzIHtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMgZWFzZS1pbjtcclxuICB9XHJcblxyXG4gICY6OnBsYWNlaG9sZGVyIHtcclxuICAgIGNvbG9yOiAkY29sb3Itd2hpdGUtNjAwO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBUZXh0IGlucHV0LlxyXG4gKi9cclxuXHJcbi5pbnB1dC0tdGV4dCB7XHJcbiAgaGVpZ2h0OiAzNnB4O1xyXG4gIHBhZGRpbmc6IDAgMTBweDtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBMb2dpblxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFBhZ2UuXHJcbiAqL1xyXG5cclxuLmxvZ2luLXBhZ2Uge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIHBhZGRpbmctYm90dG9tOiA4MHB4O1xyXG4gIH1cclxuXHJcbiAgcGFkZGluZy1ib3R0b206IDE2MHB4O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEZvcm0uXHJcbiAqL1xyXG5cclxuLmxvZ2luLWZvcm0ge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgfVxyXG4gIHBhZGRpbmc6IDUwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZS0yMDA7XHJcblxyXG4gIGZvcm0ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIG1hcmdpbjogLTEwcHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFdhcm5pbmcuXHJcbiAqL1xyXG5cclxuLmxvZ2luLWZvcm1fX2ludmFsaWQge1xyXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgcGFkZGluZzogNXB4IDEwcHg7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWdyZWVuLTEwMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRjb2xvci1ncmVlbi0xMDAsIDUyJSk7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIElucHV0cy5cclxuICovXHJcblxyXG4ubG9naW4tdXNlcm5hbWUsXHJcbi5sb2dpbi1wYXNzd29yZCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIHdpZHRoOiA1MCU7XHJcbiAgcGFkZGluZzogMTBweDtcclxuXHJcbiAgbGFiZWwge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gIH1cclxuXHJcbiAgaW5wdXQge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBTdWJtaXQuXHJcbiAqL1xyXG5cclxuLmxvZ2luLXN1Ym1pdCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcGFkZGluZzogMTBweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gIGlucHV0IHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgTmV3cyBJdGVtXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogTmV3cyBpdGVtLlxyXG4gKi9cclxuXHJcbi5uZXdzLWl0ZW0ge1xyXG4gIGZsZXgtZ3JvdzogMTtcclxuICB3aWR0aDogMTAwJTtcclxuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbWFsbDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIGJveC1zaGFkb3c6ICRib3gtc2hhZG93LXBhZ2UtaGVhZDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBOZXdzIGl0ZW0gaW1hZ2Ugd3JhcHBlci5cclxuICovXHJcblxyXG4ubmV3cy1pdGVtX19pbWFnZS13cmFwcGVyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgaGVpZ2h0OiAxOTBweDtcclxuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbWFsbDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBOZXdzIGl0ZW0gaW1hZ2UuXHJcbiAqL1xyXG5cclxuLm5ld3MtaXRlbV9faW1hZ2Uge1xyXG4gIEBleHRlbmQgJW9iamVjdC1maXQtY292ZXI7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBOZXdzIGl0ZW0gYm9keS5cclxuICovXHJcblxyXG4ubmV3cy1pdGVtX19ib2R5IHtcclxuICBwYWRkaW5nOiA0MHB4O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIE5ld3MgaXRlbSB0aXRsZS5cclxuICovXHJcblxyXG4ubmV3cy1pdGVtX190aXRsZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIE5ld3MgaXRlbSB0ZWFzZXIuXHJcbiAqL1xyXG5cclxuLy8gLm5ld3MtaXRlbV9fdGVhc2VyIHtcclxuLy8gICBmb250LXdlaWdodDogMzAwO1xyXG4vLyB9XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIE5ld3MgTGlzdFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIE5ld3MgbGlzdC5cclxuICovXHJcblxyXG4ubmV3cy1saXN0IHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LXVwJykge1xyXG4gICAgQGluY2x1ZGUgYmFuZCgwLCAxNjBweCk7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIEBpbmNsdWRlIGJhbmQoMCwgODBweCk7XHJcbiAgfVxyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZS0yMDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogTmV3cyBsaXN0IGl0ZW0uXHJcbiAqL1xyXG5cclxuLm5ld3MtbGlzdF9faXRlbSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBOZXdzIFNpbmdsZVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIE5ld3Mgc2luZ2xlLlxyXG4gKi9cclxuXHJcbi5uZXdzLXNpbmdsZSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgIEBpbmNsdWRlIGJhbmQoMCwgMTYwcHgpO1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBAaW5jbHVkZSBiYW5kKDAsIDgwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBOZXdzIHNpbmdsZSB3cmFwcGVyLlxyXG4gKi9cclxuXHJcbi5uZXdzLXNpbmdsZV9fd3JhcHBlciB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICBAaW5jbHVkZSB3cmFwcGVyKCR3aWR0aDogc3Bhbig4KSk7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQnKSB7XHJcbiAgICBAaW5jbHVkZSB3cmFwcGVyKCR3aWR0aDogc3BhbigxMCkpO1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBAaW5jbHVkZSB3cmFwcGVyKCR3aWR0aDogc3BhbigxMikpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBOZXdzIHNpbmdsZSBpbWFnZS5cclxuICovXHJcblxyXG4ubmV3cy1zaW5nbGVfX2ltYWdlIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICB9XHJcbiAgbWF4LXdpZHRoOiAxMDAwcHg7XHJcbiAgbWFyZ2luOiA3NXB4IGF1dG87XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogTmV3cyBzaW5nbGUgY29udGVudC5cclxuICovXHJcblxyXG4ubmV3cy1zaW5nbGVfX2NvbnRlbnQge1xyXG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogTmV3cyBzaW5nbGUgdGl0bGUuXHJcbiAqL1xyXG5cclxuLm5ld3Mtc2luZ2xlX190aXRsZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBOZXdzIHNpbmdsZSB0ZXh0LlxyXG4gKi9cclxuXHJcbi5uZXdzLXNpbmdsZV9fdGV4dCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBQYWdlIEZvb3RlclxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFBhZ2UgZm9vdGVyLlxyXG4gKi9cclxuXHJcbi5wYWdlLWZvb3RlciB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICBAaW5jbHVkZSBiYW5kKDgwcHgsIDYwcHgpO1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0Jykge1xyXG4gICAgQGluY2x1ZGUgYmFuZCgwLCA0MHB4KTtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgQGluY2x1ZGUgYmFuZCg4MHB4LCA2MHB4KTtcclxuICB9XHJcbiAgQGluY2x1ZGUgY29ybmVyKDV2dywgJGNvbG9yLWRhcmstZ3JlZW4tNTAwLCB0b3AsIGxlZnQpO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1kYXJrLWdyZWVuLTUwMDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBQYWdlIGZvb3RlciBjb2x1bW4uXHJcbiAqL1xyXG5cclxuLnBhZ2UtZm9vdGVyX19jb2x1bW46bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTRweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogUGFnZSBmb290ZXIgbG9nbyBjb2x1bW4uXHJcbiAqL1xyXG5cclxuLnBhZ2UtZm9vdGVyX19jb2x1bW4tLWxvZ28ge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDU0cHg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFBhZ2UgZm9vdGVyIGxvZ28uXHJcbiAqL1xyXG5cclxuLnBhZ2UtZm9vdGVyX19sb2dvIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgIG1heC13aWR0aDogMTgxcHg7XHJcbiAgICBoZWlnaHQ6IDc1cHg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIG1heC13aWR0aDogMTE2cHg7XHJcbiAgICBoZWlnaHQ6IDQ4cHg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gIH1cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuXHJcbiAgPiBpbWcge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICAgIG1heC13aWR0aDogMTE4cHg7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICAgIG1heC13aWR0aDogNzZweDtcclxuICAgIH1cclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBQYWdlIGZvb3RlciB0aXRsZS5cclxuICovXHJcblxyXG4ucGFnZS1mb290ZXJfX3RpdGxlIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgZm9udC13ZWlnaHQ6IDgwMDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBQYWdlIGZvb3RlciB0ZXh0LlxyXG4gKi9cclxuXHJcbi5wYWdlLWZvb3Rlcl9fdGV4dCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuICBAaW5jbHVkZSBmb250KG1hcC1nZXQoJGZvbnQtc2l6ZSwgJ3RpbnknKSwgbWFwLWdldCgkbGluZS1oZWlnaHQsICdsYXJnZScpKTtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlLTQwMDtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG5cclxuICAuaW5saW5lLWljb24ge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gICAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgfVxyXG5cclxuICBhIHtcclxuICAgIHRyYW5zaXRpb246IGNvbG9yIDE0MG1zIGVhc2Utb3V0O1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAxNDBtcyBlYXNlLWluO1xyXG4gICAgICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgUGFnZSBIZWFkZXJcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBQYWdlIGhlYWRlci5cclxuICovXHJcblxyXG4ucGFnZS1oZWFkZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIGJveC1zaGFkb3c6ICRib3gtc2hhZG93LXBhZ2UtaGVhZDtcclxuXHJcbiAgJjpub3QoLmlzLWFjdGl2ZSkge1xyXG4gICAgei1pbmRleDogbWFwLWdldCgkei1pbmRleCwgOCk7XHJcbiAgfVxyXG5cclxuICArICo6bm90KC5zbGlkZXNob3cpOm5vdCgubmV3cy1zaW5nbGUpOm5vdCguZ29vZ2xlLW1hcHMpOm5vdCguaGVhZGVyKTpub3QoLmhlcm8pIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtdXAnKSB7XHJcbiAgICAgIEBpbmNsdWRlIGJhbmQoMTYwcHgsIDE2MHB4KTtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgICAgQGluY2x1ZGUgYmFuZCg4MHB4LCA4MHB4KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgUGFnZSBNaWNyb1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFBhZ2UgbWljcm8uXHJcbiAqL1xyXG5cclxuLnBhZ2UtbWljcm8ge1xyXG4gIEBpbmNsdWRlIGJhbmQoMzBweCwgMzBweCk7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZGFyay1ncmVlbi02MDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogUGFnZSBtaWNybyBsaXN0LlxyXG4gKi9cclxuXHJcbi5wYWdlLW1pY3JvX19saXN0IHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LXVwJykge1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICB9XHJcbiAgZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBQYWdlIG1pY3JvIGxpc3QgaXRlbS5cclxuICovXHJcblxyXG4ucGFnZS1taWNyb19fbGlzdC1pdGVtIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuICBAaW5jbHVkZSBmb250KG1hcC1nZXQoJGZvbnQtc2l6ZSwgJ3RpbnknKSwgMTZweCk7XHJcbiAgcGFkZGluZzogMCAyMHB4O1xyXG4gIGNvbG9yOiAkY29sb3Itd2hpdGUtNDAwO1xyXG5cclxuICAmOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGNvbG9yLXdoaXRlLTQwMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGEge1xyXG4gICAgdHJhbnNpdGlvbjogY29sb3IgMTQwbXMgZWFzZS1vdXQ7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIDE0MG1zIGVhc2UtaW47XHJcbiAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBQYWdpbmF0aW9uXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogUGFnaW5hdGlvbi5cclxuICovXHJcblxyXG4ucGFnaW5hdGlvbiB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgIG1hcmdpbi10b3A6IDg1cHg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIG1hcmdpbi10b3A6IDQwcHg7XHJcbiAgfVxyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogUGFnZSBudW1iZXJzLlxyXG4gKi9cclxuXHJcbi5wYWdlLW51bWJlcnMge1xyXG4gIEBpbmNsdWRlIGZvbnQoMTRweCwgMzJweCk7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB3aWR0aDogMzJweDtcclxuICBoZWlnaHQ6IDMycHg7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcyBlYXNlLW91dDtcclxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkY29sb3Itd2hpdGUtNTAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgY29sb3I6ICRjb2xvci1ibGFjay00MDA7XHJcblxyXG4gICY6bm90KC5jdXJyZW50KTpob3ZlciB7XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zIGVhc2UtaW47XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGUtNTAwO1xyXG4gIH1cclxuXHJcbiAgLy8gJjpmaXJzdC1jaGlsZCB7XHJcbiAgLy8gICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbWFsbCAwIDAgJGJvcmRlci1yYWRpdXMtc21hbGw7XHJcbiAgLy8gfVxyXG5cclxuICAmOm50aC1sYXN0LWNoaWxkKDIpIHtcclxuICAgIGJvcmRlci1yaWdodDogMDtcclxuICAgIC8vIGJvcmRlci1yYWRpdXM6IDAgJGJvcmRlci1yYWRpdXMtc21hbGwgJGJvcmRlci1yYWRpdXMtc21hbGwgMDtcclxuICB9XHJcblxyXG4gICYuY3VycmVudCB7XHJcbiAgICBib3JkZXItcmlnaHQtY29sb3I6ICRjb2xvci1ncmVlbi0zMDA7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JlZW4tMzAwO1xyXG4gICAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgfVxyXG5cclxuICAmLm5leHQsXHJcbiAgJi5wcmV2IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFByb2R1Y3RzIFNpbmdsZVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFByb2R1Y3RzIHNpbmdsZS5cclxuICovXHJcblxyXG4ucHJvZHVjdHMtc2luZ2xlIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LXVwJykge1xyXG4gICAgQGluY2x1ZGUgYmFuZCgxNjBweCwgMTYwcHgpO1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBAaW5jbHVkZSBiYW5kKDgwcHgsIDgwcHgpO1xyXG4gIH1cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGUtMjAwO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFByb2R1Y3RzIHNpbmdsZSBjb2x1bW4uXHJcbiAqL1xyXG5cclxuLy8gLnByb2R1Y3RzLXNpbmdsZV9fY29sdW1uIHtcclxuLy8gICBkaXNwbGF5OiBmbGV4O1xyXG4vLyAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbi8vIH1cclxuXHJcblxyXG4vKipcclxuICogUHJvZHVjdHMgc2luZ2xlIGJhY2suXHJcbiAqL1xyXG5cclxuLnByb2R1Y3RzLXNpbmdsZV9fYmFjayB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBQcm9kdWN0cyBzaW5nbGUgaW1hZ2UuXHJcbiAqL1xyXG5cclxuLnByb2R1Y3RzLXNpbmdsZV9faW1hZ2Uge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAjeygkZ3JpZC1ndXR0ZXIqMil9KTtcclxuICAgIG1hcmdpbjogMCAtI3skZ3JpZC1ndXR0ZXJ9O1xyXG4gIH1cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcGFkZGluZzogNDBweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIGJveC1zaGFkb3c6ICRib3gtc2hhZG93LXBhZ2UtaGVhZDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBQcm9kdWN0cyBzaW5nbGUgY29udGVudC5cclxuICovXHJcblxyXG4ucHJvZHVjdHMtc2luZ2xlX19jb250ZW50IHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LXVwJykge1xyXG4gICAgQGluY2x1ZGUgYmFuZCg4MHB4LCA4MHB4KTtcclxuICAgIHBhZGRpbmctbGVmdDogc3BhbigxKTtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgQGluY2x1ZGUgYmFuZCg0MHB4LCAwKTtcclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFByb2R1Y3RzIHNpbmdsZSB0aXRsZS5cclxuICovXHJcblxyXG4ucHJvZHVjdHMtc2luZ2xlX190aXRsZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBQcm9kdWN0IHNpbmdsZSBkZXRhaWxzLlxyXG4gKi9cclxuXHJcbi5wcm9kdWN0cy1zaW5nbGVfX2RldGFpbHMge1xyXG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7XHJcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRjb2xvci13aGl0ZS01MDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogUHJvZHVjdCBzaW5nbGUgZGV0YWlsLlxyXG4gKi9cclxuXHJcbi5wcm9kdWN0cy1zaW5nbGVfX2RldGFpbCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cclxuICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBpbmNsdWRlIHRleHQoJ2xhcmdlJyk7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBjb2xvcjogJGNvbG9yLWRhcmstZ3JlZW4tNzAwO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFByb2R1Y3Qgc2luZ2xlIGRldGFpbCBsYWJlbC5cclxuICovXHJcblxyXG4ucHJvZHVjdHMtc2luZ2xlX19kZXRhaWwtbGFiZWwge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbiAgbWluLXdpZHRoOiAxNjVweDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWhlYWRpbmc7XHJcbiAgZm9udC13ZWlnaHQ6IDgwMDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBQcm9kdWN0cyBzaW5nbGUgcGhvbmVudW1iZXIuXHJcbiAqL1xyXG5cclxuLnByb2R1Y3RzLXNpbmdsZV9fcGhvbmVudW1iZXIge1xyXG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogUHJvZHVjdHMgc2luZ2xlIHRlbC5cclxuICovXHJcblxyXG4ucHJvZHVjdHMtc2luZ2xlX190ZWwge1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIHBhZGRpbmc6IDE2cHggMjBweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGUtNTAwO1xyXG4gIGNvbG9yOiAkY29sb3ItZGFyay1ncmVlbi03MDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogUHJvZHVjdHMgc2luZ2xlIHRlbCBsYWJlbC5cclxuICovXHJcblxyXG4ucHJvZHVjdHMtc2luZ2xlX190ZWwtbGFiZWwge1xyXG4gIG1hcmdpbi1yaWdodDogMTBweDtcclxufVxyXG4iLCIucHJvZHVjdHMtLXNlbGVjdCB7XHJcblx0LnByb2R1Y3RzLWxvYWQge1xyXG5cdFx0PiAubGF5b3V0IHtcclxuXHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgUHJvZHVjdHNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBQcm9kdWN0cy5cclxuICovXHJcblxyXG4ucHJvZHVjdHMge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtdXAnKSB7XHJcbiAgICBAaW5jbHVkZSBiYW5kKDAsIDE2MHB4KTtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgQGluY2x1ZGUgYmFuZCgwLCA4MHB4KTtcclxuICB9XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlLTIwMDtcclxufVxyXG5cclxuXHJcblxyXG4vKiBDYXRlZ29yaWVzXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogUHJvZHVjdHMgY2F0ZWdvcmllcy5cclxuICovXHJcblxyXG4ucHJvZHVjdHMtY2F0ZWdvcmllcyB7XHJcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBQcm9kdWN0cyBjYXRlZ29yaWVzIGxpc3QuXHJcbiAqL1xyXG5cclxuLnByb2R1Y3RzLWNhdGVnb3JpZXNfX2xpc3Qge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG59XHJcblxyXG5cclxuLyogQ2F0ZWdvcnlcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBQcm9kdWN0IGNhdGVnb3J5LlxyXG4gKi9cclxuXHJcbi5wcm9kdWN0LWNhdGVnb3J5IHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LXVwJykge1xyXG4gICAgbWFyZ2luOiAwIDIwcHggMThweDtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgbWFyZ2luLXRvcDogMjBweDtcclxuICB9XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgcGFkZGluZy10b3A6IDQwcHg7XHJcblxyXG4gICY6OmJlZm9yZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgaGVpZ2h0OiAzNHB4O1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICBjb250ZW50OiAnJztcclxuICB9XHJcblxyXG4gICYucHJvZHVjdC1jYXRlZ29yeS04IHtcclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIGhlaWdodDogMzBweDtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9hY2Nlc3NvaXJlcy5zdmcnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYucHJvZHVjdC1jYXRlZ29yeS0zIHtcclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vYWx1bWludW0tcHJvZmllbGVuLnBuZycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5wcm9kdWN0LWNhdGVnb3J5LTYge1xyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9nbGFzc29vcnRlbi5zdmcnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYucHJvZHVjdC1jYXRlZ29yeS0xIHtcclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIGhlaWdodDogMjhweDtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRpbWFnZS1wYXRofS9ob3V0ZW4tcHJvZmllbGVuLnN2ZycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5wcm9kdWN0LWNhdGVnb3J5LTIge1xyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgaGVpZ2h0OiAzNHB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JGltYWdlLXBhdGh9L2Jha2xpanN0LnN2ZycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5wcm9kdWN0LWNhdGVnb3J5LTcge1xyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgd2lkdGg6IDM4cHg7XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0va2FydG9uc29vcnRlbi5zdmcnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYucHJvZHVjdC1jYXRlZ29yeS01IHtcclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vcGFzc2UtcGFydG91dGthcnRvbi5zdmcnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYucHJvZHVjdC1jYXRlZ29yeS00IHtcclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skaW1hZ2UtcGF0aH0vc3BpZXJhbWVuLnN2ZycpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBQcm9kdWN0IGNhdGVnb3J5IGlucHV0LlxyXG4gKi9cclxuXHJcbi5wcm9kdWN0LWNhdGVnb3J5X19pbnB1dCB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBQcm9kdWN0IGNhdGVnb3J5IGxhYmVsLlxyXG4gKi9cclxuXHJcbi5wcm9kdWN0LWNhdGVnb3J5X19sYWJlbCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgIEBpbmNsdWRlIGZvbnQoMTdweCwgMjdweCk7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTFweDtcclxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktaGVhZGluZztcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiAzcHg7XHJcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXMgZWFzZS1vdXQ7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmVlbi0zMDA7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICBvcGFjaXR5OiAwO1xyXG4gICAgfVxyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBAaW5jbHVkZSBmb250KDEycHgsIDE1cHgpO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcywgY29sb3IgMTQwbXMgZWFzZS1vdXQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbWFsbDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgICBib3gtc2hhZG93OiAkYm94LXNoYWRvdy1jYXRlZ29yeTtcclxuICB9XHJcbiAgY29sb3I6ICRjb2xvci1kYXJrLWdyZWVuLTcwMDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBDaGVja2VkIHByb2R1Y3QgY2F0ZWdvcnkuXHJcbiAqL1xyXG5cclxuLnByb2R1Y3QtY2F0ZWdvcnlfX2xhYmVsOmhvdmVyLFxyXG4ucHJvZHVjdC1jYXRlZ29yeV9faW5wdXQ6Y2hlY2tlZCArIC5wcm9kdWN0LWNhdGVnb3J5X19sYWJlbCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgIGNvbG9yOiAkY29sb3ItZ3JlZW4tMzAwO1xyXG5cclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNDBtcyBlYXNlLWluO1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgfVxyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zLCBjb2xvciAxNDBtcyBlYXNlLWluO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyZWVuLTMwMDtcclxuICAgIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qIFNlYXJjaFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFByb2R1Y3RzIHNlYXJjaC5cclxuICovXHJcblxyXG4ucHJvZHVjdHMtc2VhcmNoIHtcclxuICBtYXJnaW4tYm90dG9tOiAzNXB4O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFByb2R1Y3RzIHNlYXJjaCBsYWJlbC5cclxuICovXHJcblxyXG4ucHJvZHVjdHMtc2VhcmNoX19sZWdlbmQge1xyXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgY29sb3I6ICRjb2xvci1kYXJrLWdyZWVuLTcwMDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBQcm9kdWN0cyBzZWFyY2ggZmllbGQuXHJcbiAqL1xyXG5cclxuLnByb2R1Y3RzLXNlYXJjaF9fZmllbGQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFByb2R1Y3RzIHNlYXJjaCBpbnB1dC5cclxuICovXHJcblxyXG4ucHJvZHVjdHMtc2VhcmNoX19pbnB1dCB7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB3aWR0aDogMTAwJTtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zIGVhc2Utb3V0O1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci13aGl0ZS01MDA7XHJcbiAgYm9yZGVyLXJpZ2h0OiAwO1xyXG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXNtYWxsO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cclxuICAmOmZvY3VzIHtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMgZWFzZS1pbjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgfVxyXG5cclxuICAmOjpwbGFjZWhvbGRlciB7XHJcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlLTYwMDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogUHJvZHVjdHMgc2VhcmNoIHN1Ym1pdC5cclxuICovXHJcblxyXG4ucHJvZHVjdHMtc2VhcmNoX19zdWJtaXQge1xyXG4gIEBpbmNsdWRlIHRleHQoJ3JlZ3VsYXInKTtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIG1pbi13aWR0aDogMzZweDtcclxuICBoZWlnaHQ6IDM2cHg7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcyBlYXNlLW91dDtcclxuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbWFsbDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JlZW4tMzAwO1xyXG4gIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMgZWFzZS1pbjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmVlbi0xMDA7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyogRmlsdGVyc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFByb2R1Y3RzIGZpbHRlcnMuXHJcbiAqL1xyXG5cclxuLnByb2R1Y3RzLWZpbHRlcnMge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtdXAnKSB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBwYWRkaW5nOiAyOHB4IDM1cHg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBwYWRkaW5nOiAzMHB4O1xyXG4gIH1cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXNtYWxsO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctZmlsdGVycztcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBQcm9kdWN0cyBmaWx0ZXJzIGdyb3VwLlxyXG4gKi9cclxuXHJcbi5wcm9kdWN0cy1maWx0ZXJzX19ncm91cCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgIG1heC13aWR0aDogNTAlO1xyXG4gICAgbWFyZ2luOiAwIDIwcHg7XHJcblxyXG4gICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgIH1cclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG5cclxuICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFByb2R1Y3RzIGZpbHRlcnMgbGFiZWwuXHJcbiAqL1xyXG5cclxuLnByb2R1Y3RzLWZpbHRlcnNfX2xlZ2VuZCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuICBjb2xvcjogJGNvbG9yLWRhcmstZ3JlZW4tNzAwO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFByb2R1Y3RzIGZpbHRlcnMgbGlzdC5cclxuICovXHJcblxyXG4ucHJvZHVjdHMtZmlsdGVyc19fbGlzdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogUHJvZHVjdCBmaWx0ZXIgaW5wdXQuXHJcbiAqL1xyXG5cclxuLnByb2R1Y3QtZmlsdGVyX19pbnB1dCB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBQcm9kdWN0IGZpbHRlciBsYWJlbC5cclxuICovXHJcblxyXG4ucHJvZHVjdC1maWx0ZXJfX2xhYmVsIHtcclxuICBAaW5jbHVkZSBmb250KDE0cHgsIDM2cHgpO1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGhlaWdodDogMzZweDtcclxuICBtYXJnaW46IC0xcHg7XHJcbiAgcGFkZGluZzogMCAyMHB4O1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMsIGJvcmRlci1jb2xvciAxNDBtcyBlYXNlLW91dDtcclxuICBib3JkZXItd2lkdGg6IDJweDtcclxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXNtYWxsO1xyXG4gIGJvcmRlci1jb2xvcjogJGNvbG9yLXdoaXRlLTUwMDtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zLCBib3JkZXItY29sb3IgMTQwbXMgZWFzZS1pbjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZS01MDA7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIENoZWNrZWQgZmlsdGVyLlxyXG4gKi9cclxuXHJcbi5wcm9kdWN0LWZpbHRlcl9faW5wdXQ6Y2hlY2tlZCArIC5wcm9kdWN0LWZpbHRlcl9fbGFiZWwge1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMsIGJvcmRlci1jb2xvciAxNDBtcyBlYXNlLWluO1xyXG4gIGJvcmRlci1jb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JlZW4tMzAwO1xyXG4gIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIHotaW5kZXg6IG1hcC1nZXQoJHotaW5kZXgsIDEpO1xyXG59XHJcblxyXG5cclxuLyogTGlzdFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFByb2R1Y3RzIGxvYWQuXHJcbiAqL1xyXG5cclxuLnByb2R1Y3RzLWxvYWQge1xyXG5cclxuICAmLmlzLWxvYWRpbmcge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWluLWhlaWdodDogMzAwcHg7XHJcblxyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgQGluY2x1ZGUgZm9udGF3ZXNvbWUoJ2YxMTAnLCAnUmVndWxhcicpO1xyXG4gICAgfVxyXG5cclxuICAgID4gLmlubGluZS1pY29uIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IGNhbGMoNTAlIC0gMTBweCk7XHJcbiAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTBweCk7XHJcbiAgICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICAgIGNvbG9yOiAkY29sb3ItZGFyay1ncmVlbi01MDA7XHJcbiAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGlubmluZztcclxuICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcclxuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcclxuICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFByb2R1Y3RzIGxpc3QuXHJcbiAqL1xyXG5cclxuLnByb2R1Y3RzLWxpc3Qge1xyXG4gIEBpbmNsdWRlIGJhbmQoMTAwcHgpO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFByb2R1Y3RzIGxpc3QgaXRlbS5cclxuICovXHJcblxyXG4ucHJvZHVjdHMtbGlzdF9faXRlbSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBQcm9kdWN0IGl0ZW0uXHJcbiAqL1xyXG5cclxuLnByb2R1Y3QtaXRlbSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBmbGV4LWdyb3c6IDE7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgcGFkZGluZzogNDBweCA0MHB4IDIwcHg7XHJcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDE0MG1zIGVhc2Utb3V0O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctcGFnZS1oZWFkO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgKyA2MHB4KTtcclxuICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDE0MG1zIGVhc2UtaW47XHJcbiAgICAgIHotaW5kZXg6IG1hcC1nZXQoJHotaW5kZXgsIDkpO1xyXG5cclxuICAgICAgLnByb2R1Y3QtaXRlbV9fbW9yZS1pbmZvIHtcclxuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zIGVhc2UtaW47XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBQcm9kdWN0IGl0ZW0gaW1hZ2UuXHJcbiAqL1xyXG5cclxuLnByb2R1Y3QtaXRlbV9faW1hZ2Uge1xyXG4gIG1hcmdpbi1ib3R0b206IDM0cHg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogcHJvZHVjdCBpdGVtIHRpdGxlLlxyXG4gKi9cclxuXHJcbi5wcm9kdWN0LWl0ZW1fX3RpdGxlIHtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlLTcwMDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBQcm9kdWN0IGl0ZW0gbW9yZSBpbmZvLlxyXG4gKi9cclxuXHJcbi5wcm9kdWN0LWl0ZW1fX21vcmUtaW5mbyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDgwcHg7XHJcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNDBtcyBlYXNlLW91dDtcclxuICBjb2xvcjogJGNvbG9yLWdyZWVuLTMwMDtcclxuICBvcGFjaXR5OiAwO1xyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFJldmlld3NcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBSZXZpZXdzLlxyXG4gKi9cclxuXHJcbi5yZXZpZXdzIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LXVwJykge1xyXG4gICAgQGluY2x1ZGUgYmFuZCg4MHB4LCAxNjBweCk7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIEBpbmNsdWRlIGJhbmQoNDBweCwgODBweCk7XHJcbiAgfVxyXG59XHJcblxyXG4ucmV2aWV3cy5iYWNrZ3JvdW5kLWNvbG9yLXdoaXRlIHtcclxuICBAaW5jbHVkZSBjb3JuZXIoNXZ3LCAkY29sb3Itd2hpdGUtMTAwLCB0b3AsIHJpZ2h0KTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG59XHJcblxyXG4ucmV2aWV3cy5iYWNrZ3JvdW5kLWNvbG9yLWdyZXkge1xyXG4gIEBpbmNsdWRlIGNvcm5lcig1dncsICRjb2xvci13aGl0ZS0yMDAsIHRvcCwgcmlnaHQpO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZS0yMDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogUmV2aWV3cyB0aXRsZS5cclxuICovXHJcblxyXG4ucmV2aWV3c19fdGl0bGUge1xyXG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogUmV2aWV3cyB3cmFwcGVyLlxyXG4gKi9cclxuXHJcbi5yZXZpZXdzX193cmFwcGVyIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LXVwJykge1xyXG4gICAgQGluY2x1ZGUgd3JhcHBlcigkd2lkdGg6IHNwYW4oOCksICRndXR0ZXI6IDApO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBSZXZpZXMgbGlzdC5cclxuICovXHJcblxyXG4ucmV2aWV3c19fbGlzdCB7XHJcbiAgQGluY2x1ZGUgYmFuZCg0NXB4LCA0NXB4KTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICA+IC5vd2wtc3RhZ2Utb3V0ZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgICA+IC5vd2wtc3RhZ2Uge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgICAgPiAub3dsLWl0ZW0ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5vd2wtZG90cyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgcGFkZGluZy10b3A6IDUwcHg7XHJcblxyXG4gICAgLm93bC1kb3Qge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LXVwJykge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIG1heC13aWR0aDogMTM2cHg7XHJcbiAgICAgIH1cclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIG1heC13aWR0aDogNThweDtcclxuICAgICAgfVxyXG4gICAgICBoZWlnaHQ6IDNweDtcclxuICAgICAgbWFyZ2luOiAwIDcuNXB4O1xyXG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zIGVhc2Utb3V0O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGUtOTAwO1xyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcyBlYXNlLWluO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZS04MDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuYWN0aXZlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZGFyay1ncmVlbi01MDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbl86LW1zLWZ1bGxzY3JlZW4sXHJcbjpyb290IC5yZXZpZXdzX19saXN0IHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgPiAub3dsLXN0YWdlLW91dGVyIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgID4gLm93bC1zdGFnZSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgICAgPiAub3dsLWl0ZW0ge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFJldmlld3MgaXRlbS5cclxuICovXHJcblxyXG4ucmV2aWV3c19faXRlbSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgIHBhZGRpbmc6ICgkZ3JpZC1ndXR0ZXIvMik7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIHBhZGRpbmc6ICRncmlkLWd1dHRlcjtcclxuICB9XHJcbiAgZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuXHJcbi8qIFJldmlld1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFJldmlldy5cclxuICovXHJcblxyXG4ucmV2aWV3IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1yZWd1bGFyO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctcGFnZS1oZWFkO1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgQGluY2x1ZGUgZm9udGF3ZXNvbWUoJ2YxMGUnLCAnU29saWQnKTtcclxuICB9XHJcblxyXG4gID4gLmlubGluZS1pY29uIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNDBweDtcclxuICAgIGxlZnQ6IDQ1cHg7XHJcbiAgICB3aWR0aDogMzJweDtcclxuICAgIGhlaWdodDogMzJweDtcclxuICAgIGNvbG9yOiAkY29sb3IteWVsbG93LTEwMDtcclxuICB9XHJcblxyXG4gIC5yZXZpZXdzX19pdGVtLXF1b3RlIHtcclxuXHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICBAaW5jbHVkZSBmb250YXdlc29tZSgnZjEwZScsICdTb2xpZCcpO1xyXG4gICAgfVxyXG5cclxuICAgID4gLmlubGluZS1pY29uIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IC01MHB4O1xyXG4gICAgICByaWdodDogMjVweDtcclxuICAgICAgd2lkdGg6IDIzMHB4O1xyXG4gICAgICBoZWlnaHQ6IDIzMHB4O1xyXG4gICAgICBjb2xvcjogJGNvbG9yLXllbGxvdy0xMDA7XHJcbiAgICAgIG9wYWNpdHk6IDAuMDQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFJldmlldyBib2R5LlxyXG4gKi9cclxuXHJcbi5yZXZpZXdfX2JvZHkge1xyXG4gIHBhZGRpbmc6IDM4cHggNDBweCAzOHB4IHNwYW4oMSk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogUmV2aWVzIGl0ZW0gdGl0bGUuXHJcbiAqL1xyXG5cclxuLnJldmlld3NfX2l0ZW0tdGl0bGUge1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgU2l0ZSBOYXZcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBTaXRlIG5hdmlnYXRpb24uXHJcbiAqL1xyXG5cclxuLnNpdGUtbmF2IHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgIGhlaWdodDogMTMzcHg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQnKSB7XHJcbiAgICBoZWlnaHQ6IDcycHg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIGhlaWdodDogNjJweDtcclxuICB9XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogU2l0ZSBuYXZpZ2F0aW9uIGhvbWUgbGluay5cclxuICovXHJcblxyXG4uc2l0ZS1uYXZfX2xpbmstLWhvbWUge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgbWF4LXdpZHRoOiAxMzdweDtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuICAgIG1heC13aWR0aDogOTVweDtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgbWF4LXdpZHRoOiA5MnB4O1xyXG4gIH1cclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBMb2dpbiBidXR0b24uXHJcbiAqL1xyXG5cclxuLnNpdGUtbmF2X19sb2dpbiB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDEwcHg7XHJcbiAgICByaWdodDogMDtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcbiAgQGluY2x1ZGUgZm9udCgxMnB4LCAxOHB4KTtcclxuICBjb2xvcjogJGxpbmstY29sb3I7XHJcblxyXG4gICY6OmJlZm9yZSB7XHJcbiAgICBAaW5jbHVkZSBmb250YXdlc29tZSgnZjAyMycsICdMaWdodCcpO1xyXG4gIH1cclxuXHJcbiAgPiAuaW5saW5lLWljb24ge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgfVxyXG59XHJcblxyXG4uc2l0ZS1uYXZfX2xvZ2luLS1sb2dvdXQge1xyXG4gICY6OmJlZm9yZSB7XHJcbiAgICBAaW5jbHVkZSBmb250YXdlc29tZSgnZjA5YycsICdMaWdodCcpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBTaXRlIG5hdmlnYXRpb24gbGlzdC5cclxuICovXHJcblxyXG4uc2l0ZS1uYXZfX2xpc3Qge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gICAgei1pbmRleDogbWFwLWdldCgkei1pbmRleCwgOSk7XHJcblxyXG4gICAgJjpub3QoLmlzLWFjdGl2ZSkge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBTaXRlIG5hdmlnYXRpb24gYnV0dG9uLlxyXG4gKi9cclxuXHJcbi5zaXRlLW5hdl9fYnV0dG9uIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQnKSB7XHJcbiAgICB3aWR0aDogNzJweDtcclxuICAgIGhlaWdodDogNzJweDtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgd2lkdGg6IDYzcHg7XHJcbiAgICBoZWlnaHQ6IDYzcHg7XHJcbiAgfVxyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbWFsbDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZGFyay1ncmVlbi0xMDA7XHJcbiAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbiAgei1pbmRleDogbWFwLWdldCgkei1pbmRleCwgOSk7XHJcblxyXG4gID4gLmlubGluZS1pY29uIHtcclxuICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgaGVpZ2h0OiAyMHB4O1xyXG4gIH1cclxuXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgQGluY2x1ZGUgZm9udGF3ZXNvbWUoJ2YwYzknLCAnTGlnaHQnKTtcclxuICB9XHJcblxyXG4gICYuaXMtYWN0aXZlIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuXHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgIEBpbmNsdWRlIGZvbnRhd2Vzb21lKCdmMDBkJywgJ0xpZ2h0Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyogTWFpbiBNZW51XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogV29yZFByZXNzIG1haW4gbWVudSBjbGFzcyBvdmVycmlkZXMuXHJcbiAqL1xyXG5cclxuXHJcbi8qKlxyXG4gKiBNYWluIG1lbnUuXHJcbiAqL1xyXG5cclxuLm1haW4tbWVudSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICB9XHJcbiAgQGluY2x1ZGUgdGV4dCgnc21hbGwnKTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktaGVhZGluZztcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBNZW51IGl0ZW0uXHJcbiAqL1xyXG5cclxuLm1haW4tbWVudSA+IC5tZW51LWl0ZW0ge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcblxyXG4gICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIH1cclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgbWFyZ2luOiA1cHggMDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogTWVudSBpdGVtIGxpbmsuXHJcbiAqL1xyXG5cclxuLm1haW4tbWVudSA+IC5tZW51LWl0ZW0gPiBhIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHRyYW5zaXRpb246IGNvbG9yIDE0MG1zIGVhc2Utb3V0O1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIHRyYW5zaXRpb246IGNvbG9yIDE0MG1zIGVhc2UtaW47XHJcbiAgICBjb2xvcjogJGNvbG9yLWdyZWVuLTEwMDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogTWVudSBpdGVtIHdpdGggY2hpbGRyZW4uXHJcbiAqL1xyXG5cclxuLm1haW4tbWVudSA+IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gID4gYSB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgICAgcGFkZGluZy1yaWdodDogMjRweDtcclxuICAgIH1cclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB9XHJcbn1cclxuXHJcbi5tYWluLW1lbnUgPiAubWVudS1pdGVtLWhhcy1jaGlsZHJlbjpob3ZlciAuc3VibWVudS1jb250YWluZXIge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEN1cnJlbnQgbWVudSBpdGVtLlxyXG4gKi9cclxuXHJcbi5tYWluLW1lbnUgPiAuY3VycmVudC1tZW51LWl0ZW0gPiBhLFxyXG4ubWFpbi1tZW51ID4gLmN1cnJlbnQtcGFnZS1hbmNlc3RvciA+IGEge1xyXG4gIGNvbG9yOiAkY29sb3ItZ3JlZW4tMTAwO1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbn1cclxuXHJcblxyXG4vKiBTdWJtZW51XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogU3VibWVudSBidXR0b24uXHJcbiAqL1xyXG5cclxuLnN1Ym1lbnUtYnV0dG9uIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgIHJpZ2h0OiAwO1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICByaWdodDogMjBweDtcclxuICB9XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogY2FsYyg1MCUgLSA4cHgpO1xyXG4gIGNvbG9yOiAkY29sb3ItZGFyay1ncmVlbi0xMDA7XHJcblxyXG4gID4gLmlubGluZS1pY29uIHtcclxuICAgIHdpZHRoOiAxNnB4O1xyXG4gICAgaGVpZ2h0OiAxNnB4O1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE0MG1zIGVhc2Utb3V0O1xyXG4gIH1cclxuXHJcbiAgJi5pcy1hY3RpdmUgPiAuaW5saW5lLWljb24ge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcclxuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE0MG1zIGVhc2UtaW47XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFN1Ym1lbnUgY29udGFpbmVyLlxyXG4gKi9cclxuXHJcbi5zdWJtZW51LWNvbnRhaW5lciB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDEwMCU7XHJcbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDEyMHB4KTtcclxuICAgIHdpZHRoOiAyNDBweDtcclxuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcclxuICB9XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBTdWJtZW51LlxyXG4gKi9cclxuXHJcbi5zdWJtZW51IHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDE1cHggMjBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXJlZ3VsYXI7XHJcblxyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IC0zcHg7XHJcbiAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gNXB4KTtcclxuICAgICAgd2lkdGg6IDEwcHg7XHJcbiAgICAgIGhlaWdodDogMTBweDtcclxuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAycHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1kYXJrLWdyZWVuLTEwMDtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHBhZGRpbmc6IDVweCAwO1xyXG4gIH1cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZGFyay1ncmVlbi0xMDA7XHJcbiAgY29sb3I6ICRjb2xvci13aGl0ZS0xMDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogU3VibWVudSBpdGVtLlxyXG4gKi9cclxuXHJcbi5zdWJtZW51ID4gLm1lbnUtaXRlbSB7XHJcbiAgcGFkZGluZzogNXB4IDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogU3VibWVudSBpdGVtIGxpbmsuXHJcbiAqL1xyXG5cclxuLnN1Ym1lbnUgPiAubWVudS1pdGVtID4gYSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG4gIHRyYW5zaXRpb246IGNvbG9yIDE0MG1zIGVhc2Utb3V0O1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIHRyYW5zaXRpb246IGNvbG9yIDE0MG1zIGVhc2UtaW47XHJcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlLTMwMDtcclxuICB9XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgU3RvcmVzXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4uc3RvcmUtZmluZGVyX19pbnRyb2R1Y3Rpb24ge1xyXG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFN0b3JlIGxvY2F0b3IgcGx1Z2luIFtkaXNhYmxlZCBJRCdzIGluIHNhc3MgbGludF1cclxuICovXHJcbi8vIHNhc3MtbGludDpkaXNhYmxlIG5vLWlkc1xyXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBpZC1uYW1lLWZvcm1hdFxyXG5cclxuLyoqXHJcbiAqIFNlYXJjaC5cclxuICovXHJcbi53cHNsLXNlYXJjaCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxuICBwYWRkaW5nOiAyMnB4IDEycHggMTBweDtcclxufVxyXG5cclxuI3dwc2wtc2VhcmNoLXdyYXAge1xyXG4gIEBpbmNsdWRlIHdyYXBwZXI7XHJcbiAgZmxvYXQ6IG5vbmU7XHJcbn1cclxuXHJcbiN3cHNsLXdyYXAgLndwc2wtc2VsZWN0ZWQtaXRlbSB7XHJcbiAgcGFkZGluZzogNXB4IDEycHggIWltcG9ydGFudDtcclxufVxyXG5cclxuI3dwc2wtc2VhcmNoLWJ0biB7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB3aWR0aDogMTAwJTtcclxuICBtaW4taGVpZ2h0OiAzNHB4O1xyXG4gIHBhZGRpbmc6IDEwcHggMjBweDtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zIGVhc2Utb3V0O1xyXG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXNtYWxsO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmVlbi0zMDA7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgYm94LXNoYWRvdzogbm9uZTtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zIGVhc2UtaW47XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JlZW4tMTAwO1xyXG4gIH1cclxuXHJcbiAgPiAuaW5saW5lLWljb24ge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBNYXAuXHJcbiAqL1xyXG5cclxuI3dwc2wtZ21hcCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBmbG9hdDogbm9uZTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBSZXN1bHRzLlxyXG4gKi9cclxuXHJcbiN3cHNsLXJlc3VsdC1saXN0ICN3cHNsLXN0b3JlcyB7XHJcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgbWFyZ2luLXRvcDogNTBweDtcclxufVxyXG5cclxuI3dwc2wtcmVzdWx0LWxpc3Qge1xyXG4gIEBpbmNsdWRlIHdyYXBwZXI7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbiN3cHNsLXJlc3VsdC1saXN0IHVsIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxufVxyXG5cclxuI3dwc2wtd3JhcCAjd3BzbC1yZXN1bHQtbGlzdCB1bCBsaSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtZG93bicpIHtcclxuICAgIHdpZHRoOiBjYWxjKDMzLjMzMzQlIC0gMjRweCk7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAyNHB4KTtcclxuXHJcbiAgICAmOm50aC1jaGlsZCgybiArIDIpIHtcclxuICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICY6bnRoLWNoaWxkKDFuICsgMSkge1xyXG4gICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiBjYWxjKDI1JSAtIDI0cHgpO1xyXG4gIG1hcmdpbjogMTJweDtcclxuICBwYWRkaW5nOiA0MHB4IDQwcHggMTIwcHg7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJveC1zaGFkb3c6ICRib3gtc2hhZG93LXBhZ2UtaGVhZDtcclxuXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICB3aWR0aDogMXB4O1xyXG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyNXB4KTtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gIH1cclxuXHJcbiAgJjpudGgtY2hpbGQoNG4gKyA0KSB7XHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ud3BzbC1zdG9yZS1sb2NhdGlvbiB7XHJcbiAgc3Ryb25nIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICB9XHJcbn1cclxuXHJcbiN3cHNsLXN0b3JlcyAud3BzbC1kaXJlY3Rpb25zIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgcmlnaHQ6IDQwcHg7XHJcbiAgYm90dG9tOiA0MHB4O1xyXG4gIGxlZnQ6IDQwcHg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB3aWR0aDogY2FsYygxMDAlIC0gODBweCk7XHJcbiAgbWluLWhlaWdodDogNDhweDtcclxuICBwYWRkaW5nOiAxNXB4IDIwcHg7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcyBlYXNlLW91dDtcclxuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbWFsbDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JlZW4tMzAwO1xyXG4gIGNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zIGVhc2UtaW47XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ3JlZW4tMTAwO1xyXG4gIH1cclxuXHJcbiAgPiAuaW5saW5lLWljb24ge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIHNhc3MtbGludDplbmFibGUgbm8taWRzXHJcbi8vIHNhc3MtbGludDplbmFibGUgaWQtbmFtZS1mb3JtYXRcclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgVVNQJ3NcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBVU1Ancy5cclxuICovXHJcblxyXG4udXNwcyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgIEBpbmNsdWRlIGJhbmQoODBweCwgMTYwcHgpO1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBAaW5jbHVkZSBiYW5kKDQwcHgsIDgwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuLnVzcHMuYmFja2dyb3VuZC1jb2xvci13aGl0ZSB7XHJcbiAgQGluY2x1ZGUgY29ybmVyKDV2dywgJGNvbG9yLXdoaXRlLTEwMCwgdG9wLCByaWdodCk7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxufVxyXG5cclxuLnVzcHMuYmFja2dyb3VuZC1jb2xvci1ncmV5IHtcclxuICBAaW5jbHVkZSBjb3JuZXIoNXZ3LCAkY29sb3Itd2hpdGUtMjAwLCB0b3AsIHJpZ2h0KTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGUtMjAwO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFVTUCdzIHdyYXBwZXIuXHJcbiAqL1xyXG5cclxuLnVzcHNfX3dyYXBwZXIge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtdXAnKSB7XHJcbiAgICBAaW5jbHVkZSB3cmFwcGVyKCRndXR0ZXI6ICgkZ3JpZC1ndXR0ZXIgKiAyKSk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFVTUCdzIGxpc3QuXHJcbiAqL1xyXG5cclxuLnVzcHNfX2xpc3Qge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxuXHJcbiAgICA+IC5vd2wtc3RhZ2Utb3V0ZXIge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgICAgPiAub3dsLXN0YWdlIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgICAgICA+IC5vd2wtaXRlbSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgICAgICAgID4gLnVzcHNfX2l0ZW0ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXzotbXMtZnVsbHNjcmVlbixcclxuOnJvb3QgLnVzcHNfX2xpc3Qge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgID4gLm93bC1zdGFnZS1vdXRlciB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgICAgPiAub3dsLXN0YWdlIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICAgICAgPiAub3dsLWl0ZW0ge1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgICAgICAgPiAudXNwc19faXRlbSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBVU1AncyBjb250ZW50LlxyXG4gKi9cclxuXHJcbi51c3BzX19jb250ZW50IHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVVNQJ3MgdGl0bGUuXHJcbiAqL1xyXG5cclxuLnVzcHNfX3RpdGxlIHtcclxuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFVTUCdzIGVkaXRvci5cclxuICovXHJcblxyXG4udXNwc19fZWRpdG9yIHtcclxuICBtYXJnaW4tYm90dG9tOiAzNXB4O1xyXG59XHJcblxyXG5cclxuLyogVVNQXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogVVNQLlxyXG4gKi9cclxuXHJcbi51c3Age1xyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgcGFkZGluZzogNDBweDtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuICAgIHBhZGRpbmc6IDgwcHggNDBweCA0MHB4O1xyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBwYWRkaW5nOiA0MHB4O1xyXG4gIH1cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc21hbGw7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxuICBib3gtc2hhZG93OiAkYm94LXNoYWRvdy1wYWdlLWhlYWQ7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVVNQIGltYWdlLlxyXG4gKi9cclxuXHJcbi51c3BfX2ljb24ge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDIwcHg7XHJcbiAgcmlnaHQ6IDQwcHg7XHJcbiAgd2lkdGg6IDYwcHg7XHJcbiAgaGVpZ2h0OiA2MHB4O1xyXG59XHJcblxyXG4udXNwX19pbWFnZSB7XHJcbiAgQGV4dGVuZCAlb2JqZWN0LWZpdC1jb250YWluO1xyXG4gIHdpZHRoOiA2MHB4O1xyXG4gIGhlaWdodDogNjBweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBVU1AgdGl0bGUuXHJcbiAqL1xyXG5cclxuLnVzcF9fdGl0bGUge1xyXG4gIG1hcmdpbi1ib3R0b206IDZweDtcclxuICBwYWRkaW5nLXJpZ2h0OiA4MHB4O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFVTUCBlZGl0b3IuXHJcbiAqL1xyXG5cclxuLnVzcF9fZWRpdG9yIHtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG59XHJcbiIsIi5nYWxsZXJ5LWl0ZW0ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgZmxleC1ncm93OiAxO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHBhZGRpbmc6IDQwcHggNDBweCAyMHB4O1xyXG4gIHRyYW5zaXRpb246IGhlaWdodCAxNDBtcyBlYXNlLW91dDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGUtMTAwO1xyXG4gIGJveC1zaGFkb3c6ICRib3gtc2hhZG93LXBhZ2UtaGVhZDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4uZ2FsbGVyeS1pdGVtX19pbWFnZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMzRweDtcclxuXHJcbiAgaW1nIHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgbWF4LXdpZHRoOiAyMDBweDtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIG1heC1oZWlnaHQ6IDEzM3B4O1xyXG4gIH1cclxufVxyXG5cclxuLmdhbGxlcnktaXRlbV9fdGl0bGUge1xyXG4gIGNvbG9yOiAkY29sb3Itd2hpdGUtNzAwO1xyXG59XHJcblxyXG4uZ2FsbGVyeS1saXN0X19pdGVtIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEFuaW1hdGlvbnNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBTcGlubmluZyBhbmltYXRpb24uXHJcbiAqL1xyXG5cclxuQGtleWZyYW1lcyBzcGlubmluZyB7XHJcblxyXG4gIDAlIHtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gIH1cclxuXHJcbiAgMTAwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xyXG4gIH1cclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBIZWFkaW5nXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogSGVhZGluZyB1dGlsaXR5IGNsYXNzLlxyXG4gKi9cclxuXHJcbi5oZWFkaW5nIHtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWhlYWRpbmc7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogSGVhZGluZyAxLlxyXG4gKi9cclxuXHJcbi5oZWFkaW5nLTEge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIEBpbmNsdWRlIGZvbnQoMjVweCwgMzFweCk7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtdXAnKSB7XHJcbiAgICBAaW5jbHVkZSB0ZXh0KCdqdW1ibycpO1xyXG4gIH1cclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWhlYWRpbmc7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBIZWFkaW5nIDIuXHJcbiAqL1xyXG5cclxuLmhlYWRpbmctMiB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgIEBpbmNsdWRlIHRleHQoJ2h1Z2UnKTtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgQGluY2x1ZGUgZm9udCgyM3B4LCAzM3B4KTtcclxuICB9XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1oZWFkaW5nO1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogSGVhZGluZyAzLlxyXG4gKi9cclxuXHJcbi5oZWFkaW5nLTMge1xyXG4gIEBpbmNsdWRlIHRleHQoJ2xhcmdlJyk7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1oZWFkaW5nO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgT2JqZWN0IEZpdFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEhlbHBlciBjbGFzcyBmb3Igb2JqZWN0IGZpdCBwb2x5ZmlsbC4gQWRkIHRoaXMgY2xhc3MgdG8gYW55IGVsZW1lbnRcclxuICogdGhhdCB1dGlsaXplcyB0aGUgYG9iamVjdC1maXRgIHByb3BlcnR5LlxyXG4gKi9cclxuXHJcbi5vYmplY3QtZml0IHtcclxuICBmb250LWZhbWlseTogJ29iamVjdC1maXQ6IGNvdmVyOyc7XHJcbiAgb2JqZWN0LWZpdDogY292ZXI7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgVGV4dFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXRlIHV0aWxpdHkgY2xhc3NlcyBmb3IgbWFuaXB1bGF0aW9uIG9mIGZvbnQgc2l6ZXMuXHJcbiAqL1xyXG5cclxuQGVhY2ggJGtleSwgJHZhbHVlIGluICRmb250LXNpemUge1xyXG4gIC50ZXh0LSN7JGtleX0ge1xyXG4gICAgQGluY2x1ZGUgZm9udChtYXAtZ2V0KCRmb250LXNpemUsICRrZXkpLCBtYXAtZ2V0KCRsaW5lLWhlaWdodCwgJGtleSkpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmF0ZSB1dGlsaXR5IGNsYXNzZXMgZm9yIG1hbmlwdWxhdGlvbiBvZiB0ZXh0IGFsaWdubWVudC5cclxuICovXHJcblxyXG5AZWFjaCAkZGlyZWN0aW9uIGluIGxlZnQsIHJpZ2h0LCBjZW50ZXIge1xyXG4gIC50ZXh0LSN7JGRpcmVjdGlvbn0ge1xyXG4gICAgdGV4dC1hbGlnbjogJGRpcmVjdGlvbjtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogR2VuZXJhdGUgdXRpbGl0eSBjbGFzc2VzIGZvciBtYW5pcHVsYXRpb24gb2YgZm9udCB3ZWlnaHQuXHJcbiAqL1xyXG5cclxuQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA5IHtcclxuICAkaTogJGkgKiAxMDA7XHJcblxyXG4gIC50ZXh0LSN7JGl9IHtcclxuICAgIGZvbnQtd2VpZ2h0OiAjeyRpfTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGV4dCBjb2xvcnMuXHJcbiAqL1xyXG5cclxuLnRleHQtd2hpdGUtMTAwIHtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlLTEwMDtcclxufVxyXG5cclxuLnRleHQtZGFyay1ncmVlbi03MDAge1xyXG4gIGNvbG9yOiAkY29sb3ItZGFyay1ncmVlbi03MDA7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgWi1pbmRleFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFV0aWxpdHkgY2xhc3NlcyBmb3IgbWFuaXB1bGF0aW5nIHN0YWNraW5nIG9yZGVyIGluIEhUTUwuXHJcbiAqL1xyXG5cclxuQGVhY2ggJGtleSwgJHZhbHVlIGluICR6LWluZGV4IHtcclxuICAuei1pbmRleC0jeyRrZXl9IHtcclxuICAgIHotaW5kZXg6ICR2YWx1ZTtcclxuICB9XHJcbn1cclxuIl19 */
