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

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

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

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

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

:root {
  font-size: 16px;
}

html ul li a {
  font-size: 1rem;
}

html p {
  font-size: 1rem;
}

html h1 {
  font-size: 5.8125rem;
}

.heading-large {
  font-size: 2.25rem;
}

.sub-heading {
  font-size: 1.75rem;
}

html h2 {
  font-size: 3.1875rem;
}

html h3 {
  font-size: 2.25rem;
}

html h4 {
  font-size: 2.25rem;
}

html h5 {
  font-size: 2.25rem;
}

html ul li {
  font-size: 1rem;
}

@font-face {
  font-family: 'fontello';
  src: url("../font/fontello/fontello.eot?53595380");
  src: url("../font/fontello/fontello.eot?53595380#iefix") format("embedded-opentype"), url("../font/fontello/fontello.woff?53595380") format("woff"), url("../font/fontello/fontello.ttf?53595380") format("truetype"), url("../font/fontello/fontello.svg?53595380#fontello") format("svg");
  font-weight: normal;
  font-style: normal;
}

.fontello {
  font-family: "fontello";
  font-style: normal;
  font-weight: normal;
  speak: none;
  display: inline-block;
  text-decoration: inherit;
  width: 1em;
  margin-right: .2em;
  text-align: center;
  /* opacity: .8; */
  /* For safety - reset parent styles, that can break glyph codes*/
  font-variant: normal;
  text-transform: none;
  /* fix buttons height, for twitter bootstrap */
  line-height: 1em;
  /* Animation center compensation - margins should be symmetric */
  /* remove if not needed */
  margin-left: .2em;
  /* You can be more comfortable with increased icons size */
  /* font-size: 120%; */
  /* Font smoothing. That was taken from TWBS */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* Uncomment for 3D effect */
  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}

/**
 * razor-edge-top-footer.
 */
/**
 * razor-edge-fill-in-footer.
 */
/**
 * razor-edge-top-and-fill-in.
 */
/**
 * razor-edge-top-for-image-masking.
 */
/**
 * Body.
 */
body {
  /**
     * Padding.
     */
  padding-top: 6rem;
  /**
     * Font related.
     */
  font-family: 'Open Sans', sans-serif;
  /**
     * p.
     */
  /**
     * h3.
     */
  /**
     * h5.
     */
  /**
     * 
     */
  /**
     * .page-transition-logo.
     */
  /**
     * .page-transition-razor-edge.
     */
  /**
     * .covid-bar.
     */
}

body p {
  /**
         * Margin.
         */
  margin-bottom: 1.5rem;
  /**
         * Font related.
         */
  font-size: 1.125rem;
  line-height: 1.7rem;
}

body h1 {
  letter-spacing: 13px;
  font-weight: 700;
  -webkit-font-variant-ligatures: no-common-ligatures;
  /**
         * @include.
         */
}

@media (max-width: 767px) {
  body h1 {
    font-size: 2.2rem;
    letter-spacing: 8px;
    font-variant-ligatures: no-common-ligatures;
    -webkit-font-variant-ligatures: no-common-ligatures;
  }
}

body h2 {
  letter-spacing: 9px;
  font-weight: 700;
  font-variant-ligatures: no-common-ligatures;
  -webkit-font-variant-ligatures: no-common-ligatures;
  /**
         * @include.
         */
}

@media (max-width: 767px) {
  body h2 {
    font-size: 1.8rem;
    letter-spacing: 6px;
  }
}

body h3 {
  /**
         * Font related.
         */
  font-weight: 700;
  font-variant-ligatures: no-common-ligatures;
  -webkit-font-variant-ligatures: no-common-ligatures;
}

body h5 {
  /**
         * Font related.
         */
  font-weight: 700;
  font-size: 1.8rem;
  letter-spacing: 5px;
  font-variant-ligatures: no-common-ligatures;
  -webkit-font-variant-ligatures: no-common-ligatures;
  margin-bottom: 1rem;
}

body .example h1 {
  color: magenta !important;
}

body .page-transition-logo {
  /**
         * Position.
         */
  position: fixed;
  top: 50%;
  left: 50%;
  /**
         * Z-index.
         */
  z-index: 100;
  /**
         * Transform.
         */
  transform: translateX(-50%) translateY(-50%);
  /**
         * Sizing.
         */
  width: 15rem;
  /**
         * @include.
         */
  /**
         * Opacity.
         */
  opacity: 0;
  /**
         * Transition.
         */
  transition: opacity 0.25s ease-out;
  /**
         * Pointer events.
         */
  pointer-events: none;
}

@media (max-width: 767px) {
  body .page-transition-logo {
    width: 10rem;
  }
}

body .page-transition-razor-edge {
  /**
         * Position related.
         */
  position: fixed;
  bottom: 0;
  left: 0;
  /**
         * Z-index.
         */
  z-index: 50;
  /**
         * Sizing.
         */
  width: 100%;
  height: calc(100% + 50rem);
  /**
         * Overflow.
         */
  overflow: hidden;
  /**
         * Opacity.
         */
  opacity: 0;
  /**
         * Transform.
         */
  transform: translateY(100%);
  /**
         * @include.
         */
  /**
     * &::before.
     */
  /**
     * 
     */
  /**
         * &::after.
         */
}

body .page-transition-razor-edge::before {
  /**
         * Content.
         */
  content: '';
  /**
         * Position related.
         */
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  /**
         * Z-index.
         */
  z-index: -1;
  /**
         * Sizing.
         */
  width: 100%;
  height: 50rem;
  /**
         * Transform.
         */
  transform-origin: top left;
  transform: skewY(12deg) translateY(0);
  /**
         * breakpoint.
         */
  /**
         * Background.
         */
  background-color: white;
}

@media (min-width: 1200px) {
  body .page-transition-razor-edge::before {
    /**
             * Transform.
             */
    transform: skewY(8deg) translateY(0);
  }
}

body .page-transition-razor-edge::after {
  /**
             * Content.
             */
  content: '';
  /**
             * Position.
             */
  position: absolute;
  bottom: 0;
  left: 0;
  /**
             * Z-index.
             */
  z-index: -2;
  /**
             * Sizing.
             */
  width: 100%;
  height: 80%;
  /**
             * Background.
             */
  background-color: white;
}

body .covid-bar {
  /**
         * .covid-popup-content.
         */
}

body .covid-bar .covid-popup-content {
  /**
             * Display.
             */
  display: none;
}

/**
 * footer.
 */
footer {
  /**
     * Font related.
     */
  color: white;
  /**
     * Margin.
     */
  margin-top: -8rem;
  /**
     * Position.
     */
  position: relative;
  /**
     * Z-index.
     */
  z-index: 10;
  /**
     * .razor-edge.
     */
  /**
     * @include.
     */
  /**
     * &::after.
     */
  /**
     * .container.
     */
  /**
     * .row-one.
     */
  /**
     * .row-two.
     */
}

footer .razor-edge {
  /**
         * @include.
         */
  /**
     * Overflow.
     */
  overflow: hidden;
  /**
     * Position.
     */
  position: absolute;
  top: 0;
  left: 0;
  /**
     * Sizing.
     */
  height: 100%;
  width: 100%;
  /**
     * Transform.
     */
  transform: translateY(-50%);
  /**
     * @include.
     */
  /**
     * &::before.
     */
}

@media (max-width: 767px) {
  footer .razor-edge {
    /**
         * Padding.
         */
    transform: translateY(-25%);
  }
}

footer .razor-edge::before {
  /**
         * Content.
         */
  content: '';
  /**
         * Position related.
         */
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  /**
         * Z-index.
         */
  z-index: 1;
  /**
         * Sizing.
         */
  width: 100%;
  height: 100%;
  /**
         * Transform.
         */
  transform-origin: top left;
  transform: skewY(12deg);
  /**
         * breakpoint.
         */
  /**
         * Background.
         */
  background-color: #000;
}

@media (min-width: 1200px) {
  footer .razor-edge::before {
    /**
             * Transform.
             */
    transform: skewY(8deg);
  }
}

footer::after {
  /**
         * Content.
         */
  content: '';
  /**
         * Position.
         */
  position: absolute;
  bottom: 0;
  left: 0;
  /**
         * Z-index.
         */
  z-index: -2;
  /**
         * Sizing.
         */
  width: 100%;
  height: 52%;
  /**
         * 
         */
  background-color: #000;
}

footer .container {
  overflow: hidden;
}

footer .row-one {
  /**
         * 
         */
  /**
         * p.
         */
  /**
         * ul.list.
         */
}

footer .row-one .logo {
  width: 7rem;
}

footer .row-one p {
  /**
             * Font related.
             */
  font-size: 0.8rem;
  color: #636363;
  /**
             * Margin.
             */
  margin-bottom: 0.5rem;
}

footer .row-one ul.list {
  /**
             * Margin.
             */
  margin-bottom: 1rem;
  /**
             * li.list-item.
             */
}

footer .row-one ul.list li.list-item {
  /**
                 * Font related.
                 */
  font-size: 0.8rem;
  /**
                 * Margin.
                 */
  margin-bottom: 0.2rem;
  /**
                 * a.
                 */
}

footer .row-one ul.list li.list-item a {
  /**
                     * Font related.
                     */
  font-size: 0.8rem;
  color: #FFFFFF;
  line-height: 1rem;
  /**
                     * &:hover.
                     */
}

footer .row-one ul.list li.list-item a:hover {
  /**
                         * Font related.
                         */
  text-decoration: none;
  color: #636363;
}

footer .row-two {
  /**
         * Padding.
         */
  padding-top: 3rem;
  padding-bottom: 3rem;
  /**
         * @include.
         */
  /**
         * p.
         */
  /**
         * .list
         */
}

@media (max-width: 575px) {
  footer .row-two {
    /**
             * Padding.
             */
    padding-bottom: 0rem;
  }
}

footer .row-two p {
  /**
             * Display.
             */
  display: inline-block;
  /**
             * Font related.
             */
  font-size: 0.8rem;
  color: #636363;
}

footer .row-two .list {
  /**
             * Display.
             */
  display: inline-block;
  /**
             * .list-item.
             */
}

footer .row-two .list .list-item {
  /**
                 * Display.
                 */
  display: inline-block;
  /**
                 * 
                 */
  /**
                 * a.
                 */
}

footer .row-two .list .list-item:before {
  /**
                     * Content.
                     */
  content: '|';
  /**
                     * Font related.
                     */
  font-size: 0.8rem;
  color: #636363;
}

footer .row-two .list .list-item a {
  /**
                     * Font related.
                     */
  font-size: 0.8rem;
  color: #636363;
  /**
                     * &:hover.
                     */
}

footer .row-two .list .list-item a:hover {
  /**
                         * Font related.
                         */
  color: white;
  text-decoration: none;
}

/**
 * .covid-bar.
 */
.covid-bar {
  /**
     * 
     */
  background-color: #636363;
  /**
     * Sizing.
     */
  width: 100%;
  /**
     * Padding.
     */
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  /**
     * &:hover.
     */
  /**
     * a.
     */
}

.covid-bar:hover {
  /**
         * Background.
         */
  background-color: #000;
}

.covid-bar a {
  /**
         * Display.
         */
  display: block;
  /**
         * Font related.
         */
  text-decoration: none;
  /**
         * p.
         */
}

.covid-bar a p {
  /**
             * Font related.
             */
  font-size: 0.9rem;
  color: #FFFFFF;
  /**
             * Margin.
             */
  margin: 0;
}

/**
 * header.header.
 */
header.header {
  background-color: white;
  /**
     * Display.
     */
  display: -ms-flexbox;
  display: flex;
  /**
     * Flex.
     */
  -ms-flex-align: center;
      align-items: center;
  /**
     * Z-index.
     */
  z-index: 20;
  /**
     * Position.
     */
  position: fixed;
  top: 0;
  left: 0;
  /**
     * Sizing.
     */
  width: 100%;
  height: 6rem;
  /**
     * Drop shadow.
     */
  box-shadow: 2px 10px 8px -7px rgba(0, 0, 0, 0.1);
  /**
     * .logo.
     */
  /**
     * .actions.
     */
}

header.header .logo {
  width: 5rem;
}

header.header .actions {
  /**
         * Display.
         */
  display: -ms-flexbox;
  display: flex;
  /**
         * 
         */
  -ms-flex-align: center;
      align-items: center;
  /**
         * Z-index.
         */
  z-index: 10;
  /**
         * Position.
         */
  position: absolute;
  top: 0;
  right: 0;
  /**
         * Sizing.
         */
  height: 100%;
  /**
         * .hamburger-button-wrapper.
         */
  /**
         * .hamburger-button-wrapper.
         */
  /**
         * .contact-button.
         */
}

header.header .actions .hamburger-button-wrapper {
  /**
             * Margin.
             */
  margin-right: 3rem;
  /**
             * @include.
             */
  /**
             * .hamburger-button.
             */
}

@media (max-width: 767px) {
  header.header .actions .hamburger-button-wrapper {
    margin-right: 1rem;
  }
}

header.header .actions .hamburger-button-wrapper .hamburger-button {
  /**
                 * Background.
                 */
  background-color: white;
  /**
                 * Padding.
                 */
  padding: 0.8rem 0.5rem 0.8rem 0.5rem;
  /**
                 * &:hover.
                 */
}

header.header .actions .hamburger-button-wrapper .hamburger-button:hover svg path {
  fill: #bf0011;
}

header.header .actions .hamburger-button-wrapper {
  /**
             * Display.
             */
  display: inline-block;
  /**
             * .hamburger-button.
             */
}

header.header .actions .hamburger-button-wrapper .hamburger-button {
  /**
                 * Display.
                 */
  display: inline-block;
  /**
                 * svg.
                 */
}

header.header .actions .hamburger-button-wrapper .hamburger-button svg {
  width: 2rem;
}

header.header .actions .contact-button {
  /**
             * Display.
             */
  display: -ms-flexbox;
  display: flex;
  /**
             * Flex.
             */
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
  /**
             * Background.
             */
  background-color: #bf0011;
  /**
             * Sizing.
             */
  height: 100%;
  width: 8rem;
  /**
             * span.
             */
  /**
             * &:hover.
             */
}

header.header .actions .contact-button span {
  /**
                 * Font related.
                 */
  color: white;
  font-weight: bold;
  /**
                 * Display.
                 */
  display: inline-block;
}

header.header .actions .contact-button:hover {
  /**
                 * Background.
                 */
  background-color: #000;
  /**
                 * Font related.
                 */
  text-decoration: none;
}

/**
 * .simple-popup-wrapper.
 */
.simple-popup-wrapper {
  /**
     * Position.
     */
  position: fixed;
  top: 0;
  left: 0;
  /**
     * Sizing.
     */
  width: 100%;
  height: 0;
  /**
     * Overflow.
     */
  overflow: hidden;
  /**
     * Z-index.
     */
  z-index: 20;
  /**
     * Background.
     */
  background-color: rgba(0, 0, 0, 0.95);
  /**
     * Opacity.
     */
  opacity: 0;
  /**
     * Pointer events.
     */
  pointer-events: none;
  /**
     * &.show.
     */
  /**
     * Transition.
     */
  transition: opacity 0.3s ease;
  /**
     * 
     */
  overflow: auto;
  /**
     * @include.
     */
  /**
     * .close-popup.
     */
  /**
     * .simple-popup.
     */
}

.simple-popup-wrapper.show {
  /**
         * Opacity.
         */
  opacity: 1;
  /**
         * Pointer events.
         */
  pointer-events: all;
  /**
         * Sizing.
         */
  height: 100%;
  /**
         * Overflow.
         */
  overflow: hidden;
}

@media (max-width: 768px) {
  .simple-popup-wrapper {
    /**
         * Display.
         */
    display: block;
  }
}

.simple-popup-wrapper .close-popup {
  /**
         * Position.
         */
  position: absolute;
  top: 0;
  right: 0;
  /**
         * Sizing.
         */
  width: 6rem;
  height: 6rem;
  /**
         * Background.
         */
  background-color: #bf0011;
  /**
         * Display.
         */
  display: -ms-flexbox;
  display: flex;
  /**
         * Flex.
         */
  -ms-flex-pack: center;
      justify-content: center;
  -ms-flex-align: center;
      align-items: center;
  /**
         * @include.
         */
  /**
         * img.
         */
  /**
         * svg.
         */
  /**
         * &:hover.
         */
}

@media (max-width: 767px) {
  .simple-popup-wrapper .close-popup {
    /**
             * Sizing.
             */
    width: 3rem;
    height: 3rem;
  }
}

.simple-popup-wrapper .close-popup img {
  /**
             * Sizing.
             */
  width: 1.5rem;
  height: 1.5rem;
}

.simple-popup-wrapper .close-popup svg {
  /**
             * Sizing.
             */
  width: 1.5rem;
  height: 1.5rem;
  /**
             * 
             */
  pointer-events: none;
}

.simple-popup-wrapper .close-popup:hover {
  /**
             * Background.
             */
  background-color: white;
  /**
             * svg.
             */
}

.simple-popup-wrapper .close-popup:hover svg {
  /**
                 * polygon.
                 */
}

.simple-popup-wrapper .close-popup:hover svg polygon {
  /**
                     * Fill.
                     */
  fill: #000;
}

.simple-popup-wrapper .simple-popup {
  /**
         * Margin.
         */
  margin-left: 4rem;
  margin-right: 14rem;
  /**
         * Font related.
         */
  color: white;
  /**
         * Padding.
         */
  padding-top: 10rem;
  padding-bottom: 2rem;
  /**
         * @include.
         */
  /**
         * @include.
         */
  /**
         * p.heading.
         */
  /**
         * p a.
         */
  /**
         * ul.
         */
}

@media (max-width: 768px) {
  .simple-popup-wrapper .simple-popup {
    /**
             * Padding.
             */
    padding-top: 8rem;
    /**
             * Margin.
             */
    margin-left: 2rem;
    margin-right: 2rem;
    /**
             * Transform.
             */
    transform: none;
  }
}

@media (max-width: 767px) {
  .simple-popup-wrapper .simple-popup {
    /**
             * Padding.
             */
    padding-top: 4rem;
    /**
             * Margin.
             */
    margin-left: 1rem;
    margin-right: 1rem;
  }
}

.simple-popup-wrapper .simple-popup p.heading {
  /**
             * Font related.
             */
  font-size: 3.2rem;
  line-height: 3.8rem;
  letter-spacing: 13px;
  font-weight: 700;
  -webkit-font-variant-ligatures: no-common-ligatures;
  /**
             * Margin.
             */
  margin-bottom: 3rem;
  /**
             * @include.
             */
}

@media (max-width: 767px) {
  .simple-popup-wrapper .simple-popup p.heading {
    /**
                 * Font related.
                 */
    font-size: 2.5rem;
    line-height: 3.0rem;
    letter-spacing: 11px;
  }
}

.simple-popup-wrapper .simple-popup p a {
  /**
             * Font related.
             */
  color: #FFFFFF;
  text-decoration: underline;
  /**
             * &:hover.
             */
}

.simple-popup-wrapper .simple-popup p a:hover {
  /**
                 * Font related.
                 */
  color: #bf0011;
}

.simple-popup-wrapper .simple-popup ul {
  /**
             * Margin.
             */
  margin-left: 1.3rem;
  /**
             * li.
             */
}

.simple-popup-wrapper .simple-popup ul li {
  /**
                 * List style.
                 */
  list-style: disc;
  /**
                 * Font related.
                 */
  font-size: 1.125rem;
  line-height: 1.5rem;
  /**
                 * Margin.
                 */
  margin-bottom: 0.5rem;
}

/**
 * .fourzerofour-wrapper.
 */
.fourzerofour-wrapper {
  /**
     * .fourzerofour-container.
     */
}

.fourzerofour-wrapper .fourzerofour-container {
  /**
         * Padding.
         */
  padding-top: 10rem;
  /**
         * Sizing.
         */
  min-height: 70rem;
  /**
         * Font related.
         */
  color: #000;
}

/**
 * .about-infoblock-wrapper.
 */
.about-infoblock-wrapper {
  /**
     * Position.
     */
  position: relative;
  /**
     * Background.
     */
  background-position: center;
  background-size: cover;
  /**
     * Padding.
     */
  padding-bottom: 31rem;
  padding-top: 6rem;
  /**
     * @include.
     */
  /**
     * .razor-edge.
     */
  /**
     * .about-infoblock-container.
     */
}

@media (max-width: 575px) {
  .about-infoblock-wrapper {
    /**
         * Background.
         */
    background-image: none !important;
    background-color: #bf0011;
    /**
         * Padding.
         */
    padding-bottom: 12rem;
  }
}

.about-infoblock-wrapper .razor-edge {
  /**
     * Overflow.
     */
  overflow: hidden;
  /**
     * Position.
     */
  position: absolute;
  top: 0;
  left: 0;
  /**
     * Sizing.
     */
  height: 22rem;
  width: 100%;
  /**
     * &::before.
     */
}

.about-infoblock-wrapper .razor-edge::before {
  /**
         * Content.
         */
  content: '';
  /**
         * Position related.
         */
  position: absolute;
  bottom: 0;
  right: 0;
  /**
         * Z-index.
         */
  z-index: 1;
  /**
         * Sizing.
         */
  width: 120%;
  height: 40rem;
  /**
         * Transform.
         */
  transform-origin: bottom right;
  transform: rotate(12deg);
  /**
         * breakpoint.
         */
  /**
         * Background.
         */
  background-color: #ebebeb;
}

@media (min-width: 1200px) {
  .about-infoblock-wrapper .razor-edge::before {
    /**
             * Transform.
             */
    transform: rotate(8deg);
  }
}

.about-infoblock-wrapper .about-infoblock-container {
  /**
         * Position.
         */
  position: relative;
  /**
         * Z-index.
         */
  z-index: 10;
  /**
         * Font related.
         */
  color: white;
  /**
         * Margin.
         */
  margin-top: -5rem;
  /**
         * Padding.
         */
  padding-left: 6rem;
  padding-right: 6rem;
  padding-bottom: 5rem;
  /**
         * @include.
         */
  /**
         * @include.
         */
  /**
     * &::before.
     */
  /**
     * 
     */
  /**
         * &::after.
         */
  /**
         * h2.
         */
}

@media (max-width: 575px) {
  .about-infoblock-wrapper .about-infoblock-container {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

.about-infoblock-wrapper .about-infoblock-container::before {
  /**
         * Content.
         */
  content: '';
  /**
         * Position related.
         */
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  /**
         * Z-index.
         */
  z-index: -1;
  /**
         * Sizing.
         */
  width: 100%;
  height: 50%;
  /**
         * Transform.
         */
  transform-origin: top left;
  transform: skewY(12deg) translateY(0);
  /**
         * breakpoint.
         */
  /**
         * Background.
         */
  background-color: #bf0011;
}

@media (min-width: 1200px) {
  .about-infoblock-wrapper .about-infoblock-container::before {
    /**
             * Transform.
             */
    transform: skewY(8deg) translateY(0);
  }
}

.about-infoblock-wrapper .about-infoblock-container::after {
  /**
             * Content.
             */
  content: '';
  /**
             * Position.
             */
  position: absolute;
  bottom: 0;
  left: 0;
  /**
             * Z-index.
             */
  z-index: -2;
  /**
             * Sizing.
             */
  width: 100%;
  height: 50%;
  /**
             * Background.
             */
  background-color: #bf0011;
}

.about-infoblock-wrapper .about-infoblock-container h2 {
  /**
             * Padding.
             */
  padding-top: 13rem;
  /**
             * @include.
             */
  /**
             * Margin.
             */
  margin-bottom: 3rem;
}

@media (max-width: 767px) {
  .about-infoblock-wrapper .about-infoblock-container h2 {
    /**
                 * Padding.
                 */
    padding-top: 9rem;
  }
}

/**
 * .about-intro-wrapper.
 */
.about-intro-wrapper {
  /**
     * .about-intro-container.
     */
}

.about-intro-wrapper .about-intro-container {
  /**
         * Padding.
         */
  padding-bottom: 0rem;
}

/**
 * .about-testimonials-wrapper.
 */
.about-testimonials-wrapper {
  /**
     * Position.
     */
  position: relative;
  /**
     * 
     */
  z-index: 10;
  /**
     * Padding.
     */
  padding-top: 3rem;
  padding-bottom: 3rem;
  /**
     * Margin.
     */
  margin-top: -8rem;
  /**
     * @include.
     */
  /**
     * &::before.
     */
  /**
     * 
     */
  /**
         * &::after.
         */
  /**
     * @include.
     */
  /**
     * .about-testimonials-container.
     */
}

.about-testimonials-wrapper::before {
  /**
         * Content.
         */
  content: '';
  /**
         * Position related.
         */
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  /**
         * Z-index.
         */
  z-index: -1;
  /**
         * Sizing.
         */
  width: 100%;
  height: 100%;
  /**
         * Transform.
         */
  transform-origin: top left;
  transform: skewY(12deg) translateY(-30%);
  /**
         * breakpoint.
         */
  /**
         * Background.
         */
  background-color: #ebebeb;
}

@media (min-width: 1200px) {
  .about-testimonials-wrapper::before {
    /**
             * Transform.
             */
    transform: skewY(8deg) translateY(-30%);
  }
}

.about-testimonials-wrapper::after {
  /**
             * Content.
             */
  content: '';
  /**
             * Position.
             */
  position: absolute;
  bottom: 0;
  left: 0;
  /**
             * Z-index.
             */
  z-index: -2;
  /**
             * Sizing.
             */
  width: 100%;
  height: 40%;
  /**
             * Background.
             */
  background-color: #ebebeb;
}

@media (max-width: 575px) {
  .about-testimonials-wrapper {
    /**
         * @include.
         */
    /**
     * &::before.
     */
    /**
     * 
     */
    /**
         * &::after.
         */
  }
  .about-testimonials-wrapper::before {
    /**
         * Content.
         */
    content: '';
    /**
         * Position related.
         */
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    /**
         * Z-index.
         */
    z-index: -1;
    /**
         * Sizing.
         */
    width: 100%;
    height: 50%;
    /**
         * Transform.
         */
    transform-origin: top left;
    transform: skewY(12deg) translateY(-5rem);
    /**
         * breakpoint.
         */
    /**
         * Background.
         */
    background-color: #ebebeb;
  }
}

@media (max-width: 575px) and (min-width: 1200px) {
  .about-testimonials-wrapper::before {
    /**
             * Transform.
             */
    transform: skewY(8deg) translateY(-5rem);
  }
}

@media (max-width: 575px) {
  .about-testimonials-wrapper::after {
    /**
             * Content.
             */
    content: '';
    /**
             * Position.
             */
    position: absolute;
    bottom: 0;
    left: 0;
    /**
             * Z-index.
             */
    z-index: -2;
    /**
             * Sizing.
             */
    width: 100%;
    height: 70%;
    /**
             * Background.
             */
    background-color: #ebebeb;
  }
}

.about-testimonials-wrapper .about-testimonials-container {
  /**
         * Position.
         */
  position: relative;
  /**
         * Padding.
         */
  padding-bottom: 17rem;
  /**
         * @include.
         */
  /**
         * h2.
         */
  /**
         * .graphic.
         */
  /**
         * .testimonials-swiper-container
         */
}

@media (max-width: 767px) {
  .about-testimonials-wrapper .about-testimonials-container {
    /**
             * Padding.
             */
    padding-bottom: 14rem;
  }
}

.about-testimonials-wrapper .about-testimonials-container h2 {
  /**
             * Margin.
             */
  margin-bottom: 3rem;
}

.about-testimonials-wrapper .about-testimonials-container .graphic {
  /**
             * Position related.
             */
  position: absolute;
  top: 0;
  left: 0;
  /**
             * Sizing.
             */
  width: 3.5rem;
}

.about-testimonials-wrapper .about-testimonials-container .testimonials-swiper-container {
  /**
             * Overflow.
             */
  overflow: hidden;
  /**
             * .swiper-slide.
             */
  /**
             * .graphic.
             */
}

.about-testimonials-wrapper .about-testimonials-container .testimonials-swiper-container .swiper-slide {
  /**
                 * Padding.
                 */
  padding-right: 30%;
  padding-left: 4.5rem;
  /**
                 * @include.
                 */
}

@media (max-width: 575px) {
  .about-testimonials-wrapper .about-testimonials-container .testimonials-swiper-container .swiper-slide {
    padding-right: 0;
  }
}

.about-testimonials-wrapper .about-testimonials-container .testimonials-swiper-container .graphic {
  /**
                 * path.
                 */
}

.about-testimonials-wrapper .about-testimonials-container .testimonials-swiper-container .graphic path {
  /**
                     * Fill.
                     */
  fill: #bf0011;
}

/**
 * .common-hero-wrapper.
 */
.common-hero-wrapper {
  /**
     * Background.
     */
  background-color: #ebebeb;
  /**
     * Padding.
     */
  padding-top: 7rem;
  padding-bottom: 3rem;
  /**
     * .common-hero-container.
     */
}

/**
 * .common-intro-wrapper.
 */
.common-intro-wrapper {
  /**
     * Background.
     */
  background-color: #ebebeb;
  /**
     * Padding.
     */
  padding-bottom: 3rem;
  /**
     * .common-intro-container.
     */
}

/**
 * 
 */
/**
 * .contact-flyout-wrapper.
 */
.contact-flyout-wrapper {
  /**
     * Opacity.
     */
  opacity: 0;
  /**
     * Pointer events.
     */
  pointer-events: none;
  /**
     * @include.
     */
  /**
     * &.show.
     */
  /**
     * &.hiding.
     */
  /**
     * Position.
     */
  position: fixed;
  top: 0;
  right: 0;
  /**
     * Sizing.
     */
  width: 100%;
  height: 100vh;
  /**
     * Z-index.
     */
  z-index: 35;
  /**
     * .close-button.
     */
  /**
     * .dismiss-flyout.
     */
  /**
     * .contact-flyout-container.
     */
}

@media (max-width: 600px) {
  .contact-flyout-wrapper {
    /**
         * 
         */
    overflow: scroll;
  }
}

.contact-flyout-wrapper.show {
  /**
         * Opacity.
         */
  opacity: 1;
  /**
         * Pointer events.
         */
  pointer-events: all;
  /**
         * .contact-flyout-container.
         */
}

.contact-flyout-wrapper.show .contact-flyout-container {
  /**
             * Transform.
             */
  transform: translateX(0);
}

.contact-flyout-wrapper.hiding {
  /**
         * Opacity.
         */
  opacity: 1;
  /**
         * .contact-flyout-container.
         */
}

.contact-flyout-wrapper.hiding .contact-flyout-container {
  /**
             * Transition.
             */
  transition: transform 0.2s ease-in;
}

.contact-flyout-wrapper .close-button {
  /**
         * Background.
         */
  background-color: #bf0011;
  /**
         * Display.
         */
  display: block;
  /**
         * Position.
         */
  position: absolute;
  top: 0;
  right: 0;
  /**
         * Z-Index.
         */
  z-index: 10;
  /**
         * Sizing.
         */
  width: 6rem;
  height: 6rem;
  /**
         * @include.
         */
  /**
         * .close-icon.
         */
  /**
         * &:hover.
         */
}

@media (max-width: 767px) {
  .contact-flyout-wrapper .close-button {
    width: 3rem;
    height: 3rem;
  }
}

.contact-flyout-wrapper .close-button .close-icon {
  width: 1.5rem;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
}

.contact-flyout-wrapper .close-button:hover {
  /**
             * 
             */
  background-color: white;
  /**
             * svg.
             */
}

.contact-flyout-wrapper .close-button:hover svg {
  /**
                 * polygon.
                 */
}

.contact-flyout-wrapper .close-button:hover svg polygon {
  /**
                     * Fill.
                     */
  fill: #000 !important;
}

.contact-flyout-wrapper .dismiss-flyout {
  /**
         * Display.
         */
  display: block;
  /**
         * Position.
         */
  position: absolute;
  top: 0;
  left: 0;
  /**
         * Sizing.
         */
  width: 100%;
  height: 100%;
}

.contact-flyout-wrapper .contact-flyout-container {
  /**
         * Display.
         */
  display: block;
  /**
         * Position.
         */
  position: absolute;
  top: 0;
  right: 0;
  /**
         * Sizing.
         */
  width: 50%;
  height: 100vh;
  /**
         * Transform.
         */
  transform: translateX(110%);
  /**
         * Transition.
         */
  transition: transform 0.3s ease-out;
  /**
         * Shadow.
         */
  box-shadow: -3px 0px 5px 0px rgba(0, 0, 0, 0.15);
  /**
         * @include.
         */
  /**
         * @include.
         */
  /**
         * Background.
         */
  background-color: #000;
  /**
         * @include.
         */
  /**
         * Font related.
         */
  color: white;
  /**
         * Sizing.
         */
  height: 100%;
  /**
         * Flex.
         */
  -ms-flex-direction: column;
      flex-direction: column;
  /**
         * .wpforms-container.
         */
  /**
         * .contact-list.
         */
  /**
         * .address-list.
         */
  /**
         * .part-a.
         */
  /**
         * .part-b.
         */
  /**
         * #map.
         */
}

@media (max-width: 991px) {
  .contact-flyout-wrapper .contact-flyout-container {
    width: 75%;
  }
}

@media (max-width: 767px) {
  .contact-flyout-wrapper .contact-flyout-container {
    width: 100%;
  }
}

@media (max-width: 600px) {
  .contact-flyout-wrapper .contact-flyout-container {
    /**
             * 
             */
  }
}

.contact-flyout-wrapper .contact-flyout-container .wpforms-container {
  /**
             * label.wpforms-error.
             */
  /**
             * input.
             */
  /**
             * textarea.
             */
  /**
             * input[type="checkbox"].
             */
  /**
             * .wpforms-field-checkbox.
             */
  /**
             * button.
             */
}

.contact-flyout-wrapper .contact-flyout-container .wpforms-container label.wpforms-error {
  /**
                 * Padding.
                 */
  padding-top: 0.5rem;
  /**
                 * Font related.
                 */
  font-size: 1rem;
  font-weight: bold;
  color: #bf0011;
}

.contact-flyout-wrapper .contact-flyout-container .wpforms-container input, .contact-flyout-wrapper .contact-flyout-container .wpforms-container textarea {
  /**
                 * Border.
                 */
  border-color: white;
  border: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.4) !important;
  /**
                 * Background.
                 */
  background-color: rgba(255, 255, 255, 0) !important;
  /**
                 * Sizing.
                 */
  width: 100% !important;
  max-width: 100% !important;
  /**
                 * Font related.
                 */
  color: white !important;
  /**
                 * Padding.
                 */
  padding-left: 0 !important;
  /**
                 * &::placeholder.
                 */
}

.contact-flyout-wrapper .contact-flyout-container .wpforms-container input:-ms-input-placeholder, .contact-flyout-wrapper .contact-flyout-container .wpforms-container textarea:-ms-input-placeholder {
  /**
                     * Font related.
                     */
  color: rbga(255, 255, 255, 0.8);
}

.contact-flyout-wrapper .contact-flyout-container .wpforms-container input::placeholder, .contact-flyout-wrapper .contact-flyout-container .wpforms-container textarea::placeholder {
  /**
                     * Font related.
                     */
  color: rbga(255, 255, 255, 0.8);
}

.contact-flyout-wrapper .contact-flyout-container .wpforms-container textarea {
  /**
                 * Margin.
                 */
  margin-bottom: 0.5rem;
  /**
                 * Sizing.
                 */
  height: 90px !important;
}

.contact-flyout-wrapper .contact-flyout-container .wpforms-container input[type="checkbox"] {
  /**
                 * Sizing.
                 */
  width: auto !important;
}

.contact-flyout-wrapper .contact-flyout-container .wpforms-container .wpforms-field-checkbox {
  /**
                 * label.
                 */
}

.contact-flyout-wrapper .contact-flyout-container .wpforms-container .wpforms-field-checkbox label {
  /**
                     * Font related.
                     */
  font-size: 0.9rem;
  color: #666 !important;
}

.contact-flyout-wrapper .contact-flyout-container .wpforms-container button {
  /**
                 * Background.
                 */
  background-color: #bf0011 !important;
  /**
                 * Border.
                 */
  border: 0 !important;
  /**
                 * Font related.
                 */
  color: white !important;
  /**
                 * Padding.
                 */
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
  /**
                 * &:hover.
                 */
}

.contact-flyout-wrapper .contact-flyout-container .wpforms-container button:hover {
  background-color: white !important;
  color: #000 !important;
}

.contact-flyout-wrapper .contact-flyout-container .contact-list {
  /**
             * 
             */
  margin-bottom: 1rem;
  /**
             * li.
             */
}

.contact-flyout-wrapper .contact-flyout-container .contact-list li {
  /**
                 * Display.
                 */
  display: block;
  /**
                 * Font related.
                 */
  font-size: 1.15rem;
  line-height: 1.5rem;
  /**
                 * a.
                 */
}

.contact-flyout-wrapper .contact-flyout-container .contact-list li a {
  /**
                     * Font related.
                     */
  font-size: 1.15rem;
  color: #FFFFFF;
  /**
                     * &:hover.
                     */
}

.contact-flyout-wrapper .contact-flyout-container .contact-list li a:hover {
  /**
                         * Font related.
                         */
  text-decoration: none;
  color: #636363;
}

.contact-flyout-wrapper .contact-flyout-container .address-list {
  /**
             * li.
             */
}

.contact-flyout-wrapper .contact-flyout-container .address-list li {
  /**
                 * Display.
                 */
  display: inline-block;
  /**
                 * Font related.
                 */
  line-height: 1.5rem;
  /**
                 * &:last-child.
                 */
  /**
                 * &::after.
                 */
}

.contact-flyout-wrapper .contact-flyout-container .address-list li:last-child {
  /**
                     * &::after.
                     */
}

.contact-flyout-wrapper .contact-flyout-container .address-list li:last-child::after {
  /**
                         * Content.
                         */
  content: '';
}

.contact-flyout-wrapper .contact-flyout-container .address-list li::after {
  /**
                     * 
                     */
  content: ',';
}

.contact-flyout-wrapper .contact-flyout-container .part-a {
  /**
             * Position.
             */
  position: absolute;
  top: 0;
  /**
             * Sizing.
             */
  width: 100%;
  /**
             * Padding.
             */
  padding-left: 3rem;
  padding-right: 3rem;
  padding-top: 6rem;
  padding-bottom: 2rem;
  /**
             * @include.
             */
  /**
             * @include.
             */
  /**
             * 
             */
  background-color: black;
}

@media (max-width: 767px) {
  .contact-flyout-wrapper .contact-flyout-container .part-a {
    padding-top: 2rem;
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

@media (max-width: 600px) {
  .contact-flyout-wrapper .contact-flyout-container .part-a {
    /**
                 * 
                 */
    position: relative;
    top: auto;
  }
}

.contact-flyout-wrapper .contact-flyout-container .part-b {
  /**
             * Position.
             */
  position: absolute;
  bottom: 0;
  /**
             * Sizing.
             */
  height: 20%;
  width: 100%;
  /**
             * @include.
             */
}

@media (max-width: 600px) {
  .contact-flyout-wrapper .contact-flyout-container .part-b {
    /**
                 * Position related.
                 */
    position: relative;
    bottom: auto;
    /**
                 * Sizing.
                 */
    height: 20rem !important;
  }
}

.contact-flyout-wrapper .contact-flyout-container #map {
  /**
             * Position.
             */
  position: absolute;
  top: 0;
  left: 0;
  /**
             * Sizing.
             */
  width: 100%;
  height: 100%;
}

/**
 * .home-hero-wrapper.
 */
.home-hero-wrapper {
  /**
     * Sizing.
     */
  height: 50rem;
  /**
     * @include.
     */
  /**
     * Background.
     */
  background-position: center;
  background-size: cover;
  /**
     * .home-hero-container.
     */
}

@media (max-width: 767px) {
  .home-hero-wrapper {
    /**
         * 
         */
    height: 40rem;
  }
}

.home-hero-wrapper .home-hero-container {
  /**
         * Position.
         */
  position: relative;
  /**
         * Display.
         */
  display: block;
  /**
         * Sizing.
         */
  height: 100%;
  /**
         * .text-lines.
         */
}

.home-hero-wrapper .home-hero-container .text-lines {
  /**
             * Display.
             */
  display: block;
  /**
             * Position.
             */
  position: absolute;
  top: 18%;
  left: 50%;
  /**
             * Transform.
             */
  transform: translateX(-50%);
  /**
             * Font related.
             */
  text-align: center;
  /**
             * li.
             */
}

.home-hero-wrapper .home-hero-container .text-lines li {
  /**
                 * Font related.
                 */
  font-size: 4rem;
  text-transform: uppercase;
  font-weight: bold;
  letter-spacing: 0.5rem;
  color: black;
  /**
                 * Shadow.
                 */
  /**
                 * @include.
                 */
  /**
                 * 
                 */
  margin-bottom: 1rem;
}

@media (max-width: 767px) {
  .home-hero-wrapper .home-hero-container .text-lines li {
    /**
                     * Font related.
                     */
    font-size: 2rem;
  }
}

/**
 * .home-intro-wrapper.
 */
.home-intro-wrapper {
  /**
     * Margin.
     */
  margin-top: -10rem;
  /**
     * Position.
     */
  position: relative;
  /**
     * Z-index.
     */
  z-index: 1;
  /**
     * @include.
     */
  /**
     * &::before.
     */
  /**
     * 
     */
  /**
         * &::after.
         */
  /**
     * @include.
     */
  /**
     * .home-intro-container.
     */
}

.home-intro-wrapper::before {
  /**
         * Content.
         */
  content: '';
  /**
         * Position related.
         */
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  /**
         * Z-index.
         */
  z-index: -1;
  /**
         * Sizing.
         */
  width: 100%;
  height: 100%;
  /**
         * Transform.
         */
  transform-origin: top left;
  transform: skewY(12deg) translateY(-30%);
  /**
         * breakpoint.
         */
  /**
         * Background.
         */
  background-color: #bf0011;
}

@media (min-width: 1200px) {
  .home-intro-wrapper::before {
    /**
             * Transform.
             */
    transform: skewY(8deg) translateY(-30%);
  }
}

.home-intro-wrapper::after {
  /**
             * Content.
             */
  content: '';
  /**
             * Position.
             */
  position: absolute;
  bottom: 0;
  left: 0;
  /**
             * Z-index.
             */
  z-index: -2;
  /**
             * Sizing.
             */
  width: 100%;
  height: 40%;
  /**
             * Background.
             */
  background-color: #bf0011;
}

@media (max-width: 767px) {
  .home-intro-wrapper {
    /**
         * @include.
         */
    /**
     * &::before.
     */
    /**
     * 
     */
    /**
         * &::after.
         */
  }
  .home-intro-wrapper::before {
    /**
         * Content.
         */
    content: '';
    /**
         * Position related.
         */
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    /**
         * Z-index.
         */
    z-index: -1;
    /**
         * Sizing.
         */
    width: 100%;
    height: 100%;
    /**
         * Transform.
         */
    transform-origin: top left;
    transform: skewY(12deg) translateY(-5rem);
    /**
         * breakpoint.
         */
    /**
         * Background.
         */
    background-color: #bf0011;
  }
}

@media (max-width: 767px) and (min-width: 1200px) {
  .home-intro-wrapper::before {
    /**
             * Transform.
             */
    transform: skewY(8deg) translateY(-5rem);
  }
}

@media (max-width: 767px) {
  .home-intro-wrapper::after {
    /**
             * Content.
             */
    content: '';
    /**
             * Position.
             */
    position: absolute;
    bottom: 0;
    left: 0;
    /**
             * Z-index.
             */
    z-index: -2;
    /**
             * Sizing.
             */
    width: 100%;
    height: 40%;
    /**
             * Background.
             */
    background-color: #bf0011;
  }
}

.home-intro-wrapper .home-intro-container {
  /**
         * Font related.
         */
  text-align: center;
  color: white;
  /**
         * Padding.
         */
  padding-top: 5rem;
  padding-bottom: 3rem;
  /**
         * .text-wrapper.
         */
  /**
         * .main-graphic.
         */
  /**
         * .link.
         */
}

.home-intro-wrapper .home-intro-container .text-wrapper {
  /**
             * Padding.
             */
  padding-top: 4rem;
  padding-bottom: 4rem;
  /**
             * p.
             */
}

.home-intro-wrapper .home-intro-container .text-wrapper p {
  /**
                 * Font related.
                 */
  font-size: 1.5625rem;
  line-height: 2.5rem;
}

.home-intro-wrapper .home-intro-container .main-graphic {
  max-width: 80%;
}

.home-intro-wrapper .home-intro-container .link {
  /**
             * Font related.
             */
  font-size: 1.75rem;
  color: white;
  text-decoration: none;
  /**
             * Display.
             */
  display: inline-block;
  /**
             * &:hover.
             */
  /**
             * .link-contents.
             */
}

.home-intro-wrapper .home-intro-container .link:hover {
  /**
                 * Font related.
                 */
  color: #000;
  /**
                 * .graphic.
                 */
}

.home-intro-wrapper .home-intro-container .link:hover .graphic {
  /**
                     * polyline.
                     */
}

.home-intro-wrapper .home-intro-container .link:hover .graphic polyline {
  /**
                         * Stroke.
                         */
  stroke: #000 !important;
}

.home-intro-wrapper .home-intro-container .link .link-contents {
  /**
                 * Display.
                 */
  display: -ms-flexbox;
  display: flex;
  /**
                 * Flex.
                 */
  -ms-flex-align: center;
      align-items: center;
  /**
                 * .graphic.
                 */
}

.home-intro-wrapper .home-intro-container .link .link-contents .graphic {
  /**
                     * Margin.
                     */
  margin-left: 1rem;
  /**
                     * Sizing.
                     */
  width: 1.25rem;
  /**
                     * 
                     */
}

.home-intro-wrapper .home-intro-container .link .link-contents .graphic polyline {
  stroke: white;
}

/**
 * .home-stats-wrapper.
 */
.home-stats-wrapper {
  /**
     * Background.
     */
  background-color: #636363;
  /**
     * Overflow.
     */
  overflow: hidden;
  /**
     * Position.
     */
  position: relative;
  /**
     * Z-index.
     */
  z-index: 5;
  /**
     * .image-container.
     */
  /**
     * .home-stats-container.
     */
}

.home-stats-wrapper .image-container {
  /**
         * Position related.
         */
  position: absolute;
  top: 0;
  left: 0;
  /**
         * Sizing.
         */
  height: 100%;
  width: 43%;
  /**
         * Background.
         */
  background-position: center;
  background-size: cover;
  /**
         * @include.
         */
}

@media (max-width: 575px) {
  .home-stats-wrapper .image-container {
    background-image: none !important;
  }
}

.home-stats-wrapper .home-stats-container {
  /**
         * Padding.
         */
  padding-top: 5rem;
  padding-bottom: 20rem;
  /**
         * @include.
         */
  /**
         * Font related.
         */
  color: white;
  /**
         * .heading.
         */
  /**
         * .stat-list.
         */
}

@media (max-width: 575px) {
  .home-stats-wrapper .home-stats-container {
    padding-top: 5rem;
    padding-left: 3rem;
    padding-bottom: 16rem;
  }
}

.home-stats-wrapper .home-stats-container .heading {
  /**
             * Font related.
             */
  letter-spacing: 0.4rem;
  font-weight: bold;
}

.home-stats-wrapper .home-stats-container .stat-list {
  /**
             * Padding.
             */
  padding-top: 2.5rem;
  /**
             * li.
             */
}

.home-stats-wrapper .home-stats-container .stat-list li {
  /**
                 * Margin.
                 */
  margin-bottom: 2.5rem;
  /**
                 * p.number-heading.
                 */
  /**
                 * p.number.
                 */
  /**
                 * span.suffix.
                 */
}

.home-stats-wrapper .home-stats-container .stat-list li p.number-heading {
  /**
                     * Font related.
                     */
  font-size: 0.8rem;
  line-height: 1.0rem;
  /**
                     * Margin.
                     */
  margin-bottom: 0.3rem;
}

.home-stats-wrapper .home-stats-container .stat-list li p.number {
  /**
                     * Font related.
                     */
  font-size: 3.6rem;
  font-weight: bold;
  line-height: 4rem;
  /**
                     * @include.
                     */
}

@media (max-width: 767px) {
  .home-stats-wrapper .home-stats-container .stat-list li p.number {
    font-size: 3rem;
    line-height: 3.6rem;
  }
}

.home-stats-wrapper .home-stats-container .stat-list li span.suffix {
  /**
                     * Padding.
                     */
  padding-left: 0.5rem;
}

/**
 * .navigation-flyout-wrapper.
 */
.navigation-flyout-wrapper {
  /**
     * Display.
     */
  opacity: 0;
  /**
     * 
     */
  pointer-events: none;
  /**
     * .hiding.
     */
  /**
     * &.show.
     */
  /**
     * .logo.
     */
  /**
     * Position.
     */
  position: fixed;
  top: 0;
  right: 0;
  /**
     * Sizing.
     */
  width: 100%;
  height: 100vh;
  /**
     * Background.
     */
  background: rgba(39, 36, 36, 0);
  /**
     * 
     */
  transition: background 0.3s ease-out;
  /**
     * Font related.
     */
  color: white;
  /**
     * Z-index.
     */
  z-index: 35;
  /**
     * .close-button.
     */
  /**
     * .navigation-flyout-container.
     */
}

.navigation-flyout-wrapper.hiding {
  opacity: 1;
}

.navigation-flyout-wrapper.show {
  /**
         * Background.
         */
  background: rgba(39, 36, 36, 0.95);
  /**
         * Opacity.
         */
  opacity: 1;
  /**
         * Pointer events.
         */
  pointer-events: all;
  /**
         * .navigation-flyout-container.
         */
}

.navigation-flyout-wrapper.show .navigation-flyout-container {
  right: 0;
}

.navigation-flyout-wrapper.show .logo {
  opacity: 1;
}

.navigation-flyout-wrapper .logo {
  /**
         * Sizing.
         */
  width: 15rem;
  /**
         * Position related.
         */
  position: absolute;
  top: 50%;
  left: 25%;
  /**
         * Opacity.
         */
  opacity: 0;
  /**
         * Transition.
         */
  transition: opacity 0.3s ease-out;
  /**
         * Transform.
         */
  transform: translateX(-50%) translateY(-50%);
  /**
         * @include.
         */
}

@media (max-width: 767px) {
  .navigation-flyout-wrapper .logo {
    display: none;
  }
}

.navigation-flyout-wrapper .close-button {
  /**
         * Background.
         */
  background-color: #bf0011;
  /**
         * Display.
         */
  display: block;
  /**
         * Position.
         */
  position: absolute;
  top: 0;
  right: 0;
  /**
         * Z-Index.
         */
  z-index: 10;
  /**
         * Sizing.
         */
  width: 6rem;
  height: 6rem;
  /**
         * @include.
         */
  /**
         * &:hover.
         */
  /**
         * .close-icon.
         */
}

@media (max-width: 767px) {
  .navigation-flyout-wrapper .close-button {
    /**
             * Sizing.
             */
    width: 3rem;
    height: 3rem;
  }
}

.navigation-flyout-wrapper .close-button:hover {
  background-color: #000;
}

.navigation-flyout-wrapper .close-button .close-icon {
  /**
             * Sizing.
             */
  width: 1.5rem;
  /**
             * Position.
             */
  position: absolute;
  top: 50%;
  left: 50%;
  /**
             * Transform.
             */
  transform: translateX(-50%) translateY(-50%);
}

.navigation-flyout-wrapper .navigation-flyout-container {
  /**
         * Background.
         */
  background-color: #bf0011;
  /**
         * Position.
         */
  position: absolute;
  top: 0;
  right: -100%;
  /**
         * 
         */
  transition: right 0.4s ease-out;
  /**
         * Z-Index.
         */
  z-index: 9;
  /**
         * Sizing.
         */
  width: 50%;
  height: 100%;
  /**
         * @include.
         */
  /**
         * .menu-primary-menu-container.
         */
}

@media (max-width: 767px) {
  .navigation-flyout-wrapper .navigation-flyout-container {
    /**
             * Position related.
             */
    top: 0%;
    /**
             * Sizing.
             */
    width: 100%;
    height: 100%;
  }
}

.navigation-flyout-wrapper .navigation-flyout-container .menu-primary-menu-container {
  /**
             * Position related.
             */
  position: absolute;
  top: 50%;
  left: 3rem;
  /**
             * @include.
             */
  /**
             * @include.
             */
  /**
             * Transform.
             */
  transform: translateY(-50%);
  /**
             * ul.
             */
}

@media (min-width: 1150px) {
  .navigation-flyout-wrapper .navigation-flyout-container .menu-primary-menu-container {
    left: 5rem;
  }
}

@media (max-width: 767px) {
  .navigation-flyout-wrapper .navigation-flyout-container .menu-primary-menu-container {
    left: 2rem;
  }
}

.navigation-flyout-wrapper .navigation-flyout-container .menu-primary-menu-container ul {
  /**
                 * li.
                 */
}

.navigation-flyout-wrapper .navigation-flyout-container .menu-primary-menu-container ul li {
  margin-bottom: 1.25rem;
  /**
                     * &.current_page_item, &.active.
                     */
  /**
                     * a.
                     */
}

.navigation-flyout-wrapper .navigation-flyout-container .menu-primary-menu-container ul li.current_page_item a, .navigation-flyout-wrapper .navigation-flyout-container .menu-primary-menu-container ul li.active a {
  font-weight: bold;
  color: #000;
}

.navigation-flyout-wrapper .navigation-flyout-container .menu-primary-menu-container ul li.current_page_item a:hover, .navigation-flyout-wrapper .navigation-flyout-container .menu-primary-menu-container ul li.active a:hover {
  color: #000;
}

.navigation-flyout-wrapper .navigation-flyout-container .menu-primary-menu-container ul li a {
  /**
                         * Font related.
                         */
  font-size: 3rem;
  line-height: 3.5rem;
  color: white;
  text-decoration: none;
  /**
                         * &:hover. 
                         */
}

.navigation-flyout-wrapper .navigation-flyout-container .menu-primary-menu-container ul li a:hover {
  color: #000;
}

/**
 * .ourreach-info-wrapper.
 */
.ourreach-info-wrapper {
  /**
     * Position.
     */
  position: relative;
  /**
     * Z-index.
     */
  z-index: 5;
  /**
     * Padding.
     */
  padding-bottom: 6rem;
  /**
     * Background.
     */
  background-color: #bf0011;
  /**
     * @include.
     */
  /**
     * &::before.
     */
  /**
     * 
     */
  /**
         * &::after.
         */
  /**
     * @include.
     */
  /**
     * .ourreach-info-container.
     */
}

.ourreach-info-wrapper::before {
  /**
         * Content.
         */
  content: '';
  /**
         * Position related.
         */
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  /**
         * Z-index.
         */
  z-index: -1;
  /**
         * Sizing.
         */
  width: 100%;
  height: 100%;
  /**
         * Transform.
         */
  transform-origin: top left;
  transform: skewY(12deg) translateY(-19rem);
  /**
         * breakpoint.
         */
  /**
         * Background.
         */
  background-color: #bf0011;
}

@media (min-width: 1200px) {
  .ourreach-info-wrapper::before {
    /**
             * Transform.
             */
    transform: skewY(8deg) translateY(-19rem);
  }
}

.ourreach-info-wrapper::after {
  /**
             * Content.
             */
  content: '';
  /**
             * Position.
             */
  position: absolute;
  bottom: 0;
  left: 0;
  /**
             * Z-index.
             */
  z-index: -2;
  /**
             * Sizing.
             */
  width: 100%;
  height: 40%;
  /**
             * Background.
             */
  background-color: #bf0011;
}

@media (max-width: 767px) {
  .ourreach-info-wrapper {
    /**
         * @include.
         */
    /**
     * &::before.
     */
    /**
     * 
     */
    /**
         * &::after.
         */
  }
  .ourreach-info-wrapper::before {
    /**
         * Content.
         */
    content: '';
    /**
         * Position related.
         */
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    /**
         * Z-index.
         */
    z-index: -1;
    /**
         * Sizing.
         */
    width: 100%;
    height: 100%;
    /**
         * Transform.
         */
    transform-origin: top left;
    transform: skewY(12deg) translateY(-11rem);
    /**
         * breakpoint.
         */
    /**
         * Background.
         */
    background-color: #bf0011;
  }
}

@media (max-width: 767px) and (min-width: 1200px) {
  .ourreach-info-wrapper::before {
    /**
             * Transform.
             */
    transform: skewY(8deg) translateY(-11rem);
  }
}

@media (max-width: 767px) {
  .ourreach-info-wrapper::after {
    /**
             * Content.
             */
    content: '';
    /**
             * Position.
             */
    position: absolute;
    bottom: 0;
    left: 0;
    /**
             * Z-index.
             */
    z-index: -2;
    /**
             * Sizing.
             */
    width: 100%;
    height: 40%;
    /**
             * Background.
             */
    background-color: #bf0011;
  }
}

.ourreach-info-wrapper .ourreach-info-container {
  /**
         * Padding.
         */
  padding-bottom: 19rem;
  /**
         * @include.
         */
  /**
         * .row-text.
         */
  /**
         * h2.heading.
         */
  /**
         * Font related.
         */
  color: white;
  /**
         * ul.
         */
}

@media (max-width: 767px) {
  .ourreach-info-wrapper .ourreach-info-container {
    /**
             * Padding.
             */
    padding-bottom: 15rem;
  }
}

.ourreach-info-wrapper .ourreach-info-container .row-text {
  /**
             * Padding.
             */
  padding-left: 6rem;
  padding-right: 6rem;
  padding-bottom: 2rem;
  /**
             * @include.
             */
  /**
             * .link.
             */
}

@media (max-width: 767px) {
  .ourreach-info-wrapper .ourreach-info-container .row-text {
    /**
                 * Padding.
                 */
    padding-left: 0;
    padding-right: 0;
  }
}

.ourreach-info-wrapper .ourreach-info-container .row-text .link {
  /**
                 * Display.
                 */
  display: inline-block;
  /**
                 * Margin.
                 */
  margin-top: 2rem;
  /**
                 * Font related.
                 */
  font-weight: bold;
  font-size: 1.25rem;
  color: #FFFFFF;
  text-decoration: none;
  /**
                 * &:hover.
                 */
}

.ourreach-info-wrapper .ourreach-info-container .row-text .link:hover {
  /**
                     * Font related.
                     */
  color: #000;
}

.ourreach-info-wrapper .ourreach-info-container h2.heading {
  margin-bottom: 2rem;
}

.ourreach-info-wrapper .ourreach-info-container ul {
  /**
             * li.
             */
}

.ourreach-info-wrapper .ourreach-info-container ul li {
  /**
                 * Display.
                 */
  display: -ms-flexbox;
  display: flex;
  /**
                 * &:nth-child(even).
                 */
  /**
                 * @include.
                 */
  /**
                 * .image-container.
                 */
  /**
                 * .text-container.
                 */
}

.ourreach-info-wrapper .ourreach-info-container ul li:nth-child(even) {
  -ms-flex-direction: row-reverse;
      flex-direction: row-reverse;
  /**
                     * .read-more-container.
                     */
}

.ourreach-info-wrapper .ourreach-info-container ul li:nth-child(even) .read-more-container {
  /**
                         * Position.
                         */
  left: auto !important;
  right: 0;
}

@media (max-width: 767px) {
  .ourreach-info-wrapper .ourreach-info-container ul li {
    display: block;
  }
}

.ourreach-info-wrapper .ourreach-info-container ul li .image-container {
  /**
                     * Sizing.
                     */
  min-height: 24rem;
  /**
                     * @include.
                     */
  /**
                     * Flex.
                     */
  -ms-flex-preferred-size: 50%;
      flex-basis: 50%;
  /**
                     * Background.
                     */
  background-size: cover;
  background-position: center;
  /**
                     * img.
                     */
}

@media (max-width: 767px) {
  .ourreach-info-wrapper .ourreach-info-container ul li .image-container {
    /**
                         * Sizing.
                         */
    min-height: 20rem;
  }
}

.ourreach-info-wrapper .ourreach-info-container ul li .image-container img {
  display: none;
}

.ourreach-info-wrapper .ourreach-info-container ul li .text-container {
  /**
                     * Position.
                     */
  position: relative;
  /**
                     * Font related.
                     */
  text-align: center;
  /**
                     * @include.
                     */
  /**
                     * &.show.
                     */
  /**
                     * Display.
                     */
  display: -ms-flexbox;
  display: flex;
  /**
                     * Overflow.
                     */
  overflow: hidden;
  /**
                     * Flex.
                     */
  -ms-flex-preferred-size: 50%;
      flex-basis: 50%;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
  /**
                     * Background.
                     */
  background-color: white;
  /**
                     * .heading.
                     */
  /**
                     * .minus.
                     */
  /**
                     * &:hover.
                     */
  /**
                     * .read-more-container.
                     */
  /**
                     * .details-container.
                     */
}

@media (max-width: 767px) {
  .ourreach-info-wrapper .ourreach-info-container ul li .text-container {
    /**
                         * Sizing.
                         */
    min-height: 20rem;
  }
}

.ourreach-info-wrapper .ourreach-info-container ul li .text-container.show {
  /**
                         * .details-container.
                         */
  /**
                         * .read-more-container.
                         */
}

.ourreach-info-wrapper .ourreach-info-container ul li .text-container.show .details-container {
  /**
                             * Transform.
                             */
  transform: translateY(0);
}

.ourreach-info-wrapper .ourreach-info-container ul li .text-container.show .read-more-container {
  /**
                             * .plus.
                             */
  /**
                             * .minus.
                             */
}

.ourreach-info-wrapper .ourreach-info-container ul li .text-container.show .read-more-container .plus {
  /**
                                 * Display.
                                 */
  display: none;
}

.ourreach-info-wrapper .ourreach-info-container ul li .text-container.show .read-more-container .minus {
  /**
                                 * Display.
                                 */
  display: block;
}

.ourreach-info-wrapper .ourreach-info-container ul li .text-container .heading {
  color: #000;
}

.ourreach-info-wrapper .ourreach-info-container ul li .text-container .minus {
  /**
                         * Display.
                         */
  display: none;
}

.ourreach-info-wrapper .ourreach-info-container ul li .text-container:hover {
  /**
                         * Font related.
                         */
  text-decoration: none;
  /**
                         * 
                         */
  /**
                         * .read-more-container.
                         */
}

.ourreach-info-wrapper .ourreach-info-container ul li .text-container:hover h3 {
  color: #636363;
}

.ourreach-info-wrapper .ourreach-info-container ul li .text-container .read-more-container {
  /**
                         * Background.
                         */
  background-color: #000;
  /**
                         * Position.
                         */
  position: absolute;
  top: 0;
  left: 0;
  /**
                         * Z-index.
                         */
  z-index: 10;
  /**
                         * @include.
                         */
  /**
                         * Padding.
                         */
  width: 3rem;
  height: 3rem;
  /**
                         * .image.
                         */
}

@media (max-width: 767px) {
  .ourreach-info-wrapper .ourreach-info-container ul li .text-container .read-more-container {
    /**
                             * Position related..
                             */
    left: auto !important;
    right: 0 !important;
  }
}

.ourreach-info-wrapper .ourreach-info-container ul li .text-container .read-more-container .image {
  /**
                             * Position related.
                             */
  position: absolute;
  top: 50%;
  left: 50%;
  /**
                             * Transform.
                             */
  transform: translateX(-50%) translateY(-50%);
  /**
                             * 
                             */
  width: 1.2rem;
}

.ourreach-info-wrapper .ourreach-info-container ul li .text-container .read-more-container svg polygon, .ourreach-info-wrapper .ourreach-info-container ul li .text-container .read-more-container svg rect {
  fill: white;
}

.ourreach-info-wrapper .ourreach-info-container ul li .text-container .details-container {
  /**
                         * Display.
                         */
  display: block;
  /**
                         * Position related.
                         */
  position: absolute;
  top: 0;
  left: 0;
  /**
                         * Sizing.
                         */
  width: 100%;
  height: 100%;
  /**
                         * Background.
                         */
  background-color: #000;
  /**
                         * Transform.
                         */
  transform: translateY(100%);
  /**
                         * Transition.
                         */
  transition: transform 0.25s ease-out;
  /**
                         * Font related.
                         */
  text-align: left;
  /**
                         * ul.
                         */
}

.ourreach-info-wrapper .ourreach-info-container ul li .text-container .details-container ul {
  /**
                             * Position related.
                             */
  position: absolute;
  top: 50%;
  left: 4rem;
  /**
                             * Transform.
                             */
  transform: translateY(-50%);
  /**
                             * 
                             */
  list-style: disc !important;
  /**
                             * li.
                             */
}

.ourreach-info-wrapper .ourreach-info-container ul li .text-container .details-container ul li {
  /**
                                 * 
                                 */
  display: list-item;
  /**
                                 * Flex.
                                 */
  /**
                                 * Margin.
                                 */
  margin-bottom: 1rem;
  /**
                                 * Font related.
                                 */
  font-size: 1.6rem;
  line-height: 2rem;
  color: white;
  /**
                                 * &:last-child.
                                 */
}

.ourreach-info-wrapper .ourreach-info-container ul li .text-container .details-container ul li:last-child {
  margin-bottom: 0;
}

/**
 * .ourreach-map-wrapper.
 */
.ourreach-map-wrapper {
  /**
     * Background.
     */
  background-color: #ebebeb;
  /**
     * .ourreach-map-container.
     */
}

.ourreach-map-wrapper .ourreach-map-container {
  /**
         * .heading.
         */
}

.ourreach-map-wrapper .ourreach-map-container .heading {
  /**
             * Margin.
             */
  margin-bottom: 3rem;
}

/**
 * .map-wrapper.
 */
.map-wrapper {
  /**
     * Position.
     */
  position: relative;
  /**
     * Background.
     */
  background-color: #ebebeb;
  /**
     * Padding.
     */
  padding-bottom: 18rem;
  padding-left: 5rem;
  padding-right: 5rem;
  /**
     * @include.
     */
  /**
     * Force all colors grey.
     */
  /**
     * 
     */
}

@media (max-width: 767px) {
  .map-wrapper {
    /**
         * Padding.
         */
    padding-bottom: 12rem;
  }
}

.map-wrapper svg {
  /**
         * path.
         */
}

.map-wrapper svg path {
  /**
             * Fill.
             */
  fill: #9e9e9e;
}

.map-wrapper .label {
  /**
         * Opacity.
         */
  opacity: 0;
  /**
         * Background.
         */
  background-color: #FFFFFF;
  /**
         * Font related.
         */
  font-size: 1.8rem;
  color: #272424;
  /**
         * Padding.
         */
  padding: 0.5rem 1rem 0.5rem 1rem;
  /**
         * Position related.
         */
  position: absolute;
  top: 0;
  left: 0;
  /**
         * Transform.
         */
  transform: translateX(-50%) translateY(-50%);
  /**
         * Transition.
         */
  transition: opacity 0.25s ease;
  /**
         * Pointer events.
         */
  pointer-events: none;
  /**
         * Box shadow.
         */
  box-shadow: 4px 4px rgba(39, 36, 36, 0.1);
}

/** 
 * .page-body-wrapper.
 */
.page-body-wrapper {
  /**
     * .page-body-container.
     */
}

.page-body-wrapper .page-body-container {
  /**
         * Padding.
         */
  padding-top: 6rem;
  padding-bottom: 24rem;
  /**
         * Font related.
         */
  color: #000;
  /**
         * p.
         */
  /**
         * h1.
         */
  /**
         * h2.
         */
  /**
         * h3.
         */
  /**
         * ul.
         */
}

.page-body-wrapper .page-body-container p {
  /**
             * a.
             */
}

.page-body-wrapper .page-body-container p a {
  color: #000;
  text-decoration: underline;
  /**
                 * &:hover.
                 */
}

.page-body-wrapper .page-body-container p a:hover {
  /**
                     * Font related.
                     */
  color: #bf0011;
}

.page-body-wrapper .page-body-container h1 {
  /**
             * Padding.
             */
  padding-bottom: 2rem;
}

.page-body-wrapper .page-body-container h2 {
  /**
             * Font related.
             */
  color: #000;
  letter-spacing: 0;
  font-size: 2.2rem;
  /**
             * Margin.
             */
  margin-bottom: 1rem;
}

.page-body-wrapper .page-body-container h3 {
  /**
             * Font related.
             */
  color: #000;
  font-size: 1.6rem;
  /**
             * Margin.
             */
  margin-bottom: 1rem;
}

.page-body-wrapper .page-body-container h4 {
  /**
             * Font related.
             */
  color: #000;
  font-size: 1.3rem;
  /**
             * Margin.
             */
  margin-bottom: 1rem;
}

.page-body-wrapper .page-body-container ul {
  /**
             * Margin.
             */
  margin-left: 1.25rem;
  margin-bottom: 1.5rem;
  /**
             * li.
             */
}

.page-body-wrapper .page-body-container ul li {
  /**
                 * List style.
                 */
  list-style: disc;
  /**
                 * Margin.
                 */
  margin-bottom: 0.5rem;
  /**
                 * Font related.
                 */
  font-size: 1.125rem;
  line-height: 1.7rem;
}

/**
 * .products-intro-wrapper.
 */
.products-intro-wrapper {
  /**
     * .products-intro-container.
     */
}

.products-intro-wrapper .products-intro-container {
  /**
         * Padding.
         */
  padding-bottom: 17rem;
  /**
         * @include.
         */
}

@media (max-width: 767px) {
  .products-intro-wrapper .products-intro-container {
    /**
             * Padding.
             */
    padding-bottom: 12rem;
  }
}

/**
 * .products-products-wrapper.
 */
.products-products-wrapper {
  /**
     * Position.
     */
  position: relative;
  /**
     * Z-index.
     */
  z-index: 5;
  /**
     * @include.
     */
  /**
     * &::before.
     */
  /**
     * 
     */
  /**
         * &::after.
         */
  /**
     * @include.
     */
  /**
     * Margin.
     */
  margin-top: -1rem;
  /**
     * Padding.
     */
  padding-bottom: 22rem;
  /**
     * @include.
     */
  /**
     * .products-products-container.
     */
}

.products-products-wrapper::before {
  /**
         * Content.
         */
  content: '';
  /**
         * Position related.
         */
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  /**
         * Z-index.
         */
  z-index: -1;
  /**
         * Sizing.
         */
  width: 100%;
  height: 100%;
  /**
         * Transform.
         */
  transform-origin: top left;
  transform: skewY(12deg) translateY(-17rem);
  /**
         * breakpoint.
         */
  /**
         * Background.
         */
  background-color: #bf0011;
}

@media (min-width: 1200px) {
  .products-products-wrapper::before {
    /**
             * Transform.
             */
    transform: skewY(8deg) translateY(-17rem);
  }
}

.products-products-wrapper::after {
  /**
             * Content.
             */
  content: '';
  /**
             * Position.
             */
  position: absolute;
  bottom: 0;
  left: 0;
  /**
             * Z-index.
             */
  z-index: -2;
  /**
             * Sizing.
             */
  width: 100%;
  height: 40%;
  /**
             * Background.
             */
  background-color: #bf0011;
}

@media (max-width: 767px) {
  .products-products-wrapper {
    /**
         * @include.
         */
    /**
     * &::before.
     */
    /**
     * 
     */
    /**
         * &::after.
         */
  }
  .products-products-wrapper::before {
    /**
         * Content.
         */
    content: '';
    /**
         * Position related.
         */
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    /**
         * Z-index.
         */
    z-index: -1;
    /**
         * Sizing.
         */
    width: 100%;
    height: 100%;
    /**
         * Transform.
         */
    transform-origin: top left;
    transform: skewY(12deg) translateY(-11rem);
    /**
         * breakpoint.
         */
    /**
         * Background.
         */
    background-color: #bf0011;
  }
}

@media (max-width: 767px) and (min-width: 1200px) {
  .products-products-wrapper::before {
    /**
             * Transform.
             */
    transform: skewY(8deg) translateY(-11rem);
  }
}

@media (max-width: 767px) {
  .products-products-wrapper::after {
    /**
             * Content.
             */
    content: '';
    /**
             * Position.
             */
    position: absolute;
    bottom: 0;
    left: 0;
    /**
             * Z-index.
             */
    z-index: -2;
    /**
             * Sizing.
             */
    width: 100%;
    height: 40%;
    /**
             * Background.
             */
    background-color: #bf0011;
  }
}

@media (max-width: 767px) {
  .products-products-wrapper {
    /**
         * Padding.
         */
    padding-bottom: 16rem;
  }
}

.products-products-wrapper .products-products-container {
  /**
         * .row-product-groups.
         */
  /**
         * .row-products.
         */
  /**
         * h2.
         */
  /**
         * .products-list.
         */
}

.products-products-wrapper .products-products-container .row-product-groups {
  /**
             * Font related.
             */
  color: #FFFFFF;
}

.products-products-wrapper .products-products-container .row-products {
  /**
             * Margin.
             */
  margin-top: 3.5rem;
}

.products-products-wrapper .products-products-container h2 {
  /**
             * Margin.
             */
  margin-bottom: 2rem;
  /**
             * @include.
             */
}

@media (max-width: 767px) {
  .products-products-wrapper .products-products-container h2 {
    /**
                 * Font related.
                 */
    margin-bottom: 1rem;
  }
}

.products-products-wrapper .products-products-container .products-list {
  /**
             * Margin.
             */
  margin-bottom: 3rem;
  /**
             * Overflow.
             */
  overflow: hidden;
  /**
             * li.
             */
  /**
             * .product-wrapper.
             */
  /**
             * .image-container.
             */
  /**
             * .text-container.
             */
  /**
             * .read-more-container.
             */
}

.products-products-wrapper .products-products-container .products-list li {
  /**
                 * Display.
                 */
  display: -ms-flexbox;
  display: flex;
  /**
                 * Overflow.
                 */
  overflow: hidden;
  /**
                 * Margin.
                 */
  margin-bottom: 1rem;
}

.products-products-wrapper .products-products-container .products-list .product-wrapper {
  /**
                 * Display.
                 */
  display: -ms-flexbox;
  display: flex;
  /**
                 * Sizing.
                 */
  width: 100%;
  /**
                 * Font related.
                 */
  text-decoration: none;
  /**
                 * @include.
                 */
  /**
                 * &:hover.
                 */
}

@media (max-width: 768px) {
  .products-products-wrapper .products-products-container .products-list .product-wrapper {
    /**
                     * Flex.
                     */
    display: block;
    /**
                     * .image-container.
                     */
    /**
                     * .text-container.
                     */
  }
  .products-products-wrapper .products-products-container .products-list .product-wrapper .image-container {
    /**
                         * Sizing.
                         */
    width: 100%;
    height: 16rem;
  }
  .products-products-wrapper .products-products-container .products-list .product-wrapper .text-container {
    /**
                         * Sizing.
                         */
    width: 100%;
    /**
                         * Padding.
                         */
    padding-left: 2rem;
    padding-top: 4rem;
    padding-bottom: 4rem;
    padding-right: 2rem;
  }
}

.products-products-wrapper .products-products-container .products-list .product-wrapper:hover {
  /**
                     * .text-container.
                     */
}

.products-products-wrapper .products-products-container .products-list .product-wrapper:hover .text-container {
  /**
                         * Background.
                         */
  background-color: #000;
  /**
                         * Font related.
                         */
  color: #FFFFFF;
  text-decoration: none;
}

.products-products-wrapper .products-products-container .products-list .image-container {
  /**
                 * Background.
                 */
  background-position: center;
  background-size: cover;
  /**
                 * Sizing.
                 */
  width: 50%;
  /**
                 * img.
                 */
}

.products-products-wrapper .products-products-container .products-list .image-container img {
  /**
                     * Display.
                     */
  display: none;
}

.products-products-wrapper .products-products-container .products-list .text-container {
  /**
                 * Display.
                 */
  display: -ms-flexbox;
  display: flex;
  /**
                 * Flex.
                 */
  -ms-flex-align: center;
      align-items: center;
  /**
                 * Padding.
                 */
  padding-left: 3rem;
  padding-top: 8rem;
  padding-bottom: 8rem;
  padding-right: 2rem;
  /**
                 * Position.
                 */
  position: relative;
  /**
                 * Sizing.
                 */
  width: 50%;
  /**
                 * Font related.
                 */
  color: #000;
  text-decoration: none;
  /**
                 * Background.
                 */
  background-color: #FFFFFF;
  /**
                 * .heading.
                 */
  /**
                 * .details-container.
                 */
}

.products-products-wrapper .products-products-container .products-list .text-container .heading {
  /**
                     * Font related.
                     */
  font-size: 2rem;
  line-height: 2.7rem;
  /**
                     * @include.
                     */
}

@media (max-width: 767px) {
  .products-products-wrapper .products-products-container .products-list .text-container .heading {
    /**
                         * Font related.
                         */
    font-size: 1.8rem;
    letter-spacing: 3px;
    font-variant-ligatures: no-common-ligatures;
    -webkit-font-variant-ligatures: no-common-ligatures;
  }
}

.products-products-wrapper .products-products-container .products-list .text-container .details-container {
  /**
                     * Display.
                     */
  display: none;
}

.products-products-wrapper .products-products-container .products-list .read-more-container {
  /**
                 * Background.
                 */
  background-color: #000;
  /**
                 * Position.
                 */
  position: absolute;
  top: 0;
  right: 0;
  /**
                 * Z-index.
                 */
  z-index: 10;
  /**
                 * @include.
                 */
  /**
                 * Padding.
                 */
  width: 3rem;
  height: 3rem;
  /**
                 * .image.
                 */
  /**
                 * svg.
                 */
}

@media (max-width: 767px) {
  .products-products-wrapper .products-products-container .products-list .read-more-container {
    /**
                     * Position related..
                     */
    left: auto !important;
    right: 0 !important;
  }
}

.products-products-wrapper .products-products-container .products-list .read-more-container .image {
  /**
                     * Position related.
                     */
  position: absolute;
  top: 50%;
  left: 50%;
  /**
                     * Transform.
                     */
  transform: translateX(-50%) translateY(-50%);
  /**
                     * 
                     */
  width: 1.2rem;
}

.products-products-wrapper .products-products-container .products-list .read-more-container svg {
  /**
                     * polygon, rect.
                     */
}

.products-products-wrapper .products-products-container .products-list .read-more-container svg polygon, .products-products-wrapper .products-products-container .products-list .read-more-container svg rect {
  /**
                         * Fill.
                         */
  fill: white;
}

/**
 * .shipping-infoblock-wrapper.
 */
.shipping-infoblock-wrapper {
  /**
     * Position.
     */
  position: relative;
  /**
     * Z-index.
     */
  z-index: 5;
  /**
     * Background.
     */
  background-position: center;
  background-size: cover;
  /**
     * Padding.
     */
  padding-bottom: 38rem;
  padding-top: 6rem;
  /**
     * @include.
     */
  /**
     * .razor-edge.
     */
  /**
     * .shipping-infoblock-container.
     */
}

@media (max-width: 575px) {
  .shipping-infoblock-wrapper {
    /**
         * Background.
         */
    background-image: none !important;
    background-color: #bf0011;
    /**
         * Padding.
         */
    padding-bottom: 16rem;
  }
}

.shipping-infoblock-wrapper .razor-edge {
  /**
     * Overflow.
     */
  overflow: hidden;
  /**
     * Position.
     */
  position: absolute;
  top: 0;
  left: 0;
  /**
     * Sizing.
     */
  height: 22rem;
  width: 100%;
  /**
     * &::before.
     */
}

.shipping-infoblock-wrapper .razor-edge::before {
  /**
         * Content.
         */
  content: '';
  /**
         * Position related.
         */
  position: absolute;
  bottom: 0;
  right: 0;
  /**
         * Z-index.
         */
  z-index: 1;
  /**
         * Sizing.
         */
  width: 120%;
  height: 40rem;
  /**
         * Transform.
         */
  transform-origin: bottom right;
  transform: rotate(12deg);
  /**
         * breakpoint.
         */
  /**
         * Background.
         */
  background-color: #ebebeb;
}

@media (min-width: 1200px) {
  .shipping-infoblock-wrapper .razor-edge::before {
    /**
             * Transform.
             */
    transform: rotate(8deg);
  }
}

.shipping-infoblock-wrapper .shipping-infoblock-container {
  /**
         * Position.
         */
  position: relative;
  /**
         * Margin.
         */
  margin-top: -6rem;
  /**
         * Z-index.
         */
  z-index: 5;
  /**
         * @include.
         */
  /**
     * &::before.
     */
  /**
     * 
     */
  /**
         * &::after.
         */
  /**
         * Font related.
         */
  color: white;
  /**
         * Padding.
         */
  padding-left: 6rem;
  padding-right: 6rem;
  padding-bottom: 2rem;
  padding-top: 2rem;
  /**
         * @include.
         */
  /**
         * .heading,
         */
  /**
         * ul.
         */
}

.shipping-infoblock-wrapper .shipping-infoblock-container::before {
  /**
         * Content.
         */
  content: '';
  /**
         * Position related.
         */
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  /**
         * Z-index.
         */
  z-index: -1;
  /**
         * Sizing.
         */
  width: 100%;
  height: 50%;
  /**
         * Transform.
         */
  transform-origin: top left;
  transform: skewY(12deg) translateY(0);
  /**
         * breakpoint.
         */
  /**
         * Background.
         */
  background-color: #bf0011;
}

@media (min-width: 1200px) {
  .shipping-infoblock-wrapper .shipping-infoblock-container::before {
    /**
             * Transform.
             */
    transform: skewY(8deg) translateY(0);
  }
}

.shipping-infoblock-wrapper .shipping-infoblock-container::after {
  /**
             * Content.
             */
  content: '';
  /**
             * Position.
             */
  position: absolute;
  bottom: 0;
  left: 0;
  /**
             * Z-index.
             */
  z-index: -2;
  /**
             * Sizing.
             */
  width: 100%;
  height: 50%;
  /**
             * Background.
             */
  background-color: #bf0011;
}

@media (max-width: 767px) {
  .shipping-infoblock-wrapper .shipping-infoblock-container {
    /**
             * Padding.
             */
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

.shipping-infoblock-wrapper .shipping-infoblock-container .heading {
  /**
             * Margin.
             */
  margin-bottom: 4rem;
  /**
             * Padding.
             */
  padding-top: 10rem;
}

.shipping-infoblock-wrapper .shipping-infoblock-container ul li {
  /**
                 * Margin.
                 */
  margin-bottom: 3rem;
  /**
                 * .list-item-content.
                 */
}

.shipping-infoblock-wrapper .shipping-infoblock-container ul li .list-item-content {
  /**
                     * .col-image.
                     */
  /**
                     * .col-text.
                     */
}

.shipping-infoblock-wrapper .shipping-infoblock-container ul li .list-item-content .col-image {
  /**
                         * .image-container.
                         */
}

.shipping-infoblock-wrapper .shipping-infoblock-container ul li .list-item-content .col-image .image-container {
  /**
                             * Sizing.
                             */
  height: 16rem;
  /**
                             * Background.
                             */
  background-size: cover;
  background-position: center;
  /**
                             * img.
                             */
}

.shipping-infoblock-wrapper .shipping-infoblock-container ul li .list-item-content .col-image .image-container img {
  display: none;
}

.shipping-infoblock-wrapper .shipping-infoblock-container ul li .list-item-content .col-text {
  /**
                         * Display.
                         */
  display: -ms-flexbox;
  display: flex;
  /**
                         * Padding.
                         */
  padding-left: 3rem;
  padding-right: 3rem;
  /**
                         * @include.
                         */
  /**
                         * Flex.
                         */
  -ms-flex-align: center;
      align-items: center;
  /**
                         * p.
                         */
}

@media (max-width: 767px) {
  .shipping-infoblock-wrapper .shipping-infoblock-container ul li .list-item-content .col-text {
    /**
                             * Padding.
                             */
    padding-top: 2rem;
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

.shipping-infoblock-wrapper .shipping-infoblock-container ul li .list-item-content .col-text p:last-child {
  margin-bottom: 0;
}

/**
 * .shipping-intro-wrapper.
 */
.shipping-intro-wrapper {
  /**
     * Position.
     */
  position: relative;
  /**
     * .shipping-intro-container.
     */
}

.shipping-intro-wrapper .shipping-intro-container {
  padding-bottom: 2rem;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmNzcyIsInNvdXJjZXMiOlsic3R5bGVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL19icmVha3BvaW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX2NvbnRleHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9faGVscGVycy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19wYXJzZXJzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fcXVlcnkuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL19zaW5nbGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3NpbmdsZS9fZGVmYXVsdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX2RvdWJsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kZWZhdWx0LXBhaXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL2RvdWJsZS9fZG91YmxlLXN0cmluZy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kZWZhdWx0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fdHJpcGxlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy90cmlwbGUvX2RlZmF1bHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL19yZXNvbHV0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9yZXNvbHV0aW9uL19yZXNvbHV0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX25vLXF1ZXJ5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX3Jlc3BvbmQtdG8uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fbGVnYWN5LXNldHRpbmdzLnNjc3MiLCJnZW5lcmljL19icmVha3BvaW50cy5zY3NzIiwiZ2VuZXJpYy9fcmVzZXQuc2NzcyIsIm1hbmFnZWQvX2NvbG9ycy5zY3NzIiwibWFuYWdlZC9fZm9udC1zaXplcy5zY3NzIiwibWl4aW5zL19jbGVhcmZpeC5zY3NzIiwibWl4aW5zL19mb250ZWxsby5zY3NzIiwibWl4aW5zL19oYW1idXJnZXIuc2NzcyIsIm1peGlucy9fcmF6b3ItZWRnZS5zY3NzIiwiYmFzZS9fYmFzZS5zY3NzIiwiYmFzZS9fY29sb3Vycy5zY3NzIiwiYmFzZS9fdmFyaWFibGVzLnNjc3MiLCJjb21wb25lbnRzL2NvbW1vbi9fZm9vdGVyLnNjc3MiLCJjb21wb25lbnRzL2NvbW1vbi9faGVhZGVyLnNjc3MiLCJjb21wb25lbnRzL2NvbW1vbi9fbW9iaWxlLW5hdi5zY3NzIiwiY29tcG9uZW50cy9jb21tb24vX25hdmlnYXRpb24uc2NzcyIsImNvbXBvbmVudHMvY29tbW9uL19zaW1wbGUtcG9wdXAuc2NzcyIsImVsZW1lbnRzL19idXR0b25zLnNjc3MiLCJlbGVtZW50cy9fbmF2cy5zY3NzIiwicGFnZXMvNDA0L180MDQtcGFnZS5zY3NzIiwicGFnZXMvYWJvdXQvX2hlcm8uc2NzcyIsInBhZ2VzL2Fib3V0L19pbmZvLWJsb2NrLnNjc3MiLCJwYWdlcy9hYm91dC9faW50cm8uc2NzcyIsInBhZ2VzL2Fib3V0L190ZXN0aW1vbmlhbHMuc2NzcyIsInBhZ2VzL2NvbW1vbi9faGVyby5zY3NzIiwicGFnZXMvY29tbW9uL19pbnRyby5zY3NzIiwicGFnZXMvY29udGFjdC9fY29udGFjdC5zY3NzIiwicGFnZXMvaG9tZS9faGVyby5zY3NzIiwicGFnZXMvaG9tZS9faW50cm8uc2NzcyIsInBhZ2VzL2hvbWUvX3N0YXRzLnNjc3MiLCJwYWdlcy9uYXZpZ2F0aW9uL19uYXZpZ2F0aW9uLnNjc3MiLCJwYWdlcy9vdXItcmVhY2gvX2hlcm8uc2NzcyIsInBhZ2VzL291ci1yZWFjaC9faW5mby1ibG9jay5zY3NzIiwicGFnZXMvb3VyLXJlYWNoL19pbnRyby5zY3NzIiwicGFnZXMvb3VyLXJlYWNoL19tYXAuc2NzcyIsInBhZ2VzL3BhZ2UvX3BhZ2Uuc2NzcyIsInBhZ2VzL3Byb2R1Y3RzL19oZXJvLnNjc3MiLCJwYWdlcy9wcm9kdWN0cy9faW50cm8uc2NzcyIsInBhZ2VzL3Byb2R1Y3RzL19wcm9kdWN0cy5zY3NzIiwicGFnZXMvc2hpcHBpbmcvX2hlcm8uc2NzcyIsInBhZ2VzL3NoaXBwaW5nL19pbmZvLWJsb2NrLnNjc3MiLCJwYWdlcy9zaGlwcGluZy9faW50cm8uc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbmNsdWRpbmcgYWxsIHRoZSBzdWIgc2NzcyBmaWxlcy5cbkBpbXBvcnQgXCJub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnRcIjtcbkBpbXBvcnQgXCIvVXNlcnMvbS9TaXRlcy9iZWxjb3JlL3NyYy9zYXNzL2dlbmVyaWMvX2JyZWFrcG9pbnRzLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvbS9TaXRlcy9iZWxjb3JlL3NyYy9zYXNzL2dlbmVyaWMvX3Jlc2V0LnNjc3NcIjtcblxuQGltcG9ydCBcIi9Vc2Vycy9tL1NpdGVzL2JlbGNvcmUvc3JjL3Nhc3MvbWFuYWdlZC9fY29sb3JzLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvbS9TaXRlcy9iZWxjb3JlL3NyYy9zYXNzL21hbmFnZWQvX2ZvbnQtc2l6ZXMuc2Nzc1wiO1xuXG5cbkBpbXBvcnQgXCIvVXNlcnMvbS9TaXRlcy9iZWxjb3JlL3NyYy9zYXNzL21peGlucy9fY2xlYXJmaXguc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9tL1NpdGVzL2JlbGNvcmUvc3JjL3Nhc3MvbWl4aW5zL19mb250ZWxsby5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL20vU2l0ZXMvYmVsY29yZS9zcmMvc2Fzcy9taXhpbnMvX2hhbWJ1cmdlci5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL20vU2l0ZXMvYmVsY29yZS9zcmMvc2Fzcy9taXhpbnMvX3Jhem9yLWVkZ2Uuc2Nzc1wiO1xuXG5cbkBpbXBvcnQgXCIvVXNlcnMvbS9TaXRlcy9iZWxjb3JlL3NyYy9zYXNzL2Jhc2UvX2Jhc2Uuc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9tL1NpdGVzL2JlbGNvcmUvc3JjL3Nhc3MvYmFzZS9fY29sb3Vycy5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL20vU2l0ZXMvYmVsY29yZS9zcmMvc2Fzcy9iYXNlL192YXJpYWJsZXMuc2Nzc1wiO1xuXG5AaW1wb3J0IFwiL1VzZXJzL20vU2l0ZXMvYmVsY29yZS9zcmMvc2Fzcy9jb21wb25lbnRzL2NvbW1vbi9fZm9vdGVyLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvbS9TaXRlcy9iZWxjb3JlL3NyYy9zYXNzL2NvbXBvbmVudHMvY29tbW9uL19oZWFkZXIuc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9tL1NpdGVzL2JlbGNvcmUvc3JjL3Nhc3MvY29tcG9uZW50cy9jb21tb24vX21vYmlsZS1uYXYuc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9tL1NpdGVzL2JlbGNvcmUvc3JjL3Nhc3MvY29tcG9uZW50cy9jb21tb24vX25hdmlnYXRpb24uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9tL1NpdGVzL2JlbGNvcmUvc3JjL3Nhc3MvY29tcG9uZW50cy9jb21tb24vX3NpbXBsZS1wb3B1cC5zY3NzXCI7XG5cbkBpbXBvcnQgXCIvVXNlcnMvbS9TaXRlcy9iZWxjb3JlL3NyYy9zYXNzL2VsZW1lbnRzL19idXR0b25zLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvbS9TaXRlcy9iZWxjb3JlL3NyYy9zYXNzL2VsZW1lbnRzL19uYXZzLnNjc3NcIjtcblxuQGltcG9ydCBcIi9Vc2Vycy9tL1NpdGVzL2JlbGNvcmUvc3JjL3Nhc3MvcGFnZXMvNDA0L180MDQtcGFnZS5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL20vU2l0ZXMvYmVsY29yZS9zcmMvc2Fzcy9wYWdlcy9hYm91dC9faGVyby5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL20vU2l0ZXMvYmVsY29yZS9zcmMvc2Fzcy9wYWdlcy9hYm91dC9faW5mby1ibG9jay5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL20vU2l0ZXMvYmVsY29yZS9zcmMvc2Fzcy9wYWdlcy9hYm91dC9faW50cm8uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9tL1NpdGVzL2JlbGNvcmUvc3JjL3Nhc3MvcGFnZXMvYWJvdXQvX3Rlc3RpbW9uaWFscy5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL20vU2l0ZXMvYmVsY29yZS9zcmMvc2Fzcy9wYWdlcy9jb21tb24vX2hlcm8uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9tL1NpdGVzL2JlbGNvcmUvc3JjL3Nhc3MvcGFnZXMvY29tbW9uL19pbnRyby5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL20vU2l0ZXMvYmVsY29yZS9zcmMvc2Fzcy9wYWdlcy9jb250YWN0L19jb250YWN0LnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvbS9TaXRlcy9iZWxjb3JlL3NyYy9zYXNzL3BhZ2VzL2hvbWUvX2hlcm8uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9tL1NpdGVzL2JlbGNvcmUvc3JjL3Nhc3MvcGFnZXMvaG9tZS9faW50cm8uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9tL1NpdGVzL2JlbGNvcmUvc3JjL3Nhc3MvcGFnZXMvaG9tZS9fc3RhdHMuc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9tL1NpdGVzL2JlbGNvcmUvc3JjL3Nhc3MvcGFnZXMvbmF2aWdhdGlvbi9fbmF2aWdhdGlvbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL20vU2l0ZXMvYmVsY29yZS9zcmMvc2Fzcy9wYWdlcy9vdXItcmVhY2gvX2hlcm8uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9tL1NpdGVzL2JlbGNvcmUvc3JjL3Nhc3MvcGFnZXMvb3VyLXJlYWNoL19pbmZvLWJsb2NrLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvbS9TaXRlcy9iZWxjb3JlL3NyYy9zYXNzL3BhZ2VzL291ci1yZWFjaC9faW50cm8uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9tL1NpdGVzL2JlbGNvcmUvc3JjL3Nhc3MvcGFnZXMvb3VyLXJlYWNoL19tYXAuc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9tL1NpdGVzL2JlbGNvcmUvc3JjL3Nhc3MvcGFnZXMvcGFnZS9fcGFnZS5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL20vU2l0ZXMvYmVsY29yZS9zcmMvc2Fzcy9wYWdlcy9wcm9kdWN0cy9faGVyby5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL20vU2l0ZXMvYmVsY29yZS9zcmMvc2Fzcy9wYWdlcy9wcm9kdWN0cy9faW50cm8uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9tL1NpdGVzL2JlbGNvcmUvc3JjL3Nhc3MvcGFnZXMvcHJvZHVjdHMvX3Byb2R1Y3RzLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvbS9TaXRlcy9iZWxjb3JlL3NyYy9zYXNzL3BhZ2VzL3NoaXBwaW5nL19oZXJvLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvbS9TaXRlcy9iZWxjb3JlL3NyYy9zYXNzL3BhZ2VzL3NoaXBwaW5nL19pbmZvLWJsb2NrLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvbS9TaXRlcy9iZWxjb3JlL3NyYy9zYXNzL3BhZ2VzL3NoaXBwaW5nL19pbnRyby5zY3NzXCI7XG5cblxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIERlZmF1bHQgVmFyaWFibGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRCcmVha3BvaW50LVNldHRpbmdzOiAoXG4gICdkZWZhdWx0IG1lZGlhJzogYWxsLFxuICAnZGVmYXVsdCBmZWF0dXJlJzogbWluLXdpZHRoLFxuICAnZGVmYXVsdCBwYWlyJzogd2lkdGgsXG5cbiAgJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJzogZmFsc2UsXG4gICd0byBlbXMnOiBmYWxzZSxcbiAgJ3RyYW5zZm9ybSByZXNvbHV0aW9ucyc6IHRydWUsXG5cbiAgJ25vIHF1ZXJpZXMnOiBmYWxzZSxcbiAgJ25vIHF1ZXJ5IGZhbGxiYWNrcyc6IGZhbHNlLFxuXG4gICdiYXNlIGZvbnQgc2l6ZSc6IDE2cHgsXG5cbiAgJ2xlZ2FjeSBzeW50YXgnOiBmYWxzZVxuKTtcblxuJGJyZWFrcG9pbnQ6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImJyZWFrcG9pbnQvc2V0dGluZ3NcIjtcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvY29udGV4dCc7XG5AaW1wb3J0ICdicmVha3BvaW50L2hlbHBlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9wYXJzZXJzJztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvbm8tcXVlcnknO1xuXG5AaW1wb3J0ICdicmVha3BvaW50L3Jlc3BvbmQtdG8nO1xuXG5AaW1wb3J0IFwiYnJlYWtwb2ludC9sZWdhY3ktc2V0dGluZ3NcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IE1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIGxlZ2FjeS1zZXR0aW5ncy13YXJuaW5nO1xuXG4gIC8vIFJlc2V0IGNvbnRleHRzXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xuXG4gICRicmVha3BvaW50OiBicmVha3BvaW50KCRxdWVyeSwgZmFsc2UpO1xuXG4gICRxdWVyeS1zdHJpbmc6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdxdWVyeScpO1xuICAkcXVlcnktZmFsbGJhY2s6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdmYWxsYmFjaycpO1xuXG4gICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdjb250ZXh0IGhvbGRlcicpICFnbG9iYWw7XG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdxdWVyeSBjb3VudCcpICFnbG9iYWw7XG5cbiAgLy8gQWxsb3cgZm9yIGFuIGFzLW5lZWRlZCBvdmVycmlkZSBvciB1c2FnZSBvZiBubyBxdWVyeSBmYWxsYmFjay5cbiAgQGlmICRuby1xdWVyeSAhPSBmYWxzZSB7XG4gICAgJHF1ZXJ5LWZhbGxiYWNrOiAkbm8tcXVlcnk7XG4gIH1cblxuICBAaWYgJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlIHtcbiAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgnbm8tcXVlcnknLCAkcXVlcnktZmFsbGJhY2spO1xuICB9XG5cbiAgLy8gUHJpbnQgT3V0IFF1ZXJ5IFN0cmluZ1xuICBAaWYgbm90IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykge1xuICAgIEBtZWRpYSAjeyRxdWVyeS1zdHJpbmd9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykgIT0gZmFsc2Ugb3IgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSA9PSB0cnVlIHtcblxuICAgICR0eXBlOiB0eXBlLW9mKGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSk7XG4gICAgJHByaW50OiBmYWxzZTtcblxuICAgIEBpZiAoJHR5cGUgPT0gJ2Jvb2wnKSB7XG4gICAgICAkcHJpbnQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSAnc3RyaW5nJykge1xuICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSAnbGlzdCcpIHtcbiAgICAgIEBlYWNoICR3cmFwcGVyIGluIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gJHdyYXBwZXIge1xuICAgICAgICAgICRwcmludDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdyaXRlIEZhbGxiYWNrXG4gICAgQGlmICgkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2UpIGFuZCAoJHByaW50ID09IHRydWUpIHtcbiAgICAgICR0eXBlLWZhbGxiYWNrOiB0eXBlLW9mKCRxdWVyeS1mYWxsYmFjayk7XG5cbiAgICAgIEBpZiAoJHR5cGUtZmFsbGJhY2sgIT0gJ2Jvb2wnKSB7XG4gICAgICAgICN7JHF1ZXJ5LWZhbGxiYWNrfSAmIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcbn1cblxuXG5AbWl4aW4gbXEoJHF1ZXJ5LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBIYXMgU2V0dGluZ1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1oYXMoJHNldHRpbmcpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50LCAkc2V0dGluZykge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEdldCBTZXR0aW5nc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1nZXQoJHNldHRpbmcpIHtcbiAgQGlmIGJyZWFrcG9pbnQtaGFzKCRzZXR0aW5nKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRicmVha3BvaW50LCAkc2V0dGluZyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkQnJlYWtwb2ludC1TZXR0aW5ncywgJHNldHRpbmcpO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gU2V0IFNldHRpbmdzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpZiAoc3RyLWluZGV4KCRzZXR0aW5nLCAnLScpIG9yIHN0ci1pbmRleCgkc2V0dGluZywgJ18nKSkgYW5kIHN0ci1pbmRleCgkc2V0dGluZywgJyAnKSA9PSBudWxsIHtcbiAgICBAd2FybiBcIldvcmRzIGluIEJyZWFrcG9pbnQgc2V0dGluZ3Mgc2hvdWxkIGJlIHNlcGFyYXRlZCBieSBzcGFjZXMsIG5vdCBkYXNoZXMgb3IgdW5kZXJzY29yZXMuIFBsZWFzZSByZXBsYWNlIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMgYmV0d2VlbiB3b3JkcyB3aXRoIHNwYWNlcy4gU2V0dGluZ3Mgd2lsbCBub3Qgd29yayBhcyBleHBlY3RlZCB1bnRpbCBjaGFuZ2VkLlwiO1xuICB9XG4gICRicmVha3BvaW50OiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnQsICgkc2V0dGluZzogJHZhbHVlKSkgIWdsb2JhbDtcbiAgQHJldHVybiB0cnVlO1xufVxuXG5AbWl4aW4gYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSkge1xuICAkYnJlYWtwb2ludC1jaGFuZ2U6IGJyZWFrcG9pbnQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuXG5AbWl4aW4gYnJlYWtwb2ludC1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuQG1peGluIGJrcHQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5AbWl4aW4gYmtwdC1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZW1vdmUgU2V0dGluZ1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MuLi4pIHtcbiAgQGlmIGxlbmd0aCgkc2V0dGluZ3MpID09IDEge1xuICAgICRzZXR0aW5nczogbnRoKCRzZXR0aW5ncywgMSk7XG4gIH1cblxuICBAZWFjaCAkc2V0dGluZyBpbiAkc2V0dGluZ3Mge1xuICAgICRicmVha3BvaW50OiBtYXAtcmVtb3ZlKCRicmVha3BvaW50LCAkc2V0dGluZykgIWdsb2JhbDtcbiAgfVxuICBAcmV0dXJuIHRydWU7XG59XG5cbkBtaXhpbiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncy4uLikge1xuICAkYnJlYWtwb2ludC1yZXNldDogYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MpO1xufVxuXG5AbWl4aW4gYmtwdC1yZXNldCgkc2V0dGluZ3MuLi4pIHtcbiAgJGJyZWFrcG9pbnQtcmVzZXQ6IGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzKTtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFByaXZhdGUgQnJlYWtwb2ludCBWYXJpYWJsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCk7XG4kcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgSGFzIENvbnRleHRcbi8vIFJldHVybnMgd2hldGhlciBvciBub3QgeW91IGFyZSBpbnNpZGUgYSBCcmVha3BvaW50IHF1ZXJ5XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWhhcy1jb250ZXh0KCkge1xuICBAaWYgbGVuZ3RoKCRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IEdldCBDb250ZXh0XG4vLyAkZmVhdHVyZTogSW5wdXQgZmVhdHVyZSB0byBnZXQgaXQncyBjdXJyZW50IE1RIGNvbnRleHQuIFJldHVybnMgZmFsc2UgaWYgbm8gY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1nZXQtY29udGV4dCgkZmVhdHVyZSkge1xuICBAaWYgbWFwLWhhcy1rZXkoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpIHtcbiAgICAkZ2V0OiBtYXAtZ2V0KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKTtcbiAgICAvLyBTcGVjaWFsIGhhbmRsaW5nIG9mIG5vLXF1ZXJ5IGZyb20gZ2V0IHNpZGUgc28gL2ZhbHNlLyBwcmVwZW5kcyBhcmVuJ3QgcmV0dXJuZWRcbiAgICBAaWYgJGZlYXR1cmUgPT0gJ25vLXF1ZXJ5JyB7XG4gICAgICBAaWYgdHlwZS1vZigkZ2V0KSA9PSAnbGlzdCcgYW5kIGxlbmd0aCgkZ2V0KSA+IDEgYW5kIG50aCgkZ2V0LCAxKSA9PSBmYWxzZSB7XG4gICAgICAgICRnZXQ6IG50aCgkZ2V0LCBsZW5ndGgoJGdldCkpO1xuICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICRnZXQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBicmVha3BvaW50LWhhcy1jb250ZXh0KCkgYW5kICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgQHJldHVybiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFByaXZhdGUgZnVuY3Rpb24gdG8gc2V0IGNvbnRleHRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJHZhbHVlKSB7XG4gIEBpZiAkdmFsdWUgPT0gJ21vbm9jaHJvbWUnIHtcbiAgICAkZmVhdHVyZTogJ21vbm9jaHJvbWUnO1xuICB9XG5cbiAgJGN1cnJlbnQ6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICBAaWYgJGN1cnJlbnQgYW5kIGxlbmd0aCgkY3VycmVudCkgPT0gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgQHdhcm4gXCJZb3UgaGF2ZSBhbHJlYWR5IHF1ZXJpZWQgYWdhaW5zdCBgI3skZmVhdHVyZX1gLiBVbmV4cGVjdGVkIHRoaW5ncyBtYXkgaGFwcGVuIGlmIHlvdSBxdWVyeSBhZ2FpbnN0IHRoZSBzYW1lIGZlYXR1cmUgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIHNhbWUgYGFuZGAgcXVlcnkuIEJyZWFrcG9pbnQgaXMgb3ZlcndyaXRpbmcgdGhlIGN1cnJlbnQgY29udGV4dCB3aXRoIGAjeyR2YWx1ZX1gXCI7XG4gIH1cblxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKSB7XG4gICAgJHYtaG9sZGVyOiAoKTtcbiAgICBAZm9yICRpIGZyb20gMSB0byAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWVkaWEnIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgJHZhbHVlKTtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmZWF0dXJlOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdi1ob2xkZXI6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICAgICRsZW5ndGg6IGxlbmd0aCgkdi1ob2xkZXIpO1xuICAgIEBmb3IgJGkgZnJvbSAkbGVuZ3RoIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQgLSAxIHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWVkaWEnIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgJHZhbHVlKTtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmZWF0dXJlOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFByaXZhdGUgZnVuY3Rpb24gdG8gcmVzZXQgY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzIHtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZ2xvYmFsO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29udmVydHMgdGhlIGlucHV0IHZhbHVlIHRvIEJhc2UgRU1zXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXRvLWJhc2UtZW0oJHZhbHVlKSB7XG4gICR2YWx1ZS11bml0OiB1bml0KCR2YWx1ZSk7XG5cbiAgLy8gV2lsbCBjb252ZXJ0IHJlbGF0aXZlIEVNcyBpbnRvIHJvb3QgRU1zLlxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykgYW5kIHR5cGUtb2YoYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykpID09ICdudW1iZXInIGFuZCAkdmFsdWUtdW5pdCA9PSAnZW0nIHtcbiAgICAkYmFzZS11bml0OiB1bml0KGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpKTtcblxuICAgIEBpZiAkYmFzZS11bml0ID09ICdweCcgb3IgJGJhc2UtdW5pdCA9PSAnJScgb3IgJGJhc2UtdW5pdCA9PSAnZW0nIG9yICRiYXNlLXVuaXQgPT0gJ3B0JyB7XG4gICAgICBAcmV0dXJuIGJhc2UtY29udmVyc2lvbigkdmFsdWUpIC8gYmFzZS1jb252ZXJzaW9uKGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpKSAqIDFlbTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJyN7YnJlYWtwb2ludC1nZXQoXFwnYmFzZSBmb250IHNpemVcXCcpfSBpcyBub3Qgc2V0IGluIHZhbGlkIHVuaXRzIGZvciBmb250IHNpemUhJztcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGJhc2UtY29udmVyc2lvbigkdmFsdWUpO1xuICB9XG59XG5cbkBmdW5jdGlvbiBiYXNlLWNvbnZlcnNpb24oJHZhbHVlKSB7XG4gICR1bml0OiB1bml0KCR2YWx1ZSk7XG5cbiAgQGlmICR1bml0ID09ICdweCcge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gMTZweCAqIDFlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSAnJScge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gMTAwJSAqIDFlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSAnZW0nIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSAncHQnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDEycHQgKiAxZW07XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuLy8gICAgQHdhcm4gJ0V2ZXJ5dGhpbmcgaXMgdGVycmlibGUhIFdoYXQgaGF2ZSB5b3UgZG9uZT8hJztcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBjYW4gaGF2ZSBhIG1pbi9tYXggcGFpclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1taW4tbWF4LWZlYXR1cmVzOiAnY29sb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbG9yLWluZGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS1hc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS1oZWlnaHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS13aWR0aCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtb25vY2hyb21lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXNvbHV0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aWR0aCc7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbi1tYXgoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGJyZWFrcG9pbnQtbWluLW1heC1mZWF0dXJlcyB7XG4gICAgQGlmICRmZWF0dXJlID09ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIGhhdmUgYSBzdHJpbmcgdmFsdWVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtc3RyaW5nLWZlYXR1cmVzOiAgJ29yaWVudGF0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY2FuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2xvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsdW1pbm9zaXR5JztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtc3RyaW5nLXZhbHVlKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LXN0cmluZy1mZWF0dXJlcyB7XG4gICAgQGlmIGJyZWFrcG9pbnQtbWluLW1heCgkaXRlbSkge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtaW4tI3skaXRlbX0nIG9yICRmZWF0dXJlID09ICdtYXgtI3skaXRlbX0nIHtcbiAgICAgICAgQHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGlzIGEgbWVkaWEgdHlwZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1tZWRpYS10eXBlczogICdhbGwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnYnJhaWxsZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdlbWJvc3NlZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdoYW5kaGVsZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdwcmludCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9qZWN0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NjcmVlbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdzcGVlY2gnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAndHR5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R2JztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaXMtbWVkaWEoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJG1lZGlhIGluICRicmVha3BvaW50LW1lZGlhLXR5cGVzIHtcbiAgICBAaWYgKCRmZWF0dXJlID09ICRtZWRpYSkgb3IgKCRmZWF0dXJlID09ICdub3QgI3skbWVkaWF9Jykgb3IgKCRmZWF0dXJlID09ICdvbmx5ICN7JG1lZGlhfScpIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBjYW4gc3RhbmQgYWxvbmVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZy1mZWF0dXJlczogJ2NvbG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2xvci1pbmRleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ3JpZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9ub2Nocm9tZSc7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZy1mZWF0dXJlcyB7XG4gICAgQGlmICRmZWF0dXJlID09ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaXMtcmVzb2x1dGlvbigkZmVhdHVyZSkge1xuICAkcmVzb2x1dGlvbnM6ICdkZXZpY2UtcGl4ZWwtcmF0aW8nLCAnZHByJztcblxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycpIHtcbiAgICAkcmVzb2x1dGlvbnM6IGFwcGVuZCgkcmVzb2x1dGlvbnMsICdyZXNvbHV0aW9uJyk7XG4gIH1cblxuICBAZWFjaCAkcmVzbyBpbiAkcmVzb2x1dGlvbnMge1xuICAgIEBpZiBpbmRleCgkZmVhdHVyZSwgJHJlc28pIG9yIGluZGV4KCRmZWF0dXJlLCAnbWluLSN7JHJlc299Jykgb3IgaW5kZXgoJGZlYXR1cmUsICdtYXgtI3skcmVzb30nKSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBhcnNlciBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInBhcnNlcnMvcXVlcnlcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3NpbmdsZVwiO1xuQGltcG9ydCBcInBhcnNlcnMvZG91YmxlXCI7XG5AaW1wb3J0IFwicGFyc2Vycy90cmlwbGVcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3Jlc29sdXRpb25cIjtcblxuJE1lbW8tRXhpc3RzOiBmdW5jdGlvbi1leGlzdHMobWVtby1nZXQpIGFuZCBmdW5jdGlvbi1leGlzdHMobWVtby1zZXQpO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgRnVuY3Rpb25cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkY29udGV4dHMuLi4pIHtcbiAgJHJ1bjogdHJ1ZTtcbiAgJHJldHVybjogKCk7XG5cbiAgLy8gR3JhYiB0aGUgTWVtbyBPdXRwdXQgaWYgTWVtb2l6YXRpb24gY2FuIGJlIGEgdGhpbmdcbiAgQGlmICRNZW1vLUV4aXN0cyB7XG4gICAgJHJldHVybjogbWVtby1nZXQoYnJlYWtwb2ludCwgYnJlYWtwb2ludCAkcXVlcnkgJGNvbnRleHRzKTtcblxuICAgIEBpZiAkcmV0dXJuICE9IG51bGwge1xuICAgICAgJHJ1bjogZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQGlmIG5vdCAkTWVtby1FeGlzdHMgb3IgJHJ1biB7XG4gICAgLy8gSW50ZXJuYWwgVmFyaWFibGVzXG4gICAgJHF1ZXJ5LXN0cmluZzogJyc7XG4gICAgJHF1ZXJ5LWZhbGxiYWNrOiBmYWxzZTtcbiAgICAkcmV0dXJuOiAoKTtcblxuICAgIC8vIFJlc2VydmUgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJGhvbGRlci1jb250ZXh0OiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyO1xuICAgICRob2xkZXItcXVlcnktY291bnQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ7XG5cbiAgICAvLyBSZXNldCBHbG9iYWwgUHJpdmF0ZSBCcmVha3BvaW50IENvbnRleHRcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWdsb2JhbDtcblxuXG4gICAgLy8gVGVzdCB0byBzZWUgaWYgaXQncyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0XG4gICAgJG9yLWxpc3Q6IGlmKGxpc3Qtc2VwYXJhdG9yKCRxdWVyeSkgPT0gJ2NvbW1hJywgdHJ1ZSwgZmFsc2UpO1xuXG5cbiAgICBAaWYgKCRvci1saXN0ID09IGZhbHNlIGFuZCBicmVha3BvaW50LWdldCgnbGVnYWN5IHN5bnRheCcpID09IGZhbHNlKSB7XG4gICAgICAkcXVlcnktc3RyaW5nOiBicmVha3BvaW50LXBhcnNlKCRxdWVyeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRsZW5ndGg6IGxlbmd0aCgkcXVlcnkpO1xuXG4gICAgICAkbGFzdDogbnRoKCRxdWVyeSwgJGxlbmd0aCk7XG4gICAgICAkcXVlcnktZmFsbGJhY2s6IGJyZWFrcG9pbnQtbm8tcXVlcnkoJGxhc3QpO1xuXG4gICAgICBAaWYgKCRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSkge1xuICAgICAgICAkbGVuZ3RoOiAkbGVuZ3RoIC0gMTtcbiAgICAgIH1cblxuICAgICAgQGlmIChicmVha3BvaW50LWdldCgnbGVnYWN5IHN5bnRheCcpID09IHRydWUpIHtcbiAgICAgICAgJG1xOiAoKTtcblxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICRtcTogYXBwZW5kKCRtcSwgbnRoKCRxdWVyeSwgJGkpLCBjb21tYSk7XG4gICAgICAgIH1cblxuICAgICAgICAkcXVlcnktc3RyaW5nOiBicmVha3BvaW50LXBhcnNlKCRtcSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRxdWVyeS1zdHJpbmc6ICcnO1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICRxdWVyeS1zdHJpbmc6ICRxdWVyeS1zdHJpbmcgKyBpZigkaSA9PSAxLCAnJywgJywgJykgKyBicmVha3BvaW50LXBhcnNlKG50aCgkcXVlcnksICRpKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAkcmV0dXJuOiAoJ3F1ZXJ5JzogJHF1ZXJ5LXN0cmluZyxcbiAgICAgICAgJ2ZhbGxiYWNrJzogJHF1ZXJ5LWZhbGxiYWNrLFxuICAgICAgICAnY29udGV4dCBob2xkZXInOiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLFxuICAgICAgICAncXVlcnkgY291bnQnOiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50XG4gICAgKTtcbiAgICBAaWYgbGVuZ3RoKCRjb250ZXh0cykgPiAwIGFuZCBudGgoJGNvbnRleHRzLCAxKSAhPSBmYWxzZSB7XG4gICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlIHtcbiAgICAgICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgICAgIH1cbiAgICAgICRjb250ZXh0LW1hcDogKCk7XG4gICAgICBAZWFjaCAkY29udGV4dCBpbiAkY29udGV4dHMge1xuICAgICAgICAkY29udGV4dC1tYXA6IG1hcC1tZXJnZSgkY29udGV4dC1tYXAsICgkY29udGV4dDogYnJlYWtwb2ludC1nZXQtY29udGV4dCgkY29udGV4dCkpKTtcbiAgICAgIH1cbiAgICAgICRyZXR1cm46IG1hcC1tZXJnZSgkcmV0dXJuLCAoY29udGV4dDogJGNvbnRleHQtbWFwKSk7XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG5cbiAgICBAaWYgJE1lbW8tRXhpc3RzIHtcbiAgICAgICRob2xkZXI6IG1lbW8tc2V0KGJyZWFrcG9pbnQsIGJyZWFrcG9pbnQgJHF1ZXJ5ICRjb250ZXh0cywgJHJldHVybik7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEdlbmVyYWwgQnJlYWtwb2ludCBQYXJzZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UoJHF1ZXJ5KSB7XG4gIC8vIEluY3JlYXNlIG51bWJlciBvZiAnYW5kJyBxdWVyaWVzXG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQgKyAxICFnbG9iYWw7XG5cbiAgLy8gU2V0IHVwIE1lZGlhIFR5cGVcbiAgJHF1ZXJ5LXByaW50OiAnJztcblxuICAkZm9yY2UtYWxsOiAoKGJyZWFrcG9pbnQtZ2V0KCdmb3JjZSBhbGwgbWVkaWEgdHlwZScpID09IHRydWUpIGFuZCAoYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSA9PSAnYWxsJykpO1xuICAkZW1wdHktbWVkaWE6IHRydWU7XG4gIEBpZiAoJGZvcmNlLWFsbCA9PSB0cnVlKSBvciAoYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSAhPSAnYWxsJykge1xuICAgIC8vIEZvcmNlIHRoZSBwcmludCBvZiB0aGUgZGVmYXVsdCBtZWRpYSB0eXBlIGlmIChmb3JjZSBhbGwgaXMgdHJ1ZSBhbmQgZGVmYXVsdCBtZWRpYSB0eXBlIGlzIGFsbCkgb3IgKGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBub3QgYWxsKVxuICAgICRxdWVyeS1wcmludDogYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKTtcbiAgICAkZW1wdHktbWVkaWE6IGZhbHNlO1xuICB9XG5cblxuICAkcXVlcnktcmVzb2x1dGlvbjogZmFsc2U7XG5cbiAgJHF1ZXJ5LWhvbGRlcjogYnJlYWtwb2ludC1wYXJzZS1xdWVyeSgkcXVlcnkpO1xuXG5cblxuICAvLyBMb29wIG92ZXIgZWFjaCBwYXJzZWQgb3V0IHF1ZXJ5IGFuZCB3cml0ZSBpdCB0byAkcXVlcnktcHJpbnRcbiAgJGZpcnN0OiB0cnVlO1xuXG4gIEBlYWNoICRmZWF0dXJlIGluICRxdWVyeS1ob2xkZXIge1xuICAgICRsZW5ndGg6IGxlbmd0aCgkZmVhdHVyZSk7XG5cbiAgICAvLyBQYXJzZSBhIHNpbmdsZSBmZWF0dXJlXG4gICAgQGlmICgkbGVuZ3RoID09IDEpIHtcbiAgICAgIC8vIEZlYXR1cmUgaXMgY3VycmVudGx5IGEgbGlzdCwgZ3JhYiB0aGUgYWN0dWFsIHZhbHVlXG4gICAgICAkZmVhdHVyZTogbnRoKCRmZWF0dXJlLCAxKTtcblxuICAgICAgLy8gTWVkaWEgVHlwZSBtdXN0IGJ5IGNvbnZlbnRpb24gYmUgdGhlIGZpcnN0IGl0ZW0sIHNvIGl0J3Mgc2FmZSB0byBmbGF0IG92ZXJyaWRlICRxdWVyeS1wcmludCwgd2hpY2ggcmlnaHQgbm93IHNob3VsZCBvbmx5IGJlIHRoZSBkZWZhdWx0IG1lZGlhIHR5cGVcbiAgICAgIEBpZiAoYnJlYWtwb2ludC1pcy1tZWRpYSgkZmVhdHVyZSkpIHtcbiAgICAgICAgQGlmICgkZm9yY2UtYWxsID09IHRydWUpIG9yICgkZmVhdHVyZSAhPSAnYWxsJykge1xuICAgICAgICAgIC8vIEZvcmNlIHRoZSBwcmludCBvZiB0aGUgZGVmYXVsdCBtZWRpYSB0eXBlIGlmIChmb3JjZSBhbGwgaXMgdHJ1ZSBhbmQgZGVmYXVsdCBtZWRpYSB0eXBlIGlzIGFsbCkgb3IgKGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBub3QgYWxsKVxuICAgICAgICAgICRxdWVyeS1wcmludDogJGZlYXR1cmU7XG4gICAgICAgICAgJGVtcHR5LW1lZGlhOiBmYWxzZTtcblxuICAgICAgICAgIC8vIFNldCBDb250ZXh0XG4gICAgICAgICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWVkaWEsICRxdWVyeS1wcmludCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBQYXJzZSBhIGRvdWJsZSBmZWF0dXJlXG4gICAgQGVsc2UgaWYgKCRsZW5ndGggPT0gMikge1xuICAgICAgQGlmIChicmVha3BvaW50LWlzLXJlc29sdXRpb24oJGZlYXR1cmUpICE9IGZhbHNlKSB7XG4gICAgICAgICRxdWVyeS1yZXNvbHV0aW9uOiAkZmVhdHVyZTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHBhcnNlZDogbnVsbDtcbiAgICAgICAgLy8gSWYgaXQncyBhIHN0cmluZy9udW1iZXIgcGFpcixcbiAgICAgICAgLy8gd2UgY2hlY2sgdG8gc2VlIGlmIG9uZSBpcyBhIHNpbmdsZS1zdHJpbmcgdmFsdWUsXG4gICAgICAgIC8vIHRoZW4gd2UgcGFyc2UgaXQgYXMgYSBub3JtYWwgZG91YmxlXG4gICAgICAgICRhbHBoYTogbnRoKCRmZWF0dXJlLCAxKTtcbiAgICAgICAgJGJldGE6IG50aCgkZmVhdHVyZSwgMik7XG4gICAgICAgIEBpZiBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGFscGhhKSBvciBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGJldGEpIHtcbiAgICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkYWxwaGEsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkYmV0YSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kb3VibGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBQYXJzZSBhIHRyaXBsZSBmZWF0dXJlXG4gICAgQGVsc2UgaWYgKCRsZW5ndGggPT0gMykge1xuICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS10cmlwbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgfVxuXG4gIH1cblxuICBAaWYgKCRxdWVyeS1yZXNvbHV0aW9uICE9IGZhbHNlKSB7XG4gICAgJHF1ZXJ5LXByaW50OiBicmVha3BvaW50LWJ1aWxkLXJlc29sdXRpb24oJHF1ZXJ5LXByaW50LCAkcXVlcnktcmVzb2x1dGlvbiwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICB9XG5cbiAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZmVhdHVyZSB0aGF0J3MgYmVlbiBkZXRlY3RlZCBzbyBmYXIgYW5kIGFwcGVuZCAnZmFsc2UnIHRvIHRoZSB0aGUgdmFsdWUgbGlzdCB0byBpbmNyZW1lbnQgdGhlaXIgY291bnRlcnNcbiAgQGVhY2ggJGYsICR2IGluICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIge1xuICAgICR2LWhvbGRlcjogJHY7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCR2LWhvbGRlcik7XG4gICAgQGlmIGxlbmd0aCgkdi1ob2xkZXIpIDwgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgICBAZm9yICRpIGZyb20gJGxlbmd0aCB0byAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICAgICAgQGlmICRmID09ICdtZWRpYScge1xuICAgICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSk7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGY6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuICRxdWVyeS1wcmludDtcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXF1ZXJ5KCRxdWVyeSkge1xuICAvLyBQYXJzZSBmZWF0dXJlcyBvdXQgb2YgYW4gaW5kaXZpZHVhbCBxdWVyeVxuICAkZmVhdHVyZS1ob2xkZXI6ICgpO1xuICAkcXVlcnktaG9sZGVyOiAoKTtcbiAgJGxlbmd0aDogbGVuZ3RoKCRxdWVyeSk7XG5cbiAgQGlmICRsZW5ndGggPT0gMiB7XG4gICAgLy8gSWYgd2UndmUgZ290IGEgc3RyaW5nL251bWJlciwgbnVtYmVyL3N0cmluZywgY2hlY2sgdG8gc2VlIGlmIGl0J3MgYSB2YWxpZCBzdHJpbmcvbnVtYmVyIHBhaXIgb3IgdHdvIHNpbmdsZXNcbiAgICBAaWYgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnbnVtYmVyJykgb3IgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdudW1iZXInIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnc3RyaW5nJykge1xuXG4gICAgICAkbnVtYmVyOiAnJztcbiAgICAgICR2YWx1ZTogJyc7XG5cbiAgICAgIEBpZiB0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyB7XG4gICAgICAgICRudW1iZXI6IG50aCgkcXVlcnksIDIpO1xuICAgICAgICAkdmFsdWU6IG50aCgkcXVlcnksIDEpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkbnVtYmVyOiBudGgoJHF1ZXJ5LCAxKTtcbiAgICAgICAgJHZhbHVlOiBudGgoJHF1ZXJ5LCAyKTtcbiAgICAgIH1cblxuICAgICAgLy8gSWYgdGhlIHN0cmluZyB2YWx1ZSBjYW4gYmUgYSBzaW5nbGUgdmFsdWUsIGNoZWNrIHRvIHNlZSBpZiB0aGUgbnVtYmVyIHBhc3NlZCBpbiBpcyBhIHZhbGlkIGlucHV0IGZvciBzYWlkIHNpbmdsZSB2YWx1ZS4gRm9ydHVuYXRlbHksIGFsbCBjdXJyZW50IHNpbmdsZS12YWx1ZSBvcHRpb25zIG9ubHkgYWNjZXB0IHVuaXRsZXNzIG51bWJlcnMsIHNvIHRoaXMgY2hlY2sgaXMgZWFzeS5cbiAgICAgIEBpZiBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJHZhbHVlKSB7XG4gICAgICAgIEBpZiB1bml0bGVzcygkbnVtYmVyKSB7XG4gICAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQoJHZhbHVlLCAkbnVtYmVyLCBzcGFjZSk7XG4gICAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gSWYgdGhlIHN0cmluZyBpcyBhIG1lZGlhIHR5cGUsIHNwbGl0IHRoZSBxdWVyeVxuICAgICAgQGlmIGJyZWFrcG9pbnQtaXMtbWVkaWEoJHZhbHVlKSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAxKSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAyKSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICAgIC8vIElmIGl0J3Mgbm90IGEgc2luZ2xlIGZlYXR1cmUsIHdlJ3JlIGp1c3QgZ29pbmcgdG8gYXNzdW1lIGl0J3MgYSBwcm9wZXIgc3RyaW5nL3ZhbHVlIHBhaXIsIGFuZCByb2xsIHdpdGggaXQuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCR2YWx1ZSwgJG51bWJlciwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cblxuICAgIH1cbiAgICAvLyBJZiB0aGV5J3JlIGJvdGggbnVtYmVycywgd2UgYXNzdW1lIGl0J3MgYSBkb3VibGUgYW5kIHJvbGwgd2l0aCB0aGF0XG4gICAgQGVsc2UgaWYgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdudW1iZXInIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnbnVtYmVyJykge1xuICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMSksIG50aCgkcXVlcnksIDIpLCBzcGFjZSk7XG4gICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgfVxuICAgIC8vIElmIHRoZXkncmUgYm90aCBzdHJpbmdzIGFuZCBuZWl0aGVyIGFyZSBzaW5nbGVzLCB3ZSByb2xsIHdpdGggdGhhdC5cbiAgICBAZWxzZSBpZiAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdzdHJpbmcnKSB7XG4gICAgICBAaWYgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAxKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMikpIHtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMSksIG50aCgkcXVlcnksIDIpLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDMge1xuICAgIC8vIElmIHdlJ3ZlIGdvdCB0aHJlZSBpdGVtcyBhbmQgbm9uZSBpcyBhIGxpc3QsIHdlIGNoZWNrIHRvIHNlZVxuICAgIEBpZiB0eXBlLW9mKG50aCgkcXVlcnksIDEpKSAhPSAnbGlzdCcgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpICE9ICdsaXN0JyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAzKSkgIT0gJ2xpc3QnIHtcbiAgICAgIC8vIElmIG5vbmUgb2YgdGhlIGl0ZW1zIGFyZSBzaW5nbGUgc3RyaW5nIHZhbHVlcyBhbmQgbm9uZSBvZiB0aGUgdmFsdWVzIGFyZSBtZWRpYSB2YWx1ZXMsIHdlJ3JlIGdvb2QuXG4gICAgICBAaWYgKG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDIpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAzKSkpIGFuZCAgKChub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAxKSkgYW5kIG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDIpKSBhbmQgbm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMykpKSkge1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAxKSwgbnRoKCRxdWVyeSwgMiksIHNwYWNlKTtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQoJGZlYXR1cmUtaG9sZGVyLCBudGgoJHF1ZXJ5LCAzKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICAgIC8vIGxldCdzIGNoZWNrIHRvIHNlZSBpZiB0aGUgZmlyc3QgaXRlbSBpcyBhIG1lZGlhIHR5cGVcbiAgICAgIEBlbHNlIGlmIGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMSkpIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsIG50aCgkcXVlcnksIDEpKTtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMiksIG50aCgkcXVlcnksIDMpLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgaXQncyBhIHNpbmdsZSBpdGVtLCBvciBpZiBpdCdzIG5vdCBhIHNwZWNpYWwgY2FzZSBkb3VibGUgb3IgdHJpcGxlLCB3ZSBjYW4gc2ltcGx5IHJldHVybiB0aGUgcXVlcnkuXG4gIEByZXR1cm4gJHF1ZXJ5O1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJzaW5nbGUvZGVmYXVsdFwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRwYXJzZWQ6ICcnO1xuICAkbGVhZGVyOiAnJztcbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgLy8gSWYgaXQncyBhIHNpbmdsZSBmZWF0dXJlIHRoYXQgY2FuIHN0YW5kIGFsb25lLCB3ZSBsZXQgaXRcbiAgQGlmIChicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGZlYXR1cmUpKSB7XG4gICAgJHBhcnNlZDogJGZlYXR1cmU7XG4gICAgLy8gU2V0IENvbnRleHRcbiAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJGZlYXR1cmUpO1xuICB9XG4gIC8vIElmIGl0J3Mgbm90IGEgc3RhbmQgYWxvbmUgZmVhdHVyZSwgd2UgcGFzcyBpdCBvZmYgdG8gdGhlIGRlZmF1bHQgaGFuZGxlci5cbiAgQGVsc2Uge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdCgkZmVhdHVyZSk7XG4gIH1cblxuICBAcmV0dXJuICRsZWFkZXIgKyAnKCcgKyAkcGFyc2VkICsgJyknO1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdCgkZmVhdHVyZSkge1xuICAkZGVmYXVsdDogYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgZmVhdHVyZScpO1xuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRkZWZhdWx0LCAkZmVhdHVyZSk7XG5cbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkgYW5kICh0eXBlLW9mKCRmZWF0dXJlKSA9PSAnbnVtYmVyJykge1xuICAgIEByZXR1cm4gJyN7JGRlZmF1bHR9OiAje2JyZWFrcG9pbnQtdG8tYmFzZS1lbSgkZmVhdHVyZSl9JztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAnI3skZGVmYXVsdH06ICN7JGZlYXR1cmV9JztcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJkb3VibGUvZGVmYXVsdC1wYWlyXCI7XG5AaW1wb3J0IFwiZG91YmxlL2RvdWJsZS1zdHJpbmdcIjtcbkBpbXBvcnQgXCJkb3VibGUvZGVmYXVsdFwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kb3VibGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRwYXJzZWQ6ICcnO1xuICAkbGVhZGVyOiAnJztcbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgJGZpcnN0OiBudGgoJGZlYXR1cmUsIDEpO1xuICAkc2Vjb25kOiBudGgoJGZlYXR1cmUsIDIpO1xuXG4gIC8vIElmIHdlJ3ZlIGdvdCB0d28gbnVtYmVycywgd2Uga25vdyB3ZSBuZWVkIHRvIHVzZSB0aGUgZGVmYXVsdCBwYWlyIGJlY2F1c2UgdGhlcmUgYXJlIG5vIG1lZGlhIHF1ZXJpZXMgdGhhdCBoYXMgYSBtZWRpYSBmZWF0dXJlIHRoYXQgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZigkc2Vjb25kKSA9PSAnbnVtYmVyJyB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0LXBhaXIoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuICAvLyBJZiB0aGV5IGFyZSBib3RoIHN0cmluZ3MsIHdlIHNlbmQgaXQgdGhyb3VnaCB0aGUgc3RyaW5nIHBhcnNlclxuICBAZWxzZSBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ3N0cmluZycgYW5kIHR5cGUtb2YoJHNlY29uZCkgPT0gJ3N0cmluZycge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLXN0cmluZygkZmlyc3QsICRzZWNvbmQpO1xuICB9XG4gIC8vIElmIGl0J3MgYSBzdHJpbmcvbnVtYmVyIHBhaXIsIHdlIHBhcnNlIGl0IGFzIGEgbm9ybWFsIGRvdWJsZVxuICBAZWxzZSB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtZGVmYXVsdCgkZmlyc3QsICRzZWNvbmQpO1xuICB9XG5cbiAgQHJldHVybiAkbGVhZGVyICsgJHBhcnNlZDtcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQtcGFpcigkZmlyc3QsICRzZWNvbmQpIHtcbiAgJGRlZmF1bHQ6IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IHBhaXInKTtcbiAgJG1pbjogJyc7XG4gICRtYXg6ICcnO1xuXG4gIC8vIFNvcnQgaW50byBtaW4gYW5kIG1heFxuICAkbWluOiBtaW4oJGZpcnN0LCAkc2Vjb25kKTtcbiAgJG1heDogbWF4KCRmaXJzdCwgJHNlY29uZCk7XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWluLSN7JGRlZmF1bHR9LCAkbWluKTtcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWF4LSN7JGRlZmF1bHR9LCAkbWF4KTtcblxuICAvLyBNYWtlIHRoZW0gRU1zIGlmIG5lZWQgYmVcbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkge1xuICAgICRtaW46IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWluKTtcbiAgICAkbWF4OiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1heCk7XG4gIH1cblxuICBAcmV0dXJuICcobWluLSN7JGRlZmF1bHR9OiAjeyRtaW59KSBhbmQgKG1heC0jeyRkZWZhdWx0fTogI3skbWF4fSknO1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLXN0cmluZygkZmlyc3QsICRzZWNvbmQpIHtcbiAgJGZlYXR1cmU6ICcnO1xuICAkdmFsdWU6ICcnO1xuXG4gIC8vIFRlc3QgdG8gc2VlIHdoaWNoIGlzIHRoZSBmZWF0dXJlIGFuZCB3aGljaCBpcyB0aGUgdmFsdWVcbiAgQGlmIChicmVha3BvaW50LXN0cmluZy12YWx1ZSgkZmlyc3QpID09IHRydWUpIHtcbiAgICAkZmVhdHVyZTogJGZpcnN0O1xuICAgICR2YWx1ZTogJHNlY29uZDtcbiAgfVxuICBAZWxzZSBpZiAoYnJlYWtwb2ludC1zdHJpbmctdmFsdWUoJHNlY29uZCkgPT0gdHJ1ZSkge1xuICAgICRmZWF0dXJlOiAkc2Vjb25kO1xuICAgICR2YWx1ZTogJGZpcnN0O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiBcIk5laXRoZXIgI3skZmlyc3R9IG5vciAjeyRzZWNvbmR9IGlzIGEgdmFsaWQgbWVkaWEgcXVlcnkgbmFtZS5cIjtcbiAgfVxuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpO1xuXG4gIEByZXR1cm4gJygjeyRmZWF0dXJlfTogI3skdmFsdWV9KSc7XG59IiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLWRlZmF1bHQoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRmZWF0dXJlOiAnJztcbiAgJHZhbHVlOiAnJztcblxuICBAaWYgdHlwZS1vZigkZmlyc3QpID09ICdzdHJpbmcnIHtcbiAgICAkZmVhdHVyZTogJGZpcnN0O1xuICAgICR2YWx1ZTogJHNlY29uZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgJGZlYXR1cmU6ICRzZWNvbmQ7XG4gICAgJHZhbHVlOiAkZmlyc3Q7XG4gIH1cblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJHZhbHVlKTtcblxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSB7XG4gICAgJHZhbHVlOiBicmVha3BvaW50LXRvLWJhc2UtZW0oJHZhbHVlKTtcbiAgfVxuXG4gIEByZXR1cm4gJygjeyRmZWF0dXJlfTogI3skdmFsdWV9KSdcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwidHJpcGxlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG5cbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgLy8gc2VwYXJhdGUgdGhlIHN0cmluZyBmZWF0dXJlcyBmcm9tIHRoZSB2YWx1ZSBudW1iZXJzXG4gICRzdHJpbmc6IG51bGw7XG4gICRudW1iZXJzOiBudWxsO1xuICBAZWFjaCAkdmFsIGluICRmZWF0dXJlIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsKSA9PSBzdHJpbmcge1xuICAgICAgJHN0cmluZzogJHZhbDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGlmIHR5cGUtb2YoJG51bWJlcnMpID09ICdudWxsJyB7XG4gICAgICAgICRudW1iZXJzOiAkdmFsO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkbnVtYmVyczogYXBwZW5kKCRudW1iZXJzLCAkdmFsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXRyaXBsZS1kZWZhdWx0KCRzdHJpbmcsIG50aCgkbnVtYmVycywgMSksIG50aCgkbnVtYmVycywgMikpO1xuXG4gIEByZXR1cm4gJGxlYWRlciArICRwYXJzZWQ7XG5cbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXRyaXBsZS1kZWZhdWx0KCRmZWF0dXJlLCAkZmlyc3QsICRzZWNvbmQpIHtcblxuICAvLyBTb3J0IGludG8gbWluIGFuZCBtYXhcbiAgJG1pbjogbWluKCRmaXJzdCwgJHNlY29uZCk7XG4gICRtYXg6IG1heCgkZmlyc3QsICRzZWNvbmQpO1xuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1pbi0jeyRmZWF0dXJlfSwgJG1pbik7XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1heC0jeyRmZWF0dXJlfSwgJG1heCk7XG5cbiAgLy8gTWFrZSB0aGVtIEVNcyBpZiBuZWVkIGJlXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIHtcbiAgICAkbWluOiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1pbik7XG4gICAgJG1heDogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtYXgpO1xuICB9XG5cbiAgQHJldHVybiAnKG1pbi0jeyRmZWF0dXJlfTogI3skbWlufSkgYW5kIChtYXgtI3skZmVhdHVyZX06ICN7JG1heH0pJztcbn1cbiIsIkBpbXBvcnQgXCJyZXNvbHV0aW9uL3Jlc29sdXRpb25cIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtYnVpbGQtcmVzb2x1dGlvbigkcXVlcnktcHJpbnQsICRxdWVyeS1yZXNvbHV0aW9uLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkbGVhZGVyOiAnJztcbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnKSBhbmQgJHF1ZXJ5LXJlc29sdXRpb24ge1xuICAgICRyZXNvbHV0aW9uczogYnJlYWtwb2ludC1tYWtlLXJlc29sdXRpb25zKCRxdWVyeS1yZXNvbHV0aW9uKTtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHJlc29sdXRpb25zKTtcbiAgICAkcXVlcnktaG9sZGVyOiAnJztcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAkcXVlcnk6ICcjeyRxdWVyeS1wcmludH0gI3skbGVhZGVyfSN7bnRoKCRyZXNvbHV0aW9ucywgJGkpfSc7XG4gICAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6ICRxdWVyeTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogJyN7JHF1ZXJ5LWhvbGRlcn0sICN7JHF1ZXJ5fSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBSZXR1cm4gd2l0aCBhdHRhY2hlZCByZXNvbHV0aW9uXG4gICAgQHJldHVybiAkcXVlcnktcHJpbnQ7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LW1ha2UtcmVzb2x1dGlvbnMoJHJlc29sdXRpb24pIHtcbiAgJGxlbmd0aDogbGVuZ3RoKCRyZXNvbHV0aW9uKTtcblxuICAkb3V0cHV0OiAoKTtcblxuICBAaWYgJGxlbmd0aCA9PSAyIHtcbiAgICAkZmVhdHVyZTogJyc7XG4gICAgJHZhbHVlOiAnJztcblxuICAgIC8vIEZpbmQgd2hpY2ggaXMgbnVtYmVyXG4gICAgQGlmIHR5cGUtb2YobnRoKCRyZXNvbHV0aW9uLCAxKSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiBudGgoJHJlc29sdXRpb24sIDEpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkdmFsdWU6IG50aCgkcmVzb2x1dGlvbiwgMik7XG4gICAgfVxuXG4gICAgLy8gRGV0ZXJtaW5lIG1pbi9tYXgvc3RhbmRhcmRcbiAgICBAaWYgaW5kZXgoJHJlc29sdXRpb24sICdtaW4tcmVzb2x1dGlvbicpIHtcbiAgICAgICRmZWF0dXJlOiAnbWluLSc7XG4gICAgfVxuICAgIEBlbHNlIGlmIGluZGV4KCRyZXNvbHV0aW9uLCAnbWF4LXJlc29sdXRpb24nKSB7XG4gICAgICAkZmVhdHVyZTogJ21heC0nO1xuICAgIH1cblxuICAgICRzdGFuZGFyZDogJygjeyRmZWF0dXJlfXJlc29sdXRpb246ICN7JHZhbHVlfSknO1xuXG4gICAgLy8gSWYgd2UncmUgbm90IGRlYWxpbmcgd2l0aCBkcHB4LFxuICAgIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ2RwcHgnIHtcbiAgICAgICRiYXNlOiA5NmRwaTtcbiAgICAgIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2RwY20nIHtcbiAgICAgICAgJGJhc2U6IDI0My44NGRwY207XG4gICAgICB9XG4gICAgICAvLyBXcml0ZSBvdXQgZmVhdHVyZSB0ZXN0c1xuICAgICAgJHdlYmtpdDogJyc7XG4gICAgICAkbW96OiAnJztcbiAgICAgICR3ZWJraXQ6ICcoLXdlYmtpdC0jeyRmZWF0dXJlfWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAkYmFzZX0pJztcbiAgICAgICRtb3o6ICcoI3skZmVhdHVyZX0tbW96LWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAkYmFzZX0pJztcbiAgICAgIC8vIEFwcGVuZCB0byBvdXRwdXRcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkc3RhbmRhcmQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkd2Via2l0LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJG1veiwgc3BhY2UpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0OiAnJztcbiAgICAgICRtb3o6ICcnO1xuICAgICAgJHdlYmtpdDogJygtd2Via2l0LSN7JGZlYXR1cmV9ZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvIDFkcHB4fSknO1xuICAgICAgJG1vejogJygjeyRmZWF0dXJlfS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvIDFkcHB4fSknO1xuICAgICAgJGZhbGxiYWNrOiAnKCN7JGZlYXR1cmV9cmVzb2x1dGlvbjogI3skdmFsdWUgLyAxZHBweCAqIDk2ZHBpfSknO1xuICAgICAgLy8gQXBwZW5kIHRvIG91dHB1dFxuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRzdGFuZGFyZCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICR3ZWJraXQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkbW96LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJGZhbGxiYWNrLCBzcGFjZSk7XG4gICAgfVxuXG4gIH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1uby1xdWVyeSgkcXVlcnkpIHtcbiAgQGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSAnbGlzdCcge1xuICAgICRrZXl3b3JkOiBudGgoJHF1ZXJ5LCAxKTtcblxuICAgIEBpZiB0eXBlLW9mKCRrZXl3b3JkKSA9PSAnc3RyaW5nJyBhbmQgKCRrZXl3b3JkID09ICduby1xdWVyeScgb3IgJGtleXdvcmQgPT0gJ25vIHF1ZXJ5JyBvciAka2V5d29yZCA9PSAnZmFsbGJhY2snKSB7XG4gICAgICBAcmV0dXJuIG50aCgkcXVlcnksIDIpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IHRoZSBCcmVha3BvaW50cyB2YXJpYWJsZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xuJEJSRUFLUE9JTlRTOiAoKSAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXNwb25kLXRvIEFQSSBNaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gcmVzcG9uZC10bygkY29udGV4dCwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaWYgbGVuZ3RoKCRicmVha3BvaW50cykgPiAwIGFuZCBsZW5ndGgoJEJSRUFLUE9JTlRTKSA9PSAwIHtcbiAgICBAd2FybiBcIkluIG9yZGVyIHRvIGF2b2lkIHZhcmlhYmxlIG5hbWVzcGFjZSBjb2xsaXNpb25zLCB3ZSBoYXZlIHVwZGF0ZWQgdGhlIHdheSB0byBhZGQgYnJlYWtwb2ludHMgZm9yIHJlc3BvbmQtdG8uIFBsZWFzZSBjaGFuZ2UgYWxsIGluc3RhbmNlcyBvZiBgJGJyZWFrcG9pbnRzOiBhZGQtYnJlYWtwb2ludCgpYCB0byBgQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoKWAuIFRoZSBgYWRkLWJyZWFrcG9pbnQoKWAgZnVuY3Rpb24gd2lsbCBiZSBkZXByZWNhdGVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXCI7XG4gICAgJEJSRUFLUE9JTlRTOiAkYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgICAkYnJlYWtwb2ludHM6ICgpICFnbG9iYWw7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkQlJFQUtQT0lOVFMpICE9ICdtYXAnIHtcbiAgICAvLyBKdXN0IGluIGNhc2Ugc29tZW9uZSB3cml0ZXMgZ2liYmVyaXNoIHRvIHRoZSAkYnJlYWtwb2ludHMgdmFyaWFibGUuXG4gICAgQHdhcm4gXCJZb3VyIGJyZWFrcG9pbnRzIGFyZW4ndCBhIG1hcCEgYHJlc3BvbmQtdG9gIGV4cGVjdHMgYSBtYXAuIFBsZWFzZSBjaGVjayB0aGUgdmFsdWUgb2YgJEJSRUFLUE9JTlRTIHZhcmlhYmxlLlwiO1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJGNvbnRleHQpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1hcC1nZXQoJEJSRUFLUE9JTlRTLCAkY29udGV4dCksICRuby1xdWVyeSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRjb250ZXh0KSB7XG4gICAgQHdhcm4gXCJgI3skY29udGV4dH1gIGlzbid0IGEgZGVmaW5lZCBicmVha3BvaW50ISBQbGVhc2UgYWRkIGl0IHVzaW5nIGAkYnJlYWtwb2ludHM6IGFkZC1icmVha3BvaW50KGAjeyRjb250ZXh0fWAsICR2YWx1ZSk7YFwiO1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiBcIllvdSBoYXZlbid0IGNyZWF0ZWQgYW55IGJyZWFrcG9pbnRzIHlldCEgTWFrZSBzb21lIGFscmVhZHkhIGBAaW5jbHVkZSBhZGQtYnJlYWtwb2ludCgkbmFtZSwgJGJrcHQpYFwiO1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQWRkIEJyZWFrcG9pbnQgdG8gQnJlYWtwb2ludHNcbi8vIFRPRE86IFJlbW92ZSBmdW5jdGlvbiBpbiBuZXh0IHJlbGVhc2Vcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGFkZC1icmVha3BvaW50KCRuYW1lLCAkYmtwdCwgJG92ZXJ3cml0ZTogZmFsc2UpIHtcbiAgJG91dHB1dDogKCRuYW1lOiAkYmtwdCk7XG5cbiAgQGlmIGxlbmd0aCgkYnJlYWtwb2ludHMpID09IDAge1xuICAgIEByZXR1cm4gJG91dHB1dDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJG5hbWUpIGFuZCAkb3ZlcndyaXRlICE9IHRydWUge1xuICAgICAgQHdhcm4gXCJZb3UgYWxyZWFkeSBoYXZlIGEgYnJlYWtwb2ludCBuYW1lZCBgI3skbmFtZX1gLCBwbGVhc2UgY2hvb3NlIGFub3RoZXIgYnJlYWtwb2ludCBuYW1lLCBvciBwYXNzIGluIGAkb3ZlcndyaXRlOiB0cnVlYCB0byBvdmVyd3JpdGUgdGhlIHByZXZpb3VzIGJyZWFrcG9pbnQuXCI7XG4gICAgICBAcmV0dXJuICRicmVha3BvaW50cztcbiAgICB9XG4gICAgQGVsc2UgaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJG5hbWUpIG9yICRvdmVyd3JpdGUgPT0gdHJ1ZSB7XG4gICAgICBAcmV0dXJuIG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICRvdXRwdXQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYWRkLWJyZWFrcG9pbnQoJG5hbWUsICRia3B0LCAkb3ZlcndyaXRlOiBmYWxzZSkge1xuICAkb3V0cHV0OiAoJG5hbWU6ICRia3B0KTtcblxuICBAaWYgbGVuZ3RoKCRCUkVBS1BPSU5UUykgPT0gMCB7XG4gICAgJEJSRUFLUE9JTlRTOiAkb3V0cHV0ICFnbG9iYWw7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRuYW1lKSBhbmQgJG92ZXJ3cml0ZSAhPSB0cnVlIHtcbiAgICAgIEB3YXJuIFwiWW91IGFscmVhZHkgaGF2ZSBhIGJyZWFrcG9pbnQgbmFtZWQgYCN7JG5hbWV9YCwgcGxlYXNlIGNob29zZSBhbm90aGVyIGJyZWFrcG9pbnQgbmFtZSwgb3IgcGFzcyBpbiBgJG92ZXJ3cml0ZTogdHJ1ZWAgdG8gb3ZlcndyaXRlIHRoZSBwcmV2aW91cyBicmVha3BvaW50LlwiO1xuICAgICAgJEJSRUFLUE9JTlRTOiAkQlJFQUtQT0lOVFMgIWdsb2JhbDtcbiAgICB9XG4gICAgQGVsc2UgaWYgbm90IG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJG5hbWUpIG9yICRvdmVyd3JpdGUgPT0gdHJ1ZSB7XG4gICAgICAkQlJFQUtQT0lOVFM6IG1hcC1tZXJnZSgkQlJFQUtQT0lOVFMsICRvdXRwdXQpICFnbG9iYWw7XG4gICAgfVxuICB9XG59XG5cbkBmdW5jdGlvbiBnZXQtYnJlYWtwb2ludCgkbmFtZTogZmFsc2UpIHtcbiAgQGlmICRuYW1lID09IGZhbHNlIHtcbiAgICBAcmV0dXJuICRCUkVBS1BPSU5UUztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRCUkVBS1BPSU5UUywgJG5hbWUpO1xuICB9XG59XG4iLCJAbWl4aW4gbGVnYWN5LXNldHRpbmdzLXdhcm5pbmcge1xuICAkbGVnYWN5VmFyczogKFxuICAgICdkZWZhdWx0LW1lZGlhJzogJ2RlZmF1bHQgbWVkaWEnLFxuICAgICdkZWZhdWx0LWZlYXR1cmUnOiAnZGVmYXVsdCBmZWF0dXJlJyxcbiAgICAnZm9yY2UtbWVkaWEtYWxsJzogJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJyxcbiAgICAndG8tZW1zJzogJ3RvIGVtcycsXG4gICAgJ3Jlc29sdXRpb25zJzogJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycsXG4gICAgJ25vLXF1ZXJpZXMnOiAnbm8gcXVlcmllcycsXG4gICAgJ25vLXF1ZXJ5LWZhbGxiYWNrcyc6ICdubyBxdWVyeSBmYWxsYmFja3MnLFxuICAgICdiYXNlLWZvbnQtc2l6ZSc6ICdiYXNlIGZvbnQgc2l6ZScsXG4gICAgJ2xlZ2FjeS1zeW50YXgnOiAnbGVnYWN5IHN5bnRheCdcbiAgKTtcblxuICBAZWFjaCAkbGVnYWN5LCAkbmV3IGluICRsZWdhY3lWYXJzIHtcbiAgICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC0nICsgJGxlZ2FjeSkge1xuICAgICAgQHdhcm4gXCJJbiBvcmRlciB0byBhdm9pZCB2YXJpYWJsZSBuYW1zcGFjZSBjb2xsaXNpb25zLCB3ZSBoYXZlIHVwZGF0ZWQgdGhlIHdheSB0byBjaGFuZ2Ugc2V0dGluZ3MgZm9yIEJyZWFrcG9pbnQuIFBsZWFzZSBjaGFuZ2UgYWxsIGluc3RhbmNlcyBvZiBgJGJyZWFrcG9pbnQtI3skbGVnYWN5fToge3tzZXR0aW5nfX1gIHRvIGBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnI3skbmV3fScsIHt7c2V0dGluZ319KWAuIFZhcmlhYmxlIHNldHRpbmdzLCBhcyB3ZWxsIGFzIHRoaXMgd2FybmluZyB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS5cIlxuICAgIH1cbiAgfTtcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gSGFuZCBjb3JyZWN0IGVhY2ggc2V0dGluZ1xuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtZGVmYXVsdC1tZWRpYScpIGFuZCAkYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhICE9IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdkZWZhdWx0IG1lZGlhJywgJGJyZWFrcG9pbnQtZGVmYXVsdC1tZWRpYSk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtZGVmYXVsdC1mZWF0dXJlJykgYW5kICRicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZSAhPSBicmVha3BvaW50LWdldCgnZGVmYXVsdCBmZWF0dXJlJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdkZWZhdWx0IGZlYXR1cmUnLCAkYnJlYWtwb2ludC1kZWZhdWx0LWZlYXR1cmUpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWZvcmNlLW1lZGlhLWFsbCcpIGFuZCAkYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGwgIT0gYnJlYWtwb2ludC1nZXQoJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdmb3JjZSBhbGwgbWVkaWEgdHlwZScsICRicmVha3BvaW50LWZvcmNlLW1lZGlhLWFsbCk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtdG8tZW1zJykgYW5kICRicmVha3BvaW50LXRvLWVtcyAhPSBicmVha3BvaW50LWdldCgndG8gZW1zJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCd0byBlbXMnLCAkYnJlYWtwb2ludC10by1lbXMpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LXJlc29sdXRpb25zJykgYW5kICRicmVha3BvaW50LXJlc29sdXRpb25zICE9IGJyZWFrcG9pbnQtZ2V0KCd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycsICRicmVha3BvaW50LXJlc29sdXRpb25zKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1uby1xdWVyaWVzJykgYW5kICRicmVha3BvaW50LW5vLXF1ZXJpZXMgIT0gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ25vIHF1ZXJpZXMnLCAkYnJlYWtwb2ludC1uby1xdWVyaWVzKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3MnKSBhbmQgJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzICE9IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycsICRicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrcyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtYmFzZS1mb250LXNpemUnKSBhbmQgJGJyZWFrcG9pbnQtYmFzZS1mb250LXNpemUgIT0gYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdiYXNlIGZvbnQgc2l6ZScsICRicmVha3BvaW50LWJhc2UtZm9udC1zaXplKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4JykgYW5kICRicmVha3BvaW50LWxlZ2FjeS1zeW50YXggIT0gYnJlYWtwb2ludC1nZXQoJ2xlZ2FjeSBzeW50YXgnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2xlZ2FjeSBzeW50YXgnLCAkYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4KTtcbiAgfVxufSIsIi8vICR1cC10by1pcGFkOiBtYXgtd2lkdGggNzY4cHg7XG4vLyAkdXAtZnJvbS1pcGFkOiBtaW4td2lkdGggNzY5cHg7XG5cbi8vICR1cC10by1kZXNrdG9wOiBtYXgtd2lkdGggOTk5cHg7XG4vLyAkdXAtdG8tbW9iaWxlOiBtYXgtd2lkdGggNzY3cHg7XG5cbi8vICR1cC1mcm9tLWRlc2t0b3A6IG1pbi13aWR0aCAxMDAwcHg7XG5cbiRzaGFsbG93ZXItYW5nbGU6IG1pbi13aWR0aCAxMjAwcHg7XG5cblxuLyoqXG4gKiBcbiAqL1xuXG4kdXAtdG8taXBhZC1leGNsdXNpdmU6IG1heC13aWR0aCA3NjdweDtcbiR1cC10by1pcGFkLWluY2x1c2l2ZTogbWF4LXdpZHRoIDc2OHB4O1xuXG4kdXAtdG8tZGVza3RvcC1leGNsdXNpdmU6IG1heC13aWR0aCA5OTFweDtcblxuJHdoaWxzdC1mbHVpZDogbWF4LXdpZHRoIDU3NXB4OyIsIi8qIGh0dHA6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jc3MvcmVzZXQvXG4gICB2Mi4wIHwgMjAxMTAxMjZcbiAgIExpY2Vuc2U6IG5vbmUgKHB1YmxpYyBkb21haW4pXG4qL1xuXG5odG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsXG5hLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsXG5kZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXG5zbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLFxuYiwgdSwgaSwgY2VudGVyLFxuZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcbmZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLFxudGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsXG5hcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCxcbmZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCxcbm1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LFxudGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRib3JkZXI6IDA7XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi8qIEhUTUw1IGRpc3BsYXktcm9sZSByZXNldCBmb3Igb2xkZXIgYnJvd3NlcnMgKi9cbmFydGljbGUsIGFzaWRlLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsXG5mb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIHNlY3Rpb24ge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cbmJvZHkge1xuXHRsaW5lLWhlaWdodDogMTtcbn1cbm9sLCB1bCB7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5ibG9ja3F1b3RlLCBxIHtcblx0cXVvdGVzOiBub25lO1xufVxuYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIsXG5xOmJlZm9yZSwgcTphZnRlciB7XG5cdGNvbnRlbnQ6ICcnO1xuXHRjb250ZW50OiBub25lO1xufVxudGFibGUge1xuXHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXHRib3JkZXItc3BhY2luZzogMDtcbn1cbiIsIi8vIFJlbWVtYmVyOiBkbyBOT1QgZWRpdCB0aGlzIGZpbGUuXG5cbiRicmFuZC1mb3VyOiAjRkZGRkZGO1xuXG4kYnJhbmQtZml2ZTogIzYzNjM2MztcblxuJGJyYW5kLXNpeDogI2ViZWJlYjtcblxuJGJyYW5kLXRocmVlOiAjZDRkM2QzO1xuXG4kYnJhbmQtdHdvOiAjMDAwO1xuXG4kYnJhbmQtb25lOiAjYmYwMDExO1xuIiwiLy8gUmVtZW1iZXI6IGRvIE5PVCBlZGl0IHRoaXMgZmlsZS5cblxuOnJvb3Qge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuaHRtbCB1bCBsaSBhIHtcbiAgICBmb250LXNpemU6IDFyZW07IC8vIDE2cHhcbn1cblxuaHRtbCBwIHtcbiAgICBmb250LXNpemU6IDFyZW07IC8vIDE2cHhcbn1cblxuaHRtbCBoMSB7XG4gICAgZm9udC1zaXplOiA1LjgxMjVyZW07IC8vIDkzcHhcbn1cblxuLmhlYWRpbmctbGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogMi4yNXJlbTsgLy8gMzZweFxufVxuXG4uc3ViLWhlYWRpbmcge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTsgLy8gMjhweFxufVxuXG5odG1sIGgyIHtcbiAgICBmb250LXNpemU6IDMuMTg3NXJlbTsgLy8gNTFweFxufVxuXG5odG1sIGgzIHtcbiAgICBmb250LXNpemU6IDIuMjVyZW07IC8vIDM2cHhcbn1cblxuaHRtbCBoNCB7XG4gICAgZm9udC1zaXplOiAyLjI1cmVtOyAvLyAzNnB4XG59XG5cbmh0bWwgaDUge1xuICAgIGZvbnQtc2l6ZTogMi4yNXJlbTsgLy8gMzZweFxufVxuXG5odG1sIHVsIGxpIHtcbiAgICBmb250LXNpemU6IDFyZW07IC8vIDE2cHhcbn1cbiIsIkBtaXhpbiBjbGVhcmZpeCgpIHtcblx0Jjo6YWZ0ZXIge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdH1cbn1cblxuIiwiQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdmb250ZWxsbyc7XG5cbiAgICBzcmM6IHVybCgnLi4vZm9udC9mb250ZWxsby9mb250ZWxsby5lb3Q/NTM1OTUzODAnKTtcbiAgICBzcmM6IHVybCgnLi4vZm9udC9mb250ZWxsby9mb250ZWxsby5lb3Q/NTM1OTUzODAjaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICB1cmwoJy4uL2ZvbnQvZm9udGVsbG8vZm9udGVsbG8ud29mZj81MzU5NTM4MCcpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgdXJsKCcuLi9mb250L2ZvbnRlbGxvL2ZvbnRlbGxvLnR0Zj81MzU5NTM4MCcpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICAgIHVybCgnLi4vZm9udC9mb250ZWxsby9mb250ZWxsby5zdmc/NTM1OTUzODAjZm9udGVsbG8nKSBmb3JtYXQoJ3N2ZycpO1xuXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi5mb250ZWxsbyB7XG4gICAgZm9udC1mYW1pbHk6IFwiZm9udGVsbG9cIjtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBzcGVhazogbm9uZTtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gICAgd2lkdGg6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC4yZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8qIG9wYWNpdHk6IC44OyAqL1xuXG4gICAgLyogRm9yIHNhZmV0eSAtIHJlc2V0IHBhcmVudCBzdHlsZXMsIHRoYXQgY2FuIGJyZWFrIGdseXBoIGNvZGVzKi9cbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgIC8qIGZpeCBidXR0b25zIGhlaWdodCwgZm9yIHR3aXR0ZXIgYm9vdHN0cmFwICovXG4gICAgbGluZS1oZWlnaHQ6IDFlbTtcblxuICAgIC8qIEFuaW1hdGlvbiBjZW50ZXIgY29tcGVuc2F0aW9uIC0gbWFyZ2lucyBzaG91bGQgYmUgc3ltbWV0cmljICovXG4gICAgLyogcmVtb3ZlIGlmIG5vdCBuZWVkZWQgKi9cbiAgICBtYXJnaW4tbGVmdDogLjJlbTtcblxuICAgIC8qIFlvdSBjYW4gYmUgbW9yZSBjb21mb3J0YWJsZSB3aXRoIGluY3JlYXNlZCBpY29ucyBzaXplICovXG4gICAgLyogZm9udC1zaXplOiAxMjAlOyAqL1xuXG4gICAgLyogRm9udCBzbW9vdGhpbmcuIFRoYXQgd2FzIHRha2VuIGZyb20gVFdCUyAqL1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbiAgICAvKiBVbmNvbW1lbnQgZm9yIDNEIGVmZmVjdCAqL1xuICAgIC8qIHRleHQtc2hhZG93OiAxcHggMXB4IDFweCByZ2JhKDEyNywgMTI3LCAxMjcsIDAuMyk7ICovXG59XG5cbkBtaXhpbiBmb250ZWxsbygpIHtcbiAgICBmb250LWZhbWlseTogXCJmb250ZWxsb1wiO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHNwZWFrOiBub25lO1xuICAgIC8qIEZvciBzYWZldHkgLSByZXNldCBwYXJlbnQgc3R5bGVzLCB0aGF0IGNhbiBicmVhayBnbHlwaCBjb2RlcyovXG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgLyogZml4IGJ1dHRvbnMgaGVpZ2h0LCBmb3IgdHdpdHRlciBib290c3RyYXAgKi9cbiAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgIC8qIEZvbnQgc21vb3RoaW5nLiBUaGF0IHdhcyB0YWtlbiBmcm9tIFRXQlMgKi9cbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4iLCIiLCIvKipcbiAqIHJhem9yLWVkZ2UtdG9wLWZvb3Rlci5cbiAqL1xuXG5AbWl4aW4gcmF6b3ItZWRnZS10b3AtZm9vdGVyIHtcblxuICAgIC8qKlxuICAgICAqIE92ZXJmbG93LlxuICAgICAqL1xuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uLlxuICAgICAqL1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgLyoqXG4gICAgICogU2l6aW5nLlxuICAgICAqL1xuXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlOyAgICAgICAgXG5cbiAgICAvKipcbiAgICAgKiBUcmFuc2Zvcm0uXG4gICAgICovXG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cbiAgICAvKipcbiAgICAgKiBAaW5jbHVkZS5cbiAgICAgKi9cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHVwLXRvLWlwYWQtZXhjbHVzaXZlKSB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBhZGRpbmcuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUlKTtcblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqICY6OmJlZm9yZS5cbiAgICAgKi9cblxuICAgICY6OmJlZm9yZSB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIENvbnRlbnQuXG4gICAgICAgICAqL1xuXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQb3NpdGlvbiByZWxhdGVkLlxuICAgICAgICAgKi9cblxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcblxuICAgICAgICAvKipcbiAgICAgICAgICogWi1pbmRleC5cbiAgICAgICAgICovXG5cbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogU2l6aW5nLlxuICAgICAgICAgKi9cblxuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUcmFuc2Zvcm0uXG4gICAgICAgICAqL1xuXG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgICAgICB0cmFuc2Zvcm06IHNrZXdZKDEyZGVnKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogYnJlYWtwb2ludC5cbiAgICAgICAgICovXG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2hhbGxvd2VyLWFuZ2xlKSB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVHJhbnNmb3JtLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2tld1koI3sxMmRlZyAtIDR9KTtcblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEJhY2tncm91bmQuXG4gICAgICAgICAqL1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC10d287XG5cbiAgICB9XG5cbn1cblxuLyoqXG4gKiByYXpvci1lZGdlLWZpbGwtaW4tZm9vdGVyLlxuICovXG5cbkBtaXhpbiByYXpvci1lZGdlLWZpbGwtaW4tZm9vdGVyLS1hZnRlciB7XG5cbiAgICAvKipcbiAgICAgKiAmOjphZnRlci5cbiAgICAgKi9cblxuICAgICY6OmFmdGVyIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQ29udGVudC5cbiAgICAgICAgICovXG5cbiAgICAgICAgY29udGVudDogJyc7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBvc2l0aW9uLlxuICAgICAgICAgKi9cblxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcblxuICAgICAgICAvKipcbiAgICAgICAgICogWi1pbmRleC5cbiAgICAgICAgICovXG5cbiAgICAgICAgei1pbmRleDogLTI7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNpemluZy5cbiAgICAgICAgICovXG5cbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogNTIlO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBcbiAgICAgICAgICovXG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLXR3bztcblxuICAgIH1cblxufVxuXG4vKipcbiAqIHJhem9yLWVkZ2UtdG9wLWFuZC1maWxsLWluLlxuICovXG5cbkBtaXhpbiByYXpvci1lZGdlLXRvcC1hbmQtZmlsbC1pbihcbiAgICAkcmF6b3JDb2xvcjogcGluayxcbiAgICAkcmF6b3JIZWlnaHQ6IDEwMCUsXG4gICAgJHJhem9yVHJhbnNmb3JtRGVnOiAxMmRlZyxcbiAgICAkcmF6b3JUcmFuc2xhdGVZOiAtMzAlLFxuICAgICRmaWxsSGVpZ2h0OiA0MCUsXG4gICAgJHJlbmRlckZpbGxJbjogdHJ1ZVxuKSB7XG5cbiAgICAvKipcbiAgICAgKiAmOjpiZWZvcmUuXG4gICAgICovXG5cbiAgICAmOjpiZWZvcmUge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDb250ZW50LlxuICAgICAgICAgKi9cblxuICAgICAgICBjb250ZW50OiAnJztcblxuICAgICAgICAvKipcbiAgICAgICAgICogUG9zaXRpb24gcmVsYXRlZC5cbiAgICAgICAgICovXG5cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFotaW5kZXguXG4gICAgICAgICAqL1xuXG4gICAgICAgIHotaW5kZXg6IC0xO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTaXppbmcuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6ICN7JHJhem9ySGVpZ2h0fTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogVHJhbnNmb3JtLlxuICAgICAgICAgKi9cblxuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAgICAgdHJhbnNmb3JtOiBza2V3WSgjeyRyYXpvclRyYW5zZm9ybURlZ30pIHRyYW5zbGF0ZVkoI3skcmF6b3JUcmFuc2xhdGVZfSk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGJyZWFrcG9pbnQuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNoYWxsb3dlci1hbmdsZSkge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFRyYW5zZm9ybS5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXdZKCN7JHJhem9yVHJhbnNmb3JtRGVnIC0gNH0pIHRyYW5zbGF0ZVkoI3skcmF6b3JUcmFuc2xhdGVZfSk7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBCYWNrZ3JvdW5kLlxuICAgICAgICAgKi9cblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjeyRyYXpvckNvbG9yfTtcblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFxuICAgICAqL1xuXG4gICAgQGlmICRyZW5kZXJGaWxsSW4gPT0gdHJ1ZSB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqICY6OmFmdGVyLlxuICAgICAgICAgKi9cblxuICAgICAgICAmOjphZnRlciB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQ29udGVudC5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBjb250ZW50OiAnJztcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBQb3NpdGlvbi5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFotaW5kZXguXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgei1pbmRleDogLTI7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogU2l6aW5nLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAjeyRmaWxsSGVpZ2h0fTtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBCYWNrZ3JvdW5kLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICN7JHJhem9yQ29sb3J9O1xuXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG4vKipcbiAqIHJhem9yLWVkZ2UtdG9wLWZvci1pbWFnZS1tYXNraW5nLlxuICovXG5cbkBtaXhpbiByYXpvci1lZGdlLXRvcC1mb3ItaW1hZ2UtbWFza2luZyhcbiAgICAkcmF6b3JDb2xvcjogc3ByaW5nZ3JlZW4sXG4gICAgJHJhem9ySGVpZ2h0OiAyMHJlbSxcbiAgICAkcmF6b3JEZWc6IDEyZGVnXG4pIHtcblxuICAgIC8qKlxuICAgICAqIE92ZXJmbG93LlxuICAgICAqL1xuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uLlxuICAgICAqL1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgLyoqXG4gICAgICogU2l6aW5nLlxuICAgICAqL1xuXG4gICAgaGVpZ2h0OiAjeyRyYXpvckhlaWdodCArIDJyZW19O1xuICAgIHdpZHRoOiAxMDAlOyAgICAgICAgXG5cbiAgICAvKipcbiAgICAgKiAmOjpiZWZvcmUuXG4gICAgICovXG5cbiAgICAmOjpiZWZvcmUge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDb250ZW50LlxuICAgICAgICAgKi9cblxuICAgICAgICBjb250ZW50OiAnJztcblxuICAgICAgICAvKipcbiAgICAgICAgICogUG9zaXRpb24gcmVsYXRlZC5cbiAgICAgICAgICovXG5cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBaLWluZGV4LlxuICAgICAgICAgKi9cblxuICAgICAgICB6LWluZGV4OiAxO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTaXppbmcuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHdpZHRoOiAxMjAlO1xuICAgICAgICBoZWlnaHQ6ICN7JHJhem9ySGVpZ2h0ICogMn07XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRyYW5zZm9ybS5cbiAgICAgICAgICovXG5cbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIHJpZ2h0O1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgjeyRyYXpvckRlZ30pO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBicmVha3BvaW50LlxuICAgICAgICAgKi9cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaGFsbG93ZXItYW5nbGUpIHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBUcmFuc2Zvcm0uXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoI3skcmF6b3JEZWcgLSA0fSk7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBCYWNrZ3JvdW5kLlxuICAgICAgICAgKi9cblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjeyRyYXpvckNvbG9yfTtcblxuICAgIH1cblxufSIsIi8qKlxuICogQm9keS5cbiAqL1xuXG5ib2R5IHtcblxuICAgIC8qKlxuICAgICAqIFBhZGRpbmcuXG4gICAgICovXG5cbiAgICBwYWRkaW5nLXRvcDogNnJlbTtcblxuICAgIC8qKlxuICAgICAqIEZvbnQgcmVsYXRlZC5cbiAgICAgKi9cblxuICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgc2Fucy1zZXJpZjtcblxuICAgIC8qKlxuICAgICAqIHAuXG4gICAgICovXG5cbiAgICBwIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogTWFyZ2luLlxuICAgICAgICAgKi9cblxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbnQgcmVsYXRlZC5cbiAgICAgICAgICovXG5cbiAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuN3JlbTtcblxuICAgIH1cblxuICAgIGgxIHtcblxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMTNweDtcblxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuXG4gICAgICAgIC13ZWJraXQtZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlcztcblxuICAgICAgICAvKipcbiAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHVwLXRvLWlwYWQtZXhjbHVzaXZlKSB7XG5cbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xuXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogOHB4O1xuXG4gICAgICAgICAgICBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzO1xuICAgICAgICAgICAgLXdlYmtpdC1mb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzO1xuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIGgyIHtcblxuICAgICAgICBsZXR0ZXItc3BhY2luZzogOXB4O1xuXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG5cbiAgICAgICAgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlcztcbiAgICAgICAgLXdlYmtpdC1mb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaW5jbHVkZS5cbiAgICAgICAgICovXG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdXAtdG8taXBhZC1leGNsdXNpdmUpIHtcblxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XG5cbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiA2cHg7XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaDMuXG4gICAgICovXG5cbiAgICBoMyB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbnQgcmVsYXRlZC5cbiAgICAgICAgICovXG5cbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcblxuICAgICAgICBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzO1xuICAgICAgICAtd2Via2l0LWZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7XG5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBoNS5cbiAgICAgKi9cblxuICAgIGg1IHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgKi9cblxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuXG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiA1cHg7XG5cbiAgICAgICAgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlcztcbiAgICAgICAgLXdlYmtpdC1mb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzO1xuXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKi9cblxuICAgIC5leGFtcGxlIHtcblxuICAgICAgICBoMSB7XG4gICAgICAgICAgICBjb2xvcjogbWFnZW50YSAhaW1wb3J0YW50XG4gICAgICAgIH0gICAgICAgIFxuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogLnBhZ2UtdHJhbnNpdGlvbi1sb2dvLlxuICAgICAqL1xuXG4gICAgLnBhZ2UtdHJhbnNpdGlvbi1sb2dvIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogUG9zaXRpb24uXG4gICAgICAgICAqL1xuXG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogWi1pbmRleC5cbiAgICAgICAgICovXG5cbiAgICAgICAgei1pbmRleDogMTAwO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUcmFuc2Zvcm0uXG4gICAgICAgICAqL1xuXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTaXppbmcuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHdpZHRoOiAxNXJlbTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHVwLXRvLWlwYWQtZXhjbHVzaXZlKSB7XG5cbiAgICAgICAgICAgIHdpZHRoOiAxMHJlbTtcblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE9wYWNpdHkuXG4gICAgICAgICAqL1xuXG4gICAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRyYW5zaXRpb24uXG4gICAgICAgICAqL1xuXG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZS1vdXQ7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBvaW50ZXIgZXZlbnRzLlxuICAgICAgICAgKi9cblxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIC5wYWdlLXRyYW5zaXRpb24tcmF6b3ItZWRnZS5cbiAgICAgKi9cblxuICAgIC5wYWdlLXRyYW5zaXRpb24tcmF6b3ItZWRnZSB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBvc2l0aW9uIHJlbGF0ZWQuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBaLWluZGV4LlxuICAgICAgICAgKi9cblxuICAgICAgICB6LWluZGV4OiA1MDtcblxuICAgICAgICAvKipcbiAgICAgICAgICogU2l6aW5nLlxuICAgICAgICAgKi9cblxuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgKyA1MHJlbSk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE92ZXJmbG93LlxuICAgICAgICAgKi9cblxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBPcGFjaXR5LlxuICAgICAgICAgKi9cblxuICAgICAgICBvcGFjaXR5OiAwO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUcmFuc2Zvcm0uXG4gICAgICAgICAqL1xuXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIHJhem9yLWVkZ2UtdG9wLWFuZC1maWxsLWluKFxuICAgICAgICAgICAgd2hpdGUsXG4gICAgICAgICAgICA1MHJlbSxcbiAgICAgICAgICAgIDEyZGVnLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIDgwJSxcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIC5jb3ZpZC1iYXIuXG4gICAgICovXG5cbiAgICAuY292aWQtYmFyIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogLmNvdmlkLXBvcHVwLWNvbnRlbnQuXG4gICAgICAgICAqL1xuXG4gICAgICAgIC5jb3ZpZC1wb3B1cC1jb250ZW50IHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBEaXNwbGF5LlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59IiwiIiwiIiwiLyoqXG4gKiBmb290ZXIuXG4gKi9cblxuZm9vdGVyIHtcblxuICAgIC8qKlxuICAgICAqIEZvbnQgcmVsYXRlZC5cbiAgICAgKi9cblxuICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgIC8qKlxuICAgICAqIE1hcmdpbi5cbiAgICAgKi9cblxuICAgIG1hcmdpbi10b3A6IC04cmVtO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24uXG4gICAgICovXG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvKipcbiAgICAgKiBaLWluZGV4LlxuICAgICAqL1xuXG4gICAgei1pbmRleDogMTA7XG4gICAgXG4gICAgLyoqXG4gICAgICogLnJhem9yLWVkZ2UuXG4gICAgICovXG5cbiAgICAucmF6b3ItZWRnZSB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBpbmNsdWRlLlxuICAgICAgICAgKi9cblxuICAgICAgICBAaW5jbHVkZSByYXpvci1lZGdlLXRvcC1mb290ZXIoKTtcblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmNsdWRlLlxuICAgICAqL1xuXG4gICAgQGluY2x1ZGUgcmF6b3ItZWRnZS1maWxsLWluLWZvb3Rlci0tYWZ0ZXIoKTtcblxuICAgIC8qKlxuICAgICAqIC5jb250YWluZXIuXG4gICAgICovXG5cbiAgICAuY29udGFpbmVyIHtcblxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAucm93LW9uZS5cbiAgICAgKi9cblxuICAgIC5yb3ctb25lIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogXG4gICAgICAgICAqL1xuXG4gICAgICAgIC5sb2dvIHtcblxuICAgICAgICAgICAgd2lkdGg6IDdyZW07XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBwLlxuICAgICAgICAgKi9cblxuICAgICAgICBwIHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgICAgICBjb2xvcjogJGJyYW5kLWZpdmU7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogTWFyZ2luLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHVsLmxpc3QuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHVsLmxpc3Qge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE1hcmdpbi5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGxpLmxpc3QtaXRlbS5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBsaS5saXN0LWl0ZW0ge1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBNYXJnaW4uXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjJyZW07XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBhLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgYSB7XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIEZvbnQgcmVsYXRlZC5cbiAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnJhbmQtZm91cjsgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiAmOmhvdmVyLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRicmFuZC1maXZlO1xuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIC5yb3ctdHdvLlxuICAgICAqL1xuXG4gICAgLnJvdy10d28ge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQYWRkaW5nLlxuICAgICAgICAgKi9cblxuICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBpbmNsdWRlLlxuICAgICAgICAgKi9cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3aGlsc3QtZmx1aWQpIHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBQYWRkaW5nLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwcmVtO1xuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogcC5cbiAgICAgICAgICovXG5cbiAgICAgICAgcCB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRGlzcGxheS5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRicmFuZC1maXZlO1xuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogLmxpc3RcbiAgICAgICAgICovXG5cbiAgICAgICAgLmxpc3Qge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIERpc3BsYXkuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIC5saXN0LWl0ZW0uXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgLmxpc3QtaXRlbSB7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBEaXNwbGF5LlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIENvbnRlbnQuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRicmFuZC1maXZlO1xuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogYS5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIGEge1xuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJyYW5kLWZpdmU7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogJjpob3Zlci5cbiAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbn0iLCIvKipcbiAqIC5jb3ZpZC1iYXIuXG4gKi9cblxuLmNvdmlkLWJhciB7XG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKi9cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1maXZlO1xuXG4gICAgLyoqXG4gICAgICogU2l6aW5nLlxuICAgICAqL1xuXG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAvKipcbiAgICAgKiBQYWRkaW5nLlxuICAgICAqL1xuXG4gICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG5cbiAgICAvKipcbiAgICAgKiAmOmhvdmVyLlxuICAgICAqL1xuXG4gICAgJjpob3ZlciB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEJhY2tncm91bmQuXG4gICAgICAgICAqL1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC10d287XG5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBhLlxuICAgICAqL1xuXG4gICAgYSB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIERpc3BsYXkuXG4gICAgICAgICAqL1xuICAgIFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAvKipcbiAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgKi9cblxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHAuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHAge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZvbnQgcmVsYXRlZC5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkYnJhbmQtZm91cjtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBNYXJnaW4uXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG4vKipcbiAqIGhlYWRlci5oZWFkZXIuXG4gKi9cblxuaGVhZGVyLmhlYWRlciB7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblxuICAgIC8qKlxuICAgICAqIERpc3BsYXkuXG4gICAgICovXG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLyoqXG4gICAgICogRmxleC5cbiAgICAgKi9cblxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAvKipcbiAgICAgKiBaLWluZGV4LlxuICAgICAqL1xuXG4gICAgei1pbmRleDogMjA7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbi5cbiAgICAgKi9cblxuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIC8qKlxuICAgICAqIFNpemluZy5cbiAgICAgKi9cblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNnJlbTtcbiAgICBcbiAgICAvKipcbiAgICAgKiBEcm9wIHNoYWRvdy5cbiAgICAgKi9cblxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMnB4IDEwcHggOHB4IC03cHggcmdiYSgwLDAsMCwwLjEpO1xuICAgIC1tb3otYm94LXNoYWRvdzogMnB4IDEwcHggOHB4IC03cHggcmdiYSgwLDAsMCwwLjEpO1xuICAgIGJveC1zaGFkb3c6IDJweCAxMHB4IDhweCAtN3B4IHJnYmEoMCwwLDAsMC4xKTtcblxuICAgIC8qKlxuICAgICAqIC5sb2dvLlxuICAgICAqL1xuXG4gICAgLmxvZ28ge1xuXG4gICAgICAgIHdpZHRoOiA1cmVtO1xuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogLmFjdGlvbnMuXG4gICAgICovXG5cbiAgICAuYWN0aW9ucyB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIERpc3BsYXkuXG4gICAgICAgICAqL1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFxuICAgICAgICAgKi9cblxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBaLWluZGV4LlxuICAgICAgICAgKi9cblxuICAgICAgICB6LWluZGV4OiAxMDtcblxuICAgICAgICAvKipcbiAgICAgICAgICogUG9zaXRpb24uXG4gICAgICAgICAqL1xuXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcblxuICAgICAgICAvKipcbiAgICAgICAgICogU2l6aW5nLlxuICAgICAgICAgKi9cblxuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIC5oYW1idXJnZXItYnV0dG9uLXdyYXBwZXIuXG4gICAgICAgICAqL1xuXG4gICAgICAgIC5oYW1idXJnZXItYnV0dG9uLXdyYXBwZXIge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE1hcmdpbi5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDNyZW07XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdXAtdG8taXBhZC1leGNsdXNpdmUpIHtcblxuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIC5oYW1idXJnZXItYnV0dG9uLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIC5oYW1idXJnZXItYnV0dG9uIHtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEJhY2tncm91bmQuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFBhZGRpbmcuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjhyZW0gMC41cmVtIDAuOHJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAmOmhvdmVyLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG5cbiAgICAgICAgICAgICAgICAgICAgc3ZnIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICRicmFuZC1vbmU7XG4gICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cblxuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogLmhhbWJ1cmdlci1idXR0b24td3JhcHBlci5cbiAgICAgICAgICovXG5cbiAgICAgICAgLmhhbWJ1cmdlci1idXR0b24td3JhcHBlciB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRGlzcGxheS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICBcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAuaGFtYnVyZ2VyLWJ1dHRvbi5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAuaGFtYnVyZ2VyLWJ1dHRvbiB7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBEaXNwbGF5LlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogc3ZnLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcblxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMnJlbTtcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogLmNvbnRhY3QtYnV0dG9uLlxuICAgICAgICAgKi9cblxuICAgICAgICAuY29udGFjdC1idXR0b24ge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIERpc3BsYXkuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBGbGV4LlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBCYWNrZ3JvdW5kLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1vbmU7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogU2l6aW5nLlxuICAgICAgICAgICAgICovXG4gICAgICAgIFxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDhyZW07XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogc3Bhbi5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBzcGFuIHtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEZvbnQgcmVsYXRlZC5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIERpc3BsYXkuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAmOmhvdmVyLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogQmFja2dyb3VuZC5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC10d287XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbn0iLCIiLCIiLCIvKipcbiAqIC5zaW1wbGUtcG9wdXAtd3JhcHBlci5cbiAqL1xuXG4uc2ltcGxlLXBvcHVwLXdyYXBwZXIge1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24uXG4gICAgICovXG5cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICAvKipcbiAgICAgKiBTaXppbmcuXG4gICAgICovXG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDA7XG5cbiAgICAvKipcbiAgICAgKiBPdmVyZmxvdy5cbiAgICAgKi9cblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAvKipcbiAgICAgKiBaLWluZGV4LlxuICAgICAqL1xuXG4gICAgei1pbmRleDogMjA7XG5cbiAgICAvKipcbiAgICAgKiBCYWNrZ3JvdW5kLlxuICAgICAqL1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYnJhbmQtdHdvLCAwLjk1KTtcblxuICAgIC8qKlxuICAgICAqIE9wYWNpdHkuXG4gICAgICovXG5cbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgLyoqXG4gICAgICogUG9pbnRlciBldmVudHMuXG4gICAgICovXG5cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIC8qKlxuICAgICAqICYuc2hvdy5cbiAgICAgKi9cblxuICAgICYuc2hvdyB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE9wYWNpdHkuXG4gICAgICAgICAqL1xuXG4gICAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBvaW50ZXIgZXZlbnRzLlxuICAgICAgICAgKi9cblxuICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTaXppbmcuXG4gICAgICAgICAqL1xuXG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogT3ZlcmZsb3cuXG4gICAgICAgICAqL1xuXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmFuc2l0aW9uLlxuICAgICAqL1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKi9cblxuICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgLyoqXG4gICAgICogQGluY2x1ZGUuXG4gICAgICovXG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR1cC10by1pcGFkLWluY2x1c2l2ZSkge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEaXNwbGF5LlxuICAgICAgICAgKi9cblxuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIC5jbG9zZS1wb3B1cC5cbiAgICAgKi9cblxuICAgIC5jbG9zZS1wb3B1cCB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBvc2l0aW9uLlxuICAgICAgICAgKi9cblxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNpemluZy5cbiAgICAgICAgICovXG5cbiAgICAgICAgd2lkdGg6IDZyZW07XG4gICAgICAgIGhlaWdodDogNnJlbTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQmFja2dyb3VuZC5cbiAgICAgICAgICovXG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLW9uZTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogRGlzcGxheS5cbiAgICAgICAgICovXG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAvKipcbiAgICAgICAgICogRmxleC5cbiAgICAgICAgICovXG5cbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBpbmNsdWRlLlxuICAgICAgICAgKi9cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR1cC10by1pcGFkLWV4Y2x1c2l2ZSkge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFNpemluZy5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICB3aWR0aDogM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGltZy5cbiAgICAgICAgICovXG5cbiAgICAgICAgaW1nIHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBTaXppbmcuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS41cmVtO1xuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogc3ZnLlxuICAgICAgICAgKi9cblxuICAgICAgICBzdmcge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFNpemluZy5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICB3aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjVyZW07XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiAmOmhvdmVyLlxuICAgICAgICAgKi9cblxuICAgICAgICAmOmhvdmVyIHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBCYWNrZ3JvdW5kLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIHN2Zy5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBzdmcge1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogcG9seWdvbi5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIHBvbHlnb24ge1xuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBGaWxsLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYnJhbmQtdHdvO1xuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogLnNpbXBsZS1wb3B1cC5cbiAgICAgKi9cblxuICAgIC5zaW1wbGUtcG9wdXAge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBNYXJnaW4uXG4gICAgICAgICAqL1xuXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0cmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE0cmVtO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAqL1xuXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogUGFkZGluZy5cbiAgICAgICAgICovXG5cbiAgICAgICAgcGFkZGluZy10b3A6IDEwcmVtOztcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgICAgIFxuICAgICAgICAvKipcbiAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHVwLXRvLWlwYWQtaW5jbHVzaXZlKSB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogUGFkZGluZy5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogOHJlbTtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBNYXJnaW4uXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDJyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDJyZW07XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVHJhbnNmb3JtLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBpbmNsdWRlLlxuICAgICAgICAgKi9cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR1cC10by1pcGFkLWV4Y2x1c2l2ZSkge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFBhZGRpbmcuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDRyZW07XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogTWFyZ2luLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogcC5oZWFkaW5nLlxuICAgICAgICAgKi9cbiAgICBcbiAgICAgICAgcC5oZWFkaW5nIHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgZm9udC1zaXplOiAzLjJyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMy44cmVtO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDEzcHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwOyAgIFxuICAgICAgICAgICAgLXdlYmtpdC1mb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE1hcmdpbi5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBpbmNsdWRlLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHVwLXRvLWlwYWQtZXhjbHVzaXZlKSB7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMy4wcmVtO1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxMXB4O1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBwIGEuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHAgYSB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIGNvbG9yOiAkYnJhbmQtZm91cjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqICY6aG92ZXIuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgJjpob3ZlciB7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBjb2xvcjogJGJyYW5kLW9uZTtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogdWwuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHVsIHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBNYXJnaW4uXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuM3JlbTtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBsaS5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBsaSB7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBMaXN0IHN0eWxlLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZTogZGlzYztcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEZvbnQgcmVsYXRlZC5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIE1hcmdpbi5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxufSIsIiIsIiIsIi8qKlxuICogLmZvdXJ6ZXJvZm91ci13cmFwcGVyLlxuICovXG5cbi5mb3VyemVyb2ZvdXItd3JhcHBlciB7XG5cbiAgICAvKipcbiAgICAgKiAuZm91cnplcm9mb3VyLWNvbnRhaW5lci5cbiAgICAgKi9cblxuICAgIC5mb3VyemVyb2ZvdXItY29udGFpbmVyIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogUGFkZGluZy5cbiAgICAgICAgICovXG4gICAgXG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHJlbTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogU2l6aW5nLlxuICAgICAgICAgKi9cblxuICAgICAgICBtaW4taGVpZ2h0OiA3MHJlbTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgKi9cblxuICAgICAgICBjb2xvcjogJGJyYW5kLXR3bztcblxuICAgIH1cblxufSIsIiIsIi8qKlxuICogLmFib3V0LWluZm9ibG9jay13cmFwcGVyLlxuICovXG5cbi5hYm91dC1pbmZvYmxvY2std3JhcHBlciB7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbi5cbiAgICAgKi9cblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8qKlxuICAgICAqIEJhY2tncm91bmQuXG4gICAgICovXG5cbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcblxuICAgIC8qKlxuICAgICAqIFBhZGRpbmcuXG4gICAgICovXG5cbiAgICBwYWRkaW5nLWJvdHRvbTogMzFyZW07XG4gICAgcGFkZGluZy10b3A6IDZyZW07XG5cbiAgICAvKipcbiAgICAgKiBAaW5jbHVkZS5cbiAgICAgKi9cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHdoaWxzdC1mbHVpZCkge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBCYWNrZ3JvdW5kLlxuICAgICAgICAgKi9cblxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1vbmU7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBhZGRpbmcuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMnJlbTtcblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIC5yYXpvci1lZGdlLlxuICAgICAqL1xuXG4gICAgLnJhem9yLWVkZ2Uge1xuXG4gICAgICAgIEBpbmNsdWRlIHJhem9yLWVkZ2UtdG9wLWZvci1pbWFnZS1tYXNraW5nKFxuICAgICAgICAgICAgJGJyYW5kLXNpeFxuICAgICAgICApO1xuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogLmFib3V0LWluZm9ibG9jay1jb250YWluZXIuXG4gICAgICovXG5cbiAgICAuYWJvdXQtaW5mb2Jsb2NrLWNvbnRhaW5lciB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBvc2l0aW9uLlxuICAgICAgICAgKi9cblxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFotaW5kZXguXG4gICAgICAgICAqL1xuXG4gICAgICAgIHotaW5kZXg6IDEwO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAqL1xuXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogTWFyZ2luLlxuICAgICAgICAgKi9cbiAgICBcbiAgICAgICAgbWFyZ2luLXRvcDogLTVyZW07XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBhZGRpbmcuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHBhZGRpbmctbGVmdDogNnJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNnJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVyZW07XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBpbmNsdWRlLlxuICAgICAgICAgKi9cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3aGlsc3QtZmx1aWQpIHtcblxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBpbmNsdWRlLlxuICAgICAgICAgKi9cblxuICAgICAgICBAaW5jbHVkZSByYXpvci1lZGdlLXRvcC1hbmQtZmlsbC1pbihcbiAgICAgICAgICAgICRicmFuZC1vbmUsXG4gICAgICAgICAgICA1MCUsXG4gICAgICAgICAgICAxMmRlZyxcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICA1MCVcbiAgICAgICAgKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogaDIuXG4gICAgICAgICAqL1xuICAgIFxuICAgICAgICBoMiB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogUGFkZGluZy5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMTNyZW07XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdXAtdG8taXBhZC1leGNsdXNpdmUpIHtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFBhZGRpbmcuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogOXJlbTtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE1hcmdpbi5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuXG4gICAgICAgIH1cblxuICAgIH1cblxufSIsIi8qKlxuICogLmFib3V0LWludHJvLXdyYXBwZXIuXG4gKi9cblxuLmFib3V0LWludHJvLXdyYXBwZXIge1xuXG4gICAgLyoqXG4gICAgICogLmFib3V0LWludHJvLWNvbnRhaW5lci5cbiAgICAgKi9cblxuICAgIC5hYm91dC1pbnRyby1jb250YWluZXIge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQYWRkaW5nLlxuICAgICAgICAgKi9cblxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMHJlbTtcblxuICAgIH1cblxufSIsIi8qKlxuICogLmFib3V0LXRlc3RpbW9uaWFscy13cmFwcGVyLlxuICovXG5cbi5hYm91dC10ZXN0aW1vbmlhbHMtd3JhcHBlciB7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbi5cbiAgICAgKi9cblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8qKlxuICAgICAqIFxuICAgICAqL1xuXG4gICAgei1pbmRleDogMTA7XG5cbiAgICAvKipcbiAgICAgKiBQYWRkaW5nLlxuICAgICAqL1xuXG4gICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW07XG5cbiAgICAvKipcbiAgICAgKiBNYXJnaW4uXG4gICAgICovXG5cbiAgICBtYXJnaW4tdG9wOiAtOHJlbTtcblxuICAgIC8qKlxuICAgICAqIEBpbmNsdWRlLlxuICAgICAqL1xuXG4gICAgQGluY2x1ZGUgcmF6b3ItZWRnZS10b3AtYW5kLWZpbGwtaW4oXG4gICAgICAgICRicmFuZC1zaXhcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICogQGluY2x1ZGUuXG4gICAgICovXG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3aGlsc3QtZmx1aWQpIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIHJhem9yLWVkZ2UtdG9wLWFuZC1maWxsLWluKFxuICAgICAgICAgICAgJGJyYW5kLXNpeCxcbiAgICAgICAgICAgIDUwJSxcbiAgICAgICAgICAgIDEyZGVnLFxuICAgICAgICAgICAgLTVyZW0sXG4gICAgICAgICAgICA3MCVcbiAgICAgICAgKTtcblxuICAgIH1cbiAgICBcbiAgICAvKipcbiAgICAgKiAuYWJvdXQtdGVzdGltb25pYWxzLWNvbnRhaW5lci5cbiAgICAgKi9cblxuICAgIC5hYm91dC10ZXN0aW1vbmlhbHMtY29udGFpbmVyIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogUG9zaXRpb24uXG4gICAgICAgICAqL1xuXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogUGFkZGluZy5cbiAgICAgICAgICovXG5cbiAgICAgICAgcGFkZGluZy1ib3R0b206IDE3cmVtO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaW5jbHVkZS5cbiAgICAgICAgICovXG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdXAtdG8taXBhZC1leGNsdXNpdmUpIHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBQYWRkaW5nLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxNHJlbVxuXG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBoMi5cbiAgICAgICAgICovXG5cbiAgICAgICAgaDIge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE1hcmdpbi5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogLmdyYXBoaWMuXG4gICAgICAgICAqL1xuXG4gICAgICAgIC5ncmFwaGljIHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBQb3NpdGlvbiByZWxhdGVkLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogU2l6aW5nLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHdpZHRoOiAzLjVyZW07XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiAudGVzdGltb25pYWxzLXN3aXBlci1jb250YWluZXJcbiAgICAgICAgICovXG5cbiAgICAgICAgLnRlc3RpbW9uaWFscy1zd2lwZXItY29udGFpbmVyIHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBPdmVyZmxvdy5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIC5zd2lwZXItc2xpZGUuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgLnN3aXBlci1zbGlkZSB7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBQYWRkaW5nLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMzAlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNC41cmVtO1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3aGlsc3QtZmx1aWQpIHtcblxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogLmdyYXBoaWMuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgLmdyYXBoaWMge1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogcGF0aC5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIHBhdGgge1xuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBGaWxsLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYnJhbmQtb25lO1xuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59IiwiLyoqXG4gKiAuY29tbW9uLWhlcm8td3JhcHBlci5cbiAqL1xuXG4uY29tbW9uLWhlcm8td3JhcHBlciB7XG5cbiAgICAvKipcbiAgICAgKiBCYWNrZ3JvdW5kLlxuICAgICAqL1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLXNpeDtcblxuICAgIC8qKlxuICAgICAqIFBhZGRpbmcuXG4gICAgICovXG5cbiAgICBwYWRkaW5nLXRvcDogN3JlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcblxuICAgIC8qKlxuICAgICAqIC5jb21tb24taGVyby1jb250YWluZXIuXG4gICAgICovXG5cbiAgICAuY29tbW9uLWhlcm8tY29udGFpbmVyIHtcblxuICAgIH1cblxufSIsIi8qKlxuICogLmNvbW1vbi1pbnRyby13cmFwcGVyLlxuICovXG5cbi5jb21tb24taW50cm8td3JhcHBlciB7XG5cbiAgICAvKipcbiAgICAgKiBCYWNrZ3JvdW5kLlxuICAgICAqL1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLXNpeDtcblxuICAgIC8qKlxuICAgICAqIFBhZGRpbmcuXG4gICAgICovXG5cbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcblxuICAgIC8qKlxuICAgICAqIC5jb21tb24taW50cm8tY29udGFpbmVyLlxuICAgICAqL1xuXG4gICAgLmNvbW1vbi1pbnRyby1jb250YWluZXIge1xuXG4gICAgfVxuXG59IiwiLyoqXG4gKiBcbiAqL1xuXG4kZ28tZmx1aWQtd2lkdGg6IG1heC13aWR0aCA2MDBweDtcblxuLyoqXG4gKiAuY29udGFjdC1mbHlvdXQtd3JhcHBlci5cbiAqL1xuXG4uY29udGFjdC1mbHlvdXQtd3JhcHBlciB7XG5cbiAgICAvKipcbiAgICAgKiBPcGFjaXR5LlxuICAgICAqL1xuXG4gICAgb3BhY2l0eTogMDtcblxuICAgIC8qKlxuICAgICAqIFBvaW50ZXIgZXZlbnRzLlxuICAgICAqL1xuXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAvKipcbiAgICAgKiBAaW5jbHVkZS5cbiAgICAgKi9cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGdvLWZsdWlkLXdpZHRoKSB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFxuICAgICAgICAgKi9cblxuICAgICAgICBvdmVyZmxvdzogc2Nyb2xsO1xuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogJi5zaG93LlxuICAgICAqL1xuXG4gICAgJi5zaG93IHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogT3BhY2l0eS5cbiAgICAgICAgICovXG5cbiAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogUG9pbnRlciBldmVudHMuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIC5jb250YWN0LWZseW91dC1jb250YWluZXIuXG4gICAgICAgICAqL1xuXG4gICAgICAgIC5jb250YWN0LWZseW91dC1jb250YWluZXIge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFRyYW5zZm9ybS5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogJi5oaWRpbmcuXG4gICAgICovXG5cbiAgICAmLmhpZGluZyB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE9wYWNpdHkuXG4gICAgICAgICAqL1xuXG4gICAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIC5jb250YWN0LWZseW91dC1jb250YWluZXIuXG4gICAgICAgICAqL1xuXG4gICAgICAgIC5jb250YWN0LWZseW91dC1jb250YWluZXIge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFRyYW5zaXRpb24uXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZS1pbjtcblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbi5cbiAgICAgKi9cblxuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7ICAgXG5cbiAgICAvKipcbiAgICAgKiBTaXppbmcuXG4gICAgICovXG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuXG4gICAgLyoqXG4gICAgICogWi1pbmRleC5cbiAgICAgKi9cblxuICAgIHotaW5kZXg6IDM1O1xuXG4gICAgLyoqXG4gICAgICogLmNsb3NlLWJ1dHRvbi5cbiAgICAgKi9cblxuICAgIC5jbG9zZS1idXR0b24ge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBCYWNrZ3JvdW5kLlxuICAgICAgICAgKi9cblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtb25lO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEaXNwbGF5LlxuICAgICAgICAgKi9cblxuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAvKipcbiAgICAgICAgICogUG9zaXRpb24uXG4gICAgICAgICAqL1xuXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcblxuICAgICAgICAvKipcbiAgICAgICAgICogWi1JbmRleC5cbiAgICAgICAgICovXG5cbiAgICAgICAgei1pbmRleDogMTA7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNpemluZy5cbiAgICAgICAgICovXG5cbiAgICAgICAgd2lkdGg6IDZyZW07XG4gICAgICAgIGhlaWdodDogNnJlbTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHVwLXRvLWlwYWQtZXhjbHVzaXZlKSB7XG5cbiAgICAgICAgICAgIHdpZHRoOiAzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogLmNsb3NlLWljb24uXG4gICAgICAgICAqL1xuXG4gICAgICAgIC5jbG9zZS1pY29uIHtcblxuICAgICAgICAgICAgd2lkdGg6IDEuNXJlbTtcblxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG5cbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogJjpob3Zlci5cbiAgICAgICAgICovXG5cbiAgICAgICAgJjpob3ZlciB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogc3ZnLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHN2ZyB7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBwb2x5Z29uLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgcG9seWdvbiB7XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIEZpbGwuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRicmFuZC10d28gIWltcG9ydGFudDtcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIC5kaXNtaXNzLWZseW91dC5cbiAgICAgKi9cblxuICAgIC5kaXNtaXNzLWZseW91dCB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIERpc3BsYXkuXG4gICAgICAgICAqL1xuXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQb3NpdGlvbi5cbiAgICAgICAgICovXG5cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNpemluZy5cbiAgICAgICAgICovXG4gICAgXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAuY29udGFjdC1mbHlvdXQtY29udGFpbmVyLlxuICAgICAqL1xuXG4gICAgLmNvbnRhY3QtZmx5b3V0LWNvbnRhaW5lciB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIERpc3BsYXkuXG4gICAgICAgICAqL1xuICAgIFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAvKipcbiAgICAgICAgICogUG9zaXRpb24uXG4gICAgICAgICAqL1xuXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcblxuICAgICAgICAvKipcbiAgICAgICAgICogU2l6aW5nLlxuICAgICAgICAgKi9cblxuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUcmFuc2Zvcm0uXG4gICAgICAgICAqL1xuXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMTAlKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogVHJhbnNpdGlvbi5cbiAgICAgICAgICovXG5cbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNoYWRvdy5cbiAgICAgICAgICovXG5cbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAtM3B4IDBweCA1cHggMHB4IHJnYmEoMTQyLCA4MSwgODEsIDAuMTUpO1xuICAgICAgICAtbW96LWJveC1zaGFkb3c6IC0zcHggMHB4IDVweCAwcHggcmdiYSgwLDAsMCwwLjE1KTtcbiAgICAgICAgYm94LXNoYWRvdzogLTNweCAwcHggNXB4IDBweCByZ2JhKDAsMCwwLDAuMTUpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaW5jbHVkZS5cbiAgICAgICAgICovXG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdXAtdG8tZGVza3RvcC1leGNsdXNpdmUpIHtcblxuICAgICAgICAgICAgd2lkdGg6IDc1JTtcblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBpbmNsdWRlLlxuICAgICAgICAgKi9cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR1cC10by1pcGFkLWV4Y2x1c2l2ZSkge1xuXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEJhY2tncm91bmQuXG4gICAgICAgICAqL1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC10d287XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBpbmNsdWRlLlxuICAgICAgICAgKi9cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRnby1mbHVpZC13aWR0aCkge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZSAhaW1wb3J0YW50O1xuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgKi9cblxuICAgICAgICBjb2xvcjogd2hpdGU7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNpemluZy5cbiAgICAgICAgICovXG5cbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGbGV4LlxuICAgICAgICAgKi9cblxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiAud3Bmb3Jtcy1jb250YWluZXIuXG4gICAgICAgICAqL1xuXG4gICAgICAgIC53cGZvcm1zLWNvbnRhaW5lciB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogbGFiZWwud3Bmb3Jtcy1lcnJvci5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBsYWJlbC53cGZvcm1zLWVycm9yIHtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFBhZGRpbmcuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnJhbmQtb25lO1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogaW5wdXQuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgaW5wdXQsIHRleHRhcmVhIHtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEJvcmRlci5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC40KSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogQmFja2dyb3VuZC5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBTaXppbmcuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEZvbnQgcmVsYXRlZC5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogUGFkZGluZy5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogJjo6cGxhY2Vob2xkZXIuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIEZvbnQgcmVsYXRlZC5cbiAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHJiZ2EoMjU1LDI1NSwyNTUsMC44KTtcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIHRleHRhcmVhLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHRleHRhcmVhIHtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIE1hcmdpbi5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFNpemluZy5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIGhlaWdodDogOTBweCAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBTaXppbmcuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OyAgICAgICAgICAgICAgICBcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIC53cGZvcm1zLWZpZWxkLWNoZWNrYm94LlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIC53cGZvcm1zLWZpZWxkLWNoZWNrYm94IHtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIGxhYmVsLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgbGFiZWwge1xuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzY2NiAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogYnV0dG9uLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIGJ1dHRvbiB7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBCYWNrZ3JvdW5kLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLW9uZSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogQm9yZGVyLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFBhZGRpbmcuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogJjpob3Zlci5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRicmFuZC10d28gIWltcG9ydGFudDtcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogLmNvbnRhY3QtbGlzdC5cbiAgICAgICAgICovXG5cbiAgICAgICAgLmNvbnRhY3QtbGlzdCB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBsaS5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBsaSB7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBEaXNwbGF5LlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMTVyZW07XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIGEuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBhIHtcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnJhbmQtZm91cjtcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogJjpob3Zlci5cbiAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnJhbmQtZml2ZTtcblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIC5hZGRyZXNzLWxpc3QuXG4gICAgICAgICAqL1xuXG4gICAgICAgIC5hZGRyZXNzLWxpc3Qge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGxpLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIGxpIHtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIERpc3BsYXkuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogJjpsYXN0LWNoaWxkLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogJjo6YWZ0ZXIuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBDb250ZW50LlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqICY6OmFmdGVyLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBcbiAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJywnO1xuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9IFxuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogLnBhcnQtYS5cbiAgICAgICAgICovXG5cbiAgICAgICAgLnBhcnQtYSB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogUG9zaXRpb24uXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFNpemluZy5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIC8vIGhlaWdodDogNTAlO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFBhZGRpbmcuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAzcmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogM3JlbTtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA2cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdXAtdG8taXBhZC1leGNsdXNpdmUpIHtcblxuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkZ28tZmx1aWQtd2lkdGgpIHtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHRvcDogYXV0bztcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogLnBhcnQtYi5cbiAgICAgICAgICovXG4gICAgXG4gICAgICAgIC5wYXJ0LWIge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFBvc2l0aW9uLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBTaXppbmcuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgaGVpZ2h0OiAyMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBAaW5jbHVkZS5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRnby1mbHVpZC13aWR0aCkge1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogUG9zaXRpb24gcmVsYXRlZC5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBib3R0b206IGF1dG87XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBTaXppbmcuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqICNtYXAuXG4gICAgICAgICAqL1xuXG4gICAgICAgICNtYXAge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFBvc2l0aW9uLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogU2l6aW5nLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIH1cblxuICAgIH1cblxufSIsIi8qKlxuICogLmhvbWUtaGVyby13cmFwcGVyLlxuICovXG5cbi5ob21lLWhlcm8td3JhcHBlciB7XG5cbiAgICAvKipcbiAgICAgKiBTaXppbmcuXG4gICAgICovXG5cbiAgICBoZWlnaHQ6IDUwcmVtO1xuXG4gICAgLyoqXG4gICAgICogQGluY2x1ZGUuXG4gICAgICovXG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR1cC10by1pcGFkLWV4Y2x1c2l2ZSkge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBcbiAgICAgICAgICovXG5cbiAgICAgICAgaGVpZ2h0OiA0MHJlbTtcblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEJhY2tncm91bmQuXG4gICAgICovXG5cbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcblxuICAgIC8qKlxuICAgICAqIC5ob21lLWhlcm8tY29udGFpbmVyLlxuICAgICAqL1xuXG4gICAgLmhvbWUtaGVyby1jb250YWluZXIge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQb3NpdGlvbi5cbiAgICAgICAgICovXG5cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEaXNwbGF5LlxuICAgICAgICAgKi9cblxuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAvKipcbiAgICAgICAgICogU2l6aW5nLlxuICAgICAgICAgKi9cblxuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIFxuICAgICAgICAvKipcbiAgICAgICAgICogLnRleHQtbGluZXMuXG4gICAgICAgICAqL1xuXG4gICAgICAgIC50ZXh0LWxpbmVzIHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBEaXNwbGF5LlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFBvc2l0aW9uLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTglO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFRyYW5zZm9ybS5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBsaS5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBsaSB7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDRyZW07XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBibGFjaztcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFNoYWRvdy5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIC8vIHRleHQtc2hhZG93OiAycHggMnB4IDJweCByZ2JhKCNDM0MzQzMsIDAuNSk7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBAaW5jbHVkZS5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHVwLXRvLWlwYWQtZXhjbHVzaXZlKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIEZvbnQgcmVsYXRlZC5cbiAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgfSAgICAgICAgICAgXG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59IiwiLyoqXG4gKiAuaG9tZS1pbnRyby13cmFwcGVyLlxuICovXG5cbi5ob21lLWludHJvLXdyYXBwZXIge1xuXG4gICAgLyoqXG4gICAgICogTWFyZ2luLlxuICAgICAqL1xuXG4gICAgbWFyZ2luLXRvcDogLTEwcmVtO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24uXG4gICAgICovXG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgXG4gICAgLyoqXG4gICAgICogWi1pbmRleC5cbiAgICAgKi9cblxuICAgIHotaW5kZXg6IDE7XG5cbiAgICAvKipcbiAgICAgKiBAaW5jbHVkZS5cbiAgICAgKi9cblxuICAgIEBpbmNsdWRlIHJhem9yLWVkZ2UtdG9wLWFuZC1maWxsLWluKFxuICAgICAgICAkYnJhbmQtb25lXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIEBpbmNsdWRlLlxuICAgICAqL1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdXAtdG8taXBhZC1leGNsdXNpdmUpIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIHJhem9yLWVkZ2UtdG9wLWFuZC1maWxsLWluKFxuICAgICAgICAgICAgJGJyYW5kLW9uZSxcbiAgICAgICAgICAgIDEwMCUsXG4gICAgICAgICAgICAxMmRlZyxcbiAgICAgICAgICAgIC01cmVtXG4gICAgICAgICk7XG5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAuaG9tZS1pbnRyby1jb250YWluZXIuXG4gICAgICovXG5cbiAgICAuaG9tZS1pbnRyby1jb250YWluZXIge1xuICAgXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQYWRkaW5nLlxuICAgICAgICAgKi9cblxuICAgICAgICBwYWRkaW5nLXRvcDogNXJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIC50ZXh0LXdyYXBwZXIuXG4gICAgICAgICAqL1xuXG4gICAgICAgIC50ZXh0LXdyYXBwZXIge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFBhZGRpbmcuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDRyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBwLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHAge1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjU2MjVyZW07XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogLm1haW4tZ3JhcGhpYy5cbiAgICAgICAgICovXG5cbiAgICAgICAgLm1haW4tZ3JhcGhpYyB7XG5cbiAgICAgICAgICAgIG1heC13aWR0aDogODAlO1xuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogLmxpbmsuXG4gICAgICAgICAqL1xuXG4gICAgICAgIC5saW5rIHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIERpc3BsYXkuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogJjpob3Zlci5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEZvbnQgcmVsYXRlZC5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnJhbmQtdHdvO1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogLmdyYXBoaWMuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAuZ3JhcGhpYyB7XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIHBvbHlsaW5lLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICBwb2x5bGluZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogU3Ryb2tlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogJGJyYW5kLXR3byAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIC5saW5rLWNvbnRlbnRzLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIC5saW5rLWNvbnRlbnRzIHtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIERpc3BsYXkuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogRmxleC5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAuZ3JhcGhpYy5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIC5ncmFwaGljIHtcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogTWFyZ2luLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogU2l6aW5nLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogXG4gICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgIHBvbHlsaW5lIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiB3aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbn0iLCIvKipcbiAqIC5ob21lLXN0YXRzLXdyYXBwZXIuXG4gKi9cblxuLmhvbWUtc3RhdHMtd3JhcHBlciB7XG5cbiAgICAvKipcbiAgICAgKiBCYWNrZ3JvdW5kLlxuICAgICAqL1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLWZpdmU7XG5cbiAgICAvKipcbiAgICAgKiBPdmVyZmxvdy5cbiAgICAgKi9cbiAgICBcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24uXG4gICAgICovXG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvKipcbiAgICAgKiBaLWluZGV4LlxuICAgICAqL1xuXG4gICAgei1pbmRleDogNTtcblxuICAgIC8qKlxuICAgICAqIC5pbWFnZS1jb250YWluZXIuXG4gICAgICovXG5cbiAgICAuaW1hZ2UtY29udGFpbmVyIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogUG9zaXRpb24gcmVsYXRlZC5cbiAgICAgICAgICovXG5cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNpemluZy5cbiAgICAgICAgICovXG5cbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogNDMlO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBCYWNrZ3JvdW5kLlxuICAgICAgICAgKi9cblxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBpbmNsdWRlLlxuICAgICAgICAgKi9cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3aGlsc3QtZmx1aWQpIHtcblxuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIC5ob21lLXN0YXRzLWNvbnRhaW5lci5cbiAgICAgKi9cblxuICAgIC5ob21lLXN0YXRzLWNvbnRhaW5lciB7XG4gICBcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBhZGRpbmcuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNnJlbSArIDE0cmVtO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaW5jbHVkZS5cbiAgICAgICAgICovXG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkd2hpbHN0LWZsdWlkKSB7XG5cbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAzcmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDRyZW0gKyAxMnJlbTtcblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbnQgcmVsYXRlZC5cbiAgICAgICAgICovXG5cbiAgICAgICAgY29sb3I6IHdoaXRlO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiAuaGVhZGluZy5cbiAgICAgICAgICovXG4gICAgXG4gICAgICAgIC5oZWFkaW5nIHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNHJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogLnN0YXQtbGlzdC5cbiAgICAgICAgICovXG5cbiAgICAgICAgLnN0YXQtbGlzdCB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogUGFkZGluZy5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMi41cmVtO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGxpLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIGxpIHtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIE1hcmdpbi5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIHAubnVtYmVyLWhlYWRpbmcuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBwLm51bWJlci1oZWFkaW5nIHtcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMHJlbTtcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogTWFyZ2luLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjNyZW07XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBwLm51bWJlci5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIHAubnVtYmVyIHtcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDMuNnJlbTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0cmVtOyAgICAgICAgICAgICAgICAgICBcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHVwLXRvLWlwYWQtZXhjbHVzaXZlKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzLjZyZW07IFxuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIHNwYW4uc3VmZml4LlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgc3Bhbi5zdWZmaXgge1xuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBQYWRkaW5nLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxufSIsIi8qKlxuICogLm5hdmlnYXRpb24tZmx5b3V0LXdyYXBwZXIuXG4gKi9cblxuLm5hdmlnYXRpb24tZmx5b3V0LXdyYXBwZXIge1xuXG4gICAgLyoqXG4gICAgICogRGlzcGxheS5cbiAgICAgKi9cblxuICAgIG9wYWNpdHk6IDA7XG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKi9cblxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgLyoqXG4gICAgICogLmhpZGluZy5cbiAgICAgKi9cblxuICAgICYuaGlkaW5nIHtcblxuICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogJi5zaG93LlxuICAgICAqL1xuXG4gICAgJi5zaG93IHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQmFja2dyb3VuZC5cbiAgICAgICAgICovXG5cbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgjMjcyNDI0LCAwLjk1KTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogT3BhY2l0eS5cbiAgICAgICAgICovXG5cbiAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogUG9pbnRlciBldmVudHMuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIC5uYXZpZ2F0aW9uLWZseW91dC1jb250YWluZXIuXG4gICAgICAgICAqL1xuXG4gICAgICAgIC5uYXZpZ2F0aW9uLWZseW91dC1jb250YWluZXIge1xuXG4gICAgICAgICAgICByaWdodDogMDtcblxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAubG9nbyB7XG5cbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogLmxvZ28uXG4gICAgICovXG5cbiAgICAubG9nbyB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNpemluZy5cbiAgICAgICAgICovXG5cbiAgICAgICAgd2lkdGg6IDE1cmVtO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQb3NpdGlvbiByZWxhdGVkLlxuICAgICAgICAgKi9cblxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiAyNSU7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE9wYWNpdHkuXG4gICAgICAgICAqL1xuXG4gICAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRyYW5zaXRpb24uXG4gICAgICAgICAqL1xuXG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLW91dDtcblxuICAgICAgICAvKipcbiAgICAgICAgICogVHJhbnNmb3JtLlxuICAgICAgICAgKi9cblxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHVwLXRvLWlwYWQtZXhjbHVzaXZlKSB7XG5cbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24uXG4gICAgICovXG5cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwOyAgIFxuXG4gICAgLyoqXG4gICAgICogU2l6aW5nLlxuICAgICAqL1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDB2aDtcblxuICAgIC8qKlxuICAgICAqIEJhY2tncm91bmQuXG4gICAgICovXG5cbiAgICBiYWNrZ3JvdW5kOiByZ2JhKCMyNzI0MjQsIDApO1xuXG4gICAgLyoqXG4gICAgICogXG4gICAgICovXG5cbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3MgZWFzZS1vdXQ7XG5cbiAgICAvKipcbiAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICovXG5cbiAgICBjb2xvcjogd2hpdGU7XG5cbiAgICAvKipcbiAgICAgKiBaLWluZGV4LlxuICAgICAqL1xuXG4gICAgei1pbmRleDogMzU7XG5cbiAgICAvKipcbiAgICAgKiAuY2xvc2UtYnV0dG9uLlxuICAgICAqL1xuXG4gICAgLmNsb3NlLWJ1dHRvbiB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEJhY2tncm91bmQuXG4gICAgICAgICAqL1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1vbmU7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIERpc3BsYXkuXG4gICAgICAgICAqL1xuXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQb3NpdGlvbi5cbiAgICAgICAgICovXG5cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBaLUluZGV4LlxuICAgICAgICAgKi9cblxuICAgICAgICB6LWluZGV4OiAxMDtcblxuICAgICAgICAvKipcbiAgICAgICAgICogU2l6aW5nLlxuICAgICAgICAgKi9cblxuICAgICAgICB3aWR0aDogNnJlbTtcbiAgICAgICAgaGVpZ2h0OiA2cmVtO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaW5jbHVkZS5cbiAgICAgICAgICovXG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdXAtdG8taXBhZC1leGNsdXNpdmUpIHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBTaXppbmcuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgd2lkdGg6IDNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiAmOmhvdmVyLlxuICAgICAgICAgKi9cblxuICAgICAgICAmOmhvdmVyIHtcblxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLXR3bztcblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIC5jbG9zZS1pY29uLlxuICAgICAgICAgKi9cblxuICAgICAgICAuY2xvc2UtaWNvbiB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogU2l6aW5nLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHdpZHRoOiAxLjVyZW07XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogUG9zaXRpb24uXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVHJhbnNmb3JtLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIC5uYXZpZ2F0aW9uLWZseW91dC1jb250YWluZXIuXG4gICAgICovXG5cbiAgICAubmF2aWdhdGlvbi1mbHlvdXQtY29udGFpbmVyIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQmFja2dyb3VuZC5cbiAgICAgICAgICovXG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLW9uZTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogUG9zaXRpb24uXG4gICAgICAgICAqL1xuXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogLTEwMCU7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFxuICAgICAgICAgKi9cblxuICAgICAgICB0cmFuc2l0aW9uOiByaWdodCAwLjRzIGVhc2Utb3V0O1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBaLUluZGV4LlxuICAgICAgICAgKi9cblxuICAgICAgICB6LWluZGV4OiA5O1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTaXppbmcuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHVwLXRvLWlwYWQtZXhjbHVzaXZlKSB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogUG9zaXRpb24gcmVsYXRlZC5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICB0b3A6IDAlO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFNpemluZy5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIC5tZW51LXByaW1hcnktbWVudS1jb250YWluZXIuXG4gICAgICAgICAqL1xuXG4gICAgICAgIC5tZW51LXByaW1hcnktbWVudS1jb250YWluZXIge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFBvc2l0aW9uIHJlbGF0ZWQuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBsZWZ0OiAzcmVtO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBpbmNsdWRlLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWluLXdpZHRoIDExNTBweCkge1xuXG4gICAgICAgICAgICAgICAgbGVmdDogNXJlbTtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBpbmNsdWRlLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHVwLXRvLWlwYWQtZXhjbHVzaXZlKSB7XG5cbiAgICAgICAgICAgICAgICBsZWZ0OiAycmVtO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVHJhbnNmb3JtLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiB1bC5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICB1bCB7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBsaS5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIGxpIHtcblxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiAmLmN1cnJlbnRfcGFnZV9pdGVtLCAmLmFjdGl2ZS5cbiAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgJi5jdXJyZW50X3BhZ2VfaXRlbSwgJi5hY3RpdmUge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnJhbmQtdHdvO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRicmFuZC10d287XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBhLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICBhIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDMuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiAmOmhvdmVyLiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnJhbmQtdHdvO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59IiwiIiwiLyoqXG4gKiAub3VycmVhY2gtaW5mby13cmFwcGVyLlxuICovXG5cbi5vdXJyZWFjaC1pbmZvLXdyYXBwZXIge1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24uXG4gICAgICovXG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvKipcbiAgICAgKiBaLWluZGV4LlxuICAgICAqL1xuXG4gICAgei1pbmRleDogNTtcblxuICAgIC8qKlxuICAgICAqIFBhZGRpbmcuXG4gICAgICovXG5cbiAgICBwYWRkaW5nLWJvdHRvbTogNnJlbTtcblxuICAgIC8qKlxuICAgICAqIEJhY2tncm91bmQuXG4gICAgICovXG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtb25lO1xuXG4gICAgLyoqXG4gICAgICogQGluY2x1ZGUuXG4gICAgICovXG5cbiAgICBAaW5jbHVkZSByYXpvci1lZGdlLXRvcC1hbmQtZmlsbC1pbihcbiAgICAgICAgJGJyYW5kLW9uZSxcbiAgICAgICAgMTAwJSxcbiAgICAgICAgMTJkZWcsXG4gICAgICAgIC0xOXJlbSxcbiAgICAgICAgNDAlXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIEBpbmNsdWRlLlxuICAgICAqL1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdXAtdG8taXBhZC1leGNsdXNpdmUpIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIHJhem9yLWVkZ2UtdG9wLWFuZC1maWxsLWluKFxuICAgICAgICAgICAgJGJyYW5kLW9uZSxcbiAgICAgICAgICAgIDEwMCUsXG4gICAgICAgICAgICAxMmRlZyxcbiAgICAgICAgICAgIC0xMXJlbSxcbiAgICAgICAgICAgIDQwJVxuICAgICAgICApO1xuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogLm91cnJlYWNoLWluZm8tY29udGFpbmVyLlxuICAgICAqL1xuXG4gICAgLm91cnJlYWNoLWluZm8tY29udGFpbmVyIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogUGFkZGluZy5cbiAgICAgICAgICovXG5cbiAgICAgICAgcGFkZGluZy1ib3R0b206IDE5cmVtO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaW5jbHVkZS5cbiAgICAgICAgICovXG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdXAtdG8taXBhZC1leGNsdXNpdmUpIHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBQYWRkaW5nLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxNXJlbTtcblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIC5yb3ctdGV4dC5cbiAgICAgICAgICovXG5cbiAgICAgICAgLnJvdy10ZXh0IHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBQYWRkaW5nLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNnJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDZyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBAaW5jbHVkZS5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR1cC10by1pcGFkLWV4Y2x1c2l2ZSkge1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogUGFkZGluZy5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogLmxpbmsuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgLmxpbmsge1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogRGlzcGxheS5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIE1hcmdpbi5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRicmFuZC1mb3VyO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqICY6aG92ZXIuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJyYW5kLXR3bztcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogaDIuaGVhZGluZy5cbiAgICAgICAgICovXG5cbiAgICAgICAgaDIuaGVhZGluZyB7XG5cbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAqL1xuXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogdWwuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHVsIHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBsaS5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBsaSB7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBEaXNwbGF5LlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqICY6bnRoLWNoaWxkKGV2ZW4pLlxuICAgICAgICAgICAgICAgICAqLyAgICAgICAgICAgICAgICBcblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcblxuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIC5yZWFkLW1vcmUtY29udGFpbmVyLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAucmVhZC1tb3JlLWNvbnRhaW5lciB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogUG9zaXRpb24uXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR1cC10by1pcGFkLWV4Y2x1c2l2ZSkge1xuXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogLmltYWdlLWNvbnRhaW5lci5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIC5pbWFnZS1jb250YWluZXIge1xuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBTaXppbmcuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDI0cmVtO1xuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBAaW5jbHVkZS5cbiAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdXAtdG8taXBhZC1leGNsdXNpdmUpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBTaXppbmcuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAgICAgbWluLWhlaWdodDogMjByZW07XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBGbGV4LlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiA1MCU7XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIEJhY2tncm91bmQuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogaW1nLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICBpbWcge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIC50ZXh0LWNvbnRhaW5lci5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIC50ZXh0LWNvbnRhaW5lciB7XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIFBvc2l0aW9uLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIEZvbnQgcmVsYXRlZC5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHVwLXRvLWlwYWQtZXhjbHVzaXZlKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogU2l6aW5nLlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwcmVtO1xuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogJi5zaG93LlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAmLnNob3cge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIC5kZXRhaWxzLWNvbnRhaW5lci5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAuZGV0YWlscy1jb250YWluZXIge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogVHJhbnNmb3JtLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogLnJlYWQtbW9yZS1jb250YWluZXIuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAgICAgLnJlYWQtbW9yZS1jb250YWluZXIge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogLnBsdXMuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGx1cyB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIERpc3BsYXkuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAubWludXMuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWludXMge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBEaXNwbGF5LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogRGlzcGxheS5cbiAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogT3ZlcmZsb3cuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBGbGV4LlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBCYWNrZ3JvdW5kLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogLmhlYWRpbmcuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgIC5oZWFkaW5nIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRicmFuZC10d287XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiAubWludXMuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgIC5taW51cyB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogRGlzcGxheS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogJjpob3Zlci5cbiAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBoMyB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJyYW5kLWZpdmU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiAucmVhZC1tb3JlLWNvbnRhaW5lci5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVhZC1tb3JlLWNvbnRhaW5lciB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIC5yZWFkLW1vcmUtY29udGFpbmVyLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAucmVhZC1tb3JlLWNvbnRhaW5lciB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogQmFja2dyb3VuZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtdHdvO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIFBvc2l0aW9uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogWi1pbmRleC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBAaW5jbHVkZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR1cC10by1pcGFkLWV4Y2x1c2l2ZSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogUG9zaXRpb24gcmVsYXRlZC4uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDAgIWltcG9ydGFudDtcblxuXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogUGFkZGluZy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogM3JlbTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiAuaW1hZ2UuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAgICAgLmltYWdlIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIFBvc2l0aW9uIHJlbGF0ZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogVHJhbnNmb3JtLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxLjJyZW07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgc3ZnIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbHlnb24sIHJlY3Qge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6IHdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiAuZGV0YWlscy1jb250YWluZXIuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgIC5kZXRhaWxzLWNvbnRhaW5lciB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogRGlzcGxheS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBQb3NpdGlvbiByZWxhdGVkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogU2l6aW5nLlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIEJhY2tncm91bmQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLXR3bztcblxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBUcmFuc2Zvcm0uXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIFRyYW5zaXRpb24uXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2Utb3V0O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIEZvbnQgcmVsYXRlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogdWwuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAgICAgdWwge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogUG9zaXRpb24gcmVsYXRlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA0cmVtO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogVHJhbnNmb3JtLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBkaXNjICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBsaS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogRmxleC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogTWFyZ2luLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAmOmxhc3QtY2hpbGQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbn0iLCIiLCIvKipcbiAqIC5vdXJyZWFjaC1tYXAtd3JhcHBlci5cbiAqL1xuXG4ub3VycmVhY2gtbWFwLXdyYXBwZXIge1xuXG4gICAgLyoqXG4gICAgICogQmFja2dyb3VuZC5cbiAgICAgKi9cblxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLXNpeDtcblxuICAgIC8qKlxuICAgICAqIC5vdXJyZWFjaC1tYXAtY29udGFpbmVyLlxuICAgICAqL1xuXG4gICAgLm91cnJlYWNoLW1hcC1jb250YWluZXIge1xuICAgICAgICBcbiAgICAgICAgLyoqXG4gICAgICAgICAqIC5oZWFkaW5nLlxuICAgICAgICAgKi9cblxuICAgICAgICAuaGVhZGluZyB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogTWFyZ2luLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbi8qKlxuICogLm1hcC13cmFwcGVyLlxuICovXG5cbi5tYXAtd3JhcHBlciB7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbi5cbiAgICAgKi9cblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8qKlxuICAgICAqIEJhY2tncm91bmQuXG4gICAgICovXG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtc2l4O1xuXG4gICAgLyoqXG4gICAgICogUGFkZGluZy5cbiAgICAgKi9cblxuICAgIHBhZGRpbmctYm90dG9tOiAxOHJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDVyZW07XG4gICAgcGFkZGluZy1yaWdodDogNXJlbTtcblxuICAgIC8qKlxuICAgICAqIEBpbmNsdWRlLlxuICAgICAqL1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdXAtdG8taXBhZC1leGNsdXNpdmUpIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogUGFkZGluZy5cbiAgICAgICAgICovXG5cbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEycmVtO1xuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9yY2UgYWxsIGNvbG9ycyBncmV5LlxuICAgICAqL1xuXG4gICAgc3ZnIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogcGF0aC5cbiAgICAgICAgICovXG5cbiAgICAgICAgcGF0aCB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRmlsbC5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBmaWxsOiAjOWU5ZTllO1xuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFxuICAgICAqL1xuXG4gICAgLmxhYmVsIHtcbiAgICAgICAgXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBPcGFjaXR5LlxuICAgICAgICAgKi9cblxuICAgICAgICBvcGFjaXR5OiAwO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBCYWNrZ3JvdW5kLlxuICAgICAgICAgKi9cblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgICAgICBcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbnQgcmVsYXRlZC5cbiAgICAgICAgICovXG5cbiAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICAgIGNvbG9yOiAjMjcyNDI0O1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQYWRkaW5nLlxuICAgICAgICAgKi9cblxuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbSAwLjVyZW0gMXJlbTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogUG9zaXRpb24gcmVsYXRlZC5cbiAgICAgICAgICovXG5cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRyYW5zZm9ybS5cbiAgICAgICAgICovXG5cbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRyYW5zaXRpb24uXG4gICAgICAgICAqL1xuXG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogUG9pbnRlciBldmVudHMuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBCb3ggc2hhZG93LlxuICAgICAgICAgKi9cblxuICAgICAgICBib3gtc2hhZG93OiA0cHggNHB4IHJnYmEoMzksIDM2LCAzNiwgMC4xKTtcblxuICAgIH1cblxufVxuXG4iLCIvKiogXG4gKiAucGFnZS1ib2R5LXdyYXBwZXIuXG4gKi9cblxuLnBhZ2UtYm9keS13cmFwcGVyIHtcblxuICAgIC8qKlxuICAgICAqIC5wYWdlLWJvZHktY29udGFpbmVyLlxuICAgICAqL1xuXG4gICAgLnBhZ2UtYm9keS1jb250YWluZXIge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQYWRkaW5nLlxuICAgICAgICAgKi9cblxuICAgICAgICBwYWRkaW5nLXRvcDogNnJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDI0cmVtO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAqL1xuXG4gICAgICAgIGNvbG9yOiAkYnJhbmQtdHdvO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBwLlxuICAgICAgICAgKi9cblxuICAgICAgICBwIHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBhLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIGEge1xuXG4gICAgICAgICAgICAgICAgY29sb3I6ICRicmFuZC10d287XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAmOmhvdmVyLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIEZvbnQgcmVsYXRlZC5cbiAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRicmFuZC1vbmU7XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGgxLlxuICAgICAgICAgKi9cblxuICAgICAgICBoMSB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogUGFkZGluZy5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGgyLlxuICAgICAgICAgKi9cblxuICAgICAgICBoMiB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIGNvbG9yOiAkYnJhbmQtdHdvO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuMnJlbTtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBNYXJnaW4uXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGgzLlxuICAgICAgICAgKi9cblxuICAgICAgICBoMyB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIGNvbG9yOiAkYnJhbmQtdHdvO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogTWFyZ2luLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgfVxuXG4gICAgICAgIGg0IHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgY29sb3I6ICRicmFuZC10d287XG4gICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBNYXJnaW4uXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHVsLlxuICAgICAgICAgKi9cblxuICAgICAgICB1bCB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogTWFyZ2luLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGxpLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIGxpIHtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIExpc3Qgc3R5bGUuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBkaXNjO1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogTWFyZ2luLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS43cmVtO1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59IiwiIiwiLyoqXG4gKiAucHJvZHVjdHMtaW50cm8td3JhcHBlci5cbiAqL1xuXG4ucHJvZHVjdHMtaW50cm8td3JhcHBlciB7XG5cbiAgICAvKipcbiAgICAgKiAucHJvZHVjdHMtaW50cm8tY29udGFpbmVyLlxuICAgICAqL1xuXG4gICAgLnByb2R1Y3RzLWludHJvLWNvbnRhaW5lciB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBhZGRpbmcuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxN3JlbTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHVwLXRvLWlwYWQtZXhjbHVzaXZlKSB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogUGFkZGluZy5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTJyZW07XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59IiwiLyoqXG4gKiAucHJvZHVjdHMtcHJvZHVjdHMtd3JhcHBlci5cbiAqL1xuXG4ucHJvZHVjdHMtcHJvZHVjdHMtd3JhcHBlciB7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbi5cbiAgICAgKi9cblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8qKlxuICAgICAqIFotaW5kZXguXG4gICAgICovXG5cbiAgICB6LWluZGV4OiA1O1xuXG4gICAgLyoqXG4gICAgICogQGluY2x1ZGUuXG4gICAgICovXG5cbiAgICBAaW5jbHVkZSByYXpvci1lZGdlLXRvcC1hbmQtZmlsbC1pbihcbiAgICAgICAgJGJyYW5kLW9uZSxcbiAgICAgICAgMTAwJSxcbiAgICAgICAgMTJkZWcsXG4gICAgICAgIC0xN3JlbSxcbiAgICAgICAgNDAlXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIEBpbmNsdWRlLlxuICAgICAqL1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdXAtdG8taXBhZC1leGNsdXNpdmUpIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIHJhem9yLWVkZ2UtdG9wLWFuZC1maWxsLWluKFxuICAgICAgICAgICAgJGJyYW5kLW9uZSxcbiAgICAgICAgICAgIDEwMCUsXG4gICAgICAgICAgICAxMmRlZyxcbiAgICAgICAgICAgIC0xMXJlbSxcbiAgICAgICAgICAgIDQwJVxuICAgICAgICApO1xuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFyZ2luLlxuICAgICAqL1xuXG4gICAgbWFyZ2luLXRvcDogLTFyZW07XG5cbiAgICAvKipcbiAgICAgKiBQYWRkaW5nLlxuICAgICAqL1xuXG4gICAgcGFkZGluZy1ib3R0b206IDIycmVtO1xuXG4gICAgLyoqXG4gICAgICogQGluY2x1ZGUuXG4gICAgICovXG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR1cC10by1pcGFkLWV4Y2x1c2l2ZSkge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQYWRkaW5nLlxuICAgICAgICAgKi9cblxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTZyZW07XG5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAucHJvZHVjdHMtcHJvZHVjdHMtY29udGFpbmVyLlxuICAgICAqL1xuXG4gICAgLnByb2R1Y3RzLXByb2R1Y3RzLWNvbnRhaW5lciB7XG4gICAgICAgIFxuICAgICAgICAvKipcbiAgICAgICAgICogLnJvdy1wcm9kdWN0LWdyb3Vwcy5cbiAgICAgICAgICovXG5cbiAgICAgICAgLnJvdy1wcm9kdWN0LWdyb3VwcyB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIGNvbG9yOiAkYnJhbmQtZm91cjtcblxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIC5yb3ctcHJvZHVjdHMuXG4gICAgICAgICAqL1xuXG4gICAgICAgIC5yb3ctcHJvZHVjdHMge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE1hcmdpbi5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAzLjVyZW07XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBoMi5cbiAgICAgICAgICovXG5cbiAgICAgICAgaDIge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE1hcmdpbi5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBpbmNsdWRlLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHVwLXRvLWlwYWQtZXhjbHVzaXZlKSB7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiAucHJvZHVjdHMtbGlzdC5cbiAgICAgICAgICovXG5cbiAgICAgICAgLnByb2R1Y3RzLWxpc3Qge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE1hcmdpbi5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE92ZXJmbG93LlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogbGkuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgbGkge1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogRGlzcGxheS5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBPdmVyZmxvdy5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBNYXJnaW4uXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIC5wcm9kdWN0LXdyYXBwZXIuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgLnByb2R1Y3Qtd3JhcHBlciB7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBEaXNwbGF5LlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFNpemluZy5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAgICAgICAgICAgICAgIFxuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR1cC10by1pcGFkLWluY2x1c2l2ZSkge1xuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBGbGV4LlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogLmltYWdlLWNvbnRhaW5lci5cbiAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgLmltYWdlLWNvbnRhaW5lciB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogU2l6aW5nLlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnJlbTtcblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIC50ZXh0LWNvbnRhaW5lci5cbiAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgLnRleHQtY29udGFpbmVyIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBTaXppbmcuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogUGFkZGluZy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiA0cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDRyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAmOmhvdmVyLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIC50ZXh0LWNvbnRhaW5lci5cbiAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgLnRleHQtY29udGFpbmVyIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBCYWNrZ3JvdW5kLlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC10d287XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnJhbmQtZm91cjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAuaW1hZ2UtY29udGFpbmVyLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIC5pbWFnZS1jb250YWluZXIge1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogQmFja2dyb3VuZC5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogU2l6aW5nLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIGltZy5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIGltZyB7XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIERpc3BsYXkuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAudGV4dC1jb250YWluZXIuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgLnRleHQtY29udGFpbmVyIHtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIERpc3BsYXkuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogRmxleC5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBQYWRkaW5nLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAzcmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiA4cmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA4cmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBQb3NpdGlvbi5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFNpemluZy5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBjb2xvcjogJGJyYW5kLXR3bztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogQmFja2dyb3VuZC5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1mb3VyO1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogLmhlYWRpbmcuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgLmhlYWRpbmcge1xuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBGb250IHJlbGF0ZWQuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIuN3JlbTtcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHVwLXRvLWlwYWQtZXhjbHVzaXZlKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogRm9udCByZWxhdGVkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogLmRldGFpbHMtY29udGFpbmVyLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgLmRldGFpbHMtY29udGFpbmVyIHtcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogRGlzcGxheS5cbiAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIC5yZWFkLW1vcmUtY29udGFpbmVyLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIC5yZWFkLW1vcmUtY29udGFpbmVyIHtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEJhY2tncm91bmQuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtdHdvO1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogUG9zaXRpb24uXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogWi1pbmRleC5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIHotaW5kZXg6IDEwO1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogQGluY2x1ZGUuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR1cC10by1pcGFkLWV4Y2x1c2l2ZSkge1xuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBQb3NpdGlvbiByZWxhdGVkLi5cbiAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMCAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFBhZGRpbmcuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICB3aWR0aDogM3JlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAuaW1hZ2UuXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAuaW1hZ2Uge1xuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBQb3NpdGlvbiByZWxhdGVkLlxuICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIFRyYW5zZm9ybS5cbiAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIFxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEuMnJlbTtcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIHN2Zy5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIHN2ZyB7XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIHBvbHlnb24sIHJlY3QuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgIHBvbHlnb24sIHJlY3Qge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIEZpbGwuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59IiwiIiwiLyoqXG4gKiAuc2hpcHBpbmctaW5mb2Jsb2NrLXdyYXBwZXIuXG4gKi9cblxuLnNoaXBwaW5nLWluZm9ibG9jay13cmFwcGVyIHtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uLlxuICAgICAqL1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLyoqXG4gICAgICogWi1pbmRleC5cbiAgICAgKi9cblxuICAgIHotaW5kZXg6IDU7XG5cbiAgICAvKipcbiAgICAgKiBCYWNrZ3JvdW5kLlxuICAgICAqL1xuXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgICAvKipcbiAgICAgKiBQYWRkaW5nLlxuICAgICAqL1xuXG4gICAgcGFkZGluZy1ib3R0b206IDM4cmVtO1xuICAgIHBhZGRpbmctdG9wOiA2cmVtO1xuXG4gICAgLyoqXG4gICAgICogQGluY2x1ZGUuXG4gICAgICovXG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR3aGlsc3QtZmx1aWQpIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQmFja2dyb3VuZC5cbiAgICAgICAgICovXG5cbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtb25lO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQYWRkaW5nLlxuICAgICAgICAgKi9cblxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTZyZW07XG5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAucmF6b3ItZWRnZS5cbiAgICAgKi9cblxuICAgIC5yYXpvci1lZGdlIHtcblxuICAgICAgICBAaW5jbHVkZSByYXpvci1lZGdlLXRvcC1mb3ItaW1hZ2UtbWFza2luZyhcbiAgICAgICAgICAgICRicmFuZC1zaXhcbiAgICAgICAgKTtcblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIC5zaGlwcGluZy1pbmZvYmxvY2stY29udGFpbmVyLlxuICAgICAqL1xuXG4gICAgLnNoaXBwaW5nLWluZm9ibG9jay1jb250YWluZXIge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQb3NpdGlvbi5cbiAgICAgICAgICovXG5cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBNYXJnaW4uXG4gICAgICAgICAqL1xuXG4gICAgICAgIG1hcmdpbi10b3A6IC02cmVtO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBaLWluZGV4LlxuICAgICAgICAgKi9cblxuICAgICAgICB6LWluZGV4OiA1O1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaW5jbHVkZS5cbiAgICAgICAgICovXG5cbiAgICAgICAgQGluY2x1ZGUgcmF6b3ItZWRnZS10b3AtYW5kLWZpbGwtaW4oXG4gICAgICAgICAgICAkYnJhbmQtb25lLFxuICAgICAgICAgICAgNTAlLFxuICAgICAgICAgICAgMTJkZWcsXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICAgNTAlXG4gICAgICAgICk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbnQgcmVsYXRlZC5cbiAgICAgICAgICovXG5cbiAgICAgICAgY29sb3I6IHdoaXRlO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQYWRkaW5nLlxuICAgICAgICAgKi9cblxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDZyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDZyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICAgICAgXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaW5jbHVkZS5cbiAgICAgICAgICovXG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdXAtdG8taXBhZC1leGNsdXNpdmUpIHtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBQYWRkaW5nLlxuICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiAuaGVhZGluZyxcbiAgICAgICAgICovXG5cbiAgICAgICAgLmhlYWRpbmcge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE1hcmdpbi5cbiAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0cmVtO1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFBhZGRpbmcuXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwcmVtO1xuXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogdWwuXG4gICAgICAgICAqL1xuXG4gICAgICAgIHVsIHtcblxuICAgICAgICAgICAgbGkge1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogTWFyZ2luLlxuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIC5saXN0LWl0ZW0tY29udGVudC5cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIC5saXN0LWl0ZW0tY29udGVudCB7XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIC5jb2wtaW1hZ2UuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgIC5jb2wtaW1hZ2Uge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIC5pbWFnZS1jb250YWluZXIuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAgICAgLmltYWdlLWNvbnRhaW5lciB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBTaXppbmcuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cmVtO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogQmFja2dyb3VuZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaW1nLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIC5jb2wtdGV4dC5cbiAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgLmNvbC10ZXh0IHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBEaXNwbGF5LlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogUGFkZGluZy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIEBpbmNsdWRlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHVwLXRvLWlwYWQtZXhjbHVzaXZlKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBQYWRkaW5nLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBGbGV4LlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogcC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBwIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59IiwiLyoqXG4gKiAuc2hpcHBpbmctaW50cm8td3JhcHBlci5cbiAqL1xuXG4uc2hpcHBpbmctaW50cm8td3JhcHBlciB7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbi5cbiAgICAgKi9cblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8qKlxuICAgICAqIC5zaGlwcGluZy1pbnRyby1jb250YWluZXIuXG4gICAgICovXG5cbiAgICAuc2hpcHBpbmctaW50cm8tY29udGFpbmVyIHtcblxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcblxuICAgIH1cblxufSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQW9CV0E7O0dBRUc7QUNiSDs7O0VBR0U7QUFFRixBQUFBLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU07QUFDN0MsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxHQUFHO0FBQzFDLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVB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 */
