/**
 * Settings.
*/
/**
 * Settings.
 */
/**
 * Font family map.
 */
/**
 * Font size map.
 */
/**
 * Line height map.
 */
/**
 * Font size mobile map.
 */
/**
 * Line height mobile map.
 */
/**
 * Color Map (https://convertacolor.com/).
 */
/**
 * Colors Variables.
 */
/**
 * Grid.
 */
/**
 * Assets.
 */
/**
 * Body.
 */
/**
 * Other.
 */
*::selection {
  background-color: #c4d31d;
  color: white; }

/**
 * Responsive.
 */
/**
 * Vendor.
*/
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0; }

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block; }

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */ }

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */ }

/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent; }

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  text-decoration: underline dotted;
  /* 2 */ }

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder; }

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */ }

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%; }

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none; }

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */ }

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible; }

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none; }

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button; }

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0; }

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText; }

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em; }

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */ }

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline; }

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto; }

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */ }

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */ }

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block; }

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item; }

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none; }

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none; }

/*
 *  Owl Carousel - Core
 */
.owl-carousel {
  display: none;
  width: 100%;
  -webkit-tap-highlight-color: transparent;
  /* position relative and z-index fix webkit rendering fonts issue */
  position: relative;
  z-index: 1; }
  .owl-carousel .owl-stage {
    position: relative;
    -ms-touch-action: pan-Y;
    touch-action: manipulation;
    -moz-backface-visibility: hidden;
    /* fix firefox animation glitch */ }
  .owl-carousel .owl-stage:after {
    content: ".";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height: 0; }
  .owl-carousel .owl-stage-outer {
    position: relative;
    overflow: hidden;
    /* fix for flashing background */
    -webkit-transform: translate3d(0px, 0px, 0px); }
  .owl-carousel .owl-wrapper,
  .owl-carousel .owl-item {
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -ms-backface-visibility: hidden;
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0); }
  .owl-carousel .owl-item {
    position: relative;
    min-height: 1px;
    float: left;
    -webkit-backface-visibility: hidden;
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none; }
  .owl-carousel .owl-item img {
    display: block;
    width: 100%; }
  .owl-carousel .owl-nav.disabled,
  .owl-carousel .owl-dots.disabled {
    display: none; }
  .owl-carousel .owl-nav .owl-prev,
  .owl-carousel .owl-nav .owl-next,
  .owl-carousel .owl-dot {
    cursor: pointer;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; }
  .owl-carousel .owl-nav button.owl-prev,
  .owl-carousel .owl-nav button.owl-next,
  .owl-carousel button.owl-dot {
    background: none;
    color: inherit;
    border: none;
    padding: 0 !important;
    font: inherit; }
  .owl-carousel.owl-loaded {
    display: block; }
  .owl-carousel.owl-loading {
    opacity: 0;
    display: block; }
  .owl-carousel.owl-hidden {
    opacity: 0; }
  .owl-carousel.owl-refresh .owl-item {
    visibility: hidden; }
  .owl-carousel.owl-drag .owl-item {
    touch-action: pan-y;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; }
  .owl-carousel.owl-grab {
    cursor: move;
    cursor: grab; }
  .owl-carousel.owl-rtl {
    direction: rtl; }
  .owl-carousel.owl-rtl .owl-item {
    float: right; }

/* No Js */
.no-js .owl-carousel {
  display: block; }

/*
 *  Owl Carousel - Animate Plugin
 */
.owl-carousel .animated {
  animation-duration: 1000ms;
  animation-fill-mode: both; }

.owl-carousel .owl-animated-in {
  z-index: 0; }

.owl-carousel .owl-animated-out {
  z-index: 1; }

.owl-carousel .fadeOut {
  animation-name: fadeOut; }

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

/*
 * 	Owl Carousel - Auto Height Plugin
 */
.owl-height {
  transition: height 500ms ease-in-out; }

/*
 * 	Owl Carousel - Lazy Load Plugin
 */
.owl-carousel .owl-item {
  /**
			This is introduced due to a bug in IE11 where lazy loading combined with autoheight plugin causes a wrong
			calculation of the height of the owl-item that breaks page layouts
		 */ }
  .owl-carousel .owl-item .owl-lazy {
    opacity: 0;
    transition: opacity 400ms ease; }
  .owl-carousel .owl-item .owl-lazy[src^=""], .owl-carousel .owl-item .owl-lazy:not([src]) {
    max-height: 0; }
  .owl-carousel .owl-item img.owl-lazy {
    transform-style: preserve-3d; }

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

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

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

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

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

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

/**
* Tools.
*/
/**
 * Tools.
 */
/**
 * Unicode.
 *
 * Preserve escaped unicode string.
 * @param {String} $string - An unicode string.
 * @return {String} A preserved escaped unicode string
 */
/**
 * REM.
 *
 * Convert pixel units to REM units.
 * @param {Number} $pixels - Pixel value.
 * @return {*} - A converted `rem` unit.
 */
/**
 * Column.
 *
 * Calculate given column width.
 * @param {Number} $column - The amount of columns to span.
 * @param {Number} $columns - The amount of columns that can be spanned.
 * @return {String} - Percentage value.
 */
/**
 * Color.
 *
 * Get a color value from two levels deep in the `$color` map.
 * @param {$string} $key - Key of the color to get from the map.
 * @param {Number} $value - Value of the key to get from the map.
 * @return {*} A HSLA color value.
 */
/* Magnific Popup CSS */
.mfp-bg {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1042;
  overflow: hidden;
  position: fixed;
  background: #0b0b0b;
  opacity: 0.8; }

.mfp-wrap {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1043;
  position: fixed;
  outline: none !important;
  -webkit-backface-visibility: hidden; }

.mfp-container {
  text-align: center;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  padding: 0 8px;
  box-sizing: border-box; }

.mfp-container:before {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle; }

.mfp-align-top .mfp-container:before {
  display: none; }

.mfp-content {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  margin: 0 auto;
  text-align: left;
  z-index: 1045; }

.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
  width: 100%;
  cursor: auto; }

.mfp-ajax-cur {
  cursor: progress; }

.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
  cursor: -moz-zoom-out;
  cursor: -webkit-zoom-out;
  cursor: zoom-out; }

.mfp-zoom {
  cursor: pointer;
  cursor: -webkit-zoom-in;
  cursor: -moz-zoom-in;
  cursor: zoom-in; }

.mfp-auto-cursor .mfp-content {
  cursor: auto; }

.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none; }

.mfp-loading.mfp-figure {
  display: none; }

.mfp-hide {
  display: none !important; }

.mfp-preloader {
  color: #CCC;
  position: absolute;
  top: 50%;
  width: auto;
  text-align: center;
  margin-top: -0.8em;
  left: 8px;
  right: 8px;
  z-index: 1044; }

.mfp-preloader a {
  color: #CCC; }

.mfp-preloader a:hover {
  color: #FFF; }

.mfp-s-ready .mfp-preloader {
  display: none; }

.mfp-s-error .mfp-content {
  display: none; }

button.mfp-close,
button.mfp-arrow {
  overflow: visible;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
  display: block;
  outline: none;
  padding: 0;
  z-index: 1046;
  box-shadow: none;
  touch-action: manipulation; }

button::-moz-focus-inner {
  padding: 0;
  border: 0; }

.mfp-close {
  width: 44px;
  height: 44px;
  line-height: 44px;
  position: absolute;
  right: 0;
  top: 0;
  text-decoration: none;
  text-align: center;
  opacity: 0.65;
  padding: 0 0 18px 10px;
  color: #FFF;
  font-style: normal;
  font-size: 28px;
  font-family: Arial, Baskerville, monospace; }

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

.mfp-close:active {
  top: 1px; }

.mfp-close-btn-in .mfp-close {
  color: #333; }

.mfp-image-holder .mfp-close,
.mfp-iframe-holder .mfp-close {
  color: #FFF;
  right: -6px;
  text-align: right;
  padding-right: 6px;
  width: 100%; }

.mfp-counter {
  position: absolute;
  top: 0;
  right: 0;
  color: #CCC;
  font-size: 12px;
  line-height: 18px;
  white-space: nowrap; }

.mfp-arrow {
  position: absolute;
  opacity: 0.65;
  margin: 0;
  top: 50%;
  margin-top: -55px;
  padding: 0;
  width: 90px;
  height: 110px;
  -webkit-tap-highlight-color: transparent; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.mfp-figure figure {
  margin: 0; }

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

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

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

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

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

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

/**
 * Container
 * 
 * Center aligns element with given maximum width, padding, and margins top and bottom.
 * @param {String} $width - Pixel unit value.
 * @param {String} $gap - Pixel unit value.
 * @example @include container(1024px, 20px);
 */
/**
 * Section
 *
 * Add top and bottom spacing to element using paddings.
 * @param {String} $top - Pixel unit value.
 * @param {String} $bottom - Pixel unit value.
 * @example @include section(100px, 100px);
 */
/**
 * Font.
 *
 * Adds `rem` unit based font size property, a fallback `px` unit based font size property, and a `em` unit based line height property to any rule.
 * @param {String} $font-size - Pixel unit value.
 * @param {String} $line-height - Pixel unit value.
 * @example @include font-size(16px, 24px);
 */
/**
 * Text.
 *
 * Shorthand for the font mixin, runs the font mixin based on a common demeanour existing both in the `$font-size` and the `$line-height` maps.
 * @param {string} $value - String
 * @example @include text('p');
 */
/**
 * Font Awesome.
 *
 * Add Font Awesome icons as psuedo elements by using their unicode.
 * @param {String} $content - Unicode string.
 * @param {String} $family - Font Awesome font family string.
 * @example @include fontawesome('f100', 'Light');
 */
/**
 * Media.
 *
 * Media queries according to "The 100% Correct Way To Do CSS Breakpoints" (https://medium.freecodecamp.com/the-100-correct-way-to-do-css-breakpoints-88d6a5ba1862).
 * @param {String} $breakpoint - Breakpoint pixel unit value.
 * @example @include media('phone') {}
 */
/**
* General.
*/
/**
 * Remove margin and padding from every selector including their
 * psuedo selectors.
 *
 * 1. More sensible default box sizing.
 *    (css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice).
 */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: inherit;
  /* 1 */ }

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

/**
 * Set minimal height of the body to maximum viewport height to
 * match the document's height.
 *
 * 1. Firefox 25+.
 * 2. Chrome 5+.
 */
body {
  font-size: 18px;
  font-size: calc(($pixels / 10px) * 1rem);
  line-height: calc(($line-height / $font-size) * 1em);
  min-height: 100vh;
  background-color: white;
  color: #203265;
  font-family: "Yantramanav";
  font-weight: 400;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  /* 1 */
  -webkit-font-smoothing: antialiased;
  /* 2 */ }

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

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

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

figure {
  margin: 0; }

h1,
h2,
h3,
.voucher-redeem__intro-title,
.order-confirmation__title,
h4,
h5,
h6 {
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: inherit; }

hr {
  margin: 0;
  padding: 0; }

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

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

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

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

p {
  margin: 0; }

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

strong {
  font-weight: 700; }

/**
 * Objects.
*/

.button,
.frame-type-felogin_login form input[type=submit],
.order__form-submit,
.order-confirmation__actions button {
  font-size: 22px;
  font-size: calc(($pixels / 10px) * 1rem);
  line-height: calc(($line-height / $font-size) * 1em);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  padding: 14px 20px;
  border-radius: 4px;
  text-decoration: none;
  transition: all 350ms ease-in-out;
  cursor: pointer;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 12px;
  width: fit-content; }
  @media only screen and (max-width: 899px) {
    
    .button,
    .frame-type-felogin_login form input[type=submit],
    .order__form-submit,
    .order-confirmation__actions button {
      font-size: 18px;
      line-height: 24px; } }
  
  .button svg,
  .frame-type-felogin_login form input[type=submit] svg,
  .order__form-submit svg,
  .order-confirmation__actions button svg {
    width: 16px;
    height: 16px;
    transition: all 350ms ease-in-out; }
  
  .button.has-svg-right svg,
  .frame-type-felogin_login form input.has-svg-right[type=submit] svg,
  .has-svg-right.order__form-submit svg,
  .order-confirmation__actions button.has-svg-right svg {
    margin-left: 14px; }
  
  .button.has-svg-left svg,
  .frame-type-felogin_login form input.has-svg-left[type=submit] svg,
  .has-svg-left.order__form-submit svg,
  .order-confirmation__actions button.has-svg-left svg {
    margin-right: 14px; }

/**
 * Button (primary).
 */

.button--primary,
.frame-type-felogin_login form input[type=submit],
.order__form-submit,
.order-confirmation__actions button {
  background-color: #c4d31d;
  color: white;
  position: relative;
  overflow: hidden; }
  
  .button--primary svg,
  .frame-type-felogin_login form input[type=submit] svg,
  .order__form-submit svg,
  .order-confirmation__actions button svg {
    fill: white; }
  
  .button--primary:hover,
  .frame-type-felogin_login form input:hover[type=submit],
  .order__form-submit:hover,
  .order-confirmation__actions button:hover {
    color: rgba(255, 255, 255, 0.8);
    background-color: #a3b112; }
    
    .button--primary:hover svg,
    .frame-type-felogin_login form input:hover[type=submit] svg,
    .order__form-submit:hover svg,
    .order-confirmation__actions button:hover svg {
      fill: rgba(255, 255, 255, 0.8); }

/**
 * Button (secondary).
 */

.button--secondary {
  background-color: transparent;
  color: #203265;
  border: 2px solid #203265;
  padding: 15px 20px;
  font-weight: 600; }
  
  .button--secondary svg {
    fill: white; }
  
  .button--secondary:hover {
    color: white;
    background-color: #203265; }

.button--link {
  color: #203265;
  font-weight: 700;
  font-size: 18px;
  line-height: 23px;
  letter-spacing: 0.02em;
  text-decoration: underline;
  transition: all 350ms ease-in-out;
  display: flex;
  align-items: center; }
  @media only screen and (max-width: 899px) {
    .button--link {
      font-size: 16px;
      line-height: 20px; } }
  .button--link svg {
    transition: all 350ms ease-in-out;
    margin-left: 22px;
    height: 22px;
    width: 22px;
    fill: #203265; }
    @media only screen and (max-width: 899px) {
      .button--link svg {
        height: 14px;
        width: 14px;
        margin-left: 10px; } }
  .button--link:hover {
    opacity: 0.7; }
    .button--link:hover svg {
      margin-left: 32px; }

.button--back {
  border: 2px solid rgba(32, 50, 101, 0.1);
  padding: 15px 20px;
  width: fit-content !important;
  display: block;
  border-radius: 4px;
  text-decoration: none !important;
  font-size: 14px !important;
  line-height: 15px; }
  .button--back:hover {
    background-color: #203265;
    color: white; }

/**
 * Every conceivable HTML element within a `.cms-output` wrapper.
 *
 * 1. Exclude last childs.
 */
.cms-output p:not(:last-child) {
  margin-bottom: 1em; }

.cms-output h1, .cms-output h2, .cms-output h3, .cms-output .voucher-redeem__intro-title, .cms-output .order-confirmation__title, .cms-output h4, .cms-output h5 {
  font-weight: 700;
  text-align: center;
  margin-bottom: 25px;
  margin-top: 50px; }

.cms-output h2, .cms-output h3, .cms-output .voucher-redeem__intro-title, .cms-output .order-confirmation__title,
.cms-output h4 {
  margin-bottom: 30px; }

.cms-output h5 {
  margin-bottom: 20px; }

.cms-output .is-intro {
  font-size: 20px;
  font-size: calc(($pixels / 10px) * 1rem);
  line-height: calc(($line-height / $font-size) * 1em);
  font-weight: 700; }
  @media only screen and (max-width: 899px) {
    .cms-output .is-intro {
      font-size: 18px;
      font-size: calc(($pixels / 10px) * 1rem);
      line-height: calc(($line-height / $font-size) * 1em); } }

.cms-output img.aligncenter {
  display: block;
  margin: 0 auto; }

.cms-output img.alignright {
  display: block;
  margin: 0 0 0 auto; }

.cms-output table {
  word-break: break-word; }
  .cms-output table td {
    vertical-align: top; }

.cms-output ul,
.cms-output ol {
  list-style-type: square;
  margin-left: 20px;
  margin-bottom: 1em; }
  .cms-output ul li,
  .cms-output ol li {
    margin-bottom: 15px; }

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

.cms-output strong {
  font-weight: bold; }

.cms-output a {
  text-decoration: underline;
  color: #203265;
  transition: all 250ms ease; }
  .cms-output a:hover {
    color: rgba(196, 211, 29, 0.1); }

.cms-output blockquote {
  position: relative;
  padding: 40px 45px 20px 45px;
  color: #203265; }

.cms-output .wp-caption {
  margin-bottom: 20px; }
  .cms-output .wp-caption img {
    border-radius: 10px; }
  .cms-output .wp-caption .wp-caption-text {
    font-size: 16px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em);
    color: #203265;
    letter-spacing: 0.44px;
    margin-top: 10px; }

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

/**
 * The content constraint is a constraint for all the content within
 * the document. It can be manipulated by CSS or JavaScript without
 * influencing the body.
 */
.content-constraint {
  position: relative;
  min-height: 100vh;
  overflow: hidden; }

/**
 * Example of a flex based column grid layout in practice:
 *
 * <div class="row">
 *   <div class="col col-xs-6 col-sm-12"></div>
 *   <div class="col col-xs-6 col-sm-12"></div>
 * </div>
 *
 * This example will create a row with two columns each filling half the width
 * of the row on all media, but will convert to a full width column on the
 * small `-sm` breakpoint alias, which is mobile only. Refer to
 * `settings/_definitions.scss` for all breakpoint alias.
 */
/**
 * Flex object.
 *
 * Tip: Use flex on a column to make the box the same height as the column.
 */
.flex {
  display: flex; }

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

/**
 * Flex object with a column based layout system.
 */
.row {
  display: flex;
  flex: 0 1 auto;
  flex-flow: row wrap;
  margin: 0 -calc($grid-gap/2); }

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

/**
			 * Column 1 for the `xs` breakpoint.
			 */
.col-xs-1 {
  flex: 0 1 auto;
  width: calc($column  * 100% / $columns);
  padding: 0 calc($grid-gap/2); }

/**
				 * Offset 1 for the `xs` breakpoint.
				 */
.offset-xs-1 {
  margin-left: calc($column  * 100% / $columns); }

/**
			 * Column 2 for the `xs` breakpoint.
			 */
.col-xs-2 {
  flex: 0 1 auto;
  width: calc($column  * 100% / $columns);
  padding: 0 calc($grid-gap/2); }

/**
				 * Offset 2 for the `xs` breakpoint.
				 */
.offset-xs-2 {
  margin-left: calc($column  * 100% / $columns); }

/**
			 * Column 3 for the `xs` breakpoint.
			 */
.col-xs-3 {
  flex: 0 1 auto;
  width: calc($column  * 100% / $columns);
  padding: 0 calc($grid-gap/2); }

/**
				 * Offset 3 for the `xs` breakpoint.
				 */
.offset-xs-3 {
  margin-left: calc($column  * 100% / $columns); }

/**
			 * Column 4 for the `xs` breakpoint.
			 */
.col-xs-4 {
  flex: 0 1 auto;
  width: calc($column  * 100% / $columns);
  padding: 0 calc($grid-gap/2); }

/**
				 * Offset 4 for the `xs` breakpoint.
				 */
.offset-xs-4 {
  margin-left: calc($column  * 100% / $columns); }

/**
			 * Column 5 for the `xs` breakpoint.
			 */
.col-xs-5 {
  flex: 0 1 auto;
  width: calc($column  * 100% / $columns);
  padding: 0 calc($grid-gap/2); }

/**
				 * Offset 5 for the `xs` breakpoint.
				 */
.offset-xs-5 {
  margin-left: calc($column  * 100% / $columns); }

/**
			 * Column 6 for the `xs` breakpoint.
			 */
.col-xs-6 {
  flex: 0 1 auto;
  width: calc($column  * 100% / $columns);
  padding: 0 calc($grid-gap/2); }

/**
				 * Offset 6 for the `xs` breakpoint.
				 */
.offset-xs-6 {
  margin-left: calc($column  * 100% / $columns); }

/**
			 * Column 7 for the `xs` breakpoint.
			 */
.col-xs-7 {
  flex: 0 1 auto;
  width: calc($column  * 100% / $columns);
  padding: 0 calc($grid-gap/2); }

/**
				 * Offset 7 for the `xs` breakpoint.
				 */
.offset-xs-7 {
  margin-left: calc($column  * 100% / $columns); }

/**
			 * Column 8 for the `xs` breakpoint.
			 */
.col-xs-8 {
  flex: 0 1 auto;
  width: calc($column  * 100% / $columns);
  padding: 0 calc($grid-gap/2); }

/**
				 * Offset 8 for the `xs` breakpoint.
				 */
.offset-xs-8 {
  margin-left: calc($column  * 100% / $columns); }

/**
			 * Column 9 for the `xs` breakpoint.
			 */
.col-xs-9 {
  flex: 0 1 auto;
  width: calc($column  * 100% / $columns);
  padding: 0 calc($grid-gap/2); }

/**
				 * Offset 9 for the `xs` breakpoint.
				 */
.offset-xs-9 {
  margin-left: calc($column  * 100% / $columns); }

/**
			 * Column 10 for the `xs` breakpoint.
			 */
.col-xs-10 {
  flex: 0 1 auto;
  width: calc($column  * 100% / $columns);
  padding: 0 calc($grid-gap/2); }

/**
				 * Offset 10 for the `xs` breakpoint.
				 */
.offset-xs-10 {
  margin-left: calc($column  * 100% / $columns); }

/**
			 * Column 11 for the `xs` breakpoint.
			 */
.col-xs-11 {
  flex: 0 1 auto;
  width: calc($column  * 100% / $columns);
  padding: 0 calc($grid-gap/2); }

/**
				 * Offset 11 for the `xs` breakpoint.
				 */
.offset-xs-11 {
  margin-left: calc($column  * 100% / $columns); }

/**
			 * Column 12 for the `xs` breakpoint.
			 */
.col-xs-12 {
  flex: 0 1 auto;
  width: calc($column  * 100% / $columns);
  padding: 0 calc($grid-gap/2); }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@media only screen and (max-width: 599px) {
  /**
			 * Column 1 for the `sm` breakpoint.
			 */
  .col-sm-1 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 1 for the `sm` breakpoint.
				 */
  .offset-sm-1 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 2 for the `sm` breakpoint.
			 */
  .col-sm-2 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 2 for the `sm` breakpoint.
				 */
  .offset-sm-2 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 3 for the `sm` breakpoint.
			 */
  .col-sm-3 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 3 for the `sm` breakpoint.
				 */
  .offset-sm-3 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 4 for the `sm` breakpoint.
			 */
  .col-sm-4 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 4 for the `sm` breakpoint.
				 */
  .offset-sm-4 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 5 for the `sm` breakpoint.
			 */
  .col-sm-5 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 5 for the `sm` breakpoint.
				 */
  .offset-sm-5 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 6 for the `sm` breakpoint.
			 */
  .col-sm-6 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 6 for the `sm` breakpoint.
				 */
  .offset-sm-6 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 7 for the `sm` breakpoint.
			 */
  .col-sm-7 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 7 for the `sm` breakpoint.
				 */
  .offset-sm-7 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 8 for the `sm` breakpoint.
			 */
  .col-sm-8 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 8 for the `sm` breakpoint.
				 */
  .offset-sm-8 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 9 for the `sm` breakpoint.
			 */
  .col-sm-9 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 9 for the `sm` breakpoint.
				 */
  .offset-sm-9 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 10 for the `sm` breakpoint.
			 */
  .col-sm-10 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 10 for the `sm` breakpoint.
				 */
  .offset-sm-10 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 11 for the `sm` breakpoint.
			 */
  .col-sm-11 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 11 for the `sm` breakpoint.
				 */
  .offset-sm-11 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 12 for the `sm` breakpoint.
			 */
  .col-sm-12 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
			 * Align `stretch` for the sm breakpoint.
			 */
  .align-sm-stretch {
    align-items: stretch; }
  /**
			 * Align `center` for the sm breakpoint.
			 */
  .align-sm-center {
    align-items: center; }
  /**
			 * Align `flex-start` for the sm breakpoint.
			 */
  .align-sm-flex-start {
    align-items: flex-start; }
  /**
			 * Align `flex-end` for the sm breakpoint.
			 */
  .align-sm-flex-end {
    align-items: flex-end; }
  /**
			 * Align `baseline` for the sm breakpoint.
			 */
  .align-sm-baseline {
    align-items: baseline; }
  /**
			 * Justify `start` for the sm breakpoint.
			 */
  .justify-sm-start {
    justify-content: start; }
  /**
			 * Justify `center` for the sm breakpoint.
			 */
  .justify-sm-center {
    justify-content: center; }
  /**
			 * Justify `space-between` for the sm breakpoint.
			 */
  .justify-sm-space-between {
    justify-content: space-between; }
  /**
			 * Justify `space-around` for the sm breakpoint.
			 */
  .justify-sm-space-around {
    justify-content: space-around; }
  /**
			 * Justify `space-evenly` for the sm breakpoint.
			 */
  .justify-sm-space-evenly {
    justify-content: space-evenly; }
  /**
			 * Bleed left for the sm breakpoint.
			 */
  .bleed-sm-left {
    padding-left: 0; }
  /**
			 * Bleed right for the sm breakpoint.
			 */
  .bleed-sm-right {
    padding-right: 0; }
  /**
		 * Order first for the `sm` breakpoint.
		 */
  .first-sm {
    order: -1; }
  /**
		 * Order last for the `sm` breakpoint.
		 */
  .last-sm {
    order: 1; }
  /**
		 * Reverse order for the `sm` breakpoint.
		 */
  .reverse-sm {
    flex-direction: row-reverse; } }

@media only screen and (min-width: 600px) {
  /**
			 * Column 1 for the `md` breakpoint.
			 */
  .col-md-1 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 1 for the `md` breakpoint.
				 */
  .offset-md-1 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 2 for the `md` breakpoint.
			 */
  .col-md-2 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 2 for the `md` breakpoint.
				 */
  .offset-md-2 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 3 for the `md` breakpoint.
			 */
  .col-md-3 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 3 for the `md` breakpoint.
				 */
  .offset-md-3 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 4 for the `md` breakpoint.
			 */
  .col-md-4 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 4 for the `md` breakpoint.
				 */
  .offset-md-4 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 5 for the `md` breakpoint.
			 */
  .col-md-5 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 5 for the `md` breakpoint.
				 */
  .offset-md-5 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 6 for the `md` breakpoint.
			 */
  .col-md-6 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 6 for the `md` breakpoint.
				 */
  .offset-md-6 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 7 for the `md` breakpoint.
			 */
  .col-md-7 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 7 for the `md` breakpoint.
				 */
  .offset-md-7 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 8 for the `md` breakpoint.
			 */
  .col-md-8 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 8 for the `md` breakpoint.
				 */
  .offset-md-8 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 9 for the `md` breakpoint.
			 */
  .col-md-9 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 9 for the `md` breakpoint.
				 */
  .offset-md-9 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 10 for the `md` breakpoint.
			 */
  .col-md-10 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 10 for the `md` breakpoint.
				 */
  .offset-md-10 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 11 for the `md` breakpoint.
			 */
  .col-md-11 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 11 for the `md` breakpoint.
				 */
  .offset-md-11 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 12 for the `md` breakpoint.
			 */
  .col-md-12 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
			 * Align `stretch` for the md breakpoint.
			 */
  .align-md-stretch {
    align-items: stretch; }
  /**
			 * Align `center` for the md breakpoint.
			 */
  .align-md-center {
    align-items: center; }
  /**
			 * Align `flex-start` for the md breakpoint.
			 */
  .align-md-flex-start {
    align-items: flex-start; }
  /**
			 * Align `flex-end` for the md breakpoint.
			 */
  .align-md-flex-end {
    align-items: flex-end; }
  /**
			 * Align `baseline` for the md breakpoint.
			 */
  .align-md-baseline {
    align-items: baseline; }
  /**
			 * Justify `start` for the md breakpoint.
			 */
  .justify-md-start {
    justify-content: start; }
  /**
			 * Justify `center` for the md breakpoint.
			 */
  .justify-md-center {
    justify-content: center; }
  /**
			 * Justify `space-between` for the md breakpoint.
			 */
  .justify-md-space-between {
    justify-content: space-between; }
  /**
			 * Justify `space-around` for the md breakpoint.
			 */
  .justify-md-space-around {
    justify-content: space-around; }
  /**
			 * Justify `space-evenly` for the md breakpoint.
			 */
  .justify-md-space-evenly {
    justify-content: space-evenly; }
  /**
			 * Bleed left for the md breakpoint.
			 */
  .bleed-md-left {
    padding-left: 0; }
  /**
			 * Bleed right for the md breakpoint.
			 */
  .bleed-md-right {
    padding-right: 0; }
  /**
		 * Order first for the `md` breakpoint.
		 */
  .first-md {
    order: -1; }
  /**
		 * Order last for the `md` breakpoint.
		 */
  .last-md {
    order: 1; }
  /**
		 * Reverse order for the `md` breakpoint.
		 */
  .reverse-md {
    flex-direction: row-reverse; } }

@media only screen and (min-width: 900px) {
  /**
			 * Column 1 for the `lg` breakpoint.
			 */
  .col-lg-1 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 1 for the `lg` breakpoint.
				 */
  .offset-lg-1 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 2 for the `lg` breakpoint.
			 */
  .col-lg-2 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 2 for the `lg` breakpoint.
				 */
  .offset-lg-2 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 3 for the `lg` breakpoint.
			 */
  .col-lg-3 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 3 for the `lg` breakpoint.
				 */
  .offset-lg-3 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 4 for the `lg` breakpoint.
			 */
  .col-lg-4 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 4 for the `lg` breakpoint.
				 */
  .offset-lg-4 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 5 for the `lg` breakpoint.
			 */
  .col-lg-5 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 5 for the `lg` breakpoint.
				 */
  .offset-lg-5 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 6 for the `lg` breakpoint.
			 */
  .col-lg-6 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 6 for the `lg` breakpoint.
				 */
  .offset-lg-6 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 7 for the `lg` breakpoint.
			 */
  .col-lg-7 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 7 for the `lg` breakpoint.
				 */
  .offset-lg-7 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 8 for the `lg` breakpoint.
			 */
  .col-lg-8 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 8 for the `lg` breakpoint.
				 */
  .offset-lg-8 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 9 for the `lg` breakpoint.
			 */
  .col-lg-9 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 9 for the `lg` breakpoint.
				 */
  .offset-lg-9 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 10 for the `lg` breakpoint.
			 */
  .col-lg-10 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 10 for the `lg` breakpoint.
				 */
  .offset-lg-10 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 11 for the `lg` breakpoint.
			 */
  .col-lg-11 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 11 for the `lg` breakpoint.
				 */
  .offset-lg-11 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 12 for the `lg` breakpoint.
			 */
  .col-lg-12 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
			 * Align `stretch` for the lg breakpoint.
			 */
  .align-lg-stretch {
    align-items: stretch; }
  /**
			 * Align `center` for the lg breakpoint.
			 */
  .align-lg-center {
    align-items: center; }
  /**
			 * Align `flex-start` for the lg breakpoint.
			 */
  .align-lg-flex-start {
    align-items: flex-start; }
  /**
			 * Align `flex-end` for the lg breakpoint.
			 */
  .align-lg-flex-end {
    align-items: flex-end; }
  /**
			 * Align `baseline` for the lg breakpoint.
			 */
  .align-lg-baseline {
    align-items: baseline; }
  /**
			 * Justify `start` for the lg breakpoint.
			 */
  .justify-lg-start {
    justify-content: start; }
  /**
			 * Justify `center` for the lg breakpoint.
			 */
  .justify-lg-center {
    justify-content: center; }
  /**
			 * Justify `space-between` for the lg breakpoint.
			 */
  .justify-lg-space-between {
    justify-content: space-between; }
  /**
			 * Justify `space-around` for the lg breakpoint.
			 */
  .justify-lg-space-around {
    justify-content: space-around; }
  /**
			 * Justify `space-evenly` for the lg breakpoint.
			 */
  .justify-lg-space-evenly {
    justify-content: space-evenly; }
  /**
			 * Bleed left for the lg breakpoint.
			 */
  .bleed-lg-left {
    padding-left: 0; }
  /**
			 * Bleed right for the lg breakpoint.
			 */
  .bleed-lg-right {
    padding-right: 0; }
  /**
		 * Order first for the `lg` breakpoint.
		 */
  .first-lg {
    order: -1; }
  /**
		 * Order last for the `lg` breakpoint.
		 */
  .last-lg {
    order: 1; }
  /**
		 * Reverse order for the `lg` breakpoint.
		 */
  .reverse-lg {
    flex-direction: row-reverse; } }

@media only screen and (min-width: 1200px) {
  /**
			 * Column 1 for the `xl` breakpoint.
			 */
  .col-xl-1 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 1 for the `xl` breakpoint.
				 */
  .offset-xl-1 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 2 for the `xl` breakpoint.
			 */
  .col-xl-2 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 2 for the `xl` breakpoint.
				 */
  .offset-xl-2 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 3 for the `xl` breakpoint.
			 */
  .col-xl-3 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 3 for the `xl` breakpoint.
				 */
  .offset-xl-3 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 4 for the `xl` breakpoint.
			 */
  .col-xl-4 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 4 for the `xl` breakpoint.
				 */
  .offset-xl-4 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 5 for the `xl` breakpoint.
			 */
  .col-xl-5 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 5 for the `xl` breakpoint.
				 */
  .offset-xl-5 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 6 for the `xl` breakpoint.
			 */
  .col-xl-6 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 6 for the `xl` breakpoint.
				 */
  .offset-xl-6 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 7 for the `xl` breakpoint.
			 */
  .col-xl-7 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 7 for the `xl` breakpoint.
				 */
  .offset-xl-7 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 8 for the `xl` breakpoint.
			 */
  .col-xl-8 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 8 for the `xl` breakpoint.
				 */
  .offset-xl-8 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 9 for the `xl` breakpoint.
			 */
  .col-xl-9 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 9 for the `xl` breakpoint.
				 */
  .offset-xl-9 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 10 for the `xl` breakpoint.
			 */
  .col-xl-10 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 10 for the `xl` breakpoint.
				 */
  .offset-xl-10 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 11 for the `xl` breakpoint.
			 */
  .col-xl-11 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
				 * Offset 11 for the `xl` breakpoint.
				 */
  .offset-xl-11 {
    margin-left: calc($column  * 100% / $columns); }
  /**
			 * Column 12 for the `xl` breakpoint.
			 */
  .col-xl-12 {
    flex: 0 1 auto;
    width: calc($column  * 100% / $columns);
    padding: 0 calc($grid-gap/2); }
  /**
			 * Align `stretch` for the xl breakpoint.
			 */
  .align-xl-stretch {
    align-items: stretch; }
  /**
			 * Align `center` for the xl breakpoint.
			 */
  .align-xl-center {
    align-items: center; }
  /**
			 * Align `flex-start` for the xl breakpoint.
			 */
  .align-xl-flex-start {
    align-items: flex-start; }
  /**
			 * Align `flex-end` for the xl breakpoint.
			 */
  .align-xl-flex-end {
    align-items: flex-end; }
  /**
			 * Align `baseline` for the xl breakpoint.
			 */
  .align-xl-baseline {
    align-items: baseline; }
  /**
			 * Justify `start` for the xl breakpoint.
			 */
  .justify-xl-start {
    justify-content: start; }
  /**
			 * Justify `center` for the xl breakpoint.
			 */
  .justify-xl-center {
    justify-content: center; }
  /**
			 * Justify `space-between` for the xl breakpoint.
			 */
  .justify-xl-space-between {
    justify-content: space-between; }
  /**
			 * Justify `space-around` for the xl breakpoint.
			 */
  .justify-xl-space-around {
    justify-content: space-around; }
  /**
			 * Justify `space-evenly` for the xl breakpoint.
			 */
  .justify-xl-space-evenly {
    justify-content: space-evenly; }
  /**
			 * Bleed left for the xl breakpoint.
			 */
  .bleed-xl-left {
    padding-left: 0; }
  /**
			 * Bleed right for the xl breakpoint.
			 */
  .bleed-xl-right {
    padding-right: 0; }
  /**
		 * Order first for the `xl` breakpoint.
		 */
  .first-xl {
    order: -1; }
  /**
		 * Order last for the `xl` breakpoint.
		 */
  .last-xl {
    order: 1; }
  /**
		 * Reverse order for the `xl` breakpoint.
		 */
  .reverse-xl {
    flex-direction: row-reverse; } }

/**
 * Default fields.
 */
label {
  display: block;
  margin-bottom: 8px;
  font-weight: bold;
  color: black;
  margin-left: 15px; }

.gform_button {
  display: flex;
  margin-left: auto; }


select,
input,
textarea {
  font-size: 16px;
  font-size: calc(($pixels / 10px) * 1rem);
  line-height: calc(($line-height / $font-size) * 1em);
  width: 100%;
  height: 40px;
  border-radius: 2px;
  padding: 11px 15px;
  background-color: white;
  font-weight: 400;
  border: 1px solid black;
  color: #203265; }
  
  select:focus,
  input:focus,
  textarea:focus {
    background-color: white; }
  
  select::placeholder,
  input::placeholder,
  textarea::placeholder {
    color: #203265;
    font-weight: 400; }

textarea {
  height: 230px;
  padding-top: 15px; }

.gfield_required {
  color: #f22634; }

.ginput_container_select {
  position: relative;
  width: 100%;
  overflow: hidden;
  background-color: transparent;
  border: 1px solid black; }
  .ginput_container_select svg {
    position: absolute;
    top: 14px;
    right: 20px;
    width: 9px;
    height: 13px;
    z-index: 1; }
  .ginput_container_select select {
    position: relative;
    width: calc(100% + 50px);
    max-width: none;
    margin: -2px;
    background-color: transparent;
    border: 0;
    z-index: 2; }

input[type='radio'],
input[type='checkbox'] {
  width: 15px;
  height: 15px;
  border: 2px solid black;
  border-radius: 2px;
  background-color: white;
  transition: all 250ms ease; }
  input[type='radio']:checked,
  input[type='checkbox']:checked {
    background-color: black; }

input[type='radio'] {
  border-radius: 20px; }

/**
 * Gravity Forms.
 */
.gfield {
  margin-bottom: 25px; }

.gform_validation_container {
  display: none; }

.hidden_label > label {
  display: none; }

.validation_message {
  font-size: 14px;
  font-size: calc(($pixels / 10px) * 1rem);
  line-height: calc(($line-height / $font-size) * 1em);
  margin-top: 5px;
  border-radius: 2px;
  padding: 10px 10px;
  display: flex;
  align-items: center;
  width: 100%;
  color: #f22634;
  background-color: rgba(242, 38, 52, 0.1); }
  .validation_message > svg {
    width: 16px;
    height: 16px;
    margin-right: 5px;
    margin-top: -2px; }


.validation_error {
  display: none;
  position: relative;
  margin: 0 0 50px;
  padding: 25px 25px 25px 75px;
  background: rgba(242, 38, 52, 0.1);
  color: #f22634; }
  
  .validation_error > svg {
    position: absolute;
    top: calc(50% - 15px);
    left: 30px;
    width: 31px;
    height: 30px;
    color: #f22634; }
  
  .validation_error .close-button {
    position: absolute;
    top: 5px;
    right: 5px;
    cursor: pointer; }
    
    .validation_error .close-button svg {
      width: 16px;
      height: 16px;
      color: black; }

.gform_confirmation_message {
  width: 100%;
  padding: 50px;
  background: #f22634; }
  .gform_confirmation_message br {
    display: none; }
  .gform_confirmation_message h4 {
    display: flex;
    align-items: center;
    margin-bottom: 20px; }
    .gform_confirmation_message h4 svg {
      width: 28px;
      height: 28px;
      margin-right: 20px;
      border-radius: 20px;
      background-color: white;
      padding: 5px;
      color: black; }

.gfield_error input {
  background-color: rgba(242, 38, 52, 0.1); }
  .gfield_error input::placeholder {
    color: #f22634; }
  .gfield_error input:focus {
    background-color: white; }
    .gfield_error input:focus::placeholder {
      color: #203265; }

/* yantramanav-100 - latin */
@font-face {
  font-family: 'Yantramanav';
  font-style: normal;
  font-weight: 100;
  src: url("../../Fonts/yantramanav-v10-latin-100.eot");
  /* IE9 Compat Modes */
  src: local(""), url("../../Fonts/yantramanav-v10-latin-100.eot?#iefix") format("embedded-opentype"), url("../../Fonts/yantramanav-v10-latin-100.woff2") format("woff2"), url("../../Fonts/yantramanav-v10-latin-100.woff") format("woff"), url("../../Fonts/yantramanav-v10-latin-100.ttf") format("truetype"), url("../../Fonts/yantramanav-v10-latin-100.svg#Yantramanav") format("svg");
  /* Legacy iOS */ }

/* yantramanav-regular - latin */
@font-face {
  font-family: 'Yantramanav';
  font-style: normal;
  font-weight: 400;
  src: url("../../Fonts/yantramanav-v10-latin-regular.eot");
  /* IE9 Compat Modes */
  src: local(""), url("../../Fonts/yantramanav-v10-latin-regular.eot?#iefix") format("embedded-opentype"), url("../../Fonts/yantramanav-v10-latin-regular.woff2") format("woff2"), url("../../Fonts/yantramanav-v10-latin-regular.woff") format("woff"), url("../../Fonts/yantramanav-v10-latin-regular.ttf") format("truetype"), url("../../Fonts/yantramanav-v10-latin-regular.svg#Yantramanav") format("svg");
  /* Legacy iOS */ }

/* yantramanav-300 - latin */
@font-face {
  font-family: 'Yantramanav';
  font-style: normal;
  font-weight: 300;
  src: url("../../Fonts/yantramanav-v10-latin-300.eot");
  /* IE9 Compat Modes */
  src: local(""), url("../../Fonts/yantramanav-v10-latin-300.eot?#iefix") format("embedded-opentype"), url("../../Fonts/yantramanav-v10-latin-300.woff2") format("woff2"), url("../../Fonts/yantramanav-v10-latin-300.woff") format("woff"), url("../../Fonts/yantramanav-v10-latin-300.ttf") format("truetype"), url("../../Fonts/yantramanav-v10-latin-300.svg#Yantramanav") format("svg");
  /* Legacy iOS */ }

/* yantramanav-700 - latin */
@font-face {
  font-family: 'Yantramanav';
  font-style: normal;
  font-weight: 700;
  src: url("../../Fonts/yantramanav-v10-latin-700.eot");
  /* IE9 Compat Modes */
  src: local(""), url("../../Fonts/yantramanav-v10-latin-700.eot?#iefix") format("embedded-opentype"), url("../../Fonts/yantramanav-v10-latin-700.woff2") format("woff2"), url("../../Fonts/yantramanav-v10-latin-700.woff") format("woff"), url("../../Fonts/yantramanav-v10-latin-700.ttf") format("truetype"), url("../../Fonts/yantramanav-v10-latin-700.svg#Yantramanav") format("svg");
  /* Legacy iOS */ }

/* yantramanav-500 - latin */
@font-face {
  font-family: 'Yantramanav';
  font-style: normal;
  font-weight: 500;
  src: url("../../Fonts/yantramanav-v10-latin-500.eot");
  /* IE9 Compat Modes */
  src: local(""), url("../../Fonts/yantramanav-v10-latin-500.eot?#iefix") format("embedded-opentype"), url("../../Fonts/yantramanav-v10-latin-500.woff2") format("woff2"), url("../../Fonts/yantramanav-v10-latin-500.woff") format("woff"), url("../../Fonts/yantramanav-v10-latin-500.ttf") format("truetype"), url("../../Fonts/yantramanav-v10-latin-500.svg#Yantramanav") format("svg");
  /* Legacy iOS */ }

/* yantramanav-900 - latin */
@font-face {
  font-family: 'Yantramanav';
  font-style: normal;
  font-weight: 900;
  src: url("../../Fonts/yantramanav-v10-latin-900.eot");
  /* IE9 Compat Modes */
  src: local(""), url("../../Fonts/yantramanav-v10-latin-900.eot?#iefix") format("embedded-opentype"), url("../../Fonts/yantramanav-v10-latin-900.woff2") format("woff2"), url("../../Fonts/yantramanav-v10-latin-900.woff") format("woff"), url("../../Fonts/yantramanav-v10-latin-900.ttf") format("truetype"), url("../../Fonts/yantramanav-v10-latin-900.svg#Yantramanav") format("svg");
  /* Legacy iOS */ }

@font-face {
  font-family: 'Font Awesome 6 Pro';
  font-style: normal;
  font-weight: 300;
  font-display: block;
  src: url("../../Fonts/fa-light-300.woff2") format("woff2"), url("../../Fonts/fa-light-300.ttf") format("truetype"); }

@font-face {
  font-family: 'Font Awesome 6 Pro';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("../../Fonts/fa-regular-400.woff2") format("woff2"), url("../../Fonts/fa-regular-400.ttf") format("truetype"); }

@font-face {
  font-family: 'Font Awesome 6 Pro';
  font-style: normal;
  font-weight: 900;
  font-display: block;
  src: url("../../Fonts/fa-solid-900.woff2") format("woff2"), url("../../Fonts/fa-solid-900.ttf") format("truetype"); }

@font-face {
  font-family: 'Font Awesome 6 Pro';
  font-style: normal;
  font-weight: 100;
  font-display: block;
  src: url("../../Fonts/fa-thin-100.woff2") format("woff2"), url("../../Fonts/fa-thin-100.ttf") format("truetype"); }

/**
 * Heading.
 */
h1,
h2,
h3,
.voucher-redeem__intro-title,
.order-confirmation__title,
h4 {
  font-family: "Yantramanav"; }

/**
  * Heading 1.
  */
h1,
.heading-1 {
  font-size: 24px;
  line-height: 140%;
  font-weight: 400;
  letter-spacing: -0.04em; }
  @media only screen and (max-width: 899px) {
    h1,
    .heading-1 {
      font-size: 32px;
      line-height: 140%; } }

/**
  * Heading 2.
  */
h2,
.heading-2 {
  font-size: 24px;
  line-height: 140%;
  font-weight: 400; }
  @media only screen and (max-width: 899px) {
    h2,
    .heading-2 {
      font-size: 26px;
      line-height: 140%; } }

/**
  * Heading 3.
  */

h3,
.voucher-redeem__intro-title,
.order-confirmation__title,
.heading-3 {
  font-size: 24px;
  line-height: 140%;
  font-weight: 400; }
  @media only screen and (max-width: 899px) {
    
    h3,
    .voucher-redeem__intro-title,
    .order-confirmation__title,
    .heading-3 {
      font-size: 22px;
      line-height: 140%; } }

/**
  * Heading 3.
  */
h4 {
  font-size: 22px;
  line-height: 140%;
  font-weight: 400; }
  @media only screen and (max-width: 899px) {
    h4 {
      font-size: 18px;
      line-height: 140%; } }

/**
  * Heading 3.
  */
h5 {
  font-size: 22px;
  line-height: 140%;
  font-weight: 400; }
  @media only screen and (max-width: 899px) {
    h5 {
      font-size: 18px;
      line-height: 140%; } }

/**
  * Subheading.
  */
p {
  font-size: 18px;
  line-height: 160%; }
  @media only screen and (max-width: 899px) {
    p {
      font-size: 14px;
      line-height: 160%; } }

.has-lazy-load {
  position: relative;
  top: -150px;
  transition: all 750ms ease;
  transition-delay: 500ms;
  opacity: 0; }
  .has-lazy-load.header {
    transition-delay: 750ms;
    transition: all 500ms ease; }

.has-lazy-load[loaded='true'] {
  top: 0;
  opacity: 1; }

.pagination {
  width: 100%;
  margin-bottom: 150px; }
  .pagination .wrapper {
    justify-content: center; }
  .pagination .page-numbers {
    font-size: 18px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em);
    display: flex;
    justify-content: center;
    align-items: center;
    margin-right: 10px;
    transition: all 250ms ease;
    color: black;
    font-weight: 500; }
    .pagination .page-numbers:hover, .pagination .page-numbers.current {
      color: #f22634;
      font-weight: 700; }
    .pagination .page-numbers.prev, .pagination .page-numbers.next {
      margin-right: 15px; }
      .pagination .page-numbers.prev svg, .pagination .page-numbers.next svg {
        position: relative;
        top: 0;
        width: 27px;
        height: 22px;
        color: black;
        transition: all 250ms ease; }
      .pagination .page-numbers.prev:hover, .pagination .page-numbers.next:hover {
        color: #f22634; }
    .pagination .page-numbers.next {
      margin-right: 0;
      margin-left: 5px; }

/**
 * Wrapper (default)
 */
.wrapper {
  max-width: calc(1120px + 200px);
  padding: 0 100px;
  width: 100%;
  margin: 0 auto; }
  @media only screen and (max-width: 899px) {
    .wrapper {
      max-width: calc(1120px + 120px);
      padding: 0 60px;
      width: 100%;
      margin: 0 auto; } }
  @media only screen and (max-width: 599px) {
    .wrapper {
      max-width: calc(1120px + 40px);
      padding: 0 20px;
      width: 100%;
      margin: 0 auto; } }

/**
 * Wrapper (small)
 */
.wrapper--small {
  max-width: calc(600px + 220px);
  padding: 0 110px;
  width: 100%;
  margin: 0 auto; }
  @media only screen and (max-width: 899px) {
    .wrapper--small {
      max-width: calc(600px + 140px);
      padding: 0 70px;
      width: 100%;
      margin: 0 auto; } }
  @media only screen and (max-width: 599px) {
    .wrapper--small {
      max-width: calc(600px + 40px);
      padding: 0 20px;
      width: 100%;
      margin: 0 auto; } }

/**
* Components.
*/
.header {
  height: 100px; }
  .header .wrapper {
    display: flex;
    height: 100%;
    flex-wrap: wrap;
    justify-content: center;
    align-content: center; }

.header__logo img {
  height: 35px;
  width: auto; }

.header__image {
  height: 400px;
  width: 100%;
  position: relative; }
  @media only screen and (max-width: 899px) {
    .header__image {
      height: 200px; } }
  .header__image img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    z-index: -1; }

.header__buy-now {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  overflow: hidden; }
  .header__buy-now:hover::before {
    transform: scaleX(1);
    left: 0; }
  .header__buy-now::before {
    content: '';
    background-color: #a3b112;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    transform: scaleX(0);
    left: -100%;
    transition: all 0.5s cubic-bezier(0.52, 1.64, 0.37, 0.66); }

.register {
  padding: 60px; }
  @media only screen and (max-width: 899px) {
    .register {
      padding: 30px; } }

.register__title {
  font-weight: 900; }

.register__subtitle {
  margin-top: 20px; }

.register__form {
  margin-top: 35px; }
  .register__form .row-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 12px; }
    .register__form .row-wrap label {
      width: 175px;
      margin: 0;
      font-weight: 600;
      font-size: 16px; }
      @media only screen and (max-width: 599px) {
        .register__form .row-wrap label {
          display: none; } }
      .register__form .row-wrap label .required {
        color: #c4d31d; }
    .register__form .row-wrap input {
      width: calc(100% - 175px);
      border: 1px solid #cccccc;
      padding: 10;
      border-radius: 0; }
      @media only screen and (max-width: 599px) {
        .register__form .row-wrap input {
          width: 100%; } }
      .register__form .row-wrap input::placeholder {
        color: #cccccc; }
    .register__form .row-wrap .help-text {
      margin-left: 175px;
      font-size: 16px;
      color: #c4d31d; }
      @media only screen and (max-width: 599px) {
        .register__form .row-wrap .help-text {
          margin-left: 0; } }
      .register__form .row-wrap .help-text:hover {
        text-decoration: underline; }
  .register__form .register__form-login, .register__form .register__form-payment {
    margin-top: 50px; }
  .register__form .register__form-submit input[type=submit] {
    margin-left: 175px;
    margin-top: 20px;
    text-transform: uppercase;
    font-weight: 900;
    color: black;
    border: 3px solid #203265;
    font-size: 12px;
    padding: 10px 16px;
    border-radius: 4px;
    width: fit-content;
    cursor: pointer;
    transition: all 350ms ease-in-out; }
    @media only screen and (max-width: 599px) {
      .register__form .register__form-submit input[type=submit] {
        margin-left: 0; } }
    .register__form .register__form-submit input[type=submit]:hover {
      background-color: #203265;
      color: white; }
    .register__form .register__form-submit input[type=submit].is-disabled {
      opacity: 0.5;
      pointer-events: none;
      cursor: auto; }
  .register__form .password-error__length, .register__form .password-error__uppercase, .register__form .iban_error__invalid {
    margin-top: 10px;
    width: 100%;
    margin-left: 175px;
    color: #f22634;
    background-color: rgba(242, 38, 52, 0.1);
    padding: 10px;
    font-size: 16px; }
    @media only screen and (max-width: 599px) {
      .register__form .password-error__length, .register__form .password-error__uppercase, .register__form .iban_error__invalid {
        margin-left: 0px;
        padding: 5px 10px;
        font-size: 13px; } }

.frame-type-felogin_login {
  padding: 60px;
  max-width: 900px;
  margin: 0 auto; }
  @media only screen and (max-width: 899px) {
    .frame-type-felogin_login {
      padding: 30px; } }
  .frame-type-felogin_login a {
    opacity: 0.5;
    font-size: 15px;
    transition: all 300ms ease-in-out; }
    .frame-type-felogin_login a:hover {
      opacity: 1; }

.frame-type-felogin_login form legend {
  display: none; }

.frame-type-felogin_login form label {
  margin: 0;
  color: #203265;
  font-weight: 400; }

.frame-type-felogin_login form input[type=submit] {
  border: 0;
  width: 100%; }

.frame-type-felogin_login form div {
  margin-top: 25px; }

.login__header, .frame-type-felogin_login h3, .frame-type-felogin_login .voucher-redeem__intro-title, .frame-type-felogin_login .order-confirmation__title {
  font-weight: 900; }

.login__subtitle .frame-type-felogin_login p {
  margin-top: 20px; }

h3.login__header, .login__header.voucher-redeem__intro-title, .login__header.order-confirmation__title {
  margin-bottom: 10px; }

.login__form {
  margin-top: 20px;
  margin-bottom: 20px; }
  .login__form .row-wrap {
    margin-top: 0;
    margin-bottom: 10px; }
  .login__form label {
    display: none;
    margin: 0; }

.login__button {
  width: 100%;
  border: 0;
  margin-top: 10px; }

.footer {
  background-color: #203265;
  color: white;
  padding: 10px 60px;
  font-weight: 400;
  line-height: 24px;
  font-size: 16px; }
  .footer a:hover {
    text-decoration: underline; }
  .footer .wrapper {
    justify-content: space-between; }

.voucher-redeem {
  padding: 60px; }
  @media only screen and (max-width: 899px) {
    .voucher-redeem {
      padding: 30px; } }

.voucher-redeem__intro-title {
  font-weight: 900; }

.voucher-redeem__intro-text {
  margin-top: 20px; }

.voucher-redeem__intro-image {
  margin: 20px 0;
  width: 100%;
  height: 100%;
  max-height: 300px;
  margin-bottom: 0; }
  .voucher-redeem__intro-image img {
    width: 100%;
    height: 100%;
    max-height: 300px;
    object-fit: contain;
    object-position: bottom; }

.voucher-redeem__form {
  background-color: #d0eef9;
  color: #203265;
  padding: 40px;
  display: flex;
  flex-wrap: wrap;
  margin-top: 50px; }
  .voucher-redeem__form input {
    width: 75%;
    margin-right: 5%;
    height: 50px;
    font-size: 20px;
    font-weight: 700;
    padding: 20px 18px;
    border: 0;
    border-radius: 4px; }
    @media only screen and (max-width: 899px) {
      .voucher-redeem__form input {
        width: 100%;
        margin-right: 0; } }
    .voucher-redeem__form input::placeholder {
      opacity: 0.7; }
  .voucher-redeem__form .voucher-redeem__submit {
    width: 20%; }
    @media only screen and (max-width: 899px) {
      .voucher-redeem__form .voucher-redeem__submit {
        width: 100%;
        margin-top: 10px; } }

.voucher-redeem__logout {
  margin-top: 50px; }

.voucher-redeem__form-title {
  width: 100%;
  font-size: 26px;
  line-height: 30px;
  margin-bottom: 20px; }

.voucher-redeem__submit {
  width: 100%; }

.voucher-redeem__submit {
  font-size: 16px; }

.order {
  margin-top: 60px;
  font-size: 24px;
  font-weight: 900;
  margin-bottom: 100px; }

.order__title {
  margin-bottom: 20px;
  font-size: 24px;
  font-weight: 900;
  color: #203265; }

.order__user-fields {
  width: 80%;
  margin-top: 100px;
  display: flex;
  flex-wrap: wrap;
  gap: 0 30px; }
  @media only screen and (max-width: 899px) {
    .order__user-fields {
      gap: 0;
      margin-top: 50px;
      width: 100%; } }
  .order__user-fields label {
    margin-left: 0;
    width: calc(50% - 16px); }
    @media only screen and (max-width: 899px) {
      .order__user-fields label {
        width: 100%; } }
    .order__user-fields label:first-child {
      width: 100%;
      display: flex;
      flex-wrap: wrap; }
      .order__user-fields label:first-child span {
        width: 100%; }
      .order__user-fields label:first-child select {
        width: calc(50% - 16px); }
        @media only screen and (max-width: 599px) {
          .order__user-fields label:first-child select {
            width: 100%; } }
    .order__user-fields label span {
      color: #203265;
      font-size: 15px;
      font-weight: 700;
      margin: 15px 0 5px; }

label[for='field-comments'] {
  width: 100%;
  margin-bottom: 45px; }

.order__shipping {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  width: 100%; }
  .order__shipping span {
    width: auto !important;
    margin: 0 !important;
    margin-left: 10px !important;
    line-height: 100%; }
  .order__shipping input[type=checkbox]:checked {
    background-color: #c4d31d !important; }
  .order__shipping.is-active input[type=checkbox] {
    background-color: #c4d31d !important; }

.order__wrap-body {
  width: calc(100% - 140px);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  background-color: #0096cc;
  padding: 40px 10px;
  border-radius: 4px; }
  @media only screen and (max-width: 599px) {
    .order__wrap-body {
      width: 100%; } }

.order__wrap-image {
  width: calc(50% - 50px);
  margin-left: 50px;
  display: flex;
  align-items: center; }
  @media only screen and (max-width: 899px) {
    .order__wrap-image {
      width: 100%;
      margin-left: 0; } }
  .order__wrap-image img {
    max-height: 150px; }

.order__wrap-text {
  width: calc(50% - 70px);
  margin-left: 70px;
  color: white;
  font-size: 16px; }
  @media only screen and (max-width: 899px) {
    .order__wrap-text {
      width: 100%;
      margin-left: 0;
      margin-top: 30px; } }
  .order__wrap-text strong {
    padding-bottom: 10px; }
  .order__wrap-text p {
    font-size: 16px;
    font-weight: normal; }

.order__wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center; }

.order__product-label {
  margin: 17px;
  width: 70px;
  display: flex;
  flex-wrap: wrap;
  height: fit-content;
  justify-content: flex-start;
  align-content: center;
  position: relative; }
  @media only screen and (max-width: 599px) {
    .order__product-label {
      width: 100% !important;
      justify-content: flex-start;
      margin-left: 0; } }
  .order__product-label::after {
    content: '\f107';
    display: block;
    background-color: #203265;
    color: white;
    font-family: 'Font Awesome 6 Pro';
    position: absolute;
    right: 0;
    bottom: 0;
    width: 20px;
    height: 40px;
    text-align: center;
    padding-top: 6px;
    font-size: 13px;
    pointer-events: none; }
    @media only screen and (max-width: 899px) {
      .order__product-label::after {
        left: 50px; } }
  .order__product-label strong {
    font-size: 18px;
    font-weight: 700px;
    color: #203265;
    width: 100%; }
  .order__product-label select {
    padding: 5px 30px 5px 22px;
    height: 40px;
    width: 70px;
    background-color: none;
    border: 0;
    box-shadow: 0px 4px 12px rgba(32, 50, 100, 0.2); }

.order__shipping-wrapper {
  width: 100%; }

.order__shipping-body {
  display: none; }
  .order__shipping-body label {
    width: 100%; }

.order__form-submit {
  margin-top: 20px;
  height: auto; }
  @media only screen and (max-width: 899px) {
    .order__form-submit {
      font-size: 16px; } }

.order__form-products {
  display: flex;
  flex-wrap: wrap;
  width: 100%; }

.order__product {
  width: 50%;
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 50px;
  align-items: center; }
  @media only screen and (max-width: 899px) {
    .order__product {
      width: 100%; } }
  .order__product .order__product-label {
    width: 70px; }

.order__product-image {
  max-width: calc(100% - 140px); }
  @media only screen and (max-width: 599px) {
    .order__product-image {
      max-width: 100%; } }

.order__intro {
  margin-bottom: 60px;
  font-weight: normal; }
  @media only screen and (max-width: 899px) {
    .order__intro {
      margin-bottom: 30px; } }
  .order__intro p {
    margin-bottom: 0.5em; }
    .order__intro p:last-child {
      margin-bottom: 0; }
  .order__intro a {
    text-decoration: underline;
    transition: all 300ms ease-in-out; }
    .order__intro a:hover {
      opacity: 0.7; }

.message {
  margin: 20px 0;
  width: 100%;
  text-align: center;
  padding: 20px 15px; }

.message--error, .message--ERROR {
  background-color: rgba(242, 38, 52, 0.1);
  color: #f22634; }

.message--ok, .message--OK {
  background-color: rgba(196, 211, 29, 0.1);
  color: #203265; }

.message--info, .message--INFO {
  background-color: rgba(32, 50, 101, 0.1);
  color: #203265; }

.order-confirmation {
  padding-top: 60px; }
  .order-confirmation .wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 0 50px; }
    @media only screen and (max-width: 899px) {
      .order-confirmation .wrapper {
        width: 100%; } }

.order-confirmation__title {
  font-weight: 900;
  margin-bottom: 20px;
  width: 100%; }

.order-confirmation__description {
  margin-bottom: 50px;
  width: 100%; }

.order-confirmation__products-title {
  padding-bottom: 5px;
  margin-bottom: 10px;
  margin-top: 25px;
  border-bottom: 1px solid #203265; }

.order-confirmation__actions {
  margin-top: 50px;
  margin-bottom: 30px; }
  .order-confirmation__actions a {
    width: 100%;
    margin-bottom: 15px;
    text-decoration: underline;
    transition: all 300ms ease-in-out; }
    .order-confirmation__actions a:hover {
      opacity: 0.5; }

.order-confirmation__products {
  width: calc(50% - 30px); }
  @media only screen and (max-width: 899px) {
    .order-confirmation__products {
      width: 100%; } }

/**
* Utilities.
*/
/**
 * Color utility classes.
 *
 * Automatically generated color and background color utility classes based on every color definition in `settings/_color.scss`.
 * Loop through every `$key` and `$map` in the `$colors` variable map defined in `settings/_color.scss`.
 */
/**
			 * `color` black-100 color utility.
			 */
.color-black-100 {
  color: black; }

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

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

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

/**
			 * `color` rgba(255, 255, 255, 0.9)-90 color utility.
			 */
.color-white-90 {
  color: rgba(255, 255, 255, 0.9); }

/**
			 * `background-color` rgba(255, 255, 255, 0.9)-90 color utility.
			 */
.background-color-white-90 {
  background-color: rgba(255, 255, 255, 0.9); }

/**
			 * `color` rgba(255, 255, 255, 0.8)-80 color utility.
			 */
.color-white-80 {
  color: rgba(255, 255, 255, 0.8); }

/**
			 * `background-color` rgba(255, 255, 255, 0.8)-80 color utility.
			 */
.background-color-white-80 {
  background-color: rgba(255, 255, 255, 0.8); }

/**
			 * `color` rgba(255, 255, 255, 0.7)-70 color utility.
			 */
.color-white-70 {
  color: rgba(255, 255, 255, 0.7); }

/**
			 * `background-color` rgba(255, 255, 255, 0.7)-70 color utility.
			 */
.background-color-white-70 {
  background-color: rgba(255, 255, 255, 0.7); }

/**
			 * `color` rgba(255, 255, 255, 0.6)-60 color utility.
			 */
.color-white-60 {
  color: rgba(255, 255, 255, 0.6); }

/**
			 * `background-color` rgba(255, 255, 255, 0.6)-60 color utility.
			 */
.background-color-white-60 {
  background-color: rgba(255, 255, 255, 0.6); }

/**
			 * `color` rgba(255, 255, 255, 0.5)-50 color utility.
			 */
.color-white-50 {
  color: rgba(255, 255, 255, 0.5); }

/**
			 * `background-color` rgba(255, 255, 255, 0.5)-50 color utility.
			 */
.background-color-white-50 {
  background-color: rgba(255, 255, 255, 0.5); }

/**
			 * `color` rgba(255, 255, 255, 0.4)-40 color utility.
			 */
.color-white-40 {
  color: rgba(255, 255, 255, 0.4); }

/**
			 * `background-color` rgba(255, 255, 255, 0.4)-40 color utility.
			 */
.background-color-white-40 {
  background-color: rgba(255, 255, 255, 0.4); }

/**
			 * `color` rgba(255, 255, 255, 0.3)-30 color utility.
			 */
.color-white-30 {
  color: rgba(255, 255, 255, 0.3); }

/**
			 * `background-color` rgba(255, 255, 255, 0.3)-30 color utility.
			 */
.background-color-white-30 {
  background-color: rgba(255, 255, 255, 0.3); }

/**
			 * `color` rgba(255, 255, 255, 0.2)-20 color utility.
			 */
.color-white-20 {
  color: rgba(255, 255, 255, 0.2); }

/**
			 * `background-color` rgba(255, 255, 255, 0.2)-20 color utility.
			 */
.background-color-white-20 {
  background-color: rgba(255, 255, 255, 0.2); }

/**
			 * `color` rgba(255, 255, 255, 0.1)-10 color utility.
			 */
.color-white-10 {
  color: rgba(255, 255, 255, 0.1); }

/**
			 * `background-color` rgba(255, 255, 255, 0.1)-10 color utility.
			 */
.background-color-white-10 {
  background-color: rgba(255, 255, 255, 0.1); }

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

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

/**
			 * `color` rgba(242, 38, 52, 0.1)-10 color utility.
			 */
.color-red-10 {
  color: rgba(242, 38, 52, 0.1); }

/**
			 * `background-color` rgba(242, 38, 52, 0.1)-10 color utility.
			 */
.background-color-red-10 {
  background-color: rgba(242, 38, 52, 0.1); }

/**
			 * `color` #c4d31d-100 color utility.
			 */
.color-green-100 {
  color: #c4d31d; }

/**
			 * `background-color` #c4d31d-100 color utility.
			 */
.background-color-green-100 {
  background-color: #c4d31d; }

/**
			 * `color` rgba(196, 211, 29, 0.9)-90 color utility.
			 */
.color-green-90 {
  color: rgba(196, 211, 29, 0.9); }

/**
			 * `background-color` rgba(196, 211, 29, 0.9)-90 color utility.
			 */
.background-color-green-90 {
  background-color: rgba(196, 211, 29, 0.9); }

/**
			 * `color` rgba(196, 211, 29, 0.8)-80 color utility.
			 */
.color-green-80 {
  color: rgba(196, 211, 29, 0.8); }

/**
			 * `background-color` rgba(196, 211, 29, 0.8)-80 color utility.
			 */
.background-color-green-80 {
  background-color: rgba(196, 211, 29, 0.8); }

/**
			 * `color` rgba(196, 211, 29, 0.7)-70 color utility.
			 */
.color-green-70 {
  color: rgba(196, 211, 29, 0.7); }

/**
			 * `background-color` rgba(196, 211, 29, 0.7)-70 color utility.
			 */
.background-color-green-70 {
  background-color: rgba(196, 211, 29, 0.7); }

/**
			 * `color` rgba(196, 211, 29, 0.6)-60 color utility.
			 */
.color-green-60 {
  color: rgba(196, 211, 29, 0.6); }

/**
			 * `background-color` rgba(196, 211, 29, 0.6)-60 color utility.
			 */
.background-color-green-60 {
  background-color: rgba(196, 211, 29, 0.6); }

/**
			 * `color` rgba(196, 211, 29, 0.5)-50 color utility.
			 */
.color-green-50 {
  color: rgba(196, 211, 29, 0.5); }

/**
			 * `background-color` rgba(196, 211, 29, 0.5)-50 color utility.
			 */
.background-color-green-50 {
  background-color: rgba(196, 211, 29, 0.5); }

/**
			 * `color` rgba(196, 211, 29, 0.4)-40 color utility.
			 */
.color-green-40 {
  color: rgba(196, 211, 29, 0.4); }

/**
			 * `background-color` rgba(196, 211, 29, 0.4)-40 color utility.
			 */
.background-color-green-40 {
  background-color: rgba(196, 211, 29, 0.4); }

/**
			 * `color` rgba(196, 211, 29, 0.3)-30 color utility.
			 */
.color-green-30 {
  color: rgba(196, 211, 29, 0.3); }

/**
			 * `background-color` rgba(196, 211, 29, 0.3)-30 color utility.
			 */
.background-color-green-30 {
  background-color: rgba(196, 211, 29, 0.3); }

/**
			 * `color` rgba(196, 211, 29, 0.2)-20 color utility.
			 */
.color-green-20 {
  color: rgba(196, 211, 29, 0.2); }

/**
			 * `background-color` rgba(196, 211, 29, 0.2)-20 color utility.
			 */
.background-color-green-20 {
  background-color: rgba(196, 211, 29, 0.2); }

/**
			 * `color` rgba(196, 211, 29, 0.1)-10 color utility.
			 */
.color-green-10 {
  color: rgba(196, 211, 29, 0.1); }

/**
			 * `background-color` rgba(196, 211, 29, 0.1)-10 color utility.
			 */
.background-color-green-10 {
  background-color: rgba(196, 211, 29, 0.1); }

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

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

/**
			 * `color` rgba(32, 50, 101, 0.9)-90 color utility.
			 */
.color-blue-90 {
  color: rgba(32, 50, 101, 0.9); }

/**
			 * `background-color` rgba(32, 50, 101, 0.9)-90 color utility.
			 */
.background-color-blue-90 {
  background-color: rgba(32, 50, 101, 0.9); }

/**
			 * `color` rgba(32, 50, 101, 0.8)-80 color utility.
			 */
.color-blue-80 {
  color: rgba(32, 50, 101, 0.8); }

/**
			 * `background-color` rgba(32, 50, 101, 0.8)-80 color utility.
			 */
.background-color-blue-80 {
  background-color: rgba(32, 50, 101, 0.8); }

/**
			 * `color` rgba(32, 50, 101, 0.7)-70 color utility.
			 */
.color-blue-70 {
  color: rgba(32, 50, 101, 0.7); }

/**
			 * `background-color` rgba(32, 50, 101, 0.7)-70 color utility.
			 */
.background-color-blue-70 {
  background-color: rgba(32, 50, 101, 0.7); }

/**
			 * `color` rgba(32, 50, 101, 0.6)-60 color utility.
			 */
.color-blue-60 {
  color: rgba(32, 50, 101, 0.6); }

/**
			 * `background-color` rgba(32, 50, 101, 0.6)-60 color utility.
			 */
.background-color-blue-60 {
  background-color: rgba(32, 50, 101, 0.6); }

/**
			 * `color` rgba(32, 50, 101, 0.5)-50 color utility.
			 */
.color-blue-50 {
  color: rgba(32, 50, 101, 0.5); }

/**
			 * `background-color` rgba(32, 50, 101, 0.5)-50 color utility.
			 */
.background-color-blue-50 {
  background-color: rgba(32, 50, 101, 0.5); }

/**
			 * `color` rgba(32, 50, 101, 0.4)-40 color utility.
			 */
.color-blue-40 {
  color: rgba(32, 50, 101, 0.4); }

/**
			 * `background-color` rgba(32, 50, 101, 0.4)-40 color utility.
			 */
.background-color-blue-40 {
  background-color: rgba(32, 50, 101, 0.4); }

/**
			 * `color` rgba(32, 50, 101, 0.3)-30 color utility.
			 */
.color-blue-30 {
  color: rgba(32, 50, 101, 0.3); }

/**
			 * `background-color` rgba(32, 50, 101, 0.3)-30 color utility.
			 */
.background-color-blue-30 {
  background-color: rgba(32, 50, 101, 0.3); }

/**
			 * `color` rgba(32, 50, 101, 0.2)-20 color utility.
			 */
.color-blue-20 {
  color: rgba(32, 50, 101, 0.2); }

/**
			 * `background-color` rgba(32, 50, 101, 0.2)-20 color utility.
			 */
.background-color-blue-20 {
  background-color: rgba(32, 50, 101, 0.2); }

/**
			 * `color` rgba(32, 50, 101, 0.1)-10 color utility.
			 */
.color-blue-10 {
  color: rgba(32, 50, 101, 0.1); }

/**
			 * `background-color` rgba(32, 50, 101, 0.1)-10 color utility.
			 */
.background-color-blue-10 {
  background-color: rgba(32, 50, 101, 0.1); }

/**
			 * `color` #0096cc-100 color utility.
			 */
.color-light-blue-100 {
  color: #0096cc; }

/**
			 * `background-color` #0096cc-100 color utility.
			 */
.background-color-light-blue-100 {
  background-color: #0096cc; }

/**
 * Visually hide any element from the user.
 */
.visually-hidden {
  display: block;
  position: absolute;
  width: 1px;
  height: 1px;
  white-space: nowrap;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(1px); }

/**
 * Make lazyload placeholder 100% wide.
 */
.lazyload {
  width: 100%; }

/**
 * Helper class for object fit polyfill. Add this class to any element
 * that utilizes the `object-fit` property.
 */

.object-fit {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  font-family: 'object-fit: cover;';
  object-fit: cover; }

/**
 * Align center.
 */
.align-center {
  text-align: center; }

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

/**
 * Align right.
 */
.align-right {
  text-align: right; }

/**
 * Object fit.
 *
 * 1. Font family polyfill with (https://github.com/bfred-it/object-fit-images).
 * Loop through every value for the `object-fit` property.
 */
/**
	 * `object-fit` fill utility class.
	 */
.fill {
  font-family: "object-fit: fill;";
  /* 1 */
  object-fit: fill; }

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

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

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

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

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

.relative {
  position: relative; }

.absolute {
  position: absolute; }

.fixed {
  position: fixed; }

.sticky {
  position: sticky; }

/**
 * Font family utility classes.
 */
.text-xs-default {
  font-family: "Yantramanav"; }

.text-xs-heading {
  font-family: "Yantramanav"; }

@media only screen and (max-width: 599px) {
  .text-sm-default {
    font-family: "Yantramanav"; }
  .text-sm-heading {
    font-family: "Yantramanav"; } }

@media only screen and (min-width: 600px) {
  .text-md-default {
    font-family: "Yantramanav"; }
  .text-md-heading {
    font-family: "Yantramanav"; } }

@media only screen and (min-width: 900px) {
  .text-lg-default {
    font-family: "Yantramanav"; }
  .text-lg-heading {
    font-family: "Yantramanav"; } }

@media only screen and (min-width: 1200px) {
  .text-xl-default {
    font-family: "Yantramanav"; }
  .text-xl-heading {
    font-family: "Yantramanav"; } }

/**
 * Text size utility classes.
 */
.text-xs-h1 {
  font-size: 24px;
  font-size: calc(($pixels / 10px) * 1rem);
  line-height: calc(($line-height / $font-size) * 1em); }

.text-xs-h2 {
  font-size: 24px;
  font-size: calc(($pixels / 10px) * 1rem);
  line-height: calc(($line-height / $font-size) * 1em); }

.text-xs-h3 {
  font-size: 24px;
  font-size: calc(($pixels / 10px) * 1rem);
  line-height: calc(($line-height / $font-size) * 1em); }

.text-xs-h4 {
  font-size: 22px;
  font-size: calc(($pixels / 10px) * 1rem);
  line-height: calc(($line-height / $font-size) * 1em); }

.text-xs-h5 {
  font-size: 22px;
  font-size: calc(($pixels / 10px) * 1rem);
  line-height: calc(($line-height / $font-size) * 1em); }

.text-xs-p {
  font-size: 18px;
  font-size: calc(($pixels / 10px) * 1rem);
  line-height: calc(($line-height / $font-size) * 1em); }

@media only screen and (max-width: 599px) {
  .text-sm-h1 {
    font-size: 24px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-sm-h2 {
    font-size: 24px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-sm-h3 {
    font-size: 24px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-sm-h4 {
    font-size: 22px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-sm-h5 {
    font-size: 22px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-sm-p {
    font-size: 18px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); } }

@media only screen and (min-width: 600px) {
  .text-md-h1 {
    font-size: 24px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-md-h2 {
    font-size: 24px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-md-h3 {
    font-size: 24px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-md-h4 {
    font-size: 22px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-md-h5 {
    font-size: 22px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-md-p {
    font-size: 18px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); } }

@media only screen and (min-width: 900px) {
  .text-lg-h1 {
    font-size: 24px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-lg-h2 {
    font-size: 24px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-lg-h3 {
    font-size: 24px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-lg-h4 {
    font-size: 22px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-lg-h5 {
    font-size: 22px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-lg-p {
    font-size: 18px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); } }

@media only screen and (min-width: 1200px) {
  .text-xl-h1 {
    font-size: 24px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-xl-h2 {
    font-size: 24px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-xl-h3 {
    font-size: 24px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-xl-h4 {
    font-size: 22px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-xl-h5 {
    font-size: 22px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); }
  .text-xl-p {
    font-size: 18px;
    font-size: calc(($pixels / 10px) * 1rem);
    line-height: calc(($line-height / $font-size) * 1em); } }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/**
 * Utility classes for manipulating stacking order in HTML.
 */
.z-index-0 {
  z-index: 0; }

.z-index-1 {
  z-index: 10; }

.z-index-2 {
  z-index: 20; }

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

.z-index-4 {
  z-index: 40; }

.z-index-5 {
  z-index: 50; }

.z-index-6 {
  z-index: 60; }

.z-index-7 {
  z-index: 70; }

.z-index-8 {
  z-index: 80; }

.z-index-9 {
  z-index: 90; }

.z-index-10 {
  z-index: 100; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsInNldHRpbmdzL19hbGwuc2NzcyIsInNldHRpbmdzL190eXBvZ3JhcGh5LnNjc3MiLCJzZXR0aW5ncy9fY29sb3Iuc2NzcyIsInNldHRpbmdzL196LWluZGV4LnNjc3MiLCJzZXR0aW5ncy9fZGVmaW5pdGlvbnMuc2NzcyIsIi4uLy4uL2J1aWxkL25vZGVfbW9kdWxlcy9ub3JtYWxpemUuY3NzL25vcm1hbGl6ZS5jc3MiLCIuLi8uLi9idWlsZC9ub2RlX21vZHVsZXMvb3dsLmNhcm91c2VsL3NyYy9zY3NzL293bC5jYXJvdXNlbC5zY3NzIiwiLi4vLi4vYnVpbGQvbm9kZV9tb2R1bGVzL293bC5jYXJvdXNlbC9zcmMvc2Nzcy9fY29yZS5zY3NzIiwiLi4vLi4vYnVpbGQvbm9kZV9tb2R1bGVzL293bC5jYXJvdXNlbC9zcmMvc2Nzcy9fYW5pbWF0ZS5zY3NzIiwiLi4vLi4vYnVpbGQvbm9kZV9tb2R1bGVzL293bC5jYXJvdXNlbC9zcmMvc2Nzcy9fYXV0b2hlaWdodC5zY3NzIiwiLi4vLi4vYnVpbGQvbm9kZV9tb2R1bGVzL293bC5jYXJvdXNlbC9zcmMvc2Nzcy9fbGF6eWxvYWQuc2NzcyIsIi4uLy4uL2J1aWxkL25vZGVfbW9kdWxlcy9vd2wuY2Fyb3VzZWwvc3JjL3Njc3MvX3ZpZGVvLnNjc3MiLCJ0b29scy9fYWxsLnNjc3MiLCJ0b29scy9fZnVuY3Rpb25zLnNjc3MiLCJ0b29scy9fbWFnbmlmaWMtcG9wdXAuc2NzcyIsInRvb2xzL19taXhpbnMuc2NzcyIsImdlbmVyaWMvX2Jhc2Uuc2NzcyIsImdlbmVyaWMvX3Jlc2V0LnNjc3MiLCJvYmplY3RzL19idXR0b25zLnNjc3MiLCJvYmplY3RzL19jbXMtb3V0cHV0LnNjc3MiLCJvYmplY3RzL19jb250YWluZXIuc2NzcyIsIm9iamVjdHMvX2NvbnRlbnQtY29uc3RyYWludC5zY3NzIiwib2JqZWN0cy9fZmxleC5zY3NzIiwib2JqZWN0cy9fZm9ybS5zY3NzIiwib2JqZWN0cy9fZm9udHMuc2NzcyIsIm9iamVjdHMvX2hlYWRpbmdzLnNjc3MiLCJvYmplY3RzL19sYXp5LWxvYWQuc2NzcyIsIm9iamVjdHMvX3BhZ2luYXRpb24uc2NzcyIsIm9iamVjdHMvX3dyYXBwZXIuc2NzcyIsImNvbXBvbmVudHMvX2hlYWRlci5zY3NzIiwiY29tcG9uZW50cy9fcmVnaXN0ZXIuc2NzcyIsImNvbXBvbmVudHMvX2xvZ2luLnNjc3MiLCJjb21wb25lbnRzL19mb290ZXIuc2NzcyIsImNvbXBvbmVudHMvX3ZvdWNoZXItcmVkZWVtLnNjc3MiLCJjb21wb25lbnRzL19vcmRlci1mb3JtLnNjc3MiLCJjb21wb25lbnRzL19tZXNzYWdlcy5zY3NzIiwiY29tcG9uZW50cy9fb3JkZXItY29uZmlybWF0aW9uLnNjc3MiLCJ1dGlsaXRpZXMvX2NvbG9yLnNjc3MiLCJ1dGlsaXRpZXMvX2hlbHBlcnMuc2NzcyIsInV0aWxpdGllcy9fb2JqZWN0LWZpdC5zY3NzIiwidXRpbGl0aWVzL19wb3NpdGlvbi5zY3NzIiwidXRpbGl0aWVzL190ZXh0LnNjc3MiLCJ1dGlsaXRpZXMvX3ZlcnRpY2FsLXJoeXRobS5zY3NzIiwidXRpbGl0aWVzL196LWluZGV4LnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFNldHRpbmdzLlxyXG4qL1xyXG5AaW1wb3J0ICdzZXR0aW5ncy9hbGwnO1xyXG5cclxuLyoqXHJcbiAqIFZlbmRvci5cclxuKi9cclxuQGltcG9ydCAnLi4vLi4vYnVpbGQvbm9kZV9tb2R1bGVzL25vcm1hbGl6ZS5jc3Mvbm9ybWFsaXplJztcclxuQGltcG9ydCAnLi4vLi4vYnVpbGQvbm9kZV9tb2R1bGVzL293bC5jYXJvdXNlbC9zcmMvc2Nzcy9vd2wuY2Fyb3VzZWwnO1xyXG5cclxuLyoqXHJcbiogVG9vbHMuXHJcbiovXHJcbkBpbXBvcnQgJ3Rvb2xzL2FsbCc7XHJcblxyXG4vKipcclxuKiBHZW5lcmFsLlxyXG4qL1xyXG5AaW1wb3J0ICdnZW5lcmljL2Jhc2UnO1xyXG5AaW1wb3J0ICdnZW5lcmljL3Jlc2V0JztcclxuXHJcblxyXG4vKipcclxuICogT2JqZWN0cy5cclxuKi9cclxuQGltcG9ydCAnb2JqZWN0cy9idXR0b25zJztcclxuQGltcG9ydCAnb2JqZWN0cy9jbXMtb3V0cHV0JztcclxuQGltcG9ydCAnb2JqZWN0cy9jb250YWluZXInO1xyXG5AaW1wb3J0ICdvYmplY3RzL2NvbnRlbnQtY29uc3RyYWludCc7XHJcbkBpbXBvcnQgJ29iamVjdHMvZmxleCc7XHJcbkBpbXBvcnQgJ29iamVjdHMvZm9ybSc7XHJcbkBpbXBvcnQgJ29iamVjdHMvZm9udHMnO1xyXG5AaW1wb3J0ICdvYmplY3RzL2hlYWRpbmdzJztcclxuQGltcG9ydCAnb2JqZWN0cy9sYXp5LWxvYWQnO1xyXG5AaW1wb3J0ICdvYmplY3RzL3BhZ2luYXRpb24nO1xyXG5AaW1wb3J0ICdvYmplY3RzL3dyYXBwZXInO1xyXG5cclxuLyoqXHJcbiogQ29tcG9uZW50cy5cclxuKi9cclxuQGltcG9ydCAnY29tcG9uZW50cy9oZWFkZXInO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL3JlZ2lzdGVyJztcclxuQGltcG9ydCAnY29tcG9uZW50cy9sb2dpbic7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZm9vdGVyJztcclxuQGltcG9ydCAnY29tcG9uZW50cy92b3VjaGVyLXJlZGVlbSc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb3JkZXItZm9ybSc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVzc2FnZXMnO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL29yZGVyLWNvbmZpcm1hdGlvbic7XHJcblxyXG4vKipcclxuKiBVdGlsaXRpZXMuXHJcbiovXHJcbkBpbXBvcnQgJ3V0aWxpdGllcy9jb2xvcic7XHJcbkBpbXBvcnQgJ3V0aWxpdGllcy9oZWxwZXJzJztcclxuQGltcG9ydCAndXRpbGl0aWVzL29iamVjdC1maXQnO1xyXG5AaW1wb3J0ICd1dGlsaXRpZXMvcG9zaXRpb24nO1xyXG5AaW1wb3J0ICd1dGlsaXRpZXMvdGV4dCc7XHJcbkBpbXBvcnQgJ3V0aWxpdGllcy92ZXJ0aWNhbC1yaHl0aG0nO1xyXG5AaW1wb3J0ICd1dGlsaXRpZXMvei1pbmRleCc7XHJcbiAiLCIvKipcclxuICogU2V0dGluZ3MuXHJcbiAqL1xyXG4gXHJcbkBpbXBvcnQgJ3R5cG9ncmFwaHknO1xyXG5AaW1wb3J0ICdjb2xvcic7XHJcbkBpbXBvcnQgJ3otaW5kZXgnO1xyXG5AaW1wb3J0ICdkZWZpbml0aW9ucyc7XHJcbiIsIi8qKlxyXG4gKiBGb250IGZhbWlseSBtYXAuXHJcbiAqL1xyXG5cclxuJGZvbnQtZmFtaWx5OiAoXHJcblx0J2RlZmF1bHQnOiAnWWFudHJhbWFuYXYnLFxyXG5cdCdoZWFkaW5nJzogJ1lhbnRyYW1hbmF2JyxcclxuKTtcclxuXHJcblxyXG4vKipcclxuICogRm9udCBzaXplIG1hcC5cclxuICovXHJcblxyXG4kZm9udC1zaXplOiAoXHJcblx0J2gxJzogMjRweCxcclxuXHQnaDInOiAyNHB4LFxyXG5cdCdoMyc6IDI0cHgsXHJcblx0J2g0JzogMjJweCxcclxuXHQnaDUnOiAyMnB4LFxyXG5cdCdwJzogMThweFxyXG4pO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBMaW5lIGhlaWdodCBtYXAuXHJcbiAqL1xyXG5cclxuJGxpbmUtaGVpZ2h0OiAoXHJcblx0J2gxJzogMzBweCxcclxuXHQnaDInOiAzMHB4LFxyXG5cdCdoMyc6IDMwcHgsXHJcblx0J2g0JzogMzBweCxcclxuXHQnaDUnOiAzMHB4LFxyXG5cdCdwJzogMjlweFxyXG4pO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBGb250IHNpemUgbW9iaWxlIG1hcC5cclxuICovXHJcblxyXG4gJGZvbnQtc2l6ZS1tb2JpbGU6IChcclxuXHQnaDEnOiAzMnB4LFxyXG5cdCdoMic6IDI2cHgsXHJcblx0J2gzJzogMjJweCxcclxuXHQnaDQnOiAxOHB4LFxyXG5cdCdoNSc6IDE4cHgsXHJcblx0J3AnOiAxNHB4XHJcbik7XHJcblxyXG5cclxuLyoqXHJcbiAqIExpbmUgaGVpZ2h0IG1vYmlsZSBtYXAuXHJcbiAqL1xyXG5cclxuJGxpbmUtaGVpZ2h0LW1vYmlsZTogKFxyXG5cdCdoMSc6IDE0MCUsXHJcblx0J2gyJzogMTQwJSxcclxuXHQnaDMnOiAxNDAlLFxyXG5cdCdoNCc6IDE0MCUsXHJcblx0J2g1JzogMTQwJSxcclxuXHQncCc6IDE2MCVcclxuKTtcclxuIiwiLyoqXHJcbiAqIENvbG9yIE1hcCAoaHR0cHM6Ly9jb252ZXJ0YWNvbG9yLmNvbS8pLlxyXG4gKi9cclxuXHJcbiRjb2xvcnM6IChcclxuXHQnYmxhY2snOiAoXHJcblx0XHQnMTAwJzogaHNsYSgwLCAwJSwgMCUsIDEpLCAvLyAjMDAwMDAwLCAxMDAlXHJcblx0KSxcclxuXHQnd2hpdGUnOiAoXHJcblx0XHQnMTAwJzogaHNsYSgwLCAwJSwgMTAwJSwgMSksIC8vICNGRkZGRkYsIDEwMCVcclxuXHRcdCc5MCc6IGhzbGEoMCwgMCUsIDEwMCUsIC45KSwgLy8gI0ZGRkZGRiwgODAlXHJcblx0XHQnODAnOiBoc2xhKDAsIDAlLCAxMDAlLCAuOCksIC8vICNGRkZGRkYsIDgwJVxyXG5cdFx0JzcwJzogaHNsYSgwLCAwJSwgMTAwJSwgLjcpLCAvLyAjRkZGRkZGLCA4MCVcclxuXHRcdCc2MCc6IGhzbGEoMCwgMCUsIDEwMCUsIC42KSwgLy8gI0ZGRkZGRiwgODAlXHJcblx0XHQnNTAnOiBoc2xhKDAsIDAlLCAxMDAlLCAuNSksIC8vICNGRkZGRkYsIDgwJVxyXG5cdFx0JzQwJzogaHNsYSgwLCAwJSwgMTAwJSwgLjQpLCAvLyAjRkZGRkZGLCA4MCVcclxuXHRcdCczMCc6IGhzbGEoMCwgMCUsIDEwMCUsIC4zKSwgLy8gI0ZGRkZGRiwgODAlXHJcblx0XHQnMjAnOiBoc2xhKDAsIDAlLCAxMDAlLCAuMiksIC8vICNGRkZGRkYsIDgwJVxyXG5cdFx0JzEwJzogaHNsYSgwLCAwJSwgMTAwJSwgLjEpIC8vICNGRkZGRkYsIDgwJVxyXG5cdCksXHJcblx0J3JlZCc6IChcclxuXHRcdCcxMDAnOiBoc2xhKDM1NiwgODklLCA1NSUsIDEpLCAvLyAjRkYwMDAwLCAxMDAlXHJcblx0XHQnMTAnOiBoc2xhKDM1NiwgODklLCA1NSUsIC4xKSAvLyAjRkYwMDAwLCAxMCVcclxuXHQpLFxyXG5cdCdncmVlbic6IChcclxuXHRcdCcxMDAnOiBoc2xhKDY1LCA3NiUsIDQ3JSwgMSksIC8vICNjMmQyMWMsIDEwMCVcclxuXHRcdCc5MCc6IGhzbGEoNjUsIDc2JSwgNDclLCAuOSksIC8vICNjMmQyMWMsIDkwJVxyXG5cdFx0JzgwJzogaHNsYSg2NSwgNzYlLCA0NyUsIC44KSwgLy8gI2MyZDIxYywgODAlXHJcblx0XHQnNzAnOiBoc2xhKDY1LCA3NiUsIDQ3JSwgLjcpLCAvLyAjYzJkMjFjLCA3MCVcclxuXHRcdCc2MCc6IGhzbGEoNjUsIDc2JSwgNDclLCAuNiksIC8vICNjMmQyMWMsIDYwJVxyXG5cdFx0JzUwJzogaHNsYSg2NSwgNzYlLCA0NyUsIC41KSwgLy8gI2MyZDIxYywgNTAlXHJcblx0XHQnNDAnOiBoc2xhKDY1LCA3NiUsIDQ3JSwgLjQpLCAvLyAjYzJkMjFjLCA0MCVcclxuXHRcdCczMCc6IGhzbGEoNjUsIDc2JSwgNDclLCAuMyksIC8vICNjMmQyMWMsIDMwJVxyXG5cdFx0JzIwJzogaHNsYSg2NSwgNzYlLCA0NyUsIC4yKSwgLy8gI2MyZDIxYywgMjAlXHJcblx0XHQnMTAnOiBoc2xhKDY1LCA3NiUsIDQ3JSwgLjEpICAvLyAjYzJkMjFjLCAxMCVcclxuXHQpLFxyXG5cdCdibHVlJzogKFxyXG5cdFx0JzEwMCc6IGhzbGEoMjI0LCA1MiUsIDI2JSwgMSksIC8vICMyMDMyNjQsIDEwMCVcclxuXHRcdCc5MCc6IGhzbGEoMjI0LCA1MiUsIDI2JSwgLjkpLCAgLy8gIzIwMzI2NCwgOTAlXHJcblx0XHQnODAnOiBoc2xhKDIyNCwgNTIlLCAyNiUsIC44KSwgIC8vICMyMDMyNjQsIDgwJVxyXG5cdFx0JzcwJzogaHNsYSgyMjQsIDUyJSwgMjYlLCAuNyksICAvLyAjMjAzMjY0LCA3MCVcclxuXHRcdCc2MCc6IGhzbGEoMjI0LCA1MiUsIDI2JSwgLjYpLCAgLy8gIzIwMzI2NCwgNjAlXHJcblx0XHQnNTAnOiBoc2xhKDIyNCwgNTIlLCAyNiUsIC41KSwgIC8vICMyMDMyNjQsIDUwJVxyXG5cdFx0JzQwJzogaHNsYSgyMjQsIDUyJSwgMjYlLCAuNCksICAvLyAjMjAzMjY0LCA0MCVcclxuXHRcdCczMCc6IGhzbGEoMjI0LCA1MiUsIDI2JSwgLjMpLCAgLy8gIzIwMzI2NCwgMzAlXHJcblx0XHQnMjAnOiBoc2xhKDIyNCwgNTIlLCAyNiUsIC4yKSwgIC8vICMyMDMyNjQsIDIwJVxyXG5cdFx0JzEwJzogaHNsYSgyMjQsIDUyJSwgMjYlLCAuMSksICAvLyAjMjAzMjY0LCAxMCVcclxuXHQpLFxyXG5cdCdsaWdodC1ibHVlJzogKFxyXG5cdFx0JzEwMCc6IGhzbGEoMTk2LCAxMDAlLCA0MCUsIDEpIC8vICMwMDk4Y2UgLCAxMDAlXHJcblx0KVxyXG4pO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBDb2xvcnMgVmFyaWFibGVzLlxyXG4gKi9cclxuJGJsYWNrLTEwMDogbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICdibGFjaycpLCAnMTAwJyk7XHJcblxyXG4kd2hpdGUtMTAwOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ3doaXRlJyksICcxMDAnKTtcclxuJHdoaXRlLTkwOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ3doaXRlJyksICc5MCcpO1xyXG4kd2hpdGUtODA6IG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAnd2hpdGUnKSwgJzgwJyk7XHJcbiR3aGl0ZS03MDogbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICd3aGl0ZScpLCAnNzAnKTtcclxuJHdoaXRlLTYwOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ3doaXRlJyksICc2MCcpO1xyXG4kd2hpdGUtNTA6IG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAnd2hpdGUnKSwgJzUwJyk7XHJcbiR3aGl0ZS00MDogbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICd3aGl0ZScpLCAnNDAnKTtcclxuJHdoaXRlLTMwOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ3doaXRlJyksICczMCcpO1xyXG4kd2hpdGUtMjA6IG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAnd2hpdGUnKSwgJzIwJyk7XHJcbiR3aGl0ZS0xMDogbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICd3aGl0ZScpLCAnMTAnKTtcclxuXHJcbiRyZWQtMTAwOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ3JlZCcpLCAnMTAwJyk7XHJcbiRyZWQtMTA6IG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAncmVkJyksICcxMCcpO1xyXG5cclxuJGdyZWVuLTEwMDogbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICdncmVlbicpLCAnMTAwJyk7XHJcbiRncmVlbi05MDogbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICdncmVlbicpLCAnOTAnKTtcclxuJGdyZWVuLTgwOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2dyZWVuJyksICc4MCcpO1xyXG4kZ3JlZW4tNzA6IG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAnZ3JlZW4nKSwgJzcwJyk7XHJcbiRncmVlbi02MDogbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICdncmVlbicpLCAnNjAnKTtcclxuJGdyZWVuLTUwOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2dyZWVuJyksICc1MCcpO1xyXG4kZ3JlZW4tNDA6IG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAnZ3JlZW4nKSwgJzQwJyk7XHJcbiRncmVlbi0zMDogbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICdncmVlbicpLCAnMzAnKTtcclxuJGdyZWVuLTIwOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2dyZWVuJyksICcyMCcpO1xyXG4kZ3JlZW4tMTA6IG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAnZ3JlZW4nKSwgJzEwJyk7XHJcblxyXG4kYmx1ZS0xMDA6IG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAnYmx1ZScpLCAnMTAwJyk7XHJcbiRibHVlLTkwOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2JsdWUnKSwgJzkwJyk7XHJcbiRibHVlLTgwOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2JsdWUnKSwgJzgwJyk7XHJcbiRibHVlLTcwOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2JsdWUnKSwgJzcwJyk7XHJcbiRibHVlLTYwOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2JsdWUnKSwgJzYwJyk7XHJcbiRibHVlLTUwOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2JsdWUnKSwgJzUwJyk7XHJcbiRibHVlLTQwOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2JsdWUnKSwgJzQwJyk7XHJcbiRibHVlLTMwOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2JsdWUnKSwgJzMwJyk7XHJcbiRibHVlLTIwOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2JsdWUnKSwgJzIwJyk7XHJcbiRibHVlLTEwOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJ2JsdWUnKSwgJzEwJyk7XHJcblxyXG4kbGlnaHQtYmx1ZS0xMDA6IG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAnbGlnaHQtYmx1ZScpLCAnMTAwJyk7XHJcbiIsIi8vIEEgbGltaXRlZCBhcnJheSBvZiB2YWx1ZXMgZm9yIHRoZSBgei1pbmRleGAgcHJvcGVydHkgdG8gcHJldmVudFxyXG4vLyBFeGFnZ2VyYXRlZCBhbW91bnRzIGFuZCB1Z2x5IGhhY2tzLlxyXG5cclxuJHotaW5kZXg6IChcclxuXHQnMCc6ICAwLFxyXG5cdCcxJzogIDEwLFxyXG5cdCcyJzogIDIwLFxyXG5cdCczJzogIDMwLFxyXG5cdCc0JzogIDQwLFxyXG5cdCc1JzogIDUwLFxyXG5cdCc2JzogIDYwLFxyXG5cdCc3JzogIDcwLFxyXG5cdCc4JzogIDgwLFxyXG5cdCc5JzogIDkwLFxyXG5cdCcxMCc6IDEwMFxyXG4pO1xyXG4iLCIvKipcclxuICogR3JpZC5cclxuICovXHJcblxyXG4vLyBHcmlkIHdpZHRoLlxyXG4vLyBNYXhpbXVtIGNvbnRhaW5lciB3aWR0aC5cclxuJGdyaWQtd2lkdGg6IDEwMjRweDtcclxuXHJcbi8vIEdyaWQgY29sdW1ucy5cclxuLy8gQW1vdW50IG9mIGdyaWQgY29sdW1ucyB0byBjYWxjdWxhdGUgYSBjb2x1bW4gd2lkdGggd2l0aC5cclxuJGdyaWQtY29sdW1uczogMTI7XHJcblxyXG4vLyBHcmlkIGdhcC5cclxuLy8gU3BhY2UgYmV0d2VlbiBncmlkIGNvbHVtbnMsIGF1dG9tYXRlZC5cclxuJGdyaWQtZ2FwOiAyMHB4O1xyXG5cclxuXHJcbi8qKlxyXG4gKiBBc3NldHMuXHJcbiAqL1xyXG5cclxuLy8gSW1hZ2UgcGF0aC5cclxuJGltYWdlLXBhdGg6ICcuLi9pbWFnZXMvJztcclxuXHJcblxyXG4vKipcclxuICogQm9keS5cclxuICovXHJcblxyXG4vLyBCb2R5IGJhY2tncm91bmQgY29sb3IuXHJcbiRib2R5LWJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS0xMDA7XHJcblxyXG4vLyBCb2R5IGNvbG9yLlxyXG4kYm9keS1jb2xvcjogJGJsYWNrLTEwMDtcclxuXHJcbi8vIEJvZHkgZm9udCBmYW1pbHkuXHJcbiRib2R5LWZvbnQtZmFtaWx5OiBtYXAtZ2V0KCRmb250LWZhbWlseSwgJ2RlZmF1bHQnKTtcclxuXHJcbi8vIEJvZHkgdGV4dC5cclxuJGJvZHktdGV4dDogJ3AnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBPdGhlci5cclxuICovXHJcblxyXG4vLyBMaW5rIGNvbG9yLlxyXG4kbGluay1jb2xvcjogJGJsYWNrLTEwMDtcclxuXHJcbi8vIFNlbGVjdCBjb2xvci5cclxuKjo6c2VsZWN0aW9uIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW4tMTAwO1xyXG4gIGNvbG9yOiAkd2hpdGUtMTAwO1xyXG59XHJcblxyXG4vKipcclxuICogUmVzcG9uc2l2ZS5cclxuICovXHJcblxyXG4vLyBHcmlkIGJyZWFrcG9pbnQgYWxpYXMuXHJcbiRicmVha3BvaW50czogKFxyXG5cdHhzOiBudWxsLFxyXG5cdHNtOiAncGhvbmUnLFxyXG5cdG1kOiAndGFibGV0LXBvcnRyYWl0LXVwJyxcclxuXHRsZzogJ3RhYmxldC1sYW5kc2NhcGUtdXAnLFxyXG5cdHhsOiAnZGVza3RvcCdcclxuKTtcclxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIkBpbXBvcnQgJ2NvcmUnO1xuQGltcG9ydCAnYW5pbWF0ZSc7XG5AaW1wb3J0ICdhdXRvaGVpZ2h0JztcbkBpbXBvcnQgJ2xhenlsb2FkJztcbkBpbXBvcnQgJ3ZpZGVvJztcbiIsIi8qXG4gKiAgT3dsIENhcm91c2VsIC0gQ29yZVxuICovXG4ub3dsLWNhcm91c2VsIHtcblx0ZGlzcGxheTogbm9uZTtcblx0d2lkdGg6IDEwMCU7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdC8qIHBvc2l0aW9uIHJlbGF0aXZlIGFuZCB6LWluZGV4IGZpeCB3ZWJraXQgcmVuZGVyaW5nIGZvbnRzIGlzc3VlICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMTtcblxuXHQub3dsLXN0YWdlIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0LW1zLXRvdWNoLWFjdGlvbjogcGFuLVk7XG5cdFx0dG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG5cdFx0LW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IC8qIGZpeCBmaXJlZm94IGFuaW1hdGlvbiBnbGl0Y2ggKi9cblx0fVxuXG5cdC5vd2wtc3RhZ2U6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiLlwiO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGNsZWFyOiBib3RoO1xuXHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHRsaW5lLWhlaWdodDogMDtcblx0XHRoZWlnaHQ6IDA7XG5cdH1cblxuXHQub3dsLXN0YWdlLW91dGVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHQvKiBmaXggZm9yIGZsYXNoaW5nIGJhY2tncm91bmQgKi9cblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwcHgsIDBweCk7XG5cdH1cblxuXHQub3dsLXdyYXBwZXIsXG5cdC5vd2wtaXRlbXtcblx0XHQtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHQtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHQtbXMtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG5cdFx0LW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcblx0XHQtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG5cdH1cblxuXHQub3dsLWl0ZW0ge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRtaW4taGVpZ2h0OiAxcHg7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHQtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG5cdH1cblx0Lm93bC1pdGVtIGltZyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHQub3dsLW5hdi5kaXNhYmxlZCxcblx0Lm93bC1kb3RzLmRpc2FibGVkIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0Lm93bC1uYXYgLm93bC1wcmV2LFxuXHQub3dsLW5hdiAub3dsLW5leHQsXG5cdC5vd2wtZG90IHtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0XHQta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0XHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdH1cblxuXHQub3dsLW5hdiBidXR0b24ub3dsLXByZXYsXG5cdC5vd2wtbmF2IGJ1dHRvbi5vd2wtbmV4dCxcblx0YnV0dG9uLm93bC1kb3Qge1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHRcdHBhZGRpbmc6MCFpbXBvcnRhbnQ7XG5cdFx0Zm9udDogaW5oZXJpdDtcblx0fVxuXG5cdCYub3dsLWxvYWRlZCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHQmLm93bC1sb2FkaW5nIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0Ji5vd2wtaGlkZGVuIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cblx0Ji5vd2wtcmVmcmVzaCAub3dsLWl0ZW0ge1xuXHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0fVxuXG5cdCYub3dsLWRyYWcgLm93bC1pdGVtIHtcblx0XHR0b3VjaC1hY3Rpb246IHBhbi15O1xuXHRcdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0XHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdH1cblxuXHQmLm93bC1ncmFiIHtcblx0XHRjdXJzb3I6IG1vdmU7XG5cdFx0Y3Vyc29yOiBncmFiO1xuXHR9XG5cblx0Ji5vd2wtcnRsIHtcblx0XHRkaXJlY3Rpb246IHJ0bDtcblx0fVxuXG5cdCYub3dsLXJ0bCAub3dsLWl0ZW0ge1xuXHRcdGZsb2F0OiByaWdodDtcblx0fVxufVxuXG4vKiBObyBKcyAqL1xuLm5vLWpzIC5vd2wtY2Fyb3VzZWwge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cbiIsIi8qXG4gKiAgT3dsIENhcm91c2VsIC0gQW5pbWF0ZSBQbHVnaW5cbiAqL1xuLm93bC1jYXJvdXNlbHtcblx0LmFuaW1hdGVkIHtcblx0XHRhbmltYXRpb24tZHVyYXRpb246IDEwMDBtcztcblx0XHRhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuXHR9XG5cdC5vd2wtYW5pbWF0ZWQtaW4ge1xuXHRcdHotaW5kZXg6IDA7XG5cdH1cblx0Lm93bC1hbmltYXRlZC1vdXQge1xuXHRcdHotaW5kZXg6IDE7XG5cdH1cblx0LmZhZGVPdXQge1xuXHRcdGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0O1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dCB7XG5cdDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxufVxuIiwiLypcbiAqIFx0T3dsIENhcm91c2VsIC0gQXV0byBIZWlnaHQgUGx1Z2luXG4gKi9cblxuLm93bC1oZWlnaHQge1xuXHR0cmFuc2l0aW9uOiBoZWlnaHQgNTAwbXMgZWFzZS1pbi1vdXQ7XG59XG4iLCIvKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBMYXp5IExvYWQgUGx1Z2luXG4gKi9cblxuLm93bC1jYXJvdXNlbCB7XG5cdC5vd2wtaXRlbSB7XG5cdFx0Lm93bC1sYXp5IHtcblx0XHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlO1xuXHRcdH1cblxuXHRcdC8qKlxuXHRcdFx0VGhpcyBpcyBpbnRyb2R1Y2VkIGR1ZSB0byBhIGJ1ZyBpbiBJRTExIHdoZXJlIGxhenkgbG9hZGluZyBjb21iaW5lZCB3aXRoIGF1dG9oZWlnaHQgcGx1Z2luIGNhdXNlcyBhIHdyb25nXG5cdFx0XHRjYWxjdWxhdGlvbiBvZiB0aGUgaGVpZ2h0IG9mIHRoZSBvd2wtaXRlbSB0aGF0IGJyZWFrcyBwYWdlIGxheW91dHNcblx0XHQgKi9cblx0XHQub3dsLWxhenlbc3JjXj1cIlwiXSwgLm93bC1sYXp5Om5vdChbc3JjXSkge1xuXHRcdFx0bWF4LWhlaWdodDogMDtcblx0XHR9XG5cblx0XHRpbWcub3dsLWxhenkge1xuXHRcdFx0dHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcblx0XHR9XG5cdH1cbn1cblxuIiwiJG93bC1pbWFnZS1wYXRoOiBcIlwiICFkZWZhdWx0O1xuXG4vKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBWaWRlbyBQbHVnaW5cbiAqL1xuXG4ub3dsLWNhcm91c2Vse1xuXHQub3dsLXZpZGVvLXdyYXBwZXIge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0YmFja2dyb3VuZDogIzAwMDtcblx0fVxuXG5cdC5vd2wtdmlkZW8tcGxheS1pY29uIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0aGVpZ2h0OiA4MHB4O1xuXHRcdHdpZHRoOiA4MHB4O1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0b3A6IDUwJTtcblx0XHRtYXJnaW4tbGVmdDogLTQwcHg7XG5cdFx0bWFyZ2luLXRvcDogLTQwcHg7XG5cdFx0YmFja2dyb3VuZDogdXJsKFwiI3skb3dsLWltYWdlLXBhdGh9b3dsLnZpZGVvLnBsYXkucG5nXCIpIG5vLXJlcGVhdDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0ei1pbmRleDogMTtcblx0XHQtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTAwbXMgZWFzZTtcblx0fVxuXG5cdC5vd2wtdmlkZW8tcGxheS1pY29uOmhvdmVyIHtcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDEuMywgMS4zKTtcblx0fVxuXG5cdC5vd2wtdmlkZW8tcGxheWluZyAub3dsLXZpZGVvLXRuLFxuXHQub3dsLXZpZGVvLXBsYXlpbmcgLm93bC12aWRlby1wbGF5LWljb24ge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQub3dsLXZpZGVvLXRuIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuXHRcdHRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZTtcblx0fVxuXG5cdC5vd2wtdmlkZW8tZnJhbWUge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR6LWluZGV4OiAxO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuIiwiLyoqXHJcbiAqIFRvb2xzLlxyXG4gKi9cclxuXHJcbkBpbXBvcnQgJ2Z1bmN0aW9ucyc7XHJcbkBpbXBvcnQgJ21hZ25pZmljLXBvcHVwJztcclxuQGltcG9ydCAnbWl4aW5zJztcclxuIiwiLyoqXHJcbiAqIFVuaWNvZGUuXHJcbiAqXHJcbiAqIFByZXNlcnZlIGVzY2FwZWQgdW5pY29kZSBzdHJpbmcuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSAkc3RyaW5nIC0gQW4gdW5pY29kZSBzdHJpbmcuXHJcbiAqIEByZXR1cm4ge1N0cmluZ30gQSBwcmVzZXJ2ZWQgZXNjYXBlZCB1bmljb2RlIHN0cmluZ1xyXG4gKi9cclxuIFxyXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBxdW90ZXNcclxuQGZ1bmN0aW9uIHVuaWNvZGUoJHN0cmluZykge1xyXG5cdEByZXR1cm4gdW5xdW90ZShcIlxcJ1wiKSArIHVucXVvdGUoc3RyLWluc2VydCgkc3RyaW5nLCAnXFxcXCcsIDEpKSArIHVucXVvdGUoXCJcXCdcIik7XHJcbn1cclxuLy8gc2Fzcy1saW50OmVuYWJsZSBxdW90ZXNcclxuXHJcblxyXG4vKipcclxuICogUkVNLlxyXG4gKlxyXG4gKiBDb252ZXJ0IHBpeGVsIHVuaXRzIHRvIFJFTSB1bml0cy5cclxuICogQHBhcmFtIHtOdW1iZXJ9ICRwaXhlbHMgLSBQaXhlbCB2YWx1ZS5cclxuICogQHJldHVybiB7Kn0gLSBBIGNvbnZlcnRlZCBgcmVtYCB1bml0LlxyXG4gKi9cclxuXHJcbkBmdW5jdGlvbiByZW0oJHBpeGVscykge1xyXG5cdEBpZiAodW5pdGxlc3MoJHBpeGVscykpIHtcclxuXHRcdEBlcnJvciAnVmFsdWUgZm9yIGAjeyRwaXhlbHN9YCBzaG91bGQgYmUgYSBgcHhgIHVuaXQuJztcclxuXHR9XHJcblx0QHJldHVybiBjYWxjKCgkcGl4ZWxzIC8gMTBweCkgKiAxcmVtKTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBDb2x1bW4uXHJcbiAqXHJcbiAqIENhbGN1bGF0ZSBnaXZlbiBjb2x1bW4gd2lkdGguXHJcbiAqIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1uIC0gVGhlIGFtb3VudCBvZiBjb2x1bW5zIHRvIHNwYW4uXHJcbiAqIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyAtIFRoZSBhbW91bnQgb2YgY29sdW1ucyB0aGF0IGNhbiBiZSBzcGFubmVkLlxyXG4gKiBAcmV0dXJuIHtTdHJpbmd9IC0gUGVyY2VudGFnZSB2YWx1ZS5cclxuICovXHJcblxyXG5AZnVuY3Rpb24gY29sdW1uKCRjb2x1bW4sICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XHJcblx0QHJldHVybiBjYWxjKCRjb2x1bW4gICogMTAwJSAvICRjb2x1bW5zKTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBDb2xvci5cclxuICpcclxuICogR2V0IGEgY29sb3IgdmFsdWUgZnJvbSB0d28gbGV2ZWxzIGRlZXAgaW4gdGhlIGAkY29sb3JgIG1hcC5cclxuICogQHBhcmFtIHskc3RyaW5nfSAka2V5IC0gS2V5IG9mIHRoZSBjb2xvciB0byBnZXQgZnJvbSB0aGUgbWFwLlxyXG4gKiBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgb2YgdGhlIGtleSB0byBnZXQgZnJvbSB0aGUgbWFwLlxyXG4gKiBAcmV0dXJuIHsqfSBBIEhTTEEgY29sb3IgdmFsdWUuXHJcbiAqL1xyXG5cclxuQGZ1bmN0aW9uIGNvbG9yKCRrZXksICR2YWx1ZSkge1xyXG5cdEByZXR1cm4gbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICRrZXkpLCAkdmFsdWUpO1xyXG59XHJcbiIsIi8vIHNhc3MtbGludDpkaXNhYmxlIGluZGVudGF0aW9uIG5vLXF1YWxpZnlpbmctZWxlbWVudHMgc2hvcnRoYW5kLXZhbHVlcyBzaW5nbGUtbGluZS1wZXItc2VsZWN0b3IgY2xhc3MtbmFtZS1mb3JtYXQgbm8taWRzIGlkLW5hbWUtZm9ybWF0IHByb3BlcnR5LXNvcnQtb3JkZXIgbm8tY29sb3ItbGl0ZXJhbHMgaGV4LW5vdGF0aW9uIGJyYWNlLXN0eWxlIHplcm8tdW5pdCBzcGFjZS1hZnRlci1jb2xvbiBlbXB0eS1saW5lLWJldHdlZW4tYmxvY2tzXHJcblxyXG5cclxuLyogTWFnbmlmaWMgUG9wdXAgQ1NTICovXHJcbi5tZnAtYmcge1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB6LWluZGV4OiAxMDQyO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIGJhY2tncm91bmQ6ICMwYjBiMGI7XHJcbiAgb3BhY2l0eTogMC44OyB9XHJcblxyXG4ubWZwLXdyYXAge1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB6LWluZGV4OiAxMDQzO1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cclxuXHJcbi5tZnAtY29udGFpbmVyIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBsZWZ0OiAwO1xyXG4gIHRvcDogMDtcclxuICBwYWRkaW5nOiAwIDhweDtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XHJcblxyXG4ubWZwLWNvbnRhaW5lcjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6ICcnO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxyXG5cclxuLm1mcC1hbGlnbi10b3AgLm1mcC1jb250YWluZXI6YmVmb3JlIHtcclxuICBkaXNwbGF5OiBub25lOyB9XHJcblxyXG4ubWZwLWNvbnRlbnQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICBtYXJnaW46IDAgYXV0bztcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIHotaW5kZXg6IDEwNDU7IH1cclxuXHJcbi5tZnAtaW5saW5lLWhvbGRlciAubWZwLWNvbnRlbnQsXHJcbi5tZnAtYWpheC1ob2xkZXIgLm1mcC1jb250ZW50IHtcclxuICB3aWR0aDogMTAwJTtcclxuICBjdXJzb3I6IGF1dG87IH1cclxuXHJcbi5tZnAtYWpheC1jdXIge1xyXG4gIGN1cnNvcjogcHJvZ3Jlc3M7IH1cclxuXHJcbi5tZnAtem9vbS1vdXQtY3VyLCAubWZwLXpvb20tb3V0LWN1ciAubWZwLWltYWdlLWhvbGRlciAubWZwLWNsb3NlIHtcclxuICBjdXJzb3I6IC1tb3otem9vbS1vdXQ7XHJcbiAgY3Vyc29yOiAtd2Via2l0LXpvb20tb3V0O1xyXG4gIGN1cnNvcjogem9vbS1vdXQ7IH1cclxuXHJcbi5tZnAtem9vbSB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGN1cnNvcjogLXdlYmtpdC16b29tLWluO1xyXG4gIGN1cnNvcjogLW1vei16b29tLWluO1xyXG4gIGN1cnNvcjogem9vbS1pbjsgfVxyXG5cclxuLm1mcC1hdXRvLWN1cnNvciAubWZwLWNvbnRlbnQge1xyXG4gIGN1cnNvcjogYXV0bzsgfVxyXG5cclxuLm1mcC1jbG9zZSxcclxuLm1mcC1hcnJvdyxcclxuLm1mcC1wcmVsb2FkZXIsXHJcbi5tZnAtY291bnRlciB7XHJcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIHVzZXItc2VsZWN0OiBub25lOyB9XHJcblxyXG4ubWZwLWxvYWRpbmcubWZwLWZpZ3VyZSB7XHJcbiAgZGlzcGxheTogbm9uZTsgfVxyXG5cclxuLm1mcC1oaWRlIHtcclxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cclxuXHJcbi5tZnAtcHJlbG9hZGVyIHtcclxuICBjb2xvcjogI0NDQztcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG1hcmdpbi10b3A6IC0wLjhlbTtcclxuICBsZWZ0OiA4cHg7XHJcbiAgcmlnaHQ6IDhweDtcclxuICB6LWluZGV4OiAxMDQ0OyB9XHJcbiAgLm1mcC1wcmVsb2FkZXIgYSB7XHJcbiAgICBjb2xvcjogI0NDQzsgfVxyXG4gICAgLm1mcC1wcmVsb2FkZXIgYTpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiAjRkZGOyB9XHJcblxyXG4ubWZwLXMtcmVhZHkgLm1mcC1wcmVsb2FkZXIge1xyXG4gIGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcbi5tZnAtcy1lcnJvciAubWZwLWNvbnRlbnQge1xyXG4gIGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcbmJ1dHRvbi5tZnAtY2xvc2UsXHJcbmJ1dHRvbi5tZnAtYXJyb3cge1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICBib3JkZXI6IDA7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgcGFkZGluZzogMDtcclxuICB6LWluZGV4OiAxMDQ2O1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH1cclxuXHJcbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XHJcbiAgcGFkZGluZzogMDtcclxuICBib3JkZXI6IDA7IH1cclxuXHJcbi5tZnAtY2xvc2Uge1xyXG4gIHdpZHRoOiA0NHB4O1xyXG4gIGhlaWdodDogNDRweDtcclxuICBsaW5lLWhlaWdodDogNDRweDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgdG9wOiAwO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgb3BhY2l0eTogMC42NTtcclxuICBwYWRkaW5nOiAwIDAgMThweCAxMHB4O1xyXG4gIGNvbG9yOiAjRkZGO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXNpemU6IDI4cHg7XHJcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBCYXNrZXJ2aWxsZSwgbW9ub3NwYWNlOyB9XHJcbiAgLm1mcC1jbG9zZTpob3ZlcixcclxuICAubWZwLWNsb3NlOmZvY3VzIHtcclxuICAgIG9wYWNpdHk6IDE7IH1cclxuICAubWZwLWNsb3NlOmFjdGl2ZSB7XHJcbiAgICB0b3A6IDFweDsgfVxyXG5cclxuLm1mcC1jbG9zZS1idG4taW4gLm1mcC1jbG9zZSB7XHJcbiAgY29sb3I6ICMzMzM7IH1cclxuXHJcbi5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtY2xvc2UsXHJcbi5tZnAtaWZyYW1lLWhvbGRlciAubWZwLWNsb3NlIHtcclxuICBjb2xvcjogI0ZGRjtcclxuICByaWdodDogLTZweDtcclxuICB0ZXh0LWFsaWduOiByaWdodDtcclxuICBwYWRkaW5nLXJpZ2h0OiA2cHg7XHJcbiAgd2lkdGg6IDEwMCU7IH1cclxuXHJcbi5tZnAtY291bnRlciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICByaWdodDogMDtcclxuICBjb2xvcjogI0NDQztcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxyXG5cclxuLm1mcC1hcnJvdyB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIG9wYWNpdHk6IDAuNjU7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHRvcDogNTAlO1xyXG4gIG1hcmdpbi10b3A6IC01NXB4O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgd2lkdGg6IDkwcHg7XHJcbiAgaGVpZ2h0OiAxMTBweDtcclxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XHJcbiAgLm1mcC1hcnJvdzphY3RpdmUge1xyXG4gICAgbWFyZ2luLXRvcDogLTU0cHg7IH1cclxuICAubWZwLWFycm93OmhvdmVyLFxyXG4gIC5tZnAtYXJyb3c6Zm9jdXMge1xyXG4gICAgb3BhY2l0eTogMTsgfVxyXG4gIC5tZnAtYXJyb3c6YmVmb3JlLFxyXG4gIC5tZnAtYXJyb3c6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAwO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIG1hcmdpbi10b3A6IDM1cHg7XHJcbiAgICBtYXJnaW4tbGVmdDogMzVweDtcclxuICAgIGJvcmRlcjogbWVkaXVtIGluc2V0IHRyYW5zcGFyZW50OyB9XHJcbiAgLm1mcC1hcnJvdzphZnRlciB7XHJcbiAgICBib3JkZXItdG9wLXdpZHRoOiAxM3B4O1xyXG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMTNweDtcclxuICAgIHRvcDogOHB4OyB9XHJcbiAgLm1mcC1hcnJvdzpiZWZvcmUge1xyXG4gICAgYm9yZGVyLXRvcC13aWR0aDogMjFweDtcclxuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIxcHg7XHJcbiAgICBvcGFjaXR5OiAwLjc7IH1cclxuXHJcbi5tZnAtYXJyb3ctbGVmdCB7XHJcbiAgbGVmdDogMDsgfVxyXG4gIC5tZnAtYXJyb3ctbGVmdDphZnRlciB7XHJcbiAgICBib3JkZXItcmlnaHQ6IDE3cHggc29saWQgI0ZGRjtcclxuICAgIG1hcmdpbi1sZWZ0OiAzMXB4OyB9XHJcbiAgLm1mcC1hcnJvdy1sZWZ0OmJlZm9yZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogMjVweDtcclxuICAgIGJvcmRlci1yaWdodDogMjdweCBzb2xpZCAjM0YzRjNGOyB9XHJcblxyXG4ubWZwLWFycm93LXJpZ2h0IHtcclxuICByaWdodDogMDsgfVxyXG4gIC5tZnAtYXJyb3ctcmlnaHQ6YWZ0ZXIge1xyXG4gICAgYm9yZGVyLWxlZnQ6IDE3cHggc29saWQgI0ZGRjtcclxuICAgIG1hcmdpbi1sZWZ0OiAzOXB4OyB9XHJcbiAgLm1mcC1hcnJvdy1yaWdodDpiZWZvcmUge1xyXG4gICAgYm9yZGVyLWxlZnQ6IDI3cHggc29saWQgIzNGM0YzRjsgfVxyXG5cclxuLm1mcC1pZnJhbWUtaG9sZGVyIHtcclxuICBwYWRkaW5nLXRvcDogNDBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNDBweDsgfVxyXG4gIC5tZnAtaWZyYW1lLWhvbGRlciAubWZwLWNvbnRlbnQge1xyXG4gICAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogOTAwcHg7IH1cclxuICAubWZwLWlmcmFtZS1ob2xkZXIgLm1mcC1jbG9zZSB7XHJcbiAgICB0b3A6IC00MHB4OyB9XHJcblxyXG4ubWZwLWlmcmFtZS1zY2FsZXIge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHBhZGRpbmctdG9wOiA1Ni4yNSU7IH1cclxuICAubWZwLWlmcmFtZS1zY2FsZXIgaWZyYW1lIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuNik7XHJcbiAgICBiYWNrZ3JvdW5kOiAjMDAwOyB9XHJcblxyXG4vKiBNYWluIGltYWdlIGluIHBvcHVwICovXHJcbmltZy5tZnAtaW1nIHtcclxuICB3aWR0aDogYXV0bztcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGxpbmUtaGVpZ2h0OiAwO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgcGFkZGluZzogNDBweCAwIDQwcHg7XHJcbiAgbWFyZ2luOiAwIGF1dG87IH1cclxuXHJcbi8qIFRoZSBzaGFkb3cgYmVoaW5kIHRoZSBpbWFnZSAqL1xyXG4ubWZwLWZpZ3VyZSB7XHJcbiAgbGluZS1oZWlnaHQ6IDA7IH1cclxuICAubWZwLWZpZ3VyZTphZnRlciB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB0b3A6IDQwcHg7XHJcbiAgICBib3R0b206IDQwcHg7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB6LWluZGV4OiAtMTtcclxuICAgIGJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjYpO1xyXG4gICAgYmFja2dyb3VuZDogIzQ0NDsgfVxyXG4gIC5tZnAtZmlndXJlIHNtYWxsIHtcclxuICAgIGNvbG9yOiAjQkRCREJEO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBsaW5lLWhlaWdodDogMTRweDsgfVxyXG4gIC5tZnAtZmlndXJlIGZpZ3VyZSB7XHJcbiAgICBtYXJnaW46IDA7IH1cclxuXHJcbi5tZnAtYm90dG9tLWJhciB7XHJcbiAgbWFyZ2luLXRvcDogLTM2cHg7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMTAwJTtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGN1cnNvcjogYXV0bzsgfVxyXG5cclxuLm1mcC10aXRsZSB7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxuICBsaW5lLWhlaWdodDogMThweDtcclxuICBjb2xvcjogI0YzRjNGMztcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgcGFkZGluZy1yaWdodDogMzZweDsgfVxyXG5cclxuLm1mcC1pbWFnZS1ob2xkZXIgLm1mcC1jb250ZW50IHtcclxuICBtYXgtd2lkdGg6IDEwMCU7IH1cclxuXHJcbi5tZnAtZ2FsbGVyeSAubWZwLWltYWdlLWhvbGRlciAubWZwLWZpZ3VyZSB7XHJcbiAgY3Vyc29yOiBwb2ludGVyOyB9XHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MDBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSwgc2NyZWVuIGFuZCAobWF4LWhlaWdodDogMzAwcHgpIHtcclxuICAvKipcclxuICAgICAgICogUmVtb3ZlIGFsbCBwYWRkaW5ncyBhcm91bmQgdGhlIGltYWdlIG9uIHNtYWxsIHNjcmVlblxyXG4gICAgICAgKi9cclxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1pbWFnZS1ob2xkZXIge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxyXG4gIC5tZnAtaW1nLW1vYmlsZSBpbWcubWZwLWltZyB7XHJcbiAgICBwYWRkaW5nOiAwOyB9XHJcbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtZmlndXJlOmFmdGVyIHtcclxuICAgIHRvcDogMDtcclxuICAgIGJvdHRvbTogMDsgfVxyXG4gIC5tZnAtaW1nLW1vYmlsZSAubWZwLWZpZ3VyZSBzbWFsbCB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICBtYXJnaW4tbGVmdDogNXB4OyB9XHJcbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtYm90dG9tLWJhciB7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICB0b3A6IGF1dG87XHJcbiAgICBwYWRkaW5nOiAzcHggNXB4O1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxyXG4gICAgLm1mcC1pbWctbW9iaWxlIC5tZnAtYm90dG9tLWJhcjplbXB0eSB7XHJcbiAgICAgIHBhZGRpbmc6IDA7IH1cclxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1jb3VudGVyIHtcclxuICAgIHJpZ2h0OiA1cHg7XHJcbiAgICB0b3A6IDNweDsgfVxyXG4gIC5tZnAtaW1nLW1vYmlsZSAubWZwLWNsb3NlIHtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgd2lkdGg6IDM1cHg7XHJcbiAgICBoZWlnaHQ6IDM1cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMzVweDtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDA7IH0gfVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogOTAwcHgpIHtcclxuICAubWZwLWFycm93IHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMC43NSk7IH1cclxuICAubWZwLWFycm93LWxlZnQge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwO1xyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMDsgfVxyXG4gIC5tZnAtYXJyb3ctcmlnaHQge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlO1xyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJTsgfVxyXG4gIC5tZnAtY29udGFpbmVyIHtcclxuICAgIHBhZGRpbmctbGVmdDogNnB4O1xyXG4gICAgcGFkZGluZy1yaWdodDogNnB4OyB9IH1cclxuXHJcbi8vIHNhc3MtbGludDplbmFibGUgaW5kZW50YXRpb24gbm8tcXVhbGlmeWluZy1lbGVtZW50cyBzaG9ydGhhbmQtdmFsdWVzIHNpbmdsZS1saW5lLXBlci1zZWxlY3RvciBjbGFzcy1uYW1lLWZvcm1hdCBuby1pZHMgaWQtbmFtZS1mb3JtYXQgcHJvcGVydHktc29ydC1vcmRlciBuby1jb2xvci1saXRlcmFscyBoZXgtbm90YXRpb24gYnJhY2Utc3R5bGUgemVyby11bml0IHNwYWNlLWFmdGVyLWNvbG9uIGVtcHR5LWxpbmUtYmV0d2Vlbi1ibG9ja3NcclxuIiwiLyoqXHJcbiAqIENvbnRhaW5lclxyXG4gKiBcclxuICogQ2VudGVyIGFsaWducyBlbGVtZW50IHdpdGggZ2l2ZW4gbWF4aW11bSB3aWR0aCwgcGFkZGluZywgYW5kIG1hcmdpbnMgdG9wIGFuZCBib3R0b20uXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSAkd2lkdGggLSBQaXhlbCB1bml0IHZhbHVlLlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gJGdhcCAtIFBpeGVsIHVuaXQgdmFsdWUuXHJcbiAqIEBleGFtcGxlIEBpbmNsdWRlIGNvbnRhaW5lcigxMDI0cHgsIDIwcHgpO1xyXG4gKi9cclxuXHJcbkBtaXhpbiBjb250YWluZXIoJHdpZHRoOiAkZ3JpZC13aWR0aCwgJGdhcDogJGdyaWQtZ2FwKSB7XHJcblx0QGlmICh0eXBlLW9mKCR3aWR0aCkgPT0gbnVtYmVyIGFuZCB0eXBlLW9mKCRnYXApID09IG51bWJlcikge1xyXG5cdFx0QGlmICgkZ2FwICE9IDApIHtcclxuXHRcdFx0bWF4LXdpZHRoOiBjYWxjKCN7JHdpZHRofSArICN7KCRnYXAgKiAyKX0pO1xyXG5cdFx0XHRwYWRkaW5nOiAwICRnYXA7XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0bWF4LXdpZHRoOiAkd2lkdGg7XHJcblx0XHR9XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdG1hcmdpbjogMCBhdXRvO1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0QGVycm9yICdBcmd1bWVudHMgYCR3aWR0aGAgYW5kIGAkZ2FwYCBzaG91bGQgYmUgYSBudW1iZXInO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBTZWN0aW9uXHJcbiAqXHJcbiAqIEFkZCB0b3AgYW5kIGJvdHRvbSBzcGFjaW5nIHRvIGVsZW1lbnQgdXNpbmcgcGFkZGluZ3MuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSAkdG9wIC0gUGl4ZWwgdW5pdCB2YWx1ZS5cclxuICogQHBhcmFtIHtTdHJpbmd9ICRib3R0b20gLSBQaXhlbCB1bml0IHZhbHVlLlxyXG4gKiBAZXhhbXBsZSBAaW5jbHVkZSBzZWN0aW9uKDEwMHB4LCAxMDBweCk7XHJcbiAqLyBcclxuXHJcbkBtaXhpbiBzZWN0aW9uKCR0b3A6IDAsICRib3R0b206IDApIHtcclxuXHRAaWYgKHR5cGUtb2YoJHRvcCkgPT0gbnVtYmVyIGFuZCB0eXBlLW9mKCRib3R0b20pID09IG51bWJlcikge1xyXG5cdFx0cGFkZGluZzogJHRvcCAwICRib3R0b207XHJcblx0fSBAZWxzZSB7XHJcblx0XHRAZXJyb3IgJ0FyZ3VtZW50cyBgJHRvcGAgYW5kIGBib3R0b21gIHNob3VsZCBiZSBhIG51bWJlcic7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEZvbnQuXHJcbiAqXHJcbiAqIEFkZHMgYHJlbWAgdW5pdCBiYXNlZCBmb250IHNpemUgcHJvcGVydHksIGEgZmFsbGJhY2sgYHB4YCB1bml0IGJhc2VkIGZvbnQgc2l6ZSBwcm9wZXJ0eSwgYW5kIGEgYGVtYCB1bml0IGJhc2VkIGxpbmUgaGVpZ2h0IHByb3BlcnR5IHRvIGFueSBydWxlLlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gJGZvbnQtc2l6ZSAtIFBpeGVsIHVuaXQgdmFsdWUuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSAkbGluZS1oZWlnaHQgLSBQaXhlbCB1bml0IHZhbHVlLlxyXG4gKiBAZXhhbXBsZSBAaW5jbHVkZSBmb250LXNpemUoMTZweCwgMjRweCk7XHJcbiAqL1xyXG5cclxuQG1peGluIGZvbnQoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0KSB7XHJcblx0QGlmICh0eXBlLW9mKCRmb250LXNpemUpID09IG51bWJlciBhbmQgdW5pdCgkZm9udC1zaXplKSA9PSAncHgnKSB7XHJcblx0XHRmb250LXNpemU6ICRmb250LXNpemU7XHJcblx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplKTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1kdXBsaWNhdGUtcHJvcGVydGllc1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0QGVycm9yICdWYWx1ZSBmb3IgYCN7JGZvbnQtc2l6ZX1gIHNob3VsZCBiZSBhIGBweGAgdW5pdCc7XHJcblx0fVxyXG5cdEBpZiAodHlwZS1vZigkbGluZS1oZWlnaHQpID09IG51bWJlciBhbmQgdW5pdCgkbGluZS1oZWlnaHQpID09ICdweCcpIHtcclxuXHRcdGxpbmUtaGVpZ2h0OiBjYWxjKCgkbGluZS1oZWlnaHQgLyAkZm9udC1zaXplKSAqIDFlbSk7XHJcblx0fSBAZWxzZSB7XHJcblx0XHRAZXJyb3IgJ1ZhbHVlIGZvciBgI3skbGluZS1oZWlnaHR9YCBzaG91bGQgYmUgYSBgcHhgIHVuaXQnO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBUZXh0LlxyXG4gKlxyXG4gKiBTaG9ydGhhbmQgZm9yIHRoZSBmb250IG1peGluLCBydW5zIHRoZSBmb250IG1peGluIGJhc2VkIG9uIGEgY29tbW9uIGRlbWVhbm91ciBleGlzdGluZyBib3RoIGluIHRoZSBgJGZvbnQtc2l6ZWAgYW5kIHRoZSBgJGxpbmUtaGVpZ2h0YCBtYXBzLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhbHVlIC0gU3RyaW5nXHJcbiAqIEBleGFtcGxlIEBpbmNsdWRlIHRleHQoJ3AnKTtcclxuICovIFxyXG5cclxuQG1peGluIHRleHQoJHZhbHVlKSB7XHJcblx0QGlmICh0eXBlLW9mKCR2YWx1ZSkgPT0gc3RyaW5nKSB7XHJcblx0XHRAaW5jbHVkZSBmb250KG1hcC1nZXQoJGZvbnQtc2l6ZSwgJHZhbHVlKSwgbWFwLWdldCgkbGluZS1oZWlnaHQsICR2YWx1ZSkpO1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0QGVycm9yICdWYWx1ZSBzaG91bGQgYmUgYSBzdHJpbmcnO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBGb250IEF3ZXNvbWUuXHJcbiAqXHJcbiAqIEFkZCBGb250IEF3ZXNvbWUgaWNvbnMgYXMgcHN1ZWRvIGVsZW1lbnRzIGJ5IHVzaW5nIHRoZWlyIHVuaWNvZGUuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSAkY29udGVudCAtIFVuaWNvZGUgc3RyaW5nLlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gJGZhbWlseSAtIEZvbnQgQXdlc29tZSBmb250IGZhbWlseSBzdHJpbmcuXHJcbiAqIEBleGFtcGxlIEBpbmNsdWRlIGZvbnRhd2Vzb21lKCdmMTAwJywgJ0xpZ2h0Jyk7XHJcbiAqL1xyXG5cclxuQG1peGluIGZvbnRhd2Vzb21lKCRjb250ZW50LCAkZmFtaWx5KSB7XHJcblx0QGlmICh0eXBlLW9mKCRmYW1pbHkpID09IHN0cmluZykge1xyXG5cdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdGZvbnQtZmFtaWx5OiAnRm9udCBBd2Vzb21lIDUgI3skZmFtaWx5fSc7XHJcblx0XHRjb250ZW50OiB1bmljb2RlKCRjb250ZW50KTtcclxuXHR9IEBlbHNlIHtcclxuXHRcdEBlcnJvciAnQXJndW1lbnQgYCRmYW1pbHlgIHNob3VsZCBiZSBhIHN0cmluZyc7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIE1lZGlhLlxyXG4gKlxyXG4gKiBNZWRpYSBxdWVyaWVzIGFjY29yZGluZyB0byBcIlRoZSAxMDAlIENvcnJlY3QgV2F5IFRvIERvIENTUyBCcmVha3BvaW50c1wiIChodHRwczovL21lZGl1bS5mcmVlY29kZWNhbXAuY29tL3RoZS0xMDAtY29ycmVjdC13YXktdG8tZG8tY3NzLWJyZWFrcG9pbnRzLTg4ZDZhNWJhMTg2MikuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCAtIEJyZWFrcG9pbnQgcGl4ZWwgdW5pdCB2YWx1ZS5cclxuICogQGV4YW1wbGUgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge31cclxuICovIFxyXG4gXHJcbkBtaXhpbiBtZWRpYSgkc2l6ZSkge1xyXG5cdEBpZiAoJHNpemUgPT0gJ2Rlc2t0b3AnKSB7XHJcblx0XHRAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xyXG5cdFx0XHRAY29udGVudDtcclxuXHRcdH1cclxuXHR9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuXHRcdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcclxuXHRcdFx0QGNvbnRlbnQ7XHJcblx0XHR9XHJcblx0fSBAZWxzZSBpZiAoJHNpemUgPT0gJ3RhYmxldC1sYW5kc2NhcGUnKSB7XHJcblx0XHRAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XHJcblx0XHRcdEBjb250ZW50O1xyXG5cdFx0fVxyXG5cdH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcblx0XHRAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xyXG5cdFx0XHRAY29udGVudDtcclxuXHRcdH1cclxuXHR9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0LXBvcnRyYWl0LXVwJykge1xyXG5cdFx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xyXG5cdFx0XHRAY29udGVudDtcclxuXHRcdH1cclxuXHR9IEBlbHNlIGlmICgkc2l6ZSA9PSAndGFibGV0LXBvcnRyYWl0Jykge1xyXG5cdFx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XHJcblx0XHRcdEBjb250ZW50O1xyXG5cdFx0fVxyXG5cdH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcclxuXHRcdFx0QGNvbnRlbnQ7XHJcblx0XHR9XHJcblx0fSBAZWxzZSBpZiAoJHNpemUgPT0gJ3RhYmxldCcpIHtcclxuXHRcdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcclxuXHRcdFx0QGNvbnRlbnQ7XHJcblx0XHR9XHJcblx0fSBAZWxzZSBpZiAoJHNpemUgPT0gJ3Bob25lJykge1xyXG5cdFx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xyXG5cdFx0XHRAY29udGVudDtcclxuXHRcdH1cclxuXHR9IEBlbHNlIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH1cclxufVxyXG4iLCIvKipcclxuICogUmVtb3ZlIG1hcmdpbiBhbmQgcGFkZGluZyBmcm9tIGV2ZXJ5IHNlbGVjdG9yIGluY2x1ZGluZyB0aGVpclxyXG4gKiBwc3VlZG8gc2VsZWN0b3JzLlxyXG4gKlxyXG4gKiAxLiBNb3JlIHNlbnNpYmxlIGRlZmF1bHQgYm94IHNpemluZy5cclxuICogICAgKGNzcy10cmlja3MuY29tL2luaGVyaXRpbmctYm94LXNpemluZy1wcm9iYWJseS1zbGlnaHRseS1iZXR0ZXItYmVzdC1wcmFjdGljZSkuXHJcbiAqL1xyXG5cclxuKixcclxuKjo6YmVmb3JlLFxyXG4qOjphZnRlciB7XHJcblx0bWFyZ2luOiAwO1xyXG5cdHBhZGRpbmc6IDA7XHJcblx0Ym94LXNpemluZzogaW5oZXJpdDsgLyogMSAqL1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFNldCBoZWlnaHQgb2YgdGhlIGRvY3VtZW50IHRvIG1heGl1bSB2aWV3cG9ydCBoZWlnaHQuXHJcbiAqXHJcbiAqIDEuIFNldCByb290IGZvbnQgc2l6ZSB0byAxMC5cclxuICovXHJcblxyXG5odG1sIHtcclxuXHRoZWlnaHQ6IDEwMHZoO1xyXG5cdGZvbnQtc2l6ZTogNjIuNSU7IC8qIDEgKi9cclxuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFNldCBtaW5pbWFsIGhlaWdodCBvZiB0aGUgYm9keSB0byBtYXhpbXVtIHZpZXdwb3J0IGhlaWdodCB0b1xyXG4gKiBtYXRjaCB0aGUgZG9jdW1lbnQncyBoZWlnaHQuXHJcbiAqXHJcbiAqIDEuIEZpcmVmb3ggMjUrLlxyXG4gKiAyLiBDaHJvbWUgNSsuXHJcbiAqL1xyXG5cclxuYm9keSB7XHJcblx0QGluY2x1ZGUgdGV4dCgkYm9keS10ZXh0KTtcclxuXHRtaW4taGVpZ2h0OiAxMDB2aDtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iYWNrZ3JvdW5kLWNvbG9yO1xyXG5cdGNvbG9yOiAkYmx1ZS0xMDA7XHJcblx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xyXG5cdGZvbnQtd2VpZ2h0OiA0MDA7XHJcblx0dGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcclxuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyAvKiAxICovXHJcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IC8qIDIgKi9cclxufVxyXG4iLCIvKipcclxuICogQ3VzdG9tIHVzZXIgYWdlbnQgcmVzZXRzIGFuZCBvdmVycmlkZXMgdGhhdCBhcmUgbm90IHByZXNlbnQgaW5cclxuICogTm9ybWFsaXplIDguMC4wLiBUaGlzIG1vc3RseSByZW1vdmVzIHNvbWUgYW5ub3lpbmcgbWFyZ2luIGFuZCBwYWRkaW5nXHJcbiAqIGRlZmF1bHRzLCBib3JkZXIgcmFkaXVzLCBhbmQgb3V0bGluZXMuXHJcbiAqL1xyXG5cclxuYSB7XHJcblx0Y29sb3I6IGluaGVyaXQ7XHJcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIDEuIFJlbW92ZSBib3JkZXIgcmFkaXVzIG9uIENocm9tZSA2Mi4wKyBvbiBtYWNPUy5cclxuICovXHJcblxyXG5idXR0b24ge1xyXG5cdGJvcmRlcjogMDtcclxuXHRib3JkZXItcmFkaXVzOiAwOyAvKiAxICovXHJcblx0b3V0bGluZTogbm9uZTtcclxuXHRiYWNrZ3JvdW5kOiBub25lO1xyXG5cdGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuZmllbGRzZXQge1xyXG5cdG1hcmdpbjogMDtcclxuXHRwYWRkaW5nOiAwO1xyXG5cdGJvcmRlcjogMDtcclxufVxyXG5cclxuZmlndXJlIHtcclxuXHRtYXJnaW46IDA7XHJcbn1cclxuXHJcbmgxLFxyXG5oMixcclxuaDMsXHJcbmg0LFxyXG5oNSxcclxuaDYge1xyXG5cdG1hcmdpbjogMDtcclxuXHRwYWRkaW5nOiAwO1xyXG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcclxuXHRmb250LXdlaWdodDogaW5oZXJpdDtcclxufVxyXG5cclxuaHIge1xyXG5cdG1hcmdpbjogMDtcclxuXHRwYWRkaW5nOiAwO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIDEuIFJlbW92ZSB3aGl0ZSBzcGFjZS5cclxuICovXHJcblxyXG5pbWcge1xyXG5cdG1heC13aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6IGF1dG87XHJcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTsgLyogMSAqL1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIDEuIFJlbW92ZSBpbmhlcml0ZWQgdXNlciBhZ2VudCBhcHBlYXJhbmNlLlxyXG4gKi9cclxuXHJcbmlucHV0LFxyXG5zZWxlY3QsXHJcbnRleHRhcmVhIHtcclxuXHRtYXgtd2lkdGg6IDEwMCU7XHJcblx0Ym9yZGVyOiAwO1xyXG5cdGJvcmRlci1yYWRpdXM6IDA7XHJcblx0b3V0bGluZTogbm9uZTtcclxuXHRhcHBlYXJhbmNlOiBub25lOyAvKiAxICovXHJcbn1cclxuXHJcblxyXG4vKipcclxuICogMS4gT25seSBhbGxvdyB2ZXJ0aWNhbCByZXNpemluZyB0byBwcmV2ZW50IHRoZSB0ZXh0YXJlYVxyXG4gKiAgICBmcm9tIG92ZXJmbG93aW5nIHRoZSBjb250YWluZXIuXHJcbiAqL1xyXG5cclxudGV4dGFyZWEge1xyXG5cdHJlc2l6ZTogdmVydGljYWw7XHJcbn1cclxuXHJcbnVsLFxyXG5vbCB7XHJcblx0bWFyZ2luOiAwO1xyXG5cdHBhZGRpbmc6IDA7XHJcblx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG59XHJcblxyXG5wIHtcclxuXHRtYXJnaW46IDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogMS4gQ29sbGFwc2UgYm9yZGVycyB0byBwcmV2ZW50IGRvdWJsZSBzaWRlZCBib3JkZXJzLlxyXG4gKi9cclxuXHJcbnRhYmxlIHtcclxuXHRtYXgtd2lkdGg6IDEwMCU7XHJcblx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgLyogMSAqL1xyXG59XHJcblxyXG5zdHJvbmcge1xyXG5cdGZvbnQtd2VpZ2h0OiA3MDA7XHJcbn1cclxuIiwiZi8qKlxyXG4gKiBCdXR0b24uXHJcbiAqL1xyXG5cclxuJWJ1dHRvbixcclxuLmJ1dHRvbiB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0Zm9udC1zaXplOiAxOHB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDI0cHhcclxuXHR9XHJcblx0QGluY2x1ZGUgZm9udCgyMnB4LCAyOXB4KTtcclxuXHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdGhlaWdodDogNTBweDtcclxuXHRwYWRkaW5nOiAxNHB4IDIwcHg7XHJcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xyXG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHR0cmFuc2l0aW9uOiBhbGwgMzUwbXMgZWFzZS1pbi1vdXQ7XHJcblx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRmb250LXNpemU6IDEycHg7XHJcblx0d2lkdGg6IGZpdC1jb250ZW50O1xyXG5cclxuXHRzdmcge1xyXG5cdFx0d2lkdGg6IDE2cHg7XHJcblx0XHRoZWlnaHQ6IDE2cHg7XHJcblx0XHR0cmFuc2l0aW9uOiBhbGwgMzUwbXMgZWFzZS1pbi1vdXQ7XHJcblx0fVxyXG5cclxuXHQmLmhhcy1zdmctcmlnaHQge1xyXG5cdFx0c3ZnIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IDE0cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmLmhhcy1zdmctbGVmdCB7XHJcblx0XHRzdmcge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDE0cHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4vKipcclxuICogQnV0dG9uIChwcmltYXJ5KS5cclxuICovXHJcblxyXG4lYnV0dG9uLS1wcmltYXJ5LFxyXG4uYnV0dG9uLS1wcmltYXJ5IHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW4tMTAwO1xyXG5cdGNvbG9yOiAkd2hpdGUtMTAwO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0c3ZnIHtcclxuXHRcdGZpbGw6ICR3aGl0ZS0xMDA7XHJcblx0fVxyXG5cclxuXHQmOmhvdmVyIHtcclxuXHRcdGNvbG9yOiAkd2hpdGUtODA7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjYTNiMTEyO1xyXG5cclxuXHRcdHN2ZyB7XHJcblx0XHRcdGZpbGw6ICR3aGl0ZS04MDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBCdXR0b24gKHNlY29uZGFyeSkuXHJcbiAqL1xyXG5cclxuICVidXR0b24tLXNlY29uZGFyeSxcclxuIC5idXR0b24tLXNlY29uZGFyeSB7XHJcblx0IGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cdCBjb2xvcjogJGJsdWUtMTAwO1xyXG5cdCBib3JkZXI6IDJweCBzb2xpZCAkYmx1ZS0xMDA7XHJcblx0IHBhZGRpbmc6IDE1cHggMjBweDtcclxuXHQgZm9udC13ZWlnaHQ6IDYwMDtcclxuXHJcblx0IHN2ZyB7XHJcblx0XHQgZmlsbDogJHdoaXRlLTEwMDtcclxuXHQgfVxyXG4gXHJcblx0ICY6aG92ZXIge1xyXG5cdFx0IGNvbG9yOiAkd2hpdGUtMTAwO1xyXG5cdFx0IGJhY2tncm91bmQtY29sb3I6ICRibHVlLTEwMDtcclxuXHQgfVxyXG4gfVxyXG5cclxuIC5idXR0b24tLWxpbmsge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG5cdH1cclxuXHRjb2xvcjogJGJsdWUtMTAwO1xyXG5cdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0Zm9udC1zaXplOiAxOHB4O1xyXG5cdGxpbmUtaGVpZ2h0OiAyM3B4O1xyXG5cdGxldHRlci1zcGFjaW5nOiAwLjAyZW07XHJcblx0IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG5cdCB0cmFuc2l0aW9uOiBhbGwgMzUwbXMgZWFzZS1pbi1vdXQ7XHJcblx0IGRpc3BsYXk6IGZsZXg7XHJcblx0IGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG5cdCBzdmcge1xyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0XHRoZWlnaHQ6IDE0cHg7XHJcblx0XHRcdHdpZHRoOiAxNHB4O1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogMTBweDtcclxuXHRcdH1cclxuXHRcdHRyYW5zaXRpb246IGFsbCAzNTBtcyBlYXNlLWluLW91dDtcclxuXHRcdG1hcmdpbi1sZWZ0OiAyMnB4O1xyXG5cdFx0aGVpZ2h0OiAyMnB4O1xyXG5cdFx0d2lkdGg6IDIycHg7XHJcblx0XHRmaWxsOiAkYmx1ZS0xMDA7XHJcblx0IH1cclxuXHJcblx0ICY6aG92ZXIge1xyXG5cdFx0IG9wYWNpdHk6IDAuNztcclxuXHJcblx0XHQgc3ZnIHtcclxuXHRcdFx0IG1hcmdpbi1sZWZ0OiAzMnB4O1xyXG5cdFx0IH1cclxuXHQgfVxyXG4gfVxyXG5cclxuIC5idXR0b24tLWJhY2sge1xyXG5cdGJvcmRlcjogMnB4IHNvbGlkICRibHVlLTEwO1xyXG5cdHBhZGRpbmc6IDE1cHggMjBweDtcclxuXHR3aWR0aDogZml0LWNvbnRlbnQgIWltcG9ydGFudDtcclxuXHRkaXNwbGF5OiBibG9jaztcclxuXHRib3JkZXItcmFkaXVzOiA0cHg7XHJcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XHJcblx0Zm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XHJcblx0bGluZS1oZWlnaHQ6IDE1cHg7XHJcblxyXG5cdCY6aG92ZXIge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGJsdWUtMTAwO1xyXG5cdFx0Y29sb3I6ICR3aGl0ZS0xMDA7XHJcblx0fVxyXG4gfVxyXG4iLCIvKipcclxuICogRXZlcnkgY29uY2VpdmFibGUgSFRNTCBlbGVtZW50IHdpdGhpbiBhIGAuY21zLW91dHB1dGAgd3JhcHBlci5cclxuICpcclxuICogMS4gRXhjbHVkZSBsYXN0IGNoaWxkcy5cclxuICovXHJcblxyXG4uY21zLW91dHB1dCB7XHJcblx0cCB7XHJcblx0XHQmOm5vdCg6bGFzdC1jaGlsZCkge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxZW07XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRoMSwgaDIsIGgzLCBoNCwgaDUge1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdG1hcmdpbi1ib3R0b206IDI1cHg7XHJcblx0XHRtYXJnaW4tdG9wOiA1MHB4O1xyXG5cdH1cclxuXHJcblx0aDIsXHJcblx0aDMsXHJcblx0aDQge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMzBweDtcclxuXHR9XHJcblxyXG5cdGg1IHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblx0fVxyXG5cclxuXHQuaXMtaW50cm8ge1xyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0XHRAaW5jbHVkZSBmb250KDE4cHgsIDI0cHgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdEBpbmNsdWRlIGZvbnQoMjBweCwgMzJweCk7XHJcblx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdH1cclxuXHJcblx0aW1nIHtcclxuXHRcdCYuYWxpZ25jZW50ZXIge1xyXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdFx0bWFyZ2luOiAwIGF1dG87XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5hbGlnbnJpZ2h0IHtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdG1hcmdpbjogMCAwIDAgYXV0bztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHRhYmxlIHtcclxuXHRcdHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcblxyXG5cdFx0dGQge1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dWwsXHJcblx0b2wge1xyXG5cdFx0bGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7XHJcblx0XHRtYXJnaW4tbGVmdDogMjBweDtcclxuXHRcdG1hcmdpbi1ib3R0b206IDFlbTtcclxuXHJcblx0XHRsaSB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDE1cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRvbCB7XHJcblx0XHRsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7XHJcblx0fVxyXG5cclxuXHRzdHJvbmcge1xyXG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0fVxyXG5cclxuXHRhIHtcclxuXHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG5cdFx0Y29sb3I6ICRibHVlLTEwMDtcclxuXHRcdHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xyXG5cclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRjb2xvcjogJGdyZWVuLTEwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YmxvY2txdW90ZSB7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRwYWRkaW5nOiA0MHB4IDQ1cHggMjBweCA0NXB4O1xyXG5cdFx0Y29sb3I6ICRibHVlLTEwMDtcclxuXHR9XHJcblxyXG5cdC53cC1jYXB0aW9uIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblxyXG5cdFx0aW1nIHtcclxuXHRcdFx0Ym9yZGVyLXJhZGl1czogMTBweDtcclxuXHRcdH1cclxuXHJcblx0XHQud3AtY2FwdGlvbi10ZXh0IHtcclxuXHRcdFx0QGluY2x1ZGUgZm9udCgxNnB4LCAyMHB4KTtcclxuXHRcdFx0Y29sb3I6ICRibHVlLTEwMDtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IDAuNDRweDtcclxuXHRcdFx0bWFyZ2luLXRvcDogMTBweDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLyoqXHJcbiAqIFRoZSBjb250YWluZXIgb2JqZWN0IGNlbnRlcnMgYW4gZWxlbWVudCBpbiB0aGUgZG9jdW1lbnQuXHJcbiAqL1xyXG5cclxuLmNvbnRhaW5lciB7XHJcblx0QGluY2x1ZGUgY29udGFpbmVyO1xyXG59XHJcbiIsIi8qKlxyXG4gKiBUaGUgY29udGVudCBjb25zdHJhaW50IGlzIGEgY29uc3RyYWludCBmb3IgYWxsIHRoZSBjb250ZW50IHdpdGhpblxyXG4gKiB0aGUgZG9jdW1lbnQuIEl0IGNhbiBiZSBtYW5pcHVsYXRlZCBieSBDU1Mgb3IgSmF2YVNjcmlwdCB3aXRob3V0XHJcbiAqIGluZmx1ZW5jaW5nIHRoZSBib2R5LlxyXG4gKi9cclxuXHJcbi5jb250ZW50LWNvbnN0cmFpbnQge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRtaW4taGVpZ2h0OiAxMDB2aDtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG59IiwiLyoqXHJcbiAqIEV4YW1wbGUgb2YgYSBmbGV4IGJhc2VkIGNvbHVtbiBncmlkIGxheW91dCBpbiBwcmFjdGljZTpcclxuICpcclxuICogPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gKiAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLXhzLTYgY29sLXNtLTEyXCI+PC9kaXY+XHJcbiAqICAgPGRpdiBjbGFzcz1cImNvbCBjb2wteHMtNiBjb2wtc20tMTJcIj48L2Rpdj5cclxuICogPC9kaXY+XHJcbiAqXHJcbiAqIFRoaXMgZXhhbXBsZSB3aWxsIGNyZWF0ZSBhIHJvdyB3aXRoIHR3byBjb2x1bW5zIGVhY2ggZmlsbGluZyBoYWxmIHRoZSB3aWR0aFxyXG4gKiBvZiB0aGUgcm93IG9uIGFsbCBtZWRpYSwgYnV0IHdpbGwgY29udmVydCB0byBhIGZ1bGwgd2lkdGggY29sdW1uIG9uIHRoZVxyXG4gKiBzbWFsbCBgLXNtYCBicmVha3BvaW50IGFsaWFzLCB3aGljaCBpcyBtb2JpbGUgb25seS4gUmVmZXIgdG9cclxuICogYHNldHRpbmdzL19kZWZpbml0aW9ucy5zY3NzYCBmb3IgYWxsIGJyZWFrcG9pbnQgYWxpYXMuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEZsZXggb2JqZWN0LlxyXG4gKlxyXG4gKiBUaXA6IFVzZSBmbGV4IG9uIGEgY29sdW1uIHRvIG1ha2UgdGhlIGJveCB0aGUgc2FtZSBoZWlnaHQgYXMgdGhlIGNvbHVtbi5cclxuICovXHJcblxyXG4uZmxleCB7XHJcblx0ZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuLmZsZXgtd3JhcCB7XHJcblx0ZmxleC13cmFwOiB3cmFwO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEZsZXggb2JqZWN0IHdpdGggYSBjb2x1bW4gYmFzZWQgbGF5b3V0IHN5c3RlbS5cclxuICovXHJcblxyXG4ucm93IHtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGZsZXg6IDAgMSBhdXRvO1xyXG5cdGZsZXgtZmxvdzogcm93IHdyYXA7XHJcblx0bWFyZ2luOiAwIC0je2NhbGMoJGdyaWQtZ2FwLzIpfTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBCb3gsIHRoZSBpbnNpZGUgb2YgYSBjb2x1bW4uXHJcbiAqL1xyXG5cclxuLmJveCB7XHJcblx0ZmxleDogMTtcclxufVxyXG5cclxuXHJcbi8vIExvb3AgdGhyb3VnaCBhbGwgdGhlIGtleXMgaW4gdGhlIGAkYnJlYWtwb2ludHNgIHZhcmlhYmxlIG1hcCBkZWZpbmVkIGluXHJcbi8vIGBzZXR0aW5ncy9fZGVmaW5pdGlvbnMuc2Nzc2AuXHJcbkBlYWNoICRrZXksICR2YWx1ZSBpbiAkYnJlYWtwb2ludHMge1xyXG5cclxuXHQvLyBDcmVhdGUgYSBtZWRpYSBxdWVyeSBmb3IgZXZlcnkga2V5IGluIGAkYnJlYWtwb2ludHNgLlxyXG5cdEBpbmNsdWRlIG1lZGlhKCR2YWx1ZSkge1xyXG5cclxuXHRcdC8vIEl0ZXJhdGUgZnJvbSAxIHRocm91Z2ggdGhlIGFtb3VudCBvZiBncmlkIGNvbHVtbnMgZGVmaW5lZCBieVxyXG5cdFx0Ly8gYCRncmlkLWNvbHVtbnNgIGluIGBzZXR0aW5ncy9fZGVmaW5pdGlvbnMuc2Nzc2AuXHJcblx0XHRAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xyXG5cclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIENvbHVtbiAjeyRpfSBmb3IgdGhlIGAjeyRrZXl9YCBicmVha3BvaW50LlxyXG5cdFx0XHQgKi9cclxuXHJcblx0XHRcdC5jb2wtI3ska2V5fS0jeyRpfSB7XHJcblx0XHRcdFx0ZmxleDogMCAxIGF1dG87XHJcblx0XHRcdFx0d2lkdGg6IGNvbHVtbigkaSk7XHJcblx0XHRcdFx0cGFkZGluZzogMCBjYWxjKCRncmlkLWdhcC8yKTtcclxuXHRcdFx0fVxyXG5cclxuXHJcblx0XHRcdC8vIE91dHB1dCBhbiBvZmZzZXQgdXRpbGl0eSBjbGFzcyBpZiB0aGUgaXRlcmF0b3IgaXMgbGVzcyB0aGFuIHRoZSBhbW91bnRcclxuXHRcdFx0Ly8gb2YgZ3JpZCBjb2x1bW5zIGRlZmluZWQgYnkgYCRncmlkLWNvbHVtbnNgIGluXHJcblx0XHRcdC8vIGBzZXR0aW5ncy9fZGVmaW5pdGlvbnMuc2Nzc2AuXHJcblx0XHRcdEBpZiAoJGkgPCAkZ3JpZC1jb2x1bW5zKSB7XHJcblxyXG5cdFx0XHRcdC8qKlxyXG5cdFx0XHRcdCAqIE9mZnNldCAjeyRpfSBmb3IgdGhlIGAjeyRrZXl9YCBicmVha3BvaW50LlxyXG5cdFx0XHRcdCAqL1xyXG5cclxuXHRcdFx0XHQub2Zmc2V0LSN7JGtleX0tI3skaX0ge1xyXG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IGNvbHVtbigkaSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cclxuXHRcdC8vIExvb3AgdGhyb3VnaCBhbGwgdmFsdWVzIGZvciB0aGUgYGFsaWduLWl0ZW1zYCBwcm9wZXJ0eS5cclxuXHRcdEBlYWNoICR2YWx1ZSBpbiBzdHJldGNoLCBjZW50ZXIsIGZsZXgtc3RhcnQsIGZsZXgtZW5kLCBiYXNlbGluZSB7XHJcblxyXG5cdFx0XHQvKipcclxuXHRcdFx0ICogQWxpZ24gYCN7JHZhbHVlfWAgZm9yIHRoZSAjeyRrZXl9IGJyZWFrcG9pbnQuXHJcblx0XHRcdCAqL1xyXG5cclxuXHRcdFx0LmFsaWduLSN7JGtleX0tI3skdmFsdWV9IHtcclxuXHRcdFx0XHRhbGlnbi1pdGVtczogJHZhbHVlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cclxuXHRcdC8vIExvb3AgdGhyb3VnaCBhbGwgdmFsdWVzIGZvciB0aGUgYGp1c3RpZnktY29udGVudGAgcHJvcGVydHkuXHJcblx0XHRAZWFjaCAkdmFsdWUgaW4gc3RhcnQsIGNlbnRlciwgc3BhY2UtYmV0d2Vlbiwgc3BhY2UtYXJvdW5kLCBzcGFjZS1ldmVubHkge1xyXG5cclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIEp1c3RpZnkgYCN7JHZhbHVlfWAgZm9yIHRoZSAjeyRrZXl9IGJyZWFrcG9pbnQuXHJcblx0XHRcdCAqL1xyXG5cclxuXHRcdFx0Lmp1c3RpZnktI3ska2V5fS0jeyR2YWx1ZX0ge1xyXG5cdFx0XHRcdGp1c3RpZnktY29udGVudDogJHZhbHVlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cclxuXHRcdC8vIExvb3AgdGhyb3VnaCBldmVyeSBkaXJlY3Rpb24gZnJvbSBsZWZ0IHRvIHJpZ2h0LlxyXG5cdFx0QGVhY2ggJGRpcmVjdGlvbiBpbiBsZWZ0LCByaWdodCB7XHJcblxyXG5cdFx0XHQvKipcclxuXHRcdFx0ICogQmxlZWQgI3skZGlyZWN0aW9ufSBmb3IgdGhlICN7JGtleX0gYnJlYWtwb2ludC5cclxuXHRcdFx0ICovXHJcblxyXG5cdFx0XHQuYmxlZWQtI3ska2V5fS0jeyRkaXJlY3Rpb259IHtcclxuXHRcdFx0XHRwYWRkaW5nLSN7JGRpcmVjdGlvbn06IDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBPcmRlciBmaXJzdCBmb3IgdGhlIGAjeyRrZXl9YCBicmVha3BvaW50LlxyXG5cdFx0ICovXHJcblxyXG5cdFx0LmZpcnN0LSN7JGtleX0ge1xyXG5cdFx0XHRvcmRlcjogLTE7XHJcblx0XHR9XHJcblxyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICogT3JkZXIgbGFzdCBmb3IgdGhlIGAjeyRrZXl9YCBicmVha3BvaW50LlxyXG5cdFx0ICovXHJcblxyXG5cdFx0Lmxhc3QtI3ska2V5fSB7XHJcblx0XHRcdG9yZGVyOiAxO1xyXG5cdFx0fVxyXG5cclxuXHJcblx0XHQvKipcclxuXHRcdCAqIFJldmVyc2Ugb3JkZXIgZm9yIHRoZSBgI3ska2V5fWAgYnJlYWtwb2ludC5cclxuXHRcdCAqL1xyXG5cclxuXHRcdC5yZXZlcnNlLSN7JGtleX0ge1xyXG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qKlxyXG4gKiBEZWZhdWx0IGZpZWxkcy5cclxuICovXHJcblxyXG5sYWJlbCB7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcblx0bWFyZ2luLWJvdHRvbTogOHB4O1xyXG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cdGNvbG9yOiAkYmxhY2stMTAwO1xyXG5cdG1hcmdpbi1sZWZ0OiAxNXB4O1xyXG59XHJcbi5nZm9ybV9idXR0b24ge1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0bWFyZ2luLWxlZnQ6IGF1dG9cclxufVxyXG4laW5wdXQsXHJcbnNlbGVjdCxcclxuaW5wdXQsXHJcbnRleHRhcmVhIHtcclxuXHRAaW5jbHVkZSBmb250KDE2cHgsIDIzcHgpO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogNDBweDtcclxuXHRib3JkZXItcmFkaXVzOiAycHg7XHJcblx0cGFkZGluZzogMTFweCAxNXB4O1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS0xMDA7XHJcblx0Zm9udC13ZWlnaHQ6IDQwMDtcclxuXHRib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMTAwO1xyXG5cdGNvbG9yOiAkYmx1ZS0xMDA7XHJcblxyXG5cdCY6Zm9jdXMge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLTEwMDtcclxuXHR9XHJcblxyXG5cdCY6OnBsYWNlaG9sZGVyIHtcclxuXHRcdGNvbG9yOiAkYmx1ZS0xMDA7XHJcblx0XHRmb250LXdlaWdodDogNDAwO1xyXG5cdH1cclxufVxyXG5cclxudGV4dGFyZWEge1xyXG5cdGhlaWdodDogMjMwcHg7XHJcblx0cGFkZGluZy10b3A6IDE1cHg7XHJcbn1cclxuXHJcbi5nZmllbGRfcmVxdWlyZWQge1xyXG5cdGNvbG9yOiAkcmVkLTEwMDtcclxufVxyXG5cclxuLmdpbnB1dF9jb250YWluZXJfc2VsZWN0IHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMTAwO1xyXG5cclxuXHRzdmcge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0dG9wOiAxNHB4O1xyXG5cdFx0cmlnaHQ6IDIwcHg7XHJcblx0XHR3aWR0aDogOXB4O1xyXG5cdFx0aGVpZ2h0OiAxM3B4O1xyXG5cdFx0ei1pbmRleDogMTtcclxuXHR9XHJcblxyXG5cdHNlbGVjdCB7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHR3aWR0aDogY2FsYygxMDAlICsgNTBweCk7XHJcblx0XHRtYXgtd2lkdGg6IG5vbmU7XHJcblx0XHRtYXJnaW46IC0ycHg7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRcdGJvcmRlcjogMDtcclxuXHRcdHotaW5kZXg6IDI7XHJcblx0fVxyXG59XHJcblxyXG5pbnB1dFt0eXBlPSdyYWRpbyddLFxyXG5pbnB1dFt0eXBlPSdjaGVja2JveCddIHtcclxuXHR3aWR0aDogMTVweDtcclxuXHRoZWlnaHQ6IDE1cHg7XHJcblx0Ym9yZGVyOiAycHggc29saWQgJGJsYWNrLTEwMDtcclxuXHRib3JkZXItcmFkaXVzOiAycHg7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLTEwMDtcclxuXHR0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTtcclxuXHJcblx0JjpjaGVja2VkIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRibGFjay0xMDA7XHJcblx0fVxyXG59XHJcblxyXG5pbnB1dFt0eXBlPSdyYWRpbyddIHtcclxuXHRib3JkZXItcmFkaXVzOiAyMHB4O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEdyYXZpdHkgRm9ybXMuXHJcbiAqL1xyXG5cclxuLmdmaWVsZCB7XHJcblx0bWFyZ2luLWJvdHRvbTogMjVweDtcclxufVxyXG5cclxuLmdmb3JtX3ZhbGlkYXRpb25fY29udGFpbmVyIHtcclxuXHRkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4uaGlkZGVuX2xhYmVsID4gbGFiZWwge1xyXG5cdGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi52YWxpZGF0aW9uX21lc3NhZ2Uge1xyXG5cdEBpbmNsdWRlIGZvbnQoMTRweCwgMjNweCk7XHJcblx0bWFyZ2luLXRvcDogNXB4O1xyXG5cdGJvcmRlci1yYWRpdXM6IDJweDtcclxuXHRwYWRkaW5nOiAxMHB4IDEwcHg7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGNvbG9yOiAkcmVkLTEwMDtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkLTEwO1xyXG5cclxuXHQ+IHN2ZyB7XHJcblx0XHR3aWR0aDogMTZweDtcclxuXHRcdGhlaWdodDogMTZweDtcclxuXHRcdG1hcmdpbi1yaWdodDogNXB4O1xyXG5cdFx0bWFyZ2luLXRvcDogLTJweDtcclxuXHR9XHJcbn1cclxuXHJcbiV2YWxpZGF0aW9uX2Vycm9yLFxyXG4udmFsaWRhdGlvbl9lcnJvciB7XHJcblx0ZGlzcGxheTogbm9uZTtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0bWFyZ2luOiAwIDAgNTBweDtcclxuXHRwYWRkaW5nOiAyNXB4IDI1cHggMjVweCA3NXB4O1xyXG5cdGJhY2tncm91bmQ6ICRyZWQtMTA7XHJcblx0Y29sb3I6ICRyZWQtMTAwO1xyXG5cclxuXHQ+IHN2ZyB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR0b3A6IGNhbGMoNTAlIC0gMTVweCk7XHJcblx0XHRsZWZ0OiAzMHB4O1xyXG5cdFx0d2lkdGg6IDMxcHg7XHJcblx0XHRoZWlnaHQ6IDMwcHg7XHJcblx0XHRjb2xvcjogJHJlZC0xMDA7XHJcblx0fVxyXG5cclxuXHQuY2xvc2UtYnV0dG9uIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHRvcDogNXB4O1xyXG5cdFx0cmlnaHQ6IDVweDtcclxuXHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHJcblx0XHRzdmcge1xyXG5cdFx0XHR3aWR0aDogMTZweDtcclxuXHRcdFx0aGVpZ2h0OiAxNnB4O1xyXG5cdFx0XHRjb2xvcjogJGJsYWNrLTEwMDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5nZm9ybV9jb25maXJtYXRpb25fbWVzc2FnZSB7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0cGFkZGluZzogNTBweDtcclxuXHRiYWNrZ3JvdW5kOiAkcmVkLTEwMDtcclxuXHJcblx0YnIge1xyXG5cdFx0ZGlzcGxheTogbm9uZTtcclxuXHR9XHJcblxyXG5cdGg0IHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcclxuXHJcblx0XHRzdmcge1xyXG5cdFx0XHR3aWR0aDogMjhweDtcclxuXHRcdFx0aGVpZ2h0OiAyOHB4O1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDIwcHg7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS0xMDA7XHJcblx0XHRcdHBhZGRpbmc6IDVweDtcclxuXHRcdFx0Y29sb3I6ICRibGFjay0xMDA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uZ2ZpZWxkX2Vycm9yIHtcclxuXHRpbnB1dCB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkLTEwO1xyXG5cclxuXHRcdCY6OnBsYWNlaG9sZGVyIHtcclxuXHRcdFx0Y29sb3I6ICRyZWQtMTAwO1xyXG5cdFx0fVxyXG5cclxuXHRcdCY6Zm9jdXMge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtMTAwO1xyXG5cdFx0XHQmOjpwbGFjZWhvbGRlciB7XHJcblx0XHRcdFx0Y29sb3I6ICRibHVlLTEwMDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLyogeWFudHJhbWFuYXYtMTAwIC0gbGF0aW4gKi9cclxuQGZvbnQtZmFjZSB7XHJcblx0Zm9udC1mYW1pbHk6ICdZYW50cmFtYW5hdic7XHJcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xyXG5cdGZvbnQtd2VpZ2h0OiAxMDA7XHJcblx0c3JjOiB1cmwoJy4uLy4uL0ZvbnRzL3lhbnRyYW1hbmF2LXYxMC1sYXRpbi0xMDAuZW90Jyk7IC8qIElFOSBDb21wYXQgTW9kZXMgKi9cclxuXHRzcmM6IGxvY2FsKCcnKSxcclxuXHRcdCB1cmwoJy4uLy4uL0ZvbnRzL3lhbnRyYW1hbmF2LXYxMC1sYXRpbi0xMDAuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgLyogSUU2LUlFOCAqL1xyXG5cdFx0IHVybCgnLi4vLi4vRm9udHMveWFudHJhbWFuYXYtdjEwLWxhdGluLTEwMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgLyogU3VwZXIgTW9kZXJuIEJyb3dzZXJzICovXHJcblx0XHQgdXJsKCcuLi8uLi9Gb250cy95YW50cmFtYW5hdi12MTAtbGF0aW4tMTAwLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgLyogTW9kZXJuIEJyb3dzZXJzICovXHJcblx0XHQgdXJsKCcuLi8uLi9Gb250cy95YW50cmFtYW5hdi12MTAtbGF0aW4tMTAwLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgLyogU2FmYXJpLCBBbmRyb2lkLCBpT1MgKi9cclxuXHRcdCB1cmwoJy4uLy4uL0ZvbnRzL3lhbnRyYW1hbmF2LXYxMC1sYXRpbi0xMDAuc3ZnI1lhbnRyYW1hbmF2JykgZm9ybWF0KCdzdmcnKTsgLyogTGVnYWN5IGlPUyAqL1xyXG4gIH1cclxuICAvKiB5YW50cmFtYW5hdi1yZWd1bGFyIC0gbGF0aW4gKi9cclxuICBAZm9udC1mYWNlIHtcclxuXHRmb250LWZhbWlseTogJ1lhbnRyYW1hbmF2JztcclxuXHRmb250LXN0eWxlOiBub3JtYWw7XHJcblx0Zm9udC13ZWlnaHQ6IDQwMDtcclxuXHRzcmM6IHVybCgnLi4vLi4vRm9udHMveWFudHJhbWFuYXYtdjEwLWxhdGluLXJlZ3VsYXIuZW90Jyk7IC8qIElFOSBDb21wYXQgTW9kZXMgKi9cclxuXHRzcmM6IGxvY2FsKCcnKSxcclxuXHRcdCB1cmwoJy4uLy4uL0ZvbnRzL3lhbnRyYW1hbmF2LXYxMC1sYXRpbi1yZWd1bGFyLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIC8qIElFNi1JRTggKi9cclxuXHRcdCB1cmwoJy4uLy4uL0ZvbnRzL3lhbnRyYW1hbmF2LXYxMC1sYXRpbi1yZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCAvKiBTdXBlciBNb2Rlcm4gQnJvd3NlcnMgKi9cclxuXHRcdCB1cmwoJy4uLy4uL0ZvbnRzL3lhbnRyYW1hbmF2LXYxMC1sYXRpbi1yZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgLyogTW9kZXJuIEJyb3dzZXJzICovXHJcblx0XHQgdXJsKCcuLi8uLi9Gb250cy95YW50cmFtYW5hdi12MTAtbGF0aW4tcmVndWxhci50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIC8qIFNhZmFyaSwgQW5kcm9pZCwgaU9TICovXHJcblx0XHQgdXJsKCcuLi8uLi9Gb250cy95YW50cmFtYW5hdi12MTAtbGF0aW4tcmVndWxhci5zdmcjWWFudHJhbWFuYXYnKSBmb3JtYXQoJ3N2ZycpOyAvKiBMZWdhY3kgaU9TICovXHJcbiAgfVxyXG4gIC8qIHlhbnRyYW1hbmF2LTMwMCAtIGxhdGluICovXHJcbiAgQGZvbnQtZmFjZSB7XHJcblx0Zm9udC1mYW1pbHk6ICdZYW50cmFtYW5hdic7XHJcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xyXG5cdGZvbnQtd2VpZ2h0OiAzMDA7XHJcblx0c3JjOiB1cmwoJy4uLy4uL0ZvbnRzL3lhbnRyYW1hbmF2LXYxMC1sYXRpbi0zMDAuZW90Jyk7IC8qIElFOSBDb21wYXQgTW9kZXMgKi9cclxuXHRzcmM6IGxvY2FsKCcnKSxcclxuXHRcdCB1cmwoJy4uLy4uL0ZvbnRzL3lhbnRyYW1hbmF2LXYxMC1sYXRpbi0zMDAuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgLyogSUU2LUlFOCAqL1xyXG5cdFx0IHVybCgnLi4vLi4vRm9udHMveWFudHJhbWFuYXYtdjEwLWxhdGluLTMwMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgLyogU3VwZXIgTW9kZXJuIEJyb3dzZXJzICovXHJcblx0XHQgdXJsKCcuLi8uLi9Gb250cy95YW50cmFtYW5hdi12MTAtbGF0aW4tMzAwLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgLyogTW9kZXJuIEJyb3dzZXJzICovXHJcblx0XHQgdXJsKCcuLi8uLi9Gb250cy95YW50cmFtYW5hdi12MTAtbGF0aW4tMzAwLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgLyogU2FmYXJpLCBBbmRyb2lkLCBpT1MgKi9cclxuXHRcdCB1cmwoJy4uLy4uL0ZvbnRzL3lhbnRyYW1hbmF2LXYxMC1sYXRpbi0zMDAuc3ZnI1lhbnRyYW1hbmF2JykgZm9ybWF0KCdzdmcnKTsgLyogTGVnYWN5IGlPUyAqL1xyXG4gIH1cclxuICAvKiB5YW50cmFtYW5hdi03MDAgLSBsYXRpbiAqL1xyXG4gIEBmb250LWZhY2Uge1xyXG5cdGZvbnQtZmFtaWx5OiAnWWFudHJhbWFuYXYnO1xyXG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuXHRmb250LXdlaWdodDogNzAwO1xyXG5cdHNyYzogdXJsKCcuLi8uLi9Gb250cy95YW50cmFtYW5hdi12MTAtbGF0aW4tNzAwLmVvdCcpOyAvKiBJRTkgQ29tcGF0IE1vZGVzICovXHJcblx0c3JjOiBsb2NhbCgnJyksXHJcblx0XHQgdXJsKCcuLi8uLi9Gb250cy95YW50cmFtYW5hdi12MTAtbGF0aW4tNzAwLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIC8qIElFNi1JRTggKi9cclxuXHRcdCB1cmwoJy4uLy4uL0ZvbnRzL3lhbnRyYW1hbmF2LXYxMC1sYXRpbi03MDAud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIC8qIFN1cGVyIE1vZGVybiBCcm93c2VycyAqL1xyXG5cdFx0IHVybCgnLi4vLi4vRm9udHMveWFudHJhbWFuYXYtdjEwLWxhdGluLTcwMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIC8qIE1vZGVybiBCcm93c2VycyAqL1xyXG5cdFx0IHVybCgnLi4vLi4vRm9udHMveWFudHJhbWFuYXYtdjEwLWxhdGluLTcwMC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIC8qIFNhZmFyaSwgQW5kcm9pZCwgaU9TICovXHJcblx0XHQgdXJsKCcuLi8uLi9Gb250cy95YW50cmFtYW5hdi12MTAtbGF0aW4tNzAwLnN2ZyNZYW50cmFtYW5hdicpIGZvcm1hdCgnc3ZnJyk7IC8qIExlZ2FjeSBpT1MgKi9cclxuICB9XHJcbiAgLyogeWFudHJhbWFuYXYtNTAwIC0gbGF0aW4gKi9cclxuICBAZm9udC1mYWNlIHtcclxuXHRmb250LWZhbWlseTogJ1lhbnRyYW1hbmF2JztcclxuXHRmb250LXN0eWxlOiBub3JtYWw7XHJcblx0Zm9udC13ZWlnaHQ6IDUwMDtcclxuXHRzcmM6IHVybCgnLi4vLi4vRm9udHMveWFudHJhbWFuYXYtdjEwLWxhdGluLTUwMC5lb3QnKTsgLyogSUU5IENvbXBhdCBNb2RlcyAqL1xyXG5cdHNyYzogbG9jYWwoJycpLFxyXG5cdFx0IHVybCgnLi4vLi4vRm9udHMveWFudHJhbWFuYXYtdjEwLWxhdGluLTUwMC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCAvKiBJRTYtSUU4ICovXHJcblx0XHQgdXJsKCcuLi8uLi9Gb250cy95YW50cmFtYW5hdi12MTAtbGF0aW4tNTAwLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCAvKiBTdXBlciBNb2Rlcm4gQnJvd3NlcnMgKi9cclxuXHRcdCB1cmwoJy4uLy4uL0ZvbnRzL3lhbnRyYW1hbmF2LXYxMC1sYXRpbi01MDAud29mZicpIGZvcm1hdCgnd29mZicpLCAvKiBNb2Rlcm4gQnJvd3NlcnMgKi9cclxuXHRcdCB1cmwoJy4uLy4uL0ZvbnRzL3lhbnRyYW1hbmF2LXYxMC1sYXRpbi01MDAudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCAvKiBTYWZhcmksIEFuZHJvaWQsIGlPUyAqL1xyXG5cdFx0IHVybCgnLi4vLi4vRm9udHMveWFudHJhbWFuYXYtdjEwLWxhdGluLTUwMC5zdmcjWWFudHJhbWFuYXYnKSBmb3JtYXQoJ3N2ZycpOyAvKiBMZWdhY3kgaU9TICovXHJcbiAgfVxyXG4gIC8qIHlhbnRyYW1hbmF2LTkwMCAtIGxhdGluICovXHJcbiAgQGZvbnQtZmFjZSB7XHJcblx0Zm9udC1mYW1pbHk6ICdZYW50cmFtYW5hdic7XHJcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xyXG5cdGZvbnQtd2VpZ2h0OiA5MDA7XHJcblx0c3JjOiB1cmwoJy4uLy4uL0ZvbnRzL3lhbnRyYW1hbmF2LXYxMC1sYXRpbi05MDAuZW90Jyk7IC8qIElFOSBDb21wYXQgTW9kZXMgKi9cclxuXHRzcmM6IGxvY2FsKCcnKSxcclxuXHRcdCB1cmwoJy4uLy4uL0ZvbnRzL3lhbnRyYW1hbmF2LXYxMC1sYXRpbi05MDAuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgLyogSUU2LUlFOCAqL1xyXG5cdFx0IHVybCgnLi4vLi4vRm9udHMveWFudHJhbWFuYXYtdjEwLWxhdGluLTkwMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgLyogU3VwZXIgTW9kZXJuIEJyb3dzZXJzICovXHJcblx0XHQgdXJsKCcuLi8uLi9Gb250cy95YW50cmFtYW5hdi12MTAtbGF0aW4tOTAwLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgLyogTW9kZXJuIEJyb3dzZXJzICovXHJcblx0XHQgdXJsKCcuLi8uLi9Gb250cy95YW50cmFtYW5hdi12MTAtbGF0aW4tOTAwLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgLyogU2FmYXJpLCBBbmRyb2lkLCBpT1MgKi9cclxuXHRcdCB1cmwoJy4uLy4uL0ZvbnRzL3lhbnRyYW1hbmF2LXYxMC1sYXRpbi05MDAuc3ZnI1lhbnRyYW1hbmF2JykgZm9ybWF0KCdzdmcnKTsgLyogTGVnYWN5IGlPUyAqL1xyXG4gIH1cclxuXHJcbiAgQGZvbnQtZmFjZSB7XHJcblx0Zm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNiBQcm8nO1xyXG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuXHRmb250LXdlaWdodDogMzAwO1xyXG5cdGZvbnQtZGlzcGxheTogYmxvY2s7XHJcblx0c3JjOiB1cmwoXCIuLi8uLi9Gb250cy9mYS1saWdodC0zMDAud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uLy4uL0ZvbnRzL2ZhLWxpZ2h0LTMwMC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7IFxyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuXHRmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA2IFBybyc7XHJcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xyXG5cdGZvbnQtd2VpZ2h0OiA0MDA7XHJcblx0Zm9udC1kaXNwbGF5OiBibG9jaztcclxuXHRzcmM6IHVybChcIi4uLy4uL0ZvbnRzL2ZhLXJlZ3VsYXItNDAwLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi8uLi9Gb250cy9mYS1yZWd1bGFyLTQwMC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7IFxyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuXHRmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA2IFBybyc7XHJcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xyXG5cdGZvbnQtd2VpZ2h0OiA5MDA7XHJcblx0Zm9udC1kaXNwbGF5OiBibG9jaztcclxuXHRzcmM6IHVybChcIi4uLy4uL0ZvbnRzL2ZhLXNvbGlkLTkwMC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vLi4vRm9udHMvZmEtc29saWQtOTAwLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTsgXHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG5cdGZvbnQtZmFtaWx5OiAnRm9udCBBd2Vzb21lIDYgUHJvJztcclxuXHRmb250LXN0eWxlOiBub3JtYWw7XHJcblx0Zm9udC13ZWlnaHQ6IDEwMDtcclxuXHRmb250LWRpc3BsYXk6IGJsb2NrO1xyXG5cdHNyYzogdXJsKFwiLi4vLi4vRm9udHMvZmEtdGhpbi0xMDAud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uLy4uL0ZvbnRzL2ZhLXRoaW4tMTAwLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTsgXHJcbn1cclxuXHJcbiIsIi8qKlxyXG4gKiBIZWFkaW5nLlxyXG4gKi9cclxuIGgxLFxyXG5oMixcclxuaDMsXHJcbmg0LFxyXG4laGVhZGluZyB7XHJcblx0Zm9udC1mYW1pbHk6IG1hcC1nZXQoJGZvbnQtZmFtaWx5LCAnaGVhZGluZycpO1xyXG59XHJcbiBcclxuIC8qKlxyXG4gICogSGVhZGluZyAxLlxyXG4gICovXHJcbiBcclxuIGgxLFxyXG4gLmhlYWRpbmctMSB7XHJcblx0IEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdCBmb250LXNpemU6IG1hcC1nZXQoJGZvbnQtc2l6ZS1tb2JpbGUsICdoMScpO1xyXG5cdFx0IGxpbmUtaGVpZ2h0OiAxNDAlO1xyXG5cdCB9XHJcbiBcclxuXHQgZm9udC1zaXplOiBtYXAtZ2V0KCRmb250LXNpemUsICdoMScpO1xyXG5cdCBsaW5lLWhlaWdodDogMTQwJTtcclxuXHQgZm9udC13ZWlnaHQ6IDQwMDtcclxuXHQgbGV0dGVyLXNwYWNpbmc6IC0wLjA0ZW07XHJcbiB9XHJcbiBcclxuIC8qKlxyXG4gICogSGVhZGluZyAyLlxyXG4gICovXHJcbiBcclxuIGgyLFxyXG4gJWhlYWRpbmctMixcclxuIC5oZWFkaW5nLTIge1xyXG5cdCBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcblx0XHQgZm9udC1zaXplOiBtYXAtZ2V0KCRmb250LXNpemUtbW9iaWxlLCAnaDInKTtcclxuXHRcdCBsaW5lLWhlaWdodDogMTQwJTtcclxuXHQgfVxyXG4gXHJcblx0IGZvbnQtc2l6ZTogbWFwLWdldCgkZm9udC1zaXplLCAnaDInKTtcclxuXHQgbGluZS1oZWlnaHQ6IDE0MCU7XHJcblx0IGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiB9XHJcbiBcclxuIFxyXG4gLyoqXHJcbiAgKiBIZWFkaW5nIDMuXHJcbiAgKi9cclxuIFxyXG4gaDMsXHJcbiAlaGVhZGluZy0zLFxyXG4gLmhlYWRpbmctMyB7XHJcblx0IEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdCBmb250LXNpemU6IG1hcC1nZXQoJGZvbnQtc2l6ZS1tb2JpbGUsICdoMycpO1xyXG5cdFx0IGxpbmUtaGVpZ2h0OiAxNDAlO1xyXG5cdCB9XHJcbiBcclxuXHQgZm9udC1zaXplOiBtYXAtZ2V0KCRmb250LXNpemUsICdoMycpO1xyXG5cdCBsaW5lLWhlaWdodDogMTQwJTtcclxuXHQgZm9udC13ZWlnaHQ6IDQwMDtcclxuIH1cclxuIFxyXG4gXHJcbiAvKipcclxuICAqIEhlYWRpbmcgMy5cclxuICAqL1xyXG4gXHJcbiBoNCxcclxuICVoZWFkaW5nLTQge1xyXG5cdCBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcblx0XHQgZm9udC1zaXplOiBtYXAtZ2V0KCRmb250LXNpemUtbW9iaWxlLCAnaDQnKTtcclxuXHRcdCBsaW5lLWhlaWdodDogMTQwJTtcclxuXHQgfVxyXG4gXHJcblx0IGZvbnQtc2l6ZTogbWFwLWdldCgkZm9udC1zaXplLCAnaDQnKTtcclxuXHQgbGluZS1oZWlnaHQ6IDE0MCU7XHJcblx0IGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiB9XHJcbiBcclxuIFxyXG4gLyoqXHJcbiAgKiBIZWFkaW5nIDMuXHJcbiAgKi9cclxuIFxyXG4gaDUsXHJcbiAlaGVhZGluZy01IHtcclxuXHQgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0IGZvbnQtc2l6ZTogbWFwLWdldCgkZm9udC1zaXplLW1vYmlsZSwgJ2g1Jyk7XHJcblx0XHQgbGluZS1oZWlnaHQ6IDE0MCU7XHJcblx0IH1cclxuIFxyXG5cdCBmb250LXNpemU6IG1hcC1nZXQoJGZvbnQtc2l6ZSwgJ2g1Jyk7XHJcblx0IGxpbmUtaGVpZ2h0OiAxNDAlO1xyXG5cdCBmb250LXdlaWdodDogNDAwO1xyXG4gfVxyXG4gXHJcbiBcclxuIC8qKlxyXG4gICogU3ViaGVhZGluZy5cclxuICAqL1xyXG4gXHJcbiBcclxuIHAge1xyXG5cdCBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcblx0XHQgZm9udC1zaXplOiBtYXAtZ2V0KCRmb250LXNpemUtbW9iaWxlLCAncCcpO1xyXG5cdFx0IGxpbmUtaGVpZ2h0OiAxNjAlO1xyXG5cdCB9XHJcbiBcclxuXHQgZm9udC1zaXplOiBtYXAtZ2V0KCRmb250LXNpemUsICdwJyk7XHJcblx0IGxpbmUtaGVpZ2h0OiAxNjAlO1xyXG4gfSIsIi5oYXMtbGF6eS1sb2FkIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0dG9wOiAtMTUwcHg7XHJcblx0dHJhbnNpdGlvbjogYWxsIDc1MG1zIGVhc2U7XHJcblx0dHJhbnNpdGlvbi1kZWxheTogNTAwbXM7XHJcblx0b3BhY2l0eTogMDtcclxuXHJcblx0Ji5oZWFkZXIge1xyXG5cdFx0dHJhbnNpdGlvbi1kZWxheTogNzUwbXM7XHJcblx0XHR0cmFuc2l0aW9uOiBhbGwgNTAwbXMgZWFzZTtcclxuXHR9XHJcbn1cclxuXHJcbi5oYXMtbGF6eS1sb2FkW2xvYWRlZD0ndHJ1ZSddIHtcclxuXHR0b3A6IDA7XHJcblx0b3BhY2l0eTogMTtcclxufVxyXG4iLCIucGFnaW5hdGlvbiB7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0bWFyZ2luLWJvdHRvbTogMTUwcHg7XHJcblxyXG5cdC53cmFwcGVyIHtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdH1cclxuXHJcblx0LnBhZ2UtbnVtYmVycyB7XHJcblx0XHRAaW5jbHVkZSBmb250KDE4cHgsIDIycHgpO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdG1hcmdpbi1yaWdodDogMTBweDtcclxuXHRcdHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlO1xyXG5cdFx0Y29sb3I6ICRibGFjay0xMDA7XHJcblx0XHRmb250LXdlaWdodDogNTAwO1xyXG5cclxuXHRcdCY6aG92ZXIsXHJcblx0XHQmLmN1cnJlbnQge1xyXG5cdFx0XHRjb2xvcjogJHJlZC0xMDA7XHJcblx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5wcmV2LFxyXG5cdFx0Ji5uZXh0IHtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAxNXB4O1xyXG5cclxuXHRcdFx0c3ZnIHtcclxuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdFx0dG9wOiAwO1xyXG5cdFx0XHRcdHdpZHRoOiAyN3B4O1xyXG5cdFx0XHRcdGhlaWdodDogMjJweDtcclxuXHRcdFx0XHRjb2xvcjogJGJsYWNrLTEwMDtcclxuXHRcdFx0XHR0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0Y29sb3I6ICRyZWQtMTAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5uZXh0IHtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogNXB4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKipcclxuICogV3JhcHBlciAoZGVmYXVsdClcclxuICovXHJcblxyXG4ud3JhcHBlciB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0QGluY2x1ZGUgY29udGFpbmVyKDExMjBweCwgNjBweCk7XHJcblx0fVxyXG5cdEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuXHRcdEBpbmNsdWRlIGNvbnRhaW5lcigxMTIwcHgsIDIwcHgpO1xyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgY29udGFpbmVyKDExMjBweCwgMTAwcHgpO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFdyYXBwZXIgKHNtYWxsKVxyXG4gKi9cclxuXHJcbi53cmFwcGVyLS1zbWFsbCB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0QGluY2x1ZGUgY29udGFpbmVyKDYwMHB4LCA3MHB4KTtcclxuXHR9XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG5cdFx0QGluY2x1ZGUgY29udGFpbmVyKDYwMHB4LCAyMHB4KTtcclxuXHR9XHJcblxyXG5cdEBpbmNsdWRlIGNvbnRhaW5lcig2MDBweCwgMTEwcHgpO1xyXG59XHJcbiIsIlxyXG4uaGVhZGVyIHtcclxuXHRoZWlnaHQ6IDEwMHB4O1xyXG5cdC53cmFwcGVyIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRmbGV4LXdyYXA6IHdyYXA7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcclxuXHR9XHJcbn1cclxuLmhlYWRlcl9fbG9nbyB7XHJcblx0aW1nIHtcclxuXHRcdGhlaWdodDogMzVweDtcclxuXHRcdHdpZHRoOiBhdXRvO1xyXG5cdH1cclxufVxyXG5cclxuLmhlYWRlcl9faW1hZ2Uge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdGhlaWdodDogMjAwcHg7XHJcblx0fVxyXG5cdGhlaWdodDogNDAwcHg7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHRpbWcge1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRvYmplY3QtZml0OiBjb3ZlcjtcclxuXHRcdHotaW5kZXg6IC0xO1xyXG5cdH1cclxufVxyXG5cclxuLmhlYWRlcl9fYnV5LW5vdyB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogNTAlO1xyXG5cdGxlZnQ6IDUwJTtcclxuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuXHQmOmhvdmVyIHtcclxuXHRcdCY6OmJlZm9yZSB7XHJcblx0XHRcdHRyYW5zZm9ybTogc2NhbGVYKDEpO1xyXG5cdFx0XHRsZWZ0OiAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Jjo6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6ICcnO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2EzYjExMjtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHRvcDogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdHotaW5kZXg6IC0xO1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZVgoMCk7XHJcblx0XHRsZWZ0OiAtMTAwJTtcclxuXHRcdHRyYW5zaXRpb246IGFsbCAwLjVzIGN1YmljLWJlemllcigwLjUyLCAxLjY0LCAwLjM3LCAwLjY2KTtcclxuXHR9XHJcbn0iLCIucmVnaXN0ZXIge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdHBhZGRpbmc6IDMwcHg7XHJcblx0fVxyXG5cdHBhZGRpbmc6IDYwcHg7XHJcbn1cclxuLnJlZ2lzdGVyX190aXRsZSB7XHJcblx0Zm9udC13ZWlnaHQ6IDkwMDtcclxufVxyXG5cclxuLnJlZ2lzdGVyX19zdWJ0aXRsZSB7XHJcblx0bWFyZ2luLXRvcDogMjBweDtcclxufVxyXG5cclxuLnJlZ2lzdGVyX19mb3JtIHtcclxuXHRtYXJnaW4tdG9wOiAzNXB4O1xyXG5cdC5yb3ctd3JhcCB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC13cmFwOiB3cmFwO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdG1hcmdpbi1ib3R0b206IDEycHg7XHJcblxyXG5cdFx0bGFiZWwge1xyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0XHR3aWR0aDogMTc1cHg7XHJcblx0XHRcdG1hcmdpbjogMDtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcclxuXHRcdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cclxuXHRcdFx0LnJlcXVpcmVkIHtcclxuXHRcdFx0XHRjb2xvcjogJGdyZWVuLTEwMDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGlucHV0IHtcclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHR9XHJcblx0XHRcdHdpZHRoOiBjYWxjKDEwMCUgLSAxNzVweCk7XHJcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XHJcblx0XHRcdHBhZGRpbmc6IDEwO1xyXG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xyXG5cclxuXHRcdFx0Jjo6cGxhY2Vob2xkZXIge1xyXG5cdFx0XHRcdGNvbG9yOiAjY2NjY2NjO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0LmhlbHAtdGV4dCB7XHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcclxuXHRcdFx0fVxyXG5cdFx0XHRtYXJnaW4tbGVmdDogMTc1cHg7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdFx0Y29sb3I6ICRncmVlbi0xMDA7XHJcblxyXG5cdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblxyXG5cdC5yZWdpc3Rlcl9fZm9ybS1sb2dpbiwgLnJlZ2lzdGVyX19mb3JtLXBheW1lbnQge1xyXG5cdFx0bWFyZ2luLXRvcDogNTBweDtcclxuXHR9XHJcblxyXG5cdC5yZWdpc3Rlcl9fZm9ybS1zdWJtaXQge1xyXG5cdFx0aW5wdXRbdHlwZT1zdWJtaXRdIHtcclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdFx0XHR9XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAxNzVweDtcclxuXHRcdFx0bWFyZ2luLXRvcDogMjBweDtcclxuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6IDkwMDtcclxuXHRcdFx0Y29sb3I6ICRibGFjay0xMDA7XHJcblx0XHRcdGJvcmRlcjogM3B4IHNvbGlkICRibHVlLTEwMDtcclxuXHRcdFx0Zm9udC1zaXplOiAxMnB4O1xyXG5cdFx0XHRwYWRkaW5nOiAxMHB4IDE2cHg7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDRweDtcclxuXHRcdFx0d2lkdGg6IGZpdC1jb250ZW50O1xyXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHRcdHRyYW5zaXRpb246IGFsbCAzNTBtcyBlYXNlLWluLW91dDtcclxuXHJcblx0XHRcdCY6aG92ZXIge1xyXG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRibHVlLTEwMDtcclxuXHRcdFx0XHRjb2xvcjogJHdoaXRlLTEwMDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ji5pcy1kaXNhYmxlZCB7XHJcblx0XHRcdFx0b3BhY2l0eTogMC41O1xyXG5cdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdFx0XHRcdGN1cnNvcjogYXV0bztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LnBhc3N3b3JkLWVycm9yX19sZW5ndGgsIC5wYXNzd29yZC1lcnJvcl9fdXBwZXJjYXNlLCAuaWJhbl9lcnJvcl9faW52YWxpZCB7XHJcblx0XHRAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAwcHg7XHJcblx0XHRcdHBhZGRpbmc6IDVweCAxMHB4O1xyXG5cdFx0XHRmb250LXNpemU6IDEzcHg7XHJcblx0XHR9XHJcblx0XHRtYXJnaW4tdG9wOiAxMHB4O1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRtYXJnaW4tbGVmdDogMTc1cHg7XHJcblx0XHRjb2xvcjogJHJlZC0xMDA7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkLTEwO1xyXG5cdFx0cGFkZGluZzogMTBweDtcclxuXHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHR9XHJcbn0iLCIuZnJhbWUtdHlwZS1mZWxvZ2luX2xvZ2luICB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0cGFkZGluZzogMzBweDtcclxuXHR9XHJcblx0cGFkZGluZzogNjBweDtcclxuXHJcblx0bWF4LXdpZHRoOiA5MDBweDtcclxuXHRtYXJnaW46IDAgYXV0bztcclxuXHJcblx0YSB7XHJcblx0XHRvcGFjaXR5OiAwLjU7XHJcblx0XHRmb250LXNpemU6IDE1cHg7XHJcblx0XHR0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZS1pbi1vdXQ7XHJcblxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uZnJhbWUtdHlwZS1mZWxvZ2luX2xvZ2luIGZvcm0gbGVnZW5ke1xyXG5cdGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5mcmFtZS10eXBlLWZlbG9naW5fbG9naW4gZm9ybSBsYWJlbCB7XHJcblx0bWFyZ2luOiAwO1xyXG5cdGNvbG9yOiAkYmx1ZS0xMDA7XHJcblx0Zm9udC13ZWlnaHQ6IDQwMDtcclxufVxyXG5cclxuLmZyYW1lLXR5cGUtZmVsb2dpbl9sb2dpbiBmb3JtIGlucHV0W3R5cGU9c3VibWl0XSB7XHJcblx0QGV4dGVuZCAuYnV0dG9uO1xyXG5cdEBleHRlbmQgLmJ1dHRvbi0tcHJpbWFyeTtcclxuXHRib3JkZXI6IDA7XHJcblx0d2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5mcmFtZS10eXBlLWZlbG9naW5fbG9naW4gZm9ybSBkaXYge1xyXG5cdG1hcmdpbi10b3A6IDI1cHg7XHJcbn1cclxuXHJcbi5sb2dpbl9faGVhZGVyLCAuZnJhbWUtdHlwZS1mZWxvZ2luX2xvZ2luIGgzIHtcclxuXHRmb250LXdlaWdodDogOTAwO1xyXG59XHJcblxyXG4ubG9naW5fX3N1YnRpdGxlIC5mcmFtZS10eXBlLWZlbG9naW5fbG9naW4gcCB7XHJcblx0bWFyZ2luLXRvcDogMjBweDtcclxufVxyXG5cclxuaDMubG9naW5fX2hlYWRlciB7XHJcblx0bWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuLmxvZ2luX19mb3JtIHtcclxuXHRtYXJnaW4tdG9wOiAyMHB4O1xyXG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblxyXG5cdC5yb3ctd3JhcCB7XHJcblx0XHRtYXJnaW4tdG9wOiAwO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcclxuXHR9XHJcblxyXG5cdGxhYmVsIHtcclxuXHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHRtYXJnaW46IDA7XHJcblx0fVxyXG59XHJcblxyXG4ubG9naW5fX2J1dHRvbiB7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0Ym9yZGVyOiAwO1xyXG5cdG1hcmdpbi10b3A6IDEwcHg7XHJcbn0iLCIuZm9vdGVyIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZS0xMDA7XHJcblx0Y29sb3I6ICR3aGl0ZS0xMDA7XHJcblx0cGFkZGluZzogMTBweCA2MHB4O1xyXG5cdGZvbnQtd2VpZ2h0OiA0MDA7XHJcblx0bGluZS1oZWlnaHQ6IDI0cHg7XHJcblx0Zm9udC1zaXplOiAxNnB4O1xyXG5cclxuXHRhIHtcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuXHRcdH1cclxuXHR9XHJcblx0LndyYXBwZXIge1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdH1cclxufSIsIi52b3VjaGVyLXJlZGVlbSB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0cGFkZGluZzogMzBweDtcclxuXHR9XHJcblx0cGFkZGluZzogNjBweDtcclxufVxyXG5cclxuLnZvdWNoZXItcmVkZWVtX19pbnRyby10aXRsZSB7XHJcblx0QGV4dGVuZCBoMztcclxuXHRmb250LXdlaWdodDogOTAwO1xyXG59XHJcblxyXG4udm91Y2hlci1yZWRlZW1fX2ludHJvLXRleHQge1xyXG5cdG1hcmdpbi10b3A6IDIwcHg7XHJcbn1cclxuXHJcbi52b3VjaGVyLXJlZGVlbV9faW50cm8taW1hZ2Uge1xyXG5cdG1hcmdpbjogMjBweCAwO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogMTAwJTtcclxuXHRtYXgtaGVpZ2h0OiAzMDBweDtcclxuXHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cclxuXHRpbWcge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRtYXgtaGVpZ2h0OiAzMDBweDtcclxuXHRcdG9iamVjdC1maXQ6IGNvbnRhaW47XHJcblx0XHRvYmplY3QtcG9zaXRpb246IGJvdHRvbTtcclxuXHR9XHJcbn1cclxuXHJcbi52b3VjaGVyLXJlZGVlbV9fZm9ybSB7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogI2QwZWVmOTtcclxuXHRjb2xvcjogJGJsdWUtMTAwO1xyXG5cdHBhZGRpbmc6IDQwcHg7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRmbGV4LXdyYXA6IHdyYXA7XHJcblx0bWFyZ2luLXRvcDogNTBweDtcclxuXHJcblx0aW5wdXQge1xyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xyXG5cdFx0fVxyXG5cdFx0d2lkdGg6IDc1JTtcclxuXHRcdG1hcmdpbi1yaWdodDogNSU7XHJcblx0XHRoZWlnaHQ6IDUwcHg7XHJcblx0XHRmb250LXNpemU6IDIwcHg7XHJcblx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0cGFkZGluZzogMjBweCAxOHB4O1xyXG5cdFx0Ym9yZGVyOiAwO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xyXG5cclxuXHRcdCY6OnBsYWNlaG9sZGVyIHtcclxuXHRcdFx0b3BhY2l0eTogMC43O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LnZvdWNoZXItcmVkZWVtX19zdWJtaXQge1xyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0bWFyZ2luLXRvcDogMTBweDtcclxuXHRcdH1cclxuXHRcdHdpZHRoOiAyMCU7XHJcblx0fVxyXG59XHJcblxyXG4udm91Y2hlci1yZWRlZW1fX2xvZ291dCB7XHJcblx0bWFyZ2luLXRvcDogNTBweDtcclxufVxyXG5cclxuLnZvdWNoZXItcmVkZWVtX19mb3JtLXRpdGxlIHtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRmb250LXNpemU6IDI2cHg7XHJcblx0bGluZS1oZWlnaHQ6IDMwcHg7XHJcblx0bWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnZvdWNoZXItcmVkZWVtX19zdWJtaXQge1xyXG5cdHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4udm91Y2hlci1yZWRlZW1fX3N1Ym1pdCB7XHJcblx0Zm9udC1zaXplOiAxNnB4O1xyXG59IiwiLm9yZGVyIHtcclxuXHRtYXJnaW4tdG9wOiA2MHB4O1xyXG5cdGZvbnQtc2l6ZTogMjRweDtcclxuXHRmb250LXdlaWdodDogOTAwO1xyXG5cdG1hcmdpbi1ib3R0b206IDEwMHB4O1xyXG59XHJcblxyXG4ub3JkZXJfX3RpdGxlIHtcclxuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cdGZvbnQtc2l6ZTogMjRweDtcclxuXHRmb250LXdlaWdodDogOTAwO1xyXG5cdGNvbG9yOiAkYmx1ZS0xMDA7XHJcbn1cclxuXHJcbi5vcmRlcl9fdXNlci1maWVsZHMge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdGdhcDogMDtcclxuXHRcdG1hcmdpbi10b3A6IDUwcHg7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHR9XHJcblxyXG5cdHdpZHRoOiA4MCU7XHJcblx0bWFyZ2luLXRvcDogMTAwcHg7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRmbGV4LXdyYXA6IHdyYXA7XHJcblx0Z2FwOiAwIDMwcHg7XHJcblxyXG5cdGxhYmVsIHtcclxuXHRcdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHR9XHJcblxyXG5cdFx0bWFyZ2luLWxlZnQ6IDA7XHJcblxyXG5cdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XHJcblx0XHRcdHNwYW4ge1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRzZWxlY3Qge1xyXG5cdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR3aWR0aDogY2FsYyg1MCUgLSAxNnB4KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0d2lkdGg6IGNhbGMoNTAlIC0gMTZweCk7XHJcblx0XHRzcGFuIHtcclxuXHRcdFx0Y29sb3I6ICRibHVlLTEwMDtcclxuXHRcdFx0Zm9udC1zaXplOiAxNXB4O1xyXG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0XHRtYXJnaW46IDE1cHggMCA1cHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5sYWJlbFtmb3I9J2ZpZWxkLWNvbW1lbnRzJ117XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0bWFyZ2luLWJvdHRvbTogNDVweDtcclxufVxyXG5cclxuLm9yZGVyX19zaGlwcGluZyB7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRmbGV4LXdyYXA6IHdyYXA7XHJcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHR3aWR0aDogMTAwJTtcclxuXHJcblx0c3BhbiB7XHJcblx0XHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xyXG5cdFx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XHJcblx0XHRtYXJnaW4tbGVmdDogMTBweCAhaW1wb3J0YW50O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDEwMCU7XHJcblx0fVxyXG5cclxuXHRpbnB1dFt0eXBlPWNoZWNrYm94XSAge1xyXG5cdFx0JjpjaGVja2VkIHtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGdyZWVuLTEwMCAhaW1wb3J0YW50O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji5pcy1hY3RpdmUge1xyXG5cdFx0aW5wdXRbdHlwZT1jaGVja2JveF0ge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW4tMTAwICFpbXBvcnRhbnQ7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4ub3JkZXJfX3dyYXAtYm9keSB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0fVxyXG5cdHdpZHRoOiBjYWxjKDEwMCUgLSAxNDBweCk7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRmbGV4LXdyYXA6IHdyYXA7XHJcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtYmx1ZS0xMDA7XHJcblx0cGFkZGluZzogNDBweCAxMHB4O1xyXG5cdGJvcmRlci1yYWRpdXM6IDRweDtcclxufVxyXG5cclxuLm9yZGVyX193cmFwLWltYWdlIHtcclxuXHRAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdH1cclxuXHR3aWR0aDogY2FsYyg1MCUgLSA1MHB4KTtcclxuXHRtYXJnaW4tbGVmdDogNTBweDtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG5cdGltZyB7XHJcblx0XHRtYXgtaGVpZ2h0OiAxNTBweDtcclxuXHR9XHJcbn1cclxuXHJcbi5vcmRlcl9fd3JhcC10ZXh0e1xyXG5cdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDA7XHJcblx0XHRtYXJnaW4tdG9wOiAzMHB4O1xyXG5cdH1cclxuXHR3aWR0aDogY2FsYyg1MCUgLSA3MHB4KTtcclxuXHRtYXJnaW4tbGVmdDogNzBweDtcclxuXHRjb2xvcjogJHdoaXRlLTEwMDtcclxuXHRmb250LXNpemU6IDE2cHg7XHJcblxyXG5cdHN0cm9uZyB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuXHR9XHJcblxyXG5cdHAge1xyXG5cdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuXHR9XHJcbn1cclxuXHJcbi5vcmRlcl9fd3JhcCB7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRmbGV4LXdyYXA6IHdyYXA7XHJcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLm9yZGVyX19wcm9kdWN0LWxhYmVsIHtcclxuXHRAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcblx0XHR3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDA7XHJcblx0fVxyXG5cdG1hcmdpbjogMTdweDtcclxuXHR3aWR0aDogNzBweDtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGZsZXgtd3JhcDogd3JhcDtcclxuXHRoZWlnaHQ6IGZpdC1jb250ZW50O1xyXG5cdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuXHRhbGlnbi1jb250ZW50OiBjZW50ZXI7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHQmOjphZnRlciB7XHJcblx0XHRAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcblx0XHRcdGxlZnQ6IDUwcHg7XHJcblx0XHR9XHJcblx0XHRjb250ZW50OiAnXFxmMTA3JztcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGJsdWUtMTAwO1xyXG5cdFx0Y29sb3I6ICR3aGl0ZS0xMDA7XHJcblx0XHRmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA2IFBybyc7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdHdpZHRoOiAyMHB4O1xyXG5cdFx0aGVpZ2h0OiA0MHB4O1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0cGFkZGluZy10b3A6IDZweDtcclxuXHRcdGZvbnQtc2l6ZTogMTNweDtcclxuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdH1cclxuXHJcblx0c3Ryb25nIHtcclxuXHRcdGZvbnQtc2l6ZTogMThweDtcclxuXHRcdGZvbnQtd2VpZ2h0OiA3MDBweDtcclxuXHRcdGNvbG9yOiAkYmx1ZS0xMDA7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHR9XHJcblxyXG5cdHNlbGVjdCB7XHJcblx0XHRwYWRkaW5nOiA1cHggMzBweCA1cHggMjJweDtcclxuXHRcdGhlaWdodDogNDBweDtcclxuXHRcdHdpZHRoOiA3MHB4O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogbm9uZTtcclxuXHRcdGJvcmRlcjogMDtcclxuXHRcdGJveC1zaGFkb3c6IDBweCA0cHggMTJweCByZ2JhKDMyLCA1MCwgMTAwLCAuMjApO1xyXG5cdH1cclxufVxyXG5cclxuLm9yZGVyX19zaGlwcGluZy13cmFwcGVyIHtcclxuXHR3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLm9yZGVyX19zaGlwcGluZy1ib2R5IHtcclxuXHRkaXNwbGF5OiBub25lO1xyXG5cclxuXHRsYWJlbCB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHR9XHJcbn1cclxuXHJcbi5vcmRlcl9fZm9ybS1zdWJtaXQge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHR9XHJcblx0bWFyZ2luLXRvcDogMjBweDtcclxuXHRAZXh0ZW5kIC5idXR0b247XHJcblx0QGV4dGVuZCAuYnV0dG9uLS1wcmltYXJ5O1xyXG5cdGhlaWdodDogYXV0bztcclxufVxyXG5cclxuLm9yZGVyX19mb3JtLXByb2R1Y3RzIHtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGZsZXgtd3JhcDogd3JhcDtcclxuXHR3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLm9yZGVyX19wcm9kdWN0IHtcclxuXHRAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHR9XHJcblx0d2lkdGg6IDUwJTtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGZsZXgtd3JhcDogd3JhcDtcclxuXHRtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG5cdC5vcmRlcl9fcHJvZHVjdC1sYWJlbCB7XHJcblx0XHR3aWR0aDogNzBweDtcclxuXHR9XHJcbn1cclxuXHJcbi5vcmRlcl9fcHJvZHVjdC1pbWFnZSB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xyXG5cdH1cclxuXHRtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDE0MHB4KTtcclxufVxyXG5cclxuLm9yZGVyX19pbnRybyB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMzBweDtcclxuXHR9XHJcblx0bWFyZ2luLWJvdHRvbTogNjBweDtcclxuXHRmb250LXdlaWdodDogbm9ybWFsO1xyXG5cclxuXHRwIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDAuNWVtO1xyXG5cclxuXHRcdCY6bGFzdC1jaGlsZCgpIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGEge1xyXG5cdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcblx0XHR0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZS1pbi1vdXQ7XHJcblxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdG9wYWNpdHk6IDAuNztcclxuXHRcdH1cclxuXHR9XHJcbn0iLCIubWVzc2FnZSB7XHJcblx0bWFyZ2luOiAyMHB4IDA7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdHBhZGRpbmc6IDIwcHggMTVweDtcclxufVxyXG5cclxuLm1lc3NhZ2UtLWVycm9yLCAubWVzc2FnZS0tRVJST1Ige1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICRyZWQtMTA7XHJcblx0Y29sb3I6ICRyZWQtMTAwO1xyXG59XHJcblxyXG4ubWVzc2FnZS0tb2ssIC5tZXNzYWdlLS1PSyB7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogJGdyZWVuLTEwO1xyXG5cdGNvbG9yOiAkYmx1ZS0xMDA7XHJcbn1cclxuXHJcbi5tZXNzYWdlLS1pbmZvLCAubWVzc2FnZS0tSU5GTyB7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogJGJsdWUtMTA7XHJcblx0Y29sb3I6ICRibHVlLTEwMDtcclxufSIsIi5vcmRlci1jb25maXJtYXRpb24ge1xyXG5cdHBhZGRpbmctdG9wOiA2MHB4O1xyXG5cclxuXHQud3JhcHBlciB7XHJcblx0XHRAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0fVxyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtd3JhcDogd3JhcDtcclxuXHRcdGdhcDogMCA1MHB4XHJcblx0fVxyXG59XHJcblxyXG4ub3JkZXItY29uZmlybWF0aW9uX190aXRsZSB7XHJcblx0QGV4dGVuZCBoMztcclxuXHRmb250LXdlaWdodDogOTAwO1xyXG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblx0d2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5vcmRlci1jb25maXJtYXRpb25fX2Rlc2NyaXB0aW9uIHtcclxuXHRtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG5cdHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ub3JkZXItY29uZmlybWF0aW9uX19wcm9kdWN0cy10aXRsZSB7XHJcblx0cGFkZGluZy1ib3R0b206IDVweDtcclxuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cdG1hcmdpbi10b3A6IDI1cHg7XHJcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRibHVlLTEwMDtcclxufVxyXG5cclxuLm9yZGVyLWNvbmZpcm1hdGlvbl9fYWN0aW9ucyB7XHJcblx0bWFyZ2luLXRvcDogNTBweDtcclxuXHRtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG5cdGEge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG5cdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcblx0XHR0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZS1pbi1vdXQ7XHJcblxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdG9wYWNpdHk6IDAuNVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YnV0dG9uIHtcclxuXHRcdEBleHRlbmQgLmJ1dHRvbjtcclxuXHRcdEBleHRlbmQgLmJ1dHRvbi0tcHJpbWFyeTtcclxuXHR9XHJcbn1cclxuXHJcbi5vcmRlci1jb25maXJtYXRpb25fX3Byb2R1Y3RzICB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0fVxyXG5cdHdpZHRoOiBjYWxjKDUwJSAtIDMwcHgpO1xyXG59IiwiLyoqXHJcbiAqIENvbG9yIHV0aWxpdHkgY2xhc3Nlcy5cclxuICpcclxuICogQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgY29sb3IgYW5kIGJhY2tncm91bmQgY29sb3IgdXRpbGl0eSBjbGFzc2VzIGJhc2VkIG9uIGV2ZXJ5IGNvbG9yIGRlZmluaXRpb24gaW4gYHNldHRpbmdzL19jb2xvci5zY3NzYC5cclxuICogTG9vcCB0aHJvdWdoIGV2ZXJ5IGAka2V5YCBhbmQgYCRtYXBgIGluIHRoZSBgJGNvbG9yc2AgdmFyaWFibGUgbWFwIGRlZmluZWQgaW4gYHNldHRpbmdzL19jb2xvci5zY3NzYC5cclxuICovXHJcbiBcclxuQGVhY2ggJGtleSwgJG1hcCBpbiAkY29sb3JzIHtcclxuXHJcblx0Ly8gTG9vcCB0aHJvdWdoIGV2ZXJ5IGAkc2hhZGVgIGFuZCBgJHJnYmAgaW4gYCRtYXBgLlxyXG5cdEBlYWNoICRzaGFkZSwgJHJnYiBpbiAkbWFwIHtcclxuXHJcblx0XHQvLyBMb29wIHRocm91Z2ggZXZlcnkgYGNvbG9yYCBhbmQgYGJhY2tncm91bmQtY29sb3JgIHJ1bGVzLlxyXG5cdFx0QGVhY2ggJHJ1bGUgaW4gY29sb3IsIGJhY2tncm91bmQtY29sb3Ige1xyXG5cclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIGAjeyRydWxlfWAgI3skcmdifS0jeyRzaGFkZX0gY29sb3IgdXRpbGl0eS5cclxuXHRcdFx0ICovXHJcblxyXG5cdFx0XHQuI3skcnVsZX0tI3t1bnF1b3RlKCRrZXkpfS0je3VucXVvdGUoJHNoYWRlKX0ge1xyXG5cdFx0XHRcdCN7JHJ1bGV9OiAkcmdiO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qKlxyXG4gKiBWaXN1YWxseSBoaWRlIGFueSBlbGVtZW50IGZyb20gdGhlIHVzZXIuXHJcbiAqL1xyXG5cclxuLnZpc3VhbGx5LWhpZGRlbiB7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHdpZHRoOiAxcHg7XHJcblx0aGVpZ2h0OiAxcHg7XHJcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcclxuXHRjbGlwLXBhdGg6IGluc2V0KDFweCk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogTWFrZSBsYXp5bG9hZCBwbGFjZWhvbGRlciAxMDAlIHdpZGUuXHJcbiAqL1xyXG5cclxuLmxhenlsb2FkIHtcclxuXHR3aWR0aDogMTAwJTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBIZWxwZXIgY2xhc3MgZm9yIG9iamVjdCBmaXQgcG9seWZpbGwuIEFkZCB0aGlzIGNsYXNzIHRvIGFueSBlbGVtZW50XHJcbiAqIHRoYXQgdXRpbGl6ZXMgdGhlIGBvYmplY3QtZml0YCBwcm9wZXJ0eS5cclxuICovXHJcblxyXG4lb2JqZWN0LWZpdCxcclxuLm9iamVjdC1maXQge1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6IDA7XHJcblx0cmlnaHQ6IDA7XHJcblx0Ym90dG9tOiAwO1xyXG5cdGxlZnQ6IDA7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAxMDAlO1xyXG5cdGZvbnQtZmFtaWx5OiAnb2JqZWN0LWZpdDogY292ZXI7JztcclxuXHRvYmplY3QtZml0OiBjb3ZlcjtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBBbGlnbiBjZW50ZXIuXHJcbiAqL1xyXG5cclxuLmFsaWduLWNlbnRlciB7XHJcblx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4vKipcclxuICogQWxpZ24gbGVmdC5cclxuICovXHJcblxyXG4uYWxpZ24tbGVmdCB7XHJcblx0dGV4dC1hbGlnbjogbGVmdDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFsaWduIHJpZ2h0LlxyXG4gKi9cclxuXHJcbi5hbGlnbi1yaWdodCB7XHJcblx0dGV4dC1hbGlnbjogcmlnaHQ7XHJcbn1cclxuIiwiLyoqXHJcbiAqIE9iamVjdCBmaXQuXHJcbiAqXHJcbiAqIDEuIEZvbnQgZmFtaWx5IHBvbHlmaWxsIHdpdGggKGh0dHBzOi8vZ2l0aHViLmNvbS9iZnJlZC1pdC9vYmplY3QtZml0LWltYWdlcykuXHJcbiAqIExvb3AgdGhyb3VnaCBldmVyeSB2YWx1ZSBmb3IgdGhlIGBvYmplY3QtZml0YCBwcm9wZXJ0eS5cclxuICovXHJcblxyXG5AZWFjaCAkdmFsdWUgaW4gZmlsbCwgY29udGFpbiwgY292ZXIsIG5vbmUsIHNjYWxlLWRvd24ge1xyXG5cclxuXHQvKipcclxuXHQgKiBgb2JqZWN0LWZpdGAgI3skdmFsdWV9IHV0aWxpdHkgY2xhc3MuXHJcblx0ICovXHJcblxyXG5cdC4jeyR2YWx1ZX0ge1xyXG5cdFx0Zm9udC1mYW1pbHk6ICdvYmplY3QtZml0OiAjeyR2YWx1ZX07JzsgLyogMSAqL1xyXG5cdFx0b2JqZWN0LWZpdDogI3skdmFsdWV9O1xyXG5cdH1cclxufVxyXG4iLCIvKipcclxuICogUG9zaXRpb24gdXRpbGl0eSBjbGFzcy5cclxuICovXHJcblxyXG5AZWFjaCAkdmFsdWUgaW4gc3RhdGljLCByZWxhdGl2ZSwgYWJzb2x1dGUsIGZpeGVkLCBzdGlja3kge1xyXG5cdC4jeyR2YWx1ZX0ge1xyXG5cdFx0cG9zaXRpb246ICR2YWx1ZTtcclxuXHR9XHJcbn1cclxuIiwiXHJcbi8qKlxyXG4gKiBGb250IGZhbWlseSB1dGlsaXR5IGNsYXNzZXMuXHJcbiAqL1xyXG5cclxuQGVhY2ggJGtleSwgJGJyZWFrcG9pbnQgaW4gJGJyZWFrcG9pbnRzIHtcclxuXHRAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludCkge1xyXG5cdFx0QGVhY2ggJHByb3BlcnR5LCAkdmFsdWUgaW4gJGZvbnQtZmFtaWx5IHtcclxuXHRcdFx0LnRleHQtI3ska2V5fS0jeyRwcm9wZXJ0eX0ge1xyXG5cdFx0XHRcdGZvbnQtZmFtaWx5OiBtYXAtZ2V0KCRmb250LWZhbWlseSwgJHByb3BlcnR5KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBUZXh0IHNpemUgdXRpbGl0eSBjbGFzc2VzLlxyXG4gKi9cclxuXHJcbkBlYWNoICRrZXksICRicmVha3BvaW50IGluICRicmVha3BvaW50cyB7XHJcblx0QGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQpIHtcclxuXHRcdEBlYWNoICRwcm9wZXJ0eSwgJHZhbHVlIGluICRmb250LXNpemUge1xyXG5cdFx0XHQudGV4dC0jeyRrZXl9LSN7JHByb3BlcnR5fSB7XHJcblx0XHRcdFx0QGluY2x1ZGUgdGV4dCgkcHJvcGVydHkpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFRleHQgYWxpZ25tZW50IHV0aWxpdHkgY2xhc3Nlcy5cclxuICovXHJcblxyXG5AZWFjaCAka2V5LCAkYnJlYWtwb2ludCBpbiAkYnJlYWtwb2ludHMge1xyXG5cdEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50KSB7XHJcblx0XHRAZWFjaCAkZGlyZWN0aW9uIGluIGxlZnQsIHJpZ2h0LCBjZW50ZXIge1xyXG5cdFx0XHQudGV4dC0jeyRrZXl9LSN7JGRpcmVjdGlvbn0ge1xyXG5cdFx0XHRcdHRleHQtYWxpZ246ICRkaXJlY3Rpb247XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogRm9udCB3ZWlnaHQgdXRpbGl0eSBjbGFzc2VzLlxyXG4gKlxyXG4gKiAxLiBNdWx0aXBseSBsb29wZWQgaW50ZWdlciBieSAxMDAgZm9yIGNvcnJlY3QgZm9udCB3ZWlnaHQgdmFsdWUuXHJcbiAqL1xyXG5cclxuQGVhY2ggJGtleSwgJGJyZWFrcG9pbnQgaW4gJGJyZWFrcG9pbnRzIHtcclxuXHRAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludCkge1xyXG5cdFx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCA5IHtcclxuXHRcdFx0JGk6ICRpICogMTAwOyAvLyBbMV1cclxuXHJcblx0XHRcdC50ZXh0LSN7JGtleX0tI3skaX0ge1xyXG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiAjeyRpfTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBUZXh0IHRyYW5zZm9ybSB1aXRsaXR5IGNsYXNzZXMuXHJcbiAqL1xyXG5cclxuQGVhY2ggJGtleSwgJGJyZWFrcG9pbnQgaW4gJGJyZWFrcG9pbnRzIHtcclxuXHRAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludCkge1xyXG5cdFx0QGVhY2ggJHRyYW5zZm9ybSBpbiBjYXBpdGFsaXplLCB1cHBlcmNhc2UsIGxvd2VyY2FzZSwgbm9uZSwgZnVsbC13aWR0aCB7XHJcblx0XHRcdC50ZXh0LSN7JGtleX0tI3skdHJhbnNmb3JtfSB7XHJcblx0XHRcdFx0dGV4dC10cmFuc2Zvcm06ICR0cmFuc2Zvcm07XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLyoqXHJcbiAqIFZlcnRpY2FsIFJoeXRobS5cclxuICovXHJcbiBcclxuQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAxMCB7XHJcblx0JGk6ICRpICogODtcclxuXHJcblx0LnZyLSN7JGl9IHtcclxuXHRcdG1hcmdpbi1ib3R0b206ICN7JGl9cHg7XHJcblx0fVxyXG59XHJcbiIsIi8qKlxyXG4gKiBVdGlsaXR5IGNsYXNzZXMgZm9yIG1hbmlwdWxhdGluZyBzdGFja2luZyBvcmRlciBpbiBIVE1MLlxyXG4gKi9cclxuXHJcbkBlYWNoICRrZXksICR2YWx1ZSBpbiAkei1pbmRleCB7XHJcblx0LnotaW5kZXgtI3ska2V5fSB7XHJcblx0XHR6LWluZGV4OiAkdmFsdWU7XHJcblx0fVxyXG59XHJcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7RUFFRTtBQ0ZGOztHQUVHO0FDRkg7O0dBRUc7QUFRSDs7R0FFRztBQVlIOztHQUVHO0FBWUg7O0dBRUc7QUFZSDs7R0FFRztBQ3RESDs7R0FFRztBQW9ESDs7R0FFRztBRXhESDs7R0FFRztBQWVIOztHQUVHO0FBTUg7O0dBRUc7QUFlSDs7R0FFRztBQU1ILEFBQUEsQ0FBQyxBQUFBLFdBQVcsQ0FBQztFQUNYLGdCQUFnQixFRjFCVCxPQUFxQjtF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 */
