:root {
  --kivvi-single-item-width: 300px;
  --kivvi-single-item-width-max: 600px;
}

:root {
  --kivvi-color-green: #43d2b5;
  --kivvi-color-blue: #2ea3f2;
  --kivvi-global-background: white;
  --kivvi-color-light: white;
}

:root {
  --space-default: 1rem;
  --space-medium: 2rem;
  --space-larger: 3rem;
  --space-largest: 4rem;
  --space-small: .5rem;
  --space-button-inline: var(--space-default);
}

:root {
  --kivvi-base-font-size: 1.25rem;
  /* CLAMP CALCULATED AS PER HERE : https://chrisburnell.com/clamp-calculator/ using 500 & 1000 as min and max widths */
  --kivvi-h1-font-size: clamp(2.5rem, 1rem + 4.8vw, 4rem);
  --kivvi-h2-font-size: clamp(2rem, 1rem + 3.2vw, 3rem);
  --kivvi-h3-font-size: clamp(1.5rem, 0.75rem + 2.4vw, 2.25rem);
  --kivvi-h4-font-size: clamp(1.25rem, 0.75rem + 1.6vw, 1.75rem);
  /*

      --kivvi-min-font-size: 1rem; // 16px
      --kivvi-max-font-size: 4rem;

      /* MAX FONT SIZES USING GOLDEN RATIO */ /*
--kivvi-font-size-l4h: min(var(--kivvi-base-font-size) * 1.1618, var(--kivvi-max-font-size));  // 29.045px
--kivvi-font-size-l3h: min(var(--kivvi-base-font-size) * 1.1618 * 1.1618 * 1.1618, var(--kivvi-max-font-size)); // 39.204px
--kivvi-font-size-l2h: min(var(--kivvi-base-font-size) * 1.1618 * 1.1618 * 1.1618 * 1.1618 * 1.1618, var(--kivvi-max-font-size)); // 52.9172
--kivvi-font-size-l1h: min(var(--kivvi-base-font-size) * 1.1618 * 1.1618 * 1.1618 * 1.1618 * 1.1618 * 1.1618 * 1.1618, var(--kivvi-max-font-size)); // 71.4265

/* MIN FONT SIZES - DEFAULT TO DIVIDE BY 2 */ /*
--kivvi-font-size-min-divider: 2;
--kivvi-font-size-l4l: max(var(--kivvi-font-size-l4h) / var(--kivvi-font-size-min-divider), var(--kivvi-min-font-size)); // 16px is min
--kivvi-font-size-l3l: max(var(--kivvi-font-size-l3h) / var(--kivvi-font-size-min-divider), var(--kivvi-min-font-size)); // 19.6022px 
--kivvi-font-size-l2l: max(var(--kivvi-font-size-l2h) / var(--kivvi-font-size-min-divider), var(--kivvi-min-font-size)); // 26.4586px
--kivvi-font-size-l1l: max(var(--kivvi-font-size-l1h) / var(--kivvi-font-size-min-divider), var(--kivvi-min-font-size)); // 35.7133px

/* CLAMP CALCULATED AS PER HERE : https://chrisburnell.com/clamp-calculator/ */ /*
--kivvi-font-size-l4c: 0.812rem + 1.003vw;
--kivvi-font-size-l3c: 0.942rem + 1.508vw;
--kivvi-font-size-l2c: 1.125rem + 2.125vw;
--kivvi-font-size-l1c: 1.717rem + 2.747vw;

--kivvi-font-size-l4: clamp(var(--kivvi-font-size-l4l), var(--kivvi-font-size-l4c), var(--kivvi-font-size-l4h));
--kivvi-font-size-l3: clamp(var(--kivvi-font-size-l3l), var(--kivvi-font-size-l3c), var(--kivvi-font-size-l3h));
--kivvi-font-size-l2: clamp(var(--kivvi-font-size-l2l), var(--kivvi-font-size-l2c), var(--kivvi-font-size-l2h));
--kivvi-font-size-l1: clamp(var(--kivvi-font-size-l1l), var(--kivvi-font-size-l1c), var(--kivvi-font-size-l1h));
*/
}

/* BASED ON https://www.joshwcomeau.com/css/custom-css-reset/ */
/*
  1. Use a more-intuitive box-sizing model.
*/
*, *::before, *::after {
  box-sizing: border-box;
}

/*
  2. Remove default margin
*/
* {
  margin: 0;
}

/*
  3. Allow percentage-based heights in the application
*/
html, body {
  height: 100%;
}

/*
  Typographic tweaks!
  4. Add accessible line-height
  5. Improve text rendering
*/
body {
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/*
  6. Improve media defaults
*/
img, picture, video, canvas, svg {
  max-width: 100%;
}

/*
  7. Remove built-in form typography styles
*/
input, button, textarea, select {
  font: inherit;
}

/*
  8. Avoid text overflows
*/
p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}

/*
  9. Create a root stacking context
*/
#root, #__next {
  isolation: isolate;
}

* {
  word-break: break-word;
}

.hidden {
  display: none;
}

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  height: 1px;
  overflow: hidden;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}

.visuallyhidden,
.visually-hidden {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.centered {
  text-align: center;
  text-wrap: balance;
}

.center-header-text :is(h1, h2, h3, h4) {
  text-align: center !important;
}

:root {
  --kivvi-base-font-family: Helvetica, sans-serif;
  --kivvi-h1-font-family: var(--kivvi-base-font-family);
  --kivvi-h2-font-family: var(--kivvi-base-font-family);
  --kivvi-h3-font-family: var(--kivvi-base-font-family);
  --kivvi-h4-font-family: var(--kivvi-base-font-family);
  --kivvi-h5-font-family: var(--kivvi-base-font-family);
  --kivvi-h6-font-family: var(--kivvi-base-font-family);
  --kivvi-base-font-color: #666;
  --kivvi-h1-font-color: var(--kivvi-base-font-color);
  --kivvi-h2-font-color: var(--kivvi-base-font-color);
  --kivvi-h3-font-color: var(--kivvi-base-font-color);
  --kivvi-h4-font-color: var(--kivvi-base-font-color);
  --kivvi-h5-font-color: var(--kivvi-base-font-color);
  --kivvi-h6-font-color: var(--kivvi-base-font-color);
  --kivvi-base-text-align: left;
  --kivvi-header-text-align: center;
  --kivvi-h1-text-align: var(--kivvi-header-text-align);
  --kivvi-h2-text-align: var(--kivvi-header-text-align);
  --kivvi-h3-text-align: var(--kivvi-header-text-align);
  --kivvi-h4-text-align: var(--kivvi-header-text-align);
  --kivvi-h5-text-align: var(--kivvi-header-text-align);
  --kivvi-h6-text-align: var(--kivvi-header-text-align);
  --kivvi-link-color: rgb(0, 0, 238);
  --kivvi-link-hover-color: var(--kivvi-link-color);
  --kivvi-link-active-color: var(--kivvi-link-color);
  --kivvi-link-visited-color: var(--kivvi-link-color);
  --kivvi-link-transition-time: 0.3s;
  --kivvi-link-transition: all var(--kivvi-link-transition-time) ease-in-out;
  --kivvi-link-decoration: none;
  --kivvi-link-hover-decoration: none;
  --kivvi-link-underline-offset: 5px;
  --kivvi-max-content-width: 1280px;
  --kivvi-full-width-margin-right: calc(-100vw / 2 + var(--kivvi-max-content-width) / 2);
  --kivvi-full-width-padding-inline: calc((-100vw / 2 + var(--kivvi-max-content-width) / 2) * -1);
  --kivvi-full-width-padding-left: calc((-100vw + var(--kivvi-max-content-width)) / 2 * -1);
  --kivvi-full-width-margin-left: calc((-100vw + var(--kivvi-max-content-width)) / 2);
}

* {
  font-family: var(--kivvi-base-font-family);
}

html {
  background: var(--kivvi-global-background);
  color: var(--kivvi-base-font-color);
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-size: var(--kivvi-base-font-size);
}

p {
  margin-block: var(--space-default);
}
p:empty {
  display: none;
}

a:not(.button) {
  color: var(--kivvi-link-color);
  transition: var(--kivvi-link-transition);
  text-decoration: var(--kivvi-link-decoration);
  text-underline-offset: var(--kivvi-link-underline-offset);
}
a:not(.button):visited {
  color: var(--kivvi-link-visited-color);
}
a:not(.button):hover {
  color: var(--kivvi-link-hover-color);
  text-decoration: var(--kivvi-link-hover-decoration);
}
a:not(.button):active {
  color: var(--kivvi-link-active-color);
}

.kivvi_section {
  background-size: cover;
  text-align: center;
  padding: var(--space-default) 0;
  margin: var(--space-larger) auto;
  position: relative;
}
.kivvi_section p {
  text-align: var(--kivvi-base-text-align);
}
.kivvi_section li {
  text-align: left;
}
@media screen and (min-width: 1280px) and (max-width: 1320px) {
  .kivvi_section {
    padding-left: 20px;
    padding-right: 20px;
  }
}
.kivvi_section.flex {
  display: flex;
  justify-content: center;
  align-items: center;
}
@media screen and (max-width: 1000px) {
  .kivvi_section {
    margin-block: var(--space-default);
  }
}

.kivvi_section_content {
  position: relative;
  max-width: var(--kivvi-max-content-width);
  margin: auto;
  width: 90%;
  display: flex;
  flex-direction: column;
  gap: var(--space-larger);
}

.page-template-default .kivvi_section {
  text-align: var(--kivvi-base-text-align);
}

.full-width {
  padding-top: 0;
  background-repeat: no-repeat;
  background-position: top right;
  position: relative;
  /* 
  ** FROM BIM
  background-size: contain;
  background-size: contain;
  */
}
@media screen and (min-width: 1280px) {
  .full-width {
    /* THIS WAS IN USE ON ORIGINAL SITE BUILD, WHEN IMAGES NEEDED TO SPAN THE FULL-WIDTH. THINGS HAVE BEEN REENGINEERED AND IT DOESN'T APPEAR NEEDED.
        LEAVING IN PLACE BECAUSE IT'S HELPFUL WITH SOME LAYOUTS

    margin-left: var(--kivvi-full-width-margin-left);

    margin-right: 0;
    padding-left: var(--kivvi-full-width-padding-left);
    padding-right: 0;

    */
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
  }
  .full-width.sub-full-width {
    max-width: none !important;
    width: calc(100vw - var(--kivvi-full-width-padding-left));
  }
}
@media screen and (max-width: 950px) {
  .full-width {
    padding-bottom: 0;
  }
  .full-width:not(.kivvi-section-background-keep-image-mobile) {
    background-image: none !important;
  }
}

.min-margin-bottom {
  margin-bottom: var(--space-default);
}

.section.min-margin-bottom {
  margin-bottom: var(--space-default);
}
.section.no-margin-bottom {
  margin-bottom: 0;
}

.extra-padding {
  padding-top: calc(var(--space-huge) * 3);
}

.no-margin-top {
  margin-top: 0;
}

.width-950 {
  max-width: 950px;
}
@media screen and (min-width: 1000px) {
  .width-950.white-section .kivvi_section_content {
    padding-left: 0;
    padding-right: 0;
  }
}

:root {
  --kivvi-dark-section-background: #000000;
  --kivvi-dark-section-text: #ffffff;
}

.kivvi-dark-section .kivvi_section_content, .kivvi-dark-section.full-width {
  background-color: var(--kivvi-dark-section-background);
  color: var(--kivvi-dark-section-text);
}

.kivvi-dark-section :is(h1, h2, h3, h4, h5, h6, p, span, li) {
  color: var(--kivvi-dark-section-text);
}

img.alignright {
  float: right;
  margin: 0 0 1em 1em;
}

img.alignleft {
  float: left;
  margin: 0 1em 1em 0;
}

img.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.alignright {
  float: right;
}

.alignleft {
  float: left;
}

.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

div[id^=attachment_] {
  max-width: 100% !important;
}

.kivvi-twoup .kivvi-object-fit-cover img {
  object-fit: cover;
}

.kivvi-twoup .kivvi-object-fit-contain img {
  object-fit: contain;
  height: auto;
}

:is(h1, h2, h3, h4, h5) {
  letter-spacing: 1.5px;
  line-height: 1.2;
  hyphens: manual;
}

h1 {
  font-size: var(--kivvi-h1-font-size);
  margin-block: var(--space-larger);
  font-family: var(--kivvi-h1-font-family);
  color: var(--kivvi-h1-font-color);
  text-align: var(--kivvi-h1-text-align);
}

h2 {
  font-size: var(--kivvi-h2-font-size);
  margin-block: var(--space-medium);
  font-family: var(--kivvi-h2-font-family);
  color: var(--kivvi-h2-font-color);
  text-align: var(--kivvi-h2-text-align);
}

h3 {
  font-size: var(--kivvi-h3-font-size);
  margin-block: var(--space-small);
  font-family: var(--kivvi-h3-font-family);
  color: var(--kivvi-h3-font-color);
  text-align: var(--kivvi-h3-text-align);
}

h4 {
  font-size: var(--kivvi-h4-font-size);
  margin-block: var(--space-small);
  font-family: var(--kivvi-h4-font-family);
  color: var(--kivvi-h4-font-color);
  text-align: var(--kivvi-h4-text-align);
}

.columns-two {
  display: flex;
}

.kivvi-columns {
  display: flex;
  gap: var(--space-medium);
  width: 100%;
  justify-content: space-between;
  flex-wrap: wrap;
}
.kivvi-columns > * {
  min-width: var(--kivvi-single-item-width);
}
.kivvi-columns.equal-width > * {
  flex: 1;
  flex-wrap: wrap;
  margin: auto;
}
.kivvi-columns.cols-1-2 {
  align-items: flex-start;
  gap: var(--space-largest);
}
.kivvi-columns.cols-1-2 > * {
  flex: 1;
  flex-wrap: wrap;
}
.kivvi-columns.cols-1-2 > *:last-of-type {
  flex: 2;
}
.kivvi-columns.cols-2-1 > * {
  flex: 1;
  flex-wrap: wrap;
}
.kivvi-columns.cols-2-1 > *:first-of-type {
  flex: 2;
}
.kivvi-columns.cols-60-40 > * {
  flex: 40;
  flex-wrap: wrap;
}
.kivvi-columns.cols-60-40 > *:first-of-type {
  flex: 60;
}

.hanging-indent {
  padding-left: 22px;
  text-indent: -22px;
}

.kivvi_sidebar {
  container-type: inline-size;
  container-name: kivvi-sidebar;
  text-align: left;
}
.kivvi_sidebar h2 {
  font-size: 38px;
  margin-block-end: 0;
}
.kivvi_sidebar a {
  text-decoration: none;
}
.kivvi_sidebar ul {
  margin-block-start: 0.5rem;
}

.kivvi-modal {
  --kivvi-modal-transition-length: 1s;
  --kivvi-modal-transition-delay: 0;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  background-color: rgba(0, 0, 0, 0.9);
  display: none;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition-property: opacity;
  transition-duration: var(--kivvi-modal-transition-length);
  transition-delay: var(--kivvi-modal-transition-delay);
}
.kivvi-modal .kivvi-modal-inner {
  width: 90%;
  min-width: var(--kivvi-single-item-width);
  margin: auto;
  background: white;
  position: relative;
  container-name: kivvi-modal-inner;
  container-type: inline-size;
}
.kivvi-modal .kivvi-modal-close {
  position: absolute;
  top: var(--space-default);
  right: var(--space-default);
  cursor: pointer;
  z-index: 10;
}
.kivvi-modal.active {
  display: flex;
}
.kivvi-modal.active.show {
  --kivvi-modal-transition-delay: 0;
  opacity: 1;
}

/* PREVIOUS CODE - MAY NOT BE IN USE BUT WOULD NEED TO RESEARCH BEFORE CONFIRMING AND REMOVING */
.modal.slidein {
  transform: translateX(150%);
  transition: transform 0.5s ease-in-out;
  background: white;
  position: fixed;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  color: black;
  z-index: 500;
  display: flex;
  line-height: 1.5;
  text-align: left;
}
.modal.slidein .modal-text {
  padding-top: 2rem;
  width: 66%;
}
.modal.slidein .modal-text h2,
.modal.slidein .modal-text h3,
.modal.slidein .modal-text p {
  width: 90%;
  max-width: var(--kivvi-single-item-width-max);
  margin: var(--space-default) auto;
}
.modal.slidein .modal-img {
  width: 34%;
}
.modal.slidein .modal-img img {
  height: 100vh;
  width: 100%;
  object-fit: cover;
  max-height: 100vh;
}
.modal.slidein h2 {
  color: var(--kivvi-color-dark-teal);
  text-transform: uppercase;
  font-size: 32px;
}
.modal.slidein h3 {
  color: var(--kivvi-color-orange);
}
.modal.slidein .blurb {
  color: var(--kivvi-color-dark-teal);
}
.modal.slidein p {
  font-size: 16px;
}
.modal.slidein.active {
  transform: translateX(0);
}
.modal.slidein .modal-close {
  position: absolute;
  right: 20px;
  top: 0;
  font-size: 50px;
  color: var(--kivvi-color-teal);
  transition: transform 0.3s;
  cursor: pointer;
}
.modal.slidein .modal-close:hover {
  transform: rotate(90deg);
}

:root {
  --animationStartTranslateY: var(--space-medium);
  --animationStartOpacity: 0;
  --animationSpeed: 0.5s;
  --animationDelay: 1s;
  --animationRotation: 35deg;
}

@keyframes fadeOpacity {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fadeOutOpacity {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes rotate {
  from {
    transform: rotateZ(360deg);
  }
  to {
    transform: rotateZ(0deg);
  }
}
.slideuptext {
  --animationStartTranslateY: 200%;
  line-height: 1.2;
  overflow: hidden;
}
.slideuptext .inner {
  display: inline-block;
  transform: translateY(var(--animationStartTranslateY));
  transition: transform var(--animationSpeed);
  opacity: var(--animationStartOpacity);
}
.slideuptext.active .inner {
  transform: translateY(0);
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .slideuptext .inner {
    transform: translateY(0);
  }
}
.slideupWord {
  white-space: nowrap;
}

.active .slideup {
  transform: translateY(0);
  transition: all 2s;
}
.active .slideup.delay-1 {
  transition-delay: 0.5s;
}
.active .slideup.delay-2 {
  transition-delay: 1s;
}
.active .slideup.delay-3 {
  transition-delay: 1.5s;
}
.active .slideup.delay-4 {
  transition-delay: 2s;
}
.active .slideup.delay-5 {
  transition-delay: 2.5s;
}
.active .slideup.delay-6 {
  transition-delay: 3s;
}
.active .slideup.delay-7 {
  transition-delay: 3.5s;
}
.active .slideup.delay-8 {
  transition-delay: 4s;
}
.active .slideup.delay-9 {
  transition-delay: 4.5s;
}

.slideup {
  transform: translateY(var(--animationStartTranslateY));
  transition: all var(--animationSpeed);
  opacity: var(--animationStartOpacity);
  transition-delay: var(--animationDelay);
}
.slideup.active {
  transform: translateY(0);
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .slideup {
    transform: translateY(0);
    transition: none;
  }
  .active .slideup {
    transition: none;
  }
}
:root {
  --loaderColorStart: rgba(35, 229, 219, 0.2);
  --loaderColorMid: rgba(35, 229, 219, 0.5);
  --loaderColorEnd: rgba(35, 229, 219, 0.7);
  --loaderSize: 1rem;
}

#page-transition.fadespinner {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  opacity: 0;
  height: 100%;
  width: 100%;
  pointer-events: none;
  z-index: 0;
  transition: all 2.5s;
}
#page-transition.fadespinner.active {
  z-index: 9999;
  background-color: black;
  opacity: 1;
  transition: all 1s;
}
#page-transition.fadespinner #page-loader {
  margin: 100px auto;
  font-size: 25px;
  width: var(--loaderSize);
  height: var(--loaderSize);
  border-radius: 50%;
  position: static;
  left: calc(50% - (var(--loaderSize/2)));
  text-indent: -9999em;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
  opacity: 0.5;
}
#page-transition.fadespinner #page-loader.entry {
  display: none;
}
#page-transition.fadespinner #page-loader .circle {
  position: absolute;
  border: 3px solid transparent;
  border-top-color: var(--kivvi-color-orange);
  border-radius: 50%;
  -webkit-animation: rotate linear infinite;
  animation: rotate linear infinite;
}
#page-transition.fadespinner #page-loader .circle.one {
  height: 50px;
  width: 50px;
  left: 50px;
  top: 50px;
  border-top-color: var(--kivvi-color-teal);
  -webkit-animation-duration: 0.85s;
  animation-duration: 0.85s;
}
#page-transition.fadespinner #page-loader .circle.two {
  height: 75px;
  width: 75px;
  top: 38px;
  left: 38px;
  -webkit-animation-duration: 0.95s;
  animation-duration: 0.95s;
}
#page-transition.fadespinner #page-loader .circle.three {
  height: 100px;
  width: 100px;
  top: 25px;
  left: 25px;
  border-top-color: var(--kivvi-color-dark-teal);
  -webkit-animation-duration: 1.05s;
  animation-duration: 1.05s;
}

@keyframes load5 {
  0%, 100% {
    box-shadow: 0em -2.6em 0em 0em #ffffff, 1.8em -1.8em 0 0em var(--loaderColorStart), 2.5em 0em 0 0em var(--loaderColorStart), 1.75em 1.75em 0 0em var(--loaderColorStart), 0em 2.5em 0 0em var(--loaderColorStart), -1.8em 1.8em 0 0em var(--loaderColorStart), -2.6em 0em 0 0em var(--loaderColorMid), -1.8em -1.8em 0 0em var(--loaderColorEnd);
  }
  12.5% {
    box-shadow: 0em -2.6em 0em 0em var(--loaderColorEnd), 1.8em -1.8em 0 0em #ffffff, 2.5em 0em 0 0em var(--loaderColorStart), 1.75em 1.75em 0 0em var(--loaderColorStart), 0em 2.5em 0 0em var(--loaderColorStart), -1.8em 1.8em 0 0em var(--loaderColorStart), -2.6em 0em 0 0em var(--loaderColorStart), -1.8em -1.8em 0 0em var(--loaderColorMid);
  }
  25% {
    box-shadow: 0em -2.6em 0em 0em var(--loaderColorMid), 1.8em -1.8em 0 0em var(--loaderColorEnd), 2.5em 0em 0 0em #ffffff, 1.75em 1.75em 0 0em var(--loaderColorStart), 0em 2.5em 0 0em var(--loaderColorStart), -1.8em 1.8em 0 0em var(--loaderColorStart), -2.6em 0em 0 0em var(--loaderColorStart), -1.8em -1.8em 0 0em var(--loaderColorStart);
  }
  37.5% {
    box-shadow: 0em -2.6em 0em 0em var(--loaderColorStart), 1.8em -1.8em 0 0em var(--loaderColorMid), 2.5em 0em 0 0em var(--loaderColorEnd), 1.75em 1.75em 0 0em #ffffff, 0em 2.5em 0 0em var(--loaderColorStart), -1.8em 1.8em 0 0em var(--loaderColorStart), -2.6em 0em 0 0em var(--loaderColorStart), -1.8em -1.8em 0 0em var(--loaderColorStart);
  }
  50% {
    box-shadow: 0em -2.6em 0em 0em var(--loaderColorStart), 1.8em -1.8em 0 0em var(--loaderColorStart), 2.5em 0em 0 0em var(--loaderColorMid), 1.75em 1.75em 0 0em var(--loaderColorEnd), 0em 2.5em 0 0em #ffffff, -1.8em 1.8em 0 0em var(--loaderColorStart), -2.6em 0em 0 0em var(--loaderColorStart), -1.8em -1.8em 0 0em var(--loaderColorStart);
  }
  62.5% {
    box-shadow: 0em -2.6em 0em 0em var(--loaderColorStart), 1.8em -1.8em 0 0em var(--loaderColorStart), 2.5em 0em 0 0em var(--loaderColorStart), 1.75em 1.75em 0 0em var(--loaderColorMid), 0em 2.5em 0 0em var(--loaderColorEnd), -1.8em 1.8em 0 0em #ffffff, -2.6em 0em 0 0em var(--loaderColorStart), -1.8em -1.8em 0 0em var(--loaderColorStart);
  }
  75% {
    box-shadow: 0em -2.6em 0em 0em var(--loaderColorStart), 1.8em -1.8em 0 0em var(--loaderColorStart), 2.5em 0em 0 0em var(--loaderColorStart), 1.75em 1.75em 0 0em var(--loaderColorStart), 0em 2.5em 0 0em var(--loaderColorMid), -1.8em 1.8em 0 0em var(--loaderColorEnd), -2.6em 0em 0 0em #ffffff, -1.8em -1.8em 0 0em var(--loaderColorStart);
  }
  87.5% {
    box-shadow: 0em -2.6em 0em 0em var(--loaderColorStart), 1.8em -1.8em 0 0em var(--loaderColorStart), 2.5em 0em 0 0em var(--loaderColorStart), 1.75em 1.75em 0 0em var(--loaderColorStart), 0em 2.5em 0 0em var(--loaderColorStart), -1.8em 1.8em 0 0em var(--loaderColorMid), -2.6em 0em 0 0em var(--loaderColorEnd), -1.8em -1.8em 0 0em #ffffff;
  }
}
.rotate {
  transition: transform 2s;
  max-width: 90%;
}
.rotate.active {
  transform: rotate(var(--animationRotation));
}

@media (prefers-reduced-motion: reduce) {
  .rotate {
    transform: rotate(var(--animationRotation));
  }
}
.fadein {
  opacity: 0;
  transition: opacity 4s, transform 1s;
  transform: translateY(100px);
}

.fadein.active {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .fadein {
    opacity: 1;
    transform: translateY(0);
  }
}
.typing {
  white-space: nowrap; /* Keeps the content on a single line */
  margin: 0 auto; /* Gives that scrolling effect as the typing happens */
  position: relative;
}
.typing span {
  line-height: 1.5;
  display: inline-block;
  transition: opacity 0.3s;
}
.typing span:not(.active):not(.activestop):not(.start) {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  left: 0;
  top: 0;
}

.typing span.active {
  opacity: 1;
  animation: scrollinout 4s forwards;
  line-height: 1.5;
}

.typing span.activestop {
  opacity: 1;
  animation: scrollin 2s forwards;
  line-height: 1.5;
}

.typing span.starting {
  opacity: 1;
  animation: scrollout 3s forwards;
  line-height: 1.5;
}

@media (prefers-reduced-motion: reduce) {
  .typing span {
    animation: none;
  }
  .typing span.active {
    animation: none;
  }
  .typing span.activestop {
    animation: none;
  }
  .typing span.starting {
    animation: none;
  }
}
@keyframes scrollin {
  0% {
    opacity: 0;
    clip-path: polygon(0 0, 0% 0%, 0% 100%, 0% 100%);
  }
  80% {
    opacity: 1;
  }
  100% {
    clip-path: polygon(0 0, 100% 0%, 100% 100%, 0% 100%);
  }
}
@keyframes scrollinout {
  0% {
    opacity: 0;
    clip-path: polygon(0 0, 0% 0%, 0% 100%, 0% 100%);
  }
  30% {
    opacity: 1;
  }
  40% {
    clip-path: polygon(0 0, 100% 0%, 100% 100%, 0% 100%);
  }
  60% {
    clip-path: polygon(0 0, 100% 0%, 100% 100%, 0% 100%);
  }
  70% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    clip-path: polygon(0 0, 0% 0%, 0% 100%, 0% 100%);
  }
}
@keyframes scrollout {
  0% {
    opacity: 1;
    clip-path: polygon(0 0, 100% 0%, 100% 100%, 0% 100%);
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    clip-path: polygon(0 0, 0% 0%, 0% 100%, 0% 100%);
  }
}
@keyframes typing {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}
.gform_wrapper .gform_heading, .gform_wrapper form {
  max-width: 1000px;
  margin: 0 auto;
  text-align: left;
}

.gform_wrapper.gravity-theme .field_sublabel_above .gfield_description {
  margin-top: 0 !important;
}

.woocommerce-page #page {
  background-size: cover;
  text-align: center;
  padding: var(--space-default) 0;
  margin: var(--space-larger) auto;
  position: relative;
}
.woocommerce-page #content {
  position: relative;
  max-width: var(--kivvi-max-content-width);
  margin: auto;
  width: 90%;
  display: flex;
  flex-direction: column;
  gap: var(--space-larger);
}

:root {
  --kivvi-doc-border-color: #cccccc;
  --kivvi-doc-border-color: #43D2B5;
}

.kivvidoc-shortcode, .kivvidoc-component-group {
  padding-bottom: var(--space-medium);
  border-top: 3px solid var(--kivvi-doc-border-color);
}

.kivvidoc-component-group-header, .kivvidoc-shortcode-title {
  text-align: left;
  border-bottom: 1px dashed var(--kivvi-doc-border-color);
}

.single-kivvidoc .kivvi_section_content.page-header {
  display: none;
}
.single-kivvidoc details {
  text-align: left;
}

ul.kivvidoc-shortcode-container {
  padding-left: 0 !important;
  flex-wrap: wrap;
}
ul.kivvidoc-shortcode-container h3, ul.kivvidoc-shortcode-container h4 {
  text-align: left;
}
ul.kivvidoc-shortcode-container > li {
  list-style: none;
  border: 1px solid var(--kivvi-doc-border-color);
  padding: var(--space-default) !important;
  margin-block: var(--space-default);
  flex: 1 0 400px;
}
ul.kivvidoc-shortcode-container .kivvidoc-code {
  opacity: 0;
  max-height: 0;
  transition: all 1s;
}
ul.kivvidoc-shortcode-container .kivvidoc-code.open {
  opacity: 1;
  max-height: 600px;
  margin-block: var(--space-default);
}
ul.kivvidoc-shortcode-container pre {
  text-align: left;
}
ul.kivvidoc-shortcode-container code {
  white-space: break-spaces;
}

.kivvidoc-copy, .kivvidoc-code-toggle {
  cursor: pointer;
}

.kivvidoc-code-controls {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
}
.kivvidoc-code-controls ul {
  padding-left: 0;
  display: flex;
  list-style: none;
  gap: var(--space-small);
  font-size: var(--kivvi-fontsize-l4);
}

.kivvidoc-menu-link-wrapper {
  margin-bottom: var(--space-medium);
}
.kivvi-header-text .kivvi_section_content {
  display: block;
}
.kivvi-header-text li {
  padding-left: 0.5rem;
}

.h-overflow .kivvi-carousel {
  overflow-x: visible;
}
.h-overflow .kivvi-carousel-item {
  opacity: 1;
  overflow-x: visible;
  position: relative;
}

.h-overflow,
.h-overflow div:is(.blogroll, .kivvi-cardset-items, .kivvi-image-gallery-items) {
  transition: all 1s;
}

@media screen and (min-width: 849px) {
  .h-overflow:is(.kivvi-blogroll, .kivvi-cardset) div:is(.blogroll, .kivvi-cardset-items, .kivvi-image-gallery-items) {
    flex-wrap: nowrap;
  }
}
.h-overflow-controls {
  margin: auto;
  display: flex;
  justify-content: center;
  gap: 5px;
}

.h-overflow-section {
  overflow-x: hidden;
}

:root {
  --kivvi-callout-bar-background-color: var(--kivvi-color-green);
}

.kivvi-callout.bar {
  transition-property: transform;
  transition-duration: var(--kivvi-modal-transition-length);
  transition-delay: var(--kivvi-modal-transition-delay);
  transform: translateY(-100%);
  height: auto;
  z-index: 999999;
  opacity: 1;
}
.kivvi-callout.bar[data-position=bottom] {
  transform: translateY(100%);
  bottom: 0;
  top: unset;
}
.kivvi-callout.bar .kivvi-modal-close {
  height: 100%;
  top: 0;
  display: flex;
  align-items: center;
}
.kivvi-callout.bar .kivvi_section {
  padding: 0;
  margin-block: 0.5rem;
}
.kivvi-callout.bar .kivvi-modal-inner {
  width: 100%;
  margin-block: 0;
  background-color: var(--kivvi-callout-bar-background-color);
}
.kivvi-callout.bar.active.show {
  transform: translateY(0);
}

ul.socials {
  list-style-type: none;
  padding: 0;
}
ul.socials li {
  display: inline-block;
}

.dashicons,
.dashicons-before:before {
  width: 16px;
  height: 16px;
  font-size: 16px;
  margin-right: 4px;
}

:root {
  --kivvi-button-background: transparent;
  --kivvi-button-color: black;
  --kivvi-button-padding: 0.5rem var(--space-button-inline);
  --kivvi-button-radius: 10px;
  --kivvi-button-border-color: black;
  --kivvi-button-border: 1px solid var(--kivvi-button-border-color);
  --kivvi-button-alternate-border-color: black;
  --kivvi-button-alternate-border: 1px solid var(--kivvi-button-alternate-border-color);
  --kivvi-button-hover-color: white;
  --kivvi-button-hover-background: black;
  --kivvi-button-transition: 0.5s all ease-in-out;
  --kivvi-button-alternate-color: white;
  --kivvi-button-alternate-background: black;
  --kivvi-button-alternate-hover-color: black;
  --kivvi-button-alternate-hover-background: white;
}

button,
.button, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button {
  cursor: pointer;
  background-color: var(--kivvi-button-background);
  color: var(--kivvi-button-color);
  padding: var(--kivvi-button-padding);
  border-radius: var(--kivvi-button-radius);
  border: var(--kivvi-button-border);
  transition: var(--kivvi-button-transition);
  text-decoration: none;
  font-weight: normal;
  display: inline-block;
  line-height: 1.8;
}
button a,
.button a, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button a {
  color: var(--kivvi-button-color);
  text-decoration: none;
  transition: var(--kivvi-button-transition);
}
button:hover,
button a:hover, button:hover a,
.button:hover,
.button a:hover,
.button:hover a, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button:hover,
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button a:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button:hover a {
  color: var(--kivvi-button-hover-color);
  background-color: var(--kivvi-button-hover-background);
}
button.button--alternate,
.button.button--alternate, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.button--alternate {
  border: var(--kivvi-button-alternate-border);
}
button.button--alternate, button.button--alternate a,
.button.button--alternate,
.button.button--alternate a, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.button--alternate, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.button--alternate a {
  background-color: var(--kivvi-button-alternate-background);
  color: var(--kivvi-button-alternate-color);
  transition: var(--kivvi-button-transition);
}
button.button--alternate:hover,
button.button--alternate a:hover, button.button--alternate:hover a, button.button--alternate a:hover,
button.button--alternate a a:hover, button.button--alternate a:hover a,
.button.button--alternate:hover,
.button.button--alternate a:hover,
.button.button--alternate:hover a,
.button.button--alternate a:hover,
.button.button--alternate a a:hover,
.button.button--alternate a:hover a, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.button--alternate:hover,
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.button--alternate a:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.button--alternate:hover a, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.button--alternate a:hover,
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.button--alternate a a:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.button--alternate a:hover a {
  color: var(--kivvi-button-alternate-hover-color);
  background-color: var(--kivvi-button-alternate-hover-background);
}

a.button + a.button {
  margin-block-start: var(--space-default);
}

a.button:has(+ a.button) {
  margin-inline-end: var(--space-default);
}

.kivvi-blogroll {
  position: relative;
}
.kivvi-blogroll.h-overflow {
  display: flex;
}
@media screen and (max-width: 850px) {
  .kivvi-blogroll.h-overflow {
    display: block;
  }
}
@media screen and (min-width: 851px) {
  .kivvi-blogroll.h-overflow .kivvi-blogroll-container {
    width: 200vw;
    overflow-x: hidden;
    z-index: 1;
    margin-right: -100vw;
  }
  .kivvi-blogroll.h-overflow .blogroll {
    justify-content: flex-start;
  }
  .kivvi-blogroll.h-overflow .blogroll .blog-item {
    max-width: var(--kivvi-single-item-width);
  }
  .kivvi-blogroll.h-overflow .kivvi-header-text {
    max-width: 400px;
  }
}
.kivvi-blogroll.h-overflow .kivvi-header-text {
  min-width: 400px;
  width: 400px;
  max-width: 100%;
  padding-bottom: 4rem;
  z-index: 5;
}
.kivvi-blogroll .kivvi-header-text {
  text-align: center;
}
.kivvi-blogroll .blogroll {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-medium);
}
.kivvi-blogroll .blogroll .blog-item {
  flex: 1;
  min-width: var(--kivvi-single-item-width);
  max-width: var(--kivvi-single-item-width-max);
}
@media screen and (max-width: 400px) {
  .kivvi-blogroll .blogroll .blog-item {
    min-width: 100%;
    max-width: 100%;
  }
}

.kivvi-blogroll {
  text-align: left;
  margin-bottom: 2rem;
}
.kivvi-blogroll h2,
.kivvi-blogroll h3 {
  text-align: center;
}
.kivvi-blogroll p {
  line-height: 1.3;
  margin: 10px 0;
}
.kivvi-blogroll .blogroll {
  transition: opacity 0.5s;
}
.kivvi-blogroll a:not(.button) {
  text-decoration: none;
  color: inherit;
}
.kivvi-blogroll img {
  height: 300px;
  height: auto;
  aspect-ratio: 1.5/1;
  object-fit: contain;
  object-position: center;
}
.kivvi-blogroll img.fill {
  object-fit: cover;
  object-position: top center;
}

.kivvi-blogroll-button {
  display: flex;
  justify-content: center;
  margin-top: var(--space-default);
}

.kivvi-pagination {
  display: flex;
  justify-content: center;
  margin: var(--space-medium) 0;
  gap: var(--space-small);
  --kivvi-pagination-border-color: var(--kivvi-button-border-color);
}
.kivvi-pagination .page-numbers {
  padding: 0.5rem 1rem;
  border: 1px solid var(--kivvi-pagination-border-color);
  border-radius: 8px;
}
.kivvi-pagination .page-numbers.current {
  border: unset;
}

.kivvi-blogroll.layout-carousel .kivvi-carousel {
  display: block;
}
.kivvi-blogroll.layout-carousel .kivvi-carousel .blog-item {
  max-width: unset;
  min-width: none;
}

.kivvi-blogroll-loading {
  display: grid;
  place-items: center;
  width: 100%;
}

.kivvi-category-list {
  margin: auto;
  margin-bottom: 2rem;
  position: relative;
}
.kivvi-category-list ul {
  position: relative;
  list-style: none;
  display: flex;
  margin: auto;
  justify-content: center;
  position: relative;
  width: fit-content;
  padding-left: 0;
}
.kivvi-category-list li {
  padding: 0.75rem 1.5rem;
  border-right: 1px solid black;
  transition: all 0.5s;
}
.kivvi-category-list .kivvi-blogroll-category-search-box {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
  transition: all 0.5s;
}
.kivvi-category-list .kivvi-blogroll-category-search-box form {
  display: flex;
  gap: var(--space-medium);
  justify-content: center;
}
.kivvi-category-list .kivvi-category-search-close {
  align-self: center;
}
.kivvi-category-list ul.search-active li {
  opacity: 0;
}
.kivvi-category-list ul.search-active .kivvi-blogroll-category-search-box {
  opacity: 1;
  pointer-events: all;
}

.kivvi-cta a.button {
  margin-top: var(--space-default);
}

.kivvi-hero h1,
.kivvi-hero h2 {
  margin-top: 0;
  margin-bottom: var(--space-small);
}
.kivvi-hero .kivvi-hero-leadin {
  margin-top: var(--space-default);
}
.kivvi-hero > a.button {
  margin-top: var(--space-default);
}

:root {
  --kivvi-card--max-width: var(--kivvi-single-item-width-max);
  --kivvi-card--font-size: 28px;
}

.kivvi-cardset {
  position: relative;
}

.kivvi-cardset-items {
  display: grid;
  flex-wrap: wrap;
  margin-top: var(--space-medium);
  gap: var(--space-medium);
  grid-template-columns: 1fr 1fr 1fr;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.kivvi-cardset-items .kivvi-card {
  flex: 1;
  min-width: var(--kivvi-single-item-width);
  max-width: var(--kivvi-card--max-width);
}
.kivvi-cardset-items a:not(.button) {
  text-decoration: none;
  color: inherit;
}

.kivvi-card-wrapper {
  height: 100%;
  width: 100%;
}

.kivvi-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  justify-self: center;
  max-width: var(--kivvi-card--max-width);
  word-break: normal;
}
.kivvi-card .imgwrapper {
  width: 100%;
}
.kivvi-card img {
  width: 100%;
  object-fit: cover;
}
.kivvi-card h3 {
  font-weight: bold;
  font-size: var(--kivvi-card--font-size);
}

:root {
  --kivvi-accordion-details-radius: 0;
  --kivvi-accordion-details-margin: var(--space-default) auto;
  --kivvi-accordion-summary-padding: var(--space-default);
  --kivvi-accordion-summary-background: none;
  --kivvi-accordion-summary-font-size: var(--kivvi-h4-font-size);
  --kivvi-accordion-border: 1px solid black;
  --kivvi-accordion-border-color: black;
  --kivvi-accordion-disembodied-highlight-color: var(--kivvi-link-color);
  --kivvi-accordion-disembodied-highlight-color: red;
  --kivvi-accordion-disembodied-tab-margin: 20px;
  --kivvi-accordion-current-tab-offset: var(--kivvi-accordion-disembodied-tab-margin);
}

.kivvi-accordion details {
  box-sizing: border-box;
  margin: var(--kivvi-accordion-details-margin);
  border: var(--kivvi-accordion-border);
  border-radius: var(--kivvi-accordion-details-radius);
}
.kivvi-accordion details summary {
  background: var(--kivvi-accordion-summary-background);
  color: var(--kivvi-color-dark);
  font-size: var(--kivvi-accordion-summary-font-size);
  text-align: left;
  background: unset;
  cursor: pointer;
  padding: var(--kivvi-accordion-summary-padding);
  position: relative;
}
.kivvi-accordion details summary:focus {
  border-color: black;
}
.kivvi-accordion details summary::marker {
  display: none;
  content: "";
}
.kivvi-accordion details summary:before {
  content: "+";
  position: absolute;
  right: 20px;
  top: 0;
  font-size: 40px;
}
.kivvi-accordion details[open] summary:before {
  content: "-";
}
.kivvi-accordion details .kivvi-accordion-content {
  border: none;
  padding: 0 5%;
}

details > summary::-webkit-details-marker {
  display: none;
  content: "";
}

.kivvi-accordion-disembodied {
  --accordion-highlight-background: gray;
  display: flex;
  width: 100%;
  justify-content: space-around;
  gap: 4rem;
}

.kivvi-accordion-disembodied {
  display: none;
  margin-block-start: 3rem;
}

.kivvi-accordion-disembodied-tabs {
  min-width: 400px;
  max-width: 100%;
  border-radius: var(--kivvi-accordion-details-radius);
}
.kivvi-accordion-disembodied-tabs ul {
  list-style-type: none;
  padding-left: 0;
  display: flex;
  gap: 2rem;
  flex-direction: column;
  position: sticky;
  top: var(--kivvi-accordion-current-tab-offset);
  transition: all 1s;
}
.kivvi-accordion-disembodied-tabs li {
  padding: 1rem;
  border: 1px solid black;
  border-radius: 20px;
}
.kivvi-accordion-disembodied-tabs li.active {
  border-color: var(--kivvi-accordion-disembodied-highlight-color);
}

.kivvi-accordion-disembodied-content {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.kivvi-accordion-disembodied-content article {
  border: 1px solid gray;
  border-radius: 20px;
  padding: 2rem;
}
.kivvi-accordion-disembodied-content article.active {
  border-color: var(--kivvi-accordion-disembodied-highlight-color);
}

.kivvi-accordion.layout-disembodied {
  container-type: inline-size;
  container-name: disembodied;
}

@container disembodied (min-width: 1000px) {
  .kivvi-accordion-disembodied {
    display: flex;
  }
  details {
    display: none;
  }
}
:root {
  --kivvi-twoup-modal-video-play-button-width: 50px;
  --kivvi-modal-video-play-button-stroke: black;
  --kivvi-modal-video-play-button-fill: none;
  --kivvi-modal-video-play-button-linecap: round;
  --kivvi-modal-video-play-button-linejoin: round;
  --kivvi-modal-video-link-text-color: black;
  --kivvi-modal-video-link-text-color-light: white;
}

.kivvi-modal-video .kivvi-modal-video-inner {
  position: relative;
  width: 100%;
}
.kivvi-modal-video .kivvi-modal-video-inner .kivvi-modal-video-overlay {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.kivvi-modal-video .kivvi-modal-video-inner .kivvi-modal-video-overlay .play-button {
  position: relative;
  width: 100%;
  max-width: 200px;
  min-width: 100px;
  min-height: 100px;
  display: block;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  padding: 3rem 3rem 3rem 4rem;
  text-align: center;
}
.kivvi-modal-video .kivvi-modal-video-inner .kivvi-modal-video-overlay .play-button svg {
  max-width: 200px;
  min-width: 100px;
  min-height: 100px;
}
.kivvi-modal-video .kivvi-modal-video-inner .kivvi-modal-video-overlay .play-button svg path {
  transition: all 0.5s;
}
.kivvi-modal-video .kivvi-modal-video-inner .kivvi-modal-video-overlay .play-button:hover svg path {
  stroke: grey !important;
}
.kivvi-modal-video .kivvi-modal-video-inner .kivvi-modal-video-overlay .kivvi-modal-video-link-text,
.kivvi-modal-video .kivvi-modal-video-inner .kivvi-modal-video-overlay .kivvi-modal-video-link {
  text-decoration: none;
  font-size: 1.6rem;
  margin: auto;
  color: var(--kivvi-modal-video-link-text-color);
}
.kivvi-modal-video .kivvi-modal-video-inner.overlay-text-light .kivvi-modal-video-overlay .kivvi-modal-video-link-text,
.kivvi-modal-video .kivvi-modal-video-inner.overlay-text-light .kivvi-modal-video-overlay .kivvi-modal-video-link-text a {
  color: var(--kivvi-modal-video-link-text-color-light);
}
.kivvi-modal-video button {
  cursor: pointer;
}

.kivvi-modal-video-embed {
  position: fixed;
  opacity: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.9);
  align-items: center;
  justify-content: center;
  display: none;
  z-index: 9999;
  max-height: 100% !important;
}
.kivvi-modal-video-embed .close-video {
  position: absolute;
  top: var(--space-medium);
  right: var(--space-medium);
  cursor: pointer;
  background: white;
}
.kivvi-modal-video-embed .close-video:hover {
  background: black;
}
.kivvi-modal-video-embed.active {
  display: flex;
  transition: opacity 1s;
}
.kivvi-modal-video-embed.active.show {
  opacity: 1;
}

.kivvi-modal-video-image {
  text-align: center;
}

.kivvi-twoup .kivvi-modal-video .kivvi-modal-video-inner .kivvi-modal-video-overlay {
  width: var(--kivvi-twoup-modal-video-play-button-width);
  left: calc(50% - var(--kivvi-twoup-modal-video-play-button-width));
}
.kivvi-twoup .kivvi-modal-video .kivvi-modal-video-inner .kivvi-modal-video-overlay .play-button {
  min-width: var(--kivvi-twoup-modal-video-play-button-width);
  min-height: var(--kivvi-twoup-modal-video-play-button-width);
  padding: var(--space-medium) var(--space-medium) var(--space-medium) var(--space-large);
}
.kivvi-twoup .kivvi-modal-video img {
  width: 100%;
  height: auto;
}

@media screen and (min-width: 1280px) {
  .section-group.full-width.has-media-flush .kivvi_section {
    padding: 0;
  }
  .section-group.full-width.has-media-flush .kivvi_section_content {
    width: 100vw;
    max-width: unset;
  }
  .section-group.full-width.has-media-flush .kivvi_section_content .kivvi-columns {
    gap: var(--space-largest);
  }
  .section-group.full-width.has-media-flush .kivvi-twoup-media {
    width: 100%;
  }
  .section-group.full-width.has-media-flush .kivvi-twoup-media img {
    min-width: 100%;
  }
  .section-group.full-width.has-media-flush .kivvi-image-wrapper {
    display: flex;
    overflow: hidden;
  }
  .section-group.full-width.has-media-flush .media-left .kivvi-twoup-content-inner {
    padding-right: var(--kivvi-full-width-padding-left);
  }
  .section-group.full-width.has-media-flush .media-right .kivvi-twoup-content-inner {
    padding-left: var(--kivvi-full-width-padding-left);
  }
}

.kivvi-twoup {
  text-align: center;
}
@media screen and (max-width: 1000px) {
  .kivvi-twoup .kivvi-columns {
    flex-direction: column;
    gap: var(--space-default);
  }
  .kivvi-twoup.media-right .kivvi-twoup-media {
    order: 1;
  }
  .kivvi-twoup.media-right .kivvi-twoup-content {
    order: 2;
  }
}
.kivvi-twoup p {
  width: unset;
  margin-left: unset;
  margin-right: unset;
}
.kivvi-twoup img {
  object-fit: cover;
  max-height: 100%;
}

:root {
  --kivvi-tab-title-color: black;
  --kivvi-tab-title-text-decoration: none;
  --kivvi-tab-active-title-background: grey;
  --kivvi-tab-active-title-color: white;
  --kivvi-tab-links-bottom-border: black;
  --kivvi-tab-links-bottom-border-height: 1px;
  --kivvi-tabs-padding-left: var(--space-medium);
  --kivvi-tabs-padding-top: var(--space-default);
  --kivvi-tabs-title-gap: var(--space-default);
}

.kivvi-tabs .kivvi-header-text {
  margin-block-end: var(--space-medium);
}

.kivvi-tabs-items {
  --tab-template-cols: 3;
  --tab-template-header: "tab-0 tab-1 tab-2";
  --tab-template-content: "content content content";
  display: grid;
  grid-template-rows: 2;
  grid-template-areas: var(--tab-template-header) var(--tab-template-content);
  /*
  > ul {
      width: 100%;
      gap: var(--kivvi-tabs-title-gap);
      display: flex;
      position: relative;
      justify-content: flex-start;
      flex-wrap: wrap;
      padding-inline-start: var(--kivvi-tabs-padding-left);
      &:after {
          content: "";
          position: absolute;
          bottom: calc(-1 * var(--kivvi-tab-links-bottom-border-height));
          bottom: 0;
          left: var(--kivvi-tabs-padding-left);
          height: var(--kivvi-tab-links-bottom-border-height);
          width: calc(100% - var(--kivvi-tabs-padding-left));
          background: var(--kivvi-tab-links-bottom-border);
          @media screen and (max-width: 768px) {
              left: 0;
              width: 100%;
          }
      }
      @media screen and (max-width: 768px) {
          padding-inline-start: 0;
      }
  }


  */
}
.kivvi-tabs-items .tab-0 {
  grid-area: tab-0;
}
.kivvi-tabs-items .tab-1 {
  grid-area: tab-1;
}
.kivvi-tabs-items .tab-2 {
  grid-area: tab-2;
}
.kivvi-tabs-items .tab-3 {
  grid-area: tab-3;
}
.kivvi-tabs-items .tab-4 {
  grid-area: tab-4;
}
.kivvi-tabs-items .tab-5 {
  grid-area: tab-5;
}
.kivvi-tabs-items .kivvi-tabs-section {
  grid-area: content;
}

.kivvi-tab-title {
  list-style: none;
  position: relative;
}

.kivvi-tab-title-link {
  color: var(--kivvi-tab-title-color);
  text-decoration: var(--kivvi-tab-title-text-decoration);
  display: block;
  transition: all 0.3s;
  padding: var(--space-default);
  word-wrap: break-word;
}
.kivvi-tab-title-link[aria-selected] {
  background: var(--kivvi-tab-active-title-background);
  color: var(--kivvi-tab-active-title-color);
}

.kivvi-tabs-section {
  padding-inline-start: var(--kivvi-tabs-padding-left);
  padding-block-start: var(--kivvi-tabs-padding-top);
  opacity: 1;
  transition: all 0.5s;
}
@media screen and (max-width: 768px) {
  .kivvi-tabs-section {
    padding-inline-start: 0;
  }
}

.js .kivvi-tabs-section.inactive {
  opacity: 0;
  transition: all 0.5s;
}

@media screen and (max-width: 1000px) {
  .kivvi-tabs-items {
    display: block;
  }
  .kivvi-tabs-section:not(:first-of-type) {
    max-height: 100vh;
    height: auto;
    overflow: visible;
  }
  .js .kivvi-tabs-section.inactive {
    opacity: 1;
    max-height: 0;
    height: auto;
    overflow: hidden;
    padding: 0;
    margin: 0;
    border: none;
  }
}
.columns_1_3 .kivvi-columns.equal-width > div {
  flex: 3;
}
.columns_1_3 .kivvi-columns.equal-width > div:first-of-type {
  flex: 1;
}

.columns_1_2 .kivvi-columns.equal-width > div {
  flex: 2;
}
.columns_1_2 .kivvi-columns.equal-width > div:first-of-type {
  flex: 1;
}

:root {
  --kivvi-carousel-controls-height: 100px;
  --kivvi-carousel-dotnav-height: 15px;
  --kivvi-carousel-arrow-color: grey;
  --kivvi-carousel-arrow-color-hover: black;
}

.kivvi-carousel {
  position: relative;
  height: 100%;
  overflow-x: hidden;
}
.kivvi-carousel[data-kivvi-carousel-transition=fade] .kivvi-carousel-item {
  z-index: 0;
}
.kivvi-carousel[data-kivvi-carousel-transition=fade] .kivvi-carousel-item.active-carousel {
  z-index: 1;
  opacity: 1;
}
.kivvi-carousel[data-kivvi-carousel-transition=fade] .kivvi-carousel-item.transitionOut, .kivvi-carousel[data-kivvi-carousel-transition=fade] .kivvi-carousel-item.transitionOutBack {
  opacity: 0;
  z-index: 0;
}
.kivvi-carousel[data-kivvi-carousel-transition=slide] .kivvi-carousel-item {
  transform: translateX(50%);
  pointer-events: none;
}
.kivvi-carousel[data-kivvi-carousel-transition=slide] .kivvi-carousel-item.active-carousel {
  transform: translateX(0);
  opacity: 1;
  pointer-events: all;
}
.kivvi-carousel[data-kivvi-carousel-transition=slide] .kivvi-carousel-item.transitionOut {
  transform: translateX(-100%);
  opacity: 0;
}
.kivvi-carousel[data-kivvi-carousel-transition=slide] .kivvi-carousel-item.transitionOutBack {
  transform: translateX(100%);
  opacity: 0;
}
.kivvi-carousel[data-kivvi-carousel-transition=slide] .kivvi-carousel-item.sliderPrev {
  transform: translateX(-100%);
  transition: none;
}

.kivvi-carousel-item {
  opacity: 0;
  transition: opacity 0.3s, transform 1s;
  height: 100%;
  position: absolute;
  width: 100%;
}

.kivvi-carousel[data-kivvi-carousel-show="2"] {
  display: flex !important;
  gap: var(--space-default);
}
.kivvi-carousel[data-kivvi-carousel-show="2"] > * {
  flex: 1;
}
.kivvi-carousel[data-kivvi-carousel-show="2"] .kivvi-carousel-item {
  width: calc(50% - var(--space-default) / 2);
}
.kivvi-carousel[data-kivvi-carousel-show="2"] .kivvi-carousel-item.active-carousel:nth-of-type(2n + 1) {
  right: 0;
}

.kivvi-carousel-controls {
  position: absolute;
  height: 100%;
  width: 100%;
  z-index: 5;
  pointer-events: none;
  top: 0;
  left: 0;
  transition: all 1s;
}
.kivvi-carousel-controls .prev,
.kivvi-carousel-controls .next {
  cursor: pointer;
  height: var(--kivvi-carousel-controls-height);
  position: absolute;
  top: calc(50% - var(--kivvi-carousel-controls-height) / 2);
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-default) 0;
  font-size: 75px;
  font-weight: 100;
}
.kivvi-carousel-controls .prev a,
.kivvi-carousel-controls .next a {
  color: var(--kivvi-carousel-arrow-color);
  transition: all 0.3s;
  pointer-events: all;
  text-decoration: none;
}
.kivvi-carousel-controls .prev a:hover,
.kivvi-carousel-controls .next a:hover {
  color: var(--kivvi-carousel-arrow-color-hover);
}
.kivvi-carousel-controls .next {
  left: unset;
  right: 0;
}

.navdots {
  display: flex;
  justify-content: center;
  gap: 5px;
}

.navdot {
  display: inline-block;
  border: 1px solid black;
  border-radius: 50%;
  width: 25px;
  height: 25px;
  pointer-events: all;
}
.navdot.active {
  background: black;
}

.timeline {
  max-width: 800px;
  margin: var(--space-medium) auto;
}

.timeline li {
  position: relative;
  list-style-type: none;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0 0 50px 80px;
}

.timeline li:before {
  content: "";
  position: absolute;
  left: 0;
  top: -8px;
  width: 100%;
  height: 100%;
  opacity: 0;
  background-image: url("/wp-content/themes/kivvi/images/circle.png");
  background-repeat: no-repeat;
  z-index: 100;
  pointer-events: none;
  opacity: 1;
}

.timeline li:after {
  background-image: url("/wp-content/themes/kivvi/images/borderline.png");
  background-size: 1px calc(100% - 27px);
  background-repeat: no-repeat;
  content: "";
  position: absolute;
  left: 22px;
  top: 27px;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
  transition: all 2s;
  max-height: 0;
  opacity: 0;
  opacity: 1;
  max-height: 1000px;
}

.timeline li:last-of-type:after {
  background: none;
}

.timeline.active li:before {
  transition: all 1s;
  opacity: 1;
}
.timeline.active li:nth-of-type(2):before {
  transition-delay: 1s;
}
.timeline.active li:nth-of-type(3):before {
  transition-delay: 2s;
}
.timeline.active li:nth-of-type(4):before {
  transition-delay: 3s;
}
.timeline.active li:nth-of-type(5):before {
  transition-delay: 4s;
}
.timeline.active li:nth-of-type(6):before {
  transition-delay: 5s;
}
.timeline.active li:nth-of-type(7):before {
  transition-delay: 6s;
}
.timeline.active li:nth-of-type(8):before {
  transition-delay: 7s;
}
.timeline.active li:after {
  transition: all 1s;
  max-height: 1000px;
  opacity: 1;
  transition-delay: 0.5s;
}
.timeline.active li:nth-of-type(2):after {
  transition-delay: 1.5s;
}
.timeline.active li:nth-of-type(3):after {
  transition-delay: 2.5s;
}
.timeline.active li:nth-of-type(4):after {
  transition-delay: 3.5s;
}
.timeline.active li:nth-of-type(5):after {
  transition-delay: 4.5s;
}
.timeline.active li:nth-of-type(6):after {
  transition-delay: 5.5s;
}
.timeline.active li:nth-of-type(7):after {
  transition-delay: 6.5s;
}
.timeline.active li:nth-of-type(8):after {
  transition-delay: 7.5s;
}

.kivvi-image-gallery {
  --kivvi-image-gallery-item-width: 300px;
  --kivvi-image-gallery-item-max-height: 300px;
  position: relative;
}
.kivvi-image-gallery .kivvi-image-gallery-items {
  display: flex;
  gap: 2rem;
  justify-content: space-between;
  flex-wrap: wrap;
}
.kivvi-image-gallery .kivvi-gallery-item-caption {
  padding: 1rem;
}
.kivvi-image-gallery .kivvi-gallery-item-image {
  max-height: var(--kivvi-image-gallery-item-max-height);
}
.kivvi-image-gallery img {
  min-width: var(--kivvi-image-gallery-item-width);
  height: 100%;
  max-height: var(--kivvi-image-gallery-item-max-height);
  object-fit: cover;
}
.kivvi-image-gallery.layout-h-overflow .kivvi-image-gallery-items {
  flex-wrap: nowrap;
  justify-content: flex-start;
}

/* WORDPRESS GALLERY SHORTCODE */
.gallery .kivvi-carousel-item {
  opacity: 1;
  overflow-x: visible;
}

.kivvi-modal-gallery .kivvi-modal-inner {
  height: 100%;
}
.kivvi-modal-gallery .project-gallery {
  display: block;
  position: relative;
  height: 100%;
}
.kivvi-modal-gallery .kivvi-gallery-item {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  opacity: 0;
  padding-block: var(--space-medium);
}
.kivvi-modal-gallery .kivvi-gallery-item.active-carousel {
  opacity: 1;
}
.kivvi-modal-gallery .kivvi-gallery-item img {
  height: auto;
  width: auto;
  max-width: 80vw;
  max-height: 80vh;
  object-fit: cover;
  margin: auto;
  display: block;
}
.kivvi-modal-gallery .project-gallery-item-caption {
  text-align: center;
}

.kivvi-logogallery-items {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-medium);
  align-items: center;
  justify-content: space-around;
}

.kivvi-logogallery-item {
  flex: 1;
  min-width: 150px;
  max-width: 250px;
}
.kivvi-logogallery-item img {
  object-fit: contain;
}

.kivvi-team-member {
  display: flex;
  flex-direction: column;
  gap: var(--kivvi-spacing-2);
}
.kivvi-team-member.kivvi-team-member-layout-two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr;
}
.kivvi-team-member h1 {
  margin: 0;
}

.kivvi-team-member-title {
  grid-column: 1/2;
}

.kivvi-team-member-bio {
  grid-column: 1/2;
}

.kivvi-team-member-photo {
  grid-column: 2/3;
}

.kivvi-team-member-contact {
  grid-column: 2/3;
}

a.kivvi-team-social {
  text-decoration: none;
  color: var(--kivvi-color-primary);
}
a.kivvi-team-social:hover {
  cursor: pointer;
  color: var(--kivvi-color-secondary);
}
a.kivvi-team-social:hover span:before {
  cursor: pointer;
}

.kivvi-container-with-sidebar {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
}
@media screen and (max-width: 1280px) {
  .kivvi-container-with-sidebar {
    display: block;
  }
}
.kivvi-container-with-sidebar .kivvi-post-content {
  container-name: kivvi-post-content;
  container-type: inline-size;
  flex: 2;
}
.kivvi-container-with-sidebar .kivvi_sidebar {
  flex: 1;
}
.kivvi-container-with-sidebar .blogroll {
  display: block;
}
.kivvi-container-with-sidebar .post-excerpt {
  display: none;
}

.single-event p {
  margin-block-end: 1rem;
}

#site-footer {
  padding: var(--space-default);
  margin: 0;
}
#site-footer .kivvi_section_content {
  display: flex;
  justify-content: space-between;
  flex-direction: row;
  flex-wrap: wrap;
}
#site-footer .kivvi_section_content > * {
  flex: 1;
  min-width: 300px;
}

:root {
  --header-height: 192px;
}

#masthead {
  max-width: var(--kivvi-max-content-width);
  margin: auto;
  width: 90%;
}

.sticky {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 9000;
}

.admin-bar .sticky {
  --bim-admin-bar-height: 32px;
  top: var(--bim-admin-bar-height);
}

body:not(.overlapping-header) .sticky + #page {
  padding-top: 102px;
}

#site-navigation #menu-main-menu {
  display: flex;
  gap: var(--space-default);
  flex-wrap: wrap;
  list-style: none;
}

.kivvi-logo {
  padding-block: var(--space-default);
}

.overlapping-header #header-section {
  background-color: transparent;
  width: 100%;
  position: absolute;
  top: 0;
  z-index: 9000;
}
.overlapping-header #header-section.sticky-header {
  position: fixed;
}
.overlapping-header #header-section.sticky {
  position: fixed;
}
.overlapping-header #content > *:first-child {
  margin-block-start: 0;
}
.overlapping-header #content > *:first-child .kivvi_section_content:before {
  content: "";
  height: calc(var(--header-height) - var(--space-larger));
}

:root {
  --nav-breakpoint: 1000px;
  --nav-icon-background: #ffffff;
  --nav-icon-background-hover: #777777;
  --nav-drawer-link-color: white;
  --nav-drawer-background: black;
  --nav-drawer-underline-color: white;
  --nav-icon-size: 40px;
  --nav-icon-margin-block: 50px;
  --nav-icon-line-size: 7px;
  --nav-menu-gap: var(--space-default);
}

#masthead {
  display: flex;
  justify-content: space-between;
}
#masthead nav {
  font-size: 16px;
  display: flex;
  align-items: center;
}
#masthead nav ul.menu {
  list-style: none;
  display: flex;
  gap: var(--nav-menu-gap);
  align-items: center;
  flex-wrap: wrap;
}
#masthead nav a {
  text-decoration: none;
}
#masthead nav .sub-menu {
  position: absolute;
  text-align: left;
  z-index: 9999;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  background: unset;
  padding-left: 0;
}
#masthead nav .sub-menu li {
  display: block;
}
#masthead li:hover .sub-menu {
  max-height: 1000px;
  pointer-events: all;
  opacity: 1;
  transition: all 0.5s ease-in-out;
}

.site-title a {
  text-decoration: none;
}

#mobile-toggle {
  z-index: 9001;
}

#nav-icon {
  width: var(--nav-icon-size);
  display: none;
  z-index: 9001;
  height: var(--nav-icon-size);
  position: relative;
  margin: var(--nav-icon-margin-block) auto;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: 0.5s ease-in-out;
  -moz-transition: 0.5s ease-in-out;
  -o-transition: 0.5s ease-in-out;
  transition: 0.5s ease-in-out;
  cursor: pointer;
}

#nav-icon span {
  display: block;
  position: absolute;
  height: var(--nav-icon-line-size);
  width: 100%;
  background: var(--nav-icon-background);
  background-size: 200% 200%;
  background-position: 0% 0%;
  border-radius: 7px;
  opacity: 1;
  left: 0;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  transition: all 0.4s ease-in-out;
}

a #nav-icon:hover span,
a #nav-icon.open span {
  background-color: var(--nav-icon-background-hover);
}

#nav-icon.open:hover span {
  filter: brightness(1.5);
}

#nav-icon span:nth-child(1) {
  top: 0px;
}

#nav-icon span:nth-child(2) {
  top: calc(var(--nav-icon-size) / 2 - var(--nav-icon-line-size) / 2);
}

#nav-icon span:nth-child(3) {
  bottom: 0;
}

#nav-icon.open span:nth-child(1) {
  top: 18px;
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -o-transform: rotate(135deg);
  transform: rotate(135deg);
}

#nav-icon.open span:nth-child(2) {
  opacity: 0;
  left: -60px;
}

#nav-icon.open span:nth-child(3) {
  top: 18px;
  -webkit-transform: rotate(-135deg);
  -moz-transform: rotate(-135deg);
  -o-transform: rotate(-135deg);
  transform: rotate(-135deg);
}

@media screen and (max-width: 1000px) {
  #site-navigation {
    transform: translateX(150%);
    transition: transform 0.5s ease-in-out;
    background: var(--nav-drawer-background);
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    color: var(--nav-drawer-link-color);
    z-index: 9000;
  }
  #site-navigation.active {
    transform: translateX(0);
  }
  #nav-icon {
    display: block;
  }
  #masthead nav {
    overflow: auto;
    justify-content: center;
    align-items: flex-start;
    padding-top: 5rem;
    padding-bottom: var(-space-medium);
    display: block;
    width: 100%;
  }
  #masthead nav > div {
    width: 100%;
  }
  #masthead nav ul.menu {
    padding: 0;
    flex-direction: column;
    width: 90%;
    max-width: 400px;
    text-align: left;
    margin: auto;
  }
  #masthead nav ul.menu a {
    color: var(--kivvi-color-teal);
    position: relative;
    display: block;
    padding-bottom: var(--space-small);
  }
  #masthead nav ul.menu a:after {
    content: "";
    bottom: 0;
    left: 0;
    position: absolute;
    height: 2px;
    background: var(--nav-drawer-underline-color);
    width: calc(90vw - 80px);
    max-width: 400px;
  }
  #masthead nav ul.menu .sub-menu a:after {
    width: calc(90vw - 120px);
  }
  #masthead nav ul.menu > li:last-of-type a {
    border-bottom: none;
  }
  #masthead nav li {
    width: 100%;
    padding-inline: 1.5rem;
  }
  #masthead nav a {
    color: var(--kivvi-color-dark-teal);
  }
  #masthead nav .sub-menu {
    padding-top: var(--nav-menu-gap);
    margin-top: var(--space-small);
  }
  #masthead nav .sub-menu li {
    position: relative;
  }
}
.nav-links {
  display: flex;
  justify-content: center;
  gap: var(--nav-menu-gap);
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhcmlhYmxlcy9fcmVzcG9uc2l2ZS5zY3NzIiwidmFyaWFibGVzL19jb2xvcnMuc2NzcyIsInZhcmlhYmxlcy9fc3BhY2luZy5zY3NzIiwidmFyaWFibGVzL19mb250c2l6ZS5zY3NzIiwiYmFzZS9fcmVzZXQuc2NzcyIsImJhc2UvX3V0aWxzLnNjc3MiLCJiYXNlL19iYXNlLnNjc3MiLCJiYXNlL19zZWN0aW9ucy5zY3NzIiwiYmFzZS9faW1hZ2VzLnNjc3MiLCJiYXNlL19oZWFkZXJzLnNjc3MiLCJiYXNlL19sYXlvdXQuc2NzcyIsImJhc2UvX3NpZGViYXIuc2NzcyIsImJhc2UvX21vZGFsLnNjc3MiLCJhbmltYXRpb25zL19hbmltYXRpb25zLnNjc3MiLCJhbmltYXRpb25zL19zbGlkZXVwLnNjc3MiLCJhbmltYXRpb25zL19wYWdldHJhbnNpdGlvbnMuc2NzcyIsImFuaW1hdGlvbnMvX3JvdGF0ZS5zY3NzIiwiYW5pbWF0aW9ucy9fZmFkZWluLnNjc3MiLCJhbmltYXRpb25zL190eXBpbmcuc2NzcyIsInZlbmRvci9fZ3Jhdml0eWZvcm1zLnNjc3MiLCJ2ZW5kb3IvX3dvb2NvbW1lcmNlLnNjc3MiLCJraXZ2aWRvY3MvX2tpdnZpZG9jcy5zY3NzIiwiY29tcG9uZW50cy9faGVhZGVydGV4dC5zY3NzIiwiY29tcG9uZW50cy9faG92ZXJmbG93LnNjc3MiLCJjb21wb25lbnRzL19jYWxsb3V0LnNjc3MiLCJjb21wb25lbnRzL19zb2NpYWxzLnNjc3MiLCJjb21wb25lbnRzL19idXR0b24uc2NzcyIsImNvbXBvbmVudHMvX2Jsb2dyb2xsLnNjc3MiLCJjb21wb25lbnRzL19jdGEuc2NzcyIsImNvbXBvbmVudHMvX2hlcm8uc2NzcyIsImNvbXBvbmVudHMvX2NhcmQuc2NzcyIsImNvbXBvbmVudHMvX2FjY29yZGlvbi5zY3NzIiwiY29tcG9uZW50cy9fbW9kYWx2aWRlby5zY3NzIiwiY29tcG9uZW50cy9fdHdvdXAuc2NzcyIsImNvbXBvbmVudHMvX3RhYnMuc2NzcyIsImNvbXBvbmVudHMvX3R3b2NvbHVtbnMuc2NzcyIsImNvbXBvbmVudHMvX2Nhcm91c2VsLnNjc3MiLCJjb21wb25lbnRzL190aW1lbGluZS5zY3NzIiwiY29tcG9uZW50cy9fZ2FsbGVyeS5zY3NzIiwiY29tcG9uZW50cy9fZ2FsbGVyeW1vZGFsLnNjc3MiLCJjb21wb25lbnRzL19sb2dvZ2FsbGVyeS5zY3NzIiwicG9zdHR5cGVzL190ZWFtLnNjc3MiLCJwb3N0dHlwZXMvX2Jsb2cuc2NzcyIsInBvc3R0eXBlcy9fZXZlbnQuc2NzcyIsInNlY3Rpb25zL2Zvb3Rlci5zY3NzIiwic2VjdGlvbnMvaGVhZGVyLnNjc3MiLCJjb21wb25lbnRzL19uYXYuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJO0VBQ0E7OztBQ0ZKO0VBQ0k7RUFDQTtFQUNBO0VBRUE7OztBQ0xKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNOSjtFQUNJO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUtKOztBQUFBO0FBQUE7O0FBQUEsOENBSzJDO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUEsOENBTU07QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBLGdGQU9rQztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7OztBQzdCbkY7QUFHQTtBQUFBO0FBQUE7QUFHQTtFQUNJOzs7QUFFRjtBQUFBO0FBQUE7QUFHQTtFQUNFOzs7QUFHSjtBQUFBO0FBQUE7QUFHQTtFQUNJOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0Y7RUFDSTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFHRjtFQUVJOzs7QUFHSjtBQUFBO0FBQUE7QUFHQTtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFHQTtFQUNJOzs7QUFJSjtBQUFBO0FBQUE7QUFHQTtFQUNJOzs7QUFJSjtFQUNJOzs7QUNqRUo7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUM1Qko7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBS0k7O0FBSkE7RUFDSTs7O0FBTVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJOztBQUVKO0VBQ0k7RUFDQTs7QUFFSjtFQUNJOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTs7QUFFSjtFQUNJOztBQUVKO0VBWko7SUFhUTtJQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQXJCSjtJQXNCUTs7OztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBZ0NJO0VBRUE7RUFDQTtFQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFyQ0E7RUFESjtBQUVRO0FBQUE7O0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0lBV0E7SUFFQTtJQUNBO0lBQ0E7SUFDQTs7RUFFQTtJQUNJO0lBQ0E7OztBQUdSO0VBekJKO0lBOEJROztFQUpBO0lBQ0k7Ozs7QUFrQlo7RUFDSTs7O0FBR0E7RUFDSTs7QUFFSjtFQUNJOzs7QUFHUjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOztBQUNBO0VBQ0k7SUFDSTtJQUNBOzs7O0FDbk1aO0VBQ0k7RUFDQTs7O0FBSUE7RUFFSTtFQUNBOzs7QUFHUjtFQUNJOzs7QUNiSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFJSjtFQUNJOzs7QUFLQTtFQUNJOzs7QUFJSjtFQUNJO0VBQ0E7OztBQ3JDUjtFQUVJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNuQ0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7O0FBR0E7RUFDSTtFQUNBO0VBQ0E7O0FBR1I7RUFDSTtFQUNBOztBQUNBO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUtSO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUtSO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOzs7QUFNaEI7RUFDSTtFQUNBOzs7QUN4REo7RUFDSTtFQUNBO0VBRUE7O0FBQ0E7RUFDSTtFQUNBOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTs7O0FDYlI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJOztBQUNBO0VBQ0k7RUFDQTs7O0FBS1o7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBOztBQUNBO0FBQUE7QUFBQTtFQUdJO0VBQ0E7RUFDQTs7QUFHUjtFQUNJOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7OztBQ3hHWjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7SUFDSTs7RUFFSjtJQUNJOzs7QUFJUjtFQUNJO0lBQ0k7O0VBRUo7SUFDSTs7O0FBSVI7RUFFSTtJQUNJOztFQUVKO0lBQ0k7OztBQ2hDUjtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0k7RUFDQTs7O0FBS1o7RUFDSTtJQUNJOzs7QUFJUjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7O0FBQ0E7RUFDSTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7OztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBOzs7QUFJUjtFQUNJO0lBQ0k7SUFDQTs7RUFFSjtJQUNJOzs7QUM1RVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFFQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLWjtFQUNJO0lBRUk7O0VBVUo7SUFDSTs7RUFTSjtJQUNJOztFQVNKO0lBQ0k7O0VBU0o7SUFDSTs7RUFTSjtJQUNJOztFQVNKO0lBQ0k7O0VBU0o7SUFDSTs7O0FDekpSO0VBQ0k7RUFDQTs7QUFDQTtFQUNJOzs7QUFHUjtFQUNJO0lBQ0k7OztBQ1RSO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7SUFDSTtJQUNBOzs7QUNaUjtFQUVJO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7SUFDSTs7RUFDQTtJQUNJOztFQUVKO0lBQ0k7O0VBRUo7SUFDSTs7O0FBS1o7RUFDSTtJQUNJO0lBQ0E7O0VBRUo7SUFDSTs7RUFFSjtJQUNJOzs7QUFHUjtFQUNJO0lBQ0k7SUFDQTs7RUFFSjtJQUNJOztFQUVKO0lBQ0k7O0VBRUo7SUFDSTs7RUFFSjtJQUNJOztFQUVKO0lBQ0k7SUFDQTs7O0FBR1I7RUFDSTtJQUNJO0lBQ0E7O0VBRUo7SUFDSTs7RUFFSjtJQUNJO0lBQ0E7OztBQUdSO0VBQ0k7SUFDSTs7RUFFSjtJQUNJOzs7QUN0R0o7RUFDSTtFQUNBO0VBQ0E7OztBQU1SO0VBQ0k7OztBQ1ZBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNmUjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFJQTtFQUNJOztBQUVKO0VBQ0k7OztBQUlSO0VBRUk7RUFDQTs7QUFDQTtFQUNJOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFHUjtFQUNJOztBQUdKO0VBQ0k7OztBQUlSO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS1I7RUFDSTs7QUMzRUE7RUFDSTs7QUFFSjtFQUNJOzs7QUNKSjtFQUNJOztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFJUjtBQUFBO0VBRUk7OztBQUVKO0VBQ0k7SUFFSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FDOUJKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBSUE7RUFDSTs7O0FDbkNaO0VBQ0k7RUFDQTs7QUFDQTtFQUNJOzs7QUFJUjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7OztBQ2JKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtBQUFBO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUdJO0VBQ0E7O0FBRUo7QUFBQTtFQUNJOztBQUVKO0FBQUE7QUFBQTtFQUVJO0VBQ0E7RUFDQTs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBR0k7RUFDQTs7O0FBS1o7RUFDSTs7O0FBRUo7RUFDSTs7O0FDaEVKO0VBQ0k7O0FBQ0E7RUFDSTs7QUFDQTtFQUZKO0lBR1E7OztBQUVKO0VBQ0k7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7RUFFSjtJQUNJOztFQUVBO0lBQ0k7O0VBR1I7SUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdSO0VBQ0k7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUpKO0lBS1E7SUFDQTs7OztBQU1oQjtFQUNJO0VBQ0E7O0FBQ0E7QUFBQTtFQUVJOztBQUdKO0VBQ0k7RUFDQTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBOzs7QUFJWjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQ0k7OztBQU1SO0VBQ0k7O0FBQ0E7RUFDSTtFQUNBOzs7QUFLWjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBRUE7RUFFQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFHUjtFQUNJOztBQUdBO0VBQ0k7O0FBRUo7RUFDSTtFQUNBOzs7QUM1S1I7RUFDSTs7O0FDREo7QUFBQTtFQUVJO0VBQ0E7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOzs7QUNWUjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7OztBQUdSO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJOztBQUVKO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7OztBQ2pEUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7OztBQUlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7O0FBRUo7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHUjtFQUNJOztBQUVKO0VBQ0k7RUFDQTs7O0FBSVo7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7OztBQUtaO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQ0k7OztBQUtaO0VBQ0k7RUFDQTs7O0FBV0o7RUFDSTtJQUNJOztFQUVKO0lBQ0k7OztBQ2xJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJQTtFQUNJO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7O0FBR0E7RUFDSTs7QUFJWjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7O0FBS0E7QUFBQTtFQUVJOztBQUtoQjtFQUNJOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTs7QUFHUjtFQUNJO0VBQ0E7O0FBQ0E7RUFDSTs7O0FBS1o7RUFDSTs7O0FBS0k7RUFDSTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBOztBQUlaO0VBQ0k7RUFDQTs7O0FDbEhKO0VBQ0k7SUFDSTs7RUFFSjtJQUNJO0lBQ0E7O0VBQ0E7SUFDSTs7RUFHUjtJQUNJOztFQUNBO0lBQ0k7O0VBR1I7SUFDSTtJQUNBOztFQUdBO0lBQ0k7O0VBSUo7SUFDSTs7OztBQU1oQjtFQUNJOztBQVNBO0VBQ0k7SUFDSTtJQUNBOztFQUdBO0lBQ0k7O0VBRUo7SUFDSTs7O0FBS1o7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOzs7QUNyRVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdBO0VBQ0k7OztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBLHFCQUNJO0FBeUJKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7O0FBQUE7O0FBdEJBO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7OztBQWtDUjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTs7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQU5KO0lBT1E7Ozs7QUFJUjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7SUFDSTs7RUFFSjtJQUVJO0lBRUE7SUFDQTs7RUFFSjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QUNsSUo7RUFDSTs7QUFDQTtFQUNJOzs7QUFLUjtFQUNJOztBQUNBO0VBQ0k7OztBQ1paO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUVJO0VBQ0k7O0FBQ0E7RUFDSTtFQUNBOztBQUVKO0VBRUk7RUFDQTs7QUFLUjtFQUNJO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7OztBQU1oQjtFQUNJO0VBQ0EsWUFDSTtFQUVKO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBRUo7RUFDSTs7QUFDQTtFQUNJOzs7QUFLWjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FBQ0E7QUFBQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0FBQUE7RUFDSTs7QUFJWjtFQUNJO0VBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJOzs7QUMvSFI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUtJO0VBQ0k7RUFDQTs7QUFHQTtFQUNJOztBQUlKO0VBQ0k7O0FBSUo7RUFDSTs7QUFJSjtFQUNJOztBQUlKO0VBQ0k7O0FBSUo7RUFDSTs7QUFJSjtFQUNJOztBQUtSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0E7RUFDSTs7QUFJSjtFQUNJOztBQUlKO0VBQ0k7O0FBSUo7RUFDSTs7QUFJSjtFQUNJOztBQUlKO0VBQ0k7O0FBSUo7RUFDSTs7O0FDcEloQjtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0k7RUFDQTs7O0FBS1o7QUFFSTtFQUNJO0VBQ0E7OztBQ2hDSjtFQUNJOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBOztBQUNBO0VBQ0k7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJUjtFQUNJOzs7QUNqQ1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUNJOzs7QUNiUjtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOzs7QUFHUjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFJSjtFQUNJO0VBRUE7O0FBQ0E7RUFDSTtFQUNBOztBQUNBO0VBQ0k7OztBQ3ZDWjtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUpKO0lBS1E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOzs7QUNuQko7RUFDSTs7O0FDRlI7RUFDSTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBOzs7QUNWWjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTs7QUFHUjtFQUNJOztBQUdKO0VBQ0k7O0FBRUk7RUFDSTtFQUVBOzs7QUN4RGhCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBRUk7RUFDQTs7QUFDQTtFQUVJO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJOztBQU1KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQVNaO0VBQ0k7OztBQUlSO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtFQUVJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUVJO0lBQ0k7SUFDQTtJQUNBO0lBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFFQTs7RUFFQTtJQUNJOztFQUlSO0lBQ0k7O0VBSUE7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7RUFDQTtJQUNJOztFQUVKO0lBQ0k7SUFDQTtJQUVBO0lBQ0E7SUFDQTtJQUNBOztFQUNBO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7O0VBQ0E7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFFQTtJQUNBOztFQUdSO0lBQ0k7O0VBRUo7SUFDSTs7RUFHUjtJQUNJO0lBQ0E7O0VBRUo7SUFDSTs7RUFFSjtJQUNJO0lBQ0E7O0VBQ0E7SUFDSTs7O0FBT3BCO0VBQ0k7RUFDQTtFQUNBIiwiZmlsZSI6Imdsb2JhbC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6cm9vdCB7XG4gICAgLS1raXZ2aS1zaW5nbGUtaXRlbS13aWR0aDogMzAwcHg7XG4gICAgLS1raXZ2aS1zaW5nbGUtaXRlbS13aWR0aC1tYXg6IDYwMHB4O1xufSIsIjpyb290IHtcbiAgICAtLWtpdnZpLWNvbG9yLWdyZWVuOiAjNDNkMmI1O1xuICAgIC0ta2l2dmktY29sb3ItYmx1ZTogIzJlYTNmMjtcbiAgICAtLWtpdnZpLWdsb2JhbC1iYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBcbiAgICAtLWtpdnZpLWNvbG9yLWxpZ2h0OiB3aGl0ZTtcbn1cbiIsIjpyb290IHtcbiAgICAtLXNwYWNlLWRlZmF1bHQ6IDFyZW07XG4gICAgLS1zcGFjZS1tZWRpdW06IDJyZW07XG4gICAgLS1zcGFjZS1sYXJnZXI6IDNyZW07XG4gICAgLS1zcGFjZS1sYXJnZXN0OiA0cmVtO1xuICAgIC0tc3BhY2Utc21hbGw6IC41cmVtO1xuICAgIC0tc3BhY2UtYnV0dG9uLWlubGluZTogdmFyKC0tc3BhY2UtZGVmYXVsdCk7XG59IiwiOnJvb3Qge1xuICAgIC0ta2l2dmktYmFzZS1mb250LXNpemU6IDEuMjVyZW07IC8vIDIwcHhcbiAgICAvKiBDTEFNUCBDQUxDVUxBVEVEIEFTIFBFUiBIRVJFIDogaHR0cHM6Ly9jaHJpc2J1cm5lbGwuY29tL2NsYW1wLWNhbGN1bGF0b3IvIHVzaW5nIDUwMCAmIDEwMDAgYXMgbWluIGFuZCBtYXggd2lkdGhzICovXG4gICAgLS1raXZ2aS1oMS1mb250LXNpemU6IGNsYW1wKDIuNXJlbSwgMXJlbSArIDQuOHZ3LCA0cmVtKTtcbiAgICAtLWtpdnZpLWgyLWZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgMXJlbSArIDMuMnZ3LCAzcmVtKTtcbiAgICAtLWtpdnZpLWgzLWZvbnQtc2l6ZTogY2xhbXAoMS41cmVtLCAwLjc1cmVtICsgMi40dncsIDIuMjVyZW0pO1xuICAgIC0ta2l2dmktaDQtZm9udC1zaXplOiBjbGFtcCgxLjI1cmVtLCAwLjc1cmVtICsgMS42dncsIDEuNzVyZW0pO1xuICAgIFxuXG5cblxuLypcblxuICAgIC0ta2l2dmktbWluLWZvbnQtc2l6ZTogMXJlbTsgLy8gMTZweFxuICAgIC0ta2l2dmktbWF4LWZvbnQtc2l6ZTogNHJlbTtcbiAgICBcbiAgICAvKiBNQVggRk9OVCBTSVpFUyBVU0lORyBHT0xERU4gUkFUSU8gKi8vKlxuICAgIC0ta2l2dmktZm9udC1zaXplLWw0aDogbWluKHZhcigtLWtpdnZpLWJhc2UtZm9udC1zaXplKSAqIDEuMTYxOCwgdmFyKC0ta2l2dmktbWF4LWZvbnQtc2l6ZSkpOyAgLy8gMjkuMDQ1cHhcbiAgICAtLWtpdnZpLWZvbnQtc2l6ZS1sM2g6IG1pbih2YXIoLS1raXZ2aS1iYXNlLWZvbnQtc2l6ZSkgKiAxLjE2MTggKiAxLjE2MTggKiAxLjE2MTgsIHZhcigtLWtpdnZpLW1heC1mb250LXNpemUpKTsgLy8gMzkuMjA0cHhcbiAgICAtLWtpdnZpLWZvbnQtc2l6ZS1sMmg6IG1pbih2YXIoLS1raXZ2aS1iYXNlLWZvbnQtc2l6ZSkgKiAxLjE2MTggKiAxLjE2MTggKiAxLjE2MTggKiAxLjE2MTggKiAxLjE2MTgsIHZhcigtLWtpdnZpLW1heC1mb250LXNpemUpKTsgLy8gNTIuOTE3MlxuICAgIC0ta2l2dmktZm9udC1zaXplLWwxaDogbWluKHZhcigtLWtpdnZpLWJhc2UtZm9udC1zaXplKSAqIDEuMTYxOCAqIDEuMTYxOCAqIDEuMTYxOCAqIDEuMTYxOCAqIDEuMTYxOCAqIDEuMTYxOCAqIDEuMTYxOCwgdmFyKC0ta2l2dmktbWF4LWZvbnQtc2l6ZSkpOyAvLyA3MS40MjY1XG5cbiAgICAvKiBNSU4gRk9OVCBTSVpFUyAtIERFRkFVTFQgVE8gRElWSURFIEJZIDIgKi8vKlxuICAgIC0ta2l2dmktZm9udC1zaXplLW1pbi1kaXZpZGVyOiAyO1xuICAgIC0ta2l2dmktZm9udC1zaXplLWw0bDogbWF4KHZhcigtLWtpdnZpLWZvbnQtc2l6ZS1sNGgpIC8gdmFyKC0ta2l2dmktZm9udC1zaXplLW1pbi1kaXZpZGVyKSwgdmFyKC0ta2l2dmktbWluLWZvbnQtc2l6ZSkpOyAvLyAxNnB4IGlzIG1pblxuICAgIC0ta2l2dmktZm9udC1zaXplLWwzbDogbWF4KHZhcigtLWtpdnZpLWZvbnQtc2l6ZS1sM2gpIC8gdmFyKC0ta2l2dmktZm9udC1zaXplLW1pbi1kaXZpZGVyKSwgdmFyKC0ta2l2dmktbWluLWZvbnQtc2l6ZSkpOyAvLyAxOS42MDIycHggXG4gICAgLS1raXZ2aS1mb250LXNpemUtbDJsOiBtYXgodmFyKC0ta2l2dmktZm9udC1zaXplLWwyaCkgLyB2YXIoLS1raXZ2aS1mb250LXNpemUtbWluLWRpdmlkZXIpLCB2YXIoLS1raXZ2aS1taW4tZm9udC1zaXplKSk7IC8vIDI2LjQ1ODZweFxuICAgIC0ta2l2dmktZm9udC1zaXplLWwxbDogbWF4KHZhcigtLWtpdnZpLWZvbnQtc2l6ZS1sMWgpIC8gdmFyKC0ta2l2dmktZm9udC1zaXplLW1pbi1kaXZpZGVyKSwgdmFyKC0ta2l2dmktbWluLWZvbnQtc2l6ZSkpOyAvLyAzNS43MTMzcHhcblxuICAgIC8qIENMQU1QIENBTENVTEFURUQgQVMgUEVSIEhFUkUgOiBodHRwczovL2NocmlzYnVybmVsbC5jb20vY2xhbXAtY2FsY3VsYXRvci8gKi8vKlxuICAgIC0ta2l2dmktZm9udC1zaXplLWw0YzogMC44MTJyZW0gKyAxLjAwM3Z3O1xuICAgIC0ta2l2dmktZm9udC1zaXplLWwzYzogMC45NDJyZW0gKyAxLjUwOHZ3O1xuICAgIC0ta2l2dmktZm9udC1zaXplLWwyYzogMS4xMjVyZW0gKyAyLjEyNXZ3O1xuICAgIC0ta2l2dmktZm9udC1zaXplLWwxYzogMS43MTdyZW0gKyAyLjc0N3Z3O1xuXG4gICAgLS1raXZ2aS1mb250LXNpemUtbDQ6IGNsYW1wKHZhcigtLWtpdnZpLWZvbnQtc2l6ZS1sNGwpLCB2YXIoLS1raXZ2aS1mb250LXNpemUtbDRjKSwgdmFyKC0ta2l2dmktZm9udC1zaXplLWw0aCkpO1xuICAgIC0ta2l2dmktZm9udC1zaXplLWwzOiBjbGFtcCh2YXIoLS1raXZ2aS1mb250LXNpemUtbDNsKSwgdmFyKC0ta2l2dmktZm9udC1zaXplLWwzYyksIHZhcigtLWtpdnZpLWZvbnQtc2l6ZS1sM2gpKTtcbiAgICAtLWtpdnZpLWZvbnQtc2l6ZS1sMjogY2xhbXAodmFyKC0ta2l2dmktZm9udC1zaXplLWwybCksIHZhcigtLWtpdnZpLWZvbnQtc2l6ZS1sMmMpLCB2YXIoLS1raXZ2aS1mb250LXNpemUtbDJoKSk7XG4gICAgLS1raXZ2aS1mb250LXNpemUtbDE6IGNsYW1wKHZhcigtLWtpdnZpLWZvbnQtc2l6ZS1sMWwpLCB2YXIoLS1raXZ2aS1mb250LXNpemUtbDFjKSwgdmFyKC0ta2l2dmktZm9udC1zaXplLWwxaCkpO1xuICAgICovXG4gICAgXG59IiwiLyogQkFTRUQgT04gaHR0cHM6Ly93d3cuam9zaHdjb21lYXUuY29tL2Nzcy9jdXN0b20tY3NzLXJlc2V0LyAqL1xuXG5cbi8qXG4gIDEuIFVzZSBhIG1vcmUtaW50dWl0aXZlIGJveC1zaXppbmcgbW9kZWwuXG4qL1xuKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuICAvKlxuICAgIDIuIFJlbW92ZSBkZWZhdWx0IG1hcmdpblxuICAqL1xuICAqIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuLypcbiAgMy4gQWxsb3cgcGVyY2VudGFnZS1iYXNlZCBoZWlnaHRzIGluIHRoZSBhcHBsaWNhdGlvblxuKi9cbmh0bWwsIGJvZHkge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuICBcbiAgLypcbiAgVHlwb2dyYXBoaWMgdHdlYWtzIVxuICA0LiBBZGQgYWNjZXNzaWJsZSBsaW5lLWhlaWdodFxuICA1LiBJbXByb3ZlIHRleHQgcmVuZGVyaW5nXG4qL1xuYm9keSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgfVxuXG4gIC8qXG4gIDYuIEltcHJvdmUgbWVkaWEgZGVmYXVsdHNcbiovXG5pbWcsIHBpY3R1cmUsIHZpZGVvLCBjYW52YXMsIHN2ZyB7XG4gICAgLy8gZGlzcGxheTogYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbi8qXG4gIDcuIFJlbW92ZSBidWlsdC1pbiBmb3JtIHR5cG9ncmFwaHkgc3R5bGVzXG4qL1xuaW5wdXQsIGJ1dHRvbiwgdGV4dGFyZWEsIHNlbGVjdCB7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgfVxuXG4vKlxuICA4LiBBdm9pZCB0ZXh0IG92ZXJmbG93c1xuKi9cbnAsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIH0gIFxuXG5cbi8qXG4gIDkuIENyZWF0ZSBhIHJvb3Qgc3RhY2tpbmcgY29udGV4dFxuKi9cbiNyb290LCAjX19uZXh0IHtcbiAgICBpc29sYXRpb246IGlzb2xhdGU7XG4gIH1cbiAgXG5cbioge1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5cbiIsIi5oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zY3JlZW4tcmVhZGVyLXRleHQge1xuICAgIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd29yZC13cmFwOiBub3JtYWwgIWltcG9ydGFudDtcbn1cblxuLnZpc3VhbGx5aGlkZGVuLFxuLnZpc3VhbGx5LWhpZGRlbiB7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB3aWR0aDogMXB4O1xufVxuXG4uY2VudGVyZWQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG59XG5cbi5jZW50ZXItaGVhZGVyLXRleHQgOmlzKGgxLCBoMiwgaDMsIGg0KSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG59XG4iLCIka2l2dmktbWF4LWNvbnRlbnQtd2lkdGg6IDEyODBweDtcblxuOnJvb3Qge1xuICAgIC0ta2l2dmktYmFzZS1mb250LWZhbWlseTogSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICAgIC0ta2l2dmktaDEtZm9udC1mYW1pbHk6IHZhcigtLWtpdnZpLWJhc2UtZm9udC1mYW1pbHkpO1xuICAgIC0ta2l2dmktaDItZm9udC1mYW1pbHk6IHZhcigtLWtpdnZpLWJhc2UtZm9udC1mYW1pbHkpO1xuICAgIC0ta2l2dmktaDMtZm9udC1mYW1pbHk6IHZhcigtLWtpdnZpLWJhc2UtZm9udC1mYW1pbHkpO1xuICAgIC0ta2l2dmktaDQtZm9udC1mYW1pbHk6IHZhcigtLWtpdnZpLWJhc2UtZm9udC1mYW1pbHkpO1xuICAgIC0ta2l2dmktaDUtZm9udC1mYW1pbHk6IHZhcigtLWtpdnZpLWJhc2UtZm9udC1mYW1pbHkpO1xuICAgIC0ta2l2dmktaDYtZm9udC1mYW1pbHk6IHZhcigtLWtpdnZpLWJhc2UtZm9udC1mYW1pbHkpO1xuXG4gICAgLS1raXZ2aS1iYXNlLWZvbnQtY29sb3I6ICM2NjY7XG4gICAgLS1raXZ2aS1oMS1mb250LWNvbG9yOiB2YXIoLS1raXZ2aS1iYXNlLWZvbnQtY29sb3IpO1xuICAgIC0ta2l2dmktaDItZm9udC1jb2xvcjogdmFyKC0ta2l2dmktYmFzZS1mb250LWNvbG9yKTtcbiAgICAtLWtpdnZpLWgzLWZvbnQtY29sb3I6IHZhcigtLWtpdnZpLWJhc2UtZm9udC1jb2xvcik7XG4gICAgLS1raXZ2aS1oNC1mb250LWNvbG9yOiB2YXIoLS1raXZ2aS1iYXNlLWZvbnQtY29sb3IpO1xuICAgIC0ta2l2dmktaDUtZm9udC1jb2xvcjogdmFyKC0ta2l2dmktYmFzZS1mb250LWNvbG9yKTtcbiAgICAtLWtpdnZpLWg2LWZvbnQtY29sb3I6IHZhcigtLWtpdnZpLWJhc2UtZm9udC1jb2xvcik7XG5cbiAgICAtLWtpdnZpLWJhc2UtdGV4dC1hbGlnbjogbGVmdDtcbiAgICAtLWtpdnZpLWhlYWRlci10ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLS1raXZ2aS1oMS10ZXh0LWFsaWduOiB2YXIoLS1raXZ2aS1oZWFkZXItdGV4dC1hbGlnbik7XG4gICAgLS1raXZ2aS1oMi10ZXh0LWFsaWduOiB2YXIoLS1raXZ2aS1oZWFkZXItdGV4dC1hbGlnbik7XG4gICAgLS1raXZ2aS1oMy10ZXh0LWFsaWduOiB2YXIoLS1raXZ2aS1oZWFkZXItdGV4dC1hbGlnbik7XG4gICAgLS1raXZ2aS1oNC10ZXh0LWFsaWduOiB2YXIoLS1raXZ2aS1oZWFkZXItdGV4dC1hbGlnbik7XG4gICAgLS1raXZ2aS1oNS10ZXh0LWFsaWduOiB2YXIoLS1raXZ2aS1oZWFkZXItdGV4dC1hbGlnbik7XG4gICAgLS1raXZ2aS1oNi10ZXh0LWFsaWduOiB2YXIoLS1raXZ2aS1oZWFkZXItdGV4dC1hbGlnbik7XG5cbiAgICAtLWtpdnZpLWxpbmstY29sb3I6IHJnYigwLCAwLCAyMzgpO1xuICAgIC0ta2l2dmktbGluay1ob3Zlci1jb2xvcjogdmFyKC0ta2l2dmktbGluay1jb2xvcik7XG4gICAgLS1raXZ2aS1saW5rLWFjdGl2ZS1jb2xvcjogdmFyKC0ta2l2dmktbGluay1jb2xvcik7XG4gICAgLS1raXZ2aS1saW5rLXZpc2l0ZWQtY29sb3I6IHZhcigtLWtpdnZpLWxpbmstY29sb3IpO1xuICAgIC0ta2l2dmktbGluay10cmFuc2l0aW9uLXRpbWU6IDAuM3M7XG4gICAgLS1raXZ2aS1saW5rLXRyYW5zaXRpb246IGFsbCB2YXIoLS1raXZ2aS1saW5rLXRyYW5zaXRpb24tdGltZSkgZWFzZS1pbi1vdXQ7XG4gICAgLS1raXZ2aS1saW5rLWRlY29yYXRpb246IG5vbmU7XG4gICAgLS1raXZ2aS1saW5rLWhvdmVyLWRlY29yYXRpb246IG5vbmU7XG4gICAgLS1raXZ2aS1saW5rLXVuZGVybGluZS1vZmZzZXQ6IDVweDtcblxuICAgIC0ta2l2dmktbWF4LWNvbnRlbnQtd2lkdGg6ICN7JGtpdnZpLW1heC1jb250ZW50LXdpZHRofTsgLy8gRGVmYXVsdCB0byAxMjgwcHhcblxuICAgIC0ta2l2dmktZnVsbC13aWR0aC1tYXJnaW4tcmlnaHQ6IGNhbGMoLTEwMHZ3IC8gMiArIHZhcigtLWtpdnZpLW1heC1jb250ZW50LXdpZHRoKSAvIDIpO1xuICAgIC0ta2l2dmktZnVsbC13aWR0aC1wYWRkaW5nLWlubGluZTogY2FsYygoLTEwMHZ3IC8gMiArIHZhcigtLWtpdnZpLW1heC1jb250ZW50LXdpZHRoKSAvIDIpICogLTEpO1xuICAgIC0ta2l2dmktZnVsbC13aWR0aC1wYWRkaW5nLWxlZnQ6IGNhbGMoKC0xMDB2dyArIHZhcigtLWtpdnZpLW1heC1jb250ZW50LXdpZHRoKSkgLyAyICogLTEpO1xuICAgIC0ta2l2dmktZnVsbC13aWR0aC1tYXJnaW4tbGVmdDogY2FsYygoLTEwMHZ3ICsgdmFyKC0ta2l2dmktbWF4LWNvbnRlbnQtd2lkdGgpKSAvIDIpO1xufVxuXG4qIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0ta2l2dmktYmFzZS1mb250LWZhbWlseSk7XG59XG5cbmh0bWwge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWtpdnZpLWdsb2JhbC1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0ta2l2dmktYmFzZS1mb250LWNvbG9yKTtcbiAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbn1cblxuYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0ta2l2dmktYmFzZS1mb250LXNpemUpO1xufVxuXG5wIHtcbiAgICAmOmVtcHR5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBtYXJnaW4tYmxvY2s6IHZhcigtLXNwYWNlLWRlZmF1bHQpO1xufVxuXG5hOm5vdCguYnV0dG9uKSB7XG4gICAgY29sb3I6IHZhcigtLWtpdnZpLWxpbmstY29sb3IpO1xuICAgIHRyYW5zaXRpb246IHZhcigtLWtpdnZpLWxpbmstdHJhbnNpdGlvbik7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB2YXIoLS1raXZ2aS1saW5rLWRlY29yYXRpb24pO1xuICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogdmFyKC0ta2l2dmktbGluay11bmRlcmxpbmUtb2Zmc2V0KTtcbiAgICAmOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogdmFyKC0ta2l2dmktbGluay12aXNpdGVkLWNvbG9yKTtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1raXZ2aS1saW5rLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB2YXIoLS1raXZ2aS1saW5rLWhvdmVyLWRlY29yYXRpb24pO1xuICAgIH1cbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1raXZ2aS1saW5rLWFjdGl2ZS1jb2xvcik7XG4gICAgfVxufVxuXG4ua2l2dmlfc2VjdGlvbiB7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogdmFyKC0tc3BhY2UtZGVmYXVsdCkgMDtcbiAgICBtYXJnaW46IHZhcigtLXNwYWNlLWxhcmdlcikgYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcCB7XG4gICAgICAgIHRleHQtYWxpZ246IHZhcigtLWtpdnZpLWJhc2UtdGV4dC1hbGlnbik7XG4gICAgfVxuICAgIGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTI4MHB4KSBhbmQgKG1heC13aWR0aDogMTMyMHB4KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICB9XG4gICAgJi5mbGV4IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMDBweCkge1xuICAgICAgICBtYXJnaW4tYmxvY2s6IHZhcigtLXNwYWNlLWRlZmF1bHQpO1xuICAgIH1cbn1cbi5raXZ2aV9zZWN0aW9uX2NvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWtpdnZpLW1heC1jb250ZW50LXdpZHRoKTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgd2lkdGg6IDkwJTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IHZhcigtLXNwYWNlLWxhcmdlcik7XG59XG5cbi5wYWdlLXRlbXBsYXRlLWRlZmF1bHQgLmtpdnZpX3NlY3Rpb24ge1xuICAgIHRleHQtYWxpZ246IHZhcigtLWtpdnZpLWJhc2UtdGV4dC1hbGlnbik7XG59XG5cbi5mdWxsLXdpZHRoIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAka2l2dmktbWF4LWNvbnRlbnQtd2lkdGgpIHtcbiAgICAgICAgLyogVEhJUyBXQVMgSU4gVVNFIE9OIE9SSUdJTkFMIFNJVEUgQlVJTEQsIFdIRU4gSU1BR0VTIE5FRURFRCBUTyBTUEFOIFRIRSBGVUxMLVdJRFRILiBUSElOR1MgSEFWRSBCRUVOIFJFRU5HSU5FRVJFRCBBTkQgSVQgRE9FU04nVCBBUFBFQVIgTkVFREVELlxuICAgICAgICAgICAgTEVBVklORyBJTiBQTEFDRSBCRUNBVVNFIElUJ1MgSEVMUEZVTCBXSVRIIFNPTUUgTEFZT1VUU1xuXG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1raXZ2aS1mdWxsLXdpZHRoLW1hcmdpbi1sZWZ0KTtcblxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0ta2l2dmktZnVsbC13aWR0aC1wYWRkaW5nLWxlZnQpO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgICovXG5cbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgICYuc3ViLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtIHZhcigtLWtpdnZpLWZ1bGwtd2lkdGgtcGFkZGluZy1sZWZ0KSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTUwcHgpIHtcbiAgICAgICAgJjpub3QoLmtpdnZpLXNlY3Rpb24tYmFja2dyb3VuZC1rZWVwLWltYWdlLW1vYmlsZSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgcmlnaHQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLyogXG4gICAgKiogRlJPTSBCSU1cbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICovXG59XG5cbi5taW4tbWFyZ2luLWJvdHRvbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2UtZGVmYXVsdCk7XG59XG4uc2VjdGlvbiB7XG4gICAgJi5taW4tbWFyZ2luLWJvdHRvbSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlLWRlZmF1bHQpO1xuICAgIH1cbiAgICAmLm5vLW1hcmdpbi1ib3R0b20ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cbi5leHRyYS1wYWRkaW5nIHtcbiAgICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1zcGFjZS1odWdlKSAqIDMpO1xufVxuXG4ubm8tbWFyZ2luLXRvcCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbn1cblxuLndpZHRoLTk1MCB7XG4gICAgbWF4LXdpZHRoOiA5NTBweDtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgICAgICAgJi53aGl0ZS1zZWN0aW9uIC5raXZ2aV9zZWN0aW9uX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjpyb290IHtcbiAgICAtLWtpdnZpLWRhcmstc2VjdGlvbi1iYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgIC0ta2l2dmktZGFyay1zZWN0aW9uLXRleHQ6ICNmZmZmZmY7XG59XG5cbi5raXZ2aS1kYXJrLXNlY3Rpb24ge1xuICAgIC5raXZ2aV9zZWN0aW9uX2NvbnRlbnQsXG4gICAgJi5mdWxsLXdpZHRoIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0ta2l2dmktZGFyay1zZWN0aW9uLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0ta2l2dmktZGFyay1zZWN0aW9uLXRleHQpO1xuICAgIH1cbn1cbi5raXZ2aS1kYXJrLXNlY3Rpb24gOmlzKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIHNwYW4sIGxpKSB7XG4gICAgY29sb3I6IHZhcigtLWtpdnZpLWRhcmstc2VjdGlvbi10ZXh0KTtcbn1cbiIsImltZy5hbGlnbnJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luOiAwIDAgMWVtIDFlbTtcbn1cbmltZy5hbGlnbmxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMCAxZW0gMWVtIDA7XG59XG5pbWcuYWxpZ25jZW50ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi5hbGlnbnJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG4uYWxpZ25sZWZ0IHtcbiAgICBmbG9hdDogbGVmdDtcbn1cbi5hbGlnbmNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4vLyBkaXYgOmhhcyg+IGltZ1tjbGFzc149d3AtaW1hZ2VdKSB7XG5kaXZbaWRePVwiYXR0YWNobWVudF9cIl0ge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIC8vIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi5raXZ2aS10d291cCAua2l2dmktb2JqZWN0LWZpdC1jb3ZlciB7XG4gICAgaW1nIHtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxufVxuLmtpdnZpLXR3b3VwIC5raXZ2aS1vYmplY3QtZml0LWNvbnRhaW4ge1xuICAgIGltZyB7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG59XG4iLCJcblxuOmlzKGgxLCBoMiwgaDMsIGg0LCBoNSkge1xuICAgIFxuICAgIGxldHRlci1zcGFjaW5nOiAxLjVweDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGh5cGhlbnM6IG1hbnVhbDtcbiAgICBcbn1cbmgxIHtcbiAgICBmb250LXNpemU6IHZhcigtLWtpdnZpLWgxLWZvbnQtc2l6ZSk7XG4gICAgbWFyZ2luLWJsb2NrOiB2YXIoLS1zcGFjZS1sYXJnZXIpO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1raXZ2aS1oMS1mb250LWZhbWlseSk7ICAgICBcbiAgICBjb2xvcjogdmFyKC0ta2l2dmktaDEtZm9udC1jb2xvcik7XG4gICAgdGV4dC1hbGlnbjogdmFyKC0ta2l2dmktaDEtdGV4dC1hbGlnbik7XG59XG5oMiB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1raXZ2aS1oMi1mb250LXNpemUpO1xuICAgIG1hcmdpbi1ibG9jazogdmFyKC0tc3BhY2UtbWVkaXVtKTsgICAgXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWtpdnZpLWgyLWZvbnQtZmFtaWx5KTsgICAgIFxuICAgIGNvbG9yOiB2YXIoLS1raXZ2aS1oMi1mb250LWNvbG9yKTtcbiAgICB0ZXh0LWFsaWduOiB2YXIoLS1raXZ2aS1oMi10ZXh0LWFsaWduKTtcbn1cbmgzIHtcbiAgICBmb250LXNpemU6IHZhcigtLWtpdnZpLWgzLWZvbnQtc2l6ZSk7XG4gICAgbWFyZ2luLWJsb2NrOiB2YXIoLS1zcGFjZS1zbWFsbCk7ICBcbiAgICBmb250LWZhbWlseTogdmFyKC0ta2l2dmktaDMtZm9udC1mYW1pbHkpOyAgXG4gICAgY29sb3I6IHZhcigtLWtpdnZpLWgzLWZvbnQtY29sb3IpOyAgICBcbiAgICB0ZXh0LWFsaWduOiB2YXIoLS1raXZ2aS1oMy10ZXh0LWFsaWduKTtcbn1cbmg0IHtcbiAgICBmb250LXNpemU6IHZhcigtLWtpdnZpLWg0LWZvbnQtc2l6ZSk7XG4gICAgbWFyZ2luLWJsb2NrOiB2YXIoLS1zcGFjZS1zbWFsbCk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWtpdnZpLWg0LWZvbnQtZmFtaWx5KTsgICAgICAgIFxuICAgIGNvbG9yOiB2YXIoLS1raXZ2aS1oNC1mb250LWNvbG9yKTtcbiAgICB0ZXh0LWFsaWduOiB2YXIoLS1raXZ2aS1oNC10ZXh0LWFsaWduKTtcbn1cbiIsIi5jb2x1bW5zLXR3byB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLmtpdnZpLWNvbHVtbnMgeyAgICBcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tc3BhY2UtbWVkaXVtKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgID4gKiB7XG4gICAgICAgIG1pbi13aWR0aDogdmFyKC0ta2l2dmktc2luZ2xlLWl0ZW0td2lkdGgpO1xuICAgIH1cbiAgICAmLmVxdWFsLXdpZHRoIHtcbiAgICAgICAgPiAqIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5jb2xzLTEtMiB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBnYXA6IHZhcigtLXNwYWNlLWxhcmdlc3QpO1xuICAgICAgICA+ICoge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIGZsZXg6IDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5jb2xzLTItMSB7XG4gICAgICAgID4gKiB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIGZsZXg6IDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5jb2xzLTYwLTQwIHtcbiAgICAgICAgPiAqIHtcbiAgICAgICAgICAgIGZsZXg6IDQwO1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIGZsZXg6IDYwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uaGFuZ2luZy1pbmRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogMjJweDtcbiAgICB0ZXh0LWluZGVudDogLTIycHg7XG59XG4iLCIua2l2dmlfc2lkZWJhciB7XG4gICAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplO1xuICAgIGNvbnRhaW5lci1uYW1lOiBraXZ2aS1zaWRlYmFyO1xuICAgIFxuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgaDIge1xuICAgICAgICBmb250LXNpemU6IDM4cHg7XG4gICAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IDA7XG4gICAgfVxuICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICAgIHVsIHtcbiAgICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAwLjVyZW07XG4gICAgfVxufVxuIiwiLmtpdnZpLW1vZGFsIHtcbiAgICAtLWtpdnZpLW1vZGFsLXRyYW5zaXRpb24tbGVuZ3RoOiAxcztcbiAgICAtLWtpdnZpLW1vZGFsLXRyYW5zaXRpb24tZGVsYXk6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiA5OTk5O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7ICBcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0ta2l2dmktbW9kYWwtdHJhbnNpdGlvbi1sZW5ndGgpO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLWtpdnZpLW1vZGFsLXRyYW5zaXRpb24tZGVsYXkpO1xuICAgIC5raXZ2aS1tb2RhbC1pbm5lciB7XG4gICAgICAgIHdpZHRoOiA5MCU7XG4gICAgICAgIG1pbi13aWR0aDogdmFyKC0ta2l2dmktc2luZ2xlLWl0ZW0td2lkdGgpO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGNvbnRhaW5lci1uYW1lOiBraXZ2aS1tb2RhbC1pbm5lcjtcbiAgICAgICAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplO1xuICAgIH1cbiAgICAua2l2dmktbW9kYWwtY2xvc2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogdmFyKC0tc3BhY2UtZGVmYXVsdCk7XG4gICAgICAgIHJpZ2h0OiB2YXIoLS1zcGFjZS1kZWZhdWx0KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICB9XG4gICAgJi5hY3RpdmUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAmLnNob3cge1xuICAgICAgICAgICAgLS1raXZ2aS1tb2RhbC10cmFuc2l0aW9uLWRlbGF5OiAwO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH0gICAgXG59XG5cbi8qIFBSRVZJT1VTIENPREUgLSBNQVkgTk9UIEJFIElOIFVTRSBCVVQgV09VTEQgTkVFRCBUTyBSRVNFQVJDSCBCRUZPUkUgQ09ORklSTUlORyBBTkQgUkVNT1ZJTkcgKi9cbi5tb2RhbC5zbGlkZWluIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTUwJSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZS1pbi1vdXQ7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIHotaW5kZXg6IDUwMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAubW9kYWwtdGV4dCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICB3aWR0aDogNjYlO1xuICAgICAgICBoMixcbiAgICAgICAgaDMsXG4gICAgICAgIHAge1xuICAgICAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogdmFyKC0ta2l2dmktc2luZ2xlLWl0ZW0td2lkdGgtbWF4KTtcbiAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tc3BhY2UtZGVmYXVsdCkgYXV0bztcbiAgICAgICAgfVxuICAgIH1cbiAgICAubW9kYWwtaW1nIHtcbiAgICAgICAgd2lkdGg6IDM0JTtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwdmg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaDIge1xuICAgICAgICBjb2xvcjogdmFyKC0ta2l2dmktY29sb3ItZGFyay10ZWFsKTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgIH1cbiAgICBoMyB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1raXZ2aS1jb2xvci1vcmFuZ2UpO1xuICAgIH1cbiAgICAuYmx1cmIge1xuICAgICAgICBjb2xvcjogdmFyKC0ta2l2dmktY29sb3ItZGFyay10ZWFsKTtcbiAgICB9XG4gICAgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICB9XG4gICAgJi5hY3RpdmUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgfVxuICAgIC5tb2RhbC1jbG9zZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgZm9udC1zaXplOiA1MHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0ta2l2dmktY29sb3ItdGVhbCk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiOnJvb3Qge1xuICAgIC0tYW5pbWF0aW9uU3RhcnRUcmFuc2xhdGVZOiB2YXIoLS1zcGFjZS1tZWRpdW0pO1xuICAgIC0tYW5pbWF0aW9uU3RhcnRPcGFjaXR5OiAwO1xuICAgIC0tYW5pbWF0aW9uU3BlZWQ6IDAuNXM7XG4gICAgLS1hbmltYXRpb25EZWxheTogMXM7XG4gICAgLS1hbmltYXRpb25Sb3RhdGlvbjogMzVkZWc7XG59XG5cbkBrZXlmcmFtZXMgZmFkZU9wYWNpdHkge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXRPcGFjaXR5IHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGUge1xuICAgIC8vIHJvdGF0ZSBvbiAzZCB0cmFuc2Zvcm0gZm9yIGJlc3QgcGVyZiwgaXQgZW5zdXJlcyBHUFUgYWNjZWxlcmF0ZWQgYW5pbWF0aW9uXG4gICAgZnJvbSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlWigzNjBkZWcpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlWigwZGVnKTtcbiAgICB9XG59IiwiLnNsaWRldXB0ZXh0IHtcbiAgICAtLWFuaW1hdGlvblN0YXJ0VHJhbnNsYXRlWTogMjAwJTsgICAgXG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC5pbm5lciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLWFuaW1hdGlvblN0YXJ0VHJhbnNsYXRlWSkpO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tYW5pbWF0aW9uU3BlZWQpO1xuICAgICAgICBvcGFjaXR5OiB2YXIoLS1hbmltYXRpb25TdGFydE9wYWNpdHkpO1xuICAgIH1cbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgIC5pbm5lciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5zbGlkZXVwdGV4dCAuaW5uZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgfVxufVxuXG4uc2xpZGV1cFdvcmQge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5hY3RpdmUgLnNsaWRldXAge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMnM7XG4gICAgJi5kZWxheS0xIHtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC41cztcbiAgICB9XG4gICAgJi5kZWxheS0yIHtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMXM7XG4gICAgfVxuICAgICYuZGVsYXktMyB7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDEuNXM7XG4gICAgfVxuICAgICYuZGVsYXktNCB7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDJzO1xuICAgIH1cbiAgICAmLmRlbGF5LTUge1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAyLjVzO1xuICAgIH1cbiAgICAmLmRlbGF5LTYge1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAzcztcbiAgICB9XG4gICAgJi5kZWxheS03IHtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMy41cztcbiAgICB9XG4gICAgJi5kZWxheS04IHtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogNHM7XG4gICAgfVxuICAgICYuZGVsYXktOSB7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDQuNXM7XG4gICAgfVxufVxuLnNsaWRldXAgeyAgICBcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkodmFyKC0tYW5pbWF0aW9uU3RhcnRUcmFuc2xhdGVZKSk7XG4gICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLWFuaW1hdGlvblNwZWVkKTtcbiAgICBvcGFjaXR5OiB2YXIoLS1hbmltYXRpb25TdGFydE9wYWNpdHkpO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLWFuaW1hdGlvbkRlbGF5KTtcbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnNsaWRldXAge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICAgIC5hY3RpdmUgLnNsaWRldXAge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbn1cbiIsIjpyb290IHtcbiAgICAtLWxvYWRlckNvbG9yU3RhcnQ6IHJnYmEoMzUsIDIyOSwgMjE5LCAwLjIpO1xuICAgIC0tbG9hZGVyQ29sb3JNaWQ6IHJnYmEoMzUsIDIyOSwgMjE5LCAwLjUpO1xuICAgIC0tbG9hZGVyQ29sb3JFbmQ6IHJnYmEoMzUsIDIyOSwgMjE5LCAwLjcpO1xuICAgIC0tbG9hZGVyU2l6ZTogMXJlbTtcbn1cblxuI3BhZ2UtdHJhbnNpdGlvbi5mYWRlc3Bpbm5lciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIHRyYW5zaXRpb246IGFsbCAyLjVzO1xuICAgICYuYWN0aXZlIHtcbiAgICAgICAgei1pbmRleDogOTk5OTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAxcztcbiAgICB9XG4gICAgI3BhZ2UtbG9hZGVyIHtcbiAgICAgICAgbWFyZ2luOiAxMDBweCBhdXRvO1xuICAgICAgICBmb250LXNpemU6IDI1cHg7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1sb2FkZXJTaXplKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1sb2FkZXJTaXplKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICh2YXIoLS1sb2FkZXJTaXplIC8gMikpKTtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IC05OTk5ZW07XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgJi5lbnRyeSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5jaXJjbGUge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1raXZ2aS1jb2xvci1vcmFuZ2UpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0ZSBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb246IHJvdGF0ZSBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cbiAgICAgICAgLmNpcmNsZS5vbmUge1xuICAgICAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgICAgICBsZWZ0OiA1MHB4O1xuICAgICAgICAgICAgdG9wOiA1MHB4O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0ta2l2dmktY29sb3ItdGVhbCk7XG4gICAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMC44NXM7XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDAuODVzO1xuICAgICAgICB9XG4gICAgICAgIC5jaXJjbGUudHdvIHtcbiAgICAgICAgICAgIGhlaWdodDogNzVweDtcbiAgICAgICAgICAgIHdpZHRoOiA3NXB4O1xuICAgICAgICAgICAgdG9wOiAzOHB4O1xuICAgICAgICAgICAgbGVmdDogMzhweDtcblxuICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuOTVzO1xuXG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDAuOTVzO1xuICAgICAgICB9XG4gICAgICAgIC5jaXJjbGUudGhyZWUge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgICAgIHRvcDogMjVweDtcbiAgICAgICAgICAgIGxlZnQ6IDI1cHg7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1raXZ2aS1jb2xvci1kYXJrLXRlYWwpO1xuICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDEuMDVzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjA1cztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGtleWZyYW1lcyBsb2FkNSB7XG4gICAgMCUsXG4gICAgMTAwJSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDBlbSAtMi42ZW0gMGVtIDBlbSAjZmZmZmZmLFxuICAgICAgICAgICAgMS44ZW0gLTEuOGVtIDAgMGVtIHZhcigtLWxvYWRlckNvbG9yU3RhcnQpLFxuICAgICAgICAgICAgMi41ZW0gMGVtIDAgMGVtIHZhcigtLWxvYWRlckNvbG9yU3RhcnQpLFxuICAgICAgICAgICAgMS43NWVtIDEuNzVlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvclN0YXJ0KSxcbiAgICAgICAgICAgIDBlbSAyLjVlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvclN0YXJ0KSxcbiAgICAgICAgICAgIC0xLjhlbSAxLjhlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvclN0YXJ0KSxcbiAgICAgICAgICAgIC0yLjZlbSAwZW0gMCAwZW0gdmFyKC0tbG9hZGVyQ29sb3JNaWQpLFxuICAgICAgICAgICAgLTEuOGVtIC0xLjhlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvckVuZCk7XG4gICAgfVxuXG4gICAgMTIuNSUge1xuICAgICAgICBib3gtc2hhZG93OiAwZW0gLTIuNmVtIDBlbSAwZW0gdmFyKC0tbG9hZGVyQ29sb3JFbmQpLFxuICAgICAgICAgICAgMS44ZW0gLTEuOGVtIDAgMGVtICNmZmZmZmYsIDIuNWVtIDBlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvclN0YXJ0KSxcbiAgICAgICAgICAgIDEuNzVlbSAxLjc1ZW0gMCAwZW0gdmFyKC0tbG9hZGVyQ29sb3JTdGFydCksXG4gICAgICAgICAgICAwZW0gMi41ZW0gMCAwZW0gdmFyKC0tbG9hZGVyQ29sb3JTdGFydCksXG4gICAgICAgICAgICAtMS44ZW0gMS44ZW0gMCAwZW0gdmFyKC0tbG9hZGVyQ29sb3JTdGFydCksXG4gICAgICAgICAgICAtMi42ZW0gMGVtIDAgMGVtIHZhcigtLWxvYWRlckNvbG9yU3RhcnQpLFxuICAgICAgICAgICAgLTEuOGVtIC0xLjhlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvck1pZCk7XG4gICAgfVxuXG4gICAgMjUlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMGVtIC0yLjZlbSAwZW0gMGVtIHZhcigtLWxvYWRlckNvbG9yTWlkKSxcbiAgICAgICAgICAgIDEuOGVtIC0xLjhlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvckVuZCksIDIuNWVtIDBlbSAwIDBlbSAjZmZmZmZmLFxuICAgICAgICAgICAgMS43NWVtIDEuNzVlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvclN0YXJ0KSxcbiAgICAgICAgICAgIDBlbSAyLjVlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvclN0YXJ0KSxcbiAgICAgICAgICAgIC0xLjhlbSAxLjhlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvclN0YXJ0KSxcbiAgICAgICAgICAgIC0yLjZlbSAwZW0gMCAwZW0gdmFyKC0tbG9hZGVyQ29sb3JTdGFydCksXG4gICAgICAgICAgICAtMS44ZW0gLTEuOGVtIDAgMGVtIHZhcigtLWxvYWRlckNvbG9yU3RhcnQpO1xuICAgIH1cblxuICAgIDM3LjUlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMGVtIC0yLjZlbSAwZW0gMGVtIHZhcigtLWxvYWRlckNvbG9yU3RhcnQpLFxuICAgICAgICAgICAgMS44ZW0gLTEuOGVtIDAgMGVtIHZhcigtLWxvYWRlckNvbG9yTWlkKSxcbiAgICAgICAgICAgIDIuNWVtIDBlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvckVuZCksIDEuNzVlbSAxLjc1ZW0gMCAwZW0gI2ZmZmZmZixcbiAgICAgICAgICAgIDBlbSAyLjVlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvclN0YXJ0KSxcbiAgICAgICAgICAgIC0xLjhlbSAxLjhlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvclN0YXJ0KSxcbiAgICAgICAgICAgIC0yLjZlbSAwZW0gMCAwZW0gdmFyKC0tbG9hZGVyQ29sb3JTdGFydCksXG4gICAgICAgICAgICAtMS44ZW0gLTEuOGVtIDAgMGVtIHZhcigtLWxvYWRlckNvbG9yU3RhcnQpO1xuICAgIH1cblxuICAgIDUwJSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDBlbSAtMi42ZW0gMGVtIDBlbSB2YXIoLS1sb2FkZXJDb2xvclN0YXJ0KSxcbiAgICAgICAgICAgIDEuOGVtIC0xLjhlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvclN0YXJ0KSxcbiAgICAgICAgICAgIDIuNWVtIDBlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvck1pZCksXG4gICAgICAgICAgICAxLjc1ZW0gMS43NWVtIDAgMGVtIHZhcigtLWxvYWRlckNvbG9yRW5kKSwgMGVtIDIuNWVtIDAgMGVtICNmZmZmZmYsXG4gICAgICAgICAgICAtMS44ZW0gMS44ZW0gMCAwZW0gdmFyKC0tbG9hZGVyQ29sb3JTdGFydCksXG4gICAgICAgICAgICAtMi42ZW0gMGVtIDAgMGVtIHZhcigtLWxvYWRlckNvbG9yU3RhcnQpLFxuICAgICAgICAgICAgLTEuOGVtIC0xLjhlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvclN0YXJ0KTtcbiAgICB9XG5cbiAgICA2Mi41JSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDBlbSAtMi42ZW0gMGVtIDBlbSB2YXIoLS1sb2FkZXJDb2xvclN0YXJ0KSxcbiAgICAgICAgICAgIDEuOGVtIC0xLjhlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvclN0YXJ0KSxcbiAgICAgICAgICAgIDIuNWVtIDBlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvclN0YXJ0KSxcbiAgICAgICAgICAgIDEuNzVlbSAxLjc1ZW0gMCAwZW0gdmFyKC0tbG9hZGVyQ29sb3JNaWQpLFxuICAgICAgICAgICAgMGVtIDIuNWVtIDAgMGVtIHZhcigtLWxvYWRlckNvbG9yRW5kKSwgLTEuOGVtIDEuOGVtIDAgMGVtICNmZmZmZmYsXG4gICAgICAgICAgICAtMi42ZW0gMGVtIDAgMGVtIHZhcigtLWxvYWRlckNvbG9yU3RhcnQpLFxuICAgICAgICAgICAgLTEuOGVtIC0xLjhlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvclN0YXJ0KTtcbiAgICB9XG5cbiAgICA3NSUge1xuICAgICAgICBib3gtc2hhZG93OiAwZW0gLTIuNmVtIDBlbSAwZW0gdmFyKC0tbG9hZGVyQ29sb3JTdGFydCksXG4gICAgICAgICAgICAxLjhlbSAtMS44ZW0gMCAwZW0gdmFyKC0tbG9hZGVyQ29sb3JTdGFydCksXG4gICAgICAgICAgICAyLjVlbSAwZW0gMCAwZW0gdmFyKC0tbG9hZGVyQ29sb3JTdGFydCksXG4gICAgICAgICAgICAxLjc1ZW0gMS43NWVtIDAgMGVtIHZhcigtLWxvYWRlckNvbG9yU3RhcnQpLFxuICAgICAgICAgICAgMGVtIDIuNWVtIDAgMGVtIHZhcigtLWxvYWRlckNvbG9yTWlkKSxcbiAgICAgICAgICAgIC0xLjhlbSAxLjhlbSAwIDBlbSB2YXIoLS1sb2FkZXJDb2xvckVuZCksIC0yLjZlbSAwZW0gMCAwZW0gI2ZmZmZmZixcbiAgICAgICAgICAgIC0xLjhlbSAtMS44ZW0gMCAwZW0gdmFyKC0tbG9hZGVyQ29sb3JTdGFydCk7XG4gICAgfVxuXG4gICAgODcuNSUge1xuICAgICAgICBib3gtc2hhZG93OiAwZW0gLTIuNmVtIDBlbSAwZW0gdmFyKC0tbG9hZGVyQ29sb3JTdGFydCksXG4gICAgICAgICAgICAxLjhlbSAtMS44ZW0gMCAwZW0gdmFyKC0tbG9hZGVyQ29sb3JTdGFydCksXG4gICAgICAgICAgICAyLjVlbSAwZW0gMCAwZW0gdmFyKC0tbG9hZGVyQ29sb3JTdGFydCksXG4gICAgICAgICAgICAxLjc1ZW0gMS43NWVtIDAgMGVtIHZhcigtLWxvYWRlckNvbG9yU3RhcnQpLFxuICAgICAgICAgICAgMGVtIDIuNWVtIDAgMGVtIHZhcigtLWxvYWRlckNvbG9yU3RhcnQpLFxuICAgICAgICAgICAgLTEuOGVtIDEuOGVtIDAgMGVtIHZhcigtLWxvYWRlckNvbG9yTWlkKSxcbiAgICAgICAgICAgIC0yLjZlbSAwZW0gMCAwZW0gdmFyKC0tbG9hZGVyQ29sb3JFbmQpLCAtMS44ZW0gLTEuOGVtIDAgMGVtICNmZmZmZmY7XG4gICAgfVxufVxuIiwiLnJvdGF0ZSB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDJzO1xuICAgIG1heC13aWR0aDogOTAlO1xuICAgICYuYWN0aXZlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUodmFyKC0tYW5pbWF0aW9uUm90YXRpb24pKTtcbiAgICB9XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5yb3RhdGUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSh2YXIoLS1hbmltYXRpb25Sb3RhdGlvbikpO1xuICAgIH1cbn1cbiIsIi5mYWRlaW4ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSA0cywgdHJhbnNmb3JtIDFzO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDBweCk7XG59XG4uZmFkZWluLmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5mYWRlaW4ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgfVxufVxuIiwiLnR5cGluZyB7XG4gICAgLy8gb3ZlcmZsb3c6IGhpZGRlbjsgLyogRW5zdXJlcyB0aGUgY29udGVudCBpcyBub3QgcmV2ZWFsZWQgdW50aWwgdGhlIGFuaW1hdGlvbiAqL1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8qIEtlZXBzIHRoZSBjb250ZW50IG9uIGEgc2luZ2xlIGxpbmUgKi9cbiAgICBtYXJnaW46IDAgYXV0bzsgLyogR2l2ZXMgdGhhdCBzY3JvbGxpbmcgZWZmZWN0IGFzIHRoZSB0eXBpbmcgaGFwcGVucyAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBzcGFuIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gICAgfVxuICAgIHNwYW46bm90KC5hY3RpdmUpOm5vdCguYWN0aXZlc3RvcCk6bm90KC5zdGFydCkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgfVxufVxuXG4udHlwaW5nIHNwYW4uYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGFuaW1hdGlvbjogc2Nyb2xsaW5vdXQgNHMgZm9yd2FyZHM7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLnR5cGluZyBzcGFuLmFjdGl2ZXN0b3Age1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYW5pbWF0aW9uOiBzY3JvbGxpbiAycyBmb3J3YXJkcztcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuLnR5cGluZyBzcGFuLnN0YXJ0aW5nIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGFuaW1hdGlvbjogc2Nyb2xsb3V0IDNzIGZvcndhcmRzO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnR5cGluZyBzcGFuIHtcbiAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJi5hY3RpdmVzdG9wIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAmLnN0YXJ0aW5nIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGtleWZyYW1lcyBzY3JvbGxpbiB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCAwJSAwJSwgMCUgMTAwJSwgMCUgMTAwJSk7XG4gICAgfVxuICAgIDgwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCAxMDAlIDAlLCAxMDAlIDEwMCUsIDAlIDEwMCUpO1xuICAgIH1cbn1cbkBrZXlmcmFtZXMgc2Nyb2xsaW5vdXQge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgMCUgMCUsIDAlIDEwMCUsIDAlIDEwMCUpO1xuICAgIH1cbiAgICAzMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICA0MCUge1xuICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCAxMDAlIDAlLCAxMDAlIDEwMCUsIDAlIDEwMCUpO1xuICAgIH1cbiAgICA2MCUge1xuICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCAxMDAlIDAlLCAxMDAlIDEwMCUsIDAlIDEwMCUpO1xuICAgIH1cbiAgICA3MCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgMCUgMCUsIDAlIDEwMCUsIDAlIDEwMCUpO1xuICAgIH1cbn1cbkBrZXlmcmFtZXMgc2Nyb2xsb3V0IHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIDEwMCUgMCUsIDEwMCUgMTAwJSwgMCUgMTAwJSk7XG4gICAgfVxuICAgIDgwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCAwJSAwJSwgMCUgMTAwJSwgMCUgMTAwJSk7XG4gICAgfVxufVxuQGtleWZyYW1lcyB0eXBpbmcge1xuICAgIGZyb20ge1xuICAgICAgICB3aWR0aDogMDtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG4iLCIuZ2Zvcm1fd3JhcHBlciB7XG4gICAgLmdmb3JtX2hlYWRpbmcsIGZvcm0ge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIFxuICAgIH1cbiAgICBcbiAgICBcbn1cbi5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmZpZWxkX3N1YmxhYmVsX2Fib3ZlIC5nZmllbGRfZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbn0iLCIud29vY29tbWVyY2UtcGFnZSB7XG4gICAgI3BhZ2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXNwYWNlLWRlZmF1bHQpIDA7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tc3BhY2UtbGFyZ2VyKSBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICAgICNjb250ZW50IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IHZhcigtLWtpdnZpLW1heC1jb250ZW50LXdpZHRoKTtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLXNwYWNlLWxhcmdlcik7XG4gICAgfVxufSIsIjpyb290IHtcbiAgICAtLWtpdnZpLWRvYy1ib3JkZXItY29sb3I6ICNjY2NjY2M7XG4gICAgLS1raXZ2aS1kb2MtYm9yZGVyLWNvbG9yOiAjNDNEMkI1O1xufVxuXG4ua2l2dmlkb2Mtc2hvcnRjb2RlLCAua2l2dmlkb2MtY29tcG9uZW50LWdyb3VwIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3BhY2UtbWVkaXVtKTtcbiAgICBib3JkZXItdG9wOiAzcHggc29saWQgdmFyKC0ta2l2dmktZG9jLWJvcmRlci1jb2xvcik7XG59XG4ua2l2dmlkb2MtY29tcG9uZW50LWdyb3VwLWhlYWRlciwgLmtpdnZpZG9jLXNob3J0Y29kZS10aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkIHZhcigtLWtpdnZpLWRvYy1ib3JkZXItY29sb3IpO1xufVxuXG4uc2luZ2xlLWtpdnZpZG9jIHtcbiAgICAua2l2dmlfc2VjdGlvbl9jb250ZW50LnBhZ2UtaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgZGV0YWlscyB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIFxuICAgIH1cbn1cbnVsLmtpdnZpZG9jLXNob3J0Y29kZS1jb250YWluZXIge1xuICAgIFxuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBoMywgaDQge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgICA+IGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0ta2l2dmktZG9jLWJvcmRlci1jb2xvcik7ICAgXG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXNwYWNlLWRlZmF1bHQpICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1ibG9jazogdmFyKC0tc3BhY2UtZGVmYXVsdCk7XG4gICAgICAgIGZsZXg6IDEgMCA0MDBweDtcbiAgICB9XG4gICAgLmtpdnZpZG9jLWNvZGUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMXM7XG4gICAgICAgIFxuICAgICAgICAmLm9wZW4ge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDYwMHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJsb2NrOiB2YXIoLS1zcGFjZS1kZWZhdWx0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcmUge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBcbiAgICB9XG4gICAgY29kZSB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBicmVhay1zcGFjZXM7XG4gICAgfVxufVxuXG4ua2l2dmlkb2MtY29weSwgLmtpdnZpZG9jLWNvZGUtdG9nZ2xlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5raXZ2aWRvYy1jb2RlLWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgdWwge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIGdhcDogdmFyKC0tc3BhY2Utc21hbGwpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLWtpdnZpLWZvbnRzaXplLWw0KTtcbiAgICAgICAgO1xuICAgIH1cbn1cblxuLmtpdnZpZG9jLW1lbnUtbGluay13cmFwcGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZS1tZWRpdW0pO1xuICAgIGEge1xuICAgICAgICBcbiAgICAgICAgLy8gdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbn0iLCIua2l2dmktaGVhZGVyLXRleHQge1xuICAgIC5raXZ2aV9zZWN0aW9uX2NvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgbGkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbiAgICB9XG59XG4iLCIuaC1vdmVyZmxvdyB7XG4gICAgLmtpdnZpLWNhcm91c2VsIHtcbiAgICAgICAgb3ZlcmZsb3cteDogdmlzaWJsZTtcbiAgICB9XG4gICAgLmtpdnZpLWNhcm91c2VsLWl0ZW0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBvdmVyZmxvdy14OiB2aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxufVxuXG4uaC1vdmVyZmxvdyxcbi5oLW92ZXJmbG93IGRpdjppcyguYmxvZ3JvbGwsIC5raXZ2aS1jYXJkc2V0LWl0ZW1zLCAua2l2dmktaW1hZ2UtZ2FsbGVyeS1pdGVtcykge1xuICAgIHRyYW5zaXRpb246IGFsbCAxcztcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDg0OXB4KSB7XG4gICAgLmgtb3ZlcmZsb3c6aXMoLmtpdnZpLWJsb2dyb2xsLCAua2l2dmktY2FyZHNldClcbiAgICAgICAgZGl2OmlzKC5ibG9ncm9sbCwgLmtpdnZpLWNhcmRzZXQtaXRlbXMsIC5raXZ2aS1pbWFnZS1nYWxsZXJ5LWl0ZW1zKSB7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIH1cbn1cblxuLmgtb3ZlcmZsb3ctY29udHJvbHMge1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogNXB4O1xufVxuXG4uaC1vdmVyZmxvdy1zZWN0aW9uIHtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4iLCI6cm9vdCB7XG4gICAgLS1raXZ2aS1jYWxsb3V0LWJhci1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1raXZ2aS1jb2xvci1ncmVlbik7XG59XG5cbi5raXZ2aS1jYWxsb3V0LmJhciB7ICAgIFxuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1raXZ2aS1tb2RhbC10cmFuc2l0aW9uLWxlbmd0aCk7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0ta2l2dmktbW9kYWwtdHJhbnNpdGlvbi1kZWxheSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgei1pbmRleDogOTk5OTk5O1xuICAgIG9wYWNpdHk6IDE7XG4gICAgJltkYXRhLXBvc2l0aW9uPWJvdHRvbV0ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgdG9wOiB1bnNldDtcbiAgICB9XG4gICAgLmtpdnZpLW1vZGFsLWNsb3NlIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIC5raXZ2aV9zZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luLWJsb2NrOiAuNXJlbTtcbiAgICB9XG4gICAgLmtpdnZpLW1vZGFsLWlubmVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1ibG9jazogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0ta2l2dmktY2FsbG91dC1iYXItYmFja2dyb3VuZC1jb2xvcik7XG4gICAgfVxuICAgIFxuICAgICYuYWN0aXZlIHtcbiAgICAgICAgJi5zaG93IHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgXG4gICAgICAgIH1cbiAgICB9XG4gICAgXG59IiwidWwuc29jaWFscyB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxufVxuXG4uZGFzaGljb25zLFxuLmRhc2hpY29ucy1iZWZvcmU6YmVmb3JlIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIG1hcmdpbi1yaWdodDogNHB4O1xufVxuIiwiOnJvb3Qge1xuICAgIC0ta2l2dmktYnV0dG9uLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIC0ta2l2dmktYnV0dG9uLWNvbG9yOiBibGFjaztcbiAgICAtLWtpdnZpLWJ1dHRvbi1wYWRkaW5nOiAwLjVyZW0gdmFyKC0tc3BhY2UtYnV0dG9uLWlubGluZSk7XG4gICAgLS1raXZ2aS1idXR0b24tcmFkaXVzOiAxMHB4O1xuICAgIC0ta2l2dmktYnV0dG9uLWJvcmRlci1jb2xvcjogYmxhY2s7XG4gICAgLS1raXZ2aS1idXR0b24tYm9yZGVyOiAxcHggc29saWQgdmFyKC0ta2l2dmktYnV0dG9uLWJvcmRlci1jb2xvcik7XG4gICAgLS1raXZ2aS1idXR0b24tYWx0ZXJuYXRlLWJvcmRlci1jb2xvcjogYmxhY2s7XG4gICAgLS1raXZ2aS1idXR0b24tYWx0ZXJuYXRlLWJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWtpdnZpLWJ1dHRvbi1hbHRlcm5hdGUtYm9yZGVyLWNvbG9yKTtcbiAgICAtLWtpdnZpLWJ1dHRvbi1ob3Zlci1jb2xvcjogd2hpdGU7XG4gICAgLS1raXZ2aS1idXR0b24taG92ZXItYmFja2dyb3VuZDogYmxhY2s7XG4gICAgLS1raXZ2aS1idXR0b24tdHJhbnNpdGlvbjogMC41cyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgLS1raXZ2aS1idXR0b24tYWx0ZXJuYXRlLWNvbG9yOiB3aGl0ZTtcbiAgICAtLWtpdnZpLWJ1dHRvbi1hbHRlcm5hdGUtYmFja2dyb3VuZDogYmxhY2s7XG4gICAgLS1raXZ2aS1idXR0b24tYWx0ZXJuYXRlLWhvdmVyLWNvbG9yOiBibGFjaztcbiAgICAtLWtpdnZpLWJ1dHRvbi1hbHRlcm5hdGUtaG92ZXItYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbmJ1dHRvbixcbi5idXR0b24sIC53b29jb21tZXJjZTp3aGVyZShib2R5Om5vdCgud29vY29tbWVyY2UtYmxvY2stdGhlbWUtaGFzLWJ1dHRvbi1zdHlsZXMpKSBhLmJ1dHRvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWtpdnZpLWJ1dHRvbi1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0ta2l2dmktYnV0dG9uLWNvbG9yKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1raXZ2aS1idXR0b24tcGFkZGluZyk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0ta2l2dmktYnV0dG9uLXJhZGl1cyk7XG4gICAgYm9yZGVyOiB2YXIoLS1raXZ2aS1idXR0b24tYm9yZGVyKTtcbiAgICB0cmFuc2l0aW9uOiB2YXIoLS1raXZ2aS1idXR0b24tdHJhbnNpdGlvbik7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1raXZ2aS1idXR0b24tY29sb3IpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IHZhcigtLWtpdnZpLWJ1dHRvbi10cmFuc2l0aW9uKTtcbiAgICB9XG4gICAgJjpob3ZlcixcbiAgICBhOmhvdmVyLFxuICAgICY6aG92ZXIgYSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1raXZ2aS1idXR0b24taG92ZXItY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1raXZ2aS1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgfVxuICAgICYuYnV0dG9uLS1hbHRlcm5hdGUge1xuICAgICAgICBib3JkZXI6IHZhcigtLWtpdnZpLWJ1dHRvbi1hbHRlcm5hdGUtYm9yZGVyKTtcbiAgICB9XG4gICAgJi5idXR0b24tLWFsdGVybmF0ZSxcbiAgICAmLmJ1dHRvbi0tYWx0ZXJuYXRlIGEge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1raXZ2aS1idXR0b24tYWx0ZXJuYXRlLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0ta2l2dmktYnV0dG9uLWFsdGVybmF0ZS1jb2xvcik7XG4gICAgICAgIHRyYW5zaXRpb246IHZhcigtLWtpdnZpLWJ1dHRvbi10cmFuc2l0aW9uKTtcbiAgICAgICAgXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgIGE6aG92ZXIsXG4gICAgICAgICY6aG92ZXIgYSB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0ta2l2dmktYnV0dG9uLWFsdGVybmF0ZS1ob3Zlci1jb2xvcik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1raXZ2aS1idXR0b24tYWx0ZXJuYXRlLWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5hLmJ1dHRvbiArIGEuYnV0dG9uIHtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IHZhcigtLXNwYWNlLWRlZmF1bHQpO1xufVxuYS5idXR0b246aGFzKCsgYS5idXR0b24pIHtcbiAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tc3BhY2UtZGVmYXVsdCk7XG59XG4iLCIua2l2dmktYmxvZ3JvbGwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAmLmgtb3ZlcmZsb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODUxcHgpIHtcbiAgICAgICAgICAgIC5raXZ2aS1ibG9ncm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMDB2dztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xMDB2dztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5ibG9ncm9sbCB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXG4gICAgICAgICAgICAgICAgLmJsb2ctaXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogdmFyKC0ta2l2dmktc2luZ2xlLWl0ZW0td2lkdGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5raXZ2aS1oZWFkZXItdGV4dCB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5raXZ2aS1oZWFkZXItdGV4dCB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDQwMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDQwMHB4O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDRyZW07XG4gICAgICAgICAgICB6LWluZGV4OiA1O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5raXZ2aS1oZWFkZXItdGV4dCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgLmJsb2dyb2xsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogdmFyKC0tc3BhY2UtbWVkaXVtKTtcblxuICAgICAgICAuYmxvZy1pdGVtIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBtaW4td2lkdGg6IHZhcigtLWtpdnZpLXNpbmdsZS1pdGVtLXdpZHRoKTtcbiAgICAgICAgICAgIG1heC13aWR0aDogdmFyKC0ta2l2dmktc2luZ2xlLWl0ZW0td2lkdGgtbWF4KTtcbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQwMHB4KSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmtpdnZpLWJsb2dyb2xsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgIH1cbiAgICAuYmxvZ3JvbGwge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7XG4gICAgfVxuICAgIGE6bm90KC5idXR0b24pIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICBoZWlnaHQ6IDMwMHB4O1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMS41IC8gMTtcbiAgICAgICAgLy8gYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgIG9iamVjdC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAmLmZpbGwge1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICBvYmplY3QtcG9zaXRpb246IHRvcCBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG4ua2l2dmktYmxvZ3JvbGwtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlLWRlZmF1bHQpO1xufVxuXG4ua2l2dmktcGFnaW5hdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW46IHZhcigtLXNwYWNlLW1lZGl1bSkgMDtcbiAgICBnYXA6IHZhcigtLXNwYWNlLXNtYWxsKTtcbiAgICAtLWtpdnZpLXBhZ2luYXRpb24tYm9yZGVyLWNvbG9yOiB2YXIoLS1raXZ2aS1idXR0b24tYm9yZGVyLWNvbG9yKTtcbiAgICAucGFnZS1udW1iZXJzIHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWtpdnZpLXBhZ2luYXRpb24tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAmLmN1cnJlbnQge1xuICAgICAgICAgICAgYm9yZGVyOiB1bnNldDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmtpdnZpLWJsb2dyb2xsLmxheW91dC1jYXJvdXNlbCB7XG4gICAgLmtpdnZpLWNhcm91c2VsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIC5ibG9nLWl0ZW0ge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiB1bnNldDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmtpdnZpLWJsb2dyb2xsLWxvYWRpbmcge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmtpdnZpLWNhdGVnb3J5LWxpc3Qge1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB1bCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG4gICAgbGkge1xuICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDEuNXJlbTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgYmxhY2s7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzO1xuICAgIH1cblxuICAgIC5raXZ2aS1ibG9ncm9sbC1jYXRlZ29yeS1zZWFyY2gtYm94IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzO1xuICAgICAgICAvLyB0cmFuc2l0aW9uLWRlbGF5OiAwLjVzO1xuICAgICAgICBmb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBnYXA6IHZhcigtLXNwYWNlLW1lZGl1bSk7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAua2l2dmktY2F0ZWdvcnktc2VhcmNoLWNsb3NlIHtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIH1cbiAgICB1bC5zZWFyY2gtYWN0aXZlIHtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgICAgICAua2l2dmktYmxvZ3JvbGwtY2F0ZWdvcnktc2VhcmNoLWJveCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgICAgICAgIC8vIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5raXZ2aS1jdGEge1xuICAgIGEuYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UtZGVmYXVsdCk7XG4gICAgfVxufSIsIi5raXZ2aS1oZXJvIHtcbiAgICBoMSxcbiAgICBoMiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlLXNtYWxsKTtcbiAgICB9XG4gICAgLmtpdnZpLWhlcm8tbGVhZGluIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UtZGVmYXVsdCk7XG4gICAgfVxuICAgID4gYS5idXR0b24ge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZS1kZWZhdWx0KTtcbiAgICB9XG59XG4iLCI6cm9vdCB7XG4gICAgLS1raXZ2aS1jYXJkLS1tYXgtd2lkdGg6IHZhcigtLWtpdnZpLXNpbmdsZS1pdGVtLXdpZHRoLW1heCk7XG4gICAgLS1raXZ2aS1jYXJkLS1mb250LXNpemU6IDI4cHg7XG59XG5cbi5raXZ2aS1jYXJkc2V0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5raXZ2aS1jYXJkc2V0LWl0ZW1zIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZS1tZWRpdW0pO1xuICAgIGdhcDogdmFyKC0tc3BhY2UtbWVkaXVtKTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAua2l2dmktY2FyZCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogdmFyKC0ta2l2dmktc2luZ2xlLWl0ZW0td2lkdGgpO1xuICAgICAgICBtYXgtd2lkdGg6IHZhcigtLWtpdnZpLWNhcmQtLW1heC13aWR0aCk7XG4gICAgfVxuICAgIGE6bm90KC5idXR0b24pIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG59XG4ua2l2dmktY2FyZC13cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ua2l2dmktY2FyZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgIG1heC13aWR0aDogdmFyKC0ta2l2dmktY2FyZC0tbWF4LXdpZHRoKTtcbiAgICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gICAgLmltZ3dyYXBwZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cbiAgICBoMyB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLWtpdnZpLWNhcmQtLWZvbnQtc2l6ZSk7XG4gICAgfVxufVxuIiwiOnJvb3Qge1xuICAgIC0ta2l2dmktYWNjb3JkaW9uLWRldGFpbHMtcmFkaXVzOiAwO1xuICAgIC0ta2l2dmktYWNjb3JkaW9uLWRldGFpbHMtbWFyZ2luOiB2YXIoLS1zcGFjZS1kZWZhdWx0KSBhdXRvO1xuICAgIC0ta2l2dmktYWNjb3JkaW9uLXN1bW1hcnktcGFkZGluZzogdmFyKC0tc3BhY2UtZGVmYXVsdCk7XG4gICAgLS1raXZ2aS1hY2NvcmRpb24tc3VtbWFyeS1iYWNrZ3JvdW5kOiBub25lO1xuICAgIC0ta2l2dmktYWNjb3JkaW9uLXN1bW1hcnktZm9udC1zaXplOiB2YXIoLS1raXZ2aS1oNC1mb250LXNpemUpO1xuICAgIC0ta2l2dmktYWNjb3JkaW9uLWJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICAgIC0ta2l2dmktYWNjb3JkaW9uLWJvcmRlci1jb2xvcjogYmxhY2s7XG5cbiAgICAtLWtpdnZpLWFjY29yZGlvbi1kaXNlbWJvZGllZC1oaWdobGlnaHQtY29sb3I6IHZhcigtLWtpdnZpLWxpbmstY29sb3IpO1xuICAgIC0ta2l2dmktYWNjb3JkaW9uLWRpc2VtYm9kaWVkLWhpZ2hsaWdodC1jb2xvcjogcmVkO1xuICAgIC0ta2l2dmktYWNjb3JkaW9uLWRpc2VtYm9kaWVkLXRhYi1tYXJnaW46IDIwcHg7XG4gICAgLy8gLS1raXZ2aS1hY2NvcmRpb24tZGlzZW1ib2RpZWQtdGFiLW1hcmdpbjogMjIwcHg7XG4gICAgLS1raXZ2aS1hY2NvcmRpb24tY3VycmVudC10YWItb2Zmc2V0OiB2YXIoLS1raXZ2aS1hY2NvcmRpb24tZGlzZW1ib2RpZWQtdGFiLW1hcmdpbik7XG59XG5cbi5raXZ2aS1hY2NvcmRpb24ge1xuICAgIGRldGFpbHMge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtYXJnaW46IHZhcigtLWtpdnZpLWFjY29yZGlvbi1kZXRhaWxzLW1hcmdpbik7XG4gICAgICAgIGJvcmRlcjogdmFyKC0ta2l2dmktYWNjb3JkaW9uLWJvcmRlcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWtpdnZpLWFjY29yZGlvbi1kZXRhaWxzLXJhZGl1cyk7XG4gICAgICAgIHN1bW1hcnkge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0ta2l2dmktYWNjb3JkaW9uLXN1bW1hcnktYmFja2dyb3VuZCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0ta2l2dmktY29sb3ItZGFyayk7XG5cbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0ta2l2dmktYWNjb3JkaW9uLXN1bW1hcnktZm9udC1zaXplKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1bnNldDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWtpdnZpLWFjY29yZGlvbi1zdW1tYXJ5LXBhZGRpbmcpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBibGFjaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6Om1hcmtlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiK1wiO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiA0MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICZbb3Blbl0gc3VtbWFyeTpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCItXCI7XG4gICAgICAgIH1cbiAgICAgICAgLmtpdnZpLWFjY29yZGlvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgNSU7XG4gICAgICAgIH1cbiAgICB9XG59XG5kZXRhaWxzID4gc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiO1xufVxuXG4ua2l2dmktYWNjb3JkaW9uLWRpc2VtYm9kaWVkIHtcbiAgICAtLWFjY29yZGlvbi1oaWdobGlnaHQtYmFja2dyb3VuZDogZ3JheTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgIGdhcDogNHJlbTtcbn1cblxuLmtpdnZpLWFjY29yZGlvbi1kaXNlbWJvZGllZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDNyZW07XG59XG4ua2l2dmktYWNjb3JkaW9uLWRpc2VtYm9kaWVkLXRhYnMge1xuICAgIG1pbi13aWR0aDogNDAwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWtpdnZpLWFjY29yZGlvbi1kZXRhaWxzLXJhZGl1cyk7XG4gICAgdWwge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAycmVtO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICB0b3A6IHZhcigtLWtpdnZpLWFjY29yZGlvbi1jdXJyZW50LXRhYi1vZmZzZXQpO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMXM7XG4gICAgfVxuICAgIGxpIHtcbiAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1raXZ2aS1hY2NvcmRpb24tZGlzZW1ib2RpZWQtaGlnaGxpZ2h0LWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmtpdnZpLWFjY29yZGlvbi1kaXNlbWJvZGllZC1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycmVtO1xuICAgIGFydGljbGUge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBncmF5O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWtpdnZpLWFjY29yZGlvbi1kaXNlbWJvZGllZC1oaWdobGlnaHQtY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ua2l2dmktYWNjb3JkaW9uLmxheW91dC1kaXNlbWJvZGllZCB7XG4gICAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplO1xuICAgIGNvbnRhaW5lci1uYW1lOiBkaXNlbWJvZGllZDtcbiAgICAvLyBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgICAvLyBAY29udGFpbmVyICAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgICAvLyAgICAgLmtpdnZpLWFjY29yZGlvbi1kaXNlbWJvZGllZCB7XG4gICAgLy8gICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC8vICAgICB9XG4gICAgLy8gICAgIGRldGFpbHMge1xuICAgIC8vICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cbn1cbkBjb250YWluZXIgZGlzZW1ib2RpZWQgKG1pbi13aWR0aDogMTAwMHB4KSB7XG4gICAgLmtpdnZpLWFjY29yZGlvbi1kaXNlbWJvZGllZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICAgIGRldGFpbHMge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiIsIjpyb290IHtcbiAgICAtLWtpdnZpLXR3b3VwLW1vZGFsLXZpZGVvLXBsYXktYnV0dG9uLXdpZHRoOiA1MHB4O1xuICAgIC0ta2l2dmktbW9kYWwtdmlkZW8tcGxheS1idXR0b24tc3Ryb2tlOiBibGFjaztcbiAgICAtLWtpdnZpLW1vZGFsLXZpZGVvLXBsYXktYnV0dG9uLWZpbGw6IG5vbmU7XG4gICAgLS1raXZ2aS1tb2RhbC12aWRlby1wbGF5LWJ1dHRvbi1saW5lY2FwOiByb3VuZDtcbiAgICAtLWtpdnZpLW1vZGFsLXZpZGVvLXBsYXktYnV0dG9uLWxpbmVqb2luOiByb3VuZDtcbiAgICAtLWtpdnZpLW1vZGFsLXZpZGVvLWxpbmstdGV4dC1jb2xvcjogYmxhY2s7XG4gICAgLS1raXZ2aS1tb2RhbC12aWRlby1saW5rLXRleHQtY29sb3ItbGlnaHQ6IHdoaXRlO1xufVxuXG4ua2l2dmktbW9kYWwtdmlkZW8ge1xuICAgIC5raXZ2aS1tb2RhbC12aWRlby1pbm5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIC5raXZ2aS1tb2RhbC12aWRlby1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG5cbiAgICAgICAgICAgIC5wbGF5LWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDBweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDNyZW0gM3JlbSAzcmVtIDRyZW07XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzdmcgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgc3ZnIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiBncmV5ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAua2l2dmktbW9kYWwtdmlkZW8tbGluay10ZXh0LFxuICAgICAgICAgICAgLmtpdnZpLW1vZGFsLXZpZGVvLWxpbmsge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWtpdnZpLW1vZGFsLXZpZGVvLWxpbmstdGV4dC1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5vdmVybGF5LXRleHQtbGlnaHQge1xuICAgICAgICAgICAgLmtpdnZpLW1vZGFsLXZpZGVvLW92ZXJsYXkge1xuICAgICAgICAgICAgICAgIC5raXZ2aS1tb2RhbC12aWRlby1saW5rLXRleHQsXG4gICAgICAgICAgICAgICAgLmtpdnZpLW1vZGFsLXZpZGVvLWxpbmstdGV4dCBhIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWtpdnZpLW1vZGFsLXZpZGVvLWxpbmstdGV4dC1jb2xvci1saWdodCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGJ1dHRvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG59XG5cbi5raXZ2aS1tb2RhbC12aWRlby1lbWJlZCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgei1pbmRleDogOTk5OTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgLmNsb3NlLXZpZGVvIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IHZhcigtLXNwYWNlLW1lZGl1bSk7XG4gICAgICAgIHJpZ2h0OiB2YXIoLS1zcGFjZS1tZWRpdW0pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xuICAgICAgICB9XG4gICAgfVxuICAgICYuYWN0aXZlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxcztcbiAgICAgICAgJi5zaG93IHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5raXZ2aS1tb2RhbC12aWRlby1pbWFnZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ua2l2dmktdHdvdXAgLmtpdnZpLW1vZGFsLXZpZGVvIHtcbiAgICAua2l2dmktbW9kYWwtdmlkZW8taW5uZXIge1xuICAgICAgICAua2l2dmktbW9kYWwtdmlkZW8tb3ZlcmxheSB7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0ta2l2dmktdHdvdXAtbW9kYWwtdmlkZW8tcGxheS1idXR0b24td2lkdGgpO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSB2YXIoLS1raXZ2aS10d291cC1tb2RhbC12aWRlby1wbGF5LWJ1dHRvbi13aWR0aCkpO1xuICAgICAgICAgICAgLnBsYXktYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IHZhcigtLWtpdnZpLXR3b3VwLW1vZGFsLXZpZGVvLXBsYXktYnV0dG9uLXdpZHRoKTtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiB2YXIoLS1raXZ2aS10d291cC1tb2RhbC12aWRlby1wbGF5LWJ1dHRvbi13aWR0aCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tc3BhY2UtbWVkaXVtKSB2YXIoLS1zcGFjZS1tZWRpdW0pIHZhcigtLXNwYWNlLW1lZGl1bSkgdmFyKC0tc3BhY2UtbGFyZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxufVxuIiwiLy8gVE9ETzogV0hFTiA6aGFzIGlzIHN1cHBvcnRlZCwgdXNlIHRoYXQgaW5zdGVhZCBvZiB0aGUgY2xhc3MsIFJFTU9WRSBDTEFTUyBGUk9NIFVUSUxTLkpTXG4vLyAuc2VjdGlvbi1ncm91cC5mdWxsLXdpZHRoOmhhcygubWVkaWEtZmx1c2gpLFxuLnNlY3Rpb24tZ3JvdXAuZnVsbC13aWR0aC5oYXMtbWVkaWEtZmx1c2gge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyODBweCkge1xuICAgICAgICAua2l2dmlfc2VjdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgICAgIC5raXZ2aV9zZWN0aW9uX2NvbnRlbnQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiB1bnNldDtcbiAgICAgICAgICAgIC5raXZ2aS1jb2x1bW5zIHtcbiAgICAgICAgICAgICAgICBnYXA6IHZhcigtLXNwYWNlLWxhcmdlc3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5raXZ2aS10d291cC1tZWRpYSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5raXZ2aS1pbWFnZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG4gICAgICAgIC5tZWRpYS1sZWZ0IHtcbiAgICAgICAgICAgIC5raXZ2aS10d291cC1jb250ZW50LWlubmVyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1raXZ2aS1mdWxsLXdpZHRoLXBhZGRpbmctbGVmdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLm1lZGlhLXJpZ2h0IHtcbiAgICAgICAgICAgIC5raXZ2aS10d291cC1jb250ZW50LWlubmVyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWtpdnZpLWZ1bGwtd2lkdGgtcGFkZGluZy1sZWZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmtpdnZpLXR3b3VwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLy8gQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAwMXB4KSB7XG4gICAgLy8gICAgIC5raXZ2aS1jb2x1bW5zIHtcbiAgICAvLyAgICAgICAgIG1heC1oZWlnaHQ6IDYwMHB4O1xuICAgIC8vICAgICAgICAgKjpub3QoaW1nKSB7XG4gICAgLy8gICAgICAgICAgICAgbWF4LWhlaWdodDogdmFyKC0ta2l2dmktc2luZ2xlLWl0ZW0td2lkdGgtbWF4KTtcbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgfVxuICAgIC8vIH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDAwcHgpIHtcbiAgICAgICAgLmtpdnZpLWNvbHVtbnMge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tc3BhY2UtZGVmYXVsdCk7XG4gICAgICAgIH1cbiAgICAgICAgJi5tZWRpYS1yaWdodCB7XG4gICAgICAgICAgICAua2l2dmktdHdvdXAtbWVkaWEge1xuICAgICAgICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmtpdnZpLXR3b3VwLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIG9yZGVyOiAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIHdpZHRoOiB1bnNldDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHVuc2V0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHVuc2V0O1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICB9XG59XG4iLCI6cm9vdCB7XG4gICAgLS1raXZ2aS10YWItdGl0bGUtY29sb3I6IGJsYWNrO1xuICAgIC0ta2l2dmktdGFiLXRpdGxlLXRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAtLWtpdnZpLXRhYi1hY3RpdmUtdGl0bGUtYmFja2dyb3VuZDogZ3JleTtcbiAgICAtLWtpdnZpLXRhYi1hY3RpdmUtdGl0bGUtY29sb3I6IHdoaXRlO1xuICAgIC0ta2l2dmktdGFiLWxpbmtzLWJvdHRvbS1ib3JkZXI6IGJsYWNrO1xuICAgIC0ta2l2dmktdGFiLWxpbmtzLWJvdHRvbS1ib3JkZXItaGVpZ2h0OiAxcHg7XG4gICAgLS1raXZ2aS10YWJzLXBhZGRpbmctbGVmdDogdmFyKC0tc3BhY2UtbWVkaXVtKTtcbiAgICAtLWtpdnZpLXRhYnMtcGFkZGluZy10b3A6IHZhcigtLXNwYWNlLWRlZmF1bHQpO1xuICAgIC0ta2l2dmktdGFicy10aXRsZS1nYXA6IHZhcigtLXNwYWNlLWRlZmF1bHQpO1xufVxuLmtpdnZpLXRhYnMge1xuICAgIC5raXZ2aS1oZWFkZXItdGV4dCB7XG4gICAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IHZhcigtLXNwYWNlLW1lZGl1bSk7XG4gICAgfVxufVxuLmtpdnZpLXRhYnMtaXRlbXMge1xuICAgIC0tdGFiLXRlbXBsYXRlLWNvbHM6IDM7XG4gICAgLS10YWItdGVtcGxhdGUtaGVhZGVyOiBcInRhYi0wIHRhYi0xIHRhYi0yXCI7XG4gICAgLS10YWItdGVtcGxhdGUtY29udGVudDogXCJjb250ZW50IGNvbnRlbnQgY29udGVudFwiO1xuXG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDI7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICAgICAgdmFyKC0tdGFiLXRlbXBsYXRlLWhlYWRlcilcbiAgICAgICAgdmFyKC0tdGFiLXRlbXBsYXRlLWNvbnRlbnQpO1xuXG4gICAgLnRhYi0wIHtcbiAgICAgICAgZ3JpZC1hcmVhOiB0YWItMDtcbiAgICB9XG4gICAgLnRhYi0xIHtcbiAgICAgICAgZ3JpZC1hcmVhOiB0YWItMTtcbiAgICB9XG4gICAgLnRhYi0yIHtcbiAgICAgICAgZ3JpZC1hcmVhOiB0YWItMjtcbiAgICB9XG4gICAgLnRhYi0zIHtcbiAgICAgICAgZ3JpZC1hcmVhOiB0YWItMztcbiAgICB9XG4gICAgLnRhYi00IHtcbiAgICAgICAgZ3JpZC1hcmVhOiB0YWItNDtcbiAgICB9XG4gICAgLnRhYi01IHtcbiAgICAgICAgZ3JpZC1hcmVhOiB0YWItNTtcbiAgICB9XG4gICAgLmtpdnZpLXRhYnMtc2VjdGlvbiB7XG4gICAgICAgIGdyaWQtYXJlYTogY29udGVudDtcbiAgICB9XG5cbiAgICAvKlxuICAgID4gdWwge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZ2FwOiB2YXIoLS1raXZ2aS10YWJzLXRpdGxlLWdhcCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1raXZ2aS10YWJzLXBhZGRpbmctbGVmdCk7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogY2FsYygtMSAqIHZhcigtLWtpdnZpLXRhYi1saW5rcy1ib3R0b20tYm9yZGVyLWhlaWdodCkpO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbGVmdDogdmFyKC0ta2l2dmktdGFicy1wYWRkaW5nLWxlZnQpO1xuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1raXZ2aS10YWItbGlua3MtYm90dG9tLWJvcmRlci1oZWlnaHQpO1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLWtpdnZpLXRhYnMtcGFkZGluZy1sZWZ0KSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1raXZ2aS10YWItbGlua3MtYm90dG9tLWJvcmRlcik7XG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuXG4gICAgKi9cbn1cbi5raXZ2aS10YWItdGl0bGUge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmtpdnZpLXRhYi10aXRsZS1saW5rIHtcbiAgICBjb2xvcjogdmFyKC0ta2l2dmktdGFiLXRpdGxlLWNvbG9yKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHZhcigtLWtpdnZpLXRhYi10aXRsZS10ZXh0LWRlY29yYXRpb24pO1xuICAgIC8vIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNlLWRlZmF1bHQpO1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAmW2FyaWEtc2VsZWN0ZWRdIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0ta2l2dmktdGFiLWFjdGl2ZS10aXRsZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWtpdnZpLXRhYi1hY3RpdmUtdGl0bGUtY29sb3IpO1xuICAgIH1cbn1cbi5raXZ2aS10YWJzLXNlY3Rpb24ge1xuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1raXZ2aS10YWJzLXBhZGRpbmctbGVmdCk7XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogdmFyKC0ta2l2dmktdGFicy1wYWRkaW5nLXRvcCk7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cztcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwO1xuICAgIH1cbn1cblxuLmpzIC5raXZ2aS10YWJzLXNlY3Rpb24uaW5hY3RpdmUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMDBweCkge1xuICAgIC5raXZ2aS10YWJzLWl0ZW1zIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIC5raXZ2aS10YWJzLXNlY3Rpb246bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgICAgIC8vIG1heC1oZWlnaHQ6IDMwMDAwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuXG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuICAgIC5qcyAua2l2dmktdGFicy1zZWN0aW9uLmluYWN0aXZlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG59XG4iLCIuY29sdW1uc18xXzMgLmtpdnZpLWNvbHVtbnMuZXF1YWwtd2lkdGgge1xuICAgID4gZGl2IHtcbiAgICAgICAgZmxleDogMztcbiAgICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cbiAgICB9XG59XG4uY29sdW1uc18xXzIgLmtpdnZpLWNvbHVtbnMuZXF1YWwtd2lkdGgge1xuICAgID4gZGl2IHtcbiAgICAgICAgZmxleDogMjtcbiAgICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI6cm9vdCB7XG4gICAgLS1raXZ2aS1jYXJvdXNlbC1jb250cm9scy1oZWlnaHQ6IDEwMHB4O1xuICAgIC0ta2l2dmktY2Fyb3VzZWwtZG90bmF2LWhlaWdodDogMTVweDtcbiAgICAtLWtpdnZpLWNhcm91c2VsLWFycm93LWNvbG9yOiBncmV5O1xuICAgIC0ta2l2dmktY2Fyb3VzZWwtYXJyb3ctY29sb3ItaG92ZXI6IGJsYWNrO1xufVxuXG4ua2l2dmktY2Fyb3VzZWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICZbZGF0YS1raXZ2aS1jYXJvdXNlbC10cmFuc2l0aW9uPVwiZmFkZVwiXSB7XG4gICAgICAgIC5raXZ2aS1jYXJvdXNlbC1pdGVtIHtcbiAgICAgICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgICAgICAmLmFjdGl2ZS1jYXJvdXNlbCB7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi50cmFuc2l0aW9uT3V0LFxuICAgICAgICAgICAgJi50cmFuc2l0aW9uT3V0QmFjayB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICZbZGF0YS1raXZ2aS1jYXJvdXNlbC10cmFuc2l0aW9uPVwic2xpZGVcIl0ge1xuICAgICAgICAua2l2dmktY2Fyb3VzZWwtaXRlbSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTAlKTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgJi5hY3RpdmUtY2Fyb3VzZWwge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnRyYW5zaXRpb25PdXQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYudHJhbnNpdGlvbk91dEJhY2sge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5zbGlkZXJQcmV2IHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5raXZ2aS1jYXJvdXNlbC1pdGVtIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIG9wYWNpdHkgMC4zcyxcbiAgICAgICAgdHJhbnNmb3JtIDFzO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5raXZ2aS1jYXJvdXNlbFtkYXRhLWtpdnZpLWNhcm91c2VsLXNob3c9XCIyXCJdIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgZ2FwOiB2YXIoLS1zcGFjZS1kZWZhdWx0KTtcblxuICAgID4gKiB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgfVxuICAgIC5raXZ2aS1jYXJvdXNlbC1pdGVtIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gdmFyKC0tc3BhY2UtZGVmYXVsdCkgLyAyKTtcbiAgICAgICAgJi5hY3RpdmUtY2Fyb3VzZWw6bnRoLW9mLXR5cGUoMm4gKyAxKSB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmtpdnZpLWNhcm91c2VsLWNvbnRyb2xzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDFzO1xuICAgIC5wcmV2LFxuICAgIC5uZXh0IHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLWtpdnZpLWNhcm91c2VsLWNvbnRyb2xzLWhlaWdodCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiBjYWxjKDUwJSAtIHZhcigtLWtpdnZpLWNhcm91c2VsLWNvbnRyb2xzLWhlaWdodCkgLyAyKTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgcGFkZGluZzogdmFyKC0tc3BhY2UtZGVmYXVsdCkgMDtcbiAgICAgICAgZm9udC1zaXplOiA3NXB4O1xuICAgICAgICBmb250LXdlaWdodDogMTAwO1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1raXZ2aS1jYXJvdXNlbC1hcnJvdy1jb2xvcik7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0ta2l2dmktY2Fyb3VzZWwtYXJyb3ctY29sb3ItaG92ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5uZXh0IHtcbiAgICAgICAgbGVmdDogdW5zZXQ7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgIH1cbn1cblxuLm5hdmRvdHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA1cHg7XG59XG4ubmF2ZG90IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHdpZHRoOiAyNXB4O1xuICAgIGhlaWdodDogMjVweDtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICYuYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogYmxhY2s7XG4gICAgfVxufVxuIiwiLnRpbWVsaW5lIHtcbiAgICBtYXgtd2lkdGg6IDgwMHB4O1xuICAgIG1hcmdpbjogdmFyKC0tc3BhY2UtbWVkaXVtKSBhdXRvO1xufVxuXG4udGltZWxpbmUgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmc6IDAgMCA1MHB4IDgwcHg7XG59XG4udGltZWxpbmUgbGk6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogLThweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvd3AtY29udGVudC90aGVtZXMva2l2dmkvaW1hZ2VzL2NpcmNsZS5wbmdcIik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICBvcGFjaXR5OiAxO1xufVxuLnRpbWVsaW5lIGxpOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvd3AtY29udGVudC90aGVtZXMva2l2dmkvaW1hZ2VzL2JvcmRlcmxpbmUucG5nXCIpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMXB4IGNhbGMoMTAwJSAtIDI3cHgpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMjJweDtcbiAgICB0b3A6IDI3cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDJzO1xuICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgb3BhY2l0eTogMDtcblxuICAgIG9wYWNpdHk6IDE7XG4gICAgbWF4LWhlaWdodDogMTAwMHB4O1xufVxuLnRpbWVsaW5lIGxpOmxhc3Qtb2YtdHlwZTphZnRlciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbn1cblxuLnRpbWVsaW5lLmFjdGl2ZSB7XG4gICAgbGkge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMXM7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICAgICY6bnRoLW9mLXR5cGUoMikge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDFzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bnRoLW9mLXR5cGUoMykge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDJzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bnRoLW9mLXR5cGUoNCkge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDNzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bnRoLW9mLXR5cGUoNSkge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDRzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bnRoLW9mLXR5cGUoNikge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bnRoLW9mLXR5cGUoNykge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDZzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bnRoLW9mLXR5cGUoOCkge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDdzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGxpIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMXM7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAwcHg7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC41cztcbiAgICAgICAgfVxuICAgICAgICAmOm50aC1vZi10eXBlKDIpIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDEuNXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpudGgtb2YtdHlwZSgzKSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAyLjVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bnRoLW9mLXR5cGUoNCkge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMy41cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOm50aC1vZi10eXBlKDUpIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDQuNXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpudGgtb2YtdHlwZSg2KSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiA1LjVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bnRoLW9mLXR5cGUoNykge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogNi41cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOm50aC1vZi10eXBlKDgpIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDcuNXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIua2l2dmktaW1hZ2UtZ2FsbGVyeSB7XG4gICAgLS1raXZ2aS1pbWFnZS1nYWxsZXJ5LWl0ZW0td2lkdGg6IDMwMHB4O1xuICAgIC0ta2l2dmktaW1hZ2UtZ2FsbGVyeS1pdGVtLW1heC1oZWlnaHQ6IDMwMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAua2l2dmktaW1hZ2UtZ2FsbGVyeS1pdGVtcyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogMnJlbTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuICAgIC5raXZ2aS1nYWxsZXJ5LWl0ZW0tY2FwdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgfVxuICAgIC5raXZ2aS1nYWxsZXJ5LWl0ZW0taW1hZ2Uge1xuICAgICAgICBtYXgtaGVpZ2h0OiB2YXIoLS1raXZ2aS1pbWFnZS1nYWxsZXJ5LWl0ZW0tbWF4LWhlaWdodCk7XG4gICAgfVxuICAgIGltZyB7XG4gICAgICAgIG1pbi13aWR0aDogdmFyKC0ta2l2dmktaW1hZ2UtZ2FsbGVyeS1pdGVtLXdpZHRoKTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiB2YXIoLS1raXZ2aS1pbWFnZS1nYWxsZXJ5LWl0ZW0tbWF4LWhlaWdodCk7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cbiAgICAmLmxheW91dC1oLW92ZXJmbG93IHtcbiAgICAgICAgLmtpdnZpLWltYWdlLWdhbGxlcnktaXRlbXMge1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIFdPUkRQUkVTUyBHQUxMRVJZIFNIT1JUQ09ERSAqL1xuLmdhbGxlcnkge1xuICAgIC5raXZ2aS1jYXJvdXNlbC1pdGVtIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgb3ZlcmZsb3cteDogdmlzaWJsZTtcbiAgICB9XG59XG4iLCIua2l2dmktbW9kYWwtZ2FsbGVyeSB7XG4gICAgXG4gICAgLmtpdnZpLW1vZGFsLWlubmVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgICAucHJvamVjdC1nYWxsZXJ5IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgICAua2l2dmktZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIC8vIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLXNwYWNlLW1lZGl1bSk7XG4gICAgICAgICYuYWN0aXZlLWNhcm91c2VsIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA4MHZ3O1xuICAgICAgICAgICAgbWF4LWhlaWdodDogODB2aDtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgIH1cbiAgICAucHJvamVjdC1nYWxsZXJ5LWl0ZW0tY2FwdGlvbiB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgXG4gICAgfVxuICAgIFxufSIsIi5raXZ2aS1sb2dvZ2FsbGVyeS1pdGVtcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiB2YXIoLS1zcGFjZS1tZWRpdW0pO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cbn1cbi5raXZ2aS1sb2dvZ2FsbGVyeS1pdGVtIHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgICBpbWcge1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIH1cbn0iLCIua2l2dmktdGVhbS1tZW1iZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IHZhcigtLWtpdnZpLXNwYWNpbmctMik7XG4gICAgJi5raXZ2aS10ZWFtLW1lbWJlci1sYXlvdXQtdHdvIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcbiAgICAgICAgXG4gICAgfVxuICAgIGgxIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cbi5raXZ2aS10ZWFtLW1lbWJlci10aXRsZSB7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyAyO1xuICAgIFxufVxuLmtpdnZpLXRlYW0tbWVtYmVyLWJpbyB7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyAyO1xuICAgIFxufVxuLmtpdnZpLXRlYW0tbWVtYmVyLXBob3RvIHtcbiAgICBncmlkLWNvbHVtbjogMiAvIDM7XG4gICAgXG59XG4ua2l2dmktdGVhbS1tZW1iZXItY29udGFjdCB7XG4gICAgZ3JpZC1jb2x1bW46IDIgLyAzO1xuXG59XG5cbmEua2l2dmktdGVhbS1zb2NpYWwge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBcbiAgICBjb2xvcjogdmFyKC0ta2l2dmktY29sb3ItcHJpbWFyeSk7XG4gICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY29sb3I6IHZhcigtLWtpdnZpLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgICAgIHNwYW46YmVmb3JlIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxufSIsIi5raXZ2aS1jb250YWluZXItd2l0aC1zaWRlYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgLmtpdnZpLXBvc3QtY29udGVudCB7XG4gICAgICAgIGNvbnRhaW5lci1uYW1lOiBraXZ2aS1wb3N0LWNvbnRlbnQ7XG4gICAgICAgIGNvbnRhaW5lci10eXBlOiBpbmxpbmUtc2l6ZTtcbiAgICAgICAgZmxleDogMjtcbiAgICAgICAgXG4gICAgfVxuICAgIC5raXZ2aV9zaWRlYmFyIHtcbiAgICAgICAgZmxleDogMTsgICAgICAgIFxuICAgIH1cbiAgICAuYmxvZ3JvbGwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgLnBvc3QtZXhjZXJwdCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIFxufSIsIi5zaW5nbGUtZXZlbnQge1xuICAgIHAge1xuICAgICAgICBtYXJnaW4tYmxvY2stZW5kOiAxcmVtO1xuICAgIH1cbn1cbiIsIiNzaXRlLWZvb3RlciB7XG4gICAgcGFkZGluZzogdmFyKC0tc3BhY2UtZGVmYXVsdCk7XG4gICAgbWFyZ2luOiAwO1xuICAgIC5raXZ2aV9zZWN0aW9uX2NvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgPiAqIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDMwMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiOnJvb3Qge1xuICAgIC0taGVhZGVyLWhlaWdodDogMTkycHg7XG59XG5cbiNtYXN0aGVhZCB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1raXZ2aS1tYXgtY29udGVudC13aWR0aCk7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHdpZHRoOiA5MCU7XG59XG5cbi5zdGlja3kge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogOTAwMDtcbn1cbi5hZG1pbi1iYXIgLnN0aWNreSB7XG4gICAgLS1iaW0tYWRtaW4tYmFyLWhlaWdodDogMzJweDtcbiAgICB0b3A6IHZhcigtLWJpbS1hZG1pbi1iYXItaGVpZ2h0KTtcbn1cbmJvZHk6bm90KC5vdmVybGFwcGluZy1oZWFkZXIpIC5zdGlja3kgKyAjcGFnZSB7XG4gICAgcGFkZGluZy10b3A6IDEwMnB4O1xufVxuXG4jc2l0ZS1uYXZpZ2F0aW9uICNtZW51LW1haW4tbWVudSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IHZhcigtLXNwYWNlLWRlZmF1bHQpO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4ua2l2dmktbG9nbyB7XG4gICAgcGFkZGluZy1ibG9jazogdmFyKC0tc3BhY2UtZGVmYXVsdCk7XG59XG5cbi5vdmVybGFwcGluZy1oZWFkZXIge1xuICAgICNoZWFkZXItc2VjdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHotaW5kZXg6IDkwMDA7XG4gICAgICAgICYuc3RpY2t5LWhlYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgI2hlYWRlci1zZWN0aW9uLnN0aWNreSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG5cbiAgICAjY29udGVudCA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDA7XG4gICAgICAgIC5raXZ2aV9zZWN0aW9uX2NvbnRlbnQge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG5cbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0taGVhZGVyLWhlaWdodCkgLSB2YXIoLS1zcGFjZS1sYXJnZXIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjpyb290IHtcbiAgICAtLW5hdi1icmVha3BvaW50OiAxMDAwcHg7XG4gICAgLS1uYXYtaWNvbi1iYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIC0tbmF2LWljb24tYmFja2dyb3VuZC1ob3ZlcjogIzc3Nzc3NztcbiAgICAtLW5hdi1kcmF3ZXItbGluay1jb2xvcjogd2hpdGU7XG4gICAgLS1uYXYtZHJhd2VyLWJhY2tncm91bmQ6IGJsYWNrO1xuICAgIC0tbmF2LWRyYXdlci11bmRlcmxpbmUtY29sb3I6IHdoaXRlO1xuICAgIC0tbmF2LWljb24tc2l6ZTogNDBweDtcbiAgICAtLW5hdi1pY29uLW1hcmdpbi1ibG9jazogNTBweDtcbiAgICAtLW5hdi1pY29uLWxpbmUtc2l6ZTogN3B4O1xuICAgIC0tbmF2LW1lbnUtZ2FwOiB2YXIoLS1zcGFjZS1kZWZhdWx0KTtcbn1cblxuI21hc3RoZWFkIHtcbiAgICBcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBuYXYge1xuICAgICAgICBcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB1bC5tZW51IHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1uYXYtbWVudS1nYXApO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgfVxuICAgICAgICBhIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAuc3ViLW1lbnUgeyAgICAgICAgXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgei1pbmRleDogOTk5OTsgICAgICAgICAgICBcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdW5zZXQ7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgICAgIGxpOmhvdmVyIHtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLnN1Yi1tZW51IHtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAwcHg7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuICAgICAgICBcbiAgICB9XG4gICAgXG59XG5cbi5zaXRlLXRpdGxlIHtcbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbn1cblxuI21vYmlsZS10b2dnbGUge1xuICAgIHotaW5kZXg6IDkwMDE7XG59XG5cbiNuYXYtaWNvbiB7XG4gICAgd2lkdGg6IHZhcigtLW5hdi1pY29uLXNpemUpO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgei1pbmRleDogOTAwMTtcbiAgICBoZWlnaHQ6IHZhcigtLW5hdi1pY29uLXNpemUpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IHZhcigtLW5hdi1pY29uLW1hcmdpbi1ibG9jaykgYXV0bztcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjVzIGVhc2UtaW4tb3V0O1xuICAgIC1tb3otdHJhbnNpdGlvbjogMC41cyBlYXNlLWluLW91dDtcbiAgICAtby10cmFuc2l0aW9uOiAwLjVzIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zaXRpb246IDAuNXMgZWFzZS1pbi1vdXQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4jbmF2LWljb24gc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogdmFyKC0tbmF2LWljb24tbGluZS1zaXplKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXYtaWNvbi1iYWNrZ3JvdW5kKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMjAwJTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSAwJTtcblxuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGxlZnQ6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIC1vLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2UtaW4tb3V0O1xufVxuXG5hICNuYXYtaWNvbjpob3ZlciBzcGFuLFxuYSAjbmF2LWljb24ub3BlbiBzcGFuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uYXYtaWNvbi1iYWNrZ3JvdW5kLWhvdmVyKTtcbn1cblxuI25hdi1pY29uLm9wZW46aG92ZXIgc3BhbiB7XG4gICAgZmlsdGVyOiBicmlnaHRuZXNzKDEuNSk7XG59XG5cbiNuYXYtaWNvbiBzcGFuOm50aC1jaGlsZCgxKSB7XG4gICAgdG9wOiAwcHg7XG59XG5cbiNuYXYtaWNvbiBzcGFuOm50aC1jaGlsZCgyKSB7XG4gICAgdG9wOiBjYWxjKCh2YXIoLS1uYXYtaWNvbi1zaXplKSAvIDIpIC0gKHZhcigtLW5hdi1pY29uLWxpbmUtc2l6ZSkgLyAyKSk7XG59XG5cbiNuYXYtaWNvbiBzcGFuOm50aC1jaGlsZCgzKSB7XG4gICAgYm90dG9tOiAwO1xufVxuXG4jbmF2LWljb24ub3BlbiBzcGFuOm50aC1jaGlsZCgxKSB7XG4gICAgdG9wOiAxOHB4O1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG4gICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xufVxuXG4jbmF2LWljb24ub3BlbiBzcGFuOm50aC1jaGlsZCgyKSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBsZWZ0OiAtNjBweDtcbn1cblxuI25hdi1pY29uLm9wZW4gc3BhbjpudGgtY2hpbGQoMykge1xuICAgIHRvcDogMThweDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xuICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7XG4gICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMDBweCkge1xuICAgIFxuICAgICNzaXRlLW5hdmlnYXRpb24ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTUwJSk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2UtaW4tb3V0O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXYtZHJhd2VyLWJhY2tncm91bmQpO1xuICAgICAgICBcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgY29sb3I6IHZhcigtLW5hdi1kcmF3ZXItbGluay1jb2xvcik7XG5cbiAgICAgICAgei1pbmRleDogOTAwMDtcblxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICAgIH1cbiAgICAjbmF2LWljb24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAjbWFzdGhlYWQge1xuICAgICAgICBuYXYge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC1zcGFjZS1tZWRpdW0pO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHVsLm1lbnUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1raXZ2aS1jb2xvci10ZWFsKTtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNlLXNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbmF2LWRyYXdlci11bmRlcmxpbmUtY29sb3IpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYyg5MHZ3IC0gODBweCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5zdWItbWVudSBhOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoOTB2dyAtIDEyMHB4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPiBsaTpsYXN0LW9mLXR5cGUgYSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAxLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0ta2l2dmktY29sb3ItZGFyay10ZWFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5zdWItbWVudSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLW5hdi1tZW51LWdhcCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2Utc21hbGwpO1xuICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm5hdi1saW5rcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLW5hdi1tZW51LWdhcCk7XG59XG4iXX0= */
