@charset "UTF-8";
/**
 * Swiper 4.2.0
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * http://www.idangero.us/swiper/
 *
 * Copyright 2014-2018 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: March 16, 2018
 */
.swiper-container {
  margin: 0 auto;
  position: relative;
  overflow: hidden;
  list-style: none;
  padding: 0;
  /* Fix of Webkit flickering */
  z-index: 1; }

.swiper-container-no-flexbox .swiper-slide {
  float: left; }

.swiper-container-vertical > .swiper-wrapper {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column; }

.swiper-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-transition-property: -webkit-transform;
  transition-property: -webkit-transform;
  -o-transition-property: transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  -webkit-box-sizing: content-box;
  box-sizing: content-box; }

.swiper-container-android .swiper-slide,
.swiper-wrapper {
  -webkit-transform: translate3d(0px, 0, 0);
  transform: translate3d(0px, 0, 0); }

.swiper-container-multirow > .swiper-wrapper {
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap; }

.swiper-container-free-mode > .swiper-wrapper {
  -webkit-transition-timing-function: ease-out;
  -o-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
  margin: 0 auto; }

.swiper-slide {
  -webkit-flex-shrink: 0;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  position: relative;
  -webkit-transition-property: -webkit-transform;
  transition-property: -webkit-transform;
  -o-transition-property: transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform; }

.swiper-invisible-blank-slide {
  visibility: hidden; }

/* Auto Height */
.swiper-container-autoheight,
.swiper-container-autoheight .swiper-slide {
  height: auto; }

.swiper-container-autoheight .swiper-wrapper {
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
  -ms-flex-align: start;
  align-items: flex-start;
  -webkit-transition-property: height, -webkit-transform;
  transition-property: height, -webkit-transform;
  -o-transition-property: transform, height;
  transition-property: transform, height;
  transition-property: transform, height, -webkit-transform; }

/* 3D Effects */
.swiper-container-3d {
  -webkit-perspective: 1200px;
  perspective: 1200px; }

.swiper-container-3d .swiper-wrapper,
.swiper-container-3d .swiper-slide,
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom,
.swiper-container-3d .swiper-cube-shadow {
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d; }

.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 10; }

.swiper-container-3d .swiper-slide-shadow-left {
  background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
  background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); }

.swiper-container-3d .swiper-slide-shadow-right {
  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); }

.swiper-container-3d .swiper-slide-shadow-top {
  background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
  background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); }

.swiper-container-3d .swiper-slide-shadow-bottom {
  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
  background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); }

/* IE10 Windows Phone 8 Fixes */
.swiper-container-wp8-horizontal,
.swiper-container-wp8-horizontal > .swiper-wrapper {
  -ms-touch-action: pan-y;
  touch-action: pan-y; }

.swiper-container-wp8-vertical,
.swiper-container-wp8-vertical > .swiper-wrapper {
  -ms-touch-action: pan-x;
  touch-action: pan-x; }

.swiper-button-prev,
.swiper-button-next {
  position: absolute;
  top: 50%;
  width: 27px;
  height: 44px;
  margin-top: -22px;
  z-index: 10;
  cursor: pointer;
  background-size: 27px 44px;
  background-position: center;
  background-repeat: no-repeat; }

.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled {
  opacity: 0.35;
  cursor: auto;
  pointer-events: none; }

.swiper-button-prev,
.swiper-container-rtl .swiper-button-next {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
  left: 10px;
  right: auto; }

.swiper-button-next,
.swiper-container-rtl .swiper-button-prev {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
  right: 10px;
  left: auto; }

.swiper-button-prev.swiper-button-white,
.swiper-container-rtl .swiper-button-next.swiper-button-white {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E"); }

.swiper-button-next.swiper-button-white,
.swiper-container-rtl .swiper-button-prev.swiper-button-white {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E"); }

.swiper-button-prev.swiper-button-black,
.swiper-container-rtl .swiper-button-next.swiper-button-black {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E"); }

.swiper-button-next.swiper-button-black,
.swiper-container-rtl .swiper-button-prev.swiper-button-black {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E"); }

.swiper-button-lock {
  display: none; }

.swiper-pagination {
  position: absolute;
  text-align: center;
  -webkit-transition: 300ms opacity;
  -o-transition: 300ms opacity;
  transition: 300ms opacity;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  z-index: 10; }

.swiper-pagination.swiper-pagination-hidden {
  opacity: 0; }

/* Common Styles */
.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-container-horizontal > .swiper-pagination-bullets {
  bottom: 10px;
  left: 0;
  width: 100%; }

/* Bullets */
.swiper-pagination-bullets-dynamic {
  overflow: hidden;
  font-size: 0; }

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  -webkit-transform: scale(0.33);
  -ms-transform: scale(0.33);
  transform: scale(0.33);
  position: relative; }

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1); }

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1); }

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
  -webkit-transform: scale(0.66);
  -ms-transform: scale(0.66);
  transform: scale(0.66); }

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
  -webkit-transform: scale(0.33);
  -ms-transform: scale(0.33);
  transform: scale(0.33); }

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
  -webkit-transform: scale(0.66);
  -ms-transform: scale(0.66);
  transform: scale(0.66); }

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
  -webkit-transform: scale(0.33);
  -ms-transform: scale(0.33);
  transform: scale(0.33); }

.swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  display: inline-block;
  border-radius: 100%;
  background: #000;
  opacity: 0.2; }

button.swiper-pagination-bullet {
  border: none;
  margin: 0;
  padding: 0;
  -webkit-box-shadow: none;
  box-shadow: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none; }

.swiper-pagination-clickable .swiper-pagination-bullet {
  cursor: pointer; }

.swiper-pagination-bullet-active {
  opacity: 1;
  background: #007aff; }

.swiper-container-vertical > .swiper-pagination-bullets {
  right: 10px;
  top: 50%;
  -webkit-transform: translate3d(0px, -50%, 0);
  transform: translate3d(0px, -50%, 0); }

.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 6px 0;
  display: block; }

.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  width: 8px; }

.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  display: inline-block;
  -webkit-transition: 200ms top, 200ms -webkit-transform;
  transition: 200ms top, 200ms -webkit-transform;
  -o-transition: 200ms transform, 200ms top;
  transition: 200ms transform, 200ms top;
  transition: 200ms transform, 200ms top, 200ms -webkit-transform; }

.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 0 4px; }

.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
  left: 50%;
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);
  white-space: nowrap; }

.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  -webkit-transition: 200ms left, 200ms -webkit-transform;
  transition: 200ms left, 200ms -webkit-transform;
  -o-transition: 200ms transform, 200ms left;
  transition: 200ms transform, 200ms left;
  transition: 200ms transform, 200ms left, 200ms -webkit-transform; }

.swiper-container-horizontal.swiper-container-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  -webkit-transition: 200ms right, 200ms -webkit-transform;
  transition: 200ms right, 200ms -webkit-transform;
  -o-transition: 200ms transform, 200ms right;
  transition: 200ms transform, 200ms right;
  transition: 200ms transform, 200ms right, 200ms -webkit-transform; }

/* Progress */
.swiper-pagination-progressbar {
  background: rgba(0, 0, 0, 0.25);
  position: absolute; }

.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
  background: #007aff;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  -webkit-transform: scale(0);
  -ms-transform: scale(0);
  transform: scale(0);
  -webkit-transform-origin: left top;
  -ms-transform-origin: left top;
  transform-origin: left top; }

.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
  -webkit-transform-origin: right top;
  -ms-transform-origin: right top;
  transform-origin: right top; }

.swiper-container-horizontal > .swiper-pagination-progressbar {
  width: 100%;
  height: 4px;
  left: 0;
  top: 0; }

.swiper-container-vertical > .swiper-pagination-progressbar {
  width: 4px;
  height: 100%;
  left: 0;
  top: 0; }

.swiper-pagination-white .swiper-pagination-bullet-active {
  background: #ffffff; }

.swiper-pagination-progressbar.swiper-pagination-white {
  background: rgba(255, 255, 255, 0.25); }

.swiper-pagination-progressbar.swiper-pagination-white .swiper-pagination-progressbar-fill {
  background: #ffffff; }

.swiper-pagination-black .swiper-pagination-bullet-active {
  background: #000000; }

.swiper-pagination-progressbar.swiper-pagination-black {
  background: rgba(0, 0, 0, 0.25); }

.swiper-pagination-progressbar.swiper-pagination-black .swiper-pagination-progressbar-fill {
  background: #000000; }

.swiper-pagination-lock {
  display: none; }

/* Scrollbar */
.swiper-scrollbar {
  border-radius: 10px;
  position: relative;
  -ms-touch-action: none;
  background: rgba(0, 0, 0, 0.1); }

.swiper-container-horizontal > .swiper-scrollbar {
  position: absolute;
  left: 1%;
  bottom: 3px;
  z-index: 50;
  height: 5px;
  width: 98%; }

.swiper-container-vertical > .swiper-scrollbar {
  position: absolute;
  right: 3px;
  top: 1%;
  z-index: 50;
  width: 5px;
  height: 98%; }

.swiper-scrollbar-drag {
  height: 100%;
  width: 100%;
  position: relative;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 10px;
  left: 0;
  top: 0; }

.swiper-scrollbar-cursor-drag {
  cursor: move; }

.swiper-scrollbar-lock {
  display: none; }

.swiper-zoom-container {
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  text-align: center; }

.swiper-zoom-container > img,
.swiper-zoom-container > svg,
.swiper-zoom-container > canvas {
  max-width: 100%;
  max-height: 100%;
  -o-object-fit: contain;
  object-fit: contain; }

.swiper-slide-zoomed {
  cursor: move; }

/* Preloader */
.swiper-lazy-preloader {
  width: 42px;
  height: 42px;
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -21px;
  margin-top: -21px;
  z-index: 10;
  -webkit-transform-origin: 50%;
  -ms-transform-origin: 50%;
  transform-origin: 50%;
  -webkit-animation: swiper-preloader-spin 1s steps(12, end) infinite;
  animation: swiper-preloader-spin 1s steps(12, end) infinite; }

.swiper-lazy-preloader:after {
  display: block;
  content: '';
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-position: 50%;
  background-size: 100%;
  background-repeat: no-repeat; }

.swiper-lazy-preloader-white:after {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); }

@-webkit-keyframes swiper-preloader-spin {
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg); } }

@keyframes swiper-preloader-spin {
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg); } }

/* a11y */
.swiper-container .swiper-notification {
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
  opacity: 0;
  z-index: -1000; }

.swiper-container-fade.swiper-container-free-mode .swiper-slide {
  -webkit-transition-timing-function: ease-out;
  -o-transition-timing-function: ease-out;
  transition-timing-function: ease-out; }

.swiper-container-fade .swiper-slide {
  pointer-events: none;
  -webkit-transition-property: opacity;
  -o-transition-property: opacity;
  transition-property: opacity; }

.swiper-container-fade .swiper-slide .swiper-slide {
  pointer-events: none; }

.swiper-container-fade .swiper-slide-active,
.swiper-container-fade .swiper-slide-active .swiper-slide-active {
  pointer-events: auto; }

.swiper-container-cube {
  overflow: visible; }

.swiper-container-cube .swiper-slide {
  pointer-events: none;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  z-index: 1;
  visibility: hidden;
  -webkit-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
  width: 100%;
  height: 100%; }

.swiper-container-cube .swiper-slide .swiper-slide {
  pointer-events: none; }

.swiper-container-cube.swiper-container-rtl .swiper-slide {
  -webkit-transform-origin: 100% 0;
  -ms-transform-origin: 100% 0;
  transform-origin: 100% 0; }

.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-active .swiper-slide-active {
  pointer-events: auto; }

.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-next,
.swiper-container-cube .swiper-slide-prev,
.swiper-container-cube .swiper-slide-next + .swiper-slide {
  pointer-events: auto;
  visibility: visible; }

.swiper-container-cube .swiper-slide-shadow-top,
.swiper-container-cube .swiper-slide-shadow-bottom,
.swiper-container-cube .swiper-slide-shadow-left,
.swiper-container-cube .swiper-slide-shadow-right {
  z-index: 0;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

.swiper-container-cube .swiper-cube-shadow {
  position: absolute;
  left: 0;
  bottom: 0px;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0.6;
  -webkit-filter: blur(50px);
  filter: blur(50px);
  z-index: 0; }

.swiper-container-flip {
  overflow: visible; }

.swiper-container-flip .swiper-slide {
  pointer-events: none;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  z-index: 1; }

.swiper-container-flip .swiper-slide .swiper-slide {
  pointer-events: none; }

.swiper-container-flip .swiper-slide-active,
.swiper-container-flip .swiper-slide-active .swiper-slide-active {
  pointer-events: auto; }

.swiper-container-flip .swiper-slide-shadow-top,
.swiper-container-flip .swiper-slide-shadow-bottom,
.swiper-container-flip .swiper-slide-shadow-left,
.swiper-container-flip .swiper-slide-shadow-right {
  z-index: 0;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

.swiper-container-coverflow .swiper-wrapper {
  /* Windows 8 IE 10 fix */
  -ms-perspective: 1200px; }

@keyframes heartbeat {
  0% {
    transform: rotate(-45deg) scale(0.75); }
  20% {
    transform: rotate(-45deg) scale(1); }
  40% {
    transform: rotate(-45deg) scale(0.75); }
  60% {
    transform: rotate(-45deg) scale(1); }
  80% {
    transform: rotate(-45deg) scale(0.75); }
  100% {
    transform: rotate(-45deg) scale(0.75); } }

@keyframes heartbeatNoRotate {
  0% {
    transform: scale(0.75); }
  20% {
    transform: scale(1); }
  40% {
    transform: scale(0.75); }
  60% {
    transform: scale(1); }
  80% {
    transform: scale(0.75); }
  100% {
    transform: scale(0.75); } }

@keyframes sway {
  0%,
  100% {
    transform: translateX(-5px); }
  50% {
    transform: translateX(0); } }

@keyframes balloons {
  0% {
    transform: translateY(1000px); }
  100% {
    transform: translateY(300%); } }

@keyframes balloons1 {
  0% {
    transform: translateY(1000px); }
  100% {
    transform: translateY(0%); } }

@keyframes balloons2 {
  0% {
    transform: translateY(1000px); }
  100% {
    transform: translateY(0%); } }

@keyframes balloons3 {
  0% {
    transform: translateY(1000px); }
  100% {
    transform: translateY(0%); } }

@keyframes animateCloud {
  0% {
    margin-left: -1000px; }
  100% {
    margin-left: 100%; } }

:root {
  --grid-gap: clamp(2rem, calc(1.5385rem + 1.2821vw), 4rem);
  --standard-gap: clamp(1rem, calc(0.7692rem + 0.6410vw), 2rem);
  --double-gap: clamp(2rem, calc(1.5385rem + 1.2821vw), 4rem);
  --wide-width: 192rem;
  --max-width: 160rem;
  --reduced-width: 144rem;
  --min-width: 36rem;
  --default-width: 90vw;
  --spacer-height: calc(max(10vh, 25rem));
  --header-height: 4rem; }

/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

*, *:before, *:after {
  box-sizing: inherit;
  -webkit-tap-highlight-color: transparent;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

a {
  text-decoration: none;
  color: inherit;
  outline: none; }

.-c-white {
  color: #fff; }

.-bg-white {
  background-color: #fff !important; }

.-border-white {
  border-color: #fff !important; }

.-f-white {
  fill: #fff; }
  .-f-white.m-iconset svg, .-f-white svg {
    fill: #fff !important; }

.-c-black {
  color: #0c0c0c; }

.-bg-black {
  background-color: #0c0c0c !important; }

.-border-black {
  border-color: #0c0c0c !important; }

.-f-black {
  fill: #0c0c0c; }
  .-f-black.m-iconset svg, .-f-black svg {
    fill: #0c0c0c !important; }

.-c-blue {
  color: #6ab1e3; }

.-bg-blue {
  background-color: #6ab1e3 !important; }

.-border-blue {
  border-color: #6ab1e3 !important; }

.-f-blue {
  fill: #6ab1e3; }
  .-f-blue.m-iconset svg, .-f-blue svg {
    fill: #6ab1e3 !important; }

.-c-blue2 {
  color: #4e84aa; }

.-bg-blue2 {
  background-color: #4e84aa !important; }

.-border-blue2 {
  border-color: #4e84aa !important; }

.-f-blue2 {
  fill: #4e84aa; }
  .-f-blue2.m-iconset svg, .-f-blue2 svg {
    fill: #4e84aa !important; }

.-c-lightblue {
  color: #bbdbf2; }

.-bg-lightblue {
  background-color: #bbdbf2 !important; }

.-border-lightblue {
  border-color: #bbdbf2 !important; }

.-f-lightblue {
  fill: #bbdbf2; }
  .-f-lightblue.m-iconset svg, .-f-lightblue svg {
    fill: #bbdbf2 !important; }

.-c-darkblue {
  color: #282f67; }

.-bg-darkblue {
  background-color: #282f67 !important; }

.-border-darkblue {
  border-color: #282f67 !important; }

.-f-darkblue {
  fill: #282f67; }
  .-f-darkblue.m-iconset svg, .-f-darkblue svg {
    fill: #282f67 !important; }

.-c-grey {
  color: #494949; }

.-bg-grey {
  background-color: #494949 !important; }

.-border-grey {
  border-color: #494949 !important; }

.-f-grey {
  fill: #494949; }
  .-f-grey.m-iconset svg, .-f-grey svg {
    fill: #494949 !important; }

.-c-lightgrey {
  color: #f2f2f2; }

.-bg-lightgrey {
  background-color: #f2f2f2 !important; }

.-border-lightgrey {
  border-color: #f2f2f2 !important; }

.-f-lightgrey {
  fill: #f2f2f2; }
  .-f-lightgrey.m-iconset svg, .-f-lightgrey svg {
    fill: #f2f2f2 !important; }

picture, picture img {
  display: block;
  margin: 0 auto;
  background-color: transparent; }

strong, b, .t-bold {
  font-weight: bold; }

i, em, .t-italic {
  font-style: italic; }

small {
  font-size: 0.5em;
  line-height: 1em !important;
  margin-top: 2rem;
  display: block; }

sup {
  vertical-align: super;
  font-size: smaller; }

sub {
  vertical-align: sub;
  font-size: smaller; }

p + p {
  margin-top: 1rem; }

.r-180 {
  transform: rotate(180deg); }

.w-100vw {
  width: 100vw; }

.h-100vh {
  height: 100vh; }

.h-25vh {
  height: 25vh; }

.mar-x {
  margin-left: var(--standard-gap);
  margin-right: var(--standard-gap); }

.mar-x--2 {
  margin-left: var(--double-gap);
  margin-right: var(--double-gap); }

.mar-y {
  margin-top: var(--standard-gap);
  margin-bottom: var(--standard-gap); }

.mar-y--2 {
  margin-top: var(--double-gap);
  margin-bottom: var(--double-gap); }

.mar-y--0 {
  margin-top: 0;
  margin-bottom: 0; }

.mar-b {
  margin-bottom: var(--standard-gap); }

.mar-b--2 {
  margin-bottom: var(--double-gap); }

.mar-b--0 {
  margin-bottom: 0 !important; }

.mar-t {
  margin-top: var(--standard-gap); }

.mar-t--2 {
  margin-top: var(--double-gap); }

.mar-t--0 {
  margin-bottom: 0; }

.pad-x {
  padding-left: var(--standard-gap);
  padding-right: var(--standard-gap); }

.pad-x--2 {
  padding-left: var(--double-gap);
  padding-right: var(--double-gap); }

.pad-y {
  padding-top: var(--standard-gap);
  padding-bottom: var(--standard-gap); }

.pad-y--2 {
  padding-top: var(--double-gap);
  padding-bottom: var(--double-gap); }

.pad-b {
  padding-bottom: var(--standard-gap); }

.pad-b--2 {
  padding-bottom: var(--double-gap); }

.pad-t {
  padding-top: var(--standard-gap); }

.pad-t--2 {
  padding-top: var(--double-gap); }

.w-100 {
  width: 100%;
  flex: 0 0 100%; }

.h-hidden {
  display: none !important; }

@media (min-width: 992px) {
  .h-desktop {
    display: none; } }

.h-mobile {
  display: none; }
  @media (min-width: 992px) {
    .h-mobile {
      display: block; } }

.--invisible {
  visibility: hidden; }

.d-flex {
  display: flex; }
  .d-flex > .m-aside {
    padding-left: var(--double-gap);
    padding-right: var(--double-gap);
    width: calc(max(25%, 330px)); }
    .d-flex > .m-aside + * {
      padding-left: var(--double-gap);
      padding-right: var(--double-gap);
      width: calc(max(75%, 330px)); }

.d-inline-block {
  display: inline-block; }

.d-block {
  display: block; }

.d-flex--column {
  flex-direction: column; }
  .d-flex--column__mobile {
    flex-direction: column; }
    @media (min-width: 992px) {
      .d-flex--column__mobile {
        flex-direction: row; } }

.fg-1 {
  flex-grow: 1; }

.fw-wrap {
  flex-wrap: wrap; }

.zi-3 {
  z-index: 3; }

.d-grid {
  display: grid;
  gap: var(--grid-gap);
  padding-left: var(--standard-gap);
  padding-right: var(--standard-gap);
  /*@include bp(desktop) {
    padding: 0;
  }*/ }
  .d-grid.swiper-container {
    padding-left: var(--standard-gap);
    padding-right: var(--standard-gap); }

.g-template-w {
  grid-template-columns: 1fr; }
  .g-template-w--1 {
    grid-template-columns: repeat(1, 1fr); }
  .g-template-w--2 {
    grid-template-columns: repeat(2, 1fr); }
  .g-template-w--3 {
    grid-template-columns: repeat(3, 1fr); }
  .g-template-w--4 {
    grid-template-columns: repeat(4, 1fr); }
  .g-template-w--5 {
    grid-template-columns: repeat(5, 1fr); }
  .g-template-w--6 {
    grid-template-columns: repeat(6, 1fr); }

.g-template-h {
  grid-template-rows: 1fr; }
  @media (min-width: 992px) {
    .g-template-h--1 {
      grid-template-rows: repeat(1, 1fr); }
    .g-template-h--2 {
      grid-template-rows: repeat(2, 1fr); }
    .g-template-h--3 {
      grid-template-rows: repeat(3, 1fr); }
    .g-template-h--4 {
      grid-template-rows: repeat(4, 1fr); }
    .g-template-h--5 {
      grid-template-rows: repeat(5, 1fr); }
    .g-template-h--6 {
      grid-template-rows: repeat(6, 1fr); } }

.g-span-w--all {
  grid-column: 1/-1;
  min-width: calc(100%); }

.g-span-w--1 {
  grid-column: span 1;
  min-width: calc(100% / 1); }

.g-span-w--2 {
  grid-column: span 2;
  min-width: calc(100% / 2); }

.g-span-w--3 {
  grid-column: span 3;
  min-width: calc(100% / 3); }

.g-span-w--4 {
  grid-column: span 4;
  min-width: calc(100% / 4); }

.g-span-w--5 {
  grid-column: span 5;
  min-width: calc(100% / 5); }

.g-span-w--6 {
  grid-column: span 6;
  min-width: calc(100% / 6); }

.g-span-w--7 {
  grid-column: span 7;
  min-width: calc(100% / 7); }

.g-span-w--8 {
  grid-column: span 8;
  min-width: calc(100% / 8); }

.g-span-h--all {
  grid-row: 1/-1; }

.g-span-h--1 {
  grid-row: span 1; }

.g-span-h--2 {
  grid-row: span 2; }

.g-span-h--3 {
  grid-row: span 3; }

.g-span-h--4 {
  grid-row: span 4; }

.g-span-h--5 {
  grid-row: span 5; }

.g-span-h--6 {
  grid-row: span 6; }

.g-span-h--7 {
  grid-row: span 7; }

.g-span-h--8 {
  grid-row: span 8; }

.m-gallery > picture {
  margin: 0 1.5rem; }
  .--litte-gallery .m-gallery > picture {
    margin: 0 3.5rem; }

.--litte-gallery .m-gallery--1 picture {
  --currentWidth: calc(100%/(1*5));
  width: calc(min(var(--currentWidth), 6rem)); }

.--litte-gallery .m-gallery--2 picture {
  --currentWidth: calc(100%/(2*5));
  width: calc(min(var(--currentWidth), 6rem)); }

.--litte-gallery .m-gallery--3 picture {
  --currentWidth: calc(100%/(3*5));
  width: calc(min(var(--currentWidth), 6rem)); }

.--litte-gallery .m-gallery--4 picture {
  --currentWidth: calc(100%/(4*5));
  width: calc(min(var(--currentWidth), 6rem)); }

.--litte-gallery .m-gallery--5 picture {
  --currentWidth: calc(100%/(5*5));
  width: calc(min(var(--currentWidth), 6rem)); }

.--litte-gallery .m-gallery--6 picture {
  --currentWidth: calc(100%/(6*5));
  width: calc(min(var(--currentWidth), 6rem)); }

.--litte-gallery .m-gallery--7 picture {
  --currentWidth: calc(100%/(7*5));
  width: calc(min(var(--currentWidth), 6rem)); }

.--litte-gallery .m-gallery--8 picture {
  --currentWidth: calc(100%/(8*5));
  width: calc(min(var(--currentWidth), 6rem)); }

.--litte-gallery .m-gallery--9 picture {
  --currentWidth: calc(100%/(9*5));
  width: calc(min(var(--currentWidth), 6rem)); }

.m-gallery--1 picture {
  --currentWidth: calc(100%/(1));
  width: var(--currentWidth); }

.m-gallery--2 picture {
  --currentWidth: calc(100%/(2));
  width: var(--currentWidth); }

.m-gallery--3 picture {
  --currentWidth: calc(100%/(3));
  width: var(--currentWidth); }

.m-gallery--4 picture {
  --currentWidth: calc(100%/(4));
  width: var(--currentWidth); }

.m-gallery--5 picture {
  --currentWidth: calc(100%/(5));
  width: var(--currentWidth); }

.m-gallery--6 picture {
  --currentWidth: calc(100%/(6));
  width: var(--currentWidth); }

.m-gallery--7 picture {
  --currentWidth: calc(100%/(7));
  width: var(--currentWidth); }

.m-gallery--8 picture {
  --currentWidth: calc(100%/(8));
  width: var(--currentWidth); }

.m-gallery--9 picture {
  --currentWidth: calc(100%/(9));
  width: var(--currentWidth); }

.p-relative {
  position: relative; }

.p-absolute {
  position: absolute; }

.p-bottom {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%; }

.p-top {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%; }

.--ml-auto {
  margin-left: auto; }

.--mr-auto {
  margin-right: auto; }

.--jc-start {
  justify-content: start; }

.--jc-end {
  justify-content: end; }

.--jc-center {
  justify-content: center; }

.--ac-start {
  align-content: start; }

.--ac-end {
  align-content: end; }

.--ac-center {
  align-content: center; }

.--ai-start {
  align-items: start; }

.--ai-end {
  align-items: end; }

.--ai-center {
  align-items: center; }

.--as-start {
  align-self: start; }

.--as-end {
  align-self: end; }

.--as-center {
  align-self: center; }

.no-js img.lazyload {
  display: none; }

.lazyload,
.lazyloading {
  opacity: 0;
  transition: opacity 400ms; }

.fade-box img.lazyloaded {
  opacity: 1; }

.o-hidden {
  overflow: hidden; }

.o-hidden-x {
  overflow-x: hidden; }

.o-hidden-y {
  overflow-y: hidden; }

/* https://www.zachleat.com/web/fluid-images/ */
img {
  max-width: 100%; }

img[width] {
  width: auto;
  /* Defer to max-width */ }

img[width][height] {
  height: auto;
  /* Preserve aspect ratio */ }

/* Let SVG scale without boundaries */
img[src$=".svg"] {
  width: 100%;
  height: auto;
  max-width: none; }

.arrow {
  border: solid #fff;
  border-width: 0 3px 3px 0;
  display: inline-block;
  padding: 2rem;
  margin: 0 2rem; }
  .arrow-right {
    transform: rotate(-45deg); }
  .arrow-left {
    transform: rotate(135deg); }
  .arrow-up {
    transform: translateY(50%) rotate(-135deg); }
  .arrow-down {
    transform: rotate(45deg); }

[js-dom-parallax] {
  will-change: transform; }

[js-reveal-text] {
  opacity: 0;
  transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1); }
  [js-reveal-text] > div {
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1); }
    [js-reveal-text] > div:nth-child(0) {
      transition-delay: 0s; }
    [js-reveal-text] > div:nth-child(1) {
      transition-delay: 0.1s; }
    [js-reveal-text] > div:nth-child(2) {
      transition-delay: 0.2s; }
    [js-reveal-text] > div:nth-child(3) {
      transition-delay: 0.3s; }
    [js-reveal-text] > div:nth-child(4) {
      transition-delay: 0.4s; }
    [js-reveal-text] > div:nth-child(5) {
      transition-delay: 0.5s; }
    [js-reveal-text] > div:nth-child(6) {
      transition-delay: 0.6s; }
    [js-reveal-text] > div:nth-child(7) {
      transition-delay: 0.7s; }
    [js-reveal-text] > div:nth-child(8) {
      transition-delay: 0.8s; }
    [js-reveal-text] > div:nth-child(9) {
      transition-delay: 0.9s; }
    [js-reveal-text] > div:nth-child(10) {
      transition-delay: 1s; }
    [js-reveal-text] > div:nth-child(11) {
      transition-delay: 1.1s; }
    [js-reveal-text] > div:nth-child(12) {
      transition-delay: 1.2s; }
    [js-reveal-text] > div:nth-child(13) {
      transition-delay: 1.3s; }
    [js-reveal-text] > div:nth-child(14) {
      transition-delay: 1.4s; }
    [js-reveal-text] > div:nth-child(15) {
      transition-delay: 1.5s; }
    [js-reveal-text] > div:nth-child(16) {
      transition-delay: 1.6s; }
    [js-reveal-text] > div:nth-child(17) {
      transition-delay: 1.7s; }
    [js-reveal-text] > div:nth-child(18) {
      transition-delay: 1.8s; }
    [js-reveal-text] > div:nth-child(19) {
      transition-delay: 1.9s; }
    [js-reveal-text] > div:nth-child(20) {
      transition-delay: 2s; }
    [js-reveal-text] > div:nth-child(21) {
      transition-delay: 2.1s; }
    [js-reveal-text] > div:nth-child(22) {
      transition-delay: 2.2s; }
    [js-reveal-text] > div:nth-child(23) {
      transition-delay: 2.3s; }
    [js-reveal-text] > div:nth-child(24) {
      transition-delay: 2.4s; }
    [js-reveal-text] > div:nth-child(25) {
      transition-delay: 2.5s; }
    [js-reveal-text] > div:nth-child(26) {
      transition-delay: 2.6s; }
    [js-reveal-text] > div:nth-child(27) {
      transition-delay: 2.7s; }
    [js-reveal-text] > div:nth-child(28) {
      transition-delay: 2.8s; }
    [js-reveal-text] > div:nth-child(29) {
      transition-delay: 2.9s; }
    [js-reveal-text] > div:nth-child(30) {
      transition-delay: 3s; }
    [js-reveal-text] > div:nth-child(31) {
      transition-delay: 3.1s; }
    [js-reveal-text] > div:nth-child(32) {
      transition-delay: 3.2s; }
    [js-reveal-text] > div:nth-child(33) {
      transition-delay: 3.3s; }
    [js-reveal-text] > div:nth-child(34) {
      transition-delay: 3.4s; }
    [js-reveal-text] > div:nth-child(35) {
      transition-delay: 3.5s; }
    [js-reveal-text] > div:nth-child(36) {
      transition-delay: 3.6s; }
    [js-reveal-text] > div:nth-child(37) {
      transition-delay: 3.7s; }
    [js-reveal-text] > div:nth-child(38) {
      transition-delay: 3.8s; }
    [js-reveal-text] > div:nth-child(39) {
      transition-delay: 3.9s; }
    [js-reveal-text] > div:nth-child(40) {
      transition-delay: 4s; }
    [js-reveal-text] > div:nth-child(41) {
      transition-delay: 4.1s; }
    [js-reveal-text] > div:nth-child(42) {
      transition-delay: 4.2s; }
    [js-reveal-text] > div:nth-child(43) {
      transition-delay: 4.3s; }
    [js-reveal-text] > div:nth-child(44) {
      transition-delay: 4.4s; }
    [js-reveal-text] > div:nth-child(45) {
      transition-delay: 4.5s; }
    [js-reveal-text] > div:nth-child(46) {
      transition-delay: 4.6s; }
    [js-reveal-text] > div:nth-child(47) {
      transition-delay: 4.7s; }
    [js-reveal-text] > div:nth-child(48) {
      transition-delay: 4.8s; }
    [js-reveal-text] > div:nth-child(49) {
      transition-delay: 4.9s; }
  [js-reveal-text].is-loaded {
    opacity: 1; }
    [js-reveal-text].is-loaded > div {
      transform: translateY(0%);
      opacity: 1; }

[js-reveal-text-2] {
  transform: translateX(-99.9%);
  visibility: hidden;
  transition: all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1); }
  [js-reveal-text-2].is-loaded {
    visibility: visible;
    transform: translateX(0); }

[js-reveal] {
  display: inline-block;
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1); }
  [js-reveal].is-loaded {
    opacity: 1;
    transform: translateY(0); }

[js-reveal-img] img {
  transition: all 2s ease-in-out;
  opacity: 0; }

[js-reveal-img].is-loaded img {
  opacity: 1; }

[js-reveal-picture] img {
  transition: all 1s cubic-bezier(0.165, 0.84, 0.44, 1);
  clip-path: polygon(0% 0%, 0% 100%, 0% 100%, 0% 0%); }

[js-reveal-picture].is-loaded img {
  clip-path: polygon(100% 0%, 100% 100%, 0% 100%, 0% 0%); }

[js-reveal-img-right] {
  transform: translateX(calc(150%)) rotate(90deg);
  -webkit-transform: translateX(calc(150%)) rotate(90deg);
  -moz-transform: translateX(calc(150%)) rotate(90deg);
  transition: all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1); }
  [js-reveal-img-right].is-loaded {
    transform: translateX(0%) rotate(0deg);
    -webkit-transform: translateX(0%) rotate(0deg);
    -moz-transform: translateX(0%) rotate(0deg); }

[js-reveal-img-left] {
  transform: translateX(-150%) rotate(90deg);
  -webkit-transform: translateX(-150%) rotate(90deg);
  -moz-transform: translateX(-150%) rotate(90deg);
  transition: all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1); }
  [js-reveal-img-left].is-loaded {
    transform: translateX(0%) rotate(0deg);
    -webkit-transform: translateX(0%) rotate(0deg);
    -moz-transform: translateX(0%) rotate(0deg); }

[js-animate-scroll-after] {
  cursor: pointer; }

@font-face {
  font-family: 'Coneria Script Demo';
  src: url("../fonts/ConeriaScriptDemo.eot");
  src: url("../fonts/ConeriaScriptDemo.eot?#iefix") format("embedded-opentype"), url("../fonts/ConeriaScriptDemo.woff2") format("woff2"), url("../fonts/ConeriaScriptDemo.woff") format("woff"), url("../fonts/ConeriaScriptDemo.ttf") format("truetype"), url("../fonts/ConeriaScriptDemo.svg#ConeriaScriptDemo") format("svg");
  font-weight: 500;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'HomepageBaukasten-Book';
  src: url("../fonts/HomepageBaukasten-Book.eot");
  src: url("../fonts/HomepageBaukasten-Book.eot?#iefix") format("embedded-opentype"), url("../fonts/HomepageBaukasten-Book.woff2") format("woff2"), url("../fonts/HomepageBaukasten-Book.woff") format("woff"), url("../fonts/HomepageBaukasten-Book.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap; }

.f-coneria {
  font-family: 'Coneria Script Demo'; }

.f-homepage {
  font-family: 'HomepageBaukasten-Book'; }

.f-bold {
  font-weight: bold; }

.f-medium {
  font-weight: 600; }

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

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

.t-justify {
  text-align: justify; }

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

@media (min-width: 1440px) {
  .t-nowrap {
    white-space: nowrap; } }

.t-word-spacing {
  word-spacing: 9999px; }

.t-title--0 {
  font-size: clamp(3.5rem, calc(2.0000rem + 2.7778vw), 7rem);
  line-height: clamp(5rem, calc(2.0000rem + 2.7778vw), 8.5rem); }

.t-title--1 {
  font-size: clamp(2rem, calc(1.1667rem + 2.3148vw), 4.5rem);
  line-height: clamp(3rem, calc(2.1667rem + 2.3148vw), 6.5rem); }

.t-title--2 {
  font-size: clamp(2rem, calc(1rem + 1.3889vw), 3rem);
  line-height: clamp(2.5rem, calc(1.3rem + 1.3889vw), 3.5rem); }

.t-title--3 {
  font-size: clamp(1.5rem, calc(0.8333rem + 1.1574vw), 2.5rem);
  line-height: clamp(2.25rem, calc(0.8333rem + 1.1574vw), 3rem); }

.t-title--4 {
  font-size: clamp(1.25rem, calc(1.1346rem + 0.3205vw), 1.75rem); }

.t-svg-title {
  background-color: #fff;
  border-radius: 50%; }
  .t-svg-title svg {
    max-width: clamp(3.5rem, calc(2.0000rem + 2.7778vw), 7rem);
    display: block;
    height: auto;
    fill: #6ab1e3; }

input, select, textarea, label {
  font-size: clamp(1.25rem, calc(1.1346rem + 0.3205vw), 1.75rem);
  line-height: clamp(1.75rem, calc(1.1346rem + 0.3205vw), 2.5rem); }

.t-text {
  letter-spacing: 0.015rem;
  margin-right: -0.015em;
  font-size: clamp(1.2rem, calc(1.0731rem + 0.3526vw), 1.75rem);
  line-height: clamp(1.5rem, calc(1.3269rem + 0.4808vw), 2.25rem); }
  .t-text--content {
    color: #0c0c0c;
    font-size: clamp(1.2rem, calc(1.0731rem + 0.3526vw), 1.75rem);
    line-height: clamp(2rem, calc(1.7115rem + 0.8013vw), 3.25rem); }

.t-line-height-0 {
  line-height: 0.85em; }

.t-smaller {
  font-size: 0.85em; }

.t-bigger {
  font-size: 1.15em; }

.t-link {
  position: relative;
  text-decoration: underline; }
  @media (min-width: 992px) {
    .t-link {
      text-decoration: none; } }
  .t-link:before {
    content: '';
    position: absolute;
    width: 100%;
    height: 1px;
    background: currentColor;
    top: 100%;
    left: 0;
    pointer-events: none;
    transform-origin: 50% 100%;
    transition: clip-path 0.3s, transform 0.3s cubic-bezier(0.2, 1, 0.8, 1);
    clip-path: polygon(0% 0%, 0% 100%, 0 100%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%, 100% 100%, 100% 0%); }
  .t-link:hover:before {
    transform: translate3d(0, 2px, 0) scale3d(1.08, 3, 1);
    clip-path: polygon(0% 0%, 0% 100%, 50% 100%, 50% 0, 50% 0, 50% 100%, 50% 100%, 0 100%, 100% 100%, 100% 0%); }
  .t-link span {
    display: inline-block;
    transition: transform 0.3s cubic-bezier(0.2, 1, 0.8, 1); }
  .t-link:hover span {
    transform: translate3d(0, -2px, 0); }

.t-letter-spacing {
  letter-spacing: 0.85em;
  margin-right: -0.85em; }
  .t-letter-spacing:before, .t-letter-spacing:after, .t-letter-spacing > a:before, .t-letter-spacing > a:after, .t-letter-spacing > span:before, .t-letter-spacing > span:after {
    width: calc(100% - 0.85em); }

.t-letter-spacing--medium {
  letter-spacing: 0.45em;
  margin-right: -0.45em; }
  .t-letter-spacing--medium:before, .t-letter-spacing--medium:after, .t-letter-spacing--medium > a:before, .t-letter-spacing--medium > a:after, .t-letter-spacing--medium > span:before, .t-letter-spacing--medium > span:after {
    width: calc(100% - 0.45em); }

.t-letter-spacing--minimal {
  letter-spacing: 0.15em;
  margin-right: -0.15em; }
  .t-letter-spacing--minimal:before, .t-letter-spacing--minimal:after, .t-letter-spacing--minimal > a:before, .t-letter-spacing--minimal > a:after, .t-letter-spacing--minimal > span:before, .t-letter-spacing--minimal > span:after {
    width: calc(100% - 0.30em); }

.--link-underline a {
  text-decoration: underline;
  color: #6ab1e3; }
  .--link-underline a:hover {
    text-decoration: none; }

html, button {
  font-size: 10px;
  font-weight: 300;
  box-sizing: border-box;
  overflow-x: hidden;
  background: #fff;
  color: #4e84aa;
  font-family: 'Coneria Script Demo'; }

body {
  font-size: 1.3rem;
  line-height: 2rem;
  min-height: 100%; }
  body *, body *:before, body *:after {
    box-sizing: inherit; }

.page-is-loading {
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  position: fixed;
  overflow: hidden !important; }

.m-site {
  width: 100%;
  position: relative;
  overflow: hidden;
  min-height: 100vh;
  min-width: 100vw;
  /*&.overflow-remove{
        overflow: scroll; 
    }*/ }

/**
 * WRAPPER
 * Sets a max width, adds a consistent gutter and horizontally
 * centers the contents
 */
.l-wrapper {
  width: var(--default-width);
  width: clamp(var(--min-width), var(--default-width), var(--max-width));
  height: 100%;
  margin-left: auto;
  margin-right: auto;
  position: relative; }
  .l-wrapper--wide {
    width: clamp(var(--min-width), var(--wide-width), 100vw); }
  .l-wrapper--little {
    width: clamp(var(--min-width), calc(var(--min-width) * 2), calc(var(--min-width) * 2)); }

#back-to-top {
  z-index: 5;
  background-color: #6ab1e3;
  opacity: 0.7;
  transition: background-color 1s, opacity 1s; }
  #back-to-top > svg {
    display: none; }
  #back-to-top:after {
    position: absolute;
    top: calc(50% - 1rem);
    left: calc(50% - 1rem);
    margin: 0 auto;
    width: 0;
    height: 0;
    content: " ";
    border-left: 1rem solid transparent;
    border-right: 1rem solid transparent;
    border-bottom: 2rem solid #fff;
    transition: border-color 1s; }
  #back-to-top:hover {
    opacity: 1;
    background-color: #fff; }
    #back-to-top:hover:after {
      border-bottom: 2rem solid #6ab1e3; }

@media (min-width: 992px) {
  #cursor {
    transition: transform .3s ease-in-out;
    position: absolute;
    width: 1.2rem;
    height: 1.2rem;
    margin: -0.5rem 0px 0px -0.5rem;
    background-color: #6ab1e3;
    border-radius: 50%;
    pointer-events: none !important;
    box-shadow: 0 0 0.2rem rgba(255, 255, 255, 0);
    z-index: 1000; } }

.heart {
  background-color: #fff;
  display: inline-block;
  height: 30px;
  margin: 0 10px;
  position: relative;
  top: 0;
  transform: rotate(-45deg);
  width: 30px;
  animation: heartbeat 2s linear infinite; }

.heart:before,
.heart:after {
  content: "";
  background-color: #fff;
  border-radius: 50%;
  height: 30px;
  position: absolute;
  width: 30px; }

.heart:before {
  top: -15px;
  left: 0; }

.heart:after {
  left: 15px;
  top: 0; }

section + section {
  margin-top: var(--spacer-height);
  max-width: 100vw; }

/*@import '_vendors/swiper-custom';*/
.tingle-modal {
  transition: all .7s ease; }
  .tingle-modal__close {
    display: flex;
    align-items: center;
    justify-content: center; }
    @media (min-width: 992px) {
      .tingle-modal__close {
        display: block; } }

.tingle-modal img {
  max-height: 90vh; }

@media (min-width: 992px) {
  .tingle-modal-box {
    border-radius: 2rem;
    overflow: hidden;
    width: 60%; }
    .tingle-modal__image .tingle-modal-box {
      width: auto;
      max-width: 75%; } }

.tingle-modal-box__content {
  display: flex;
  justify-content: center;
  width: auto;
  padding: 0;
  padding-bottom: 56.25%;
  position: relative; }
  .tingle-modal__image .tingle-modal-box__content {
    padding: 0; }
  .tingle-modal-box__content iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: block; }

.tingle-modal-box__footer {
  display: none; }
  @media (min-width: 992px) {
    .tingle-modal-box__footer {
      display: block;
      top: 0;
      bottom: initial !important;
      position: absolute;
      width: 100%;
      text-align: right;
      background-color: transparent; }
      .tingle-modal-box__footer button {
        outline: none;
        cursor: pointer;
        border: none;
        background: transparent;
        border-radius: 50%;
        overflow: hidden;
        background: #fff;
        cursor: pointer; }
        .tingle-modal-box__footer button svg {
          transition: transform .3s ease; }
        .no-touch .tingle-modal-box__footer button:hover svg {
          transform: rotate(90deg); } }

.tingle-modal__closeIcon {
  display: block; }
  @media (min-width: 992px) {
    .tingle-modal__image .tingle-modal__closeIcon {
      display: none; } }
  .tingle-modal__closeIcon svg {
    display: block; }

.cookies-set #cookie-notice, .cookies-not-set #cookie-notice {
  font-family: 'Bodoni';
  opacity: 0.85; }
  @media (min-width: 992px) {
    .cookies-set #cookie-notice, .cookies-not-set #cookie-notice {
      max-width: 25%;
      min-width: 25%;
      bottom: 2rem;
      left: 2rem; } }

.m-logo svg .st10, .m-preloader__logo svg .st10, .m-transition__logo svg .st10 {
  fill: #6ab1e3; }

.m-preloader {
  --divider: 7;
  --gap-baloon: 15px;
  position: fixed;
  z-index: 100002;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  max-width: 100vw;
  max-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  display: block;
  background-color: #bbdbf2;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  pointer-events: none;
  /* ANIMATIONS */
  /* OBJECTS */ }
  @media (min-width: 992px) {
    .m-preloader {
      --divider: 15;
      --gap-baloon: 20px; } }
  .m-preloader .announce {
    width: 100%; }
  .m-preloader .balloons {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    text-align: center;
    top: 50%;
    transform: translateY(-25%); }
    @media (min-width: 992px) {
      .m-preloader .balloons {
        top: 100px;
        transform: translateY(0%); } }
  .m-preloader .balloon-word {
    display: flex;
    flex-direction: row;
    justify-content: center; }
    .m-preloader .balloon-word.p-absolute {
      left: 0%; }
      @media (min-width: 992px) {
        .m-preloader .balloon-word.p-absolute {
          left: 15%; } }
  .m-preloader .balloon {
    display: inline-block;
    width: calc(100vw / var(--divider));
    height: calc(100vw / var(--divider) + (100vw / var(--divider) / 4));
    background: #6ab1e3;
    border-radius: 80%;
    position: relative;
    box-shadow: inset -10px -10px 0 rgba(0, 0, 0, 0.07);
    margin: 1% calc(100vw / 75);
    transition: transform 0.5s ease;
    z-index: 10;
    transform-origin: bottom center; }
  .m-preloader .balloon:before {
    content: "▲";
    font-size: 20px;
    color: #5979a6;
    display: block;
    text-align: center;
    width: 100%;
    position: absolute;
    bottom: -12px;
    z-index: -100; }
  .m-preloader .balloon:after {
    animation: sway 2s ease infinite;
    left: calc(50% + 2.5px);
    display: inline-block;
    top: calc(100vw / var(--divider) + var(--gap-baloon));
    position: absolute;
    height: calc(100vw / var(--divider) + 50%);
    width: 1px;
    margin: 0 auto;
    content: "";
    background: rgba(0, 0, 0, 0.2); }
  .m-preloader .balloon span {
    /*font-size: clamp(2.5rem, 5rem, 40px);*/
    text-align: center;
    line-height: calc(100vw / var(--divider) + (100vw / var(--divider) / 4));
    color: white; }
  .m-preloader .balloon:nth-child(2n) {
    background: #282f67;
    animation-duration: 4s; }
  .m-preloader .balloon:nth-child(2n):before {
    color: #282f67; }
  .m-preloader .balloon:nth-child(3n) {
    background: #6ab1e3;
    animation-duration: 7s; }
  .m-preloader .balloon:nth-child(3n):before {
    color: #6ab1e3; }
  .m-preloader .balloon:nth-child(4n) {
    background: #282f67;
    animation-duration: 8s; }
  .m-preloader .balloon:nth-child(4n):before {
    color: #282f67; }
  .m-preloader .balloon:nth-child(5n) {
    background: #6ab1e3;
    animation-duration: 6s; }
  .m-preloader .balloon:nth-child(5n):before {
    color: #6ab1e3; }
  .m-preloader .--balloons {
    animation: balloons 8s ease-in-out infinite; }
  .m-preloader .--balloons1 {
    /*transform: translateY(80%);*/
    animation: balloons1 5s ease-in-out 1; }
  .m-preloader .--balloons2 {
    /*transform: translateY(50%);*/
    animation: balloons2 8s ease-in-out 1; }
  .m-preloader .--balloons3 {
    /*transform: translateY(20%);*/
    animation: balloons3 10s ease-in-out 1; }
  .m-preloader .clouds {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0; }
  .m-preloader .x1 {
    animation: animateCloud 25s linear infinite;
    transform: scale(0.65); }
  .m-preloader .x2 {
    animation: animateCloud 10s linear infinite;
    transform: scale(0.3); }
  .m-preloader .x3 {
    animation: animateCloud 20s linear infinite;
    transform: scale(0.5); }
  .m-preloader .x4 {
    animation: animateCloud 8s linear infinite;
    transform: scale(0.4); }
  .m-preloader .x5 {
    animation: animateCloud 15s linear infinite;
    transform: scale(0.55); }
  .m-preloader .cloud {
    background: #fff;
    background: linear-gradient(top, #fff 5%, #f1f1f1 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fff', endColorstr='#f1f1f1',GradientType=0 );
    border-radius: 100px;
    box-shadow: 0 8px 5px rgba(0, 0, 0, 0.1);
    height: 120px;
    position: relative;
    width: 350px; }
    .m-preloader .cloud:after, .m-preloader .cloud:before {
      background: #fff;
      content: '';
      position: absolute;
      z-index: -1; }
    .m-preloader .cloud:after {
      border-radius: 100px;
      height: 100px;
      left: 50px;
      top: -50px;
      width: 100px; }
    .m-preloader .cloud:before {
      border-radius: 200px;
      width: 180px;
      height: 180px;
      right: 50px;
      top: -90px; }
  .m-preloader--end {
    opacity: 0;
    transition: opacity .5s ease-in-out;
    animation: heartbeatNoRotate 4s linear infinite;
    position: absolute;
    right: 2.5rem;
    bottom: 2.5rem;
    pointer-events: auto;
    cursor: pointer;
    border: none;
    padding: 3.5rem 3.5rem;
    margin: 0;
    font-size: inherit;
    display: inline-block;
    font-weight: 900;
    width: 17.5rem;
    height: 12rem;
    color: #fff;
    background: none;
    font-size: 1.5rem;
    line-height: 2rem; }
    .m-preloader--end span {
      display: block;
      transition: transform 0.3s ease;
      mix-blend-mode: difference; }
    .m-preloader--end:before {
      content: '';
      background: #6ab1e3;
      -webkit-clip-path: path("M154.5,88.5 C131,113.5 62.5,110 30,89.5 C-2.5,69 -3.5,42 4.5,25.5 C12.5,9 33.5,-6 85,3.5 C136.5,13 178,63.5 154.5,88.5 Z");
      clip-path: path("M154.5,88.5 C131,113.5 62.5,110 30,89.5 C-2.5,69 -3.5,42 4.5,25.5 C12.5,9 33.5,-6 85,3.5 C136.5,13 178,63.5 154.5,88.5 Z");
      transition: clip-path 0.5s cubic-bezier(0.585, 2.5, 0.645, 0.55), -webkit-clip-path 0.5s cubic-bezier(0.585, 2.5, 0.645, 0.55), background 0.5s ease;
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%; }
    .m-preloader--end:after {
      position: absolute;
      left: 0;
      content: '';
      height: 86%;
      width: 97%;
      top: 5%;
      border-radius: 58% 42% 55% 45% / 56% 45% 55% 44%;
      border: 1px solid #282f67;
      transform: rotate(-20deg);
      z-index: -1;
      transition: transform 0.5s cubic-bezier(0.585, 2.5, 0.645, 0.55); }
    .m-preloader--end:hover:before {
      background: #282f67;
      -webkit-clip-path: path("M143,77 C117,96 74,100.5 45.5,91.5 C17,82.5 -10.5,57 5.5,31.5 C21.5,6 79,-5.5 130.5,4 C182,13.5 169,58 143,77 Z");
      clip-path: path("M143,77 C117,96 74,100.5 45.5,91.5 C17,82.5 -10.5,57 5.5,31.5 C21.5,6 79,-5.5 130.5,4 C182,13.5 169,58 143,77 Z"); }
    .m-preloader--end:hover:after {
      transform: translate3d(0, -5px, 0); }
    .m-preloader--end:hover span {
      transform: translate3d(0, -10px, 0); }

.m-card {
  z-index: 2;
  padding: 0.5rem;
  background-color: #fff;
  transition: all 1s ease-in-out;
  transform: rotate(0deg) translateY(25%);
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3); }
  .m-card.--from-left {
    transform: translateX(-200%); }
  .m-card.--from-right {
    transform: translateX(350%); }
  .m-card:nth-child(1) {
    top: 20vh;
    position: absolute; }
    .m-card:nth-child(1).--from-left.is-loaded {
      transform: rotate(-2.5deg) translateY(-100%) translateX(-15%); }
    .m-card:nth-child(1).--from-right.is-loaded {
      transform: rotate(2.5deg) translateY(-100%) translateX(200%); }
  .m-card:nth-child(2) {
    top: 30vh;
    position: absolute; }
    .m-card:nth-child(2).--from-left.is-loaded {
      transform: rotate(11.5deg) translateY(-50%) translateX(-30%); }
    .m-card:nth-child(2).--from-right.is-loaded {
      transform: rotate(-11.5deg) translateY(-25%) translateX(225%); }
  @media (min-width: 992px) {
    .m-card {
      padding: 1rem;
      width: 100%;
      /*		&:nth-child(3){
			position: absolute;
			top:50vh;
			&.--from-left.is-loaded {
				transform: rotate(-5.5deg) translateY(-50%) translateX(5rem);
			}
			&.--from-right.is-loaded{
				transform: rotate(5.5deg) translateY(-50%) translateX(-2.5rem);
			}
		}*/
      /*		div:hover > &:nth-child(3){
			&.--from-left.is-loaded {
				transform: rotate(0deg) translateY(0%) translateX(5rem);
			}
			&.--from-right.is-loaded{
				transform: rotate(0deg) translateY(0%) translateX(-2.5rem);
			}
		}*/ }
      .m-card:nth-child(1) {
        display: block;
        position: absolute;
        top: 50vh; }
        .m-card:nth-child(1).--from-left.is-loaded {
          transform: rotate(-2.5deg) translateY(-30vh) translateX(6.5vw); }
        .m-card:nth-child(1).--from-right.is-loaded {
          transform: rotate(2.5deg) translateY(-30vh) translateX(0); }
      div:hover > .m-card:nth-child(1).--from-left.is-loaded {
        transform: rotate(0) translateY(-40vh) translateX(4vw); }
      div:hover > .m-card:nth-child(1).--from-right.is-loaded {
        transform: rotate(0deg) translateY(-40vh) translateX(4vw); }
      .m-card:nth-child(2) {
        position: absolute;
        top: 50vh; }
        .m-card:nth-child(2).--from-left.is-loaded {
          transform: rotate(11.5deg) translateY(-30vh) translateX(6.5vw); }
        .m-card:nth-child(2).--from-right.is-loaded {
          transform: rotate(-11.5deg) translateY(-30vh) translateX(0); }
      div:hover > .m-card:nth-child(2).--from-left.is-loaded {
        transform: rotate(0) translateY(0%) translateX(6.5vw); }
      div:hover > .m-card:nth-child(2).--from-right.is-loaded {
        transform: rotate(0deg) translateY(0%) translateX(6.5vw); } }
  .m-card__image {
    --card-image: clamp(75px, 10vw, 150px);
    padding-bottom: var(--card-image);
    position: relative;
    overflow: hidden; }
    @media (min-width: 992px) {
      .m-card__image {
        --card-image: clamp(150px, 20vw, 300px); } }
    .m-card__image img {
      width: 100%;
      height: var(--card-image);
      position: absolute;
      top: 0;
      left: 0;
      object-fit: cover; }
  .m-card__icon {
    margin: 0 auto;
    position: relative;
    overflow: hidden;
    background-color: #6ab1e3;
    display: inline-block;
    padding: 5rem;
    width: 100%; }
    .m-card__icon svg {
      height: 5rem;
      width: 5rem;
      fill: #fff; }
  .m-card__title, .m-card__subtitle, .m-card__text, .m-card__link {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem; }
    .m-card__title .t-title--1, .m-card__subtitle .t-title--1, .m-card__text .t-title--1, .m-card__link .t-title--1 {
      font-size: 1em; }
    @media (min-width: 992px) {
      .m-card__title, .m-card__subtitle, .m-card__text, .m-card__link {
        padding-bottom: 3rem; }
        .m-card__title .t-title--1, .m-card__subtitle .t-title--1, .m-card__text .t-title--1, .m-card__link .t-title--1 {
          font-size: 2.5em; } }
  .m-card.--alt {
    padding: 0;
    overflow: hidden;
    border-radius: 5rem;
    position: relative;
    top: 0;
    transform: none; }

.m-header {
  z-index: 10;
  width: 100%;
  border-bottom: 1px solid #6ab1e3;
  background-color: white;
  justify-items: space;
  padding: var(--standard-gap);
  position: fixed;
  top: 0;
  left: auto; }
  .m-header a {
    text-decoration: none;
    padding: 0 var(--standard-gap);
    /*&:hover{
            text-decoration: underline;
        }*/
    padding: 0 calc(var(--standard-gap) / 2); }
    @media (min-width: 992px) {
      .m-header a {
        padding: 0 var(--standard-gap);
        font-size: inherit; } }
  .m-header--spacer {
    height: calc(var(--standard-gap) * 8); }
    @media (min-width: 992px) {
      .m-header--spacer {
        height: calc(var(--standard-gap) * 3); } }

@keyframes timerX {
  from {
    transform: scaleX(0); }
  to {
    transform: scaleX(1); } }

.m-wide-slider {
  position: relative;
  text-align: center;
  margin-bottom: calc(3/12*100vw);
  padding-bottom: calc(1/12*100vw);
  display: block !important;
  transition: all 1s ease;
  z-index: 3; }
  @media (min-width: 992px) {
    .m-wide-slider {
      padding-bottom: 0;
      margin-bottom: 0; } }
  .m-wide-slider .swiper-slide {
    width: calc(10/12*100vw);
    position: relative; }
    @media (min-width: 992px) {
      .m-wide-slider .swiper-slide {
        width: calc(8/12*100vw); } }
    .m-wide-slider .swiper-slide [js-magnet-cursor] {
      z-index: 9;
      position: absolute;
      padding: 0;
      height: 100%;
      width: 100%;
      top: 0;
      left: 0; }
    .m-wide-slider .swiper-slide > div {
      opacity: .4;
      transition: opacity .5s ease;
      width: 100%;
      padding-bottom: 72.26562%; }
      @media (min-width: 992px) {
        .m-wide-slider .swiper-slide > div {
          padding-bottom: 72.26562%; } }
    .m-wide-slider .swiper-slide span {
      cursor: pointer;
      transition: opacity .3s ease;
      opacity: .5;
      z-index: 3;
      width: 3.6rem;
      height: 3.6rem;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      display: none; }
      .is-touch .m-wide-slider .swiper-slide span {
        display: block; }
      .no-touch .m-wide-slider .swiper-slide span:hover {
        opacity: 1; }
      .m-wide-slider .swiper-slide span svg {
        display: block;
        width: 100%; }
    .m-wide-slider .swiper-slide img, .m-wide-slider .swiper-slide video {
      position: absolute;
      top: 0;
      left: 0;
      height: 100%;
      object-fit: cover;
      display: block;
      width: 100%;
      height: 100%; }
    @media (min-width: 992px) {
      .m-wide-slider .swiper-slide.swiper-slide-next {
        margin-left: 1.2rem; }
      .m-wide-slider .swiper-slide.swiper-slide-prev {
        margin-right: 1.2rem; } }
    .m-wide-slider .swiper-slide.swiper-slide-active > div {
      opacity: 1; }
    .m-wide-slider .swiper-slide.swiper-slide-active .m-wide-slider__progress > div {
      transform-origin: 0 0;
      animation-duration: 5s;
      animation-name: timerX; }
  .m-wide-slider .swiper-pagination-fraction {
    position: relative;
    display: flex;
    line-height: 2.6rem;
    font-size: 1.8rem;
    align-items: center;
    margin-top: 8.5rem;
    justify-content: center; }
    @media (min-width: 992px) {
      .m-wide-slider .swiper-pagination-fraction {
        justify-content: flex-start;
        padding-left: calc(1/12*100vw);
        margin-top: 2.5rem; } }
    .m-wide-slider .swiper-pagination-fraction div {
      margin: 0 1rem;
      margin-top: -3px;
      width: 4rem;
      height: 1px; }
  .m-wide-slider--full {
    padding-bottom: 0;
    margin-bottom: 0; }
    .m-wide-slider--full .swiper-slide {
      width: 100%;
      height: 0;
      padding-bottom: 56.25%; }
      .m-wide-slider--full .swiper-slide.swiper-slide-next {
        margin-left: 0; }
      .m-wide-slider--full .swiper-slide.swiper-slide-prev {
        margin-right: 0; }
      @media (min-width: 992px) {
        .m-wide-slider--full .swiper-slide {
          padding-bottom: 0;
          height: 60vh; } }
      .m-wide-slider--full .swiper-slide > div {
        padding-bottom: 0;
        height: 100%; }
        .m-wide-slider--full .swiper-slide > div span {
          cursor: pointer;
          transition: opacity .3s ease;
          opacity: .5;
          z-index: 3;
          width: 3.6rem;
          height: 3.6rem;
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%); }
          .no-touch .m-wide-slider--full .swiper-slide > div span:hover {
            opacity: 1; }
          .m-wide-slider--full .swiper-slide > div span svg {
            display: block;
            width: 100%; }
      .m-wide-slider--full .swiper-slide .m-wide-slider__progress {
        display: none; }
  .m-wide-slider__progress {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 8px;
    z-index: 2;
    overflow: hidden; }
    .m-wide-slider__progress > div {
      background: #6ab1e3;
      top: 0;
      left: 0;
      height: 100%;
      width: 100%; }
      .is-touched .m-wide-slider__progress > div {
        animation-duration: .5s !important;
        animation-fill-mode: forwards; }
  .m-wide-slider__arrows {
    display: flex;
    position: absolute;
    width: 22.6rem;
    height: 8rem;
    background: #282f67;
    z-index: 5;
    bottom: -7.5rem;
    right: 50%;
    transform: translateX(50%); }
    @media (min-width: 992px) {
      .m-wide-slider__arrows {
        display: flex;
        transform: translate(0, 50%);
        bottom: 0;
        right: calc(2.3/12*100vw); } }
    .m-wide-slider__arrows:after {
      content: "";
      display: block;
      width: 1px;
      height: 3.5rem;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      background: #fff;
      opacity: .4; }
    .m-wide-slider__arrows .swiper-button-prev, .m-wide-slider__arrows .swiper-button-next {
      width: 50%;
      height: 100%;
      background: none;
      position: relative;
      left: 0;
      right: 0;
      margin: 0;
      top: 0;
      bottom: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: color .3s ease;
      outline: none;
      color: #fff; }
      .m-wide-slider__arrows .swiper-button-prev svg, .m-wide-slider__arrows .swiper-button-next svg {
        fill: #fff;
        transition: fill .5s ease;
        margin: 0 0.8rem; }
      .no-touch .m-wide-slider__arrows .swiper-button-prev:hover, .no-touch .m-wide-slider__arrows .swiper-button-next:hover {
        color: #6ab1e3; }
        .no-touch .m-wide-slider__arrows .swiper-button-prev:hover svg, .no-touch .m-wide-slider__arrows .swiper-button-next:hover svg {
          fill: #6ab1e3; }
  .m-wide-slider .swiper-pagination {
    display: none;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 4rem; }
    @media (min-width: 992px) {
      .m-wide-slider .swiper-pagination {
        display: none; } }
    .m-wide-slider .swiper-pagination .swiper-pagination-bullet {
      opacity: 1;
      background-color: #282f67;
      margin: 0 6px;
      opacity: .3;
      transform: scale(0.7);
      transition: all .4s ease; }
      .m-wide-slider .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
        transform: scale(1);
        opacity: 1; }
  .m-wide-slider__arrow-hidden {
    position: absolute;
    top: 0;
    width: calc(2/12*100vw);
    height: 100%;
    z-index: 2;
    opacity: 0;
    cursor: pointer; }
    .is-touch .m-wide-slider__arrow-hidden {
      display: none !important; }
    .m-wide-slider__arrow-hidden.-prev {
      background: red;
      left: 0; }
    .m-wide-slider__arrow-hidden.-next {
      background: blue;
      right: 0; }

.m-calendar svg {
  height: 100%;
  width: 15vw; }

.m-calendar > div {
  text-align: center;
  min-width: calc(min(50vw, 500px)); }

.m-calendar__badge svg {
  fill: #fff;
  height: 100%;
  width: calc(max(5rem, 5vw)); }

.m-rows .is-loaded {
  display: block; }

.m-rows__container {
  flex-direction: column; }
  @media (min-width: 992px) {
    .m-rows__container {
      flex-direction: row; } }

.m-rows > div:first-child {
  height: calc(25vh - var(--header-height)); }

.m-rows > div .arrow {
  display: none; }

.m-rows > div > div {
  background-size: 0;
  max-height: 100%; }

.m-rows > div > div:nth-child(1) {
  order: 2; }

.m-rows > div > div:nth-child(2) {
  order: 1; }

.m-rows > div > div:nth-child(3) {
  order: 3; }

@media (min-width: 992px) {
  .m-rows > div:last-child {
    height: calc(75vh - var(--standard-gap));
    width: calc(100% - (var(--standard-gap) / 2)); }
  .m-rows > div .arrow {
    display: inline-block; }
  .m-rows > div img {
    display: none; }
  .m-rows > div {
    background-size: initial; }
    .m-rows > div > div {
      width: 20%;
      border: var(--standard-gap) solid #fff; }
    .m-rows > div > div:nth-child(1) {
      order: 1;
      border: var(--standard-gap) solid #fff;
      width: 30%;
      background: no-repeat center center / cover; }
    .m-rows > div > div:nth-child(2) {
      order: 2;
      border: var(--standard-gap) solid #fff;
      width: 50%;
      background: no-repeat left center / cover; }
  .m-rows--alt > div > div:nth-child(1) {
    order: 3; }
  .m-rows--alt > div > div:nth-child(2) {
    order: 2;
    background: no-repeat right center / cover; }
  .m-rows--alt > div > div:nth-child(3) {
    order: 1; } }

#chi > div:nth-child(2) {
  order: 1;
  grid-column: span 3; }

#chi > div:nth-child(1) {
  order: 2;
  grid-column: span 3; }

#chi > div:nth-child(3) {
  order: 3;
  grid-column: span 3; }

#chi .m-card {
  width: calc(min(30vw, 40rem)); }

#donaora > div.g-span-w--1 {
  grid-column: span 3; }

@media (min-width: 992px) {
  #donaora > div.g-span-w--1 {
    grid-column: span 1; }
  #chi > div:nth-child(2) {
    order: 2;
    grid-column: inherit; }
  #chi > div:nth-child(1) {
    order: 1;
    grid-column: inherit; }
  #chi > div:nth-child(3) {
    order: 3;
    grid-column: inherit; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9fYnJlYWtwb2ludC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19jb250ZXh0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX2hlbHBlcnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fcGFyc2Vycy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3F1ZXJ5LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fc2luZ2xlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9zaW5nbGUvX2RlZmF1bHQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL19kb3VibGUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL2RvdWJsZS9fZGVmYXVsdC1wYWlyLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RvdWJsZS1zdHJpbmcuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL2RvdWJsZS9fZGVmYXVsdC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3RyaXBsZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvdHJpcGxlL19kZWZhdWx0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fcmVzb2x1dGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvcmVzb2x1dGlvbi9fcmVzb2x1dGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19uby1xdWVyeS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19yZXNwb25kLXRvLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX2xlZ2FjeS1zZXR0aW5ncy5zY3NzIiwiX3ZlbmRvcnMvX3N3aXBlci52NC5zY3NzIiwiX2Jhc2UvX2tleWZyYW1lcy5zY3NzIiwiX2Jhc2UvX3ZhcmlhYmxlcy5zY3NzIiwiX2Jhc2UvX21peGlucy5zY3NzIiwiX2Jhc2UvX3ByZXNldHMuc2NzcyIsIl9iYXNlL19jb25maWcuc2NzcyIsIl9iYXNlL19oZWxwZXJzLnNjc3MiLCJfYmFzZS9fYW5pbWF0aW9ucy5zY3NzIiwiX2Jhc2UvX3R5cG9ncmFwaHkuc2NzcyIsIl9iYXNlL19hc3NldHMuc2NzcyIsIl9sYXlvdXRzL19sLWJhc2Uuc2NzcyIsIl92ZW5kb3JzL190aW5nbGUtY3VzdG9tLnNjc3MiLCJfdmVuZG9ycy9fY29va2llcy1ub3RpY2UtY3VzdG9tLnNjc3MiLCJfbW9kdWxlcy9fbS1sb2dvLnNjc3MiLCJfbW9kdWxlcy9fbS1wcmVsb2FkZXIuc2NzcyIsIl9tb2R1bGVzL19tLWNhcmQuc2NzcyIsIl9tb2R1bGVzL19tLWhlYWRlci5zY3NzIiwiX21vZHVsZXMvX20td2lkZS1zbGlkZXIuc2NzcyIsIl9tb2R1bGVzL19tLWNhbGVuZGFyLnNjc3MiLCJfbW9kdWxlcy9fbS1yb3dzLnNjc3MiLCJfbW9kdWxlcy9fc2VjdGlvbnMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICd+YnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQuc2Nzcyc7XG5AaW1wb3J0ICdfdmVuZG9ycy9zd2lwZXIudjQnO1xuXG5AaW1wb3J0ICdfYmFzZS9fa2V5ZnJhbWVzJztcbkBpbXBvcnQgJ19iYXNlL192YXJpYWJsZXMnO1xuQGltcG9ydCAnX2Jhc2UvX21peGlucyc7XG5AaW1wb3J0ICdfYmFzZS9fcHJlc2V0cyc7XG5AaW1wb3J0ICdfYmFzZS9fY29uZmlnJztcbkBpbXBvcnQgJ19iYXNlL19oZWxwZXJzJztcbkBpbXBvcnQgJ19iYXNlL19hbmltYXRpb25zJztcbkBpbXBvcnQgJ19iYXNlL190eXBvZ3JhcGh5JztcbkBpbXBvcnQgJ19iYXNlL19hc3NldHMnO1xuXG5AaW1wb3J0ICdfbGF5b3V0cy9sLWJhc2UnO1xuXG4vLyBWZW5kb3JzXG5cbi8qQGltcG9ydCAnX3ZlbmRvcnMvc3dpcGVyLWN1c3RvbSc7Ki9cbkBpbXBvcnQgJ192ZW5kb3JzL3RpbmdsZS1jdXN0b20nO1xuQGltcG9ydCAnX3ZlbmRvcnMvY29va2llcy1ub3RpY2UtY3VzdG9tJztcblxuLy8gTW9kdWxlc1xuQGltcG9ydCAnX21vZHVsZXMvbS1sb2dvLnNjc3MnO1xuQGltcG9ydCAnX21vZHVsZXMvbS1wcmVsb2FkZXIuc2Nzcyc7XG5AaW1wb3J0ICdfbW9kdWxlcy9tLWNhcmQuc2Nzcyc7XG5AaW1wb3J0ICdfbW9kdWxlcy9tLWhlYWRlci5zY3NzJztcbkBpbXBvcnQgJ19tb2R1bGVzL20td2lkZS1zbGlkZXIuc2Nzcyc7XG5AaW1wb3J0ICdfbW9kdWxlcy9tLWNhbGVuZGFyLnNjc3MnO1xuQGltcG9ydCAnX21vZHVsZXMvbS1yb3dzLnNjc3MnO1xuQGltcG9ydCAnX21vZHVsZXMvc2VjdGlvbnMuc2Nzcyc7IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kQnJlYWtwb2ludC1TZXR0aW5nczogKFxuICAnZGVmYXVsdCBtZWRpYSc6IGFsbCxcbiAgJ2RlZmF1bHQgZmVhdHVyZSc6IG1pbi13aWR0aCxcbiAgJ2RlZmF1bHQgcGFpcic6IHdpZHRoLFxuXG4gICdmb3JjZSBhbGwgbWVkaWEgdHlwZSc6IGZhbHNlLFxuICAndG8gZW1zJzogZmFsc2UsXG4gICd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnOiB0cnVlLFxuXG4gICdubyBxdWVyaWVzJzogZmFsc2UsXG4gICdubyBxdWVyeSBmYWxsYmFja3MnOiBmYWxzZSxcblxuICAnYmFzZSBmb250IHNpemUnOiAxNnB4LFxuXG4gICdsZWdhY3kgc3ludGF4JzogZmFsc2Vcbik7XG5cbiRicmVha3BvaW50OiAoKSAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJicmVha3BvaW50L3NldHRpbmdzXCI7XG5AaW1wb3J0ICdicmVha3BvaW50L2NvbnRleHQnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9oZWxwZXJzJztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcGFyc2Vycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L25vLXF1ZXJ5JztcblxuQGltcG9ydCAnYnJlYWtwb2ludC9yZXNwb25kLXRvJztcblxuQGltcG9ydCBcImJyZWFrcG9pbnQvbGVnYWN5LXNldHRpbmdzXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBNaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBsZWdhY3ktc2V0dGluZ3Mtd2FybmluZztcblxuICAvLyBSZXNldCBjb250ZXh0c1xuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcblxuICAkYnJlYWtwb2ludDogYnJlYWtwb2ludCgkcXVlcnksIGZhbHNlKTtcblxuICAkcXVlcnktc3RyaW5nOiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnknKTtcbiAgJHF1ZXJ5LWZhbGxiYWNrOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnZmFsbGJhY2snKTtcblxuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnY29udGV4dCBob2xkZXInKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnkgY291bnQnKSAhZ2xvYmFsO1xuXG4gIC8vIEFsbG93IGZvciBhbiBhcy1uZWVkZWQgb3ZlcnJpZGUgb3IgdXNhZ2Ugb2Ygbm8gcXVlcnkgZmFsbGJhY2suXG4gIEBpZiAkbm8tcXVlcnkgIT0gZmFsc2Uge1xuICAgICRxdWVyeS1mYWxsYmFjazogJG5vLXF1ZXJ5O1xuICB9XG5cbiAgQGlmICRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSB7XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgfVxuXG4gIC8vIFByaW50IE91dCBRdWVyeSBTdHJpbmdcbiAgQGlmIG5vdCBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpIHtcbiAgICBAbWVkaWEgI3skcXVlcnktc3RyaW5nfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpICE9IGZhbHNlIG9yIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykgPT0gdHJ1ZSB7XG5cbiAgICAkdHlwZTogdHlwZS1vZihicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykpO1xuICAgICRwcmludDogZmFsc2U7XG5cbiAgICBAaWYgKCR0eXBlID09ICdib29sJykge1xuICAgICAgJHByaW50OiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ3N0cmluZycpIHtcbiAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ2xpc3QnKSB7XG4gICAgICBAZWFjaCAkd3JhcHBlciBpbiBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09ICR3cmFwcGVyIHtcbiAgICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXcml0ZSBGYWxsYmFja1xuICAgIEBpZiAoJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlKSBhbmQgKCRwcmludCA9PSB0cnVlKSB7XG4gICAgICAkdHlwZS1mYWxsYmFjazogdHlwZS1vZigkcXVlcnktZmFsbGJhY2spO1xuXG4gICAgICBAaWYgKCR0eXBlLWZhbGxiYWNrICE9ICdib29sJykge1xuICAgICAgICAjeyRxdWVyeS1mYWxsYmFja30gJiB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG59XG5cblxuQG1peGluIG1xKCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGFzIFNldHRpbmdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaGFzKCRzZXR0aW5nKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludCwgJHNldHRpbmcpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBHZXQgU2V0dGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtZ2V0KCRzZXR0aW5nKSB7XG4gIEBpZiBicmVha3BvaW50LWhhcygkc2V0dGluZykge1xuICAgIEByZXR1cm4gbWFwLWdldCgkYnJlYWtwb2ludCwgJHNldHRpbmcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJEJyZWFrcG9pbnQtU2V0dGluZ3MsICRzZXR0aW5nKTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFNldCBTZXR0aW5nc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaWYgKHN0ci1pbmRleCgkc2V0dGluZywgJy0nKSBvciBzdHItaW5kZXgoJHNldHRpbmcsICdfJykpIGFuZCBzdHItaW5kZXgoJHNldHRpbmcsICcgJykgPT0gbnVsbCB7XG4gICAgQHdhcm4gXCJXb3JkcyBpbiBCcmVha3BvaW50IHNldHRpbmdzIHNob3VsZCBiZSBzZXBhcmF0ZWQgYnkgc3BhY2VzLCBub3QgZGFzaGVzIG9yIHVuZGVyc2NvcmVzLiBQbGVhc2UgcmVwbGFjZSBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzIGJldHdlZW4gd29yZHMgd2l0aCBzcGFjZXMuIFNldHRpbmdzIHdpbGwgbm90IHdvcmsgYXMgZXhwZWN0ZWQgdW50aWwgY2hhbmdlZC5cIjtcbiAgfVxuICAkYnJlYWtwb2ludDogbWFwLW1lcmdlKCRicmVha3BvaW50LCAoJHNldHRpbmc6ICR2YWx1ZSkpICFnbG9iYWw7XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuQG1peGluIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgJGJyZWFrcG9pbnQtY2hhbmdlOiBicmVha3BvaW50LXNldCgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuQG1peGluIGJyZWFrcG9pbnQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbkBtaXhpbiBia3B0LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuQG1peGluIGJrcHQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmVtb3ZlIFNldHRpbmdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzLi4uKSB7XG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAxIHtcbiAgICAkc2V0dGluZ3M6IG50aCgkc2V0dGluZ3MsIDEpO1xuICB9XG5cbiAgQGVhY2ggJHNldHRpbmcgaW4gJHNldHRpbmdzIHtcbiAgICAkYnJlYWtwb2ludDogbWFwLXJlbW92ZSgkYnJlYWtwb2ludCwgJHNldHRpbmcpICFnbG9iYWw7XG4gIH1cbiAgQHJldHVybiB0cnVlO1xufVxuXG5AbWl4aW4gYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MuLi4pIHtcbiAgJGJyZWFrcG9pbnQtcmVzZXQ6IGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzKTtcbn1cblxuQG1peGluIGJrcHQtcmVzZXQoJHNldHRpbmdzLi4uKSB7XG4gICRicmVha3BvaW50LXJlc2V0OiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncyk7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQcml2YXRlIEJyZWFrcG9pbnQgVmFyaWFibGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpO1xuJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IEhhcyBDb250ZXh0XG4vLyBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHlvdSBhcmUgaW5zaWRlIGEgQnJlYWtwb2ludCBxdWVyeVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1oYXMtY29udGV4dCgpIHtcbiAgQGlmIGxlbmd0aCgkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50KSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBHZXQgQ29udGV4dFxuLy8gJGZlYXR1cmU6IElucHV0IGZlYXR1cmUgdG8gZ2V0IGl0J3MgY3VycmVudCBNUSBjb250ZXh0LiBSZXR1cm5zIGZhbHNlIGlmIG5vIGNvbnRleHRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtZ2V0LWNvbnRleHQoJGZlYXR1cmUpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKSB7XG4gICAgJGdldDogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gICAgLy8gU3BlY2lhbCBoYW5kbGluZyBvZiBuby1xdWVyeSBmcm9tIGdldCBzaWRlIHNvIC9mYWxzZS8gcHJlcGVuZHMgYXJlbid0IHJldHVybmVkXG4gICAgQGlmICRmZWF0dXJlID09ICduby1xdWVyeScge1xuICAgICAgQGlmIHR5cGUtb2YoJGdldCkgPT0gJ2xpc3QnIGFuZCBsZW5ndGgoJGdldCkgPiAxIGFuZCBudGgoJGdldCwgMSkgPT0gZmFsc2Uge1xuICAgICAgICAkZ2V0OiBudGgoJGdldCwgbGVuZ3RoKCRnZXQpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiAkZ2V0O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgYnJlYWtwb2ludC1oYXMtY29udGV4dCgpIGFuZCAkZmVhdHVyZSA9PSAnbWVkaWEnIHtcbiAgICAgIEByZXR1cm4gYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQcml2YXRlIGZ1bmN0aW9uIHRvIHNldCBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSkge1xuICBAaWYgJHZhbHVlID09ICdtb25vY2hyb21lJyB7XG4gICAgJGZlYXR1cmU6ICdtb25vY2hyb21lJztcbiAgfVxuXG4gICRjdXJyZW50OiBtYXAtZ2V0KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKTtcbiAgQGlmICRjdXJyZW50IGFuZCBsZW5ndGgoJGN1cnJlbnQpID09ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgIEB3YXJuIFwiWW91IGhhdmUgYWxyZWFkeSBxdWVyaWVkIGFnYWluc3QgYCN7JGZlYXR1cmV9YC4gVW5leHBlY3RlZCB0aGluZ3MgbWF5IGhhcHBlbiBpZiB5b3UgcXVlcnkgYWdhaW5zdCB0aGUgc2FtZSBmZWF0dXJlIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBzYW1lIGBhbmRgIHF1ZXJ5LiBCcmVha3BvaW50IGlzIG92ZXJ3cml0aW5nIHRoZSBjdXJyZW50IGNvbnRleHQgd2l0aCBgI3skdmFsdWV9YFwiO1xuICB9XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSkge1xuICAgICR2LWhvbGRlcjogKCk7XG4gICAgQGZvciAkaSBmcm9tIDEgdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgICBAaWYgJGZlYXR1cmUgPT0gJ21lZGlhJyB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICR2YWx1ZSk7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLW1lcmdlKCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICgkZmVhdHVyZTogJHYtaG9sZGVyKSkgIWdsb2JhbDtcbiAgfVxuICBAZWxzZSB7XG4gICAgJHYtaG9sZGVyOiBtYXAtZ2V0KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKTtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHYtaG9sZGVyKTtcbiAgICBAZm9yICRpIGZyb20gJGxlbmd0aCB0byAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IC0gMSB7XG4gICAgICBAaWYgJGZlYXR1cmUgPT0gJ21lZGlhJyB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICR2YWx1ZSk7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLW1lcmdlKCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICgkZmVhdHVyZTogJHYtaG9sZGVyKSkgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQcml2YXRlIGZ1bmN0aW9uIHRvIHJlc2V0IGNvbnRleHRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cyB7XG4gICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpICFnbG9iYWw7XG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWdsb2JhbDtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbnZlcnRzIHRoZSBpbnB1dCB2YWx1ZSB0byBCYXNlIEVNc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC10by1iYXNlLWVtKCR2YWx1ZSkge1xuICAkdmFsdWUtdW5pdDogdW5pdCgkdmFsdWUpO1xuXG4gIC8vIFdpbGwgY29udmVydCByZWxhdGl2ZSBFTXMgaW50byByb290IEVNcy5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpIGFuZCB0eXBlLW9mKGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpKSA9PSAnbnVtYmVyJyBhbmQgJHZhbHVlLXVuaXQgPT0gJ2VtJyB7XG4gICAgJGJhc2UtdW5pdDogdW5pdChicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSk7XG5cbiAgICBAaWYgJGJhc2UtdW5pdCA9PSAncHgnIG9yICRiYXNlLXVuaXQgPT0gJyUnIG9yICRiYXNlLXVuaXQgPT0gJ2VtJyBvciAkYmFzZS11bml0ID09ICdwdCcge1xuICAgICAgQHJldHVybiBiYXNlLWNvbnZlcnNpb24oJHZhbHVlKSAvIGJhc2UtY29udmVyc2lvbihicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSkgKiAxZW07XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICcje2JyZWFrcG9pbnQtZ2V0KFxcJ2Jhc2UgZm9udCBzaXplXFwnKX0gaXMgbm90IHNldCBpbiB2YWxpZCB1bml0cyBmb3IgZm9udCBzaXplISc7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBiYXNlLWNvbnZlcnNpb24oJHZhbHVlKTtcbiAgfVxufVxuXG5AZnVuY3Rpb24gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSkge1xuICAkdW5pdDogdW5pdCgkdmFsdWUpO1xuXG4gIEBpZiAkdW5pdCA9PSAncHgnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDE2cHggKiAxZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJyUnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDEwMCUgKiAxZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJ2VtJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJ3B0JyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxMnB0ICogMWVtO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbi8vICAgIEB3YXJuICdFdmVyeXRoaW5nIGlzIHRlcnJpYmxlISBXaGF0IGhhdmUgeW91IGRvbmU/ISc7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIGhhdmUgYSBtaW4vbWF4IHBhaXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtbWluLW1heC1mZWF0dXJlczogJ2NvbG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2xvci1pbmRleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2Utd2lkdGgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9ub2Nocm9tZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVzb2x1dGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2lkdGgnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4tbWF4KCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LW1pbi1tYXgtZmVhdHVyZXMge1xuICAgIEBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBoYXZlIGEgc3RyaW5nIHZhbHVlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LXN0cmluZy1mZWF0dXJlczogICdvcmllbnRhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWFzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbHVtaW5vc2l0eSc7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXN0cmluZy12YWx1ZSgkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1zdHJpbmctZmVhdHVyZXMge1xuICAgIEBpZiBicmVha3BvaW50LW1pbi1tYXgoJGl0ZW0pIHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWluLSN7JGl0ZW19JyBvciAkZmVhdHVyZSA9PSAnbWF4LSN7JGl0ZW19JyB7XG4gICAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBpcyBhIG1lZGlhIHR5cGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtbWVkaWEtdHlwZXM6ICAnYWxsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JyYWlsbGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnZW1ib3NzZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFuZGhlbGQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAncHJpbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvamVjdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdzY3JlZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnc3BlZWNoJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R0eScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICd0dic7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LWlzLW1lZGlhKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRtZWRpYSBpbiAkYnJlYWtwb2ludC1tZWRpYS10eXBlcyB7XG4gICAgQGlmICgkZmVhdHVyZSA9PSAkbWVkaWEpIG9yICgkZmVhdHVyZSA9PSAnbm90ICN7JG1lZGlhfScpIG9yICgkZmVhdHVyZSA9PSAnb25seSAjeyRtZWRpYX0nKSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIHN0YW5kIGFsb25lXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LXNpbmdsZS1zdHJpbmctZmVhdHVyZXM6ICdjb2xvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3ItaW5kZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dyaWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vbm9jaHJvbWUnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LXNpbmdsZS1zdHJpbmctZmVhdHVyZXMge1xuICAgIEBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWlzLXJlc29sdXRpb24oJGZlYXR1cmUpIHtcbiAgJHJlc29sdXRpb25zOiAnZGV2aWNlLXBpeGVsLXJhdGlvJywgJ2Rwcic7XG5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnKSB7XG4gICAgJHJlc29sdXRpb25zOiBhcHBlbmQoJHJlc29sdXRpb25zLCAncmVzb2x1dGlvbicpO1xuICB9XG5cbiAgQGVhY2ggJHJlc28gaW4gJHJlc29sdXRpb25zIHtcbiAgICBAaWYgaW5kZXgoJGZlYXR1cmUsICRyZXNvKSBvciBpbmRleCgkZmVhdHVyZSwgJ21pbi0jeyRyZXNvfScpIG9yIGluZGV4KCRmZWF0dXJlLCAnbWF4LSN7JHJlc299Jykge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQYXJzZXIgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJwYXJzZXJzL3F1ZXJ5XCI7XG5AaW1wb3J0IFwicGFyc2Vycy9zaW5nbGVcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL2RvdWJsZVwiO1xuQGltcG9ydCBcInBhcnNlcnMvdHJpcGxlXCI7XG5AaW1wb3J0IFwicGFyc2Vycy9yZXNvbHV0aW9uXCI7XG5cbiRNZW1vLUV4aXN0czogZnVuY3Rpb24tZXhpc3RzKG1lbW8tZ2V0KSBhbmQgZnVuY3Rpb24tZXhpc3RzKG1lbW8tc2V0KTtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IEZ1bmN0aW9uXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50KCRxdWVyeSwgJGNvbnRleHRzLi4uKSB7XG4gICRydW46IHRydWU7XG4gICRyZXR1cm46ICgpO1xuXG4gIC8vIEdyYWIgdGhlIE1lbW8gT3V0cHV0IGlmIE1lbW9pemF0aW9uIGNhbiBiZSBhIHRoaW5nXG4gIEBpZiAkTWVtby1FeGlzdHMge1xuICAgICRyZXR1cm46IG1lbW8tZ2V0KGJyZWFrcG9pbnQsIGJyZWFrcG9pbnQgJHF1ZXJ5ICRjb250ZXh0cyk7XG5cbiAgICBAaWYgJHJldHVybiAhPSBudWxsIHtcbiAgICAgICRydW46IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBub3QgJE1lbW8tRXhpc3RzIG9yICRydW4ge1xuICAgIC8vIEludGVybmFsIFZhcmlhYmxlc1xuICAgICRxdWVyeS1zdHJpbmc6ICcnO1xuICAgICRxdWVyeS1mYWxsYmFjazogZmFsc2U7XG4gICAgJHJldHVybjogKCk7XG5cbiAgICAvLyBSZXNlcnZlIEdsb2JhbCBQcml2YXRlIEJyZWFrcG9pbnQgQ29udGV4dFxuICAgICRob2xkZXItY29udGV4dDogJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjtcbiAgICAkaG9sZGVyLXF1ZXJ5LWNvdW50OiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50O1xuXG4gICAgLy8gUmVzZXQgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG5cblxuICAgIC8vIFRlc3QgdG8gc2VlIGlmIGl0J3MgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdFxuICAgICRvci1saXN0OiBpZihsaXN0LXNlcGFyYXRvcigkcXVlcnkpID09ICdjb21tYScsIHRydWUsIGZhbHNlKTtcblxuXG4gICAgQGlmICgkb3ItbGlzdCA9PSBmYWxzZSBhbmQgYnJlYWtwb2ludC1nZXQoJ2xlZ2FjeSBzeW50YXgnKSA9PSBmYWxzZSkge1xuICAgICAgJHF1ZXJ5LXN0cmluZzogYnJlYWtwb2ludC1wYXJzZSgkcXVlcnkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkbGVuZ3RoOiBsZW5ndGgoJHF1ZXJ5KTtcblxuICAgICAgJGxhc3Q6IG50aCgkcXVlcnksICRsZW5ndGgpO1xuICAgICAgJHF1ZXJ5LWZhbGxiYWNrOiBicmVha3BvaW50LW5vLXF1ZXJ5KCRsYXN0KTtcblxuICAgICAgQGlmICgkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2UpIHtcbiAgICAgICAgJGxlbmd0aDogJGxlbmd0aCAtIDE7XG4gICAgICB9XG5cbiAgICAgIEBpZiAoYnJlYWtwb2ludC1nZXQoJ2xlZ2FjeSBzeW50YXgnKSA9PSB0cnVlKSB7XG4gICAgICAgICRtcTogKCk7XG5cbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAkbXE6IGFwcGVuZCgkbXEsIG50aCgkcXVlcnksICRpKSwgY29tbWEpO1xuICAgICAgICB9XG5cbiAgICAgICAgJHF1ZXJ5LXN0cmluZzogYnJlYWtwb2ludC1wYXJzZSgkbXEpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcXVlcnktc3RyaW5nOiAnJztcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAkcXVlcnktc3RyaW5nOiAkcXVlcnktc3RyaW5nICsgaWYoJGkgPT0gMSwgJycsICcsICcpICsgYnJlYWtwb2ludC1wYXJzZShudGgoJHF1ZXJ5LCAkaSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHJldHVybjogKCdxdWVyeSc6ICRxdWVyeS1zdHJpbmcsXG4gICAgICAgICdmYWxsYmFjayc6ICRxdWVyeS1mYWxsYmFjayxcbiAgICAgICAgJ2NvbnRleHQgaG9sZGVyJzogJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcixcbiAgICAgICAgJ3F1ZXJ5IGNvdW50JzogJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudFxuICAgICk7XG4gICAgQGlmIGxlbmd0aCgkY29udGV4dHMpID4gMCBhbmQgbnRoKCRjb250ZXh0cywgMSkgIT0gZmFsc2Uge1xuICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSB7XG4gICAgICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCduby1xdWVyeScsICRxdWVyeS1mYWxsYmFjayk7XG4gICAgICB9XG4gICAgICAkY29udGV4dC1tYXA6ICgpO1xuICAgICAgQGVhY2ggJGNvbnRleHQgaW4gJGNvbnRleHRzIHtcbiAgICAgICAgJGNvbnRleHQtbWFwOiBtYXAtbWVyZ2UoJGNvbnRleHQtbWFwLCAoJGNvbnRleHQ6IGJyZWFrcG9pbnQtZ2V0LWNvbnRleHQoJGNvbnRleHQpKSk7XG4gICAgICB9XG4gICAgICAkcmV0dXJuOiBtYXAtbWVyZ2UoJHJldHVybiwgKGNvbnRleHQ6ICRjb250ZXh0LW1hcCkpO1xuICAgIH1cblxuICAgIC8vIFJlc2V0IEdsb2JhbCBQcml2YXRlIEJyZWFrcG9pbnQgQ29udGV4dFxuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpICFnbG9iYWw7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZ2xvYmFsO1xuXG4gICAgQGlmICRNZW1vLUV4aXN0cyB7XG4gICAgICAkaG9sZGVyOiBtZW1vLXNldChicmVha3BvaW50LCBicmVha3BvaW50ICRxdWVyeSAkY29udGV4dHMsICRyZXR1cm4pO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHJldHVybjtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBHZW5lcmFsIEJyZWFrcG9pbnQgUGFyc2VyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlKCRxdWVyeSkge1xuICAvLyBJbmNyZWFzZSBudW1iZXIgb2YgJ2FuZCcgcXVlcmllc1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50ICsgMSAhZ2xvYmFsO1xuXG4gIC8vIFNldCB1cCBNZWRpYSBUeXBlXG4gICRxdWVyeS1wcmludDogJyc7XG5cbiAgJGZvcmNlLWFsbDogKChicmVha3BvaW50LWdldCgnZm9yY2UgYWxsIG1lZGlhIHR5cGUnKSA9PSB0cnVlKSBhbmQgKGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykgPT0gJ2FsbCcpKTtcbiAgJGVtcHR5LW1lZGlhOiB0cnVlO1xuICBAaWYgKCRmb3JjZS1hbGwgPT0gdHJ1ZSkgb3IgKGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykgIT0gJ2FsbCcpIHtcbiAgICAvLyBGb3JjZSB0aGUgcHJpbnQgb2YgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZSBpZiAoZm9yY2UgYWxsIGlzIHRydWUgYW5kIGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBhbGwpIG9yIChkZWZhdWx0IG1lZGlhIHR5cGUgaXMgbm90IGFsbClcbiAgICAkcXVlcnktcHJpbnQ6IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJyk7XG4gICAgJGVtcHR5LW1lZGlhOiBmYWxzZTtcbiAgfVxuXG5cbiAgJHF1ZXJ5LXJlc29sdXRpb246IGZhbHNlO1xuXG4gICRxdWVyeS1ob2xkZXI6IGJyZWFrcG9pbnQtcGFyc2UtcXVlcnkoJHF1ZXJ5KTtcblxuXG5cbiAgLy8gTG9vcCBvdmVyIGVhY2ggcGFyc2VkIG91dCBxdWVyeSBhbmQgd3JpdGUgaXQgdG8gJHF1ZXJ5LXByaW50XG4gICRmaXJzdDogdHJ1ZTtcblxuICBAZWFjaCAkZmVhdHVyZSBpbiAkcXVlcnktaG9sZGVyIHtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJGZlYXR1cmUpO1xuXG4gICAgLy8gUGFyc2UgYSBzaW5nbGUgZmVhdHVyZVxuICAgIEBpZiAoJGxlbmd0aCA9PSAxKSB7XG4gICAgICAvLyBGZWF0dXJlIGlzIGN1cnJlbnRseSBhIGxpc3QsIGdyYWIgdGhlIGFjdHVhbCB2YWx1ZVxuICAgICAgJGZlYXR1cmU6IG50aCgkZmVhdHVyZSwgMSk7XG5cbiAgICAgIC8vIE1lZGlhIFR5cGUgbXVzdCBieSBjb252ZW50aW9uIGJlIHRoZSBmaXJzdCBpdGVtLCBzbyBpdCdzIHNhZmUgdG8gZmxhdCBvdmVycmlkZSAkcXVlcnktcHJpbnQsIHdoaWNoIHJpZ2h0IG5vdyBzaG91bGQgb25seSBiZSB0aGUgZGVmYXVsdCBtZWRpYSB0eXBlXG4gICAgICBAaWYgKGJyZWFrcG9pbnQtaXMtbWVkaWEoJGZlYXR1cmUpKSB7XG4gICAgICAgIEBpZiAoJGZvcmNlLWFsbCA9PSB0cnVlKSBvciAoJGZlYXR1cmUgIT0gJ2FsbCcpIHtcbiAgICAgICAgICAvLyBGb3JjZSB0aGUgcHJpbnQgb2YgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZSBpZiAoZm9yY2UgYWxsIGlzIHRydWUgYW5kIGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBhbGwpIG9yIChkZWZhdWx0IG1lZGlhIHR5cGUgaXMgbm90IGFsbClcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICRmZWF0dXJlO1xuICAgICAgICAgICRlbXB0eS1tZWRpYTogZmFsc2U7XG5cbiAgICAgICAgICAvLyBTZXQgQ29udGV4dFxuICAgICAgICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1lZGlhLCAkcXVlcnktcHJpbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUGFyc2UgYSBkb3VibGUgZmVhdHVyZVxuICAgIEBlbHNlIGlmICgkbGVuZ3RoID09IDIpIHtcbiAgICAgIEBpZiAoYnJlYWtwb2ludC1pcy1yZXNvbHV0aW9uKCRmZWF0dXJlKSAhPSBmYWxzZSkge1xuICAgICAgICAkcXVlcnktcmVzb2x1dGlvbjogJGZlYXR1cmU7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRwYXJzZWQ6IG51bGw7XG4gICAgICAgIC8vIElmIGl0J3MgYSBzdHJpbmcvbnVtYmVyIHBhaXIsXG4gICAgICAgIC8vIHdlIGNoZWNrIHRvIHNlZSBpZiBvbmUgaXMgYSBzaW5nbGUtc3RyaW5nIHZhbHVlLFxuICAgICAgICAvLyB0aGVuIHdlIHBhcnNlIGl0IGFzIGEgbm9ybWFsIGRvdWJsZVxuICAgICAgICAkYWxwaGE6IG50aCgkZmVhdHVyZSwgMSk7XG4gICAgICAgICRiZXRhOiBudGgoJGZlYXR1cmUsIDIpO1xuICAgICAgICBAaWYgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRhbHBoYSkgb3IgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRiZXRhKSB7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGFscGhhLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGJldGEsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUGFyc2UgYSB0cmlwbGUgZmVhdHVyZVxuICAgIEBlbHNlIGlmICgkbGVuZ3RoID09IDMpIHtcbiAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgIH1cblxuICB9XG5cbiAgQGlmICgkcXVlcnktcmVzb2x1dGlvbiAhPSBmYWxzZSkge1xuICAgICRxdWVyeS1wcmludDogYnJlYWtwb2ludC1idWlsZC1yZXNvbHV0aW9uKCRxdWVyeS1wcmludCwgJHF1ZXJ5LXJlc29sdXRpb24sICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgfVxuXG4gIC8vIExvb3AgdGhyb3VnaCBlYWNoIGZlYXR1cmUgdGhhdCdzIGJlZW4gZGV0ZWN0ZWQgc28gZmFyIGFuZCBhcHBlbmQgJ2ZhbHNlJyB0byB0aGUgdGhlIHZhbHVlIGxpc3QgdG8gaW5jcmVtZW50IHRoZWlyIGNvdW50ZXJzXG4gIEBlYWNoICRmLCAkdiBpbiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyIHtcbiAgICAkdi1ob2xkZXI6ICR2O1xuICAgICRsZW5ndGg6IGxlbmd0aCgkdi1ob2xkZXIpO1xuICAgIEBpZiBsZW5ndGgoJHYtaG9sZGVyKSA8ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgQGZvciAkaSBmcm9tICRsZW5ndGggdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgICAgIEBpZiAkZiA9PSAnbWVkaWEnIHtcbiAgICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykpO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiAkcXVlcnktcHJpbnQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1xdWVyeSgkcXVlcnkpIHtcbiAgLy8gUGFyc2UgZmVhdHVyZXMgb3V0IG9mIGFuIGluZGl2aWR1YWwgcXVlcnlcbiAgJGZlYXR1cmUtaG9sZGVyOiAoKTtcbiAgJHF1ZXJ5LWhvbGRlcjogKCk7XG4gICRsZW5ndGg6IGxlbmd0aCgkcXVlcnkpO1xuXG4gIEBpZiAkbGVuZ3RoID09IDIge1xuICAgIC8vIElmIHdlJ3ZlIGdvdCBhIHN0cmluZy9udW1iZXIsIG51bWJlci9zdHJpbmcsIGNoZWNrIHRvIHNlZSBpZiBpdCdzIGEgdmFsaWQgc3RyaW5nL251bWJlciBwYWlyIG9yIHR3byBzaW5nbGVzXG4gICAgQGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ251bWJlcicpIG9yICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ3N0cmluZycpIHtcblxuICAgICAgJG51bWJlcjogJyc7XG4gICAgICAkdmFsdWU6ICcnO1xuXG4gICAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycge1xuICAgICAgICAkbnVtYmVyOiBudGgoJHF1ZXJ5LCAyKTtcbiAgICAgICAgJHZhbHVlOiBudGgoJHF1ZXJ5LCAxKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJG51bWJlcjogbnRoKCRxdWVyeSwgMSk7XG4gICAgICAgICR2YWx1ZTogbnRoKCRxdWVyeSwgMik7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSBzdHJpbmcgdmFsdWUgY2FuIGJlIGEgc2luZ2xlIHZhbHVlLCBjaGVjayB0byBzZWUgaWYgdGhlIG51bWJlciBwYXNzZWQgaW4gaXMgYSB2YWxpZCBpbnB1dCBmb3Igc2FpZCBzaW5nbGUgdmFsdWUuIEZvcnR1bmF0ZWx5LCBhbGwgY3VycmVudCBzaW5nbGUtdmFsdWUgb3B0aW9ucyBvbmx5IGFjY2VwdCB1bml0bGVzcyBudW1iZXJzLCBzbyB0aGlzIGNoZWNrIGlzIGVhc3kuXG4gICAgICBAaWYgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCR2YWx1ZSkge1xuICAgICAgICBAaWYgdW5pdGxlc3MoJG51bWJlcikge1xuICAgICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCR2YWx1ZSwgJG51bWJlciwgc3BhY2UpO1xuICAgICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIElmIHRoZSBzdHJpbmcgaXMgYSBtZWRpYSB0eXBlLCBzcGxpdCB0aGUgcXVlcnlcbiAgICAgIEBpZiBicmVha3BvaW50LWlzLW1lZGlhKCR2YWx1ZSkge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMSkpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMikpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgICAvLyBJZiBpdCdzIG5vdCBhIHNpbmdsZSBmZWF0dXJlLCB3ZSdyZSBqdXN0IGdvaW5nIHRvIGFzc3VtZSBpdCdzIGEgcHJvcGVyIHN0cmluZy92YWx1ZSBwYWlyLCBhbmQgcm9sbCB3aXRoIGl0LlxuICAgICAgQGVsc2Uge1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkdmFsdWUsICRudW1iZXIsIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG5cbiAgICB9XG4gICAgLy8gSWYgdGhleSdyZSBib3RoIG51bWJlcnMsIHdlIGFzc3VtZSBpdCdzIGEgZG91YmxlIGFuZCByb2xsIHdpdGggdGhhdFxuICAgIEBlbHNlIGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ251bWJlcicpIHtcbiAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgIH1cbiAgICAvLyBJZiB0aGV5J3JlIGJvdGggc3RyaW5ncyBhbmQgbmVpdGhlciBhcmUgc2luZ2xlcywgd2Ugcm9sbCB3aXRoIHRoYXQuXG4gICAgQGVsc2UgaWYgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnc3RyaW5nJykge1xuICAgICAgQGlmIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDIpKSB7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHtcbiAgICAvLyBJZiB3ZSd2ZSBnb3QgdGhyZWUgaXRlbXMgYW5kIG5vbmUgaXMgYSBsaXN0LCB3ZSBjaGVjayB0byBzZWVcbiAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgIT0gJ2xpc3QnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSAhPSAnbGlzdCcgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMykpICE9ICdsaXN0JyB7XG4gICAgICAvLyBJZiBub25lIG9mIHRoZSBpdGVtcyBhcmUgc2luZ2xlIHN0cmluZyB2YWx1ZXMgYW5kIG5vbmUgb2YgdGhlIHZhbHVlcyBhcmUgbWVkaWEgdmFsdWVzLCB3ZSdyZSBnb29kLlxuICAgICAgQGlmIChub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAyKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMykpKSBhbmQgICgobm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAyKSkgYW5kIG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDMpKSkpIHtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMSksIG50aCgkcXVlcnksIDIpLCBzcGFjZSk7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCRmZWF0dXJlLWhvbGRlciwgbnRoKCRxdWVyeSwgMyksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgICAvLyBsZXQncyBjaGVjayB0byBzZWUgaWYgdGhlIGZpcnN0IGl0ZW0gaXMgYSBtZWRpYSB0eXBlXG4gICAgICBAZWxzZSBpZiBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAxKSk7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDIpLCBudGgoJHF1ZXJ5LCAzKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIGl0J3MgYSBzaW5nbGUgaXRlbSwgb3IgaWYgaXQncyBub3QgYSBzcGVjaWFsIGNhc2UgZG91YmxlIG9yIHRyaXBsZSwgd2UgY2FuIHNpbXBseSByZXR1cm4gdGhlIHF1ZXJ5LlxuICBAcmV0dXJuICRxdWVyeTtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwic2luZ2xlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIC8vIElmIGl0J3MgYSBzaW5nbGUgZmVhdHVyZSB0aGF0IGNhbiBzdGFuZCBhbG9uZSwgd2UgbGV0IGl0XG4gIEBpZiAoYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRmZWF0dXJlKSkge1xuICAgICRwYXJzZWQ6ICRmZWF0dXJlO1xuICAgIC8vIFNldCBDb250ZXh0XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICRmZWF0dXJlKTtcbiAgfVxuICAvLyBJZiBpdCdzIG5vdCBhIHN0YW5kIGFsb25lIGZlYXR1cmUsIHdlIHBhc3MgaXQgb2ZmIHRvIHRoZSBkZWZhdWx0IGhhbmRsZXIuXG4gIEBlbHNlIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQoJGZlYXR1cmUpO1xuICB9XG5cbiAgQHJldHVybiAkbGVhZGVyICsgJygnICsgJHBhcnNlZCArICcpJztcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQoJGZlYXR1cmUpIHtcbiAgJGRlZmF1bHQ6IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IGZlYXR1cmUnKTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZGVmYXVsdCwgJGZlYXR1cmUpO1xuXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIGFuZCAodHlwZS1vZigkZmVhdHVyZSkgPT0gJ251bWJlcicpIHtcbiAgICBAcmV0dXJuICcjeyRkZWZhdWx0fTogI3ticmVha3BvaW50LXRvLWJhc2UtZW0oJGZlYXR1cmUpfSc7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJyN7JGRlZmF1bHR9OiAjeyRmZWF0dXJlfSc7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiZG91YmxlL2RlZmF1bHQtcGFpclwiO1xuQGltcG9ydCBcImRvdWJsZS9kb3VibGUtc3RyaW5nXCI7XG5AaW1wb3J0IFwiZG91YmxlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gICRmaXJzdDogbnRoKCRmZWF0dXJlLCAxKTtcbiAgJHNlY29uZDogbnRoKCRmZWF0dXJlLCAyKTtcblxuICAvLyBJZiB3ZSd2ZSBnb3QgdHdvIG51bWJlcnMsIHdlIGtub3cgd2UgbmVlZCB0byB1c2UgdGhlIGRlZmF1bHQgcGFpciBiZWNhdXNlIHRoZXJlIGFyZSBubyBtZWRpYSBxdWVyaWVzIHRoYXQgaGFzIGEgbWVkaWEgZmVhdHVyZSB0aGF0IGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YoJHNlY29uZCkgPT0gJ251bWJlcicge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdC1wYWlyKCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cbiAgLy8gSWYgdGhleSBhcmUgYm90aCBzdHJpbmdzLCB3ZSBzZW5kIGl0IHRocm91Z2ggdGhlIHN0cmluZyBwYXJzZXJcbiAgQGVsc2UgaWYgdHlwZS1vZigkZmlyc3QpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKCRzZWNvbmQpID09ICdzdHJpbmcnIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1zdHJpbmcoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuICAvLyBJZiBpdCdzIGEgc3RyaW5nL251bWJlciBwYWlyLCB3ZSBwYXJzZSBpdCBhcyBhIG5vcm1hbCBkb3VibGVcbiAgQGVsc2Uge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLWRlZmF1bHQoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxlYWRlciArICRwYXJzZWQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0LXBhaXIoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRkZWZhdWx0OiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBwYWlyJyk7XG4gICRtaW46ICcnO1xuICAkbWF4OiAnJztcblxuICAvLyBTb3J0IGludG8gbWluIGFuZCBtYXhcbiAgJG1pbjogbWluKCRmaXJzdCwgJHNlY29uZCk7XG4gICRtYXg6IG1heCgkZmlyc3QsICRzZWNvbmQpO1xuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1pbi0jeyRkZWZhdWx0fSwgJG1pbik7XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1heC0jeyRkZWZhdWx0fSwgJG1heCk7XG5cbiAgLy8gTWFrZSB0aGVtIEVNcyBpZiBuZWVkIGJlXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIHtcbiAgICAkbWluOiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1pbik7XG4gICAgJG1heDogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtYXgpO1xuICB9XG5cbiAgQHJldHVybiAnKG1pbi0jeyRkZWZhdWx0fTogI3skbWlufSkgYW5kIChtYXgtI3skZGVmYXVsdH06ICN7JG1heH0pJztcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1zdHJpbmcoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRmZWF0dXJlOiAnJztcbiAgJHZhbHVlOiAnJztcblxuICAvLyBUZXN0IHRvIHNlZSB3aGljaCBpcyB0aGUgZmVhdHVyZSBhbmQgd2hpY2ggaXMgdGhlIHZhbHVlXG4gIEBpZiAoYnJlYWtwb2ludC1zdHJpbmctdmFsdWUoJGZpcnN0KSA9PSB0cnVlKSB7XG4gICAgJGZlYXR1cmU6ICRmaXJzdDtcbiAgICAkdmFsdWU6ICRzZWNvbmQ7XG4gIH1cbiAgQGVsc2UgaWYgKGJyZWFrcG9pbnQtc3RyaW5nLXZhbHVlKCRzZWNvbmQpID09IHRydWUpIHtcbiAgICAkZmVhdHVyZTogJHNlY29uZDtcbiAgICAkdmFsdWU6ICRmaXJzdDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJOZWl0aGVyICN7JGZpcnN0fSBub3IgI3skc2Vjb25kfSBpcyBhIHZhbGlkIG1lZGlhIHF1ZXJ5IG5hbWUuXCI7XG4gIH1cblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJHZhbHVlKTtcblxuICBAcmV0dXJuICcoI3skZmVhdHVyZX06ICN7JHZhbHVlfSknO1xufSIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1kZWZhdWx0KCRmaXJzdCwgJHNlY29uZCkge1xuICAkZmVhdHVyZTogJyc7XG4gICR2YWx1ZTogJyc7XG5cbiAgQGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnc3RyaW5nJyB7XG4gICAgJGZlYXR1cmU6ICRmaXJzdDtcbiAgICAkdmFsdWU6ICRzZWNvbmQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRmZWF0dXJlOiAkc2Vjb25kO1xuICAgICR2YWx1ZTogJGZpcnN0O1xuICB9XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSk7XG5cbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkge1xuICAgICR2YWx1ZTogYnJlYWtwb2ludC10by1iYXNlLWVtKCR2YWx1ZSk7XG4gIH1cblxuICBAcmV0dXJuICcoI3skZmVhdHVyZX06ICN7JHZhbHVlfSknXG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInRyaXBsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXRyaXBsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuXG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIC8vIHNlcGFyYXRlIHRoZSBzdHJpbmcgZmVhdHVyZXMgZnJvbSB0aGUgdmFsdWUgbnVtYmVyc1xuICAkc3RyaW5nOiBudWxsO1xuICAkbnVtYmVyczogbnVsbDtcbiAgQGVhY2ggJHZhbCBpbiAkZmVhdHVyZSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbCkgPT0gc3RyaW5nIHtcbiAgICAgICRzdHJpbmc6ICR2YWw7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRudW1iZXJzKSA9PSAnbnVsbCcge1xuICAgICAgICAkbnVtYmVyczogJHZhbDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJG51bWJlcnM6IGFwcGVuZCgkbnVtYmVycywgJHZhbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS10cmlwbGUtZGVmYXVsdCgkc3RyaW5nLCBudGgoJG51bWJlcnMsIDEpLCBudGgoJG51bWJlcnMsIDIpKTtcblxuICBAcmV0dXJuICRsZWFkZXIgKyAkcGFyc2VkO1xuXG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS10cmlwbGUtZGVmYXVsdCgkZmVhdHVyZSwgJGZpcnN0LCAkc2Vjb25kKSB7XG5cbiAgLy8gU29ydCBpbnRvIG1pbiBhbmQgbWF4XG4gICRtaW46IG1pbigkZmlyc3QsICRzZWNvbmQpO1xuICAkbWF4OiBtYXgoJGZpcnN0LCAkc2Vjb25kKTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtaW4tI3skZmVhdHVyZX0sICRtaW4pO1xuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtYXgtI3skZmVhdHVyZX0sICRtYXgpO1xuXG4gIC8vIE1ha2UgdGhlbSBFTXMgaWYgbmVlZCBiZVxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSB7XG4gICAgJG1pbjogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtaW4pO1xuICAgICRtYXg6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWF4KTtcbiAgfVxuXG4gIEByZXR1cm4gJyhtaW4tI3skZmVhdHVyZX06ICN7JG1pbn0pIGFuZCAobWF4LSN7JGZlYXR1cmV9OiAjeyRtYXh9KSc7XG59XG4iLCJAaW1wb3J0IFwicmVzb2x1dGlvbi9yZXNvbHV0aW9uXCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LWJ1aWxkLXJlc29sdXRpb24oJHF1ZXJ5LXByaW50LCAkcXVlcnktcmVzb2x1dGlvbiwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIEBpZiBicmVha3BvaW50LWdldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJykgYW5kICRxdWVyeS1yZXNvbHV0aW9uIHtcbiAgICAkcmVzb2x1dGlvbnM6IGJyZWFrcG9pbnQtbWFrZS1yZXNvbHV0aW9ucygkcXVlcnktcmVzb2x1dGlvbik7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCRyZXNvbHV0aW9ucyk7XG4gICAgJHF1ZXJ5LWhvbGRlcjogJyc7XG5cbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgJHF1ZXJ5OiAnI3skcXVlcnktcHJpbnR9ICN7JGxlYWRlcn0je250aCgkcmVzb2x1dGlvbnMsICRpKX0nO1xuICAgICAgQGlmICRpID09IDEge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiAkcXVlcnk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6ICcjeyRxdWVyeS1ob2xkZXJ9LCAjeyRxdWVyeX0nO1xuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gUmV0dXJuIHdpdGggYXR0YWNoZWQgcmVzb2x1dGlvblxuICAgIEByZXR1cm4gJHF1ZXJ5LXByaW50O1xuICB9XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1tYWtlLXJlc29sdXRpb25zKCRyZXNvbHV0aW9uKSB7XG4gICRsZW5ndGg6IGxlbmd0aCgkcmVzb2x1dGlvbik7XG5cbiAgJG91dHB1dDogKCk7XG5cbiAgQGlmICRsZW5ndGggPT0gMiB7XG4gICAgJGZlYXR1cmU6ICcnO1xuICAgICR2YWx1ZTogJyc7XG5cbiAgICAvLyBGaW5kIHdoaWNoIGlzIG51bWJlclxuICAgIEBpZiB0eXBlLW9mKG50aCgkcmVzb2x1dGlvbiwgMSkpID09ICdudW1iZXInIHtcbiAgICAgICR2YWx1ZTogbnRoKCRyZXNvbHV0aW9uLCAxKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHZhbHVlOiBudGgoJHJlc29sdXRpb24sIDIpO1xuICAgIH1cblxuICAgIC8vIERldGVybWluZSBtaW4vbWF4L3N0YW5kYXJkXG4gICAgQGlmIGluZGV4KCRyZXNvbHV0aW9uLCAnbWluLXJlc29sdXRpb24nKSB7XG4gICAgICAkZmVhdHVyZTogJ21pbi0nO1xuICAgIH1cbiAgICBAZWxzZSBpZiBpbmRleCgkcmVzb2x1dGlvbiwgJ21heC1yZXNvbHV0aW9uJykge1xuICAgICAgJGZlYXR1cmU6ICdtYXgtJztcbiAgICB9XG5cbiAgICAkc3RhbmRhcmQ6ICcoI3skZmVhdHVyZX1yZXNvbHV0aW9uOiAjeyR2YWx1ZX0pJztcblxuICAgIC8vIElmIHdlJ3JlIG5vdCBkZWFsaW5nIHdpdGggZHBweCxcbiAgICBAaWYgdW5pdCgkdmFsdWUpICE9ICdkcHB4JyB7XG4gICAgICAkYmFzZTogOTZkcGk7XG4gICAgICBAaWYgdW5pdCgkdmFsdWUpID09ICdkcGNtJyB7XG4gICAgICAgICRiYXNlOiAyNDMuODRkcGNtO1xuICAgICAgfVxuICAgICAgLy8gV3JpdGUgb3V0IGZlYXR1cmUgdGVzdHNcbiAgICAgICR3ZWJraXQ6ICcnO1xuICAgICAgJG1vejogJyc7XG4gICAgICAkd2Via2l0OiAnKC13ZWJraXQtI3skZmVhdHVyZX1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gJGJhc2V9KSc7XG4gICAgICAkbW96OiAnKCN7JGZlYXR1cmV9LW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gJGJhc2V9KSc7XG4gICAgICAvLyBBcHBlbmQgdG8gb3V0cHV0XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHN0YW5kYXJkLCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHdlYmtpdCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRtb3osIHNwYWNlKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdDogJyc7XG4gICAgICAkbW96OiAnJztcbiAgICAgICR3ZWJraXQ6ICcoLXdlYmtpdC0jeyRmZWF0dXJlfWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAxZHBweH0pJztcbiAgICAgICRtb3o6ICcoI3skZmVhdHVyZX0tbW96LWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAxZHBweH0pJztcbiAgICAgICRmYWxsYmFjazogJygjeyRmZWF0dXJlfXJlc29sdXRpb246ICN7JHZhbHVlIC8gMWRwcHggKiA5NmRwaX0pJztcbiAgICAgIC8vIEFwcGVuZCB0byBvdXRwdXRcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkc3RhbmRhcmQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkd2Via2l0LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJG1veiwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRmYWxsYmFjaywgc3BhY2UpO1xuICAgIH1cblxuICB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbm8tcXVlcnkoJHF1ZXJ5KSB7XG4gIEBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gJ2xpc3QnIHtcbiAgICAka2V5d29yZDogbnRoKCRxdWVyeSwgMSk7XG5cbiAgICBAaWYgdHlwZS1vZigka2V5d29yZCkgPT0gJ3N0cmluZycgYW5kICgka2V5d29yZCA9PSAnbm8tcXVlcnknIG9yICRrZXl3b3JkID09ICdubyBxdWVyeScgb3IgJGtleXdvcmQgPT0gJ2ZhbGxiYWNrJykge1xuICAgICAgQHJldHVybiBudGgoJHF1ZXJ5LCAyKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRGVmYXVsdCB0aGUgQnJlYWtwb2ludHMgdmFyaWFibGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcbiRCUkVBS1BPSU5UUzogKCkgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmVzcG9uZC10byBBUEkgTWl4aW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIHJlc3BvbmQtdG8oJGNvbnRleHQsICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGlmIGxlbmd0aCgkYnJlYWtwb2ludHMpID4gMCBhbmQgbGVuZ3RoKCRCUkVBS1BPSU5UUykgPT0gMCB7XG4gICAgQHdhcm4gXCJJbiBvcmRlciB0byBhdm9pZCB2YXJpYWJsZSBuYW1lc3BhY2UgY29sbGlzaW9ucywgd2UgaGF2ZSB1cGRhdGVkIHRoZSB3YXkgdG8gYWRkIGJyZWFrcG9pbnRzIGZvciByZXNwb25kLXRvLiBQbGVhc2UgY2hhbmdlIGFsbCBpbnN0YW5jZXMgb2YgYCRicmVha3BvaW50czogYWRkLWJyZWFrcG9pbnQoKWAgdG8gYEBpbmNsdWRlIGFkZC1icmVha3BvaW50KClgLiBUaGUgYGFkZC1icmVha3BvaW50KClgIGZ1bmN0aW9uIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLlwiO1xuICAgICRCUkVBS1BPSU5UUzogJGJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICAgJGJyZWFrcG9pbnRzOiAoKSAhZ2xvYmFsO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJEJSRUFLUE9JTlRTKSAhPSAnbWFwJyB7XG4gICAgLy8gSnVzdCBpbiBjYXNlIHNvbWVvbmUgd3JpdGVzIGdpYmJlcmlzaCB0byB0aGUgJGJyZWFrcG9pbnRzIHZhcmlhYmxlLlxuICAgIEB3YXJuIFwiWW91ciBicmVha3BvaW50cyBhcmVuJ3QgYSBtYXAhIGByZXNwb25kLXRvYCBleHBlY3RzIGEgbWFwLiBQbGVhc2UgY2hlY2sgdGhlIHZhbHVlIG9mICRCUkVBS1BPSU5UUyB2YXJpYWJsZS5cIjtcbiAgICBAY29udGVudDtcbiAgfVxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRjb250ZXh0KSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtYXAtZ2V0KCRCUkVBS1BPSU5UUywgJGNvbnRleHQpLCAkbm8tcXVlcnkpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiBub3QgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkY29udGV4dCkge1xuICAgIEB3YXJuIFwiYCN7JGNvbnRleHR9YCBpc24ndCBhIGRlZmluZWQgYnJlYWtwb2ludCEgUGxlYXNlIGFkZCBpdCB1c2luZyBgJGJyZWFrcG9pbnRzOiBhZGQtYnJlYWtwb2ludChgI3skY29udGV4dH1gLCAkdmFsdWUpO2BcIjtcbiAgICBAY29udGVudDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJZb3UgaGF2ZW4ndCBjcmVhdGVkIGFueSBicmVha3BvaW50cyB5ZXQhIE1ha2Ugc29tZSBhbHJlYWR5ISBgQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoJG5hbWUsICRia3B0KWBcIjtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEFkZCBCcmVha3BvaW50IHRvIEJyZWFrcG9pbnRzXG4vLyBUT0RPOiBSZW1vdmUgZnVuY3Rpb24gaW4gbmV4dCByZWxlYXNlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBhZGQtYnJlYWtwb2ludCgkbmFtZSwgJGJrcHQsICRvdmVyd3JpdGU6IGZhbHNlKSB7XG4gICRvdXRwdXQ6ICgkbmFtZTogJGJrcHQpO1xuXG4gIEBpZiBsZW5ndGgoJGJyZWFrcG9pbnRzKSA9PSAwIHtcbiAgICBAcmV0dXJuICRvdXRwdXQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBhbmQgJG92ZXJ3cml0ZSAhPSB0cnVlIHtcbiAgICAgIEB3YXJuIFwiWW91IGFscmVhZHkgaGF2ZSBhIGJyZWFrcG9pbnQgbmFtZWQgYCN7JG5hbWV9YCwgcGxlYXNlIGNob29zZSBhbm90aGVyIGJyZWFrcG9pbnQgbmFtZSwgb3IgcGFzcyBpbiBgJG92ZXJ3cml0ZTogdHJ1ZWAgdG8gb3ZlcndyaXRlIHRoZSBwcmV2aW91cyBicmVha3BvaW50LlwiO1xuICAgICAgQHJldHVybiAkYnJlYWtwb2ludHM7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBvciAkb3ZlcndyaXRlID09IHRydWUge1xuICAgICAgQHJldHVybiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkb3V0cHV0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFkZC1icmVha3BvaW50KCRuYW1lLCAkYmtwdCwgJG92ZXJ3cml0ZTogZmFsc2UpIHtcbiAgJG91dHB1dDogKCRuYW1lOiAkYmtwdCk7XG5cbiAgQGlmIGxlbmd0aCgkQlJFQUtQT0lOVFMpID09IDAge1xuICAgICRCUkVBS1BPSU5UUzogJG91dHB1dCAhZ2xvYmFsO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkbmFtZSkgYW5kICRvdmVyd3JpdGUgIT0gdHJ1ZSB7XG4gICAgICBAd2FybiBcIllvdSBhbHJlYWR5IGhhdmUgYSBicmVha3BvaW50IG5hbWVkIGAjeyRuYW1lfWAsIHBsZWFzZSBjaG9vc2UgYW5vdGhlciBicmVha3BvaW50IG5hbWUsIG9yIHBhc3MgaW4gYCRvdmVyd3JpdGU6IHRydWVgIHRvIG92ZXJ3cml0ZSB0aGUgcHJldmlvdXMgYnJlYWtwb2ludC5cIjtcbiAgICAgICRCUkVBS1BPSU5UUzogJEJSRUFLUE9JTlRTICFnbG9iYWw7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRuYW1lKSBvciAkb3ZlcndyaXRlID09IHRydWUge1xuICAgICAgJEJSRUFLUE9JTlRTOiBtYXAtbWVyZ2UoJEJSRUFLUE9JTlRTLCAkb3V0cHV0KSAhZ2xvYmFsO1xuICAgIH1cbiAgfVxufVxuXG5AZnVuY3Rpb24gZ2V0LWJyZWFrcG9pbnQoJG5hbWU6IGZhbHNlKSB7XG4gIEBpZiAkbmFtZSA9PSBmYWxzZSB7XG4gICAgQHJldHVybiAkQlJFQUtQT0lOVFM7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkQlJFQUtQT0lOVFMsICRuYW1lKTtcbiAgfVxufVxuIiwiQG1peGluIGxlZ2FjeS1zZXR0aW5ncy13YXJuaW5nIHtcbiAgJGxlZ2FjeVZhcnM6IChcbiAgICAnZGVmYXVsdC1tZWRpYSc6ICdkZWZhdWx0IG1lZGlhJyxcbiAgICAnZGVmYXVsdC1mZWF0dXJlJzogJ2RlZmF1bHQgZmVhdHVyZScsXG4gICAgJ2ZvcmNlLW1lZGlhLWFsbCc6ICdmb3JjZSBhbGwgbWVkaWEgdHlwZScsXG4gICAgJ3RvLWVtcyc6ICd0byBlbXMnLFxuICAgICdyZXNvbHV0aW9ucyc6ICd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnLFxuICAgICduby1xdWVyaWVzJzogJ25vIHF1ZXJpZXMnLFxuICAgICduby1xdWVyeS1mYWxsYmFja3MnOiAnbm8gcXVlcnkgZmFsbGJhY2tzJyxcbiAgICAnYmFzZS1mb250LXNpemUnOiAnYmFzZSBmb250IHNpemUnLFxuICAgICdsZWdhY3ktc3ludGF4JzogJ2xlZ2FjeSBzeW50YXgnXG4gICk7XG5cbiAgQGVhY2ggJGxlZ2FjeSwgJG5ldyBpbiAkbGVnYWN5VmFycyB7XG4gICAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtJyArICRsZWdhY3kpIHtcbiAgICAgIEB3YXJuIFwiSW4gb3JkZXIgdG8gYXZvaWQgdmFyaWFibGUgbmFtc3BhY2UgY29sbGlzaW9ucywgd2UgaGF2ZSB1cGRhdGVkIHRoZSB3YXkgdG8gY2hhbmdlIHNldHRpbmdzIGZvciBCcmVha3BvaW50LiBQbGVhc2UgY2hhbmdlIGFsbCBpbnN0YW5jZXMgb2YgYCRicmVha3BvaW50LSN7JGxlZ2FjeX06IHt7c2V0dGluZ319YCB0byBgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJyN7JG5ld30nLCB7e3NldHRpbmd9fSlgLiBWYXJpYWJsZSBzZXR0aW5ncywgYXMgd2VsbCBhcyB0aGlzIHdhcm5pbmcgd2lsbCBiZSBkZXByZWNhdGVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXCJcbiAgICB9XG4gIH07XG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIEhhbmQgY29ycmVjdCBlYWNoIHNldHRpbmdcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWRlZmF1bHQtbWVkaWEnKSBhbmQgJGJyZWFrcG9pbnQtZGVmYXVsdC1tZWRpYSAhPSBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnZGVmYXVsdCBtZWRpYScsICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZScpIGFuZCAkYnJlYWtwb2ludC1kZWZhdWx0LWZlYXR1cmUgIT0gYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgZmVhdHVyZScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnZGVmYXVsdCBmZWF0dXJlJywgJGJyZWFrcG9pbnQtZGVmYXVsdC1mZWF0dXJlKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGwnKSBhbmQgJGJyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsICE9IGJyZWFrcG9pbnQtZ2V0KCdmb3JjZSBhbGwgbWVkaWEgdHlwZScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnZm9yY2UgYWxsIG1lZGlhIHR5cGUnLCAkYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGwpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LXRvLWVtcycpIGFuZCAkYnJlYWtwb2ludC10by1lbXMgIT0gYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgndG8gZW1zJywgJGJyZWFrcG9pbnQtdG8tZW1zKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1yZXNvbHV0aW9ucycpIGFuZCAkYnJlYWtwb2ludC1yZXNvbHV0aW9ucyAhPSBicmVha3BvaW50LWdldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnLCAkYnJlYWtwb2ludC1yZXNvbHV0aW9ucyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbm8tcXVlcmllcycpIGFuZCAkYnJlYWtwb2ludC1uby1xdWVyaWVzICE9IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdubyBxdWVyaWVzJywgJGJyZWFrcG9pbnQtbm8tcXVlcmllcyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzJykgYW5kICRicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrcyAhPSBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdubyBxdWVyeSBmYWxsYmFja3MnLCAkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3MpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWJhc2UtZm9udC1zaXplJykgYW5kICRicmVha3BvaW50LWJhc2UtZm9udC1zaXplICE9IGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnYmFzZSBmb250IHNpemUnLCAkYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZSk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCcpIGFuZCAkYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4ICE9IGJyZWFrcG9pbnQtZ2V0KCdsZWdhY3kgc3ludGF4Jykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdsZWdhY3kgc3ludGF4JywgJGJyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCk7XG4gIH1cbn0iLCIvKipcbiAqIFN3aXBlciA0LjIuMFxuICogTW9zdCBtb2Rlcm4gbW9iaWxlIHRvdWNoIHNsaWRlciBhbmQgZnJhbWV3b3JrIHdpdGggaGFyZHdhcmUgYWNjZWxlcmF0ZWQgdHJhbnNpdGlvbnNcbiAqIGh0dHA6Ly93d3cuaWRhbmdlcm8udXMvc3dpcGVyL1xuICpcbiAqIENvcHlyaWdodCAyMDE0LTIwMTggVmxhZGltaXIgS2hhcmxhbXBpZGlcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2VcbiAqXG4gKiBSZWxlYXNlZCBvbjogTWFyY2ggMTYsIDIwMThcbiAqL1xuLnN3aXBlci1jb250YWluZXIge1xuICBtYXJnaW46IDAgYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICAvKiBGaXggb2YgV2Via2l0IGZsaWNrZXJpbmcgKi9cbiAgei1pbmRleDogMTtcbn1cbi5zd2lwZXItY29udGFpbmVyLW5vLWZsZXhib3ggLnN3aXBlci1zbGlkZSB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLnN3aXBlci1jb250YWluZXItdmVydGljYWwgPiAuc3dpcGVyLXdyYXBwZXIge1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5zd2lwZXItd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAtby10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1hbmRyb2lkIC5zd2lwZXItc2xpZGUsXG4uc3dpcGVyLXdyYXBwZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDAsIDApO1xufVxuLnN3aXBlci1jb250YWluZXItbXVsdGlyb3cgPiAuc3dpcGVyLXdyYXBwZXIge1xuICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcbiAgLW1zLWZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnN3aXBlci1jb250YWluZXItZnJlZS1tb2RlID4gLnN3aXBlci13cmFwcGVyIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIC1vLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICBtYXJnaW46IDAgYXV0bztcbn1cbi5zd2lwZXItc2xpZGUge1xuICAtd2Via2l0LWZsZXgtc2hyaW5rOiAwO1xuICAtbXMtZmxleC1uZWdhdGl2ZTogMDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogLXdlYmtpdC10cmFuc2Zvcm07XG4gIC1vLXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIC13ZWJraXQtdHJhbnNmb3JtO1xufVxuLnN3aXBlci1pbnZpc2libGUtYmxhbmstc2xpZGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKiBBdXRvIEhlaWdodCAqL1xuLnN3aXBlci1jb250YWluZXItYXV0b2hlaWdodCxcbi5zd2lwZXItY29udGFpbmVyLWF1dG9oZWlnaHQgLnN3aXBlci1zbGlkZSB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5zd2lwZXItY29udGFpbmVyLWF1dG9oZWlnaHQgLnN3aXBlci13cmFwcGVyIHtcbiAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IGhlaWdodCwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGhlaWdodCwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIC1vLXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgaGVpZ2h0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIGhlaWdodDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBoZWlnaHQsIC13ZWJraXQtdHJhbnNmb3JtO1xufVxuLyogM0QgRWZmZWN0cyAqL1xuLnN3aXBlci1jb250YWluZXItM2Qge1xuICAtd2Via2l0LXBlcnNwZWN0aXZlOiAxMjAwcHg7XG4gIHBlcnNwZWN0aXZlOiAxMjAwcHg7XG59XG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXdyYXBwZXIsXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1jdWJlLXNoYWRvdyB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbn1cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQsXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMTA7XG59XG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIHJpZ2h0IHRvcCwgbGVmdCB0b3AsIGZyb20ocmdiYSgwLCAwLCAwLCAwLjUpKSwgdG8ocmdiYSgwLCAwLCAwLCAwKSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChyaWdodCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbn1cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGZyb20ocmdiYSgwLCAwLCAwLCAwLjUpKSwgdG8ocmdiYSgwLCAwLCAwLCAwKSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xufVxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgZnJvbShyZ2JhKDAsIDAsIDAsIDAuNSkpLCB0byhyZ2JhKDAsIDAsIDAsIDApKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbn1cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20ocmdiYSgwLCAwLCAwLCAwLjUpKSwgdG8ocmdiYSgwLCAwLCAwLCAwKSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG59XG4vKiBJRTEwIFdpbmRvd3MgUGhvbmUgOCBGaXhlcyAqL1xuLnN3aXBlci1jb250YWluZXItd3A4LWhvcml6b250YWwsXG4uc3dpcGVyLWNvbnRhaW5lci13cDgtaG9yaXpvbnRhbCA+IC5zd2lwZXItd3JhcHBlciB7XG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xufVxuLnN3aXBlci1jb250YWluZXItd3A4LXZlcnRpY2FsLFxuLnN3aXBlci1jb250YWluZXItd3A4LXZlcnRpY2FsID4gLnN3aXBlci13cmFwcGVyIHtcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXg7XG4gIHRvdWNoLWFjdGlvbjogcGFuLXg7XG59XG4uc3dpcGVyLWJ1dHRvbi1wcmV2LFxuLnN3aXBlci1idXR0b24tbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiAyN3B4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIG1hcmdpbi10b3A6IC0yMnB4O1xuICB6LWluZGV4OiAxMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDI3cHggNDRweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuLnN3aXBlci1idXR0b24tcHJldi5zd2lwZXItYnV0dG9uLWRpc2FibGVkLFxuLnN3aXBlci1idXR0b24tbmV4dC5zd2lwZXItYnV0dG9uLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC4zNTtcbiAgY3Vyc29yOiBhdXRvO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5zd2lwZXItYnV0dG9uLXByZXYsXG4uc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1idXR0b24tbmV4dCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMjclMjA0NCclM0UlM0NwYXRoJTIwZCUzRCdNMCUyQzIyTDIyJTJDMGwyLjElMkMyLjFMNC4yJTJDMjJsMTkuOSUyQzE5LjlMMjIlMkM0NEwwJTJDMjJMMCUyQzIyTDAlMkMyMnonJTIwZmlsbCUzRCclMjMwMDdhZmYnJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xuICBsZWZ0OiAxMHB4O1xuICByaWdodDogYXV0bztcbn1cbi5zd2lwZXItYnV0dG9uLW5leHQsXG4uc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1idXR0b24tcHJldiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMjclMjA0NCclM0UlM0NwYXRoJTIwZCUzRCdNMjclMkMyMkwyNyUyQzIyTDUlMkM0NGwtMi4xLTIuMUwyMi44JTJDMjJMMi45JTJDMi4xTDUlMkMwTDI3JTJDMjJMMjclMkMyMnonJTIwZmlsbCUzRCclMjMwMDdhZmYnJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xuICByaWdodDogMTBweDtcbiAgbGVmdDogYXV0bztcbn1cbi5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi13aGl0ZSxcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24td2hpdGUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTAlMkMyMkwyMiUyQzBsMi4xJTJDMi4xTDQuMiUyQzIybDE5LjklMkMxOS45TDIyJTJDNDRMMCUyQzIyTDAlMkMyMkwwJTJDMjJ6JyUyMGZpbGwlM0QnJTIzZmZmZmZmJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cbi5zd2lwZXItYnV0dG9uLW5leHQuc3dpcGVyLWJ1dHRvbi13aGl0ZSxcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1wcmV2LnN3aXBlci1idXR0b24td2hpdGUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTI3JTJDMjJMMjclMkMyMkw1JTJDNDRsLTIuMS0yLjFMMjIuOCUyQzIyTDIuOSUyQzIuMUw1JTJDMEwyNyUyQzIyTDI3JTJDMjJ6JyUyMGZpbGwlM0QnJTIzZmZmZmZmJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cbi5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi1ibGFjayxcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24tYmxhY2sge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTAlMkMyMkwyMiUyQzBsMi4xJTJDMi4xTDQuMiUyQzIybDE5LjklMkMxOS45TDIyJTJDNDRMMCUyQzIyTDAlMkMyMkwwJTJDMjJ6JyUyMGZpbGwlM0QnJTIzMDAwMDAwJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cbi5zd2lwZXItYnV0dG9uLW5leHQuc3dpcGVyLWJ1dHRvbi1ibGFjayxcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1wcmV2LnN3aXBlci1idXR0b24tYmxhY2sge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTI3JTJDMjJMMjclMkMyMkw1JTJDNDRsLTIuMS0yLjFMMjIuOCUyQzIyTDIuOSUyQzIuMUw1JTJDMEwyNyUyQzIyTDI3JTJDMjJ6JyUyMGZpbGwlM0QnJTIzMDAwMDAwJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cbi5zd2lwZXItYnV0dG9uLWxvY2sge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMzAwbXMgb3BhY2l0eTtcbiAgLW8tdHJhbnNpdGlvbjogMzAwbXMgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbjogMzAwbXMgb3BhY2l0eTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB6LWluZGV4OiAxMDtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi5zd2lwZXItcGFnaW5hdGlvbi1oaWRkZW4ge1xuICBvcGFjaXR5OiAwO1xufVxuLyogQ29tbW9uIFN0eWxlcyAqL1xuLnN3aXBlci1wYWdpbmF0aW9uLWZyYWN0aW9uLFxuLnN3aXBlci1wYWdpbmF0aW9uLWN1c3RvbSxcbi5zd2lwZXItY29udGFpbmVyLWhvcml6b250YWwgPiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cyB7XG4gIGJvdHRvbTogMTBweDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKiBCdWxsZXRzICovXG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiAwO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMzMpO1xuICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgwLjMzKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjMzKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlLW1haW4ge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZS1wcmV2IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNjYpO1xuICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgwLjY2KTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjY2KTtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUtcHJldi1wcmV2IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMzMpO1xuICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgwLjMzKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjMzKTtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUtbmV4dCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjY2KTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMC42Nik7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC42Nik7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlLW5leHQtbmV4dCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjMzKTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMC4zMyk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC4zMyk7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgb3BhY2l0eTogMC4yO1xufVxuYnV0dG9uLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWNsaWNrYWJsZSAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kOiAjMDA3YWZmO1xufVxuLnN3aXBlci1jb250YWluZXItdmVydGljYWwgPiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cyB7XG4gIHJpZ2h0OiAxMHB4O1xuICB0b3A6IDUwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgLTUwJSwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAtNTAlLCAwKTtcbn1cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gIG1hcmdpbjogNnB4IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnN3aXBlci1jb250YWluZXItdmVydGljYWwgPiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMge1xuICB0b3A6IDUwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgd2lkdGg6IDhweDtcbn1cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMjAwbXMgdG9wLCAyMDBtcyAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbjogMjAwbXMgdG9wLCAyMDBtcyAtd2Via2l0LXRyYW5zZm9ybTtcbiAgLW8tdHJhbnNpdGlvbjogMjAwbXMgdHJhbnNmb3JtLCAyMDBtcyB0b3A7XG4gIHRyYW5zaXRpb246IDIwMG1zIHRyYW5zZm9ybSwgMjAwbXMgdG9wO1xuICB0cmFuc2l0aW9uOiAyMDBtcyB0cmFuc2Zvcm0sIDIwMG1zIHRvcCwgMjAwbXMgLXdlYmtpdC10cmFuc2Zvcm07XG59XG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gIG1hcmdpbjogMCA0cHg7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIHtcbiAgbGVmdDogNTAlO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAyMDBtcyBsZWZ0LCAyMDBtcyAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbjogMjAwbXMgbGVmdCwgMjAwbXMgLXdlYmtpdC10cmFuc2Zvcm07XG4gIC1vLXRyYW5zaXRpb246IDIwMG1zIHRyYW5zZm9ybSwgMjAwbXMgbGVmdDtcbiAgdHJhbnNpdGlvbjogMjAwbXMgdHJhbnNmb3JtLCAyMDBtcyBsZWZ0O1xuICB0cmFuc2l0aW9uOiAyMDBtcyB0cmFuc2Zvcm0sIDIwMG1zIGxlZnQsIDIwMG1zIC13ZWJraXQtdHJhbnNmb3JtO1xufVxuLnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbC5zd2lwZXItY29udGFpbmVyLXJ0bCA+IC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMjAwbXMgcmlnaHQsIDIwMG1zIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uOiAyMDBtcyByaWdodCwgMjAwbXMgLXdlYmtpdC10cmFuc2Zvcm07XG4gIC1vLXRyYW5zaXRpb246IDIwMG1zIHRyYW5zZm9ybSwgMjAwbXMgcmlnaHQ7XG4gIHRyYW5zaXRpb246IDIwMG1zIHRyYW5zZm9ybSwgMjAwbXMgcmlnaHQ7XG4gIHRyYW5zaXRpb246IDIwMG1zIHRyYW5zZm9ybSwgMjAwbXMgcmlnaHQsIDIwMG1zIC13ZWJraXQtdHJhbnNmb3JtO1xufVxuLyogUHJvZ3Jlc3MgKi9cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItZmlsbCB7XG4gIGJhY2tncm91bmQ6ICMwMDdhZmY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDApO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xufVxuLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItZmlsbCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgdG9wO1xuICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgdG9wO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCB0b3A7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsID4gLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNHB4O1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG59XG4uc3dpcGVyLWNvbnRhaW5lci12ZXJ0aWNhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciB7XG4gIHdpZHRoOiA0cHg7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLXdoaXRlIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi13aGl0ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIuc3dpcGVyLXBhZ2luYXRpb24td2hpdGUgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLWZpbGwge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWJsYWNrIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi1ibGFjayB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIuc3dpcGVyLXBhZ2luYXRpb24tYmxhY2sgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLWZpbGwge1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWxvY2sge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogU2Nyb2xsYmFyICovXG4uc3dpcGVyLXNjcm9sbGJhciB7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLW1zLXRvdWNoLWFjdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbCA+IC5zd2lwZXItc2Nyb2xsYmFyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxJTtcbiAgYm90dG9tOiAzcHg7XG4gIHotaW5kZXg6IDUwO1xuICBoZWlnaHQ6IDVweDtcbiAgd2lkdGg6IDk4JTtcbn1cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1zY3JvbGxiYXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAzcHg7XG4gIHRvcDogMSU7XG4gIHotaW5kZXg6IDUwO1xuICB3aWR0aDogNXB4O1xuICBoZWlnaHQ6IDk4JTtcbn1cbi5zd2lwZXItc2Nyb2xsYmFyLWRyYWcge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xufVxuLnN3aXBlci1zY3JvbGxiYXItY3Vyc29yLWRyYWcge1xuICBjdXJzb3I6IG1vdmU7XG59XG4uc3dpcGVyLXNjcm9sbGJhci1sb2NrIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5zd2lwZXItem9vbS1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5zd2lwZXItem9vbS1jb250YWluZXIgPiBpbWcsXG4uc3dpcGVyLXpvb20tY29udGFpbmVyID4gc3ZnLFxuLnN3aXBlci16b29tLWNvbnRhaW5lciA+IGNhbnZhcyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgLW8tb2JqZWN0LWZpdDogY29udGFpbjtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbi5zd2lwZXItc2xpZGUtem9vbWVkIHtcbiAgY3Vyc29yOiBtb3ZlO1xufVxuLyogUHJlbG9hZGVyICovXG4uc3dpcGVyLWxhenktcHJlbG9hZGVyIHtcbiAgd2lkdGg6IDQycHg7XG4gIGhlaWdodDogNDJweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTIxcHg7XG4gIG1hcmdpbi10b3A6IC0yMXB4O1xuICB6LWluZGV4OiAxMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XG4gIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJTtcbiAgLXdlYmtpdC1hbmltYXRpb246IHN3aXBlci1wcmVsb2FkZXItc3BpbiAxcyBzdGVwcygxMiwgZW5kKSBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uOiBzd2lwZXItcHJlbG9hZGVyLXNwaW4gMXMgc3RlcHMoMTIsIGVuZCkgaW5maW5pdGU7XG59XG4uc3dpcGVyLWxhenktcHJlbG9hZGVyOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICcnO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMTIwJTIwMTIwJyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB4bWxucyUzQXhsaW5rJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJyUzRSUzQ2RlZnMlM0UlM0NsaW5lJTIwaWQlM0QnbCclMjB4MSUzRCc2MCclMjB4MiUzRCc2MCclMjB5MSUzRCc3JyUyMHkyJTNEJzI3JyUyMHN0cm9rZSUzRCclMjM2YzZjNmMnJTIwc3Ryb2tlLXdpZHRoJTNEJzExJyUyMHN0cm9rZS1saW5lY2FwJTNEJ3JvdW5kJyUyRiUzRSUzQyUyRmRlZnMlM0UlM0NnJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoNjAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDkwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgxMjAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDE1MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjM3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMTgwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNDYnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgyMTAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy41NiclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDI0MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjY2JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMjcwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNzUnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMDAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy44NSclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDMzMCUyMDYwJTJDNjApJyUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0VcIik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJTtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuLnN3aXBlci1sYXp5LXByZWxvYWRlci13aGl0ZTphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHZpZXdCb3glM0QnMCUyMDAlMjAxMjAlMjAxMjAnJTIweG1sbnMlM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJyUyMHhtbG5zJTNBeGxpbmslM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmsnJTNFJTNDZGVmcyUzRSUzQ2xpbmUlMjBpZCUzRCdsJyUyMHgxJTNEJzYwJyUyMHgyJTNEJzYwJyUyMHkxJTNEJzcnJTIweTIlM0QnMjcnJTIwc3Ryb2tlJTNEJyUyM2ZmZiclMjBzdHJva2Utd2lkdGglM0QnMTEnJTIwc3Ryb2tlLWxpbmVjYXAlM0Qncm91bmQnJTJGJTNFJTNDJTJGZGVmcyUzRSUzQ2clM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDMwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSg2MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoOTAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDEyMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMTUwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMzcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgxODAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy40NiclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDIxMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjU2JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMjQwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNjYnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgyNzAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy43NSclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDMwMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjg1JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMzMwJTIwNjAlMkM2MCknJTJGJTNFJTNDJTJGZyUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cbkAtd2Via2l0LWtleWZyYW1lcyBzd2lwZXItcHJlbG9hZGVyLXNwaW4ge1xuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyBzd2lwZXItcHJlbG9hZGVyLXNwaW4ge1xuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLyogYTExeSAqL1xuLnN3aXBlci1jb250YWluZXIgLnN3aXBlci1ub3RpZmljYXRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IC0xMDAwO1xufVxuLnN3aXBlci1jb250YWluZXItZmFkZS5zd2lwZXItY29udGFpbmVyLWZyZWUtbW9kZSAuc3dpcGVyLXNsaWRlIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIC1vLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xufVxuLnN3aXBlci1jb250YWluZXItZmFkZSAuc3dpcGVyLXNsaWRlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgLW8tdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbn1cbi5zd2lwZXItY29udGFpbmVyLWZhZGUgLnN3aXBlci1zbGlkZSAuc3dpcGVyLXNsaWRlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1mYWRlIC5zd2lwZXItc2xpZGUtYWN0aXZlLFxuLnN3aXBlci1jb250YWluZXItZmFkZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnN3aXBlci1jb250YWluZXItY3ViZSB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIHotaW5kZXg6IDE7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZSAuc3dpcGVyLXNsaWRlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItc2xpZGUge1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcbiAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xufVxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSxcbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1hY3RpdmUgLnN3aXBlci1zbGlkZS1hY3RpdmUge1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1hY3RpdmUsXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtbmV4dCxcbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1wcmV2LFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLW5leHQgKyAuc3dpcGVyLXNsaWRlIHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCxcbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCB7XG4gIHotaW5kZXg6IDA7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItY3ViZS1zaGFkb3cge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBvcGFjaXR5OiAwLjY7XG4gIC13ZWJraXQtZmlsdGVyOiBibHVyKDUwcHgpO1xuICBmaWx0ZXI6IGJsdXIoNTBweCk7XG4gIHotaW5kZXg6IDA7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogMTtcbn1cbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZSAuc3dpcGVyLXNsaWRlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUtYWN0aXZlLFxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlLWFjdGl2ZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3AsXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSxcbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCxcbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQge1xuICB6LWluZGV4OiAwO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnN3aXBlci1jb250YWluZXItY292ZXJmbG93IC5zd2lwZXItd3JhcHBlciB7XG4gIC8qIFdpbmRvd3MgOCBJRSAxMCBmaXggKi9cbiAgLW1zLXBlcnNwZWN0aXZlOiAxMjAwcHg7XG59XG4iLCJAa2V5ZnJhbWVzIGhlYXJ0YmVhdCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKCAuNzUpO1xuICB9XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSggMSk7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKCAuNzUpO1xuICB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSggMSk7XG4gIH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKCAuNzUpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgc2NhbGUoIC43NSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBoZWFydGJlYXROb1JvdGF0ZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKCAuNzUpO1xuICB9XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSggMSk7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKCAuNzUpO1xuICB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSggMSk7XG4gIH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKCAuNzUpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoIC43NSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzd2F5IHtcbiAwJSxcbiAxMDAlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01cHgpO1xuIH1cbiA1MCUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gfVxufVxuXG5Aa2V5ZnJhbWVzIGJhbGxvb25zIHtcbiAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwMHB4KTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMDAlKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgYmFsbG9vbnMxIHtcbiAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwMHB4KTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJhbGxvb25zMiB7XG4gIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMDBweCk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBiYWxsb29uczMge1xuICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAwcHgpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgYW5pbWF0ZUNsb3VkIHtcbiAgICAwJSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTAwMHB4O1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwMCU7XG4gICAgfVxufSIsIjpyb290e1xuXHQtLWdyaWQtZ2FwOiBjbGFtcCgycmVtLCBjYWxjKDEuNTM4NXJlbSArIDEuMjgyMXZ3KSwgNHJlbSk7XG5cdC0tc3RhbmRhcmQtZ2FwOiBjbGFtcCgxcmVtLCBjYWxjKDAuNzY5MnJlbSArIDAuNjQxMHZ3KSwgMnJlbSk7XG5cdC0tZG91YmxlLWdhcDogY2xhbXAoMnJlbSwgY2FsYygxLjUzODVyZW0gKyAxLjI4MjF2dyksIDRyZW0pO1xuXHQtLXdpZGUtd2lkdGg6IDE5MnJlbTtcblx0LS1tYXgtd2lkdGg6IDE2MHJlbTtcblx0LS1yZWR1Y2VkLXdpZHRoOiAxNDRyZW07XG5cdC0tbWluLXdpZHRoOiAzNnJlbTtcblx0LS1kZWZhdWx0LXdpZHRoOiA5MHZ3O1xuXHQtLXNwYWNlci1oZWlnaHQ6IGNhbGMobWF4KDEwdmgsIDI1cmVtKSk7XG5cdC0taGVhZGVyLWhlaWdodDogNHJlbTtcbn0iLCJAZnVuY3Rpb24gcmVtKCRweHZhbCkge1xuICAgIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgICB9XG4gICAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2VGb250U2l6ZSkgKiAxcmVtO1xufVxuXG5AZnVuY3Rpb24gY29sb3IoJGNvbG9yKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRjb2xvcnMsJGNvbG9yKTtcbn07XG5cbkBtaXhpbiBicCgkbSkge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWFwLWdldCgkbXEsJG0pKSB7XG4gICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBob3ZlcigpIHtcbiAgICAubm8tdG91Y2ggJiB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgQGNvbnRlbnRcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qIGh0dHA6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jc3MvcmVzZXQvXG4gICB2Mi4wIHwgMjAxMTAxMjZcbiAgIExpY2Vuc2U6IG5vbmUgKHB1YmxpYyBkb21haW4pXG4qL1xuXG5odG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsXG5hLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsXG5kZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXG5zbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLFxuYiwgdSwgaSwgY2VudGVyLFxuZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcbmZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLFxudGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsXG5hcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCxcbmZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCxcbm1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LFxudGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC1zaXplOiAxMDAlO1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuLyogSFRNTDUgZGlzcGxheS1yb2xlIHJlc2V0IGZvciBvbGRlciBicm93c2VycyAqL1xuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSxcbmZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgc2VjdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5ib2R5IHtcbiAgICBsaW5lLWhlaWdodDogMTtcbn1cbm9sLCB1bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbmJsb2NrcXVvdGUsIHEge1xuICAgIHF1b3Rlczogbm9uZTtcbn1cbmJsb2NrcXVvdGU6YmVmb3JlLCBibG9ja3F1b3RlOmFmdGVyLFxucTpiZWZvcmUsIHE6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGNvbnRlbnQ6IG5vbmU7XG59XG50YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbn1cblxuKiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5hIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cbiIsIi8vIEZvbnRzXG4kYmFzZUZvbnRTaXplOiAxMDtcblxuLy8gTXFcbiRtcTogKFxuICAgIHBoYWJsZXQgOiA0MzBweCxcbiAgICB0YWJsZXQgIDogNjAxcHgsXG4gICAgZGVza3RvcCA6IDk5MnB4LFxuICAgIGxhcmdlICAgOiAxNDQwcHgsXG4gICAgd2lkZSAgICA6IDE5MjBweFxuKTtcblxuLy8gQ29sb3JzXG4kY29sb3JzOiAoXG4gICAgd2hpdGU6ICAjZmZmLFxuICAgIGJsYWNrOiAgIzBjMGMwYyxcbiAgICBibHVlOiAjNmFiMWUzLFxuICAgIGJsdWUyOiAjNGU4NGFhLFxuICAgIGxpZ2h0Ymx1ZTogI2JiZGJmMixcbiAgICBkYXJrYmx1ZTogIzI4MmY2NyxcbiAgICBncmV5OiAjNDk0OTQ5LFxuICAgIGxpZ2h0Z3JleTogI2YyZjJmMixcbik7XG5cbi8vIEVhc2VcbiRlYXNlOiBjdWJpYy1iZXppZXIoLjE2NSwuODQsLjQ0LDEpO1xuXG5AZWFjaCAkY29sb3JOYW1lLCRjb2xvciBpbiAkY29sb3JzIHtcbiAgICAuLWMtI3skY29sb3JOYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgfVxuICAgIC4tYmctI3skY29sb3JOYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuLWJvcmRlci0jeyRjb2xvck5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLi1mLSN7JGNvbG9yTmFtZX0ge1xuICAgICAgICBmaWxsOiAkY29sb3I7XG4gICAgICAgICYubS1pY29uc2V0IHN2Zywgc3ZnIHtmaWxsOiAkY29sb3IgIWltcG9ydGFudDt9XG4gICAgfVxufVxuXG4iLCJwaWN0dXJlLCBwaWN0dXJlIGltZ3tcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuc3Ryb25nLCBiLCAudC1ib2xkIHtcbiAgICBmb250LXdlaWdodDpib2xkO1xufVxuXG5pLCBlbSwgLnQtaXRhbGlje1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuc21hbGx7XG4gICAgZm9udC1zaXplOiAwLjVlbTtcbiAgICBsaW5lLWhlaWdodDogMWVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogcmVtKDIwKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuc3Vwe1xuICAgIHZlcnRpY2FsLWFsaWduOiBzdXBlcjtcbiAgICBmb250LXNpemU6IHNtYWxsZXI7XG59XG5cbnN1YntcbiAgICB2ZXJ0aWNhbC1hbGlnbjogc3ViO1xuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcbn1cblxucCArIHB7XG4gIG1hcmdpbi10b3A6IHJlbSgxMCk7XG59XG5cbi5yLTE4MHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuLnctMTAwdnd7XG4gIHdpZHRoOiAxMDB2dztcbn1cblxuLmgtMTAwdmh7XG4gIGhlaWdodDogMTAwdmg7XG59XG5cbi5oLTI1dmh7XG4gIGhlaWdodDogMjV2aDtcbn1cblxuLm1hci14e1xuICBtYXJnaW4tbGVmdDogdmFyKC0tc3RhbmRhcmQtZ2FwKTtcbiAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zdGFuZGFyZC1nYXApO1xufVxuXG4ubWFyLXgtLTJ7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1kb3VibGUtZ2FwKTtcbiAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1kb3VibGUtZ2FwKTtcbn1cblxuLm1hci15e1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zdGFuZGFyZC1nYXApO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zdGFuZGFyZC1nYXApO1xufVxuXG4ubWFyLXktLTJ7XG4gIG1hcmdpbi10b3A6IHZhcigtLWRvdWJsZS1nYXApO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1kb3VibGUtZ2FwKTtcbn1cblxuLm1hci15LS0we1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ubWFyLWJ7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXN0YW5kYXJkLWdhcCk7XG59XG5cbi5tYXItYi0tMntcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZG91YmxlLWdhcCk7XG59XG5cbi5tYXItYi0tMHtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG4ubWFyLXR7XG4gIG1hcmdpbi10b3A6IHZhcigtLXN0YW5kYXJkLWdhcCk7XG59XG5cbi5tYXItdC0tMntcbiAgbWFyZ2luLXRvcDogdmFyKC0tZG91YmxlLWdhcCk7XG59XG5cbi5tYXItdC0tMHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLnBhZC14e1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLXN0YW5kYXJkLWdhcCk7XG4gIHBhZGRpbmctcmlnaHQ6IHZhcigtLXN0YW5kYXJkLWdhcCk7XG59XG5cbi5wYWQteC0tMntcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1kb3VibGUtZ2FwKTtcbiAgcGFkZGluZy1yaWdodDogdmFyKC0tZG91YmxlLWdhcCk7XG59XG5cbi5wYWQteXtcbiAgcGFkZGluZy10b3A6IHZhcigtLXN0YW5kYXJkLWdhcCk7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zdGFuZGFyZC1nYXApO1xufVxuXG4ucGFkLXktLTJ7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1kb3VibGUtZ2FwKTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLWRvdWJsZS1nYXApO1xufVxuXG4ucGFkLWJ7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zdGFuZGFyZC1nYXApO1xufVxuXG4ucGFkLWItLTJ7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1kb3VibGUtZ2FwKTtcbn1cblxuLnBhZC10e1xuICBwYWRkaW5nLXRvcDogdmFyKC0tc3RhbmRhcmQtZ2FwKTtcbn1cblxuLnBhZC10LS0ye1xuICBwYWRkaW5nLXRvcDogdmFyKC0tZG91YmxlLWdhcCk7XG59XG5cbi53LTEwMHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXg6IDAgMCAxMDAlO1xufVxuXG4uaC1oaWRkZW57XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmgtZGVza3RvcHtcbiAgQGluY2x1ZGUgYnAoZGVza3RvcCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uaC1tb2JpbGV7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIEBpbmNsdWRlIGJwKGRlc2t0b3ApIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4uLS1pbnZpc2libGV7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLmQtZmxleHtcbiAgZGlzcGxheTogZmxleDtcbiAgPiAubS1hc2lkZXtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWRvdWJsZS1nYXApO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWRvdWJsZS1nYXApO1xuICAgIHdpZHRoOiBjYWxjKG1heCgyNSUsIDMzMHB4KSk7XG4gICAgJiArICp7XG4gICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWRvdWJsZS1nYXApO1xuICAgICAgcGFkZGluZy1yaWdodDogdmFyKC0tZG91YmxlLWdhcCk7XG4gICAgICB3aWR0aDogY2FsYyhtYXgoNzUlLCAzMzBweCkpO1xuICAgIH1cbiAgfVxufVxuXG4uZC1pbmxpbmUtYmxvY2t7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmQtYmxvY2t7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZC1mbGV4LS1jb2x1bW57XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICZfX21vYmlsZXtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIEBpbmNsdWRlIGJwKGRlc2t0b3ApIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuICB9XG59XG5cbi5mZy0xe1xuICBmbGV4LWdyb3c6IDE7XG59XG5cbi5mdy13cmFwe1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi56aS0ze1xuICB6LWluZGV4OiAzO1xufVxuXG4uZC1ncmlke1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IHZhcigtLWdyaWQtZ2FwKTtcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zdGFuZGFyZC1nYXApO1xuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zdGFuZGFyZC1nYXApO1xuICAmLnN3aXBlci1jb250YWluZXJ7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zdGFuZGFyZC1nYXApO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLXN0YW5kYXJkLWdhcCk7XG4gIH1cbiAgLypAaW5jbHVkZSBicChkZXNrdG9wKSB7XG4gICAgcGFkZGluZzogMDtcbiAgfSovXG59XG5cbi5nLXRlbXBsYXRlLXd7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICBAZm9yICRpIGZyb20gMSB0byA3IHtcbiAgICAgICYtLSN7JGl9IHtcblxuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KCN7JGl9LCAxZnIpO1xuICAgICAgfVxuICB9XG59XG5cbi5nLXRlbXBsYXRlLWh7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuICBAaW5jbHVkZSBicChkZXNrdG9wKSB7XG4gICAgQGZvciAkaSBmcm9tIDEgdG8gNyB7XG4gICAgICAgICYtLSN7JGl9IHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KCN7JGl9LCAxZnIpO1xuICAgICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5nLXNwYW4td3tcbiAgJi0tYWxse1xuICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICAgIG1pbi13aWR0aDogY2FsYygxMDAlKTtcbiAgfVxuICBcbiAgQGZvciAkaSBmcm9tIDEgdG8gOSB7XG4gICAgICAmLS0jeyRpfSB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gI3skaX07XG4gICAgICAgICAgbWluLXdpZHRoOiBjYWxjKDEwMCUgLyAjeyRpfSApXG4gICAgICB9XG4gIH1cbn1cblxuLmctc3Bhbi1oe1xuICAmLS1hbGx7XG4gICAgZ3JpZC1yb3c6IDEvLTE7XG4gIH1cbiAgXG4gIEBmb3IgJGkgZnJvbSAxIHRvIDkge1xuICAgICAgJi0tI3skaX0ge1xuICAgICAgICAgIGdyaWQtcm93OiBzcGFuICN7JGl9O1xuICAgICAgfVxuICB9XG59XG5cbi5tLWdhbGxlcnl7XG4gID4gcGljdHVyZSB7XG4gICAgbWFyZ2luOiAwIHJlbSgxNSk7XG4gICAgLi0tbGl0dGUtZ2FsbGVyeSAme1xuICAgICAgbWFyZ2luOiAwIHJlbSgzNSk7XG4gICAgfVxuICB9XG4gIEBmb3IgJGkgZnJvbSAxIHRvIDEwIHtcbiAgICAuLS1saXR0ZS1nYWxsZXJ5ICYtLSN7JGl9IHBpY3R1cmV7XG4gICAgICAtLWN1cnJlbnRXaWR0aCA6IGNhbGMoMTAwJS8oI3skaX0qNSkpO1xuICAgICAgd2lkdGg6IGNhbGMobWluKHZhcigtLWN1cnJlbnRXaWR0aCksIDZyZW0pKTtcbiAgICB9XG4gIH1cbiAgQGZvciAkaSBmcm9tIDEgdG8gMTAge1xuICAgICYtLSN7JGl9IHBpY3R1cmV7XG4gICAgICAgIC0tY3VycmVudFdpZHRoIDogY2FsYygxMDAlLygjeyRpfSkpO1xuICAgICAgICB3aWR0aDogdmFyKC0tY3VycmVudFdpZHRoKTtcbiAgICB9XG4gIH1cbn1cblxuLnAtcmVsYXRpdmV7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnAtYWJzb2x1dGV7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLnAtYm90dG9te1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTowO1xuICBsZWZ0OjA7XG4gIHdpZHRoOjEwMCU7XG59XG5cbi5wLXRvcHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6MDtcbiAgbGVmdDowO1xuICB3aWR0aDoxMDAlO1xufVxuXG4uLS1tbC1hdXRve1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuLi0tbXItYXV0b3tcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG5cbi4tLWpjLXN0YXJ0e1xuICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG59XG5cbi4tLWpjLWVuZHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGVuZDtcbn1cblxuLi0tamMtY2VudGVye1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uLS1hYy1zdGFydHtcbiAgICBhbGlnbi1jb250ZW50OiBzdGFydDtcbn1cblxuLi0tYWMtZW5ke1xuICAgIGFsaWduLWNvbnRlbnQ6IGVuZDtcbn1cblxuLi0tYWMtY2VudGVye1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLi0tYWktc3RhcnR7XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xufVxuXG4uLS1haS1lbmR7XG4gICAgYWxpZ24taXRlbXM6IGVuZDtcbn1cblxuLi0tYWktY2VudGVye1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi4tLWFzLXN0YXJ0e1xuICAgIGFsaWduLXNlbGY6IHN0YXJ0O1xufVxuXG4uLS1hcy1lbmR7XG4gICAgYWxpZ24tc2VsZjogZW5kO1xufVxuXG4uLS1hcy1jZW50ZXJ7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuXG4ubm8tanMgaW1nLmxhenlsb2FkIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmxhenlsb2FkLFxuLmxhenlsb2FkaW5nIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcztcbn1cblxuLmZhZGUtYm94IGltZy5sYXp5bG9hZGVkIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLm8taGlkZGVue1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uby1oaWRkZW4teHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuXG4uby1oaWRkZW4teXtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xufVxuLyogaHR0cHM6Ly93d3cuemFjaGxlYXQuY29tL3dlYi9mbHVpZC1pbWFnZXMvICovXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5pbWdbd2lkdGhdIHtcbiAgd2lkdGg6IGF1dG87IC8qIERlZmVyIHRvIG1heC13aWR0aCAqL1xufVxuaW1nW3dpZHRoXVtoZWlnaHRdIHtcbiAgaGVpZ2h0OiBhdXRvOyAvKiBQcmVzZXJ2ZSBhc3BlY3QgcmF0aW8gKi9cbn1cblxuLyogTGV0IFNWRyBzY2FsZSB3aXRob3V0IGJvdW5kYXJpZXMgKi9cbmltZ1tzcmMkPVwiLnN2Z1wiXSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogbm9uZTtcbn1cblxuXG4uYXJyb3cge1xuICBib3JkZXI6IHNvbGlkIGNvbG9yKHdoaXRlKTtcbiAgYm9yZGVyLXdpZHRoOiAwIDNweCAzcHggMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiByZW0oMjApO1xuICBtYXJnaW46IDAgcmVtKDIwKTtcbiAgJi1yaWdodCB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgfVxuXG4gICYtbGVmdCB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbiAgfVxuXG4gICYtdXAge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MCUpIHJvdGF0ZSgtMTM1ZGVnKTtcbiAgfVxuXG4gICYtZG93biB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB9XG59XG5cbiIsIltqcy1kb20tcGFyYWxsYXhdIHtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xufVxuXG5banMtcmV2ZWFsLXRleHRdIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IGFsbCAuM3MgJGVhc2U7XG4gICAgPiBkaXYge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAuM3MgJGVhc2U7XG4gICAgICAgICRlbGVtZW50czogNTA7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAwIHRvICRlbGVtZW50cyB7XG4gICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6ICRpKi4xcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmLmlzLWxvYWRlZCB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5banMtcmV2ZWFsLXRleHQtMl0ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtOTkuOSUpO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjZzICRlYXNlO1xuICAgICYuaXMtbG9hZGVkIHtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIH1cbn1cblxuW2pzLXJldmVhbF0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjNzICRlYXNlO1xuICAgICYuaXMtbG9hZGVkIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIH1cbn1cblxuXG5banMtcmV2ZWFsLWltZ117XG4gICAgaW1ne1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMnMgZWFzZS1pbi1vdXQ7XG4gICAgICAgIG9wYWNpdHk6IDA7ICBcbiAgICB9XG4gICAgJi5pcy1sb2FkZWQge1xuICAgICAgICBpbWd7b3BhY2l0eTogMTt9XG4gICAgfVxufVxuXG5banMtcmV2ZWFsLXBpY3R1cmVde1xuICAgIGltZ3tcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDFzICRlYXNlO1xuICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCUgMCUsIDAlIDEwMCUsIDAlIDEwMCUsIDAlIDAlKTtcbiAgICB9XG4gICAgJi5pcy1sb2FkZWQge1xuICAgICAgICBpbWcge1xuICAgICAgICAgIGNsaXAtcGF0aDogcG9seWdvbigxMDAlIDAlLCAxMDAlIDEwMCUsIDAlIDEwMCUsIDAlIDAlKTsgXG4gICAgICAgIH1cbiAgICB9XG59XG5cbltqcy1yZXZlYWwtaW1nLXJpZ2h0XSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMTUwJSkpIHJvdGF0ZSg5MGRlZyk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygxNTAlKSkgcm90YXRlKDkwZGVnKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDE1MCUpKSByb3RhdGUoOTBkZWcpO1xuICAgIHRyYW5zaXRpb246IGFsbCAuNnMgJGVhc2U7XG4gICAgJi5pcy1sb2FkZWQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHJvdGF0ZSgwZGVnKTtcbiAgICB9XG59XG5cbltqcy1yZXZlYWwtaW1nLWxlZnRdIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE1MCUpIHJvdGF0ZSg5MGRlZyk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE1MCUpIHJvdGF0ZSg5MGRlZyk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE1MCUpIHJvdGF0ZSg5MGRlZyk7XG4gICAgdHJhbnNpdGlvbjogYWxsIC42cyAkZWFzZTtcbiAgICAmLmlzLWxvYWRlZCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgcm90YXRlKDBkZWcpO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgcm90YXRlKDBkZWcpO1xuICAgICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgcm90YXRlKDBkZWcpO1xuICAgIH1cbn1cblxuW2pzLWFuaW1hdGUtc2Nyb2xsLWFmdGVyXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufSIsIkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnQ29uZXJpYSBTY3JpcHQgRGVtbyc7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL0NvbmVyaWFTY3JpcHREZW1vLmVvdCcpO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy9Db25lcmlhU2NyaXB0RGVtby5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICB1cmwoJy4uL2ZvbnRzL0NvbmVyaWFTY3JpcHREZW1vLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJy4uL2ZvbnRzL0NvbmVyaWFTY3JpcHREZW1vLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgdXJsKCcuLi9mb250cy9Db25lcmlhU2NyaXB0RGVtby50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgIHVybCgnLi4vZm9udHMvQ29uZXJpYVNjcmlwdERlbW8uc3ZnI0NvbmVyaWFTY3JpcHREZW1vJykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnSG9tZXBhZ2VCYXVrYXN0ZW4tQm9vayc7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL0hvbWVwYWdlQmF1a2FzdGVuLUJvb2suZW90Jyk7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL0hvbWVwYWdlQmF1a2FzdGVuLUJvb2suZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgdXJsKCcuLi9mb250cy9Ib21lcGFnZUJhdWthc3Rlbi1Cb29rLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJy4uL2ZvbnRzL0hvbWVwYWdlQmF1a2FzdGVuLUJvb2sud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICB1cmwoJy4uL2ZvbnRzL0hvbWVwYWdlQmF1a2FzdGVuLUJvb2sudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuLmYtY29uZXJpYXtcbiAgICBmb250LWZhbWlseTogJ0NvbmVyaWEgU2NyaXB0IERlbW8nO1xufVxuXG4uZi1ob21lcGFnZXtcbiAgICBmb250LWZhbWlseTogJ0hvbWVwYWdlQmF1a2FzdGVuLUJvb2snO1xufVxuXG4uZi1ib2xke1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZi1tZWRpdW17XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnQtY2VudGVye1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnQtcmlnaHR7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi50LWp1c3RpZnl7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbn1cblxuLnQtdXBwZXJjYXNle1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi50LW5vd3JhcHtcbiAgICBAaW5jbHVkZSBicChsYXJnZSkgeyBcbiAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbn1cblxuLnQtd29yZC1zcGFjaW5ne1xuICB3b3JkLXNwYWNpbmc6OTk5OXB4O1xufVxuXG4udC10aXRsZXtcbiAgICAmLS0we1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDMuNXJlbSwgY2FsYygyLjAwMDByZW0gKyAyLjc3Nzh2dyksIDdyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogY2xhbXAoNXJlbSwgY2FsYygyLjAwMDByZW0gKyAyLjc3Nzh2dyksIDguNXJlbSk7XG4gICAgfVxuXG4gICAgJi0tMXtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgycmVtLCBjYWxjKDEuMTY2N3JlbSArIDIuMzE0OHZ3KSwgNC41cmVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGNsYW1wKDNyZW0sIGNhbGMoMi4xNjY3cmVtICsgMi4zMTQ4dncpLCA2LjVyZW0pO1xuICAgIH1cbiAgICBcbiAgICAmLS0ye1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIGNhbGMoMXJlbSArIDEuMzg4OXZ3KSwgM3JlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBjbGFtcCgyLjVyZW0sIGNhbGMoMS4zcmVtICsgMS4zODg5dncpLCAzLjVyZW0pO1xuICAgIH1cblxuICAgICYtLTN7XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS41MHJlbSwgY2FsYygwLjgzMzNyZW0gKyAxLjE1NzR2dyksIDIuNXJlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBjbGFtcCgyLjI1cmVtLCBjYWxjKDAuODMzM3JlbSArIDEuMTU3NHZ3KSwgM3JlbSk7XG4gICAgfVxuXG4gICAgJi0tNHtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjI1cmVtLCBjYWxjKDEuMTM0NnJlbSArIDAuMzIwNXZ3KSwgMS43NXJlbSk7XG4gICAgICAgIC8vbGluZS1oZWlnaHQ6IGNsYW1wKDIuMjVyZW0sIGNhbGMoMS4xMzQ2cmVtICsgMC4zMjA1dncpLCAyLjc1cmVtKTtcbiAgICB9XG59XG5cbi50LXN2Zy10aXRsZXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcih3aGl0ZSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIFxuICAgIHN2Z3tcbiAgICAgICAgbWF4LXdpZHRoOiBjbGFtcCgzLjVyZW0sIGNhbGMoMi4wMDAwcmVtICsgMi43Nzc4dncpLCA3cmVtKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgZmlsbDogY29sb3IoYmx1ZSk7XG4gICAgfVxufVxuXG5pbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgbGFiZWx7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxLjI1cmVtLCBjYWxjKDEuMTM0NnJlbSArIDAuMzIwNXZ3KSwgMS43NXJlbSk7XG4gICAgbGluZS1oZWlnaHQ6IGNsYW1wKDEuNzVyZW0sIGNhbGMoMS4xMzQ2cmVtICsgMC4zMjA1dncpLCAyLjVyZW0pO1xufVxuXG4udC10ZXh0e1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAxNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjAxNWVtO1xuICAgIFxuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS4ycmVtLCBjYWxjKDEuMDczMXJlbSArIDAuMzUyNnZ3KSwgMS43NXJlbSk7XG4gICAgbGluZS1oZWlnaHQ6IGNsYW1wKDEuNXJlbSwgY2FsYygxLjMyNjlyZW0gKyAwLjQ4MDh2dyksIDIuMjVyZW0pO1xuXG4gICAgJi0tY29udGVudHtcbiAgICAgICAgY29sb3I6IGNvbG9yKGJsYWNrKTtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjJyZW0sIGNhbGMoMS4wNzMxcmVtICsgMC4zNTI2dncpLCAxLjc1cmVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGNsYW1wKDJyZW0sIGNhbGMoMS43MTE1cmVtICsgMC44MDEzdncpLCAzLjI1cmVtKTtcbiAgICB9XG59XG5cblxuLnQtbGluZS1oZWlnaHQtMHtcbiAgICBsaW5lLWhlaWdodDogMC44NWVtO1xufVxuXG4udC1zbWFsbGVye1xuICAgIGZvbnQtc2l6ZTowLjg1ZW07XG59XG5cbi50LWJpZ2dlcntcbiAgICBmb250LXNpemU6MS4xNWVtO1xufVxuXG5cbi50LWxpbmt7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgQGluY2x1ZGUgYnAoZGVza3RvcCkge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDEwMCU7XG4gICAgICAgIHRyYW5zaXRpb246IGNsaXAtcGF0aCAwLjNzLCB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC4yLCAxLCAwLjgsIDEpO1xuICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCUgMCUsIDAlIDEwMCUsIDAgMTAwJSwgMCAwLCAxMDAlIDAsIDEwMCUgMTAwJSwgMCAxMDAlLCAwIDEwMCUsIDEwMCUgMTAwJSwgMTAwJSAwJSk7XG4gICAgfVxuXG4gICAgJjpob3ZlcjpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDJweCwgMCkgc2NhbGUzZCgxLjA4LCAzLCAxKTtcbiAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDAlLCAwJSAxMDAlLCA1MCUgMTAwJSwgNTAlIDAsIDUwJSAwLCA1MCUgMTAwJSwgNTAlIDEwMCUsIDAgMTAwJSwgMTAwJSAxMDAlLCAxMDAlIDAlKTtcbiAgICB9XG5cbiAgICBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC4yLCAxLCAwLjgsIDEpO1xuICAgIH1cblxuICAgICY6aG92ZXIgc3BhbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTJweCwgMCk7XG4gICAgfVxufVxuXG5cbi50LWxldHRlci1zcGFjaW5ne1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjg1ZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC44NWVtO1xuICAgICY6YmVmb3JlLCAmOmFmdGVyLCA+IGE6YmVmb3JlLCA+IGE6YWZ0ZXIsID4gc3BhbjpiZWZvcmUsID4gc3BhbjphZnRlciB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAwLjg1ZW0pO1xuICAgIH1cbn1cblxuLnQtbGV0dGVyLXNwYWNpbmctLW1lZGl1bXtcbiAgICBsZXR0ZXItc3BhY2luZzogMC40NWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTAuNDVlbTtcbiAgICAmOmJlZm9yZSwgJjphZnRlciwgPiBhOmJlZm9yZSwgPiBhOmFmdGVyLCA+IHNwYW46YmVmb3JlLCA+IHNwYW46YWZ0ZXIge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMC40NWVtKTtcbiAgICB9XG59XG5cbi50LWxldHRlci1zcGFjaW5nLS1taW5pbWFse1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjE1ZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC4xNWVtO1xuICAgICY6YmVmb3JlLCAmOmFmdGVyLCA+IGE6YmVmb3JlLCA+IGE6YWZ0ZXIsID4gc3BhbjpiZWZvcmUsID4gc3BhbjphZnRlciB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAwLjMwZW0pO1xuICAgIH1cbn1cblxuLi0tbGluay11bmRlcmxpbmUgYXtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gICAgJjpob3ZlcntcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbn0iLCIiLCJodG1sLCBidXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IGNvbG9yKHdoaXRlKTtcbiAgICBjb2xvcjogY29sb3IoYmx1ZTIpO1xuICAgIGZvbnQtZmFtaWx5OiAnQ29uZXJpYSBTY3JpcHQgRGVtbyc7XG59XG5cbmJvZHkge1xuICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICBsaW5lLWhlaWdodDogcmVtKDIwKTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgICosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgICAgICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgICB9XG59XG5cbi5wYWdlLWlzLWxvYWRpbmcge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4ubS1zaXRlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtaW4taGVpZ2h0OjEwMHZoO1xuICAgIG1pbi13aWR0aDogMTAwdnc7XG4gICAgLyomLm92ZXJmbG93LXJlbW92ZXtcbiAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsgXG4gICAgfSovXG59XG5cbi8qKlxuICogV1JBUFBFUlxuICogU2V0cyBhIG1heCB3aWR0aCwgYWRkcyBhIGNvbnNpc3RlbnQgZ3V0dGVyIGFuZCBob3Jpem9udGFsbHlcbiAqIGNlbnRlcnMgdGhlIGNvbnRlbnRzXG4gKi9cbi5sLXdyYXBwZXIge1xuICB3aWR0aDogdmFyKC0tZGVmYXVsdC13aWR0aCk7XG4gIHdpZHRoOiBjbGFtcCh2YXIoLS1taW4td2lkdGgpLCB2YXIoLS1kZWZhdWx0LXdpZHRoKSwgdmFyKC0tbWF4LXdpZHRoKSk7XG4gICYtLXdpZGV7XG4gICAgd2lkdGg6IGNsYW1wKHZhcigtLW1pbi13aWR0aCksIHZhcigtLXdpZGUtd2lkdGgpLCAxMDB2dyk7XG4gIH1cbiAgJi0tbGl0dGxle1xuICAgIHdpZHRoOiBjbGFtcCh2YXIoLS1taW4td2lkdGgpLCBjYWxjKHZhcigtLW1pbi13aWR0aCkgKiAyKSwgY2FsYyh2YXIoLS1taW4td2lkdGgpICogMikpO1xuICB9XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4jYmFjay10by10b3B7XG4gIHotaW5kZXg6NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoYmx1ZSk7XG4gIG9wYWNpdHk6MC43O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDFzLCBvcGFjaXR5IDFzO1xuICA+IHN2Z3tcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICY6YWZ0ZXJ7XG4gICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgdG9wOmNhbGMoNTAlIC0gMXJlbSk7XG4gICAgbGVmdDpjYWxjKDUwJSAtIDFyZW0pO1xuICAgIG1hcmdpbjowIGF1dG87IFxuICAgIHdpZHRoOjA7XG4gICAgaGVpZ2h0OjA7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgYm9yZGVyLWxlZnQ6IHJlbSgxMCkgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiByZW0oMTApIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IHJlbSgyMCkgc29saWQgY29sb3Iod2hpdGUpO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxcztcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHdoaXRlKTtcbiAgICAmOmFmdGVye1xuICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDIwKSBzb2xpZCBjb2xvcihibHVlKTtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgYnAoZGVza3RvcCkge1xuICAjY3Vyc29yIHtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogcmVtKDEyKTtcbiAgICAgIGhlaWdodDogcmVtKDEyKTtcbiAgICAgIG1hcmdpbjogcmVtKC01KSAwcHggMHB4IHJlbSgtNSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihibHVlKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBib3gtc2hhZG93OiAwIDAgcmVtKDIpIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4gICAgICB6LWluZGV4OjEwMDA7XG4gIH1cbn1cblxuLmhlYXJ0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3Iod2hpdGUpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMzBweDtcbiAgbWFyZ2luOiAwIDEwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICB3aWR0aDogMzBweDtcbiAgYW5pbWF0aW9uOiBoZWFydGJlYXQgMnMgbGluZWFyIGluZmluaXRlO1xufVxuXG4uaGVhcnQ6YmVmb3JlLFxuLmhlYXJ0OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3Iod2hpdGUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGhlaWdodDogMzBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMzBweDtcbn1cblxuLmhlYXJ0OmJlZm9yZSB7XG4gIHRvcDogLTE1cHg7XG4gIGxlZnQ6IDA7XG59XG5cbi5oZWFydDphZnRlciB7XG4gIGxlZnQ6IDE1cHg7XG4gIHRvcDogMDtcbn1cblxuc2VjdGlvbiArIHNlY3Rpb257XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlci1oZWlnaHQpO1xuICBtYXgtd2lkdGg6IDEwMHZ3O1xufSIsIi50aW5nbGUtbW9kYWwge1xuICAgIHRyYW5zaXRpb246IGFsbCAuN3MgZWFzZTtcbiAgICAmX19jbG9zZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBAaW5jbHVkZSBicChkZXNrdG9wKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnRpbmdsZS1tb2RhbCB7XG4gICAgaW1ne1xuICAgICAgICBtYXgtaGVpZ2h0Ojkwdmg7XG4gICAgfVxuICAgICYtYm94e1xuICAgICAgICBAaW5jbHVkZSBicChkZXNrdG9wKSB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oMjApO1xuICAgICAgICAgICAgb3ZlcmZsb3c6aGlkZGVuO1xuICAgICAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgICAgIC50aW5nbGUtbW9kYWxfX2ltYWdlICZ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA3NSU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiBwZXJjZW50YWdlKDMxNS81NjApO1xuICAgICAgICAgICAgLnRpbmdsZS1tb2RhbF9faW1hZ2UgJntcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaWZyYW1lIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICZfX2Zvb3RlcntcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBAaW5jbHVkZSBicChkZXNrdG9wKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBidXR0b257XG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvcih3aGl0ZSk7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3MgZWFzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBob3ZlciAge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fY2xvc2VJY29uIHtcbiAgICAgICAgLnRpbmdsZS1tb2RhbF9faW1hZ2UgJntcbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKGRlc2t0b3ApIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBzdmcge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmNvb2tpZXMtc2V0ICNjb29raWUtbm90aWNlLCAuY29va2llcy1ub3Qtc2V0ICNjb29raWUtbm90aWNle1xuICAgIGZvbnQtZmFtaWx5OiAnQm9kb25pJztcbiAgICBvcGFjaXR5OiAwLjg1O1xuICAgIEBpbmNsdWRlIGJwKGRlc2t0b3ApIHtcbiAgICAgICAgbWF4LXdpZHRoOjI1JTtcbiAgICAgICAgbWluLXdpZHRoOiAyNSU7XG4gICAgICAgIGJvdHRvbTpyZW0oMjApO1xuICAgICAgICBsZWZ0OnJlbSgyMCk7XG4gICAgfVxufSIsIi5tLWxvZ28sIC5tLXByZWxvYWRlcl9fbG9nbywgLm0tdHJhbnNpdGlvbl9fbG9nb3tcbiAgICBzdmd7XG5cdFx0LnN0NXtmaWxsOiBjb2xvcih5ZWxsb3cpOyB9XG5cdFx0LnN0MTB7ZmlsbDogY29sb3IoYmx1ZSk7IH1cbiAgICB9XHRcbn0iLCIubS1wcmVsb2FkZXIge1xuICAgIC0tZGl2aWRlcjogNztcbiAgICAtLWdhcC1iYWxvb246IDE1cHg7XG4gICAgQGluY2x1ZGUgYnAoZGVza3RvcCkgeyBcbiAgICAgICAgLS1kaXZpZGVyOiAxNTtcbiAgICAgICAgLS1nYXAtYmFsb29uOiAyMHB4O1xuICAgIH1cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogMTAwMDAyO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMHZ3O1xuICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGxpZ2h0Ymx1ZSk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAuYW5ub3VuY2V7XG4gICAgICAgIHdpZHRoOjEwMCU7XG4gICAgfVxuXG4gICAgLmJhbGxvb25ze1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6MDtcbiAgICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1JSk7XG4gICAgICAgQGluY2x1ZGUgYnAoZGVza3RvcCkge1xuICAgICAgICAgICAgdG9wOiAxMDBweDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgICAgfVxuICAgIH1cblxuICAgIC5iYWxsb29uLXdvcmR7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICYucC1hYnNvbHV0ZXtcbiAgICAgICAgICAgIGxlZnQ6IDAlO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnAoZGVza3RvcCkge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDE1JTtcbiAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJhbGxvb24ge1xuICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogY2FsYygxMDB2dyAvIHZhcigtLWRpdmlkZXIpKTtcbiAgICAgIGhlaWdodDogY2FsYygxMDB2dyAvIHZhcigtLWRpdmlkZXIpICsgKDEwMHZ3IC8gdmFyKC0tZGl2aWRlcikgLyA0KSk7XG4gICAgICBiYWNrZ3JvdW5kOmNvbG9yKGJsdWUpO1xuICAgICAgYm9yZGVyLXJhZGl1czo4MCU7XG4gICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAgIGJveC1zaGFkb3c6aW5zZXQgLTEwcHggLTEwcHggMCByZ2JhKDAsMCwwLDAuMDcpO1xuICAgICAgbWFyZ2luOiAxJSBjYWxjKDEwMHZ3IC8gNzUpO1xuICAgICAgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC41cyBlYXNlO1xuICAgICAgei1pbmRleDoxMDtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46Ym90dG9tIGNlbnRlcjtcbiAgICB9XG5cbiAgICAuYmFsbG9vbjpiZWZvcmUge1xuICAgICAgY29udGVudDpcIuKWslwiO1xuICAgICAgZm9udC1zaXplOjIwcHg7XG4gICAgICBjb2xvcjpoc2woMjE1LDMwJSw1MCUpO1xuICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgICAgd2lkdGg6MTAwJTtcbiAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgYm90dG9tOi0xMnB4O1xuICAgICAgei1pbmRleDotMTAwO1xuICAgIH1cblxuICAgIC5iYWxsb29uOmFmdGVyIHtcbiAgICAgICAgYW5pbWF0aW9uOiBzd2F5IDJzIGVhc2UgaW5maW5pdGU7XG4gICAgICAgIGxlZnQ6IGNhbGMoNTAlICsgMi41cHgpO1xuICAgICBkaXNwbGF5OmlubGluZS1ibG9jazsgXG4gICAgIHRvcDogY2FsYygxMDB2dyAvIHZhcigtLWRpdmlkZXIpICsgdmFyKC0tZ2FwLWJhbG9vbikpO1xuICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICBoZWlnaHQ6Y2FsYygxMDB2dyAvIHZhcigtLWRpdmlkZXIpICsgNTAlKTtcbiAgICAgIHdpZHRoOjFweDtcbiAgICAgIG1hcmdpbjowIGF1dG87XG4gICAgICBjb250ZW50OlwiXCI7XG4gICAgICBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4yKTsgXG4gICAgfVxuXG4gICAgLmJhbGxvb24gc3BhbntcbiAgICAgICAgLypmb250LXNpemU6IGNsYW1wKDIuNXJlbSwgNXJlbSwgNDBweCk7Ki9cbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBsaW5lLWhlaWdodDogY2FsYygxMDB2dyAvIHZhcigtLWRpdmlkZXIpICsgKDEwMHZ3IC8gdmFyKC0tZGl2aWRlcikgLyA0KSk7XG4gICAgICAgIGNvbG9yOiAgd2hpdGU7XG4gICAgfVxuXG4gICAgLmJhbGxvb246bnRoLWNoaWxkKDJuKXsgYmFja2dyb3VuZDpjb2xvcihkYXJrYmx1ZSk7IGFuaW1hdGlvbi1kdXJhdGlvbjo0czsgfVxuICAgIC5iYWxsb29uOm50aC1jaGlsZCgybik6YmVmb3JlIHsgY29sb3I6Y29sb3IoZGFya2JsdWUpOyAgfVxuXG4gICAgLmJhbGxvb246bnRoLWNoaWxkKDNuKXsgYmFja2dyb3VuZDpjb2xvcihibHVlKTsgYW5pbWF0aW9uLWR1cmF0aW9uOjdzOyB9XG4gICAgLmJhbGxvb246bnRoLWNoaWxkKDNuKTpiZWZvcmUgeyBjb2xvcjpjb2xvcihibHVlKTsgIH1cblxuICAgIC5iYWxsb29uOm50aC1jaGlsZCg0bil7IGJhY2tncm91bmQ6Y29sb3IoZGFya2JsdWUpOyBhbmltYXRpb24tZHVyYXRpb246OHM7IH1cbiAgICAuYmFsbG9vbjpudGgtY2hpbGQoNG4pOmJlZm9yZSB7IGNvbG9yOmNvbG9yKGRhcmtibHVlKTsgIH1cblxuICAgIC5iYWxsb29uOm50aC1jaGlsZCg1bil7IGJhY2tncm91bmQ6Y29sb3IoYmx1ZSk7IGFuaW1hdGlvbi1kdXJhdGlvbjo2czsgfVxuICAgIC5iYWxsb29uOm50aC1jaGlsZCg1bik6YmVmb3JlIHsgY29sb3I6Y29sb3IoYmx1ZSk7ICB9XG5cbiAgICAuLS1iYWxsb29uc3tcbiAgICAgICAgYW5pbWF0aW9uOmJhbGxvb25zIDhzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgIH1cbiAgICAuLS1iYWxsb29uczF7XG4gICAgICAgIC8qdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDgwJSk7Ki9cbiAgICAgICAgYW5pbWF0aW9uOmJhbGxvb25zMSA1cyBlYXNlLWluLW91dCAxO1xuICAgIH1cbiAgICAuLS1iYWxsb29uczJ7XG4gICAgICAgIC8qdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwJSk7Ki9cbiAgICAgICAgYW5pbWF0aW9uOmJhbGxvb25zMiA4cyBlYXNlLWluLW91dCAxO1xuICAgIH1cbiAgICAuLS1iYWxsb29uczN7XG4gICAgICAgIC8qdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwJSk7Ki9cbiAgICAgICAgYW5pbWF0aW9uOmJhbGxvb25zMyAxMHMgZWFzZS1pbi1vdXQgMTtcbiAgICB9XG5cbiAgICAuY2xvdWRze1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDowO1xuICAgICAgICBsZWZ0OjA7XG4gICAgfVxuXG4gICAgLyogQU5JTUFUSU9OUyAqL1xuXG4gICAgLngxIHtcbiAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRlQ2xvdWQgMjVzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjY1KTtcbiAgICB9XG5cbiAgICAueDIge1xuICAgICAgICBhbmltYXRpb246IGFuaW1hdGVDbG91ZCAxMHMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMyk7XG4gICAgfVxuXG4gICAgLngzIHtcbiAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRlQ2xvdWQgMjBzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICAgIH1cblxuICAgIC54NCB7XG4gICAgICAgIGFuaW1hdGlvbjogYW5pbWF0ZUNsb3VkIDhzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjQpO1xuICAgIH1cblxuICAgIC54NSB7XG4gICAgICAgIGFuaW1hdGlvbjogYW5pbWF0ZUNsb3VkIDE1cyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC41NSk7XG4gICAgfVxuXG4gICAgLyogT0JKRUNUUyAqL1xuXG4gICAgLmNsb3VkIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvcCwgICNmZmYgNSUsI2YxZjFmMSAxMDAlKTtcbiAgICAgICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNmZmYnLCBlbmRDb2xvcnN0cj0nI2YxZjFmMScsR3JhZGllbnRUeXBlPTAgKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICAgIGhlaWdodDogMTIwcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDM1MHB4O1xuICAgICAgICAmOmFmdGVyLCAmOmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgfVxuICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcblxuICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDtcbiAgICAgICAgICAgIGxlZnQ6IDUwcHg7XG4gICAgICAgICAgICB0b3A6IC01MHB4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG5cbiAgICAgICAgICAgIHdpZHRoOiAxODBweDtcbiAgICAgICAgICAgIGhlaWdodDogMTgwcHg7XG4gICAgICAgICAgICByaWdodDogNTBweDtcbiAgICAgICAgICAgIHRvcDogLTkwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1lbmQge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC41cyBlYXNlLWluLW91dDtcbiAgICAgICAgYW5pbWF0aW9uOiBoZWFydGJlYXROb1JvdGF0ZSA0cyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDIuNXJlbTtcbiAgICAgICAgYm90dG9tOiAyLjVyZW07XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMy41cmVtIDMuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgd2lkdGg6IDE3LjVyZW07XG4gICAgICAgIGhlaWdodDogMTJyZW07XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xuICAgICAgICAgICAgbWl4LWJsZW5kLW1vZGU6IGRpZmZlcmVuY2U7XG4gICAgICAgIH1cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvcihibHVlKTtcbiAgICAgICAgICAgIC13ZWJraXQtY2xpcC1wYXRoOiBwYXRoKFwiTTE1NC41LDg4LjUgQzEzMSwxMTMuNSA2Mi41LDExMCAzMCw4OS41IEMtMi41LDY5IC0zLjUsNDIgNC41LDI1LjUgQzEyLjUsOSAzMy41LC02IDg1LDMuNSBDMTM2LjUsMTMgMTc4LDYzLjUgMTU0LjUsODguNSBaXCIpO1xuICAgICAgICAgICAgY2xpcC1wYXRoOiBwYXRoKFwiTTE1NC41LDg4LjUgQzEzMSwxMTMuNSA2Mi41LDExMCAzMCw4OS41IEMtMi41LDY5IC0zLjUsNDIgNC41LDI1LjUgQzEyLjUsOSAzMy41LC02IDg1LDMuNSBDMTM2LjUsMTMgMTc4LDYzLjUgMTU0LjUsODguNSBaXCIpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY2xpcC1wYXRoIDAuNXMgY3ViaWMtYmV6aWVyKDAuNTg1LCAyLjUsIDAuNjQ1LCAwLjU1KSwgLXdlYmtpdC1jbGlwLXBhdGggMC41cyBjdWJpYy1iZXppZXIoMC41ODUsIDIuNSwgMC42NDUsIDAuNTUpLCBiYWNrZ3JvdW5kIDAuNXMgZWFzZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGhlaWdodDogODYlO1xuICAgICAgICAgICAgd2lkdGg6IDk3JTtcbiAgICAgICAgICAgIHRvcDogNSU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1OCUgNDIlIDU1JSA0NSUgLyA1NiUgNDUlIDU1JSA0NCU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvcihkYXJrYmx1ZSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMjBkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMC41ODUsIDIuNSwgMC42NDUsIDAuNTUpO1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGNvbG9yKGRhcmtibHVlKTtcbiAgICAgICAgICAgICAgICAtd2Via2l0LWNsaXAtcGF0aDogcGF0aChcIk0xNDMsNzcgQzExNyw5NiA3NCwxMDAuNSA0NS41LDkxLjUgQzE3LDgyLjUgLTEwLjUsNTcgNS41LDMxLjUgQzIxLjUsNiA3OSwtNS41IDEzMC41LDQgQzE4MiwxMy41IDE2OSw1OCAxNDMsNzcgWlwiKTtcbiAgICAgICAgICAgICAgICBjbGlwLXBhdGg6IHBhdGgoXCJNMTQzLDc3IEMxMTcsOTYgNzQsMTAwLjUgNDUuNSw5MS41IEMxNyw4Mi41IC0xMC41LDU3IDUuNSwzMS41IEMyMS41LDYgNzksLTUuNSAxMzAuNSw0IEMxODIsMTMuNSAxNjksNTggMTQzLDc3IFpcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsLTVweCwwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNwYW57XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLC0xMHB4LDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi5tLWNhcmR7XG5cdHotaW5kZXg6IDI7XG5cdHBhZGRpbmc6IDAuNXJlbTtcblx0YmFja2dyb3VuZC1jb2xvcjogY29sb3Iod2hpdGUpO1xuXHR0cmFuc2l0aW9uOiBhbGwgMXMgZWFzZS1pbi1vdXQ7XG5cdHRyYW5zZm9ybTogcm90YXRlKDBkZWcpIHRyYW5zbGF0ZVkoMjUlKTtcblxuXHQmLi0tZnJvbS1sZWZ0e1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAwJSk7XG5cdH1cblx0Ji4tLWZyb20tcmlnaHR7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDM1MCUpO1xuXHR9XG5cdCY6bnRoLWNoaWxkKDEpe1xuXHRcdHRvcDoyMHZoO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHQmLi0tZnJvbS1sZWZ0LmlzLWxvYWRlZCB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtMi41ZGVnKSB0cmFuc2xhdGVZKC0xMDAlKSB0cmFuc2xhdGVYKC0xNSUpO1xuXHRcdH1cblx0XHQmLi0tZnJvbS1yaWdodC5pcy1sb2FkZWR7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgyLjVkZWcpIHRyYW5zbGF0ZVkoLTEwMCUpIHRyYW5zbGF0ZVgoMjAwJSk7XG5cdFx0fVxuXHR9XG5cdCY6bnRoLWNoaWxkKDIpe1xuXHRcdHRvcDozMHZoO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHQmLi0tZnJvbS1sZWZ0LmlzLWxvYWRlZCB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgxMS41ZGVnKSB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTMwJSk7XG5cdFx0fVxuXHRcdCYuLS1mcm9tLXJpZ2h0LmlzLWxvYWRlZHtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKC0xMS41ZGVnKSB0cmFuc2xhdGVZKC0yNSUpIHRyYW5zbGF0ZVgoMjI1JSk7XG5cdFx0fVxuXHR9XG5cblx0QGluY2x1ZGUgYnAoZGVza3RvcCkgeyAgXG5cdFx0cGFkZGluZzogMXJlbTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHQmOm50aC1jaGlsZCgxKXtcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6NTB2aDtcblx0XHRcdCYuLS1mcm9tLWxlZnQuaXMtbG9hZGVkIHtcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTIuNWRlZykgdHJhbnNsYXRlWSgtMzB2aCkgdHJhbnNsYXRlWCg2LjV2dyk7XG5cdFx0XHR9XG5cdFx0XHQmLi0tZnJvbS1yaWdodC5pcy1sb2FkZWR7XG5cdFx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDIuNWRlZykgdHJhbnNsYXRlWSgtMzB2aCkgdHJhbnNsYXRlWCgwKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0ZGl2OmhvdmVyID4gJjpudGgtY2hpbGQoMSl7XG5cdFx0XHQmLi0tZnJvbS1sZWZ0LmlzLWxvYWRlZCB7XG5cdFx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDApIHRyYW5zbGF0ZVkoLTQwdmgpIHRyYW5zbGF0ZVgoNHZ3KTtcblx0XHRcdH1cblx0XHRcdCYuLS1mcm9tLXJpZ2h0LmlzLWxvYWRlZHtcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoMGRlZykgdHJhbnNsYXRlWSgtNDB2aCkgdHJhbnNsYXRlWCg0dncpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQmOm50aC1jaGlsZCgyKXtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDo1MHZoO1xuXHRcdFx0Ji4tLWZyb20tbGVmdC5pcy1sb2FkZWQge1xuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgxMS41ZGVnKSB0cmFuc2xhdGVZKC0zMHZoKSB0cmFuc2xhdGVYKDYuNXZ3KTtcblx0XHRcdH1cblx0XHRcdCYuLS1mcm9tLXJpZ2h0LmlzLWxvYWRlZHtcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTExLjVkZWcpIHRyYW5zbGF0ZVkoLTMwdmgpIHRyYW5zbGF0ZVgoMCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGRpdjpob3ZlciA+ICY6bnRoLWNoaWxkKDIpe1xuXHRcdFx0Ji4tLWZyb20tbGVmdC5pcy1sb2FkZWQge1xuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgwKSB0cmFuc2xhdGVZKDAlKSB0cmFuc2xhdGVYKDYuNXZ3KTtcblx0XHRcdH1cblx0XHRcdCYuLS1mcm9tLXJpZ2h0LmlzLWxvYWRlZHtcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoMGRlZykgdHJhbnNsYXRlWSgwJSkgdHJhbnNsYXRlWCg2LjV2dyk7XG5cdFx0XHR9XG5cdFx0fVxuLypcdFx0JjpudGgtY2hpbGQoMyl7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6NTB2aDtcblx0XHRcdCYuLS1mcm9tLWxlZnQuaXMtbG9hZGVkIHtcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTUuNWRlZykgdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKDVyZW0pO1xuXHRcdFx0fVxuXHRcdFx0Ji4tLWZyb20tcmlnaHQuaXMtbG9hZGVke1xuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg1LjVkZWcpIHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtMi41cmVtKTtcblx0XHRcdH1cblx0XHR9Ki9cblx0XHRcblx0XHRcbi8qXHRcdGRpdjpob3ZlciA+ICY6bnRoLWNoaWxkKDMpe1xuXHRcdFx0Ji4tLWZyb20tbGVmdC5pcy1sb2FkZWQge1xuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSB0cmFuc2xhdGVZKDAlKSB0cmFuc2xhdGVYKDVyZW0pO1xuXHRcdFx0fVxuXHRcdFx0Ji4tLWZyb20tcmlnaHQuaXMtbG9hZGVke1xuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSB0cmFuc2xhdGVZKDAlKSB0cmFuc2xhdGVYKC0yLjVyZW0pO1xuXHRcdFx0fVxuXHRcdH0qL1xuXHR9XG4gICAgYm94LXNoYWRvdzogMCA0cHggNnB4IHJnYmEoMCwgMCwgMCwgLjMpO1xuXHQmX19pbWFnZXtcblx0XHQtLWNhcmQtaW1hZ2U6IGNsYW1wKDc1cHgsIDEwdncsIDE1MHB4KTtcblx0XHRAaW5jbHVkZSBicChkZXNrdG9wKSB7ICBcblx0XHRcdC0tY2FyZC1pbWFnZTogY2xhbXAoMTUwcHgsIDIwdncsIDMwMHB4KTtcblx0XHR9XG5cdFx0cGFkZGluZy1ib3R0b206IHZhcigtLWNhcmQtaW1hZ2UpO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRvdmVyZmxvdzpoaWRkZW47XG5cdFx0aW1ne1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNhcmQtaW1hZ2UpO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdG9iamVjdC1maXQ6Y292ZXI7XG5cdFx0fVxuXHR9XG5cdFxuXHQmX19pY29ue1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRvdmVyZmxvdzpoaWRkZW47XG5cdFx0XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogY29sb3IoYmx1ZSk7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBhZGRpbmc6IHJlbSg1MCk7XG5cdFx0d2lkdGg6MTAwJTtcblx0XHRzdmd7XG5cdFx0XHRoZWlnaHQ6IHJlbSg1MCk7XG5cdFx0XHR3aWR0aDogcmVtKDUwKTtcblx0XHRcdGZpbGw6IGNvbG9yKHdoaXRlKTtcblx0XHR9XG5cdH1cblx0Jl9fdGl0bGUsICZfX3N1YnRpdGxlLCAmX190ZXh0LCAmX19saW5re1xuXHRcdHBhZGRpbmctdG9wOiByZW0oMTUpO1xuXHRcdHBhZGRpbmctYm90dG9tOiByZW0oMTUpO1xuXHRcdC50LXRpdGxlLS0xe1xuXHRcdFx0Zm9udC1zaXplOjFlbTtcdFxuXHRcdH1cblx0XHRAaW5jbHVkZSBicChkZXNrdG9wKSB7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogcmVtKDMwKTsgIFxuXHRcdFx0LnQtdGl0bGUtLTF7XG5cdFx0XHRcdGZvbnQtc2l6ZToyLjVlbTtcdFxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYuLS1hbHR7XG5cdFx0cGFkZGluZzogMDtcblx0XHRvdmVyZmxvdzpoaWRkZW47XG5cdFx0Ym9yZGVyLXJhZGl1czogcmVtKDUwKTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0dG9wOjA7XG5cdFx0dHJhbnNmb3JtOiBub25lO1xuXHR9XG59IiwiLm0taGVhZGVye1xuICAgIHotaW5kZXg6MTA7XG4gICAgd2lkdGg6MTAwJTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3IoYmx1ZSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAganVzdGlmeS1pdGVtczogc3BhY2U7XG4gICAgcGFkZGluZzogdmFyKC0tc3RhbmRhcmQtZ2FwKTtcbiAgICBhe1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDAgdmFyKC0tc3RhbmRhcmQtZ2FwKTtcbiAgICAgICAgLyomOmhvdmVye1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH0qL1xuICAgICAgICBwYWRkaW5nOiAwIGNhbGModmFyKC0tc3RhbmRhcmQtZ2FwKSAvIDIpO1xuICAgICAgICBAaW5jbHVkZSBicChkZXNrdG9wKSB7IFxuICAgICAgICAgICAgcGFkZGluZzogMCB2YXIoLS1zdGFuZGFyZC1nYXApO1xuICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgfVxuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogYXV0bztcbiAgICAmLS1zcGFjZXJ7XG4gICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1zdGFuZGFyZC1nYXApICogOCk7XG4gICAgICAgIEBpbmNsdWRlIGJwKGRlc2t0b3ApIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1zdGFuZGFyZC1nYXApICogMyk7XG4gICAgICAgIH1cbiAgICB9XG5cbn0iLCJAa2V5ZnJhbWVzIHRpbWVyWCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgfVxufVxuXG4ubS13aWRlLXNsaWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiBjYWxjKDMvMTIqMTAwdncpO1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDEvMTIqMTAwdncpO1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbjogYWxsIDFzIGVhc2U7XG4gICAgei1pbmRleDogMztcbiAgICBAaW5jbHVkZSBicChkZXNrdG9wKSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5zd2lwZXItc2xpZGUge1xuICAgICAgICB3aWR0aDogY2FsYygxMC8xMioxMDB2dyk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgQGluY2x1ZGUgYnAoZGVza3RvcCkge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoOC8xMioxMDB2dyk7XG4gICAgICAgIH1cbiAgICAgICAgW2pzLW1hZ25ldC1jdXJzb3JdIHtcbiAgICAgICAgICAgIHotaW5kZXg6IDk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIG9wYWNpdHk6IC40O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXMgZWFzZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHBlcmNlbnRhZ2UoNzQwLzEwMjQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnAoZGVza3RvcCkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiBwZXJjZW50YWdlKDc0MC8xMDI0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGVhc2U7XG4gICAgICAgICAgICBvcGFjaXR5OiAuNTtcbiAgICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDM2KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDM2KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDo1MCU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIC5pcy10b3VjaCAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpbWcsIHZpZGVvIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnAoZGVza3RvcCkge1xuICAgICAgICAgICAgJi5zd2lwZXItc2xpZGUtbmV4dCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgxMik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnN3aXBlci1zbGlkZS1wcmV2IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgxMik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5zd2lwZXItc2xpZGUtYWN0aXZlIHtcbiAgICAgICAgICAgIC8vcGFkZGluZzowIHJlbSgxMik7XG4gICAgICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5tLXdpZGUtc2xpZGVyX19wcm9ncmVzcyB7XG4gICAgICAgICAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogNXM7XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiB0aW1lclg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5zd2lwZXItcGFnaW5hdGlvbi1mcmFjdGlvbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY29sb3I6IGNvbG9yKGdyZXk3KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyNik7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE4KTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDg1KTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIEBpbmNsdWRlIGJwKGRlc2t0b3ApIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYygxLzEyKjEwMHZ3KTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgyNSk7XG4gICAgICAgIH1cbiAgICAgICAgLnN3aXBlci1wYWdpbmF0aW9uLWN1cnJlbnQge1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yKGdyZXk3KTtcbiAgICAgICAgfVxuICAgICAgICBkaXYge1xuICAgICAgICAgICAgbWFyZ2luOiAwIHJlbSgxMCk7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgICAgICAgICAgd2lkdGg6IHJlbSg0MCk7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGNvbG9yKGdyZXk1KTtcbiAgICAgICAgfVxuICAgICAgICAuc3dpcGVyLXBhZ2luYXRpb24tdG90YWwge1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yKGdyZXk1KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWZ1bGwge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgLnN3aXBlci1zbGlkZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiBwZXJjZW50YWdlKDkvMTYpO1xuICAgICAgICAgICAgJi5zd2lwZXItc2xpZGUtbmV4dCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnN3aXBlci1zbGlkZS1wcmV2IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBicChkZXNrdG9wKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA2MHZoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAuNTtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHJlbSgzNik7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDM2KTtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6NTAlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubS13aWRlLXNsaWRlcl9fcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wcm9ncmVzcyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGNvbG9yKGJsdWUpO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgLmlzLXRvdWNoZWQgJiB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAuNXMgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Fycm93cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiByZW0oMjI2KTtcbiAgICAgICAgaGVpZ2h0OiByZW0oODApO1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvcihkYXJrYmx1ZSk7XG4gICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgIGJvdHRvbTogcmVtKC03NSk7XG4gICAgICAgIHJpZ2h0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpO1xuICAgICAgICBAaW5jbHVkZSBicChkZXNrdG9wKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgNTAlKTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiBjYWxjKDIuMy8xMioxMDB2dyk7XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMzUpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogY29sb3Iod2hpdGUpO1xuICAgICAgICAgICAgb3BhY2l0eTogLjQ7XG4gICAgICAgIH1cbiAgICAgICAgLnN3aXBlci1idXR0b24tcHJldiwgLnN3aXBlci1idXR0b24tbmV4dCB7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAuM3MgZWFzZTtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogY29sb3Iod2hpdGUpO1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBmaWxsOiBjb2xvcih3aGl0ZSk7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogZmlsbCAuNXMgZWFzZTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgcmVtKDgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiBjb2xvcihibHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3dpcGVyLXBhZ2luYXRpb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogcmVtKDQwKTtcbiAgICAgICAgQGluY2x1ZGUgYnAoZGVza3RvcCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihkYXJrYmx1ZSk7XG4gICAgICAgICAgICBtYXJnaW46IDAgNnB4O1xuICAgICAgICAgICAgb3BhY2l0eTogLjM7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKC43KTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuNHMgZWFzZTtcbiAgICAgICAgICAgICYuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYXJyb3ctaGlkZGVuIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiBjYWxjKDIvMTIqMTAwdncpO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgLmlzLXRvdWNoICYge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgICYuLXByZXYge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmVkO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgICAmLi1uZXh0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGJsdWU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIubS1jYWxlbmRhcntcblx0c3Zne1xuXHRcdFxuXHRcdGhlaWdodDogMTAwJTtcblx0XHR3aWR0aDoxNXZ3O1xuXHR9XG5cblx0PiBkaXZ7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdG1pbi13aWR0aDogY2FsYyhtaW4oNTB2dywgNTAwcHgpKTtcblx0fVxuXG5cdCZfX2JhZGdle1xuXHRcdHN2Z3tcblx0XHRcdGZpbGw6Y29sb3Iod2hpdGUpO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0d2lkdGg6IGNhbGMobWF4KDVyZW0sIDV2dykpO1xuXG5cdFx0fVxuXHR9XG59IiwiLm0tcm93c3tcblx0LmlzLWxvYWRlZHtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHR9XG5cblx0Jl9fY29udGFpbmVye1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0QGluY2x1ZGUgYnAoZGVza3RvcCkge1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHR9XG5cdH1cblx0XG5cdD4gZGl2OmZpcnN0LWNoaWxke1xuXHQgIGhlaWdodDogY2FsYygyNXZoIC0gdmFyKC0taGVhZGVyLWhlaWdodCkpO1xuXHR9XG5cblx0PiBkaXZ7XG5cdFx0LmFycm93e1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdFx0PiBkaXZ7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDA7XG5cdFx0XHRtYXgtaGVpZ2h0OiAxMDAlO1xuXHRcdFx0XG5cdFx0fVxuXHRcdFxuXHR9XG5cblx0PiBkaXZ7XG5cdFx0PiBkaXY6bnRoLWNoaWxkKDEpIHtcblx0XHRcdG9yZGVyOiAyO1xuXHRcdH1cblx0XHQ+IGRpdjpudGgtY2hpbGQoMikge1xuXHRcdFx0b3JkZXI6IDE7XG5cdFx0fVxuXHRcdD4gZGl2Om50aC1jaGlsZCgzKSB7XG5cdFx0XHRvcmRlcjogMztcblx0XHR9XG5cdH1cblxuXHRAaW5jbHVkZSBicChkZXNrdG9wKSB7XG5cdFx0PiBkaXY6bGFzdC1jaGlsZHtcblx0XHRcdGhlaWdodDogY2FsYyg3NXZoIC0gdmFyKC0tc3RhbmRhcmQtZ2FwKSk7XG5cdFx0XHR3aWR0aDogY2FsYygxMDAlIC0gKHZhcigtLXN0YW5kYXJkLWdhcCkgLyAyKSk7XG5cdFx0fVxuXG5cdFx0PiBkaXZ7XG5cdFx0XHQuYXJyb3d7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdH1cblx0XHRcdGltZ3tcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQ+IGRpdntcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogaW5pdGlhbDtcblx0XHRcdD4gZGl2e1xuXG5cdFx0XHRcdHdpZHRoOjIwJTtcblx0XHRcdFx0Ym9yZGVyOiB2YXIoLS1zdGFuZGFyZC1nYXApIHNvbGlkIGNvbG9yKHdoaXRlKTtcblx0XHRcdH1cblx0XHRcdD4gZGl2Om50aC1jaGlsZCgxKSB7XG5cdFx0XHRcdG9yZGVyOiAxO1xuXHRcdFx0XHRib3JkZXI6IHZhcigtLXN0YW5kYXJkLWdhcCkgc29saWQgY29sb3Iod2hpdGUpO1xuXHRcdFx0XHR3aWR0aDogMzAlO1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXIgLyBjb3Zlcjtcblx0XHRcdH1cblx0XHRcdD4gZGl2Om50aC1jaGlsZCgyKSB7XG5cdFx0XHRcdG9yZGVyOiAyO1xuXHRcdFx0XHRib3JkZXI6IHZhcigtLXN0YW5kYXJkLWdhcCkgc29saWQgY29sb3Iod2hpdGUpO1xuXHRcdFx0XHR3aWR0aDogNTAlO1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAgbm8tcmVwZWF0IGxlZnQgY2VudGVyIC8gY292ZXI7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji0tYWx0e1xuXHRcdFx0PiBkaXZ7XG5cdFx0XHRcdD4gZGl2Om50aC1jaGlsZCgxKXtcblx0XHRcdFx0XHRvcmRlcjogMztcblx0XHRcdFx0fVxuXHRcdFx0XHQ+IGRpdjpudGgtY2hpbGQoMikge1xuXHRcdFx0XHRcdG9yZGVyOiAyO1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6ICBuby1yZXBlYXQgcmlnaHQgY2VudGVyIC8gY292ZXI7XG5cdFx0XHRcdH1cblx0XHRcdFx0PiBkaXY6bnRoLWNoaWxkKDMpIHtcblx0XHRcdFx0XHRvcmRlcjogMTtcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuIiwiI2NoaSA+IGRpdjpudGgtY2hpbGQoMil7XG4gIG9yZGVyOjE7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDM7XG59XG5cbiNjaGkgPiBkaXY6bnRoLWNoaWxkKDEpe1xuICBvcmRlcjoyO1xuICBncmlkLWNvbHVtbjogc3BhbiAzO1xufVxuXG4jY2hpID4gZGl2Om50aC1jaGlsZCgzKXtcbiAgb3JkZXI6MztcbiAgZ3JpZC1jb2x1bW46IHNwYW4gMztcbn1cblxuI2NoaSAubS1jYXJke1xuXHR3aWR0aDogY2FsYyhtaW4oMzB2dywgNDByZW0pKTtcbn1cblxuI2RvbmFvcmF7XG5cdD4gZGl2Lmctc3Bhbi13LS0xe1xuXHRcdGdyaWQtY29sdW1uOiBzcGFuIDM7XG5cdH1cbn1cblxuQGluY2x1ZGUgYnAoZGVza3RvcCkgeyAgXG5cdCNkb25hb3Jhe1xuXHRcdD4gZGl2Lmctc3Bhbi13LS0xe1xuXHRcdFx0Z3JpZC1jb2x1bW46IHNwYW4gMTtcblx0XHR9XG5cdH1cblxuXHQjY2hpID4gZGl2Om50aC1jaGlsZCgyKXtcblx0ICBvcmRlcjoyO1xuXHQgIGdyaWQtY29sdW1uOiBpbmhlcml0O1xuXHR9XG5cblx0I2NoaSA+IGRpdjpudGgtY2hpbGQoMSl7XG5cdCAgb3JkZXI6MTtcblx0ICBncmlkLWNvbHVtbjogaW5oZXJpdDtcblx0fVxuXG5cdCNjaGkgPiBkaXY6bnRoLWNoaWxkKDMpe1xuXHQgIG9yZGVyOjM7XG5cdCAgZ3JpZC1jb2x1bW46IGluaGVyaXQ7XG5cdH1cbn0iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBb0JBQTs7Ozs7Ozs7OztHQVVHO0FBQ0gsQUFBQSxpQkFBaUIsQ0FBQztFQUNoQixNQUFNLEVBQUUsTUFBTTtFQUNkLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFFBQVEsRUFBRSxNQUFNO0VBQ2hCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLE9BQU8sRUFBRSxDQUFDO0VBQ1YsOEJBQThCO0VBQzlCLE9BQU8sRUFBRSxDQUFDLEdBQ1g7O0FBQ0QsQUFBQSw0QkFBNEIsQ0FBQyxhQUFhLENBQUM7RUFDekMsS0FBSyxFQUFFLElBQUksR0FDWjs7QUFDRCxBQUFBLDBCQUEwQixHQUFHLGVBQWUsQ0FBQztFQUMzQyxrQkFBa0IsRUFBRSxRQUFRO0VBQzVCLHFCQUFxQixFQUFFLE1BQU07RUFDN0Isc0JBQXNCLEVBQUUsTUFBTTtFQUM5QixrQkFBa0IsRUFBRSxNQUFNO0VBQzFCLGNB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 */
