@charset "UTF-8";
/*!
	Theme Name: VAM Theme
	Theme URI:
	Description: This is the theme created for VAM
	Author: Khoozh
	Author URI:

	Version: 1.0.0

	Tags: one-column, two-columns, left-sidebar, right-sidebar, accessibility-ready, custom-colors, custom-logo, custom-menu, featured-images, footer-widgets, full-width-template, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready

	Template: genesis

	License: GPL-2.0+
	License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/
/* Table of Contents
sass/
|
|- abstracts/
|   |- _variables.scss    # Sass Variables
|   |- _functions.scss    # Sass Functions
|   |- _mixins.scss       # Sass Mixins
|   |- _placeholders.scss # Sass Placeholders
|
|- fonts/
|   |- _nucleo.scss       # Icon Pack
|
|– base/
|   |- _reset.scss        # Reset/normalize
|   |- _typography.scss   # Typography rules
|   |- _defaults.scss     # Genesis Defaults
|   |- _animations.scss   # Animations
|
|– components/
|   |- _graphics.scss            # Graphics
|   |- _buttons.scss             # Buttons
|   |- _widget.scss              # Genesis Default Widget and Plugins
|   |- _forms.scss               # Forms
|   |- _list-pagination.scss     # List and pagination
|   |- -title-divider.scss       # Title and dividers
|   |- _objects.scss             # Customised objects
|   |- _banners.scss             # Banners
|   |- _hero-slider.scss         # Hero Slider
|   |- _blocks.scss              # Blocks
|
|– layout/
|   |- _grid.scss         # Grid
|   |- _gs-structure-layout.scss # Genesis default structure and layout
|   |- _header.scss       # Header
|   |- _sidebar.scss      # Sidebar
|   |- _footer.scss       # Footer
|
|– pages/
|   |- _post-archive.scss        # Post archive styles
|   |- _post-single.scss         # Single Post Styles
|   |- _404-page.scss     		 # 404 Page
|
|– themes/
|   |- _khoozh.scss       # Default theme
|   |- _woocommerce.scss  # Woocommerce Styles
|
|– vendors/
|   |- _slick.scss        # Slick Slider
|   |- _slick-theme.scss  # Slick Slider Theme
|   |- _featherlight.scss # Featherlight Gallery
|
|- main.scss              # Main Sass file
*/
/* Variables
 ============================================= */
/* Body Text Styles */
/* Font Weight */
/* Colors */
/* Etc. */
/* Background pattern image link*/
:root {
  --swiper-pagination-color: #000;
  --swiper-navigation-color: #000;
  --swiper-theme-color: #000;
  --swiper-pagination-bullet-inactive-color: #fff;
  --spacing: 0.25;
}

/* Mixins
 ============================================= */
/* Media Queries
 --------------------------------------------- */
/* Container
 --------------------------------------------- */
/* Image Aspect Ratio
 ---------------------------------------------
 <figure> // Apply image ratio to figure
   <img src=""/>
 </figure>
*/
/* Absolute
 --------------------------------------------- */
/* Gradient Fade
 --------------------------------------------- */
/* Badge / Tag label
 --------------------------------------------- */
/* Icons
 --------------------------------------------- */
table.cart .product-remove a:after, .wpcf7 form .wpcf7-response-output:before {
  display: inline-block;
  font: normal normal normal 1em/1 "baseicon";
  speak: none;
  text-transform: none;
  /* Better Font Rendering */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Circle Object
 --------------------------------------------- */
/* Thumbnail Card
 ---------------------------------------------
<article class="thumbnail-card">
  <figure>
    <img src="">
  </figure>
  <div class="caption">
    <h4></h4>
    <p></p>
    <a href="#"></a>
  </div>
</article>
 */
/* Line Border
 --------------------------------------------- */
/* Child Margin
 --------------------------------------------- */
/* Clear Fix
--------------------------------------------- */
/* Functions
 ============================================= */
/* Placeholders
 ============================================= */
/* White Gradient
  --------------------------------------------- */
/* Transitions
 --------------------------------------------- */
#woocommerce-product-search-field, .interactive-cart-header .interactive-cart-close, .woocommerce-MyAccount-navigation-link a, .shop_table.woocommerce-checkout-review-order-table .variation, li.product-category, li.product, .menu-shop-menu-container a,
.widget_product_categories a, .hero-slider, input[type=checkbox] + *:after, .menu-primary > li.menu-item-has-children:before, .slick-dots li button:before {
  transition: all 0.3s ease-in-out;
}

/* Flexbox
 --------------------------------------------- */
.woocommerce-pagination .page-numbers, .woocommerce-info a,
.woocommerce-message a, .interactive-cart-summary > div, #cart-items, .widget_layered_nav_filters ul li a::before, table.cart .product-remove a, #sidebar-toggle-close, .floating-whatsapp-button, .lr-layout .inline-wrap, .logo-feature-gallery, .pagination, .wpcf7 form .wpcf7-response-output:before, .btn-icon-text i, .distributor-header-user-initials, #woocommerce-product-search-button, .menu-toggle {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  align-items: center;
}

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none;
}
[dir=rtl] .slick-slide {
  float: right;
}
.slick-slide img {
  display: block;
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: flex;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

/* Slider */
.slick-loading .slick-list {
  background: #fff url("./js/plugins/slick/ajax-loader.gif") center center no-repeat;
}

/* Icons */
@font-face {
  font-family: "slick";
  src: url("./js/plugins/slick/fonts/slick.eot");
  src: url("./js/plugins/slick/fonts/slick.eot?#iefix") format("embedded-opentype"), url("./js/plugins/slick/fonts/slick.woff") format("woff"), url("./js/plugins/slick/fonts/slick.ttf") format("truetype"), url("./js/plugins/slick/fonts/slick.svg#slick") format("svg");
  font-weight: normal;
  font-style: normal;
}
/* Arrows */
.slick-next,
.slick-prev {
  position: absolute;
  display: block;
  height: 30px;
  width: 30px;
  line-height: 0;
  font-size: 0;
  cursor: pointer;
  background: transparent;
  color: transparent;
  top: 50%;
  -webkit-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  transform: translate(0, -50%);
  padding: 0;
  border: none;
  outline: none;
  z-index: 2;
}
.slick-next:focus, .slick-next:hover,
.slick-prev:focus,
.slick-prev:hover {
  outline: none;
  background: transparent;
  color: transparent;
}
.slick-next:focus:before, .slick-next:hover:before,
.slick-prev:focus:before,
.slick-prev:hover:before {
  opacity: 1;
}
.slick-next.slick-disabled:before,
.slick-prev.slick-disabled:before {
  opacity: 0.25;
}
.slick-next:before,
.slick-prev:before {
  font-family: "slick";
  font-size: 30px;
  line-height: 1;
  color: #ddd;
  opacity: 0.75;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.slick-prev {
  left: 15px;
}
[dir=rtl] .slick-prev {
  left: auto;
  right: -35px;
}
.slick-prev:before {
  content: "←";
}
[dir=rtl] .slick-prev:before {
  content: "→";
}

.slick-next {
  right: 15px;
}
[dir=rtl] .slick-next {
  left: -25px;
  right: auto;
}
.slick-next:before {
  content: "→";
}
[dir=rtl] .slick-next:before {
  content: "←";
}

/* Dots */
.slick-dotted.slick-slider {
  margin-bottom: 30px;
}

.slick-dots {
  position: absolute;
  bottom: -25px;
  list-style: none;
  display: block;
  text-align: center;
  padding: 0;
  margin: 0;
  width: 100%;
}
.slick-dots li {
  position: relative;
  display: inline-block;
  height: 20px;
  width: 20px;
  margin: 0 5px;
  padding: 0;
  cursor: pointer;
}
.slick-dots li button {
  border: 0;
  background: transparent;
  display: block;
  height: 20px;
  width: 20px;
  outline: none;
  line-height: 0;
  font-size: 0;
  color: transparent;
  padding: 5px;
  cursor: pointer;
}
.slick-dots li button:focus, .slick-dots li button:hover {
  outline: none;
}
.slick-dots li button:focus:before, .slick-dots li button:hover:before {
  opacity: 1;
  font-size: 18px;
}
.slick-dots li button:before {
  position: absolute;
  top: 0;
  left: 0;
  content: "•";
  width: 20px;
  height: 20px;
  font-family: "slick";
  font-size: 12px;
  line-height: 20px;
  text-align: center;
  color: black;
  opacity: 0.25;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.slick-dots li.slick-active button:before {
  color: black;
  opacity: 0.75;
}

/**
 * Featherlight – ultra slim jQuery lightbox
 * Version 1.7.13 - http://noelboss.github.io/featherlight/
 *
 * Copyright 2018, Noël Raoul Bossart (http://www.noelboss.com)
 * MIT Licensed.
**/
html.with-featherlight {
  /* disable global scrolling when featherlights are visible */
  overflow: hidden;
}

.featherlight {
  display: none;
  /* dimensions: spanning the background from edge to edge */
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2147483647; /* z-index needs to be >= elements on the site. */
  /* position: centering content */
  text-align: center;
  /* insures that the ::before pseudo element doesn't force wrap with fixed width content; */
  white-space: nowrap;
  /* styling */
  cursor: pointer;
  background: #333;
  /* IE8 "hack" for nested featherlights */
  background: rgba(0, 0, 0, 0);
}

/* support for nested featherlights. Does not work in IE8 (use JS to fix) */
.featherlight:last-of-type {
  background: rgba(0, 0, 0, 0.8);
}

.featherlight:before {
  /* position: trick to center content vertically */
  content: "";
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}

.featherlight .featherlight-content {
  /* make content container for positioned elements (close button) */
  position: relative;
  /* position: centering vertical and horizontal */
  text-align: left;
  vertical-align: middle;
  display: inline-block;
  /* dimensions: cut off images */
  overflow: auto;
  padding: 25px 25px 0;
  border-bottom: 25px solid transparent;
  /* dimensions: handling large content */
  margin-left: 5%;
  margin-right: 5%;
  max-height: 95%;
  /* styling */
  cursor: auto;
  /* reset white-space wrapping */
  white-space: normal;
}

/* contains the content */
.featherlight .featherlight-inner {
  /* make sure its visible */
  display: block;
}

/* don't show these though */
.featherlight script.featherlight-inner,
.featherlight link.featherlight-inner,
.featherlight style.featherlight-inner {
  display: none;
}

.featherlight .featherlight-close-icon {
  /* position: centering vertical and horizontal */
  position: absolute;
  z-index: 9999;
  top: 0;
  right: 0;
  /* dimensions: 25px x 25px */
  line-height: 25px;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  /* styling */
  cursor: pointer;
  text-align: center;
  font-family: Arial, sans-serif;
  background: #fff; /* Set the background in case it overlaps the content */
  background: rgba(255, 255, 255, 0.3);
  color: #000;
  border: none;
  padding: 0;
}

/* See http://stackoverflow.com/questions/16077341/how-to-reset-all-default-styles-of-the-html5-button-element */
.featherlight .featherlight-close-icon::-moz-focus-inner {
  border: 0;
  padding: 0;
}

.featherlight .featherlight-image {
  /* styling */
  width: 100%;
}

.featherlight-iframe .featherlight-content {
  /* removed the border for image croping since iframe is edge to edge */
  border-bottom: 0;
  padding: 0;
  -webkit-overflow-scrolling: touch;
}

.featherlight iframe {
  /* styling */
  border: none;
}

.featherlight * { /* See https://github.com/noelboss/featherlight/issues/42 */
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

/* handling phones and small screens */
@media only screen and (max-width: 1024px) {
  .featherlight .featherlight-content {
    /* dimensions: maximize lightbox with for small screens */
    margin-left: 0;
    margin-right: 0;
    max-height: 98%;
    padding: 10px 10px 0;
    border-bottom: 10px solid transparent;
  }
}
/* hide non featherlight items when printing */
@media print {
  html.with-featherlight > * > :not(.featherlight) {
    display: none;
  }
}
/* --------------------------------

baseicon Web Font
Generated using nucleoapp.com

-------------------------------- */
@font-face {
  font-family: "baseicon";
  src: url("fonts/baseicon.eot");
  src: url("fonts/baseicon.eot") format("embedded-opentype"), url("fonts/baseicon.woff2") format("woff2"), url("fonts/baseicon.woff") format("woff"), url("fonts/baseicon.ttf") format("truetype"), url("fonts/baseicon.svg") format("svg");
  font-weight: normal;
  font-style: normal;
}
/*------------------------
	base class definition
-------------------------*/
.icon {
  display: inline-block;
  font: normal normal normal 1em/1 "baseicon";
  speak: none;
  text-transform: none;
  /* Better Font Rendering */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/*------------------------
  change icon size
-------------------------*/
/* relative units */
.icon-sm {
  font-size: 0.8em;
}

.icon-lg {
  font-size: 1.2em;
}

/* absolute units */
.icon-16 {
  font-size: 16px;
}

.icon-32 {
  font-size: 32px;
}

/*----------------------------------
  add a square/circle background
-----------------------------------*/
.icon-bg-square,
.icon-bg-circle {
  padding: 0.35em;
  background-color: #eee;
}

.icon-bg-circle {
  border-radius: 50%;
}

/*------------------------------------
  use icons as list item markers
-------------------------------------*/
.icon-ul {
  padding-left: 0;
  list-style-type: none;
}
.icon-ul > li {
  display: flex;
  align-items: flex-start;
  line-height: 1.4;
}
.icon-ul > li > .icon {
  margin-right: 0.4em;
  line-height: inherit;
}

/*------------------------
  spinning icons
-------------------------*/
.icon-is-spinning {
  -webkit-animation: icon-spin 2s infinite linear;
  -moz-animation: icon-spin 2s infinite linear;
  animation: icon-spin 2s infinite linear;
}

@-webkit-keyframes icon-spin {
  0% {
    -webkit-transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
  }
}
@-moz-keyframes icon-spin {
  0% {
    -moz-transform: rotate(0deg);
  }
  100% {
    -moz-transform: rotate(360deg);
  }
}
@keyframes icon-spin {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
/*------------------------
  rotated/flipped icons
-------------------------*/
.icon-rotate-90 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  -o-transform: rotate(90deg);
  transform: rotate(90deg);
}

.icon-rotate-180 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  transform: rotate(180deg);
}

.icon-rotate-270 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
  -webkit-transform: rotate(270deg);
  -moz-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  -o-transform: rotate(270deg);
  transform: rotate(270deg);
}

.icon-flip-y {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0);
  -webkit-transform: scale(-1, 1);
  -moz-transform: scale(-1, 1);
  -ms-transform: scale(-1, 1);
  -o-transform: scale(-1, 1);
  transform: scale(-1, 1);
}

.icon-flip-x {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
  -webkit-transform: scale(1, -1);
  -moz-transform: scale(1, -1);
  -ms-transform: scale(1, -1);
  -o-transform: scale(1, -1);
  transform: scale(1, -1);
}

/*------------------------
	icons
-------------------------*/
.icon-account::before {
  content: "\ea01";
}

.icon-bag-09::before {
  content: "\ea02";
}

.icon-checked-symbol::before {
  content: "\ea03";
}

.icon-facebook-1::before {
  content: "\ea04";
}

.icon-facebook-circle::before {
  content: "\ea05";
}

.icon-facebook::before {
  content: "\ea06";
}

.icon-fax::before {
  content: "\ea07";
}

.icon-ic_access_time_48px::before {
  content: "\ea08";
}

.icon-ic_arrow_back_36px::before {
  content: "\ea09";
}

.icon-ic_close_48px::before {
  content: "\ea0a";
}

.icon-ic_mail_outline_48px::before {
  content: "\ea0b";
}

.icon-instagram::before {
  content: "\ea0c";
}

.icon-lock::before {
  content: "\ea0d";
}

.icon-phone-2-2::before {
  content: "\ea0e";
}

.icon-phone-2::before {
  content: "\ea0f";
}

.icon-pin::before {
  content: "\ea10";
}

.icon-placeholder::before {
  content: "\ea11";
}

.icon-plus::before {
  content: "\ea12";
}

.icon-shopping-cart::before {
  content: "\ea13";
}

.icon-single-01::before {
  content: "\ea14";
}

.icon-star::before {
  content: "\ea15";
}

.icon-whatsapp-logo::before {
  content: "\ea16";
}

.icon-youtube::before {
  content: "\ea17";
}

.icon-zoom-2::before {
  content: "\ea18";
}

/*! 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.
 */
/* 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: 700;
}

/**
 * 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%;
  line-height: 1.3;
  display: inline-block;
}

/**
 * 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.
 */
[type=button],
[type=reset],
[type=submit],
button {
  -webkit-appearance: button;
  border: 0;
  cursor: pointer;
  background-color: transparent;
}

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

/**
 * Restore the focus styles unset by the previous rule.
 */
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring,
button:-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;
}

/* Box Sizing
 --------------------------------------------- */
html {
  box-sizing: border-box;
}

*,
*::after,
*::before {
  box-sizing: inherit;
}

/* Typographical Elements
 --------------------------------------------- */
html {
  font-size: 56%;
  /* 10px browser default */
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  scroll-behavior: smooth;
}
@media only screen and (min-width: 960px) {
  html {
    font-size: 62.5%;
  }
}

/* Chrome fix */
body > div {
  font-size: 14px;
  font-size: 1.4rem;
}

body {
  background-color: #fff;
  color: #555;
  font-family: "Outfit", sans-serif;
  font-size: 14px;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.625;
  margin: 0;
  overflow-x: hidden;
}

button,
input:focus,
input[type=button],
input[type=reset],
input[type=submit],
textarea:focus,
.button,
.gallery img {
  transition: all 0.2s ease-in-out;
}

ol,
ul {
  margin: 0;
  padding: 0;
}

li {
  list-style-type: none;
}

hr {
  border: 0;
  border-collapse: collapse;
  border-top: 1px solid #eee;
  clear: both;
  margin: 30px 0;
}

b,
strong {
  font-weight: 700;
}

blockquote,
cite,
em,
i {
  font-style: italic;
}

mark {
  background: #ddd;
  color: #333;
}

blockquote {
  margin: 30px;
}

blockquote::before {
  content: "“";
  display: block;
  font-size: 30px;
  font-size: 3rem;
  height: 0;
  left: -20px;
  position: relative;
  top: -10px;
}

/* Headings
 --------------------------------------------- */
h1,
h2,
h3,
form.woocommerce-checkout .col-1 h4,
form.woocommerce-checkout .checkout_coupon h4,
h4,
h5,
h6 {
  font-weight: 700;
  color: #fc6c0f;
  line-height: 1.2;
  margin: 0 0 2rem;
}

h1 {
  font-size: 5rem;
  font-family: "Zalando Sans Expanded", sans-serif;
}

h2 {
  font-size: 3.6rem;
  font-family: "Zalando Sans Expanded", sans-serif;
}

h3, form.woocommerce-checkout .col-1 h4, form.woocommerce-checkout .checkout_coupon h4 {
  font-size: 2.4rem;
  font-family: "Zalando Sans Expanded", sans-serif;
}

h4 {
  font-size: 1.8rem;
  font-weight: 400;
}

h5 {
  font-size: 1.6rem;
}

h6 {
  font-size: 1.3rem;
}

a {
  text-decoration: none;
  font-weight: 700;
  color: #d55503;
}
a:hover {
  text-decoration: underline;
  color: #a34102;
}

label {
  font-size: 1.4rem;
  color: hsl(0, 0%, 60%);
}

/* Text
 --------------------------------------------- */
p {
  font-size: 1.5rem;
  line-height: 2.4rem;
  margin: 0 0 15px;
}
p:last-child {
  margin-bottom: 0;
}
p.x-small {
  font-size: 1.2rem;
  line-height: 1.2;
}
p.small, .woocommerce-privacy-policy-text p, .entry-content p.entry-meta, .post-entry-list p {
  font-size: 1.4rem;
  line-height: 1.2;
}
p.large {
  font-size: 1.8rem;
  line-height: 1.5;
}

/* Dark theme
 --------------------------------------------- */
.text-light a, .post-single .has-post-thumbnail .entry-header a,
.text-light p,
.post-single .has-post-thumbnail .entry-header p {
  color: #fff;
}
.text-light h1, .post-single .has-post-thumbnail .entry-header h1,
.text-light h2,
.post-single .has-post-thumbnail .entry-header h2,
.text-light h3,
.text-light form.woocommerce-checkout .col-1 h4,
.text-light form.woocommerce-checkout .checkout_coupon h4,
form.woocommerce-checkout .col-1 .text-light h4,
form.woocommerce-checkout .checkout_coupon .text-light h4,
.post-single .has-post-thumbnail .entry-header h3,
.text-light h4,
.post-single .has-post-thumbnail .entry-header h4,
.text-light h5,
.post-single .has-post-thumbnail .entry-header h5,
.text-light h6,
.post-single .has-post-thumbnail .entry-header h6 {
  color: #fff;
}
.text-light hr, .post-single .has-post-thumbnail .entry-header hr {
  border-color: #fff;
}

.post-single .entry-content h2,
.post-single .entry-content h3,
.post-single .entry-content form.woocommerce-checkout .col-1 h4,
.post-single .entry-content form.woocommerce-checkout .checkout_coupon h4,
form.woocommerce-checkout .col-1 .post-single .entry-content h4,
form.woocommerce-checkout .checkout_coupon .post-single .entry-content h4,
.post-single .entry-content h4,
.post-single .entry-content h5,
.post-single .entry-content h6 {
  line-height: 1.5;
  margin-top: 4rem;
}
.post-single .entry-content li,
.post-single .entry-content p {
  margin-bottom: 1.2em;
  line-height: 2;
  text-align: justify;
}
@media only screen and (max-width: 670px) {
  .post-single .entry-content li,
  .post-single .entry-content p {
    font-size: 1.7rem;
  }
}
.post-single .entry-content ul li {
  list-style-type: disc;
}
.post-single .entry-content ol li {
  list-style-type: decimal;
}

/* Defaults
 ============================================= */
/* Objects
 --------------------------------------------- */
.wp-caption,
embed,
iframe,
img,
object,
video {
  max-width: 100%;
}

img {
  height: auto;
  vertical-align: top;
}

figure {
  margin: 0;
}

/* Gallery
 --------------------------------------------- */
.gallery {
  overflow: hidden;
}
.gallery img {
  height: auto;
}
.gallery img:focus, .gallery img:hover {
  outline: none;
}

/* Tables
 --------------------------------------------- */
table {
  border-collapse: collapse;
  border-spacing: 0;
  line-height: 2;
  margin-bottom: 40px;
  width: 100%;
}

tbody {
  border-bottom: 1px solid #eee;
}

td,
th {
  text-align: left;
}
td:first-child,
th:first-child {
  padding-left: 0;
}

td {
  border-top: 1px solid #eee;
  padding: 6px;
}

th {
  font-weight: 400;
  padding: 0 6px;
}

/* Screen Reader Text
 --------------------------------------------- */
.screen-reader-shortcut,
.screen-reader-text,
.screen-reader-text span {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  overflow: hidden;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}

.screen-reader-shortcut:focus,
.screen-reader-text:focus {
  background: #fff;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  color: #333;
  display: block;
  font-size: 1em;
  font-weight: 700;
  height: auto;
  padding: 15px 23px 14px;
  text-decoration: none;
  width: auto;
  z-index: 100000;
  /* Above WP toolbar. */
}

.more-link {
  position: relative;
}

/* Image release
 --------------------------------------------- */
.image-release, .contact-1_mapembed:after {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  max-width: none;
  display: block;
}

/* Vertical align column objects
 --------------------------------------------- */
.vertical-center .wp-block-column {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
}

/* Animations
 ============================================= */
.fade-scale-before, .fade-left-before, .fade-right-before, .hidden {
  transition: all 0.5s ease-in-out;
  opacity: 0;
}

/* fade in top */
.hidden {
  transform: translateY(30px);
}

.shown {
  opacity: 1;
  transform: translateY(0px);
}

/* fade in right */
.fade-right-before {
  transform: translateX(-30px);
}

.fade-right {
  opacity: 1;
  transform: translateX(0px);
}

/* fade in left */
.fade-left-before {
  transform: translateX(30px);
}

.fade-left {
  opacity: 1;
  transform: translateX(0px);
}

/* fade in scale */
.fade-scale-before {
  transform: scale(0.9);
}

.fade-scale {
  opacity: 1;
  transform: scale(1);
}

/* Grid
 ============================================= */
/* Column Mixin
 --------------------------------------------- */
.woocommerce-lost-password .woocommerce, .woocommerce-order-pay .woocommerce, .woocommerce-order-received .woocommerce-customer-details,
.woocommerce-order-received .woocommerce-order-details {
  padding: 0 5%;
}
@media only screen and (min-width: 960px) {
  .woocommerce-lost-password .woocommerce, .woocommerce-order-pay .woocommerce, .woocommerce-order-received .woocommerce-customer-details,
  .woocommerce-order-received .woocommerce-order-details {
    padding: 0;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
  }
}

.cols-2, .col2-set, .woocommerce-account.logged-in .woocommerce {
  display: flex;
  flex-flow: row wrap;
}
.cols-2 > *, .col2-set > *, .woocommerce-account.logged-in .woocommerce > * {
  width: 100%;
  margin-bottom: 30px;
}
@media only screen and (min-width: 670px) {
  .cols-2 > *, .col2-set > *, .woocommerce-account.logged-in .woocommerce > * {
    width: calc((100% - 30px * (2 - 1)) / 2);
    margin-right: 30px;
  }
  .cols-2 > *:nth-child(2n), .col2-set > *:nth-child(2n), .woocommerce-account.logged-in .woocommerce > *:nth-child(2n) {
    margin-right: 0;
  }
}

.cols-3 {
  display: flex;
  flex-flow: row wrap;
}
.cols-3 > * {
  width: 100%;
  margin-bottom: 30px;
}
@media only screen and (min-width: 670px) {
  .cols-3 > * {
    width: calc((100% - 30px * (3 - 1)) / 3);
    margin-right: 30px;
  }
  .cols-3 > *:nth-child(3n) {
    margin-right: 0;
  }
}

/* Column Layouts
 --------------------------------------------- */
@media only screen and (min-width: 670px) {
  .two-one > *:nth-child(1) {
    flex: 2 1 0;
  }
  .two-one > *:nth-child(2) {
    flex: 1 1 0;
  }
}

/* Wrapper
 --------------------------------------------- */
section.wrapper {
  width: 100%;
  padding: 50px 5%;
}
@media only screen and (min-width: 960px) {
  section.wrapper {
    padding: 80px 10%;
  }
}
section.wrapper-small {
  width: 100%;
  padding: 15px 5%;
}
@media only screen and (min-width: 960px) {
  section.wrapper-small {
    padding: 30px 10%;
  }
}
section.wrapper-large {
  width: 100%;
  padding: 80px 5%;
}
@media only screen and (min-width: 960px) {
  section.wrapper-large {
    padding: 120px 10%;
  }
}
section.wrapper-full {
  width: 100%;
  padding: 50px 0;
}
@media only screen and (min-width: 960px) {
  section.wrapper-full {
    padding: 80px 0;
  }
}

/* Genesis Structure and Layout
  ============================================== */
/* Site Container
 --------------------------------------------- */
.site-container {
  word-wrap: break-word;
  overflow: hidden;
  display: flex;
  flex-flow: column nowrap;
  justify-content: space-between;
  min-height: 100vh;
}

main.content {
  flex: 1 1 100%;
}

.site-header + * {
  margin-top: 64px;
}

/* Common Classes
------------------------------------------------------------------------------------------ */
/* Genesis
 --------------------------------------------- */
.after-entry,
.archive-description,
.author-box {
  margin-bottom: 40px;
}

.after-entry {
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.05);
  padding: 20px 30px;
}

.after-entry .widget:last-of-type {
  margin-bottom: 0;
}

.breadcrumb {
  border-bottom: 1px solid #eee;
  font-size: 16px;
  font-size: 1.6rem;
  margin-bottom: 40px;
  padding-bottom: 10px;
}

.archive-description p:last-child,
.author-box p:last-child {
  margin-bottom: 0;
}

/* Search Form
 --------------------------------------------- */
.search-form {
  overflow: hidden;
}

.entry-content .search-form {
  margin-bottom: 40px;
  width: 50%;
}

.post-password-form input[type=submit],
.search-form input[type=submit] {
  margin-top: 10px;
}

.widget_search input[type=submit] {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  width: 1px;
}

/* Titles
 --------------------------------------------- */
.entry-title a,
.sidebar .widget-title a {
  color: #333;
  text-decoration: none;
}

.widget-title {
  font-size: 16px;
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 20px;
}

/* WordPress
--------------------------------------------- */
a.aligncenter img {
  display: block;
  margin: 0 auto;
}

a.alignnone {
  display: inline-block;
}

a.alignleft,
a.alignnone,
a.alignright {
  max-width: 100%;
}

img.alignnone,
.alignnone {
  margin-bottom: 15px;
}

a.alignleft,
img.alignleft,
.wp-caption.alignleft {
  margin: 0 20px 20px 0;
}

a.alignright,
img.alignright,
.wp-caption.alignright {
  margin: 0 0 20px 20px;
}

.gallery-caption,
.wp-caption-text {
  font-size: 14px;
  font-weight: 600;
  margin-top: 0.5em;
  margin-bottom: 1em;
  padding-left: 10px;
  padding-right: 10px;
  text-align: center;
}

.entry-content p.wp-caption-text {
  margin-bottom: 0;
}

.entry-content .wp-audio-shortcode,
.entry-content .wp-playlist,
.entry-content .wp-video {
  margin: 0 0 30px;
}

/* Header Buttons
 --------------------------------------------- */
#woocommerce-product-search-button, .menu-toggle {
  width: 40px;
  height: 40px;
  background-color: hsla(0, 0%, 0%, 0);
  border-radius: 50%;
  font-size: 17px;
  color: hsl(0, 0%, 40%);
  font-weight: 400;
  line-height: 1;
}
#woocommerce-product-search-button:hover, .menu-toggle:hover,
#woocommerce-product-search-button a:hover,
.menu-toggle a:hover {
  text-decoration: none;
}
#woocommerce-product-search-button:hover, .menu-toggle:hover {
  color: #fc6c0f;
}

/* Skip Links
 --------------------------------------------- */
.genesis-skip-link {
  margin: 0;
}
.genesis-skip-link .skip-link-hidden {
  display: none;
  visibility: hidden;
}
.genesis-skip-link li {
  height: 0;
  list-style: none;
  width: 0;
}

/* Site Header
 --------------------------------------------- */
.site-header {
  position: fixed;
  z-index: 999;
  background-color: #fff;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);
  padding: 0;
  top: 0;
  width: 100%;
  border-top: 3px solid #fc6c0f;
}
.site-header > .wrap {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  width: min(90%, 1400px);
  margin-inline: auto;
  /* Structure */
}
.site-header > .wrap > *.pre-header {
  flex: 0 0 100%;
}
@media only screen and (min-width: 960px) {
  .site-header > .wrap > *.title-area {
    flex: 0 0 auto;
  }
}
.site-header > .wrap > *.header-widget-area {
  flex: 1 1 0;
}
@media only screen and (min-width: 960px) {
  .site-header > .wrap > *.header-widget-area {
    flex: 0 0 auto;
  }
}
.site-header > .wrap > *.menu-toggle {
  flex: 1 1 0;
}

/* Title Area
 --------------------------------------------- */
.title-area {
  width: 120px;
  padding: 6px 0;
  order: 2;
  margin: 0 auto;
}
@media only screen and (min-width: 960px) {
  .title-area {
    order: 0;
    margin: 0;
  }
}
.title-area a {
  display: block;
  margin: 0 auto;
}

.site-description,
.wp-custom-logo .site-title {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  overflow: hidden;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}

/* Responsive Menu
 --------------------------------------------- */
.menu .menu-item:focus {
  position: static;
}

.menu .menu-item > a:focus + ul.sub-menu,
.menu .menu-item.sfHover > ul.sub-menu {
  left: auto;
  opacity: 1;
}

.genesis-responsive-menu {
  position: relative;
  display: none;
}
@media only screen and (min-width: 960px) {
  .genesis-responsive-menu {
    display: inherit;
  }
}

/* Menu Toggle & Sub Menu Toggle */
.menu-toggle,
.sub-menu-toggle {
  background-color: transparent;
  border-width: 0;
  color: #fc6c0f;
  display: block;
  margin: 0 auto;
  overflow: hidden;
  text-align: center;
  visibility: visible;
}
@media only screen and (min-width: 960px) {
  .menu-toggle,
  .sub-menu-toggle {
    display: none;
    visibility: hidden;
  }
}
.menu-toggle:focus, .menu-toggle:hover,
.sub-menu-toggle:focus,
.sub-menu-toggle:hover {
  background-color: transparent;
  border-width: 0;
}

/* Menu Toggle */
.menu-toggle {
  position: relative;
  z-index: 1000;
  overflow: hidden;
  padding: 0;
  order: 4;
  margin: 0;
  font-size: 0;
  text-align: right;
}
.menu-toggle::before {
  position: relative;
  text-rendering: auto;
  margin-inline: auto;
}
.menu-toggle.activated::before {
  content: "\f335";
}

/* Sub Menu Toggle */
.sub-menu-toggle {
  position: absolute;
  right: 5px;
  top: 15px;
  z-index: 100;
  text-align: center;
}
.sub-menu-toggle:before {
  display: inline-block;
  text-rendering: auto;
  transform: rotate(0);
  transition: transform 0.25s ease-in-out;
  color: #fc6c0f;
}
.sub-menu-toggle.activated:before {
  transform: rotate(180deg);
  color: #fd8b41;
}

/* Header Menu
 --------------------------------------------- */
.menu-primary > li:focus, .menu-primary > li:hover {
  background-color: #fff;
}
@media only screen and (min-width: 960px) {
  .menu-primary > li:focus, .menu-primary > li:hover {
    background-color: hsl(0, 0%, 96%);
    border-bottom: 3px solid #fc6c0f;
  }
}

/* Header Menu Structure */
.nav-primary {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 64px;
  left: 0;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 99;
  overflow-y: scroll;
  display: none;
}
@media only screen and (min-width: 960px) {
  .nav-primary {
    position: relative;
    top: 0;
    height: auto;
    width: auto;
    background-color: transparent;
    display: flex;
    flex-flow: row wrap;
    align-self: stretch;
    overflow-y: visible;
    margin-left: auto;
  }
}
@media only screen and (min-width: 960px) {
  .nav-primary .wrap {
    height: 100%;
  }
}

/* Main Header Menu */
.menu-primary {
  display: flex;
  flex-flow: row wrap;
  position: relative;
  line-height: 1;
  height: 100%;
  background-color: rgb(250, 250, 250);
  box-shadow: inset 0 0 20px 0 rgba(0, 0, 0, 0.1);
  /* Generic li style*/
  /* Generic nav link style */
  /* First level li */
  /* Level 2 Menu */
}
@media only screen and (max-width: 670px) {
  .menu-primary {
    justify-content: center;
  }
}
@media only screen and (min-width: 960px) {
  .menu-primary {
    background-color: transparent;
    box-shadow: none;
  }
}
.menu-primary .sub-menu {
  z-index: 99;
  box-shadow: inset 0 0 8px 0 rgba(0, 0, 0, 0.15);
  background-color: #f0f0f0;
  display: none;
  /* Second level li */
}
@media only screen and (min-width: 960px) {
  .menu-primary .sub-menu {
    position: absolute;
    min-width: 180px;
    width: auto;
    opacity: 0;
    left: 9999px;
    background-color: #fff;
    box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.1);
    border-radius: 0 0 8px 8px;
  }
}
/* Styles for Main Navigation
--------------------------------------------- */
@media only screen and (min-width: 960px) {
  .menu-primary .menu-item {
    border: 0;
  }
}
.menu-primary > li {
  position: relative;
  width: 100%;
  /* If have children */
  /* If Highlighted */
}
@media only screen and (min-width: 960px) {
  .menu-primary > li {
    display: block;
    height: 100%;
    width: auto;
  }
}
.menu-primary > li.menu-item-has-children:before {
  position: absolute;
  content: "";
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 7px solid #fc6c0f;
  left: calc(50% - 10px);
  opacity: 0;
  bottom: 0;
}
.menu-primary > li.menu-item-has-children:hover:before {
  opacity: 1;
}
.menu-primary > li.menu-item--highlight > a {
  background-color: #fc6c0f;
  color: #fff;
  margin: 0 10px;
}
@media only screen and (min-width: 960px) {
  .menu-primary .sub-menu .menu-item:hover {
    background-color: #fc6c0f;
  }
  .menu-primary .sub-menu .menu-item:hover > a {
    color: #fff;
  }
}

.menu-primary a {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  font-weight: 700;
  color: #7d2a11;
  text-transform: uppercase;
  font-size: 1.2rem;
}
@media only screen and (min-width: 960px) {
  .menu-primary a {
    height: 100%;
    text-align: left;
    align-items: center;
    justify-content: flex-start;
  }
}
.menu-primary a:hover {
  text-decoration: none;
}
.menu-primary a i {
  font-weight: 400;
}
.menu-primary > li > a {
  padding: 20px 24px;
}
.menu-primary .sub-menu .menu-item > a {
  padding: 14px 15px;
}
@media only screen and (min-width: 960px) {
  .menu-primary .sub-menu .menu-item > a {
    font-size: 14px;
  }
  .menu-primary .sub-menu .menu-item > a:hover {
    color: #fff;
    background-color: #fc6c0f;
  }
}

/* Header Widget Area
 --------------------------------------------- */
.header-widget-area {
  display: flex;
  flex-flow: row nowrap;
  position: relative;
  z-index: 101;
  order: 0;
}
@media only screen and (min-width: 960px) {
  .header-widget-area {
    order: 3;
    margin: 0 5% 0 auto;
  }
}
.header-widget-area .menu {
  display: flex;
  flex-flow: row wrap;
}
.header-widget-area .menu li {
  margin-bottom: 0;
}
.header-widget-area .widget {
  margin-bottom: 0;
}
/* Pre Header
 --------------------------------------------- */
.pre-header {
  position: relative;
  font-size: 10px;
  display: flex;
  justify-content: space-between;
  background-color: #f7f7f7;
  padding: 3px 3%;
}
.pre-header > * {
  margin-bottom: 0;
}
.pre-header > * i {
  margin: 0 3px;
  font-weight: 700;
}
.pre-header > *:nth-child(odd) {
  flex: 1 1 0;
  display: flex;
  line-height: 2;
  align-items: center;
}
.pre-header > *:nth-child(even) {
  flex: 11 1 0;
  text-align: center;
}
@media only screen and (min-width: 670px) {
  .pre-header > *:nth-child(even) {
    flex: 2 1 0;
  }
}
.pre-header > *:last-child {
  text-align: right;
  justify-content: flex-end;
}
.pre-header p {
  color: #9e1c25;
}
@media only screen and (max-width: 670px) {
  .pre-header a span {
    display: none;
  }
}

.menu-item--highlight a {
  color: #fff;
  font-weight: 700;
}

/* Sidebar
 --------------------------------------------- */
.sidebar {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5;
}

.sidebar .widget {
  margin-bottom: 50px;
}

.sidebar p {
  margin-bottom: 20px;
}

/* Footer
  ============================================== */
/* Footer Widgets
 --------------------------------------------- */
.footer-widgets {
  position: relative;
  background: #fc6c0f;
  width: 100%;
  padding: 30px 0;
  text-align: center;
  margin-top: 10vw;
}
@media only screen and (min-width: 960px) {
  .footer-widgets {
    text-align: left;
  }
}
.footer-widgets:before {
  content: "";
  position: absolute;
  width: 100%;
  display: block;
  background: url("../../../static/layered-triangle.svg") no-repeat center/cover;
  transform: rotate(180deg) translateY(100%);
  aspect-ratio: 10;
  top: 0;
}
.footer-widgets:after {
  opacity: 1;
}
.footer-widgets .wrap {
  display: grid;
  width: min(90%, 1400px);
  margin-inline: auto;
}
@media only screen and (min-width: 960px) {
  .footer-widgets .wrap {
    gap: 5rem;
    grid-template-columns: 1fr 1fr 1fr 3fr;
  }
}
.footer-widgets .widget-title {
  font-family: "Outfit", sans-serif;
  font-weight: 700;
  font-size: 1.6rem;
  border-bottom: 1px solid #fc6c0f;
  padding-bottom: 15px;
  margin-bottom: 15px;
}
.footer-widgets .widget {
  margin-bottom: 20px;
}

.footer-widget-area {
  margin-bottom: 20px;
}
@media only screen and (min-width: 960px) {
  .footer-widget-area {
    margin-bottom: 0;
  }
}

.footer-widgets .menu {
  display: flex;
  flex-flow: column nowrap;
  gap: 0.5rem;
}
.footer-widgets .menu li {
  width: 100%;
}
@media only screen and (max-width: 670px) {
  .footer-widgets .menu li {
    margin-bottom: 0;
  }
}
@media only screen and (min-width: 670px) {
  .footer-widgets .menu li {
    width: auto;
  }
}
.footer-widgets .menu li a {
  display: block;
  padding: 3px 0;
  font-size: 1.3rem;
  color: #ffecd4;
  line-height: 1.3;
}
@media only screen and (min-width: 960px) {
  .footer-widgets .menu li a {
    padding: 0;
  }
}
.footer-widgets .menu li a i {
  font-size: 16px;
}

.footer-widget-area ul[id*=social] {
  flex-flow: row wrap;
  gap: 1rem;
}
@media only screen and (max-width: 670px) {
  .footer-widget-area ul[id*=social] {
    justify-content: center;
  }
}
.footer-widget-area ul[id*=social] li {
  width: auto;
}
.footer-widget-area ul[id*=social] li a {
  width: 36px;
  aspect-ratio: 1;
  border-radius: 50%;
  line-height: 1;
  display: grid;
  place-items: center;
  color: #fff;
  background-color: #fc6c0f;
}
.footer-widget-area ul[id*=social] li a:hover {
  text-decoration: none;
}

.footer-widgets-4 {
  color: #ffecd4;
}
.footer-widgets-4 h2 {
  color: #ffecd4;
}

.textwidget > p {
  display: block;
}

.footer-widget-area:last-child,
.footer-widgets .widget:last-child {
  margin-bottom: 0;
}

@media only screen and (max-width: 670px) {
  #menu-social-media-menu .menu-item {
    width: auto;
  }
  .site-header #menu-social-media-menu {
    display: none;
  }
}

/* Site Footer
 --------------------------------------------- */
.site-footer {
  background-color: #fc6c0f;
  color: #ffecd4;
  line-height: 1.5;
}
.site-footer > .wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: flex-end;
  gap: 15rem;
  width: min(90%, 1400px);
  margin-inline: auto;
  padding: 15rem 0 2rem;
}
.site-footer > .wrap img {
  filter: saturate(0) brightness(0) invert(1);
  width: 150px;
}
.site-footer > .wrap > p {
  font-size: 1.3rem;
  font-weight: 500;
  margin: 0;
}

/* Distributor Portal App Shell
 ============================================= */
.distributor-shell {
  display: flex;
  align-items: stretch;
  min-height: 100vh;
}

/* Sidebar
 --------------------------------------------- */
.distributor-sidebar {
  flex: 0 0 280px;
  width: 280px;
  display: flex;
  flex-flow: column nowrap;
  padding: 30px 20px;
  background-color: #fc6c0f;
  color: #fff;
}
@media only screen and (max-width: 670px) {
  .distributor-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    width: 260px;
    height: 100vh;
    overflow-y: auto;
    transform: translateX(-100%);
    transition: transform 0.3s ease-in-out;
  }
}

@media only screen and (max-width: 670px) {
  .distributor-shell.distributor-sidebar-open .distributor-sidebar {
    transform: translateX(0);
    box-shadow: 0 0 30px rgba(0, 0, 0, 0.35);
  }
  .distributor-shell.distributor-sidebar-open::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 999;
    background-color: rgba(0, 0, 0, 0.4);
  }
}

.distributor-sidebar-logo .custom-logo-link,
.distributor-sidebar-logo img {
  filter: brightness(0) invert(1);
  max-width: 140px;
}

.distributor-sidebar-welcome {
  margin: 20px 0 0;
  font-size: 1.4rem;
  line-height: 1.4;
}
.distributor-sidebar-welcome strong {
  font-size: 1.6rem;
}

.distributor-nav {
  flex: 1;
  margin-top: 40px;
}
.distributor-nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.distributor-nav li {
  margin-bottom: 4px;
}
.distributor-nav a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px;
  border-radius: 6px;
  color: #fff;
  font-size: 1.4rem;
  text-decoration: none;
  transition: background-color 0.2s ease-in-out;
  line-height: 1.2;
}
.distributor-nav a:hover {
  background-color: rgba(255, 255, 255, 0.12);
  text-decoration: none;
}
.distributor-nav a i {
  width: 18px;
  text-align: center;
}
.distributor-nav li.is-active a {
  background-color: #fff;
  color: #c43d0a;
  font-weight: 700;
}

/* Main column
 --------------------------------------------- */
.distributor-main {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-flow: column nowrap;
}

.distributor-content {
  flex: 1;
}

/* Top bar
 --------------------------------------------- */
.distributor-header {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  justify-content: space-between;
  gap: 15px 20px;
  padding: 20px 5%;
  border-bottom: 1px solid hsl(0, 0%, 90%);
}
@media only screen and (min-width: 960px) {
  .distributor-header {
    padding: 24px 40px;
  }
}

.distributor-nav-toggle {
  order: -1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 0;
  background: transparent;
  font-size: 1.8rem;
  color: #441306;
  cursor: pointer;
}
@media only screen and (min-width: 670px) {
  .distributor-nav-toggle {
    display: none;
  }
}

.distributor-header-title {
  flex: 1 1 auto;
}
.distributor-header-title h1 {
  margin: 0;
  font-size: 2rem;
}
.distributor-header-title p {
  margin: 0;
  color: hsl(0, 0%, 45%);
  font-size: 1.4rem;
}

.distributor-header-user {
  display: flex;
  align-items: center;
  gap: 12px;
}

.distributor-header-user-initials {
  width: 40px;
  height: 40px;
  background-color: #fc6c0f;
  border-radius: 50%;
  font-size: 1.4rem;
  flex-shrink: 0;
  color: #fff;
  font-weight: 700;
}
.distributor-header-user-initials:hover,
.distributor-header-user-initials a:hover {
  text-decoration: none;
}

.distributor-header-user-info {
  display: flex;
  flex-flow: column nowrap;
  font-size: 1.3rem;
  line-height: 1.3;
}
.distributor-header-user-info span {
  color: hsl(0, 0%, 45%);
}

.distributor-header-logout {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin-left: 4px;
  border-radius: 50%;
  color: #c43d0a;
  font-size: 1.5rem;
  transition: background-color 0.2s ease-in-out;
}
.distributor-header-logout:hover {
  color: #7d2a11;
  background-color: hsl(0, 0%, 95%);
  text-decoration: none;
}

/* Banner
 --------------------------------------------- */
.distributor-banner {
  position: relative;
  overflow: hidden;
  min-height: 25vw;
  display: flex;
  align-items: flex-end;
  margin: 5% 5% 0;
  border-radius: 12px;
}
@media only screen and (min-width: 960px) {
  .distributor-banner {
    margin: 40px 40px 0;
  }
}

.distributor-banner-image {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  object-fit: cover;
}

.distributor-banner-content {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 25px;
  color: #fff;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0) 100%);
}
@media only screen and (min-width: 960px) {
  .distributor-banner-content {
    padding: 40px;
  }
}
.distributor-banner-content h2 {
  margin: 0 0 10px;
  color: #fff;
}
.distributor-banner-content p {
  margin: 0;
  max-width: 640px;
  font-size: 1.4rem;
}

/* Product library
 --------------------------------------------- */
.distributor-product-category {
  margin-top: 40px;
  padding: 25px;
  background-color: hsl(0, 0%, 97%);
  border-radius: 12px;
}
@media only screen and (min-width: 960px) {
  .distributor-product-category {
    padding: 30px 40px;
  }
}
.distributor-product-category h3, .distributor-product-category form.woocommerce-checkout .col-1 h4, .distributor-product-category form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .distributor-product-category h4, form.woocommerce-checkout .checkout_coupon .distributor-product-category h4 {
  margin: 0 0 8px;
}

.distributor-product-category-description {
  margin-bottom: 20px;
  color: hsl(0, 0%, 40%);
  font-size: 1.4rem;
}

.distributor-product-grid {
  display: grid;
  gap: 1.5rem 1rem;
  grid-template-columns: repeat(2, 1fr);
}
@media only screen and (min-width: 670px) {
  .distributor-product-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
  }
}

.distributor-product-card {
  display: flex;
  flex-flow: column nowrap;
  overflow: hidden;
  border-radius: 8px;
  background-color: #fff;
  text-decoration: none;
  transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}
.distributor-product-card:hover {
  text-decoration: none;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.12);
  transform: translateY(-3px);
}
.distributor-product-card figure {
  margin: 0;
  padding: 15px;
}
.distributor-product-card figure img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: contain;
}

.distributor-product-card-title {
  padding: 10px 15px;
  background-color: #fc6c0f;
  color: #fff;
  font-weight: 700;
  font-size: 1.3rem;
  text-align: center;
}

/* Single product
 --------------------------------------------- */
.distributor-back-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
  color: #c43d0a;
  font-weight: 700;
  font-size: 1.4rem;
  text-decoration: none;
}
.distributor-back-link:hover {
  text-decoration: underline;
}

.distributor-product-layout {
  display: flex;
  flex-flow: column nowrap;
  gap: 40px;
}
@media only screen and (min-width: 960px) {
  .distributor-product-layout {
    flex-flow: row nowrap;
    align-items: flex-start;
  }
}

.distributor-product-main {
  flex: 1 1 0;
  min-width: 0;
}

.distributor-product-eyebrow {
  margin: 0 0 4px;
  color: #fc6c0f;
  font-weight: 700;
  font-size: 1.4rem;
}

.distributor-product-main h2 {
  text-transform: uppercase;
  font-size: 1.8rem;
}

.distributor-product-description {
  color: hsl(0, 0%, 30%);
}
.distributor-product-description > *:last-child {
  margin-bottom: 0;
}

.distributor-flyer-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 20px;
}

.distributor-divider {
  margin: 30px 0;
  border: 0;
  border-top: 1px solid #fc6c0f;
}

.distributor-characteristics-table {
  width: 100%;
  border-collapse: collapse;
}
.distributor-characteristics-table th,
.distributor-characteristics-table td {
  padding: 12px;
  border: 1px solid hsl(0, 0%, 88%);
  text-align: left;
  font-size: 1.4rem;
  line-height: 1.2;
}
.distributor-characteristics-table th {
  width: 40%;
  font-weight: 400;
  background-color: hsl(0, 0%, 98%);
}

/* Sidebar cards
 --------------------------------------------- */
.distributor-product-sidebar {
  display: flex;
  flex-flow: column nowrap;
  gap: 20px;
}
@media only screen and (min-width: 960px) {
  .distributor-product-sidebar {
    flex: 0 0 320px;
  }
}

.distributor-doc-card,
.distributor-gallery-card {
  border: 1px solid hsl(0, 0%, 88%);
  border-radius: 8px;
  padding: 20px;
}

.distributor-doc-card-header {
  display: flex;
  justify-content: space-between;
  padding-bottom: 12px;
  margin-bottom: 12px;
  border-bottom: 1px solid hsl(0, 0%, 88%);
  font-weight: 700;
  font-size: 1.3rem;
  text-transform: uppercase;
}

.distributor-doc-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 0;
}
.distributor-doc-row:not(:last-child) {
  border-bottom: 1px solid hsl(0, 0%, 92%);
}

.distributor-doc-name {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.3rem;
  font-weight: 700;
}
.distributor-doc-name i {
  color: #9e1c25;
  font-size: 1.8rem;
}

.distributor-doc-actions {
  display: flex;
  gap: 12px;
  flex-shrink: 0;
}
.distributor-doc-actions a {
  color: #c43d0a;
}
.distributor-doc-actions a:hover {
  color: #7d2a11;
}

.distributor-gallery-card-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-bottom: 12px;
  margin-bottom: 12px;
  border-bottom: 1px solid hsl(0, 0%, 88%);
  font-weight: 700;
  font-size: 1.3rem;
  text-transform: uppercase;
}

.distributor-gallery-carousel {
  display: flex;
  align-items: center;
  gap: 10px;
}

.distributor-gallery-track {
  position: relative;
  flex: 1 1 0;
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: 6px;
}

.distributor-gallery-slide {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  margin: 0;
  display: none;
}
.distributor-gallery-slide.is-active {
  display: block;
}
.distributor-gallery-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.distributor-gallery-expand {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
}

.distributor-gallery-prev,
.distributor-gallery-next {
  flex-shrink: 0;
  border: 0;
  background: transparent;
  color: #fc6c0f;
  font-size: 1.6rem;
  cursor: pointer;
}
.distributor-gallery-prev:hover,
.distributor-gallery-next:hover {
  color: #c43d0a;
}

.distributor-gallery-caption {
  margin: 12px 0 0;
  color: hsl(0, 0%, 40%);
  font-size: 1.3rem;
  font-style: italic;
}

/* Lightbox
 --------------------------------------------- */
.distributor-lightbox {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 20px;
  background-color: rgba(0, 0, 0, 0.85);
}
.distributor-lightbox[hidden] {
  display: none;
}

.distributor-lightbox-figure {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  gap: 15px;
  max-width: 90vw;
  max-height: 90vh;
  margin: 0;
}
.distributor-lightbox-figure img {
  max-width: 100%;
  max-height: 75vh;
  object-fit: contain;
  border-radius: 4px;
}
.distributor-lightbox-figure figcaption {
  color: #fff;
  font-size: 1.4rem;
  font-style: italic;
  text-align: center;
}

.distributor-lightbox-close {
  position: absolute;
  top: 20px;
  right: 20px;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 2.4rem;
  cursor: pointer;
}
.distributor-lightbox-close:hover {
  color: hsl(0, 0%, 75%);
}

.distributor-lightbox-prev,
.distributor-lightbox-next {
  flex-shrink: 0;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 2.4rem;
  cursor: pointer;
}
.distributor-lightbox-prev:hover,
.distributor-lightbox-next:hover {
  color: hsl(0, 0%, 75%);
}

/* Graphics
 ============================================= */
/* Secondary Graphic
 --------------------------------------------- */
/* Background Pattern
--------------------------------------------- */
.shop-banner, .entry-header,
.regular-banner {
  background: url("../../../static/background-pattern.jpg") repeat center;
}
@media only screen and (min-width: 960px) {
  .shop-banner, .entry-header,
  .regular-banner {
    background-attachment: fixed;
  }
}

/* Graphic Divider 1
--------------------------------------------- */
/* Graphic Divider 2 - brush
--------------------------------------------- */
/* Divider after title
--------------------------------------------- */
/* Buttons
 =============================================
 btn-1
 btn-2
 btn-icon-text
 */
/* Structure of a button */
.woocommerce-info a,
.woocommerce-message a, button[type=submit],
.button, .wapf-radios .wapf-label-text, .wc_payment_method > label, .added_to_cart, form input[type=submit], .btn, .menu-item--highlight a {
  position: relative;
  display: inline-block;
  line-height: initial;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
  top: 0;
  border: 0;
  transition: all 0.15s ease-in-out;
  cursor: pointer;
  padding: 0.9em 1.2em;
  font-size: 1.3rem;
}
.woocommerce-info a:hover,
.woocommerce-message a:hover, button[type=submit]:hover,
.button:hover, .wapf-radios .wapf-label-text:hover, .wc_payment_method > label:hover, .added_to_cart:hover, form input[type=submit]:hover, .btn:hover, .menu-item--highlight a:hover {
  text-decoration: none;
}
.woocommerce-pagination a,
.woocommerce-pagination span, header.woocommerce-Address-title a, .btn-small {
  position: relative;
  display: inline-block;
  line-height: initial;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
  top: 0;
  border: 0;
  transition: all 0.15s ease-in-out;
  cursor: pointer;
  padding: 0.6em 0.9em;
  font-size: 1.2rem;
}
.woocommerce-pagination a:hover,
.woocommerce-pagination span:hover, header.woocommerce-Address-title a:hover, .btn-small:hover {
  text-decoration: none;
}
#shipping_method label, #sidebar-toggle, .btn-large {
  position: relative;
  display: inline-block;
  line-height: initial;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
  top: 0;
  border: 0;
  transition: all 0.15s ease-in-out;
  cursor: pointer;
  padding: 1.2em;
  font-size: 1.4rem;
}
#shipping_method label:hover, #sidebar-toggle:hover, .btn-large:hover {
  text-decoration: none;
}

.btn.align-c {
  margin: 0 auto;
  display: table;
}
/* Solid Button - btn-1
   --------------------------------------------- */
.woocommerce-pagination a, .woocommerce-info a,
.woocommerce-message a, .wc-backward, .checkout-button,
a.add_to_cart_button,
button.add_to_cart_button,
button[type=submit], .wapf-radios .wapf-checkable.wapf-checked .wapf-label-text, .woocommerce-form-login__submit,
.woocommerce-form-register__submit, #shipping_method input[type=hidden] + label, #shipping_method input[type=radio]:checked + label, #sidebar-toggle, form input[type=submit], .btn-1, .menu-item--highlight a {
  background-color: #fc6c0f;
  color: #fff;
}
.woocommerce-pagination a:hover, .woocommerce-info a:hover,
.woocommerce-message a:hover, .wc-backward:hover, .checkout-button:hover,
a.add_to_cart_button:hover,
button.add_to_cart_button:hover,
button[type=submit]:hover, .wapf-radios .wapf-checkable.wapf-checked .wapf-label-text:hover, .woocommerce-form-login__submit:hover,
.woocommerce-form-register__submit:hover, #shipping_method input[type=hidden] + label:hover, #shipping_method input[type=radio]:checked + label:hover, #sidebar-toggle:hover, form input[type=submit]:hover, .btn-1:hover, .menu-item--highlight a:hover {
  color: #fff;
  background-color: #bc4b02;
}
.woocommerce-pagination a:active, .woocommerce-info a:active,
.woocommerce-message a:active, .wc-backward:active, .checkout-button:active,
a.add_to_cart_button:active,
button.add_to_cart_button:active,
button[type=submit]:active, .wapf-radios .wapf-checkable.wapf-checked .wapf-label-text:active, .woocommerce-form-login__submit:active,
.woocommerce-form-register__submit:active, #shipping_method input[type=hidden] + label:active, #shipping_method input[type=radio]:checked + label:active, #sidebar-toggle:active, form input[type=submit]:active, .btn-1:active, .menu-item--highlight a:active {
  transform: translateY(3px);
}
header.woocommerce-Address-title a, .btn-1-secondary {
  background-color: hsl(0, 0%, 60%);
  color: hsl(0, 0%, 100%);
}
header.woocommerce-Address-title a:hover, .btn-1-secondary:hover {
  color: #fff;
  background-color: #737373;
}
header.woocommerce-Address-title a:active, .btn-1-secondary:active {
  transform: translateY(3px);
}
.btn-1-dark {
  background-color: #9c3110;
  color: #fff;
}
.btn-1-dark:hover {
  color: #fff;
  background-color: #571b09;
}
.btn-1-dark:active {
  transform: translateY(3px);
}
.woocommerce-pagination span, .shop_table .button, .wapf-radios .wapf-label-text, .wc_payment_method > label, #shipping_method label, .added_to_cart, .btn-1-light {
  background-color: hsl(0, 0%, 90%);
  color: hsl(0, 0%, 50%);
}
.woocommerce-pagination span:hover, .shop_table .button:hover, .wapf-radios .wapf-label-text:hover, .wc_payment_method > label:hover, #shipping_method label:hover, .added_to_cart:hover, .btn-1-light:hover {
  color: #fff;
  background-color: #bfbfbf;
}
.woocommerce-pagination span:active, .shop_table .button:active, .wapf-radios .wapf-label-text:active, .wc_payment_method > label:active, #shipping_method label:active, .added_to_cart:active, .btn-1-light:active {
  transform: translateY(3px);
}
.btn-1-success {
  background-color: #689447;
  color: hsl(0, 0%, 100%);
}
.btn-1-success:hover {
  color: #fff;
  background-color: #44602e;
}
.btn-1-success:active {
  transform: translateY(3px);
}
.btn-1-info {
  background-color: #369;
  color: hsl(0, 0%, 100%);
}
.btn-1-info:hover {
  color: #fff;
  background-color: #204060;
}
.btn-1-info:active {
  transform: translateY(3px);
}
.btn-1-warning {
  background-color: #f7e720;
  color: #484303;
}
.btn-1-warning:hover {
  color: #fff;
  background-color: #c3b507;
}
.btn-1-warning:active {
  transform: translateY(3px);
}
.btn-1-danger {
  background-color: #9e1c25;
  color: hsl(0, 0%, 100%);
}
.btn-1-danger:hover {
  color: #fff;
  background-color: #5d1016;
}
.btn-1-danger:active {
  transform: translateY(3px);
}

.btn-1 {
  overflow: hidden;
  z-index: 0;
}
.btn-1:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 90%;
  top: 5%;
  left: 0;
  display: block;
  z-index: -1;
  opacity: 0;
  background: url("../../../static/x-icon.svg") no-repeat center/contain;
}
.btn-1:hover:after {
  transform: scale(20);
  transition: transform 0.5s;
  opacity: 1;
}
/* Outline Button - btn-2
   --------------------------------------------- */
.btn-2 {
  background-color: transparent;
  color: #fc6c0f;
  border: 2px solid #fd8b41;
  border-radius: 5px;
  text-transform: none;
}
.btn-2:hover {
  background-color: #fc6c0f;
  border-color: #fc6c0f;
  color: #fff;
}
.btn-2-white {
  background-color: transparent;
  color: #fff;
  border: 2px solid white;
  border-radius: 5px;
  text-transform: none;
}
.btn-2-white:hover {
  background-color: #fff;
  border-color: #fff;
  color: #fff;
}
.btn-2-white:hover {
  color: #bc4b02;
}

/* Button Icon Text - .btn-icon-text
   --------------------------------------------- */
.btn-icon-text {
  display: flex;
  align-items: center;
  border-radius: 3px;
  background-color: #bc4b02;
  color: #fff;
  width: auto;
  padding: 6px 12px;
}
.btn-icon-text:hover {
  color: #fff;
}
.btn-icon-text i {
  width: 30px;
  height: 30px;
  background-color: hsla(0, 0%, 100%, 0);
  border-radius: 50%;
  font-size: 18px;
  margin-right: 5px;
  margin-left: -5px;
}
.btn-icon-text i:hover,
.btn-icon-text i a:hover {
  text-decoration: none;
}

/* Genesis Widgets
 ============================================= */
/* Widget
 --------------------------------------------- */
.widget {
  margin-bottom: 40px;
}

.widget p:last-child,
.widget ul > li:last-of-type {
  margin-bottom: 0;
}

.widget ul > li {
  margin-bottom: 10px;
}

.widget ul > li:last-of-type {
  padding-bottom: 0;
}

.widget ol > li {
  list-style-position: inside;
  list-style-type: decimal;
  padding-left: 20px;
  text-indent: -20px;
}

.widget li li {
  border: 0;
  margin: 0 0 0 30px;
  padding: 0;
}

.widget_calendar table {
  width: 100%;
}

.widget_calendar td,
.widget_calendar th {
  text-align: center;
}

/* Forms
  ============================================== */
/*
 ** Form Errors
 */
.woocommerce-invalid-required-field label {
  color: #9e1c25 !important;
}

.woocommerce-invalid-required-field input, .StripeElement.invalid {
  box-shadow: 0 0 0 2px #9e1c25 !important;
  border: 1px solid white !important;
}

/*CONTACT FORM*/
:focus {
  outline: 0;
}

::placeholder {
  opacity: 0.5;
}

input:not([type=submit]):not([type=file]),
textarea {
  height: 38px;
  width: 100%;
  padding: 6px 10px;
  background-color: #fff;
  border: 1px solid #D1D1D1;
  border-radius: 4px;
  box-shadow: none;
  box-sizing: border-box;
  color: #555;
}
@media only screen and (max-width: 670px) {
  input:not([type=submit]):not([type=file]),
  textarea {
    font-size: 16px;
    line-height: 1.5;
  }
}

/* Removes awkward default styles on some inputs for iOS */
input:not([type=submit]):not([type=file]),
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

input:not([type=submit]):not([type=file]):focus, input:not([type=submit]):not([type=file]):hover,
select:focus,
select:hover,
textarea:focus,
textarea:hover {
  background-color: #eaeaea;
  border: 1px solid #bbbbbb;
  outline: 0;
}
input:not([type=submit]):not([type=file]):focus,
select:focus,
textarea:focus {
  box-shadow: 0 0 0 2px #ff6b0c;
  border: 1px solid white;
}

input[type=checkbox],
input[type=radio] {
  display: inline;
}

form p {
  margin-bottom: 20px;
}
form label {
  font-weight: 700;
}
form textarea {
  min-height: 80px;
}
form input[type=file] {
  padding: 0.6em 0;
  background-color: transparent;
  border: 0;
}
form input[type=submit] {
  width: 100%;
}
form input[type=submit]:disabled {
  background: #f1f1f2;
  box-shadow: 0 0 0 0 #ccc;
}
form input[type=submit]:disabled:hover {
  top: 0;
}

/*WPCF7 SPECIFIC ERROR AND APPROVAL MESSAGES*/
.wpcf7 form .wpcf7-list-item {
  margin: 0;
}
.wpcf7 form .wpcf7-not-valid-tip {
  color: #fff;
  background-color: #cc4a4a;
  padding: 0.2em 0.6em;
  font-size: 1.2rem;
  font-weight: 700;
  border-radius: 0 0 5px 5px;
  text-align: center;
}
.wpcf7 form .wpcf7-response-output {
  position: relative;
  margin: 10px 0;
  padding: 0.5em 1em;
  border: 0 solid #cc4a4a;
  font-size: 1.4rem;
  line-height: 2.2rem;
  color: #fff;
  background-color: #cc4a4a;
  border-radius: 5px;
  font-weight: 600;
}
.wpcf7 form .wpcf7-response-output:before {
  font-weight: 700;
  left: 5px;
  top: calc(50% - 15px);
  position: absolute;
  width: 30px;
  height: 30px;
  border-radius: 15px;
  background-color: rgba(255, 255, 255, 0.3);
}
.wpcf7 form .wpcf7-acceptance-missing,
.wpcf7 form .wpcf7-validation-errors {
  padding-left: 40px;
}
.wpcf7 form .wpcf7-acceptance-missing:before,
.wpcf7 form .wpcf7-validation-errors:before {
  content: "\ea0a";
}
.wpcf7 form .wpcf7-mail-sent-ok {
  padding-left: 40px;
  background-color: green;
}
.wpcf7 form .wpcf7-mail-sent-ok:before {
  content: "\ea03";
}
.wpcf7 form.sent .wpcf7-response-output {
  padding-left: 40px;
  background-color: green;
}
.wpcf7 form.sent .wpcf7-response-output:before {
  content: "\ea03";
}

/* Select Reset
   --------------------------------------------- */
select {
  display: block;
  font-size: 1.5rem;
  color: #555;
  line-height: 1.3;
  padding: 0.6em 1.4em 0.5em 0.8em;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0;
  border: 1px solid #ccc;
  border-radius: 0.3em;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat, repeat;
  background-position: right 0.7em top 50%, 0 0;
  background-size: 0.65em auto, 100%;
}
select::-ms-expand {
  display: none;
}
select:hover {
  border-color: #888;
}
select:focus {
  border-color: #aaa;
  box-shadow: 0 0 1px 3px rgba(59, 153, 252, 0.7);
  box-shadow: 0 0 0 3px -moz-mac-focusring;
  color: #222;
  outline: none;
}
select option {
  font-weight: normal;
}

/* Checkbox Reset
 --------------------------------------------- */
input[type=checkbox] {
  display: none;
  position: absolute;
  -webkit-appearance: none;
}
input[type=checkbox] + * {
  position: relative;
  line-height: 1.5;
  display: inline;
}
input[type=checkbox] + * > * {
  float: left;
}
input[type=checkbox] + *:after, input[type=checkbox] + *:before {
  pointer-events: none;
  content: "";
}
input[type=checkbox] + *:before {
  display: inline-flex;
  height: 16px;
  min-width: 16px;
  width: 16px;
  border: solid 2px #ccc;
  background: #fff;
  margin-right: 10px;
}
input[type=checkbox] + *:after {
  position: absolute;
  height: 11px;
  width: 22px;
  top: 0;
  left: 0;
  border-bottom: solid 3px #999;
  border-left: solid 3px #999;
  background: none;
  transform: rotate(-45deg) scale(0);
  transform-origin: center center;
}
input[type=checkbox] + *:hover {
  opacity: 0.8;
}
input[type=checkbox]:checked + *:before {
  border-color: #f2f2f2;
  background-color: #f2f2f2;
}
input[type=checkbox]:checked + *:after {
  opacity: 1;
  transform: rotate(-45deg) scale(0.8);
  border-bottom: solid 4px #689447;
  border-left: solid 4px #689447;
}

fieldset {
  padding: 0;
  border-width: 0;
}

/* List style
 --------------------------------------------- */
details ol, details ul, .number-list, div.product .woocommerce-product-details__short-description ol, .post-single .entry-content > ol, .item-list, div.product .woocommerce-product-details__short-description ul, .post-single .entry-content > ul, .post-single .entry-content ul, .post-single .entry-content ol {
  margin-bottom: 24px;
}
details ol li, details ul li, .number-list li, div.product .woocommerce-product-details__short-description ol li, .item-list li, div.product .woocommerce-product-details__short-description ul li, .post-single .entry-content ul li, .post-single .entry-content ol li {
  margin-bottom: 12px;
  margin-left: 24px;
}
details ol ol, details ul ol, .number-list ol, div.product .woocommerce-product-details__short-description ol ol, .item-list ol, div.product .woocommerce-product-details__short-description ul ol, .post-single .entry-content ul ol, .post-single .entry-content ol ol,
details ol ul,
details ul ul,
.number-list ul,
div.product .woocommerce-product-details__short-description ol ul,
.item-list ul,
div.product .woocommerce-product-details__short-description ul ul,
.post-single .entry-content ul ul,
.post-single .entry-content ol ul {
  margin-bottom: 0;
}

.item-list > li, div.product .woocommerce-product-details__short-description ul > li, .post-single .entry-content > ul > li {
  list-style-type: disc;
}

.number-list > li, div.product .woocommerce-product-details__short-description ol > li, .post-single .entry-content > ol > li {
  list-style-type: decimal;
}

/* Entry Meta
 --------------------------------------------- */
.entry-footer .entry-meta {
  border-top: 1px solid #eee;
  padding-top: 20px;
}

.entry-comments-link::before {
  content: "—";
  margin: 0 6px 0 2px;
}

/* Pagination
 --------------------------------------------- */
.pagination {
  position: relative;
  margin: 60px 0;
}

.adjacent-entry-pagination {
  margin-bottom: 0;
}

.archive-pagination li {
  display: inline;
}

.archive-pagination li a {
  background-color: #f5f5f5;
  color: #333;
  cursor: pointer;
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 4px;
  padding: 8px 12px;
  text-decoration: none;
}

.archive-pagination li a:focus,
.archive-pagination li a:hover,
.archive-pagination li.active a {
  background-color: #333;
  color: #fff;
}

/* Section Title
 --------------------------------------------- */
.section-title {
  margin-bottom: 20px;
  width: min(700px, 100%);
}
.section-title.align-c {
  text-align: center;
  margin-inline: auto;
}
.section-title h4 {
  position: relative;
  color: #fc6c0f;
  font-family: "Outfit", sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 10px;
}

/* Divider
 --------------------------------------------- */
hr {
  border: 0;
}

hr.small, .entry-content hr.entry-meta {
  margin: 10px 0;
}

.divider-c, .divider {
  position: relative;
  margin: 15px 0;
  border-top: 1px solid #fc6c0f;
  width: 50px;
}

.divider-c {
  margin-left: auto;
  margin-right: auto;
}

/* Image Card
 ---------------------------------------------
<figure class="img-card">
  <img src="">
  <figcaption></figcaption>
</figure>
*/
.img-card {
  position: relative;
  display: flex;
  flex-flow: column nowrap;
  justify-content: flex-end;
  overflow: hidden;
  z-index: 0;
  background-color: #000;
}
.img-card:after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100px;
  z-index: 0;
  bottom: 0;
  left: 0;
  background: linear-gradient(to top, hsl(10, 10%, 10%) 0%, hsla(10, 10%, 10%, 0) 100%);
}
.img-card:hover img {
  transform: scale(1.05);
  opacity: 1;
}
.img-card img {
  transition: all 0.8s ease-in-out;
  width: 100%;
  object-fit: cover;
  opacity: 0.8;
}
.img-card figcaption {
  position: absolute;
  padding: 15px 20px;
  font-size: 1.76rem;
  line-height: 1.2;
  color: #fff;
  text-transform: uppercase;
  width: 100%;
  z-index: 1;
}

/* Logo Gallery
 ---------------------------------------------
<section class="logo-showcase">
  <header class="section-title align-c">
    <h2>Our Clients</h2>
    <hr class="divider-c">
    <p>Here are some of our our clients.</p>
  </header>

  <div class="logo-showcase-gallery">
    <img src="../../../static/logo-1.jpg">
  </div>
</section>
*/
.logo-feature-gallery {
  position: relative;
}
.logo-feature-gallery img {
  object-fit: contain;
  padding: 20px;
}

/* Image Banner
  ==========================================
  <section class="image-banner">
    <div class="container container-left">
      <h3>Title</h3>
      <p>Description</p>
      <a href="#" class="btn btn-3">Learn More</a>
    </div>
    <img src="/static/asd.jpg">
  </section>

  */
/* Banners
  ============================================== */
.hero-slider, .shop-banner, .entry-header,
.regular-banner {
  position: relative;
  width: 100%;
  z-index: 0;
  padding: 50px 5%;
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
}
.hero-slider img, .shop-banner img, .entry-header img,
.regular-banner img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  z-index: -1;
  object-fit: cover;
}

/* Regular Banner
   --------------------------------------------- */
.shop-banner, .entry-header,
.regular-banner {
  height: auto;
  min-height: 250px;
  text-align: center;
}
.shop-banner > *, .entry-header > *,
.regular-banner > * {
  margin-bottom: 10px;
}
.shop-banner > *:last-child, .entry-header > *:last-child,
.regular-banner > *:last-child {
  margin-bottom: 0;
}
.shop-banner p, .entry-header p,
.regular-banner p {
  font-family: "Zalando Sans Expanded", sans-serif;
}

/* Giant Banner
 --------------------------------------------- */
/* Hero Slider
 ============================================= */
/* Giant Banner Slider */
.hero-slider {
  padding: 0;
  overflow: hidden;
  height: auto;
}
@media only screen and (max-width: 670px) {
  .hero-slider {
    max-height: none;
  }
}
@media only screen and (min-width: 670px) {
  .hero-slider {
    max-height: 720px;
  }
}

@media only screen and (min-width: 670px) {
  .hero-slider--short {
    max-height: 500px;
  }
}
@media only screen and (min-width: 670px) {
  .hero-slider--short .hero-slide {
    height: 500px;
  }
}
@media only screen and (min-width: 960px) {
  .hero-slider--short .hero-slide {
    max-height: 500px;
    height: 100vh;
  }
}

/* Giant Banner Slide */
.hero-slide {
  position: relative;
  height: auto;
  width: 100%;
  /* Generic Figcaption Styles */
}
@media only screen and (max-width: 670px) {
  .hero-slide {
    background-color: #fff;
    flex-direction: column;
  }
}
@media only screen and (min-width: 670px) {
  .hero-slide {
    height: 70vh;
  }
}
@media only screen and (min-width: 960px) {
  .hero-slide {
    max-height: 56.25vw;
    height: 100vh;
  }
}
.hero-slide figcaption {
  position: relative;
  height: auto;
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: flex-start;
  z-index: 0;
  width: 100%;
}
@media only screen and (max-width: 670px) {
  .hero-slide figcaption {
    padding: 20px 5%;
    text-align: center;
    align-items: center;
    width: auto;
    margin: 0;
    background-color: #fff;
  }
  .hero-slide figcaption:before {
    position: absolute;
    content: "";
    left: 0;
    top: -99px;
    width: 100%;
    height: 100px;
    background: linear-gradient(to top, hsl(255, 100%, 100%) 0%, hsla(255, 100%, 100%, 0) 100%);
  }
  .hero-slide figcaption br {
    display: none;
  }
  .hero-slide figcaption p {
    margin-bottom: 10px !important;
  }
}
@media only screen and (min-width: 670px) {
  .hero-slide figcaption {
    position: absolute;
    width: min(50%, 450px);
  }
}
.hero-slide figcaption h2 {
  font-size: 4.8rem;
  font-weight: 700;
  margin-bottom: 1rem;
}
.hero-slide figcaption h4 {
  font-family: "Outfit", sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 0;
}
.hero-slide figcaption p {
  font-weight: 600;
}
.hero-slide img {
  position: relative;
}
@media only screen and (max-width: 670px) {
  .hero-slide img {
    height: 90vw;
  }
}

.hero-slide--center-center figcaption {
  margin-inline: auto;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  text-align: center;
  align-items: center;
}

.hero-slide--center-left figcaption {
  top: 50%;
  left: 5%;
  transform: translateY(-50%) translateX(0%);
}

.hero-slide--center-right figcaption {
  top: 50%;
  right: 5%;
  transform: translateY(-50%) translateX(0%);
  text-align: right;
  align-items: flex-end;
}

/* Default Blocks */
.inline-wrap {
  width: min(90%, 1400px);
  margin-inline: auto;
}
.inline-wrap.narrow {
  width: min(90%, 960px);
}
@media only screen and (min-width: 1400px) {
  .inline-wrap.narrow {
    width: min(90%, 1400px);
  }
}
.inline-wrap.full {
  width: min(100%, 1400px);
}
.inline-wrap .inline-wrap {
  width: 100%;
}

.aligncenter .section-title {
  text-align: center;
}
.aligncenter .section-title hr {
  margin-left: auto;
  margin-right: auto;
}

/* Image Gallery */
.image-gallery-section {
  padding: 50px 5%;
}
@media only screen and (min-width: 670px) {
  .image-gallery-section {
    padding: 50px;
  }
}

.image-gallery-list {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  padding: 3px;
}
.image-gallery-list li {
  position: relative;
  flex: 1 1 0;
  height: 300px;
  min-width: 300px;
}
.image-gallery-list img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  padding: 3px;
  object-fit: cover;
}

/* LR Layout */
.lr-layout {
  width: 100%;
  min-height: 400px;
}
@media only screen and (min-width: 960px) {
  .lr-layout {
    background-attachment: fixed;
  }
}
@media only screen and (min-width: 960px) {
  .lr-layout:nth-of-type(even) .inline-wrap {
    flex-flow: row-reverse wrap;
  }
  .lr-layout:nth-of-type(even) figure:after {
    right: 0;
  }
  .lr-layout:nth-of-type(even) figure:before {
    right: 0;
  }
}
.lr-layout .inline-wrap {
  position: relative;
  display: flex;
  flex-flow: row wrap;
}
.lr-layout .inline-wrap > * {
  width: 100%;
  margin-bottom: 0px;
}
@media only screen and (min-width: 670px) {
  .lr-layout .inline-wrap > * {
    width: calc((100% - 0px * (2 - 1)) / 2);
    margin-right: 0px;
  }
  .lr-layout .inline-wrap > *:nth-child(2n) {
    margin-right: 0;
  }
}
.lr-layout figure {
  position: relative;
  margin: 0;
  overflow: hidden;
  z-index: 0;
  height: 90vw;
}
@media only screen and (min-width: 670px) {
  .lr-layout figure {
    height: 70vh;
  }
}
@media only screen and (min-width: 960px) {
  .lr-layout figure {
    height: 50vw;
    max-height: 70vh;
    align-self: stretch;
  }
}
@media only screen and (min-width: 670px) {
  .lr-layout figure:after {
    content: "";
    position: absolute;
    background-color: #fff3e3;
    opacity: 0.7;
    width: 25vw;
    max-width: 50%;
    height: calc(50vw + 60px);
    z-index: -1;
  }
}
.lr-layout figure.feature-active:before {
  max-width: 0;
}
.lr-layout figure:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  transition: all 1s ease-in-out;
  z-index: 2;
  max-width: 100%;
}
.lr-layout figure img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  object-fit: cover;
  padding: 0;
}
@media only screen and (min-width: 960px) {
  .lr-layout figure img {
    padding: 60px;
  }
}
.lr-layout article {
  position: relative;
  padding: 30px 5%;
  width: 100%;
  z-index: 0;
}
@media only screen and (min-width: 670px) {
  .lr-layout article {
    width: 50%;
    text-align: center;
  }
}
@media only screen and (min-width: 960px) {
  .lr-layout article {
    padding: 50px 100px;
  }
}

.secondary-graphic-0 {
  position: absolute;
  z-index: -1;
  opacity: 0.3;
  width: 25vw;
  height: 25vw;
  object-fit: contain;
  object-position: center;
  left: calc(50% - 12.5vw);
  top: calc(50% - 12.5vw);
}

/* Ecommerce Highlights */
.attribute-highlights {
  background-color: #fc6c0f;
  padding: 60px 5% 50px;
}
@media only screen and (min-width: 960px) {
  .attribute-highlights {
    padding: 60px 10% 50px;
  }
}
.attribute-highlights .inline-wrap {
  display: flex;
  flex-flow: row wrap;
}
.attribute-highlights .inline-wrap > * {
  width: 100%;
  margin-bottom: 25px;
}
@media only screen and (min-width: 670px) {
  .attribute-highlights .inline-wrap > * {
    width: calc((100% - 25px * (4 - 1)) / 4);
    margin-right: 25px;
  }
  .attribute-highlights .inline-wrap > *:nth-child(4n) {
    margin-right: 0;
  }
}
@media only screen and (min-width: 670px) {
  .attribute-highlights .inline-wrap > * {
    margin-bottom: 0;
  }
}
.attribute-highlights .icon-card img {
  filter: saturate(0) invert(1);
  opacity: 1;
}
.attribute-highlights .icon-card h4 {
  color: #fff;
}

/* Food Menu */
.dish-list {
  position: relative;
  max-width: 700px;
  margin: 0 auto;
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
}
.dish-list:after {
  content: "";
  position: absolute;
  width: 1px;
  height: 100%;
  left: 50%;
  background-color: #ffd5a1;
}
.dish-list article {
  position: relative;
  display: flex;
  flex: 0 1 45%;
  margin-bottom: 25px;
}
.dish-list article p {
  line-height: 1.4;
  font-size: 1.4rem;
  margin-bottom: 0;
}
.dish-list article p span {
  display: block;
}
.dish-list article:hover {
  color: #d55503;
  cursor: pointer;
}
.dish-list article:hover figure {
  display: flex;
}
.dish-list article figure {
  display: none;
  position: absolute;
  width: 100%;
  top: calc(100% + 5px);
  left: 0;
  flex-flow: column nowrap;
  background-color: #fff;
  z-index: 10;
  border-radius: 10px;
  overflow: hidden;
}
.dish-list article figure img {
  width: 100%;
  max-height: 250px;
  object-fit: cover;
}
.dish-list article figure figcaption {
  padding: 10px;
}

.dish-title {
  width: 100%;
  padding-right: 20px;
  font-weight: 700;
}
.dish-title span {
  font-weight: 400;
}

/* Product Feature */
.library-gallery {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  margin-top: 50px;
  /* State when not active */
}
@media only screen and (min-width: 670px) {
  .library-gallery {
    flex-flow: row nowrap;
  }
}
.library-gallery .single-product-feature figcaption {
  bottom: -300px;
}
.library-gallery .single-product-feature.active {
  position: relative;
  height: 500px;
  width: 100%;
}
.library-gallery .single-product-feature.active > img {
  transition: 0.6s;
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
}
.library-gallery .single-product-feature.active figcaption {
  position: absolute;
  transition: 0.6s;
  width: 100%;
  bottom: 0;
  top: auto;
  z-index: 1;
  padding: 25px;
  color: #fff;
  background: hsla(0, 0%, 0%, 0.5);
  margin: 0;
  text-align: left;
}
@media only screen and (min-width: 670px) {
  .library-gallery .single-product-feature.active figcaption {
    padding: 25px 50px;
  }
}
.library-gallery .single-product-feature.active figcaption h3, .library-gallery .single-product-feature.active figcaption form.woocommerce-checkout .col-1 h4, .library-gallery .single-product-feature.active figcaption form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .library-gallery .single-product-feature.active figcaption h4, form.woocommerce-checkout .checkout_coupon .library-gallery .single-product-feature.active figcaption h4 {
  color: #fff;
}
.library-gallery .single-product-feature.active figcaption p {
  transition: 0.3s;
  margin-bottom: 0;
  display: block;
}
.library-gallery .single-product-feature:not(.active) {
  align-items: stretch;
}
@media only screen and (max-width: 670px) {
  .library-gallery .single-product-feature:not(.active) {
    width: 100%;
  }
}
.library-gallery .single-product-feature:not(.active) img {
  max-width: 0;
  display: block;
}
.library-gallery .single-product-feature:not(.active) figcaption {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  align-items: flex-end;
  background-color: hsl(0, 0%, 95%);
  bottom: auto;
  height: 100%;
  cursor: pointer;
  padding: 15px;
  margin: 0;
}
@media only screen and (max-width: 670px) {
  .library-gallery .single-product-feature:not(.active) figcaption {
    border-bottom: 1px solid hsl(0, 0%, 85%);
  }
}
@media only screen and (min-width: 670px) {
  .library-gallery .single-product-feature:not(.active) figcaption {
    padding: 30px 20px;
    border-left: 1px solid hsl(0, 0%, 85%);
  }
}
.library-gallery .single-product-feature:not(.active) figcaption:hover {
  background-color: #fc6c0f;
  border-left: 3px solid #a34102;
}
.library-gallery .single-product-feature:not(.active) figcaption:hover h3, .library-gallery .single-product-feature:not(.active) figcaption:hover form.woocommerce-checkout .col-1 h4, .library-gallery .single-product-feature:not(.active) figcaption:hover form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .library-gallery .single-product-feature:not(.active) figcaption:hover h4, form.woocommerce-checkout .checkout_coupon .library-gallery .single-product-feature:not(.active) figcaption:hover h4 {
  color: #fff;
}
.library-gallery .single-product-feature:not(.active) h3, .library-gallery .single-product-feature:not(.active) form.woocommerce-checkout .col-1 h4, .library-gallery .single-product-feature:not(.active) form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .library-gallery .single-product-feature:not(.active) h4, form.woocommerce-checkout .checkout_coupon .library-gallery .single-product-feature:not(.active) h4 {
  margin: 0;
  font-family: "Outfit", sans-serif;
  text-transform: uppercase;
  font-size: 1.7rem;
}
@media only screen and (min-width: 670px) {
  .library-gallery .single-product-feature:not(.active) h3, .library-gallery .single-product-feature:not(.active) form.woocommerce-checkout .col-1 h4, .library-gallery .single-product-feature:not(.active) form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .library-gallery .single-product-feature:not(.active) h4, form.woocommerce-checkout .checkout_coupon .library-gallery .single-product-feature:not(.active) h4 {
    writing-mode: vertical-lr;
    transform: rotate(180deg);
  }
}
.library-gallery .single-product-feature:not(.active) p {
  display: none;
}

/* Contact 1 */
.contact-1 {
  margin: 80px 0;
}

.contact-details-wrapper {
  display: flex;
  flex-flow: row wrap;
  gap: 40px;
  justify-content: center;
  margin: 80px 0;
}
.contact-details-wrapper .contact-detail {
  flex: 1 1 200px;
  width: 200px;
  display: flex;
  gap: 10px;
}
.contact-details-wrapper .contact-detail i {
  color: #fff;
  min-width: 40px;
  width: 40px;
  height: 40px;
  font-size: 17px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #fc6c0f;
}
.contact-details-wrapper .contact-detail .contact-detail-caption b {
  display: block;
}

.contact-1_mapembed {
  position: relative;
  margin: 50px 0 150px;
  display: block;
}
.contact-1_mapembed:after {
  content: "";
  position: absolute;
  height: 75%;
  bottom: -25%;
  background-color: #ffecd4;
  z-index: -1;
  border-top: 1px solid #ffd5a1;
  border-bottom: 1px solid #ffd5a1;
}

.post-archive {
  display: flex;
  flex-flow: column nowrap;
  margin-inline: auto;
  gap: 50px;
  width: 100%;
}
.post-archive .archive-description {
  background-color: #ffecd4;
  margin-bottom: 0;
  padding: 3rem 0;
}
.post-archive .archive-description > * {
  width: min(90%, 1400px);
  margin-inline: auto;
}
.post-archive .post-entry-list {
  padding: 0 5%;
  width: min(90%, 1400px);
  margin-inline: auto;
}
@media only screen and (min-width: 670px) {
  .post-archive .post-entry-list {
    padding: 0 0 5rem 0;
  }
}
.post-archive .sidebar {
  padding: 0 5%;
  width: 100%;
}
@media only screen and (min-width: 670px) {
  .post-archive .sidebar {
    padding: 0;
    flex: 1 1 0;
    margin-right: 5%;
    max-width: 280px;
  }
}

.post-entry-list .entry-content {
  display: flex;
  gap: 50px;
}
@media only screen and (max-width: 670px) {
  .post-entry-list .entry-content {
    flex-flow: column nowrap;
    gap: 20px;
  }
}
.post-entry-list .entry + .entry {
  margin-block: 5rem 0;
}
@media only screen and (min-width: 670px) {
  .post-entry-list .entry {
    padding: 30px 30px 0;
  }
}
.post-entry-list .entry:nth-child(even) .entry-content {
  flex-flow: row-reverse;
}
@media only screen and (max-width: 670px) {
  .post-entry-list .entry:nth-child(even) .entry-content {
    flex-flow: column nowrap;
  }
}
.post-entry-list h3, .post-entry-list form.woocommerce-checkout .col-1 h4, .post-entry-list form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .post-entry-list h4, form.woocommerce-checkout .checkout_coupon .post-entry-list h4 {
  margin: 10px 0;
}
.post-entry-list p {
  line-height: 1.5;
}
.post-entry-list .btn-3:hover {
  text-decoration: none;
}
.post-entry-list .caption {
  display: flex;
  flex-flow: column nowrap;
  align-items: flex-start;
}
.post-entry-list .caption h2 {
  flex: 1 1 auto;
}
.post-entry-list .caption a {
  margin-bottom: auto;
}
.post-entry-list .entry-content__thumbnail-link {
  position: relative;
  min-height: 170px;
  aspect-ratio: 16/9;
  min-width: 55%;
}
.post-entry-list .entry-content__thumbnail-link img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  object-fit: cover;
}

/* Structure of single post*/
.post-single .entry {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  margin: 0 auto;
}
.post-single .entry > * {
  margin-bottom: 50px;
}
.post-single .entry > *:last-child {
  margin-bottom: 0;
}
.post-single .has-post-thumbnail .entry-header {
  background: #fc6c0f;
}
.post-single .has-post-thumbnail .entry-header img {
  opacity: 0.7;
  mix-blend-mode: multiply;
}
.post-single .entry-content {
  padding: 0 5%;
  width: 100%;
}
@media only screen and (min-width: 670px) {
  .post-single .entry-content {
    padding: 0;
    flex: 3 1 0;
    margin-left: 5%;
    margin-right: 50px;
    max-width: 650px;
  }
}
.post-single .sidebar {
  padding: 0 5%;
  width: 100%;
}
@media only screen and (min-width: 670px) {
  .post-single .sidebar {
    padding: 0;
    flex: 1 1 0;
    margin-right: 5%;
    max-width: 280px;
  }
}

/* Primary sidebar only */
.sidebar-primary .widget-title {
  border-bottom: 4px solid hsl(0, 0%, 85%);
  padding-bottom: 10px;
  margin-bottom: 10px;
}

.entry-content .entry-meta {
  color: hsl(0, 0%, 70%);
}

/* Single Page Content
  ========================================== */
.error404 main.content {
  width: min(100%, 700px);
  margin: 150px auto 50px;
  text-align: center;
}
.error404 .search-form {
  display: none;
}

.bg-pattern {
  position: relative;
  z-index: 0;
}
.bg-pattern:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: url("../../../static/bg-pattern.svg") repeat center/750px;
  z-index: -1;
  opacity: 0.4;
  background-attachment: fixed;
}

.bg-pattern-2 {
  position: relative;
  z-index: 0;
}
.bg-pattern-2:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: url("../../../static/bg-pattern-2.svg") repeat center/500px;
  opacity: 0.1;
  z-index: -1;
  background-attachment: fixed;
}

.bg-pattern-3 {
  position: relative;
  z-index: 0;
}
.bg-pattern-3:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: url("../../../static/bg-pattern-3.svg") repeat center/750px;
  opacity: 0.1;
  z-index: -1;
  background-attachment: fixed;
}

.bg-light {
  background-color: #fff7ed;
  color: #7d2a11;
}
.bg-light + .bg-light {
  padding-top: 0;
}

.bg-dark {
  background-color: #441306;
}
.bg-dark + .bg-dark {
  padding-top: 0;
}

.bg-main {
  background-color: #fc6c0f;
}
.bg-main + .bg-main {
  padding-top: 0;
}

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

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

.text-white, .custom-alternate-section .inline-wrap .description {
  color: #ffecd4;
}

.relative {
  position: relative;
}

.overflow-hidden {
  overflow: hidden;
}

.z-0 {
  z-index: 0;
}

.border-box {
  box-sizing: border-box;
}

.table {
  display: table;
}

.mx-auto {
  margin-inline: auto;
}

.mt-10 {
  margin-top: calc(var(--spacing) * 10rem);
}

.mt-15 {
  margin-top: calc(var(--spacing) * 15rem);
}

.mt-20 {
  margin-top: calc(var(--spacing) * 20rem);
}

.pt-10 {
  padding-top: calc(var(--spacing) * 10rem);
}

.pt-15 {
  padding-top: calc(var(--spacing) * 15rem);
}

.pt-20 {
  padding-top: calc(var(--spacing) * 20rem);
}

.pb-10 {
  padding-bottom: calc(var(--spacing) * 10rem);
}

.pb-15 {
  padding-bottom: calc(var(--spacing) * 15rem);
}

.pb-20 {
  padding-bottom: calc(var(--spacing) * 20rem);
}

.my-10 {
  margin-block: calc(var(--spacing) * 20rem);
}

.my-20 {
  margin-block: calc(var(--spacing) * 20rem);
}

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

.gap-5 {
  gap: calc(var(--spacing) * 5rem);
}

.gap-10 {
  gap: calc(var(--spacing) * 10rem);
}

.gap-15 {
  gap: calc(var(--spacing) * 15rem);
}

.gap-20 {
  gap: calc(var(--spacing) * 20rem);
}

.flex {
  display: flex;
}

.flex-col {
  flex-direction: column;
}

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

.place-items-center {
  place-content: center;
}

.grid {
  display: grid;
}

@media only screen and (min-width: 670px) {
  .col-span-1 {
    grid-column: 1;
  }
}

@media only screen and (min-width: 670px) {
  .col-span-2 {
    grid-column: 2;
  }
}

@media only screen and (min-width: 670px) {
  .col-span-3 {
    grid-column: 3;
  }
}

.w-3xs {
  width: calc(var(--spacing) * 64rem);
}

@media only screen and (min-width: 670px) {
  .grid-cols-2 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media only screen and (min-width: 670px) {
  .grid-cols-2-1 {
    grid-template-columns: 2fr 1fr;
  }
}

@media only screen and (min-width: 670px) {
  .grid-cols-3 {
    grid-template-columns: repeat(3, 1fr);
  }
}

.grid-cols-4 {
  grid-template-columns: repeat(2, 1fr);
}
@media only screen and (min-width: 670px) {
  .grid-cols-4 {
    grid-template-columns: repeat(4, 1fr);
  }
}

.grid-cols-5 {
  grid-template-columns: repeat(2, 1fr);
}
@media only screen and (min-width: 670px) {
  .grid-cols-5 {
    grid-template-columns: repeat(5, 1fr);
  }
}

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

.p-5 {
  padding: calc(var(--spacing) * 5rem);
}

.p-10 {
  padding: calc(var(--spacing) * 10rem);
}

.p-15 {
  padding: calc(var(--spacing) * 15rem);
}

.p-20 {
  padding: calc(var(--spacing) * 20rem);
}

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

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

.text-sm {
  font-size: 1.4rem;
}

.text-3xl {
  font-size: 1.875rem;
}

.text-5xl {
  font-size: 3rem;
}

.text-7xl {
  font-size: 4.5rem;
}

.text-9xl {
  font-size: 8rem;
}

.rounded-50 {
  border-radius: 50%;
}

.aspect-square {
  aspect-ratio: 1;
}

.aspect-16-9 {
  aspect-ratio: 16/9;
}

.object-cover {
  object-fit: cover;
}

.object-contain {
  object-fit: contain;
}

#back-to-top-button {
  display: none;
  position: fixed;
  width: 4rem;
  aspect-ratio: 1;
  top: calc(50% - 2rem);
  place-items: center;
  right: 0px;
  z-index: 99;
  background-color: #fc6c0f;
  color: #fff;
  border-radius: 2rem 0 0 2rem;
  cursor: pointer;
}
#back-to-top-button:before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-bottom: 8px solid #fff;
}
#back-to-top-button:after {
  content: "TOP";
  display: none;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
}
#back-to-top-button:hover {
  background-color: #7d2a11;
}
#back-to-top-button:hover:after {
  display: block;
}

/* Ecommerce Highlights */
.ecommerce-highlights {
  display: flex;
  flex-flow: row wrap;
  background-color: #fc6c0f;
  padding: 60px 5% 50px;
}
.ecommerce-highlights > * {
  width: 100%;
  margin-bottom: 15px;
}
@media only screen and (min-width: 670px) {
  .ecommerce-highlights > * {
    width: calc((100% - 15px * (4 - 1)) / 4);
    margin-right: 15px;
  }
  .ecommerce-highlights > *:nth-child(4n) {
    margin-right: 0;
  }
}
@media only screen and (min-width: 960px) {
  .ecommerce-highlights {
    padding: 60px 10% 50px;
  }
}
@media only screen and (min-width: 670px) {
  .ecommerce-highlights > * {
    margin-bottom: 0;
  }
}
.ecommerce-highlights .icon-card img {
  filter: saturate(0) invert(1);
  opacity: 1;
}
.ecommerce-highlights .icon-card h4 {
  color: #fff;
}

.icon-card {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  justify-content: center;
}
.icon-card > figure {
  position: relative;
  width: 100%;
  padding-top: 40px;
}
.icon-card > figure > img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  object-fit: cover;
}
.icon-card .caption {
  flex: 1 1 0;
  position: relative;
  padding: 10px;
  background-color: #fff;
}
@media only screen and (min-width: 670px) {
  .icon-card {
    flex-flow: column nowrap;
  }
}
@media only screen and (min-width: 960px) {
  .icon-card {
    flex-flow: row wrap;
  }
}
.icon-card img {
  width: 40px;
  height: 40px;
  opacity: 0.6;
  margin-right: 10px;
}
.icon-card h4 {
  text-transform: uppercase;
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 0;
  color: #a34102;
}
@media only screen and (min-width: 670px) {
  .icon-card h4 {
    text-align: center;
  }
}
@media only screen and (min-width: 960px) {
  .icon-card h4 {
    text-align: left;
  }
}
.icon-card .caption {
  background: transparent;
}

.image-fill {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  object-fit: cover;
}

/* Floating button */
.floating-whatsapp-button {
  width: 46px;
  height: 46px;
  background-color: #25d366;
  border-radius: 50%;
  font-size: 23px;
  position: fixed;
  font-weight: 400;
  right: 10px;
  bottom: 10px;
  z-index: 9999999;
  color: #fff;
  text-align: center;
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3);
  line-height: 46px;
}
.floating-whatsapp-button:hover,
.floating-whatsapp-button a:hover {
  text-decoration: none;
}

/* Swiper Button */
.swiper-button-next,
.swiper-button-prev {
  color: #fc6c0f;
}

figcaption > * {
  margin-bottom: 0;
}

.image-overlay-with-hover {
  position: relative;
  border-radius: 2rem;
  overflow: hidden;
}
.image-overlay-with-hover:hover {
  outline: 5px solid #7d2a11;
}
.image-overlay-with-hover:hover img {
  filter: saturate(0.25);
  opacity: 0.25;
}
.image-overlay-with-hover:hover p {
  max-height: 100%;
  opacity: 1;
}
.image-overlay-with-hover img {
  aspect-ratio: 0.75;
  object-fit: cover;
  transition: 0.3s;
}
.image-overlay-with-hover figcaption {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  padding: 1.5rem;
  display: flex;
  flex-flow: column nowrap;
  justify-content: flex-end;
}
.image-overlay-with-hover h3, .image-overlay-with-hover form.woocommerce-checkout .col-1 h4, .image-overlay-with-hover form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .image-overlay-with-hover h4, form.woocommerce-checkout .checkout_coupon .image-overlay-with-hover h4 {
  line-height: 1;
  text-shadow: 2px 2px 5px hsla(0, 0%, 20%, 0.7);
}
.image-overlay-with-hover p {
  margin-top: 1rem;
  line-height: 1.2;
  font-weight: 600;
  max-height: 0;
  transition: 0.7s;
  opacity: 0;
}

.image-overlay-with-hover--small img {
  aspect-ratio: 1;
}

.gallery-swiper img {
  object-fit: cover;
}

.wpf-list {
  position: relative;
  width: 100%;
  box-sizing: border-box;
  overflow: hidden;
  padding: 5rem 5%;
}
@media only screen and (min-width: 670px) {
  .wpf-list {
    padding: 5rem;
  }
}
.wpf-list .icon-text {
  box-sizing: border-box;
  background-color: #ffecd4;
  padding: 2rem;
  border-radius: 2rem;
  display: flex;
  flex-flow: column nowrap;
  gap: 1rem;
  aspect-ratio: 1;
}
.wpf-list .icon-text h3, .wpf-list .icon-text form.woocommerce-checkout .col-1 h4, .wpf-list .icon-text form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .wpf-list .icon-text h4, form.woocommerce-checkout .checkout_coupon .wpf-list .icon-text h4 {
  line-height: 1;
  margin-bottom: 0;
  font-size: 2rem;
}
.wpf-list .icon-text p {
  color: #7d2a11;
  line-height: 1.2;
}
.wpf-list .icon-text i {
  font-size: 5.12rem;
  color: #fe8f39;
  margin-bottom: auto;
}

.icon-text-object i {
  font-size: 4rem;
  color: #fe8f39;
  margin-bottom: 1rem;
}
.icon-text-object p {
  font-weight: 600;
}

.home-banner-lr figure {
  position: relative;
  display: grid;
  min-height: 37.5vw;
}
@media only screen and (min-width: 670px) {
  .home-banner-lr figure {
    grid-template-columns: 1fr 1fr;
  }
}
.home-banner-lr figure img {
  position: relative;
  height: 100%;
  width: 100%;
  object-fit: cover;
}
@media only screen and (max-width: 670px) {
  .home-banner-lr figure img {
    order: -1;
  }
}
.home-banner-lr figure figcaption {
  position: relative;
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: flex-start;
  gap: 1rem;
  padding: 3rem 5%;
  background-color: #fff7ed;
  z-index: 2;
}
@media only screen and (min-width: 670px) {
  .home-banner-lr figure figcaption {
    padding: 50px;
  }
}
.home-banner-lr figure figcaption:before, .home-banner-lr figure figcaption:after {
  content: "";
  position: absolute;
  display: block;
}
.home-banner-lr figure figcaption:before {
  width: 0;
  height: 0;
  top: -30px;
  height: 30px;
  left: 0;
  z-index: 2;
  border-left: 0px solid transparent;
  border-right: 100vw solid transparent;
  border-bottom: 30px solid #fff7ed;
}
@media only screen and (min-width: 670px) {
  .home-banner-lr figure figcaption:before {
    height: 100%;
    top: auto;
    left: auto;
    bottom: 0;
    right: -100px;
    border-left: 0px solid transparent;
    border-right: 100px solid transparent;
    border-bottom: 40vw solid #fff7ed;
  }
}
.home-banner-lr figure figcaption:after {
  height: 0;
  width: 0;
  height: 0;
  left: auto;
  border-top: 40px solid transparent;
  border-bottom: 0px solid transparent;
  border-right: 50vw solid #fc6c0f;
  right: 0px;
  top: -40px;
  z-index: 1;
}
@media only screen and (min-width: 670px) {
  .home-banner-lr figure figcaption:after {
    top: 0px;
    border-top: 0px solid transparent;
    border-bottom: 30vw solid transparent;
    border-right: 0px solid #fc6c0f;
    border-left: 5vw solid #fc6c0f;
    right: -5vw;
  }
}
.home-banner-lr figure figcaption h4 {
  color: #7d2a11;
}

.mini-cta-section {
  background-color: #fc6c0f;
  padding: 3rem;
}
.mini-cta-section .inline-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media only screen and (max-width: 670px) {
  .mini-cta-section .inline-wrap {
    flex-flow: column;
    gap: 1rem;
    align-items: stretch;
  }
}
.mini-cta-section .inline-wrap p {
  margin-bottom: 0;
  font-size: 1.6rem;
  color: #ffecd4;
}
.mini-cta-section .inline-wrap p bdi {
  font-weight: 700;
  display: block;
  font-size: 2.1rem;
  line-height: 1.5;
}
.mini-cta-section .inline-wrap a {
  border-radius: 20px;
}

.image-text-section-offset-top {
  margin-top: min(11.25vw, 120px);
}
@media only screen and (min-width: 1400px) {
  .image-text-section-offset-top {
    margin-top: 262.5px;
  }
}
.image-text-section-offset-top img {
  aspect-ratio: 16/6;
  object-fit: cover;
  width: 100%;
  margin-top: max(-50px - 16.875vw, -260px);
  margin-bottom: 3rem;
}
@media only screen and (min-width: 1400px) {
  .image-text-section-offset-top img {
    margin-top: -342.5px;
  }
}

.small-card-list {
  display: flex;
  flex-flow: row wrap;
  margin-block: 2rem;
  gap: 0.5rem;
}
.small-card-list li {
  padding: 0.6rem 0.9rem;
  border-radius: 0.75rem;
  background-color: #fff;
  line-height: 1;
  font-size: 1.4rem;
  color: #7d2a11;
  border: 1px solid #ffca88;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
@media only screen and (min-width: 670px) {
  .small-card-list li {
    padding: 1rem 1.2rem;
  }
}
.small-card-list li i {
  color: #fc6c0f;
}
.small-card-list li p:last-child {
  margin-bottom: 0;
}

/*
CARD SLOT
<div class="text-card">
  <span></span>
  <p></p>
</div>
*/
.text-card {
  display: flex;
  flex-wrap: nowrap;
  border-left: 0;
  width: 100%;
}
.text-card:hover p {
  border-top-color: #ed5309;
}
.text-card:hover p:before {
  left: -20px;
}
.text-card:hover span {
  background-color: #ed5309;
}
.text-card span {
  position: relative;
  color: #fff;
  background-color: #fc6c0f;
  font-weight: 700;
  min-width: 50px;
  text-align: center;
  height: 30px;
  line-height: 30px;
}
@media only screen and (min-width: 670px) {
  .text-card span {
    min-width: 80px;
  }
}
.text-card span i {
  font-size: 16px;
  line-height: 30px;
}
@media only screen and (min-width: 670px) {
  .text-card span i {
    font-size: 20px;
  }
}
.text-card b {
  display: block;
}
.text-card p {
  position: relative;
  border-top: 3px solid #fc6c0f;
  padding: 8px 20px;
  font-size: 1.6rem;
  font-weight: 500;
  background-color: #fff;
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
  flex: 1;
}
.text-card p:before {
  content: "";
  position: absolute;
  height: 100%;
  background: #fc6c0f;
  color: #fff;
  top: 0;
  width: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: -1;
  left: 0;
  margin: 0;
  transition: 0.3s;
}

.faq-list {
  display: grid;
  gap: 1rem;
}

summary::-webkit-details-marker {
  display: none;
}

details {
  padding: 1.5rem 0rem;
}
@media only screen and (min-width: 670px) {
  details {
    padding: 1.5rem 2rem;
  }
}
details[open] summary {
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
}
details[open] summary:after {
  transform: rotate(180deg);
}
details summary {
  font-weight: 700;
  font-size: 1.6rem;
  cursor: pointer;
  border-bottom: 1px solid #ffb872;
  padding-bottom: 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  line-height: 1.2;
}
details summary h3, details summary form.woocommerce-checkout .col-1 h4, details summary form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 details summary h4, form.woocommerce-checkout .checkout_coupon details summary h4 {
  font-family: "Outfit", sans-serif;
  font-size: 1.6rem;
  text-transform: none;
  margin-bottom: 0;
  font-weight: 700;
}
details summary:after {
  content: "";
  position: relative;
  display: block;
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 8px solid #ed5309;
  transition: 0.3s;
}
details > *:not(summary):not(:last-child) {
  margin-bottom: 1rem;
}
details > *:last-child {
  margin-bottom: 0;
}
details p,
details li {
  font-size: 1.4rem;
  line-height: 1.5;
}
details ul > li {
  list-style-type: disc;
}
details ol > li {
  list-style-type: decimal;
}

.contact-detail {
  display: grid;
  margin-bottom: 1rem;
}
.contact-detail a {
  font-weight: 500;
  color: hsl(0, 0%, 30%);
}
.contact-detail strong {
  color: #c43d0a;
}
.contact-detail strong i {
  margin-left: -27px;
  width: 25px;
  text-align: center;
}

.bg-img-full {
  background: no-repeat center/cover;
}
@media only screen and (min-width: 960px) {
  .bg-img-full {
    background-attachment: fixed;
  }
}

.page article.has-post-thumbnail .entry-header {
  padding-left: 0;
  padding-right: 0;
}
.page article.has-post-thumbnail .entry-header > *:not(img) {
  color: #ffecd4;
  text-align: left;
  margin-left: max((100vw - 1400px) / 2, 5%);
  width: min(700px, 90%);
}
.custom-alternate-section {
  background-color: #fc6c0f;
}
.custom-alternate-section .inline-wrap {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
}
.custom-alternate-section .inline-wrap figure {
  position: relative;
  z-index: 0;
  aspect-ratio: 4/3;
  overflow: hidden;
  width: 100%;
}
@media only screen and (min-width: 670px) {
  .custom-alternate-section .inline-wrap figure {
    width: 45%;
  }
}
.custom-alternate-section .inline-wrap figure:before {
  content: "";
  position: absolute;
  z-index: 1;
  background: url("../../../static/divider-horizontal-2.svg") no-repeat center/cover;
  width: 100%;
  aspect-ratio: 4;
  bottom: 0;
}
@media only screen and (min-width: 670px) {
  .custom-alternate-section .inline-wrap figure:before {
    transform: scaleX(-1);
    aspect-ratio: 1/3;
    right: -1px;
    height: 100%;
    background: url("../../../static/horizontal-divider.svg") no-repeat;
  }
}
.custom-alternate-section .inline-wrap figure img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  object-fit: cover;
}
.custom-alternate-section .inline-wrap .description {
  padding: 0 5% 5rem;
}
@media only screen and (min-width: 670px) {
  .custom-alternate-section .inline-wrap .description {
    width: 55%;
    padding: 0 5rem;
  }
}
.custom-alternate-section .inline-wrap .description h2 {
  color: #fff;
}
.custom-alternate-section + .custom-alternate-section:nth-child(even) .inline-wrap {
  flex-flow: row-reverse wrap;
}
.custom-alternate-section + .custom-alternate-section:nth-child(even) .inline-wrap figure:before {
  left: -1px;
  transform: none;
}

/*
 * Edited 20190727
 */
/*
* TABLE OF CONTENTS
* ----------- *
* - Woocommerce Variables
* - Woocommerce Global Styles
* - Add to Cart Button
* - Breadcrumb
* - Sale Label
* - Message box
* - Pagination
*/
/* Woocommerce Variables */
form label, .addresses address p:before,
.woocommerce-customer-details address p:before, .addresses address:before,
.woocommerce-customer-details address:before, .woocommerce-order-overview .deliveryDetails > span, .variation .wc-item-meta-label,
.variation dt,
.wc-item-meta .wc-item-meta-label,
.wc-item-meta dt, div.product-type-variable .single_variation_wrap .woocommerce-variation-price .price:before {
  display: block;
  clip: unset;
  width: auto;
  height: auto;
  text-transform: none;
  font-size: 14px;
  cursor: pointer;
  color: hsl(0, 0%, 50%);
  font-weight: 700;
}

div.product-type-variable .single_variation_wrap .woocommerce-variation-price .price:before {
  font-weight: 700;
  font-size: 1.6rem;
  color: #666;
}

/* Archive Page Main Layout
 ============================================= */
.archive.woocommerce .content {
  width: min(90%, 1400px);
  margin-inline: auto;
  display: flex;
  flex-flow: column nowrap;
  align-items: flex-start;
  padding-top: 5rem;
}
.archive.woocommerce .site-container {
  background-color: #fff7ed;
}
.archive.woocommerce aside.widget-area {
  align-self: stretch;
}
@media only screen and (max-width: 670px) {
  .archive.woocommerce aside.widget-area {
    position: fixed;
    display: none;
    width: 100%;
    margin-right: 0;
    border-right: 0;
    z-index: 10000;
    background: #fff;
    height: 100vh;
    top: 0;
    left: 0;
    padding: 100px 50px;
  }
}
.archive.woocommerce .woocommerce-products-header__title,
.archive.woocommerce .term-description {
  width: min(672px, 100%);
}

/* Shop Banner
--------------------------------------------- */
.shop-banner {
  min-height: 200px;
}
.shop-banner p {
  padding: 0;
  margin-left: auto;
  margin-right: auto;
  font-size: 1.4rem;
}
@media only screen and (min-width: 960px) {
  .shop-banner p {
    max-width: 60vw;
  }
}

/* Shop Archive Top Bar
--------------------------------------------- */
.archive-topbar {
  border-bottom: 2px solid #f1f1f1;
  padding-bottom: 30px;
  margin-bottom: 30px;
  position: relative;
  width: 100%;
  padding: 20px 0;
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  align-items: center;
}

.woocommerce-result-count {
  margin-bottom: 0;
  color: hsl(0, 0%, 60%);
  font-size: 1.2rem;
}

.woocommerce-ordering {
  width: 100%;
}
@media only screen and (max-width: 670px) {
  .woocommerce-ordering {
    margin-bottom: 10px;
  }
}
@media only screen and (min-width: 960px) {
  .woocommerce-ordering {
    width: 250px;
  }
}

/* Shop Archive Widget Area
--------------------------------------------- */
.woocommerce aside.widget-area {
  border-right: 2px solid #f1f1f1;
  padding-right: 15px;
  margin-right: 15px;
  margin-bottom: 30px;
  width: 150px;
}
@media only screen and (min-width: 960px) {
  .woocommerce aside.widget-area {
    border-right: 2px solid #f1f1f1;
    padding-right: 30px;
    margin-right: 30px;
    width: 250px;
  }
}
.woocommerce aside.widget-area .widget {
  border-bottom: 2px solid #f1f1f1;
  padding-bottom: 30px;
  margin-bottom: 30px;
}

/* Sidebar Toggle */
#sidebar-toggle {
  width: 100%;
}
@media only screen and (min-width: 670px) {
  #sidebar-toggle {
    display: none;
  }
}

#sidebar-toggle-close {
  width: 40px;
  height: 40px;
  background-color: #f1f1f1;
  border-radius: 50%;
  font-size: 25px;
  color: #bc4b02;
  position: absolute;
  top: 5vw;
  right: 5vw;
}
#sidebar-toggle-close:hover,
#sidebar-toggle-close a:hover {
  text-decoration: none;
}

/* Specifically for product category */
.menu-shop-menu-container,
.widget_product_categories {
  font-size: 1.4rem;
}
.menu-shop-menu-container a,
.widget_product_categories a {
  color: hsl(0, 0%, 60%);
  display: block;
  padding: 0.2em 0;
}
.menu-shop-menu-container a:hover,
.widget_product_categories a:hover {
  color: hsl(0, 0%, 40%);
  padding-left: 0.4em;
  text-decoration: none;
}

/* Products
--------------------------------------------- */
/* Structure of products to differentiate it from related products */
ul.products {
  position: relative;
  margin-bottom: 30px;
  display: grid;
  gap: 2rem 1rem;
}
@media only screen and (min-width: 670px) {
  ul.products {
    gap: 4rem 2rem;
  }
}
ul.products.columns-2 {
  grid-template-columns: repeat(2, 1fr);
}
ul.products.columns-3 {
  grid-template-columns: repeat(2, 1fr);
}
@media only screen and (min-width: 670px) {
  ul.products.columns-3 {
    grid-template-columns: repeat(3, 1fr);
  }
}
ul.products.columns-4 {
  grid-template-columns: repeat(2, 1fr);
}
@media only screen and (min-width: 670px) {
  ul.products.columns-4 {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Product List */
li.product-category, li.product {
  position: relative;
  display: flex;
  flex-flow: column nowrap;
  justify-content: space-between;
  align-items: center;
  text-align: center;
  padding: 0.8rem;
  border-radius: 2rem;
  background-color: #fc6c0f;
  z-index: 0;
  overflow: hidden;
}
li.product-category > *, li.product > * {
  margin-bottom: 10px;
}
li.product-category > *:last-child, li.product > *:last-child {
  margin-bottom: 0;
}
li.product-category:after, li.product:after {
  content: "";
  position: absolute;
  z-index: -1;
  background: hsl(0, 0%, 95%);
  width: 100%;
  height: 12.5vw;
  display: block;
  bottom: 0;
  left: 0;
}
@media only screen and (min-width: 670px) {
  li.product-category:after, li.product:after {
    height: 7.5vw;
  }
}
@media only screen and (min-width: 960px) {
  li.product-category, li.product {
    padding: 1.5rem 3rem;
  }
  li.product-category:hover, li.product:hover {
    box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.15);
    transform: translateY(-5px);
  }
}
li.product-category a, li.product a {
  width: 100%;
  text-decoration: none;
}
li.product-category .attachment-woocommerce_thumbnail, li.product .attachment-woocommerce_thumbnail,
li.product-category .woocommerce-placeholder,
li.product .woocommerce-placeholder {
  aspect-ratio: 1;
  object-fit: contain;
  width: 50%;
  filter: drop-shadow(8px 8px 10px rgba(0, 0, 0, 0.5));
}
@media only screen and (min-width: 960px) {
  li.product-category .attachment-woocommerce_thumbnail, li.product .attachment-woocommerce_thumbnail,
  li.product-category .woocommerce-placeholder,
  li.product .woocommerce-placeholder {
    transition: all 0.2s ease-in-out;
    margin-left: auto;
    margin-right: auto;
  }
}
li.product-category .woocommerce-loop-product__title, li.product .woocommerce-loop-product__title {
  font-size: 2rem;
  color: #fff;
  margin-bottom: 5px;
  order: -5;
}
li.product-category .woocommerce-loop-product__title + p, li.product .woocommerce-loop-product__title + p {
  order: -2;
  color: #fff;
}
li.product-category .price, li.product .price {
  font-size: 1.4rem;
  font-weight: 400;
  color: #999;
  /* For sale item */
}
li.product-category .price ins, li.product .price ins {
  font-weight: 700;
  color: #fc6c0f;
  text-decoration: none;
}
li.product-category p, li.product p {
  line-height: 1.3;
  color: hsl(0, 0%, 40%);
  font-weight: 500;
  font-size: 1.3rem;
}

li.product-category img {
  aspect-ratio: 16/9;
  object-fit: cover;
  width: 100%;
  aspect-ratio: 1rem;
}
@media only screen and (min-width: 960px) {
  li.product-category {
    transition: all 0.2s ease-in-out;
    margin-left: auto;
    margin-right: auto;
  }
}
li.product-category .woocommerce-loop-category__title {
  font-size: 2rem;
  color: #c43d0a;
  margin-block: 1rem;
}
li.product-category:after {
  height: 70%;
}

/* Added to cart button */
.shop-loop-categories {
  order: -10;
}

.category-tag {
  font-size: 1.2rem;
  background-color: #ffecd4;
  padding: 0.4rem 0.8rem;
  border-radius: 0.4rem;
  text-decoration: none;
  color: #fc6c0f;
}
.category-tag:hover {
  color: #441306;
  background-color: #ffecd4;
}

/* Single Product Layout */
.single-product .product-primary-information {
  background-color: hsl(0, 0%, 97%);
  padding: 0 2.5%;
}
@media only screen and (min-width: 670px) {
  .single-product .product-primary-information {
    padding: 0 5%;
  }
}

/* Simple AND Variable Product */
div.product {
  position: relative;
  width: 100%;
  display: flex;
  flex-flow: row wrap;
  /* Common Product Description / Summary */
}
div.product .summary {
  position: relative;
}
div.product .summary > * {
  margin-bottom: 15px;
}
div.product .summary > *:last-child {
  margin-bottom: 0;
}
@media only screen and (min-width: 670px) {
  div.product .summary {
    flex: 1 1 0;
  }
}
div.product .product_title {
  font-size: 3rem;
}
div.product .price {
  font-size: 2rem;
  font-weight: 700;
}
div.product .woocommerce-product-details__short-description {
  padding: 20px 10px;
  background-color: hsl(0, 0%, 100%);
  border-radius: 5px;
  border: 1px solid hsl(0, 0%, 90%);
}
@media only screen and (min-width: 670px) {
  div.product .woocommerce-product-details__short-description {
    padding: 20px;
  }
}
div.product .woocommerce-product-details__short-description > *:last-child {
  margin-bottom: 0;
}

/* Common Product Page Gallery */
.woocommerce-product-gallery img {
  display: block;
  width: 100%;
  height: auto;
  box-shadow: none;
}
.woocommerce-product-gallery div.thumbnails {
  padding-top: 1em;
}
.woocommerce-product-gallery.woocommerce-product-gallery {
  position: relative;
  margin-bottom: 40px;
  display: flex;
  flex-flow: row wrap;
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery.woocommerce-product-gallery {
    flex: 1 1 0;
    margin-right: 50px;
    flex-flow: row-reverse nowrap;
    max-width: 42vw;
  }
}
.woocommerce-product-gallery.woocommerce-product-gallery .woocommerce-product-gallery__image {
  background-color: transparent;
}
.woocommerce-product-gallery.woocommerce-product-gallery .woocommerce-product-gallery__image a > img {
  height: 400px;
  object-fit: contain;
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery.woocommerce-product-gallery .woocommerce-product-gallery__image a > img {
    height: 500px;
  }
}
.woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
  transition: all cubic-bezier(0.795, -0.035, 0, 1) 0.5s;
  margin: 0;
  padding: 0;
}
.woocommerce-product-gallery .woocommerce-product-gallery__wrapper .zoomImg {
  background-color: #fff;
  opacity: 0;
}
.woocommerce-product-gallery .woocommerce-product-gallery__image--placeholder {
  border: 1px solid #f2f2f2;
}
.woocommerce-product-gallery .woocommerce-product-gallery__image:nth-child(n+2) {
  width: 25%;
  display: inline-block;
}
.woocommerce-product-gallery .woocommerce-product-gallery__trigger {
  position: absolute;
  top: 0.5em;
  right: 0.5em;
  font-size: 2em;
  z-index: 9;
  width: 36px;
  height: 36px;
  background: #fff;
  text-indent: -9999px;
  border-radius: 100%;
  box-sizing: content-box;
}
.woocommerce-product-gallery .woocommerce-product-gallery__trigger::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border: 2px solid #000;
  border-radius: 100%;
  position: absolute;
  top: 9px;
  left: 9px;
  box-sizing: content-box;
}
.woocommerce-product-gallery .woocommerce-product-gallery__trigger::after {
  content: "";
  display: block;
  width: 2px;
  height: 8px;
  background: #000;
  border-radius: 6px;
  position: absolute;
  top: 19px;
  left: 22px;
  transform: rotate(-45deg);
  box-sizing: content-box;
}
.woocommerce-product-gallery .flex-control-thumbs {
  zoom: 1;
  margin: 0;
  padding: 0;
  align-self: flex-start;
  margin-top: 30px;
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery .flex-control-thumbs {
    width: 80px;
    max-width: 80px;
    min-width: 80px;
  }
}
.woocommerce-product-gallery .flex-control-thumbs li {
  padding: 0 10px 10px;
  float: left;
  margin: 0;
  list-style: none;
}
.woocommerce-product-gallery .flex-control-thumbs li img {
  cursor: pointer;
  opacity: 0.5;
  margin: 0;
  width: 40px;
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery .flex-control-thumbs li img {
    width: 80px;
  }
}
.woocommerce-product-gallery .flex-control-thumbs li img:hover {
  opacity: 1;
}
.woocommerce-product-gallery .flex-control-thumbs .slick-list {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery .flex-control-thumbs .slick-list {
    flex-direction: column;
  }
}
.woocommerce-product-gallery .flex-control-thumbs .slick-current img {
  opacity: 1;
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery .flex-control-thumbs .slick-current img {
    box-shadow: 0 0 0 3px #fff, 0 0 0 4px #ccc;
  }
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery .flex-control-thumbs .slick-next {
    transform: rotate(90deg) translateY(50%);
    top: auto;
    bottom: -30px;
    left: 50%;
  }
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery .flex-control-thumbs .slick-prev {
    transform: rotate(90deg) translateY(50%);
    top: -30px;
    left: 50%;
  }
}

/* Variable Product */
div.product-type-variable {
  /* For variations */
  /* After variation select */
}
div.product-type-variable table.variations {
  table-layout: fixed;
  margin-bottom: 10px;
}
div.product-type-variable table.variations tbody {
  vertical-align: top;
  border: 0;
}
div.product-type-variable table.variations td {
  border: 0;
}
div.product-type-variable table.variations .label {
  width: 120px;
}
div.product-type-variable table.variations .value {
  width: auto;
}
div.product-type-variable table.variations .value select {
  width: 100%;
}
div.product-type-variable table.variations .value .reset_variations {
  display: none !important;
}
div.product-type-variable .single_variation_wrap > * {
  margin-bottom: 15px;
}
div.product-type-variable .single_variation_wrap .single_variation {
  padding: 20px 10px;
  background-color: hsl(0, 0%, 100%);
  border-radius: 5px;
  border: 1px solid hsl(0, 0%, 90%);
}
@media only screen and (min-width: 670px) {
  div.product-type-variable .single_variation_wrap .single_variation {
    padding: 20px;
  }
}
div.product-type-variable .single_variation_wrap .woocommerce-variation-price {
  border-top: 1px solid #f1f1f1;
  padding-top: 20px;
  margin-top: 20px;
}
div.product-type-variable .single_variation_wrap .woocommerce-variation-price .price {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}
div.product-type-variable .single_variation_wrap .woocommerce-variation-price .price:before {
  content: "Price";
  display: inline-block;
  width: 120px;
  margin-right: 6px;
}
div.product-type-variable .single_variation_wrap .woocommerce-variation-price .price del {
  font-size: 1.2rem;
  opacity: 0.6;
  margin-right: 3px;
}

/* Quantity and Add to cart module */
div.product-type-variable .woocommerce-variation-add-to-cart, div.product-type-simple form.cart {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  padding: 15px 0;
}
div.product-type-variable .woocommerce-variation-add-to-cart input.qty, div.product-type-simple form.cart input.qty {
  height: 100%;
  width: 40px;
}
div.product-type-variable .woocommerce-variation-add-to-cart .quantity, div.product-type-simple form.cart .quantity {
  position: relative;
  z-index: 2;
  display: flex;
  flex-flow: row nowrap;
  flex: 0 0 40px;
}
div.product-type-variable .woocommerce-variation-add-to-cart .quantity input, div.product-type-simple form.cart .quantity input {
  border: 0;
  border-top: 1px solid hsl(0, 0%, 80%);
  border-bottom: 1px solid hsl(0, 0%, 80%);
  text-align: center;
  border-radius: 0;
  z-index: 1;
  /* Hide HTML5 Up and Down arrows. */
}
div.product-type-variable .woocommerce-variation-add-to-cart .quantity input[type=number]::-webkit-outer-spin-button, div.product-type-simple form.cart .quantity input[type=number]::-webkit-outer-spin-button, div.product-type-variable .woocommerce-variation-add-to-cart .quantity input[type=number]::-webkit-inner-spin-button, div.product-type-simple form.cart .quantity input[type=number]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
div.product-type-variable .woocommerce-variation-add-to-cart .quantity input[type=number], div.product-type-simple form.cart .quantity input[type=number] {
  -moz-appearance: textfield;
}
div.product-type-variable .woocommerce-variation-add-to-cart .minus, div.product-type-simple form.cart .minus,
div.product-type-variable .woocommerce-variation-add-to-cart .plus,
div.product-type-simple form.cart .plus {
  font-size: 20px;
  width: 40px;
  height: 40px;
  padding: 0;
  font-weight: 700;
  border: 1px solid hsl(0, 0%, 80%);
}
div.product-type-variable .woocommerce-variation-add-to-cart .minus, div.product-type-simple form.cart .minus {
  border-radius: 4px 0 0 4px;
}
div.product-type-variable .woocommerce-variation-add-to-cart .plus, div.product-type-simple form.cart .plus {
  border-radius: 0 4px 4px 0;
}
div.product-type-variable .woocommerce-variation-add-to-cart .button.single_add_to_cart_button, div.product-type-simple form.cart .button.single_add_to_cart_button {
  flex: 1 1 0;
  margin-left: 15px;
}

/* Woocommerce Tabs */
.woocommerce .woocommerce-tabs {
  width: 100%;
}

/* Related Products */
.related.products {
  position: relative;
  width: 100%;
  padding: 50px 2.5%;
}
@media only screen and (min-width: 670px) {
  .related.products {
    padding: 50px 5%;
  }
}
.related.products > h2 {
  position: relative;
  text-align: center;
  font-size: 2.8rem;
}
.related.products .products {
  display: flex;
  flex-flow: row wrap;
}
.related.products .products > * {
  width: calc((100% - 20px / 2 * (2 - 1)) / 2);
  margin-right: 10px;
}
@media only screen and (max-width: 670px) {
  .related.products .products > * {
    margin-bottom: 10px;
  }
}
@media only screen and (max-width: 670px) {
  .related.products .products > *:nth-child(2n) {
    margin-right: 0;
  }
}
@media only screen and (min-width: 670px) {
  .related.products .products > * {
    width: calc((100% - 20px * (4 - 1)) / 4);
    margin-right: 20px;
  }
  .related.products .products > *:nth-child(4n) {
    margin-right: 0;
  }
}

/* Single product add to any plugin */
.summary .addtoany_header {
  width: 100%;
}
@media only screen and (max-width: 670px) {
  .summary .addtoany_header {
    text-align: center;
  }
}
@media only screen and (min-width: 670px) {
  .summary .addtoany_header {
    float: left;
    line-height: 30px;
    width: 120px;
  }
}
.summary .a2a_kit {
  position: relative;
  display: flex;
  flex-wrap: wrap;
}
@media only screen and (max-width: 670px) {
  .summary .a2a_kit {
    width: 100%;
    margin-top: -10px;
    padding-bottom: 30px;
    justify-content: center;
  }
}
@media only screen and (min-width: 670px) {
  .summary .a2a_kit {
    left: 10px;
  }
}

/* Woo Cart
 ============================================= */
/* Structure */
.woocommerce-cart .woocommerce {
  padding: 50px 3vw 80px;
  width: 100%;
  display: flex;
  flex-flow: row wrap;
}
@media only screen and (min-width: 960px) {
  .woocommerce-cart .woocommerce {
    padding: 50px 5% 80px;
  }
}

.woocommerce-cart .woocommerce-cart-form {
  flex: 1 1 100%;
}
@media only screen and (min-width: 960px) {
  .woocommerce-cart .woocommerce-cart-form {
    margin-right: 5vw;
    flex: 2 1 0;
  }
}
.woocommerce-cart .cart-collaterals {
  flex: 1 1 100%;
}
@media only screen and (min-width: 960px) {
  .woocommerce-cart .cart-collaterals {
    flex: 1 1 0;
  }
}

/* General Table */
.shop_table {
  background-color: #fff;
  font-size: 1.4rem;
  table-layout: fixed;
  overflow: hidden;
}
.shop_table p {
  margin: 0;
}
.shop_table thead {
  color: hsl(0, 0%, 60%);
  font-size: 1.2rem;
  text-transform: uppercase;
  border-bottom: 5px solid #eee;
}
.shop_table th {
  padding: 8px 10px;
  font-weight: 700;
  border-top: 1px solid #eee;
}
.shop_table td {
  padding: 15px 10px;
}
@media only screen and (min-width: 960px) {
  .shop_table td {
    padding: 25px 15px;
  }
}
.shop_table td:before {
  text-transform: uppercase;
  font-size: 1.2rem;
  color: #999;
}
.shop_table td.product-name {
  font-weight: 700;
  color: #d55503;
  font-size: 1.4rem;
  width: auto;
  line-height: 2.2rem;
}
.shop_table td.product-name a {
  color: hsl(0, 0%, 30%);
  font-weight: 700;
}
.shop_table td.product-name p {
  color: hsl(0, 0%, 60%);
  font-size: 1.2rem;
  margin-bottom: 15px;
  font-weight: 400;
}
.shop_table td.product-name p:last-child {
  margin-bottom: 0;
}
.shop_table .product-quantity {
  width: 100%;
}
@media only screen and (min-width: 670px) {
  .shop_table .product-quantity {
    width: 100px;
  }
}
.shop_table .product-quantity input {
  width: 50px;
  text-align: center;
}
@media only screen and (min-width: 670px) {
  .shop_table .product-quantity input {
    width: 80%;
    text-align: left;
  }
}
@media only screen and (min-width: 670px) {
  .shop_table .product-price {
    width: 100px;
  }
  .shop_table .product-subtotal {
    width: 100px;
  }
}

/* Cart Table */
table.cart {
  /* Mobile Table */
}
table.cart .product-remove {
  font-weight: 700;
  padding: 10px;
}
@media only screen and (min-width: 670px) {
  table.cart .product-remove {
    width: 30px;
  }
}
table.cart .product-remove a {
  width: 26px;
  height: 26px;
  background-color: #9e1c25;
  border-radius: 50%;
  font-size: 0;
  color: #fff;
  margin: 0 0 0 auto;
  font-size: 0;
}
table.cart .product-remove a:hover,
table.cart .product-remove a a:hover {
  text-decoration: none;
}
@media only screen and (min-width: 960px) {
  table.cart .product-remove a {
    width: 20px;
    height: 20px;
    opacity: 0.6;
  }
  table.cart .product-remove a:hover {
    opacity: 1;
    text-decoration: none;
  }
}
table.cart .product-remove a:after {
  content: "\ea0a";
  font-size: 14px;
  font-weight: 700;
}
@media only screen and (min-width: 670px) {
  table.cart .product-thumbnail {
    width: 100px;
    text-align: center;
  }
  table.cart .product-thumbnail img {
    width: 80px;
    height: 80px;
    object-fit: contain;
    padding: 5px;
  }
}
table.cart .actions {
  padding: 20px;
  border-top: 3px solid #eee;
  *zoom: 1;
}
table.cart .actions::after, table.cart .actions::before {
  content: " ";
  display: table;
}
table.cart .actions::after {
  clear: both;
}
table.cart .actions .button {
  margin: 0;
  font-size: 1.3rem;
}
table.cart .actions .coupon {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  float: left;
}
table.cart .actions .coupon label[for=coupon_code] {
  display: none;
}
table.cart .actions button[name=update_cart] {
  float: right;
}
table.cart .actions #coupon_code {
  width: 50%;
}
@media only screen and (min-width: 960px) {
  table.cart .actions #coupon_code {
    width: auto;
  }
}
@media only screen and (max-width: 670px) {
  table.cart tbody tr.cart_item {
    border: 1px solid #eee;
    margin-bottom: 20px;
    border-radius: 10px;
  }
  table.cart tbody tr.cart_item td {
    border-color: #f5f5f5;
  }
}

/* Variation text within table */
.variation,
.wc-item-meta {
  margin: 0;
}
.variation .wc-item-meta-label,
.variation dt,
.wc-item-meta .wc-item-meta-label,
.wc-item-meta dt {
  margin-top: 10px;
}
.variation dd,
.wc-item-meta dd {
  margin: 0;
}

/* Cart Totals Table */
.cart_totals {
  background-color: #f7f7f7;
  padding: 5px 20px 20px;
}
.cart_totals .shop_table {
  background-color: transparent;
  border-radius: 0;
  box-shadow: 0 0 0 0 transparent;
  margin-bottom: 10px;
}
@media only screen and (min-width: 670px) {
  .cart_totals .woocommerce-shipping-totals {
    width: 200%;
  }
}
.cart_totals > h2 {
  display: none;
}
.cart_totals tr:first-child > * {
  border-top: 0;
}
.cart_totals td,
.cart_totals th {
  padding: 12px 0;
}
.cart_totals th {
  width: auto;
  border-top: 1px solid #eee;
  color: #666;
}
.cart_totals td {
  text-align: right;
}
.cart_totals .woocommerce-shipping-destination {
  line-height: 20px;
  font-size: 1.2rem;
  margin: 10px 0;
  opacity: 0.8;
}
.cart_totals .woocommerce-shipping-destination strong {
  display: block;
}
.cart_totals .checkout-button i {
  font-size: 1.4rem;
}

#shipping_method {
  font: 700 1.4rem "Outfit", sans-serif;
}
#shipping_method input[type=hidden] + label, #shipping_method input[type=radio]:checked + label {
  border-radius: 7px;
  border: 2px solid #712d01;
}
#shipping_method input[type=radio] {
  display: none;
}
#shipping_method input[type=hidden] {
  display: none;
}
#shipping_method label {
  width: 100%;
  text-transform: capitalize;
}

.cart-empty {
  width: 100%;
  text-align: center;
}

.return-to-shop {
  width: 100%;
  text-align: center;
}

.woocommerce-checkout:not(.woocommerce-order-received) .entry,
.woocommerce-checkout:not(.woocommerce-order-received) .entry-content {
  padding: 0;
}
.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce {
  padding: 0 5% 50px;
  max-width: none;
}
@media only screen and (min-width: 960px) {
  .woocommerce-checkout:not(.woocommerce-order-received) .woocommerce {
    padding: 0 5% 50px;
  }
}
.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce .woocommerce-form-login-toggle {
  flex: 1 1 100%;
}
.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce h3, .woocommerce-checkout:not(.woocommerce-order-received) .woocommerce form.woocommerce-checkout .col-1 h4, .woocommerce-checkout:not(.woocommerce-order-received) .woocommerce form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .woocommerce-checkout:not(.woocommerce-order-received) .woocommerce h4, form.woocommerce-checkout .checkout_coupon .woocommerce-checkout:not(.woocommerce-order-received) .woocommerce h4 {
  margin-bottom: 20px;
}
.woocommerce-checkout:not(.woocommerce-order-received) #ship-to-different-address span {
  font-size: 1.6rem;
  font-weight: 400;
}

form.woocommerce-checkout .col2-set {
  display: flex;
  flex-flow: row wrap;
}
form.woocommerce-checkout .col2-set > * {
  width: 100%;
  margin-bottom: 30px 2;
}
@media only screen and (min-width: 670px) {
  form.woocommerce-checkout .col2-set > * {
    width: calc((100% - 30px 2 * (2 - 1)) / 2);
    margin-right: 30px 2;
  }
  form.woocommerce-checkout .col2-set > *:nth-child(2n) {
    margin-right: 0;
  }
}
@media only screen and (min-width: 670px) {
  form.woocommerce-checkout .col2-set > *:nth-child(1) {
    flex: 3 1 0;
  }
  form.woocommerce-checkout .col2-set > *:nth-child(2) {
    flex: 2 1 0;
  }
}
form.woocommerce-checkout .col-1, form.woocommerce-checkout .checkout_coupon {
  margin-bottom: 50px;
}
form.woocommerce-checkout .col-1 > *, form.woocommerce-checkout .checkout_coupon > * {
  margin-bottom: 25px;
}
form.woocommerce-checkout .col-1 > *:last-child, form.woocommerce-checkout .checkout_coupon > *:last-child {
  margin-bottom: 0;
}
@media only screen and (max-width: 670px) {
  form.woocommerce-checkout .col-1, form.woocommerce-checkout .checkout_coupon {
    padding: 0;
  }
}
form.woocommerce-checkout .col-1 h4, form.woocommerce-checkout .checkout_coupon h4 {
  border-top: 1px solid hsl(0, 0%, 90%);
  padding-top: 50px;
  margin-top: 50px;
}
form.woocommerce-checkout .col-2 {
  padding: 30px 10px;
  align-self: flex-start;
}
@media only screen and (min-width: 960px) {
  form.woocommerce-checkout .col-2 {
    padding: 0;
  }
}

@media only screen and (min-width: 960px) {
  #order-review-wrapper {
    border-left: 1px solid hsl(0, 0%, 95%);
    padding-left: 50px;
    margin-left: 50px;
    max-width: 400px;
  }
}

/* Ship to a different address */
.woocommerce-form__label-for-checkbox span {
  font-size: 1.6rem;
  font-weight: 700;
  font-family: "Outfit", sans-serif;
  letter-spacing: 0;
}

/* Select shipping method
--------------------------------------------- */
.checkout-select-shipping-method {
  border-top: 1px solid hsl(0, 0%, 85%);
  padding-top: 60px;
  margin-top: 60px;
}

/* Payment method
--------------------------------------------- */
.woocommerce-checkout-review-order h4 {
  font-weight: 700;
}

/* Checkout Page Order Summary Table
--------------------------------------------- */
.shop_table.woocommerce-checkout-review-order-table .product-total,
.shop_table.woocommerce-checkout-review-order-table tfoot td {
  width: 80px;
  text-align: right;
  vertical-align: top;
}
.shop_table.woocommerce-checkout-review-order-table thead {
  display: none;
}
.shop_table.woocommerce-checkout-review-order-table th {
  padding: 8px 0;
}
.shop_table.woocommerce-checkout-review-order-table td {
  font-size: 13px;
  line-height: 1.3;
  padding: 13px 0;
}
.shop_table.woocommerce-checkout-review-order-table .variation {
  overflow: hidden;
  max-height: 0;
}
.shop_table.woocommerce-checkout-review-order-table .variation p {
  font-size: 12px;
}
.shop_table.woocommerce-checkout-review-order-table .variation--active {
  max-height: 500px;
}
.shop_table.woocommerce-checkout-review-order-table .order-total {
  border-bottom: 4px double hsl(0, 0%, 75%);
}
.shop_table.woocommerce-checkout-review-order-table .product-name {
  cursor: pointer;
}
.shop_table.woocommerce-checkout-review-order-table .product-name:hover {
  color: #8a3702;
}

/* Payment Section
--------------------------------------------- */
#payment {
  /* To select saved payment methods */
}
#payment .wc-saved-payment-methods {
  margin: 15px 0;
}
#payment .wc-saved-payment-methods label {
  padding: 0.5rem 1rem;
}
#payment .wc-saved-payment-methods label:hover {
  background-color: #e6e6e6;
}

input[id^=payment_method] {
  display: none;
}
input[id^=payment_method]:checked + label {
  background-color: #d55503;
  color: #fff;
  border-radius: 7px 7px 0 0;
  border: 0;
}

.wc_payment_methods {
  margin-bottom: 25px;
}

.wc_payment_method {
  margin-bottom: 15px;
}
.wc_payment_method > label {
  cursor: pointer;
  width: 100%;
  text-align: left;
  border: 1px solid hsl(0, 0%, 80%);
  border-radius: 7px;
  text-transform: none;
  font-size: 1.6rem;
}
.wc_payment_method > label:hover {
  border: 1px solid hsl(0, 0%, 70%);
}
.wc_payment_method > label img {
  float: right;
}

.payment_box {
  border: 1px solid hsl(0, 0%, 88%);
  border-top: 0;
  border-radius: 0 0 7px 7px;
  padding: 20px;
  background-color: hsl(0, 0%, 98%);
  /* Error inside payment */
}
@media only screen and (min-width: 960px) {
  .payment_box {
    padding: 30px 30px 20px;
  }
}
.payment_box .wc-payment-form {
  border: 0;
  padding: 0;
}
.payment_box .wc-payment-form .form-row {
  margin-bottom: 10px;
}
.payment_box .woocommerce_error {
  font-weight: 700;
  padding: 0.5rem 1rem;
  text-align: center;
}

/* For Stripe only
--------------------------------------------- */
#stripe-payment-data p {
  font-size: 1.3rem;
  line-height: 1.5;
}

label[for=payment_method_stripe] img {
  display: none;
}

/* After payment box
--------------------------------------------- */
.place-order .woocommerce-terms-and-conditions-checkbox-text {
  display: inline-flex;
}
.place-order .woocommerce-terms-and-conditions-checkbox-text a {
  margin-left: 3px;
}
.place-order p {
  font-size: 1.4rem;
  color: #666;
}

#place_order {
  width: 100%;
}

/* Errors
--------------------------------------------- */
/* Order Delivery Date Only */
#orddd_time_slot_field .select2-selection,
#orddd_time_slot_field .select2-selection__arrow {
  height: 40px;
}
#orddd_time_slot_field .select2-selection__rendered {
  line-height: 38px;
}

#payment .payment_methods > li > label img {
  display: none;
}

/* Checkout coupon */
.checkout_coupon {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: center;
}
.checkout_coupon button {
  width: 100%;
}
.checkout_coupon .form-row {
  margin-left: 0;
  margin-right: 0;
}

#order_review_heading {
  font-family: "Zalando Sans Expanded", sans-serif;
  font-weight: 700;
}

.woocommerce-checkout .woocommerce-form-login .form-row {
  width: 100%;
}

/* 1 item to review
 ============================================= */
.woocommerce-order-received .entry-title {
  font-size: 4rem;
}
.woocommerce-order-received .woocommerce-order {
  padding: 50px 5%;
  background-color: hsl(0, 0%, 97%);
}
.woocommerce-order-received .woocommerce-order > * {
  margin-bottom: 40px;
}
.woocommerce-order-received .woocommerce-order > *:last-child {
  margin-bottom: 0;
}
@media only screen and (min-width: 960px) {
  .woocommerce-order-received .woocommerce-order {
    padding: 50px 10%;
  }
}
.woocommerce-order-received .woocommerce-order-details__title {
  font-size: 2rem;
}
@media only screen and (max-width: 670px) {
  .woocommerce-order-received .woocommerce-customer-details,
  .woocommerce-order-received .woocommerce-order-details {
    padding: 0;
  }
}

/* Overview bar */
.woocommerce-order-overview {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  background-color: #fff;
  position: relative;
  margin: 0 auto;
  border-top: 3px solid #fc6c0f;
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.15);
  /* REVIEW THIS */
}
.woocommerce-order-overview > * {
  flex: 1 1 100%;
  position: relative;
  text-transform: uppercase;
  font-weight: 700;
  font-size: 1.2rem;
  padding: 10px 20px;
  border-right: 1px dotted #ddd;
  color: #888;
}
@media only screen and (min-width: 960px) {
  .woocommerce-order-overview > * {
    flex: 1 1 0;
  }
}
.woocommerce-order-overview > *:last-child {
  border-right: 0;
}
.woocommerce-order-overview > * strong {
  position: relative;
  text-transform: none;
  display: block;
  font-weight: 700;
  font-size: 1.6rem;
  color: #993d02;
  line-height: 20px;
}
.woocommerce-order-overview .deliveryDetails {
  flex: 1 1 100%;
  background-color: #d55503;
  margin: 0;
  color: #fff;
  font-size: 1.6rem;
  text-transform: capitalize;
}
@media only screen and (min-width: 960px) {
  .woocommerce-order-overview .deliveryDetails {
    text-align: center;
    flex: 1 1 50%;
  }
}
.woocommerce-order-overview .deliveryDetails > span {
  color: #fff;
}

.woocommerce-thankyou-order-received {
  text-align: center;
}

.woocommerce-table--order-details .product-total,
.woocommerce-table--order-details tfoot td {
  width: 20%;
  text-align: right;
  vertical-align: top;
}

.woocommerce-order-pay .entry-content {
  background-color: hsl(0, 0%, 97%);
}
.woocommerce-order-pay .product-quantity {
  width: auto;
}

/* Woocommerce Account Page
 ============================================= */
/* Main Structure */
.woocommerce-MyAccount-content {
  padding: 35px 17.5px;
  background-color: hsl(0, 0%, 100%);
  border-radius: 10px;
  border: 1px solid #ddd;
}
@media only screen and (min-width: 670px) {
  .woocommerce-MyAccount-content {
    padding: 35px;
  }
}

/* general woocommerce account style. For my account, logged in, and lost password */
.woocommerce-account {
  /* Woocommerce account logged in specific style*/
}
.woocommerce-account .entry-content {
  position: relative;
  background-color: hsl(0, 0%, 97%);
  padding: 30px 5%;
}
@media only screen and (min-width: 960px) {
  .woocommerce-account .entry-content {
    max-width: none;
    width: 100%;
    padding: 30px 10%;
  }
}
.woocommerce-account.logged-in .woocommerce {
  align-items: flex-start;
}
@media only screen and (min-width: 670px) {
  .woocommerce-account.logged-in .woocommerce > *:nth-child(1) {
    flex: 1 1 0;
  }
  .woocommerce-account.logged-in .woocommerce > *:nth-child(2) {
    flex: 3 1 0;
  }
}

/* My Account Navigation */
.woocommerce-MyAccount-navigation {
  background-color: #fff;
  border-radius: 10px;
  border: 1px solid #ddd;
  padding: 15px 0;
}

.woocommerce-MyAccount-navigation-link {
  border-bottom: 1px solid #eee;
  padding-bottom: 10px;
  margin-bottom: 10px;
}
.woocommerce-MyAccount-navigation-link.is-active a {
  font-weight: 700;
  color: #d55503;
}
.woocommerce-MyAccount-navigation-link a {
  display: block;
  padding: 0 12px;
  color: #888;
  font-size: 1.5rem;
  font-weight: 400;
}
.woocommerce-MyAccount-navigation-link a:hover {
  text-decoration: none;
  padding-left: 18px;
  color: #555;
}

/* Content */
.woocommerce-MyAccount-content {
  display: flex;
  flex-flow: column nowrap;
  margin: 0 auto;
}
.woocommerce-MyAccount-content em {
  opacity: 0.8;
  font-size: 1.4rem;
}
.woocommerce-MyAccount-content mark {
  position: relative;
  display: inline-block;
  border-radius: 5px;
  margin-bottom: 5px;
  background-color: hsl(0, 0%, 95%);
  font-weight: 700;
  font-size: 12px;
  padding: 3px 8px;
  color: hsl(0, 0%, 20%);
}
.woocommerce-MyAccount-content mark:hover {
  background-color: #d9d9d9;
}
.woocommerce-MyAccount-content fieldset {
  background-color: hsl(0, 0%, 99%);
  border: 1px solid hsl(0, 0%, 90%);
  padding: 10px 30px;
  margin: 20px 0;
}
.woocommerce-MyAccount-content fieldset legend {
  font-weight: 700;
  font-size: 1.6rem;
  color: hsl(0, 0%, 40%);
  padding: 0 10px;
  margin: 0 -10px;
}

/* Remove dashboard link */
.woocommerce-MyAccount-navigation-link--dashboard {
  display: none;
}

/* Password strength */
.woocommerce-password-strength {
  padding: 5px 0;
}
.woocommerce-password-strength.short {
  color: #9e1c25;
}
.woocommerce-password-strength.bad {
  color: #ff5b36;
}
.woocommerce-password-strength.good {
  color: #689447;
}
.woocommerce-password-strength.strong {
  color: #689447;
}

/* Woocommerce Account Orders Table */
.woocommerce-orders-table__cell-order-delivery-date, .woocommerce-orders-table__header-order-delivery-date {
  display: none !important;
}
@media only screen and (min-width: 960px) {
  .woocommerce-orders-table__header-order-number {
    width: 80px;
  }
  .woocommerce-orders-table__header-order-actions, .woocommerce-orders-table__header-order-status {
    width: 120px;
  }
}

.woocommerce-table--order-details td {
  padding: 15px 10px;
  line-height: 1.5;
}

/* Login
 ============================================= */
/* My account page
--------------------------------------------- */
#customer_login {
  display: flex;
  flex-flow: row wrap;
}
#customer_login > * {
  width: 100%;
  margin-bottom: 5vw;
}
@media only screen and (min-width: 670px) {
  #customer_login > * {
    width: calc((100% - 5vw * (2 - 1)) / 2);
    margin-right: 5vw;
  }
  #customer_login > *:nth-child(2n) {
    margin-right: 0;
  }
}
#customer_login .woocommerce-form-login {
  background-color: transparent;
  padding: 0;
}
#customer_login .col-1, #customer_login .checkout_coupon {
  border-bottom: 1px solid hsl(0, 0%, 85%);
  margin-bottom: 30px;
}
@media only screen and (min-width: 960px) {
  #customer_login .col-1, #customer_login .checkout_coupon {
    border-bottom: 0;
    margin-bottom: 0;
  }
}

.woocommerce-form-login {
  position: relative;
  display: flex;
  flex-flow: column nowrap;
  background-color: #fff;
  padding: 30px;
  width: 100%;
}
@media only screen and (min-width: 960px) {
  .woocommerce-form-login {
    max-width: 50vw;
    margin: 0 auto;
  }
}
.woocommerce-form-login label.woocommerce-form__label {
  float: right;
  font-size: 1.4rem;
}

.woocommerce-privacy-policy-text p {
  line-height: 1.5;
  color: hsl(0, 0%, 60%);
}

/* For lost password page */
.widget_layered_nav_filters ul {
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none outside;
  zoom: 1;
}
.widget_layered_nav_filters ul li {
  float: left;
  padding: 0 1em 1px 1px;
  list-style: none;
}
.widget_layered_nav_filters ul li a {
  color: #888;
  font-size: 1.3rem;
  text-decoration: none;
}
.widget_layered_nav_filters ul li a::before {
  display: inline-block;
  font: normal normal normal 1em/1 "baseicon";
  speak: none;
  text-transform: none;
  /* Better Font Rendering */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\ea0a";
  font-weight: 700;
  margin-right: 8px;
  width: 15px;
  height: 15px;
  background-color: #9e1c25;
  border-radius: 50%;
  font-size: 1.4rem;
  color: #fff;
}
.widget_layered_nav_filters ul li a::before:hover,
.widget_layered_nav_filters ul li a::before a:hover {
  text-decoration: none;
}

/* Interactive Cart
 ============================================= */
/* Header buttons */
#cart-items {
  position: absolute;
  width: 20px;
  height: 20px;
  background-color: #fc6c0f;
  border-radius: 50%;
  font-size: 1.4rem;
  font-weight: 700;
  top: -5px;
  right: -3px;
  color: #fff;
}
#cart-items:hover,
#cart-items a:hover {
  text-decoration: none;
}

#interactive-cart-activate {
  position: relative;
}

.interactive-cart__bg {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  z-index: -1;
  background-color: rgba(0, 0, 20, 0.5);
}

.interactive-cart-wrapper {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 99999999;
  display: none;
}

.interactive-cart {
  position: relative;
  background-color: hsl(0, 0%, 95%);
  margin: 0 0 0 auto;
  height: 100%;
  display: flex;
  flex-flow: column nowrap;
  overflow: hidden;
}
@media only screen and (min-width: 960px) {
  .interactive-cart {
    width: 40vw;
  }
}

/* Cart Header */
.interactive-cart-header {
  position: relative;
  background-color: #fff;
  padding: 20px 12px;
  flex: 0 1 0;
}
@media only screen and (min-width: 960px) {
  .interactive-cart-header {
    padding: 12px;
  }
}
.interactive-cart-header > * {
  margin: 0;
  text-align: center;
  color: #888;
}
.interactive-cart-header a:hover {
  text-decoration: none;
}
.interactive-cart-header .interactive-cart-close {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  left: 0;
  top: 0;
  color: hsl(0, 0%, 50%);
  height: 100%;
  width: 50px;
  font-size: 25px;
}
.interactive-cart-header .interactive-cart-close:hover {
  left: -3px;
  color: #777;
}

/* Mini Cart Notice */
.interactive-cart__notice {
  padding: 10px 0;
}
.interactive-cart__notice > * {
  margin-bottom: 5px;
}
.interactive-cart__notice > *:last-child {
  margin-bottom: 0;
}
.interactive-cart__notice > * {
  margin-left: 15px;
  margin-right: 15px;
}
.interactive-cart__notice.cart-item-card {
  flex-flow: column nowrap;
}
.interactive-cart__notice p {
  font-size: 13px;
  line-height: 1.5;
  font-weight: 700;
}

.message--error {
  color: #9e1c25;
}

.message--success {
  color: #689447;
}

/* Cart Item List */
.interactive-cart-items {
  flex: 1 1 0;
  padding: 20px 0;
  overflow-y: scroll;
  width: 100%;
  height: 100%;
}
@media only screen and (min-width: 960px) {
  .interactive-cart-items {
    margin-right: -17px;
    padding-right: 17px;
    /* Increase/decrease this value for cross-browser compatibility */
    box-sizing: content-box;
    /* So the width will be 100% + 17px */
  }
}

/* Cart Item */
.cart-item-card {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  flex-wrap: nowrap;
  width: 94%;
  background-color: #fff;
  border-radius: 8px;
  margin-left: 3%;
  margin-right: 3%;
  margin-bottom: 10px;
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1);
  overflow: hidden;
}
.cart-item-card > figure {
  position: relative;
  width: 80px;
  padding-top: 80px;
}
.cart-item-card > figure > img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  object-fit: cover;
}
.cart-item-card .caption {
  flex: 1 1 0;
  position: relative;
  padding: 15px;
  background-color: #fff;
}
@media only screen and (min-width: 960px) {
  .cart-item-card {
    width: 93%;
    margin-left: 5%;
    margin-right: auto;
  }
}
.cart-item-card img {
  align-self: center;
  margin: 10px;
  display: block;
  width: 100px;
  height: 100px;
  object-fit: cover;
}
.cart-item-card .caption {
  flex: 1 1 auto;
}
.cart-item-card .caption > * {
  margin-bottom: 8px;
}
.cart-item-card .caption > *:last-child {
  margin-bottom: 0;
}
.cart-item-card .caption > * {
  font-size: 1.4rem;
}
.cart-item-card .product-title {
  font-size: 1.4rem;
  font-weight: 700;
  color: #8a3702;
}
.cart-item-card .remove_from_cart_button {
  flex: 0 0 auto;
  align-self: flex-start;
  width: 40px;
  height: 40px;
  font-size: 20px;
  text-align: center;
  line-height: 40px;
  text-decoration: none;
  font-weight: 700;
  color: #9e1c25;
}

.interactive-cart-summary {
  position: relative;
  background-color: #fff;
  flex: 0 1 0;
}
.interactive-cart-summary > div {
  border-bottom: 1px solid #e5e5e5;
  padding-bottom: 5px;
  margin-bottom: 5px;
  position: relative;
  justify-content: space-between;
  padding: 8px 5%;
}
.interactive-cart-summary > div > * {
  margin-bottom: 0;
}
.interactive-cart-summary > div:last-of-type {
  margin-bottom: 0;
  border-bottom: 0;
}

.interactive-cart-summary__buttons {
  display: flex;
  flex-flow: row wrap;
}
.interactive-cart-summary__buttons > * {
  width: calc((100% - 0px / 2 * (2 - 1)) / 2);
  margin-right: 0px;
}
@media only screen and (max-width: 670px) {
  .interactive-cart-summary__buttons > * {
    margin-bottom: 0px;
  }
}
@media only screen and (max-width: 670px) {
  .interactive-cart-summary__buttons > *:nth-child(2n) {
    margin-right: 0;
  }
}
@media only screen and (min-width: 670px) {
  .interactive-cart-summary__buttons > * {
    width: calc((100% - 0px * (2 - 1)) / 2);
    margin-right: 0px;
  }
  .interactive-cart-summary__buttons > *:nth-child(2n) {
    margin-right: 0;
  }
}
.interactive-cart-summary__buttons a {
  border-radius: 0;
}
.interactive-cart-summary__buttons a:first-child {
  border-right: 1px solid #bc4b02;
}

/* If there are no products */
.no-product-text {
  position: relative;
  display: block;
  text-align: center;
  padding: 0 5%;
}

/* Woocommerce address component
 =============================================
1. Order order-received
2. My Account edit address
*/
/* Address section */
header.woocommerce-Address-title {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
header.woocommerce-Address-title h2,
header.woocommerce-Address-title h3,
header.woocommerce-Address-title form.woocommerce-checkout .col-1 h4,
form.woocommerce-checkout .col-1 header.woocommerce-Address-title h4,
header.woocommerce-Address-title form.woocommerce-checkout .checkout_coupon h4,
form.woocommerce-checkout .checkout_coupon header.woocommerce-Address-title h4 {
  margin-bottom: 0;
}
/* Addresses */
.addresses h2,
.addresses h3,
.addresses form.woocommerce-checkout .col-1 h4,
form.woocommerce-checkout .col-1 .addresses h4,
.addresses form.woocommerce-checkout .checkout_coupon h4,
form.woocommerce-checkout .checkout_coupon .addresses h4,
.woocommerce-customer-details h2,
.woocommerce-customer-details h3,
.woocommerce-customer-details form.woocommerce-checkout .col-1 h4,
form.woocommerce-checkout .col-1 .woocommerce-customer-details h4,
.woocommerce-customer-details form.woocommerce-checkout .checkout_coupon h4,
form.woocommerce-checkout .checkout_coupon .woocommerce-customer-details h4 {
  font-size: 1.8rem;
}
.addresses address,
.woocommerce-customer-details address {
  padding: 15px 7.5px;
  background-color: hsl(0, 0%, 100%);
  border-radius: 5px;
  border: 1px solid hsl(0, 0%, 90%);
  font-size: 1.4rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.5;
}
@media only screen and (min-width: 670px) {
  .addresses address,
  .woocommerce-customer-details address {
    padding: 15px;
  }
}
.addresses address:before,
.woocommerce-customer-details address:before {
  content: "Address: ";
}
.addresses address p,
.woocommerce-customer-details address p {
  margin-top: 15px;
  margin-bottom: 0;
  line-height: 1.5;
  font-size: 1.4rem;
}
.addresses address p.woocommerce-customer-details--phone:before,
.woocommerce-customer-details address p.woocommerce-customer-details--phone:before {
  content: "Phone: ";
}
.addresses address p.woocommerce-customer-details--email:before,
.woocommerce-customer-details address p.woocommerce-customer-details--email:before {
  content: "Email address: ";
}

/**
 * woocommerce-smallscreen.scss
 * Optimises the default WooCommerce frontend layout when viewed on smaller screens.
 */
/**
 * Style begins
 */
@media only screen and (max-width: 670px) {
  .woocommerce,
  .woocommerce-page {
    /**
    * General layout
    */
    /**
    * Products
    */
    /**
    * Product Details
    */
    /**
    * Cart
    */
    /**
    * Checkout
    */
    /**
    * Account
    */
  }
  .woocommerce table.shop_table_responsive thead,
  .woocommerce-page table.shop_table_responsive thead {
    display: none;
  }
  .woocommerce table.shop_table_responsive tbody tr:first-child td:first-child,
  .woocommerce-page table.shop_table_responsive tbody tr:first-child td:first-child {
    border-top: 0;
  }
  .woocommerce table.shop_table_responsive tbody th,
  .woocommerce-page table.shop_table_responsive tbody th {
    display: none;
  }
  .woocommerce table.shop_table_responsive tr,
  .woocommerce-page table.shop_table_responsive tr {
    display: block;
  }
  .woocommerce table.shop_table_responsive tr td,
  .woocommerce-page table.shop_table_responsive tr td {
    display: block;
    text-align: right !important;
  }
  .woocommerce table.shop_table_responsive tr td.order-actions,
  .woocommerce-page table.shop_table_responsive tr td.order-actions {
    text-align: left !important;
  }
  .woocommerce table.shop_table_responsive tr td::before,
  .woocommerce-page table.shop_table_responsive tr td::before {
    content: attr(data-title) ": ";
    font-weight: 700;
    float: left;
  }
  .woocommerce table.shop_table_responsive tr td.actions::before, .woocommerce table.shop_table_responsive tr td.product-remove::before,
  .woocommerce-page table.shop_table_responsive tr td.actions::before,
  .woocommerce-page table.shop_table_responsive tr td.product-remove::before {
    display: none;
  }
  .woocommerce table.shop_table_responsive tr:nth-child(2n) td,
  .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td {
    background-color: rgba(0, 0, 0, 0.025);
  }
  .woocommerce table.my_account_orders tr td.order-actions,
  .woocommerce-page table.my_account_orders tr td.order-actions {
    text-align: left;
  }
  .woocommerce table.my_account_orders tr td.order-actions::before,
  .woocommerce-page table.my_account_orders tr td.order-actions::before {
    display: none;
  }
  .woocommerce table.my_account_orders tr td.order-actions .button,
  .woocommerce-page table.my_account_orders tr td.order-actions .button {
    float: none;
    margin: 0.125em 0.25em 0.125em 0;
  }
  .woocommerce .col2-set .col-1, .woocommerce .col2-set .checkout_coupon,
  .woocommerce .col2-set .col-2,
  .woocommerce-page .col2-set .col-1,
  .woocommerce-page .col2-set .checkout_coupon,
  .woocommerce-page .col2-set .col-2 {
    float: none;
    width: 100%;
  }
  .woocommerce #content div.product div.images,
  .woocommerce #content div.product div.summary,
  .woocommerce div.product div.images,
  .woocommerce div.product div.summary,
  .woocommerce-page #content div.product div.images,
  .woocommerce-page #content div.product div.summary,
  .woocommerce-page div.product div.images,
  .woocommerce-page div.product div.summary {
    float: none;
    width: 100%;
  }
  .woocommerce #content table.cart .product-thumbnail,
  .woocommerce table.cart .product-thumbnail,
  .woocommerce-page #content table.cart .product-thumbnail,
  .woocommerce-page table.cart .product-thumbnail {
    display: none;
  }
  .woocommerce #content table.cart td.actions,
  .woocommerce table.cart td.actions,
  .woocommerce-page #content table.cart td.actions,
  .woocommerce-page table.cart td.actions {
    text-align: left;
  }
  .woocommerce #content table.cart td.actions .coupon,
  .woocommerce table.cart td.actions .coupon,
  .woocommerce-page #content table.cart td.actions .coupon,
  .woocommerce-page table.cart td.actions .coupon {
    float: none;
    *zoom: 1;
    padding-bottom: 0.5em;
  }
  .woocommerce #content table.cart td.actions .coupon::after, .woocommerce #content table.cart td.actions .coupon::before,
  .woocommerce table.cart td.actions .coupon::after,
  .woocommerce table.cart td.actions .coupon::before,
  .woocommerce-page #content table.cart td.actions .coupon::after,
  .woocommerce-page #content table.cart td.actions .coupon::before,
  .woocommerce-page table.cart td.actions .coupon::after,
  .woocommerce-page table.cart td.actions .coupon::before {
    content: " ";
    display: table;
  }
  .woocommerce #content table.cart td.actions .coupon::after,
  .woocommerce table.cart td.actions .coupon::after,
  .woocommerce-page #content table.cart td.actions .coupon::after,
  .woocommerce-page table.cart td.actions .coupon::after {
    clear: both;
  }
  .woocommerce #content table.cart td.actions .coupon .button,
  .woocommerce #content table.cart td.actions .coupon .input-text,
  .woocommerce #content table.cart td.actions .coupon input,
  .woocommerce table.cart td.actions .coupon .button,
  .woocommerce table.cart td.actions .coupon .input-text,
  .woocommerce table.cart td.actions .coupon input,
  .woocommerce-page #content table.cart td.actions .coupon .button,
  .woocommerce-page #content table.cart td.actions .coupon .input-text,
  .woocommerce-page #content table.cart td.actions .coupon input,
  .woocommerce-page table.cart td.actions .coupon .button,
  .woocommerce-page table.cart td.actions .coupon .input-text,
  .woocommerce-page table.cart td.actions .coupon input {
    width: 48%;
    box-sizing: border-box;
  }
  .woocommerce #content table.cart td.actions .coupon .button.alt,
  .woocommerce #content table.cart td.actions .coupon .input-text + .button,
  .woocommerce table.cart td.actions .coupon .button.alt,
  .woocommerce table.cart td.actions .coupon .input-text + .button,
  .woocommerce-page #content table.cart td.actions .coupon .button.alt,
  .woocommerce-page #content table.cart td.actions .coupon .input-text + .button,
  .woocommerce-page table.cart td.actions .coupon .button.alt,
  .woocommerce-page table.cart td.actions .coupon .input-text + .button {
    float: right;
  }
  .woocommerce #content table.cart td.actions .button,
  .woocommerce table.cart td.actions .button,
  .woocommerce-page #content table.cart td.actions .button,
  .woocommerce-page table.cart td.actions .button {
    display: block;
    width: 100%;
  }
  .woocommerce .cart-collaterals .cart_totals,
  .woocommerce .cart-collaterals .cross-sells,
  .woocommerce .cart-collaterals .shipping_calculator,
  .woocommerce-page .cart-collaterals .cart_totals,
  .woocommerce-page .cart-collaterals .cross-sells,
  .woocommerce-page .cart-collaterals .shipping_calculator {
    width: 100%;
    float: none;
    text-align: left;
  }
  .woocommerce.woocommerce-checkout form.login .form-row,
  .woocommerce-page.woocommerce-checkout form.login .form-row {
    width: 100%;
    float: none;
  }
  .woocommerce #payment .terms,
  .woocommerce-page #payment .terms {
    text-align: left;
    padding: 0;
  }
  .woocommerce #payment #place_order,
  .woocommerce-page #payment #place_order {
    float: none;
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 1em;
  }
  .woocommerce .lost_reset_password .form-row-first,
  .woocommerce .lost_reset_password .form-row-last,
  .woocommerce-page .lost_reset_password .form-row-first,
  .woocommerce-page .lost_reset_password .form-row-last {
    width: 100%;
    float: none;
    margin-right: 0;
  }
  .woocommerce-account .woocommerce-MyAccount-content,
  .woocommerce-account .woocommerce-MyAccount-navigation {
    float: none;
    width: 100%;
  }
  /**
  * Twenty Thirteen specific styles
  */
  .single-product .twentythirteen .panel {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}
#woocommerce-product-search-field {
  position: fixed;
  width: 100%;
  height: 70px;
  border: 0;
  border-radius: 0;
  background-color: hsl(0, 0%, 95%);
  text-align: center;
  font-size: 2.4rem;
  max-width: 0;
  left: 50%;
  right: 50%;
  padding: 0;
}
#woocommerce-product-search-field:focus, #woocommerce-product-search-field:hover {
  background-color: #fc6c0f;
  color: #fff;
  box-shadow: none;
}
#woocommerce-product-search-field:focus::placeholder, #woocommerce-product-search-field:hover::placeholder {
  color: #fff;
}
.woocommerce-product-search--active #woocommerce-product-search-field {
  max-width: 100%;
  left: 0;
  right: 0;
  padding: 0 5%;
}

#woocommerce-product-search-button {
  -webkit-appearance: none;
  background: transparent;
  padding: 0;
}
#woocommerce-product-search-button:hover {
  background: transparent;
}
#woocommerce-product-search-button i {
  font-weight: 700;
  width: 40px;
  height: 40px;
  line-height: 40px;
}

/* Make woocommerce variations table full width*/
table.variations tr {
  display: flex;
  flex-flow: column nowrap;
}
table.variations tr td {
  padding: 0;
}

/* wapf checkbox prices */
.wapf-pricing-hint {
  float: right !important;
}

.wapf-input[type=checkbox] + .wapf-label-text {
  padding-left: 0;
}

/* WAPF Radio Buttons */
.wapf-radios {
  display: flex;
  flex-flow: row wrap;
}
.wapf-radios > * {
  margin-right: 6px;
}
.wapf-radios > *:last-child {
  margin-right: 0;
}

.wapf-radios .wapf-input-label {
  height: 100%;
}
.wapf-radios .wapf-checkable {
  width: calc(50% - 6px);
  margin-bottom: 6px;
}
.wapf-radios .wapf-checkable.wapf-checked .wapf-label-text {
  border: 1px solid #a34102;
}
.wapf-radios .wapf-checkable input[type=radio] {
  display: none;
}
.wapf-radios .wapf-label-text {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  border: 1px solid hsl(0, 0%, 80%);
}
@media only screen and (max-width: 670px) {
  .wapf-radios .wapf-label-text {
    flex-direction: column;
  }
}

/* Woocommerce Global Styles */
.woocommerce {
  *zoom: 1;
}
.woocommerce::after, .woocommerce::before {
  content: " ";
  display: table;
}
.woocommerce::after {
  clear: both;
}

/* Newly discovered global styles */
.woocommerce-column__title {
  margin-bottom: 10px;
}

/* Global forms */
/* Button styles for woocommerce */
/* Add to Cart Button AKA Main button */
.checkout-button,
a.add_to_cart_button,
button.add_to_cart_button,
button[type=submit] {
  margin-bottom: 0;
  display: block;
}

@media only screen and (max-width: 670px) {
  .wc-backward {
    display: block;
  }
}

/* BREADCRUMB */
.woocommerce-breadcrumb {
  font-size: 1.3rem;
  text-transform: uppercase;
  /* Archive Page */
  /* Single Product Breadcrumbs */
}
.woocommerce.archive .woocommerce-breadcrumb {
  letter-spacing: 1px;
}
.single-product .woocommerce-breadcrumb {
  border-bottom: 2px solid #f1f1f1;
  padding-bottom: 20px;
  margin-bottom: 20px;
  width: 100%;
  color: #888;
  font-size: 1.4rem;
  padding: 20px 0;
}
@media only screen and (min-width: 670px) {
  .single-product .woocommerce-breadcrumb {
    padding: 30px 0;
  }
}
.single-product .woocommerce-breadcrumb a {
  margin: 0;
  font-weight: 700;
}

/* SALE LABEL */
.onsale {
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #fff;
}
li.product .onsale {
  display: table;
  margin: -26px auto 5px;
  font-size: 12px;
  padding: 0.05rem 0.6rem;
  border-radius: 3px;
  background-color: #689447;
}
.summary .onsale {
  position: relative;
  display: inline-block;
  border-radius: 5px;
  margin-bottom: 5px;
  background-color: #689447;
  font-weight: 700;
  font-size: 12px;
  padding: 3px 8px;
}
.summary .onsale:hover {
  background-color: #507236;
}

/* Message box */
.woocommerce-notices-wrapper {
  margin: 30px auto 0;
  flex: 1 1 100%;
}
.woocommerce-account.logged-in .woocommerce-notices-wrapper {
  margin-top: 0;
}
.woocommerce-cart .woocommerce-notices-wrapper {
  margin-top: 0;
}

.woocommerce-NoticeGroup {
  margin: 30px auto 0;
  flex: 1 1 100%;
}

/* All information and messages */
.woocommerce-info,
.woocommerce-message {
  position: relative;
  border-radius: 3px;
  font-size: 1.4rem;
  line-height: 1.5;
  font-weight: 400;
  background-color: #f2f2f2;
  color: #555;
  list-style: none outside;
  width: 100%;
  margin: 0 auto 2em;
  word-wrap: break-word;
  text-align: center;
  padding: 12px;
}
@media only screen and (min-width: 960px) {
  .woocommerce-info,
  .woocommerce-message {
    margin-bottom: 30px;
    padding: 12px 24px 12px 12px;
  }
}
.woocommerce-info a,
.woocommerce-message a {
  width: 100%;
  height: auto;
  white-space: nowrap;
  border-radius: 3px;
  margin: 0 0 10px;
}
@media only screen and (min-width: 960px) {
  .woocommerce-info a,
  .woocommerce-message a {
    width: auto;
    margin: 0 10px;
  }
}
.woocommerce-info .restore-item,
.woocommerce-message .restore-item {
  display: none;
}

/* All errors */
.woocommerce-error {
  position: relative;
  border-radius: 3px;
  font-size: 1.4rem;
  line-height: 1.5;
  font-weight: 400;
  list-style: none outside;
  width: 100%;
  word-wrap: break-word;
  display: flex;
  flex-flow: column nowrap;
  padding: 12px;
  margin-bottom: 30px;
}
.woocommerce-error li {
  list-style: none outside !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
  width: 100%;
  margin-bottom: 0 !important;
}
.woocommerce-NoticeGroup-checkout .woocommerce-error li {
  margin-bottom: 10px !important;
}
.woocommerce-NoticeGroup-checkout .woocommerce-error li:last-child {
  margin-bottom: 0 !important;
}

.woocommerce-message {
  color: #fff;
  background-color: #689447;
}
.woocommerce-message a {
  background: #5c833f;
}
.woocommerce-message a:hover {
  background-color: #507236;
}

.woocommerce-info {
  color: #fff;
  background-color: #ccc;
}
.woocommerce-info a {
  background: #bfbfbf;
}
.woocommerce-info a:hover {
  background-color: #b3b3b3;
}

.woocommerce-error {
  color: #fff;
  background-color: #9e1c25;
}
.woocommerce-error a {
  background: #881820;
}
.woocommerce-error a:hover {
  background-color: #73141b;
}

/* PAGINATION */
.woocommerce-pagination {
  position: relative;
  text-align: center;
  margin: 10px 0;
  flex: 1 1 100%;
}
.woocommerce-pagination .page-numbers > * {
  margin-right: 5px;
}
.woocommerce-pagination .page-numbers > *:last-child {
  margin-right: 0;
}
.woocommerce-pagination a,
.woocommerce-pagination span {
  font-size: 1.6rem;
}
.woocommerce-pagination span {
  cursor: unset;
}
/* Woocommerce Store Notice */
.woocommerce-store-notice {
  position: fixed;
  width: 100%;
  color: #fff;
  background-color: #fc6c0f;
  text-align: center;
  margin-bottom: 0;
  padding: 12px 5%;
  z-index: 88;
  bottom: 0;
}
@media only screen and (min-width: 960px) {
  .woocommerce-store-notice {
    position: relative;
    padding: 6px 5%;
  }
}

.woocommerce-store-notice__dismiss-link {
  position: absolute;
  right: 5%;
  color: #fff;
  font-size: 18px;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLnNjc3MiLCJhYnN0cmFjdHMvX3ZhcmlhYmxlcy5zY3NzIiwiYWJzdHJhY3RzL19taXhpbnMuc2NzcyIsImFic3RyYWN0cy9fZnVuY3Rpb25zLnNjc3MiLCJhYnN0cmFjdHMvX3BsYWNlaG9sZGVycy5zY3NzIiwidmVuZG9ycy9fc2xpY2suc2NzcyIsInZlbmRvcnMvX3NsaWNrLXRoZW1lLnNjc3MiLCJ2ZW5kb3JzL19mZWF0aGVybGlnaHQuc2NzcyIsImZvbnRzL251Y2xlby5zY3NzIiwiZm9udHMvX3ZhcmlhYmxlcy5zY3NzIiwiZm9udHMvX21peGlucy5zY3NzIiwiZm9udHMvaWNvbnMuc2NzcyIsImJhc2UvX3Jlc2V0LnNjc3MiLCJiYXNlL190eXBvZ3JhcGh5LnNjc3MiLCJiYXNlL19kZWZhdWx0cy5zY3NzIiwiYmFzZS9fYW5pbWF0aW9ucy5zY3NzIiwibGF5b3V0L19ncmlkLnNjc3MiLCJsYXlvdXQvX2dzLXN0cnVjdHVyZS1sYXlvdXQuc2NzcyIsImxheW91dC9faGVhZGVyLnNjc3MiLCJsYXlvdXQvX3NpZGViYXIuc2NzcyIsImxheW91dC9fZm9vdGVyLnNjc3MiLCJsYXlvdXQvX2Rpc3RyaWJ1dG9yLnNjc3MiLCJjb21wb25lbnRzL19ncmFwaGljcy5zY3NzIiwiY29tcG9uZW50cy9fYnV0dG9ucy5zY3NzIiwiY29tcG9uZW50cy9fd2lkZ2V0LnNjc3MiLCJjb21wb25lbnRzL19mb3Jtcy5zY3NzIiwiY29tcG9uZW50cy9fbGlzdC1wYWdpbmF0aW9uLnNjc3MiLCJjb21wb25lbnRzL190aXRsZS1kaXZpZGVyLnNjc3MiLCJjb21wb25lbnRzL19vYmplY3RzLnNjc3MiLCJjb21wb25lbnRzL19iYW5uZXJzLnNjc3MiLCJjb21wb25lbnRzL19oZXJvLXNsaWRlci5zY3NzIiwiY29tcG9uZW50cy9fYmxvY2tzLnNjc3MiLCJwYWdlcy9fcG9zdC1hcmNoaXZlLnNjc3MiLCJwYWdlcy9fcG9zdC1zaW5nbGUuc2NzcyIsInBhZ2VzL180MDQtcGFnZS5zY3NzIiwidGhlbWVzL2tob296aC5zY3NzIiwidGhlbWVzL3dvb2NvbW1lcmNlLnNjc3MiLCJ0aGVtZXMvX3dvby1zdHlsZXMvYXJjaGl2ZS5zY3NzIiwidGhlbWVzL193b28tc3R5bGVzL3NpbmdsZS5zY3NzIiwidGhlbWVzL193b28tc3R5bGVzL2NhcnQuc2NzcyIsInRoZW1lcy9fd29vLXN0eWxlcy9jaGVja291dC5zY3NzIiwidGhlbWVzL193b28tc3R5bGVzL29yZGVyLXJlY2VpdmVkLnNjc3MiLCJ0aGVtZXMvX3dvby1zdHlsZXMvb3JkZXItcGF5LnNjc3MiLCJ0aGVtZXMvX3dvby1zdHlsZXMvYWNjb3VudC5zY3NzIiwidGhlbWVzL193b28tc3R5bGVzL2xvZ2luLnNjc3MiLCJ0aGVtZXMvX3dvby1zdHlsZXMvd2lkZ2V0cy5zY3NzIiwidGhlbWVzL193b28tc3R5bGVzL2ludGVyYWN0aXZlLWNhcnQuc2NzcyIsInRoZW1lcy9fd29vLXN0eWxlcy9hZGRyZXNzLnNjc3MiLCJ0aGVtZXMvX3dvby1zdHlsZXMvc21hbGxzY3JlZW4uc2NzcyIsInRoZW1lcy9fd29vLXN0eWxlcy93b29jb21tZXJjZS1wcm9kdWN0LXNlYXJjaC5zY3NzIiwidGhlbWVzL193b28tc3R5bGVzL2FkdmFuY2VkLXByb2R1Y3QtZmllbGRzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFnQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFB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QztFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtBQUNDO0VBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7QUFFQTtFQUVBO0FBRUE7RUFDQTs7O0FBR0Q7QUFDQTtBQUNDO0VBQ0E7OztBQUdEO0FBQ0E7QUFBQTtBQUFBO0VBR0M7OztBQUdEO0FBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0FBQ0E7RUFDQztFQUNBOzs7QUFHRDtBQUNDO0VBQ0E7OztBQUlEO0FBQ0M7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0FBQ0M7RUFDQTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7OztBQUdEO0FBQ0E7RUFDQztBQUNDO0lBQ0E7SUFDQTtJQUNBO0lBRUE7SUFDQTs7O0FBSUY7QUFDQTtFQUNDO0lBQ0M7OztBQzdKRjs7QUFBQTtBQUFBOztBQUFBO0FBU0E7RUFDRTtFQUNBO0VBQ0E7RUFLQTtFQUNBOztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQ0E7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFDQTtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUU7RUFDQSxrQkM1RHNCOzs7QUQrRHhCO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFLGNDakZvQjtFRGtGcEI7OztBQUlKO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0lBQ0U7O0VBRUY7SUFDRTs7O0FBR0o7RUFDRTtJQUNFOztFQUVGO0lBQ0U7OztBQUdKO0VBQ0U7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUVGO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7O0FBSUo7QUFBQTtBQUFBO0FBSUE7RUV0SUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUZxSUY7RUUxSUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUZ5SUY7RUU5SUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUY2SUY7RUV6SUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUZ1SUY7RUU1SUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNmRjtBQUFBO0FBQUE7QUFnQ0E7RUFDRSxTQTFCYTs7O0FBNkJmO0VBQ0UsU0E3Qlk7OztBQWdDZDtFQUNFLFNBaENvQjs7O0FBbUN0QjtFQUNFLFNBbkNnQjs7O0FBc0NsQjtFQUNFLFNBdENxQjs7O0FBeUN2QjtFQUNFLFNBekNjOzs7QUE0Q2hCO0VBQ0UsU0E1Q1M7OztBQStDWDtFQUNFLFNBL0N5Qjs7O0FBa0QzQjtFQUNFLFNBbER3Qjs7O0FBcUQxQjtFQUNFLFNBckRtQjs7O0FBd0RyQjtFQUNFLFNBeEQwQjs7O0FBMkQ1QjtFQUNFLFNBM0RlOzs7QUE4RGpCO0VBQ0UsU0E5RFU7OztBQWlFWjtFQUNFLFNBakVlOzs7QUFvRWpCO0VBQ0UsU0FwRWE7OztBQXVFZjtFQUNFLFNBdkVTOzs7QUEwRVg7RUFDRSxTQTFFaUI7OztBQTZFbkI7RUFDRSxTQTdFVTs7O0FBZ0ZaO0VBQ0UsU0FoRm1COzs7QUFtRnJCO0VBQ0UsU0FuRmU7OztBQXNGakI7RUFDRSxTQXRGVTs7O0FBeUZaO0VBQ0UsU0F6Rm1COzs7QUE0RnJCO0VBQ0UsU0E1RmE7OztBQStGZjtFQUNFLFNBL0ZZOzs7QUM5QmQ7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0FBQ0E7RUFDQTtBQUNBOzs7QUFFRjtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0FBQ0E7RUFDQTtBQUNBO0VBQ0E7QUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0FBQ0E7RUFDQTtBQUNBOzs7QUFFRjtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0FBQ0E7RUFDQTtBQUNBO0VBQ0E7QUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7QUFBQTtFQUVFLGFYdEVVOzs7QVd3RVo7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7RUFHRTtBQUNBO0VBQ0E7QUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFFRjtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtFO0FBQ0E7RUFDQTtBQUNBO0VBQ0E7QUFDQTtFQUNBO0FBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUVFO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUVFO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0VBSUU7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0VBSUU7RUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7RUFJRTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDRTtBQUNBO0VBQ0E7QUFDQTtFQUNBO0FBQ0E7RUFDQTtBQUNBO0VBQ0E7QUFDQTtFQUNBO0FBQ0E7OztBQUVGO0FBQUE7QUFBQTtB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T1Y7QUFHSTtFQUNFOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQSxheEI5R007RXdCK0dOO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUdFLGF4QmxJSTtFd0JtSUo7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7QUFBQTtFQUVFOztBQUVBO0FBQUE7RUFDRTs7QUFJSjtFQUNFO0VBQ0E7O0FBRUE7RUFDRTs7QUFJSjtFQUNFO0VBQ0E7O0FBRUE7RUFDRTs7O0FBTVI7QUFBQTtBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7QUFHRjtFQUNFOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFOzs7QUFJSjtBQUFBO0FBRUE7RUFDRTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7QUFHRjtFQUVFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUtKO0VBQ0U7O0FBSUE7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUtOO0VBQ0U7RUFDQTs7O0FDcFNGO0FBQUE7QUFFQTtFQUNFOztBQUVBO0VBQ0U7RUFDQTs7QUFPRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFFRTs7O0FBT0Y7RUFDRTs7O0FBT0Y7RUFDRTs7O0FBR0o7QUFBQTtBQUVBO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFFRjtBQUFBO0FBRUE7RUFDRTtFQUVBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtF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RUFDRSxrQmxDbkNjO0VrQ29DZCxPbEMzQmU7O0FrQzZCZjtFQUNFOzs7QUFJSjtFQUNFLGtCbENsQ2U7O0FrQ29DZjtFQUNFOzs7QUFJSjtFQUNFLGtCbEMvQ2U7O0FrQ2lEZjtFQUNFOzs7QUFJSjtFQUNFOzs7QUFNQTtFQUNFOzs7QUFJSjtFQUNFLE9sQ3ZFZTs7O0FrQzBFakI7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FqQ25MQTtFaUNzTEY7SUFFSTs7OztBakN4TEY7RWlDNExGO0lBRUk7Ozs7QWpDOUxGO0VpQ2tNRjtJQUVJOzs7O0FBSUo7RUFDRTs7O0FqQ3pNQTtFaUM0TUY7SUFFSTs7OztBakM5TUY7RWlDa05GO0lBRUk7Ozs7QWpDcE5GO0VpQ3dORjtJQUVJOzs7O0FBSUo7RUFDRTs7QWpDL05BO0VpQzhORjtJQUlJOzs7O0FBSUo7RUFDRTs7QWpDdk9BO0VpQ3NPRjtJQUlJOzs7O0FBSUo7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRSxhbEMxUVU7OztBa0M2UVo7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7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QUdEO0FBQUE7SUFDQztJQUNBO0lBQ0E7O0VBS0E7QUFBQTtBQUFBO0lBQ0M7O0VBTUY7QUFBQTtJQUNDOztFQVNEO0FBQUE7SUFDQzs7RUFFQTtBQUFBO0lBQ0M7O0VBR0Q7QUFBQTtJQUNDO0lBQ0E7O0VBVUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQUVDO0lBQ0E7O0VBd0JEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7SUFFQztJQUNBOztFQVFEO0FBQUE7QUFBQTtBQUFBO0lBQ0M7O0VBR0Q7QUFBQTtBQUFBO0FBQUE7SUFDQzs7RUFFQTtBQUFBO0FBQUE7QUFBQTtJQUNDO0k5QytFSDtJOEM3RUc7O0U5QytFSDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQUVFO0lBQ0E7O0VBR0Y7QUFBQTtBQUFBO0FBQUE7SUFDRTs7RThDcEZDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQUdDO0lBQ0E7O0VBR0Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQUVDOztFQUlGO0FBQUE7QUFBQTtBQUFBO0lBQ0M7SUFDQTs7RUFNRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7SUFHQztJQUNBO0lBQ0E7O0VBUUE7QUFBQTtJQUNDO0lBQ0E7O0VBTUY7QUFBQTtJQUNDO0lBQ0E7O0VBR0Q7QUFBQTtJQUNDO0lBQ0E7SUFDQTtJQUNBOztFQU9EO0FBQUE7QUFBQTtBQUFBO0lBRUM7SUFDQTtJQUNBOztFQU1GO0FBQUE7SUFFQztJQUNBOztBQUdGO0FBQUE7QUFBQTtFQUtFO0lBQ0M7SUFDQTs7O0FDck5KO0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBRUU7RUFDQTtFQUNBOztBQUVBO0VBQ0U7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFFRTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7QUFHRjtFQUNFLGFoRG5DUTtFZ0RvQ1I7RUFDQTtFQUNBOzs7QUNoREo7QUFDQTtFQUNFO0VBQ0E7O0FBRUE7RUFDRTs7O0FBSUo7QUFDQTtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUNBO0VBRUU7RUFDQTs7QWhEb0tFO0VBQ0UsY2dEdksyQjs7QWhEeUszQjtFQUNFOzs7QWdEcktOO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBOztBQUdFO0VBRUU7O0FBSUo7RUFDRTs7QUFJSjtFQUdFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QWhEOUNGO0VnRHNDQTtJQVVJOzs7O0FkS047QUFDQTtFbENpSkU7O0FBRUE7RUFFRTtFQUNBOztBQUdGO0VBQ0U7OztBa0N2Sko7QUFLQTtFQUNFOzs7QUFFRjtBQU1BO0FBU0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtFQUtFO0VBQ0E7OztBbEN2RkE7RWtDMEZGO0lBR0k7Ozs7QUFHSjtBQUNBO0VBQ0U7RUFDQTtBQUNBO0FBSUE7O0FBSEE7RUFDRTs7QUFHRjtFbENrRUE7RUFDQSxnQmtDbEU2QztFbENtRTdDLGVrQ25FNkM7RUFDM0M7RUFDQTtFQUNBO0VBQ0E7O0FsQ3pHRjtFa0NvR0E7SUFPSTs7O0FBR0Y7RUFDRTtFQUNBLGFuQ25ITTs7O0FtQ3VIWjtBQUNBO0VBQ0U7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGtCbkNoSEk7O0FtQ21ITjtFbEM1REE7RUFDQTtFQUNBO0VBQ0E7RUFDQSxrQkQzRE07RUM0RE4sYUQvRVU7RUNpRlI7RUFDQTs7QUFXRjtFQUNFOzs7QWtDNENKO0FBQ0E7RUFDRTtFQUNBOztBQUVBO0VBQ0U7O0FBR0Y7RUFDRTs7O0FBSUo7RUFDRTtFQUNBOzs7QUFFRjtBQUNBO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGFuQ3BLVTtFbUNxS1Y7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QWxDbktBO0VrQ3FKRjtBQUFBO0lBZ0JJO0lBQ0E7OztBQUdGO0FBQUE7RUFJRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBbENqTEY7RWtDeUtBO0FBQUE7SUFVSTtJQUNBOzs7QUFJSjtBQUFBO0VBQ0U7OztBQUdKO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGFuQzNNVTtFbUM0TVY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7O0FBRUE7RUFDRTs7O0FBTVI7RUExTUU7RUFDQSxrQm5DUk07O0FtQ1VOO0VBQ0U7O0FBRUE7RUFDRTs7O0FBdU1OO0VBOU1FO0VBQ0Esa0JBOE02Qjs7QUE1TTdCO0VBQ0U7O0FBRUE7RUFDRTs7O0FBMk1OO0VBbE5FO0VBQ0Esa0JuQ1ZJOztBbUNZSjtFQUNFOztBQUVBO0VBQ0U7OztBQThNTjtBQUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FsQ25FRTtFQUNFLGNrQ3NFNkI7O0FsQ3BFN0I7RUFDRTs7QWtDc0VOO0FBQUE7RUFHRSxXbkNyUWE7O0FtQ3dRZjtFQUVFOztBQU9KO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQSxrQm5DeFFlO0VtQ3lRZjtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBbEM1UUE7RWtDbVFGO0lBV0k7SUFDQTs7OztBQUlKO0VBQ0U7RUFDQTtFQUNBO0VBQ0EiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG5cdFRoZW1lIE5hbWU6IFZBTSBUaGVtZVxuXHRUaGVtZSBVUkk6XG5cdERlc2NyaXB0aW9uOiBUaGlzIGlzIHRoZSB0aGVtZSBjcmVhdGVkIGZvciBWQU1cblx0QXV0aG9yOiBLaG9vemhcblx0QXV0aG9yIFVSSTpcblxuXHRWZXJzaW9uOiAxLjAuMFxuXG5cdFRhZ3M6IG9uZS1jb2x1bW4sIHR3by1jb2x1bW5zLCBsZWZ0LXNpZGViYXIsIHJpZ2h0LXNpZGViYXIsIGFjY2Vzc2liaWxpdHktcmVhZHksIGN1c3RvbS1jb2xvcnMsIGN1c3RvbS1sb2dvLCBjdXN0b20tbWVudSwgZmVhdHVyZWQtaW1hZ2VzLCBmb290ZXItd2lkZ2V0cywgZnVsbC13aWR0aC10ZW1wbGF0ZSwgcnRsLWxhbmd1YWdlLXN1cHBvcnQsIHN0aWNreS1wb3N0LCB0aGVtZS1vcHRpb25zLCB0aHJlYWRlZC1jb21tZW50cywgdHJhbnNsYXRpb24tcmVhZHlcblxuXHRUZW1wbGF0ZTogZ2VuZXNpc1xuXG5cdExpY2Vuc2U6IEdQTC0yLjArXG5cdExpY2Vuc2UgVVJJOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTIuMC5odG1sXG4qL1xuLyogVGFibGUgb2YgQ29udGVudHNcbnNhc3MvXG58XG58LSBhYnN0cmFjdHMvXG58ICAgfC0gX3ZhcmlhYmxlcy5zY3NzICAgICMgU2FzcyBWYXJpYWJsZXNcbnwgICB8LSBfZnVuY3Rpb25zLnNjc3MgICAgIyBTYXNzIEZ1bmN0aW9uc1xufCAgIHwtIF9taXhpbnMuc2NzcyAgICAgICAjIFNhc3MgTWl4aW5zXG58ICAgfC0gX3BsYWNlaG9sZGVycy5zY3NzICMgU2FzcyBQbGFjZWhvbGRlcnNcbnxcbnwtIGZvbnRzL1xufCAgIHwtIF9udWNsZW8uc2NzcyAgICAgICAjIEljb24gUGFja1xufFxufOKAkyBiYXNlL1xufCAgIHwtIF9yZXNldC5zY3NzICAgICAgICAjIFJlc2V0L25vcm1hbGl6ZVxufCAgIHwtIF90eXBvZ3JhcGh5LnNjc3MgICAjIFR5cG9ncmFwaHkgcnVsZXNcbnwgICB8LSBfZGVmYXVsdHMuc2NzcyAgICAgIyBHZW5lc2lzIERlZmF1bHRzXG58ICAgfC0gX2FuaW1hdGlvbnMuc2NzcyAgICMgQW5pbWF0aW9uc1xufFxufOKAkyBjb21wb25lbnRzL1xufCAgIHwtIF9ncmFwaGljcy5zY3NzICAgICAgICAgICAgIyBHcmFwaGljc1xufCAgIHwtIF9idXR0b25zLnNjc3MgICAgICAgICAgICAgIyBCdXR0b25zXG58ICAgfC0gX3dpZGdldC5zY3NzICAgICAgICAgICAgICAjIEdlbmVzaXMgRGVmYXVsdCBXaWRnZXQgYW5kIFBsdWdpbnNcbnwgICB8LSBfZm9ybXMuc2NzcyAgICAgICAgICAgICAgICMgRm9ybXNcbnwgICB8LSBfbGlzdC1wYWdpbmF0aW9uLnNjc3MgICAgICMgTGlzdCBhbmQgcGFnaW5hdGlvblxufCAgIHwtIC10aXRsZS1kaXZpZGVyLnNjc3MgICAgICAgIyBUaXRsZSBhbmQgZGl2aWRlcnNcbnwgICB8LSBfb2JqZWN0cy5zY3NzICAgICAgICAgICAgICMgQ3VzdG9taXNlZCBvYmplY3RzXG58ICAgfC0gX2Jhbm5lcnMuc2NzcyAgICAgICAgICAgICAjIEJhbm5lcnNcbnwgICB8LSBfaGVyby1zbGlkZXIuc2NzcyAgICAgICAgICMgSGVybyBTbGlkZXJcbnwgICB8LSBfYmxvY2tzLnNjc3MgICAgICAgICAgICAgICMgQmxvY2tzXG58XG584oCTIGxheW91dC9cbnwgICB8LSBfZ3JpZC5zY3NzICAgICAgICAgIyBHcmlkXG58ICAgfC0gX2dzLXN0cnVjdHVyZS1sYXlvdXQuc2NzcyAjIEdlbmVzaXMgZGVmYXVsdCBzdHJ1Y3R1cmUgYW5kIGxheW91dFxufCAgIHwtIF9oZWFkZXIuc2NzcyAgICAgICAjIEhlYWRlclxufCAgIHwtIF9zaWRlYmFyLnNjc3MgICAgICAjIFNpZGViYXJcbnwgICB8LSBfZm9vdGVyLnNjc3MgICAgICAgIyBGb290ZXJcbnxcbnzigJMgcGFnZXMvXG58ICAgfC0gX3Bvc3QtYXJjaGl2ZS5zY3NzICAgICAgICAjIFBvc3QgYXJjaGl2ZSBzdHlsZXNcbnwgICB8LSBfcG9zdC1zaW5nbGUuc2NzcyAgICAgICAgICMgU2luZ2xlIFBvc3QgU3R5bGVzXG58ICAgfC0gXzQwNC1wYWdlLnNjc3MgICAgIFx0XHQgIyA0MDQgUGFnZVxufFxufOKAkyB0aGVtZXMvXG58ICAgfC0gX2tob296aC5zY3NzICAgICAgICMgRGVmYXVsdCB0aGVtZVxufCAgIHwtIF93b29jb21tZXJjZS5zY3NzICAjIFdvb2NvbW1lcmNlIFN0eWxlc1xufFxufOKAkyB2ZW5kb3JzL1xufCAgIHwtIF9zbGljay5zY3NzICAgICAgICAjIFNsaWNrIFNsaWRlclxufCAgIHwtIF9zbGljay10aGVtZS5zY3NzICAjIFNsaWNrIFNsaWRlciBUaGVtZVxufCAgIHwtIF9mZWF0aGVybGlnaHQuc2NzcyAjIEZlYXRoZXJsaWdodCBHYWxsZXJ5XG58XG58LSBtYWluLnNjc3MgICAgICAgICAgICAgICMgTWFpbiBTYXNzIGZpbGVcbiovXG5cbkBpbXBvcnQgJ2Fic3RyYWN0cy92YXJpYWJsZXMnO1xuQGltcG9ydCAnYWJzdHJhY3RzL21peGlucyc7XG5AaW1wb3J0ICdhYnN0cmFjdHMvZnVuY3Rpb25zJztcbkBpbXBvcnQgJ2Fic3RyYWN0cy9wbGFjZWhvbGRlcnMnO1xuXG5AaW1wb3J0ICd2ZW5kb3JzL3NsaWNrJztcbkBpbXBvcnQgJ3ZlbmRvcnMvc2xpY2stdGhlbWUnO1xuQGltcG9ydCAndmVuZG9ycy9mZWF0aGVybGlnaHQnO1xuXG5AaW1wb3J0ICdmb250cy9udWNsZW8nO1xuXG5AaW1wb3J0ICdiYXNlL3Jlc2V0JztcbkBpbXBvcnQgJ2Jhc2UvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICdiYXNlL2RlZmF1bHRzJztcbkBpbXBvcnQgJ2Jhc2UvYW5pbWF0aW9ucyc7XG5cbkBpbXBvcnQgJ2xheW91dC9ncmlkJztcbkBpbXBvcnQgJ2xheW91dC9ncy1zdHJ1Y3R1cmUtbGF5b3V0JztcbkBpbXBvcnQgJ2xheW91dC9oZWFkZXInO1xuQGltcG9ydCAnbGF5b3V0L3NpZGViYXInO1xuQGltcG9ydCAnbGF5b3V0L2Zvb3Rlcic7XG5AaW1wb3J0ICdsYXlvdXQvZGlzdHJpYnV0b3InO1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL2dyYXBoaWNzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9ucyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3dpZGdldCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Zvcm1zJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbGlzdC1wYWdpbmF0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGl0bGUtZGl2aWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL29iamVjdHMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9iYW5uZXJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaGVyby1zbGlkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9ibG9ja3MnO1xuXG5AaW1wb3J0ICdwYWdlcy9wb3N0LWFyY2hpdmUnO1xuQGltcG9ydCAncGFnZXMvcG9zdC1zaW5nbGUnO1xuQGltcG9ydCAncGFnZXMvNDA0LXBhZ2UnO1xuLy8gQGltcG9ydCAncGFnZXMvY29udGFjdCc7XG5cbkBpbXBvcnQgJ3RoZW1lcy9raG9vemgnO1xuQGltcG9ydCAndGhlbWVzL3dvb2NvbW1lcmNlJztcbiIsIi8qIFZhcmlhYmxlc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogQm9keSBUZXh0IFN0eWxlcyAqL1xuJGJhc2UtZm9udC1zaXplOiAxLjZyZW07XG4kc3VidGl0bGUtZm9udDogJ091dGZpdCcsIHNhbnMtc2VyaWY7XG4kdGl0bGUtZm9udDogXCJaYWxhbmRvIFNhbnMgRXhwYW5kZWRcIiwgc2Fucy1zZXJpZjtcbiRtYWluLWZvbnQ6IFwiT3V0Zml0XCIsIHNhbnMtc2VyaWY7XG4vKiBGb250IFdlaWdodCAqL1xuJGZvbnQtbGlnaHQ6IDIwMDtcbiRmb250LW5vcm06IDQwMDtcbiRmb250LWJvbGQ6IDcwMDtcbi8qIENvbG9ycyAqL1xuJG1haW4tY29sb3ItNTA6ICNmZmY3ZWQ7XG4kbWFpbi1jb2xvci0xMDA6ICNmZmVjZDQ7XG4kbWFpbi1jb2xvci0yMDA6ICNmZmQ2YTk7XG4kbWFpbi1jb2xvci0zMDA6ICNmZmI4NzI7XG4kbWFpbi1jb2xvci00MDA6ICNmZThmMzk7XG4kbWFpbi1jb2xvci01MDA6ICNmYzZjMGY7XG4kbWFpbi1jb2xvci02MDA6ICNlZDUzMDk7XG4kbWFpbi1jb2xvci03MDA6ICNjNDNkMGE7XG4kbWFpbi1jb2xvci04MDA6ICM5YzMxMTA7XG4kbWFpbi1jb2xvci05MDA6ICM3ZDJhMTE7XG4kbWFpbi1jb2xvci05NTA6ICM0NDEzMDY7XG5cbiRtYWluLWNvbG9yOiAkbWFpbi1jb2xvci01MDA7XG4kb2ZmLXdoaXRlOiAkbWFpbi1jb2xvci0xMDA7XG4kZGFyay1jb2xvcjogJG1haW4tY29sb3ItOTUwO1xuJHJlZDogIzllMWMyNTtcbiRvcmFuZ2U6ICNmZjViMzY7XG4kZ3JlZW46ICM2ODk0NDc7XG4kYmx1ZTogIzM2OTtcbiR5ZWxsb3c6ICNmN2U3MjA7XG4kZ3JleTogaHNsKDAsIDAlLCA1MCUpOyAvL2lucHV0cyB0aGF0IGFyZSBub3Qgc3VibWl0IGFuZCBidXR0b25cbi8qIEV0Yy4gKi9cbiRpbnB1dC1maWVsZHM6ICdpbnB1dDpub3QoW3R5cGU9XCJzdWJtaXRcIl0pOm5vdChbdHlwZT1cImZpbGVcIl0pJztcbi8qIEJhY2tncm91bmQgcGF0dGVybiBpbWFnZSBsaW5rKi9cbiRwYXR0ZXJuLTEtbGluazogdXJsKFwiLi4vLi4vLi4vc3RhdGljL2JhY2tncm91bmQtcGF0dGVybi5qcGdcIik7XG5cbjpyb290IHtcbiAgICAtLXN3aXBlci1wYWdpbmF0aW9uLWNvbG9yOiAjMDAwO1xuICAgIC0tc3dpcGVyLW5hdmlnYXRpb24tY29sb3I6ICMwMDA7XG4gICAgLS1zd2lwZXItdGhlbWUtY29sb3I6ICMwMDA7XG4gICAgLS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtaW5hY3RpdmUtY29sb3I6ICNmZmY7XG4gICAgLS1zcGFjaW5nOiAwLjI1O1xufSIsIi8qIE1peGluc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogTWVkaWEgUXVlcmllc1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJHRhYmxldC13aWR0aDogNjcwcHg7XG4kZGVza3RvcC13aWR0aDogOTYwcHg7XG4kZGVza3RvcC14bC13aWR0aDogMTQwMHB4O1xuQG1peGluIG1vYmlsZSB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skdGFibGV0LXdpZHRofSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5AbWl4aW4gdGFibGV0IHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAjeyR0YWJsZXQtd2lkdGh9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbkBtaXhpbiBkZXNrdG9wIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAjeyRkZXNrdG9wLXdpZHRofSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5AbWl4aW4gZGVza3RvcC14bCB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3skZGVza3RvcC14bC13aWR0aH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuLyogQ29udGFpbmVyXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gY29udGFpbmVyKCRwYWRkaW5nLCAkYmcsICRib3JkZXItcmFkaXVzLCAkYm9yZGVyKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nIGNhbGMoJHBhZGRpbmcgLyAyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB9XG59XG4vKiBJbWFnZSBBc3BlY3QgUmF0aW9cbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiA8ZmlndXJlPiAvLyBBcHBseSBpbWFnZSByYXRpbyB0byBmaWd1cmVcbiAgIDxpbWcgc3JjPVwiXCIvPlxuIDwvZmlndXJlPlxuKi9cbkBtaXhpbiBpbWctcmF0aW8oJHdpZHRoLCAkcC10b3ApIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHdpZHRoO1xuICBwYWRkaW5nLXRvcDogJHAtdG9wO1xuXG4gID4gaW1nIHtcbiAgICBAaW5jbHVkZSBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gIH1cbn1cbi8qIEFic29sdXRlXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gYWJzb2x1dGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbn1cbi8qIEdyYWRpZW50IEZhZGVcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBncmFkaWVudC1mYWRlKCRoLCRzLCRsLCRkaXJlY3Rpb24pIHtcbiAgQGlmICRkaXJlY3Rpb24gPT0gYm90dG9tIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBoc2xhKCRoLCRzLCRsLDEpIDAlLGhzbGEoJGgsJHMsJGwsMCkgMTAwJSk7XG4gIH0gQGVsc2VcbiAgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgaHNsYSgkaCwkcywkbCwxKSAwJSxoc2xhKCRoLCRzLCRsLDApIDEwMCUpO1xuICB9IEBlbHNlXG4gIGlmICRkaXJlY3Rpb24gPT0gdG9wIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCBoc2xhKCRoLCRzLCRsLDEpIDAlLGhzbGEoJGgsJHMsJGwsMCkgMTAwJSk7XG4gIH0gQGVsc2VcbiAgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBoc2xhKCRoLCRzLCRsLDEpIDAlLGhzbGEoJGgsJHMsJGwsMCkgMTAwJSk7XG4gIH1cbn1cbi8qIEJhZGdlIC8gVGFnIGxhYmVsXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gdGFnLWxhYmVsKCRiZywgJHNpemUpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICBAaWYgJHNpemUgPT0gc21hbGwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nOiAzcHggOHB4O1xuICB9XG4gIEBpZiAkc2l6ZSA9PSBtZWRpdW0ge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgfVxuICBAaWYgJHNpemUgPT0gbGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBwYWRkaW5nOiAxMnB4IDI0cHg7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGJnLCAxMCUpO1xuICB9XG59XG4vKiBJY29uc1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDFlbS8xICdiYXNlaWNvbic7XG4gIHNwZWFrOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuQG1peGluIGljb24oJHR5cGUpIHtcbiAgQGV4dGVuZCAlaWNvbjtcbiAgY29udGVudDogJHR5cGU7XG59XG4vKiBDaXJjbGUgT2JqZWN0XG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gY2lyY2xlLW9iamVjdCgkZGlhbWV0ZXIsICRiZy1jb2xvciwgJGZvbnQtc2l6ZSkge1xuICBAZXh0ZW5kICVmbGV4Ym94LWMtYztcbiAgd2lkdGg6ICRkaWFtZXRlcjtcbiAgaGVpZ2h0OiAkZGlhbWV0ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiZy1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmb250LXNpemU6ICRmb250LXNpemU7XG5cbiAgJjpob3ZlcixcbiAgYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG4vKiBUaHVtYm5haWwgQ2FyZFxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuPGFydGljbGUgY2xhc3M9XCJ0aHVtYm5haWwtY2FyZFwiPlxuICA8ZmlndXJlPlxuICAgIDxpbWcgc3JjPVwiXCI+XG4gIDwvZmlndXJlPlxuICA8ZGl2IGNsYXNzPVwiY2FwdGlvblwiPlxuICAgIDxoND48L2g0PlxuICAgIDxwPjwvcD5cbiAgICA8YSBocmVmPVwiI1wiPjwvYT5cbiAgPC9kaXY+XG48L2FydGljbGU+XG4gKi9cbkBtaXhpbiB0aHVtYm5haWwtY2FyZCgkdGh1bWJXLCAkdGh1bWJILCAkY2FwdGlvbi1wb3MsICRwYWRkaW5nKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgQGlmICRjYXB0aW9uLXBvcyA9PSBib3R0b20ge1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcblxuICAgIC5jYXB0aW9uIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgfVxuXG4gID4gZmlndXJlIHtcbiAgICBAaW5jbHVkZSBpbWctcmF0aW8oJHRodW1iVywgJHRodW1iSCk7XG4gIH1cblxuICAuY2FwdGlvbiB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIH1cbn1cbi8qIExpbmUgQm9yZGVyXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gbGluZS1ib3JkZXIoJHdpZHRoLCAkY29sb3IsICRkaXJlY3Rpb24sICRzcGFjZSkge1xuICBib3JkZXItI3skZGlyZWN0aW9ufTogJHdpZHRoIHNvbGlkICRjb2xvcjtcbiAgcGFkZGluZy0jeyRkaXJlY3Rpb259OiAkc3BhY2U7XG4gIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAkc3BhY2U7XG59XG4vKiBDaGlsZCBNYXJnaW5cbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBjaGlsZC1tYXJnaW4oJGRpcmVjdGlvbiwgJHNwYWNlLCAkc2VsZWN0b3I6IG51bGwpIHtcbiAgQGlmICRzZWxlY3RvciA9PSBudWxsIHtcbiAgICA+ICoge1xuICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06ICRzcGFjZTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICA+ICN7JHNlbGVjdG9yfSB7XG4gICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogJHNwYWNlO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8qIENsZWFyIEZpeFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gY2xlYXJmaXgoKSB7XG4gICp6b29tOiAxO1xuXG4gICY6OmFmdGVyLFxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4lY2xlYXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xufVxuIiwiLyogRnVuY3Rpb25zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4iLCIvKiBQbGFjZWhvbGRlcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFdoaXRlIEdyYWRpZW50XG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJXdoaXRlLWdyYWRpZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTUwcHg7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHotaW5kZXg6IDE7XG4gICAgQGluY2x1ZGUgZ3JhZGllbnQtZmFkZSgwLDAlLDEwMCUsdG9wKTtcbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgfVxuICB9XG59XG4vKiBUcmFuc2l0aW9uc1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJXRyYW5zaXRpb24tZHVyYXRpb24ge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbn1cbi8qIEZsZXhib3hcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVmbGV4Ym94LWMtYyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuIiwiLyogU2xpZGVyICovXG5cbi5zbGljay1zbGlkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uc2xpY2stbGlzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmLmRyYWdnaW5nIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjdXJzb3I6IGhhbmQ7XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLnNsaWNrLXRyYWNrIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbn1cbi5zbGljay1zbGlkZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICAgIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAmLnNsaWNrLWxvYWRpbmcgaW1nIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJi5kcmFnZ2luZyBpbWcge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAuc2xpY2staW5pdGlhbGl6ZWQgJiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuc2xpY2stdmVydGljYWwgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7IC8vIERlZmF1bHQgVmFyaWFibGVzXG4vLyBTbGljayBpY29uIGVudGl0eSBjb2RlcyBvdXRwdXRzIHRoZSBmb2xsb3dpbmdcbi8vIFwiXFwyMTkwXCIgb3V0cHV0cyBhc2NpaSBjaGFyYWN0ZXIgXCLihpBcIlxuLy8gXCJcXDIxOTJcIiBvdXRwdXRzIGFzY2lpIGNoYXJhY3RlciBcIuKGklwiXG4vLyBcIlxcMjAyMlwiIG91dHB1dHMgYXNjaWkgY2hhcmFjdGVyIFwi4oCiXCJcbiRzbGljay1mb250LXBhdGg6IFwiLi9qcy9wbHVnaW5zL3NsaWNrL2ZvbnRzL1wiICFkZWZhdWx0O1xuJHNsaWNrLWZvbnQtZmFtaWx5OiBcInNsaWNrXCIgIWRlZmF1bHQ7XG4kc2xpY2stbG9hZGVyLXBhdGg6IFwiLi9qcy9wbHVnaW5zL3NsaWNrL1wiICFkZWZhdWx0O1xuJHNsaWNrLWFycm93LWNvbG9yOiAjZGRkICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG4kc2xpY2stZG90LWNvbG9yLWFjdGl2ZTogJHNsaWNrLWRvdC1jb2xvciAhZGVmYXVsdDtcbiRzbGljay1wcmV2LWNoYXJhY3RlcjogXCJcXDIxOTBcIiAhZGVmYXVsdDtcbiRzbGljay1uZXh0LWNoYXJhY3RlcjogXCJcXDIxOTJcIiAhZGVmYXVsdDtcbiRzbGljay1kb3QtY2hhcmFjdGVyOiBcIlxcMjAyMlwiICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1zaXplOiAxMnB4ICFkZWZhdWx0O1xuJHNsaWNrLW9wYWNpdHktZGVmYXVsdDogMC43NSAhZGVmYXVsdDtcbiRzbGljay1vcGFjaXR5LW9uLWhvdmVyOiAxICFkZWZhdWx0O1xuJHNsaWNrLW9wYWNpdHktbm90LWFjdGl2ZTogMC4yNSAhZGVmYXVsdDtcbkBmdW5jdGlvbiBzbGljay1pbWFnZS11cmwoJHVybCkge1xuICBAaWYgZnVuY3Rpb24tZXhpc3RzKGltYWdlLXVybCkge1xuICAgIEByZXR1cm4gaW1hZ2UtdXJsKCR1cmwpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIHVybCgkc2xpY2stbG9hZGVyLXBhdGggKyAkdXJsKTtcbiAgfVxufVxuQGZ1bmN0aW9uIHNsaWNrLWZvbnQtdXJsKCR1cmwpIHtcbiAgQGlmIGZ1bmN0aW9uLWV4aXN0cyhmb250LXVybCkge1xuICAgIEByZXR1cm4gZm9udC11cmwoJHVybCk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gdXJsKCRzbGljay1mb250LXBhdGggKyAkdXJsKTtcbiAgfVxufVxuLyogU2xpZGVyICovXG4uc2xpY2stbGlzdCB7XG4gIC5zbGljay1sb2FkaW5nICYge1xuICAgIGJhY2tncm91bmQ6ICNmZmYgc2xpY2staW1hZ2UtdXJsKFwiYWpheC1sb2FkZXIuZ2lmXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuICB9XG59XG4vKiBJY29ucyAqL1xuQGlmICRzbGljay1mb250LWZhbWlseSA9PSBcInNsaWNrXCIge1xuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJzbGlja1wiO1xuICAgIHNyYzogc2xpY2stZm9udC11cmwoXCJzbGljay5lb3RcIik7XG4gICAgc3JjOiBzbGljay1mb250LXVybChcInNsaWNrLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHNsaWNrLWZvbnQtdXJsKFwic2xpY2sud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCBzbGljay1mb250LXVybChcInNsaWNrLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgc2xpY2stZm9udC11cmwoXCJzbGljay5zdmcjc2xpY2tcIikgZm9ybWF0KFwic3ZnXCIpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG59XG4vKiBBcnJvd3MgKi9cbi5zbGljay1uZXh0LFxuLnNsaWNrLXByZXYge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAzMHB4O1xuICBsaW5lLWhlaWdodDogMDtcbiAgZm9udC1zaXplOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRvcDogNTAlO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHotaW5kZXg6IDI7XG5cbiAgJjpmb2N1cyxcbiAgJjpob3ZlciB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1vbi1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICAmLnNsaWNrLWRpc2FibGVkOmJlZm9yZSB7XG4gICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktbm90LWFjdGl2ZTtcbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICBmb250LWZhbWlseTogJHNsaWNrLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJHNsaWNrLWFycm93LWNvbG9yO1xuICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LWRlZmF1bHQ7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgfVxufVxuXG4uc2xpY2stcHJldiB7XG4gIGxlZnQ6IDE1cHg7XG5cbiAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAtMzVweDtcbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkc2xpY2stcHJldi1jaGFyYWN0ZXI7XG5cbiAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgY29udGVudDogJHNsaWNrLW5leHQtY2hhcmFjdGVyO1xuICAgIH1cbiAgfVxufVxuXG4uc2xpY2stbmV4dCB7XG4gIHJpZ2h0OiAxNXB4O1xuXG4gIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgbGVmdDogLTI1cHg7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJHNsaWNrLW5leHQtY2hhcmFjdGVyO1xuXG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgIGNvbnRlbnQ6ICRzbGljay1wcmV2LWNoYXJhY3RlcjtcbiAgICB9XG4gIH1cbn1cbi8qIERvdHMgKi9cbi5zbGljay1kb3R0ZWQuc2xpY2stc2xpZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cblxuLnNsaWNrLWRvdHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTI1cHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIG1hcmdpbjogMCA1cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBidXR0b24ge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgZm9udC1zaXplOiAwO1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAmOmZvY3VzLFxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW9uLWhvdmVyO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBjb250ZW50OiAkc2xpY2stZG90LWNoYXJhY3RlcjtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRzbGljay1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiAkc2xpY2stZG90LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAkc2xpY2stZG90LWNvbG9yO1xuICAgICAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1ub3QtYWN0aXZlO1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgICAgQGV4dGVuZCAldHJhbnNpdGlvbi1kdXJhdGlvbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlIHtcbiAgICAgIGNvbG9yOiAkc2xpY2stZG90LWNvbG9yLWFjdGl2ZTtcbiAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LWRlZmF1bHQ7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIEZlYXRoZXJsaWdodCDigJMgdWx0cmEgc2xpbSBqUXVlcnkgbGlnaHRib3hcbiAqIFZlcnNpb24gMS43LjEzIC0gaHR0cDovL25vZWxib3NzLmdpdGh1Yi5pby9mZWF0aGVybGlnaHQvXG4gKlxuICogQ29weXJpZ2h0IDIwMTgsIE5vw6tsIFJhb3VsIEJvc3NhcnQgKGh0dHA6Ly93d3cubm9lbGJvc3MuY29tKVxuICogTUlUIExpY2Vuc2VkLlxuKiovXG5cbmh0bWwud2l0aC1mZWF0aGVybGlnaHQge1xuXHQvKiBkaXNhYmxlIGdsb2JhbCBzY3JvbGxpbmcgd2hlbiBmZWF0aGVybGlnaHRzIGFyZSB2aXNpYmxlICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5mZWF0aGVybGlnaHQge1xuXHRkaXNwbGF5OiBub25lO1xuXG5cdC8qIGRpbWVuc2lvbnM6IHNwYW5uaW5nIHRoZSBiYWNrZ3JvdW5kIGZyb20gZWRnZSB0byBlZGdlICovXG5cdHBvc2l0aW9uOmZpeGVkO1xuXHR0b3A6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7IGxlZnQ6IDA7XG5cdHotaW5kZXg6IDIxNDc0ODM2NDc7IC8qIHotaW5kZXggbmVlZHMgdG8gYmUgPj0gZWxlbWVudHMgb24gdGhlIHNpdGUuICovXG5cblx0LyogcG9zaXRpb246IGNlbnRlcmluZyBjb250ZW50ICovXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHQvKiBpbnN1cmVzIHRoYXQgdGhlIDo6YmVmb3JlIHBzZXVkbyBlbGVtZW50IGRvZXNuJ3QgZm9yY2Ugd3JhcCB3aXRoIGZpeGVkIHdpZHRoIGNvbnRlbnQ7ICovXG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cblx0Lyogc3R5bGluZyAqL1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGJhY2tncm91bmQ6ICMzMzM7XG5cdC8qIElFOCBcImhhY2tcIiBmb3IgbmVzdGVkIGZlYXRoZXJsaWdodHMgKi9cblx0YmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwKTtcbn1cblxuLyogc3VwcG9ydCBmb3IgbmVzdGVkIGZlYXRoZXJsaWdodHMuIERvZXMgbm90IHdvcmsgaW4gSUU4ICh1c2UgSlMgdG8gZml4KSAqL1xuLmZlYXRoZXJsaWdodDpsYXN0LW9mLXR5cGUge1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG5cbi5mZWF0aGVybGlnaHQ6YmVmb3JlIHtcblx0LyogcG9zaXRpb246IHRyaWNrIHRvIGNlbnRlciBjb250ZW50IHZlcnRpY2FsbHkgKi9cblx0Y29udGVudDogJyc7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0aGVpZ2h0OiAxMDAlO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZmVhdGhlcmxpZ2h0IC5mZWF0aGVybGlnaHQtY29udGVudCB7XG5cdC8qIG1ha2UgY29udGVudCBjb250YWluZXIgZm9yIHBvc2l0aW9uZWQgZWxlbWVudHMgKGNsb3NlIGJ1dHRvbikgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdC8qIHBvc2l0aW9uOiBjZW50ZXJpbmcgdmVydGljYWwgYW5kIGhvcml6b250YWwgKi9cblx0dGV4dC1hbGlnbjogbGVmdDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdC8qIGRpbWVuc2lvbnM6IGN1dCBvZmYgaW1hZ2VzICovXG5cdG92ZXJmbG93OiBhdXRvO1xuXHRwYWRkaW5nOiAyNXB4IDI1cHggMDtcblx0Ym9yZGVyLWJvdHRvbTogMjVweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuXHQvKiBkaW1lbnNpb25zOiBoYW5kbGluZyBsYXJnZSBjb250ZW50ICovXG5cdG1hcmdpbi1sZWZ0OiA1JTtcblx0bWFyZ2luLXJpZ2h0OiA1JTtcblx0bWF4LWhlaWdodDogOTUlO1xuXG5cdC8qIHN0eWxpbmcgKi9cblx0Ly8gYmFja2dyb3VuZDogI2ZmZjtcblx0Y3Vyc29yOiBhdXRvO1xuXG5cdC8qIHJlc2V0IHdoaXRlLXNwYWNlIHdyYXBwaW5nICovXG5cdHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi8qIGNvbnRhaW5zIHRoZSBjb250ZW50ICovXG4uZmVhdGhlcmxpZ2h0IC5mZWF0aGVybGlnaHQtaW5uZXIge1xuXHQvKiBtYWtlIHN1cmUgaXRzIHZpc2libGUgKi9cblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIGRvbid0IHNob3cgdGhlc2UgdGhvdWdoICovXG4uZmVhdGhlcmxpZ2h0IHNjcmlwdC5mZWF0aGVybGlnaHQtaW5uZXIsXG4uZmVhdGhlcmxpZ2h0IGxpbmsuZmVhdGhlcmxpZ2h0LWlubmVyLFxuLmZlYXRoZXJsaWdodCBzdHlsZS5mZWF0aGVybGlnaHQtaW5uZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZmVhdGhlcmxpZ2h0IC5mZWF0aGVybGlnaHQtY2xvc2UtaWNvbiB7XG5cdC8qIHBvc2l0aW9uOiBjZW50ZXJpbmcgdmVydGljYWwgYW5kIGhvcml6b250YWwgKi9cblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiA5OTk5O1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAwO1xuXG5cdC8qIGRpbWVuc2lvbnM6IDI1cHggeCAyNXB4ICovXG5cdGxpbmUtaGVpZ2h0OiAyNXB4O1xuXHR3aWR0aDogMjVweDtcblx0aGVpZ2h0OiAyNXB4O1xuXHRib3JkZXItcmFkaXVzOiA1MCU7XG5cblx0Lyogc3R5bGluZyAqL1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Zm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuXHRiYWNrZ3JvdW5kOiAjZmZmOyAvKiBTZXQgdGhlIGJhY2tncm91bmQgaW4gY2FzZSBpdCBvdmVybGFwcyB0aGUgY29udGVudCAqL1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG5cdGNvbG9yOiAjMDAwO1xuXHRib3JkZXI6IG5vbmU7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi8qIFNlZSBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE2MDc3MzQxL2hvdy10by1yZXNldC1hbGwtZGVmYXVsdC1zdHlsZXMtb2YtdGhlLWh0bWw1LWJ1dHRvbi1lbGVtZW50ICovXG4uZmVhdGhlcmxpZ2h0IC5mZWF0aGVybGlnaHQtY2xvc2UtaWNvbjo6LW1vei1mb2N1cy1pbm5lciB7XG5cdGJvcmRlcjogMDtcblx0cGFkZGluZzogMDtcbn1cblxuLmZlYXRoZXJsaWdodCAuZmVhdGhlcmxpZ2h0LWltYWdlIHtcblx0Lyogc3R5bGluZyAqL1xuXHR3aWR0aDogMTAwJTtcbn1cblxuXG4uZmVhdGhlcmxpZ2h0LWlmcmFtZSAuZmVhdGhlcmxpZ2h0LWNvbnRlbnQge1xuXHQvKiByZW1vdmVkIHRoZSBib3JkZXIgZm9yIGltYWdlIGNyb3Bpbmcgc2luY2UgaWZyYW1lIGlzIGVkZ2UgdG8gZWRnZSAqL1xuXHRib3JkZXItYm90dG9tOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5mZWF0aGVybGlnaHQgaWZyYW1lIHtcblx0Lyogc3R5bGluZyAqL1xuXHRib3JkZXI6IG5vbmU7XG59XG5cbi5mZWF0aGVybGlnaHQgKiB7IC8qIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbm9lbGJvc3MvZmVhdGhlcmxpZ2h0L2lzc3Vlcy80MiAqL1xuXHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLyogaGFuZGxpbmcgcGhvbmVzIGFuZCBzbWFsbCBzY3JlZW5zICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuXHQuZmVhdGhlcmxpZ2h0IC5mZWF0aGVybGlnaHQtY29udGVudCB7XG5cdFx0LyogZGltZW5zaW9uczogbWF4aW1pemUgbGlnaHRib3ggd2l0aCBmb3Igc21hbGwgc2NyZWVucyAqL1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRtYXgtaGVpZ2h0OiA5OCU7XG5cblx0XHRwYWRkaW5nOiAxMHB4IDEwcHggMDtcblx0XHRib3JkZXItYm90dG9tOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHR9XG59XG5cbi8qIGhpZGUgbm9uIGZlYXRoZXJsaWdodCBpdGVtcyB3aGVuIHByaW50aW5nICovXG5AbWVkaWEgcHJpbnQge1xuXHRodG1sLndpdGgtZmVhdGhlcmxpZ2h0ID4gKiA+IDpub3QoLmZlYXRoZXJsaWdodCkge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmJhc2VpY29uIFdlYiBGb250XG5HZW5lcmF0ZWQgdXNpbmcgbnVjbGVvYXBwLmNvbVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdiYXNlaWNvbic7XG4gIHNyYzogdXJsKCcjeyRpY29uLWZvbnQtcGF0aH0vYmFzZWljb24uZW90Jyk7XG4gIHNyYzogdXJsKCcjeyRpY29uLWZvbnQtcGF0aH0vYmFzZWljb24uZW90JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgIHVybCgnI3skaWNvbi1mb250LXBhdGh9L2Jhc2VpY29uLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgIHVybCgnI3skaWNvbi1mb250LXBhdGh9L2Jhc2VpY29uLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJyN7JGljb24tZm9udC1wYXRofS9iYXNlaWNvbi50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgdXJsKCcjeyRpY29uLWZvbnQtcGF0aH0vYmFzZWljb24uc3ZnJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRiYXNlIGNsYXNzIGRlZmluaXRpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMWVtLzEgJ2Jhc2VpY29uJztcbiAgc3BlYWs6IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGNoYW5nZSBpY29uIHNpemVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiByZWxhdGl2ZSB1bml0cyAqL1xuLmljb24tc20ge1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuLmljb24tbGcge1xuICBmb250LXNpemU6IDEuMmVtO1xufVxuLyogYWJzb2x1dGUgdW5pdHMgKi9cbi5pY29uLTE2IHtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLmljb24tMzIge1xuICBmb250LXNpemU6IDMycHg7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBhZGQgYSBzcXVhcmUvY2lyY2xlIGJhY2tncm91bmRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmljb24tYmctc3F1YXJlLFxuLmljb24tYmctY2lyY2xlIHtcbiAgcGFkZGluZzogMC4zNWVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaWNvbi1iYWNrZ3JvdW5kLWNvbG9yO1xufVxuXG4uaWNvbi1iZy1jaXJjbGUge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIHVzZSBpY29ucyBhcyBsaXN0IGl0ZW0gbWFya2Vyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5pY29uLXVsIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgPiBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICB9XG5cbiAgPiBsaSA+IC5pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6ICRpY29uLWxpLW1hcmdpbi1yaWdodDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBzcGlubmluZyBpY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5pY29uLWlzLXNwaW5uaW5nIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGljb24tc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7XG4gIC1tb3otYW5pbWF0aW9uOiBpY29uLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyO1xuICBhbmltYXRpb246IGljb24tc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBpY29uLXNwaW4ge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbkAtbW96LWtleWZyYW1lcyBpY29uLXNwaW4ge1xuICAwJSB7XG4gICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgaWNvbi1zcGluIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgcm90YXRlZC9mbGlwcGVkIGljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmljb24tcm90YXRlLTkwICB7XG5cdEBpbmNsdWRlIGljb24tcm90YXRlKDkwZGVnLCAxKTtcbn1cblxuLmljb24tcm90YXRlLTE4MCB7XG5cdEBpbmNsdWRlIGljb24tcm90YXRlKDE4MGRlZywgMik7XG59XG5cbi5pY29uLXJvdGF0ZS0yNzAge1xuXHRAaW5jbHVkZSBpY29uLXJvdGF0ZSgyNzBkZWcsIDMpO1xufVxuXG4uaWNvbi1mbGlwLXkge1xuXHRAaW5jbHVkZSBpY29uLWZsaXAoLTEsIDEsIDApO1xufVxuLmljb24tZmxpcC14IHtcblx0QGluY2x1ZGUgaWNvbi1mbGlwKDEsIC0xLCAyKTtcbn1cblxuQGltcG9ydCBcImljb25zXCI7XG4iLCIkaWNvbi1mb250LXBhdGg6ICAgICAgICBcImZvbnRzXCIgIWRlZmF1bHQ7XG4kaWNvbi1iYWNrZ3JvdW5kLWNvbG9yOiAjZWVlICFkZWZhdWx0O1xuJGljb24tbGktbWFyZ2luLXJpZ2h0OiAgMC40ZW0gIWRlZmF1bHQ7XG4iLCJAbWl4aW4gaWNvbi1yb3RhdGUoJGRlZ3JlZXMsICRyb3RhdGlvbikge1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPSN7JHJvdGF0aW9ufSk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7XG59XG5cbkBtaXhpbiBpY29uLWZsaXAoJGhvcml6LCAkdmVydCwgJHJvdGF0aW9uKSB7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249I3skcm90YXRpb259KTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKCRob3JpeiwgJHZlcnQpO1xuICAtbW96LXRyYW5zZm9ybTogc2NhbGUoJGhvcml6LCAkdmVydCk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKCRob3JpeiwgJHZlcnQpO1xuICAtby10cmFuc2Zvcm06IHNjYWxlKCRob3JpeiwgJHZlcnQpO1xuICB0cmFuc2Zvcm06IHNjYWxlKCRob3JpeiwgJHZlcnQpO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0aWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGZ1bmN0aW9uIHVuaWNvZGUoJHN0cikge1xuICBAcmV0dXJuIHVucXVvdGUoXCJcXFwiXFxcXCN7JHN0cn1cXFwiXCIpO1xufVxuXG4kaWNvbi1hY2NvdW50OiB1bmljb2RlKGVhMDEpO1xuJGljb24tYmFnLTA5OiB1bmljb2RlKGVhMDIpO1xuJGljb24tY2hlY2tlZC1zeW1ib2w6IHVuaWNvZGUoZWEwMyk7XG4kaWNvbi1mYWNlYm9vay0xOiB1bmljb2RlKGVhMDQpO1xuJGljb24tZmFjZWJvb2stY2lyY2xlOiB1bmljb2RlKGVhMDUpO1xuJGljb24tZmFjZWJvb2s6IHVuaWNvZGUoZWEwNik7XG4kaWNvbi1mYXg6IHVuaWNvZGUoZWEwNyk7XG4kaWNvbi1pY19hY2Nlc3NfdGltZV80OHB4OiB1bmljb2RlKGVhMDgpO1xuJGljb24taWNfYXJyb3dfYmFja18zNnB4OiB1bmljb2RlKGVhMDkpO1xuJGljb24taWNfY2xvc2VfNDhweDogdW5pY29kZShlYTBhKTtcbiRpY29uLWljX21haWxfb3V0bGluZV80OHB4OiB1bmljb2RlKGVhMGIpO1xuJGljb24taW5zdGFncmFtOiB1bmljb2RlKGVhMGMpO1xuJGljb24tbG9jazogdW5pY29kZShlYTBkKTtcbiRpY29uLXBob25lLTItMjogdW5pY29kZShlYTBlKTtcbiRpY29uLXBob25lLTI6IHVuaWNvZGUoZWEwZik7XG4kaWNvbi1waW46IHVuaWNvZGUoZWExMCk7XG4kaWNvbi1wbGFjZWhvbGRlcjogdW5pY29kZShlYTExKTtcbiRpY29uLXBsdXM6IHVuaWNvZGUoZWExMik7XG4kaWNvbi1zaG9wcGluZy1jYXJ0OiB1bmljb2RlKGVhMTMpO1xuJGljb24tc2luZ2xlLTAxOiB1bmljb2RlKGVhMTQpO1xuJGljb24tc3RhcjogdW5pY29kZShlYTE1KTtcbiRpY29uLXdoYXRzYXBwLWxvZ286IHVuaWNvZGUoZWExNik7XG4kaWNvbi15b3V0dWJlOiB1bmljb2RlKGVhMTcpO1xuJGljb24tem9vbS0yOiB1bmljb2RlKGVhMTgpO1xuXG4uaWNvbi1hY2NvdW50OjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1hY2NvdW50O1xufVxuXG4uaWNvbi1iYWctMDk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLWJhZy0wOTtcbn1cblxuLmljb24tY2hlY2tlZC1zeW1ib2w6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLWNoZWNrZWQtc3ltYm9sO1xufVxuXG4uaWNvbi1mYWNlYm9vay0xOjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1mYWNlYm9vay0xO1xufVxuXG4uaWNvbi1mYWNlYm9vay1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLWZhY2Vib29rLWNpcmNsZTtcbn1cblxuLmljb24tZmFjZWJvb2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLWZhY2Vib29rO1xufVxuXG4uaWNvbi1mYXg6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLWZheDtcbn1cblxuLmljb24taWNfYWNjZXNzX3RpbWVfNDhweDo6YmVmb3JlIHtcbiAgY29udGVudDogJGljb24taWNfYWNjZXNzX3RpbWVfNDhweDtcbn1cblxuLmljb24taWNfYXJyb3dfYmFja18zNnB4OjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1pY19hcnJvd19iYWNrXzM2cHg7XG59XG5cbi5pY29uLWljX2Nsb3NlXzQ4cHg6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLWljX2Nsb3NlXzQ4cHg7XG59XG5cbi5pY29uLWljX21haWxfb3V0bGluZV80OHB4OjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1pY19tYWlsX291dGxpbmVfNDhweDtcbn1cblxuLmljb24taW5zdGFncmFtOjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1pbnN0YWdyYW07XG59XG5cbi5pY29uLWxvY2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLWxvY2s7XG59XG5cbi5pY29uLXBob25lLTItMjo6YmVmb3JlIHtcbiAgY29udGVudDogJGljb24tcGhvbmUtMi0yO1xufVxuXG4uaWNvbi1waG9uZS0yOjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1waG9uZS0yO1xufVxuXG4uaWNvbi1waW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLXBpbjtcbn1cblxuLmljb24tcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLXBsYWNlaG9sZGVyO1xufVxuXG4uaWNvbi1wbHVzOjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1wbHVzO1xufVxuXG4uaWNvbi1zaG9wcGluZy1jYXJ0OjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1zaG9wcGluZy1jYXJ0O1xufVxuXG4uaWNvbi1zaW5nbGUtMDE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLXNpbmdsZS0wMTtcbn1cblxuLmljb24tc3Rhcjo6YmVmb3JlIHtcbiAgY29udGVudDogJGljb24tc3Rhcjtcbn1cblxuLmljb24td2hhdHNhcHAtbG9nbzo6YmVmb3JlIHtcbiAgY29udGVudDogJGljb24td2hhdHNhcHAtbG9nbztcbn1cblxuLmljb24teW91dHViZTo6YmVmb3JlIHtcbiAgY29udGVudDogJGljb24teW91dHViZTtcbn1cblxuLmljb24tem9vbS0yOjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi16b29tLTI7XG59XG5cbiIsIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xufVxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cbi8qKlxuICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXG4gKi9cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi9cbn1cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlO1xuICAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIG1hcmdpbjogMDtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cbmJ1dHRvbixcbmlucHV0IHtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdLFxuYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3JpbmcsXG5idXR0b246LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovXG59XG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovXG59XG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqL1xufVxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cbi8qIE1pc2NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAqL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogQm94IFNpemluZ1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbiosXG4qOjphZnRlcixcbio6OmJlZm9yZSB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG4iLCIvKiBUeXBvZ3JhcGhpY2FsIEVsZW1lbnRzXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5odG1sIHtcbiAgZm9udC1zaXplOiA1NiU7XG4gIC8qIDEwcHggYnJvd3NlciBkZWZhdWx0ICovXG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBmb250LXNpemU6IDYyLjUlO1xuICB9XG59XG5cbi8qIENocm9tZSBmaXggKi9cbmJvZHk+ZGl2IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXNpemU6IDEuNHJlbTtcbn1cblxuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbG9yOiAjNTU1O1xuICBmb250LWZhbWlseTogJG1haW4tZm9udDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm07XG4gIGxpbmUtaGVpZ2h0OiAxLjYyNTtcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cbmJ1dHRvbixcbmlucHV0OmZvY3VzLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG50ZXh0YXJlYTpmb2N1cyxcbi5idXR0b24sXG4uZ2FsbGVyeSBpbWcge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbn1cblxub2wsXG51bCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxubGkge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbmhyIHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2VlZTtcbiAgY2xlYXI6IGJvdGg7XG4gIG1hcmdpbjogMzBweCAwO1xufVxuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbmJsb2NrcXVvdGUsXG5jaXRlLFxuZW0sXG5pIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2RkZDtcbiAgY29sb3I6ICMzMzM7XG59XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDMwcHg7XG59XG5cbmJsb2NrcXVvdGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMDFDXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDMwcHg7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgaGVpZ2h0OiAwO1xuICBsZWZ0OiAtMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xMHB4O1xufVxuXG4vKiBIZWFkaW5nc1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gIGNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDAlKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luOiAwIDAgMnJlbTtcbn1cblxuaDEge1xuICBmb250LXNpemU6IDVyZW07XG4gIGZvbnQtZmFtaWx5OiAkdGl0bGUtZm9udDtcbn1cblxuaDIge1xuICBmb250LXNpemU6IDMuNnJlbTtcbiAgZm9udC1mYW1pbHk6ICR0aXRsZS1mb250O1xufVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMi40cmVtO1xuICBmb250LWZhbWlseTogJHRpdGxlLWZvbnQ7XG59XG5cbmg0IHtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtO1xufVxuXG5oNSB7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xufVxuXG5oNiB7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xufVxuXG5hIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgY29sb3I6IGRhcmtlbigkbWFpbi1jb2xvciwgMTAlKTtcblxuICAmOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBjb2xvcjogZGFya2VuKCRtYWluLWNvbG9yLCAyMCUpO1xuICB9XG59XG5cbmxhYmVsIHtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gIGNvbG9yOiBoc2woMCwgMCUsIDYwJSk7XG59XG5cbi8qIFRleHRcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbnAge1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMTtcbiAgbGluZS1oZWlnaHQ6ICRiYXNlLWZvbnQtc2l6ZSArIDAuODtcbiAgbWFyZ2luOiAwIDAgMTVweDtcblxuICAmOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAmLngtc21hbGwge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC40O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIH1cblxuICAmLnNtYWxsIHtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG5cbiAgJi5sYXJnZSB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKyAwLjI7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgfVxufVxuXG4vKiBEYXJrIHRoZW1lXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4lZGFyay10aGVtZSB7XG5cbiAgYSxcbiAgcCB7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cblxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2IHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuXG4gIGhyIHtcbiAgICBib3JkZXItY29sb3I6ICNmZmY7XG4gIH1cbn1cblxuLy8gLmRhcmstdGhlbWUge1xuLy8gICBAZXh0ZW5kICVkYXJrLXRoZW1lO1xuLy8gfVxuXG4lYmxvZy10eXBvZ3JhcGh5IHtcblxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgbWFyZ2luLXRvcDogNHJlbTtcbiAgfVxuXG4gIGxpLFxuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjJlbTtcbiAgICBsaW5lLWhlaWdodDogMjtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuXG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICsgMC4xO1xuICAgIH1cbiAgfVxuXG4gIHVsIHtcbiAgICBAZXh0ZW5kICVpdGVtLWxpc3Q7XG5cbiAgICBsaSB7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gICAgfVxuICB9XG5cbiAgb2wge1xuICAgIEBleHRlbmQgJWl0ZW0tbGlzdDtcblxuICAgIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbiAgICB9XG4gIH1cbn0iLCIvKiBEZWZhdWx0c1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogT2JqZWN0c1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLndwLWNhcHRpb24sXG5lbWJlZCxcbmlmcmFtZSxcbmltZyxcbm9iamVjdCxcbnZpZGVvIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5pbWcge1xuICBoZWlnaHQ6IGF1dG87XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cbi8qIEdhbGxlcnlcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5nYWxsZXJ5IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBpbWcge1xuICAgIGhlaWdodDogYXV0bztcblxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlciB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxufVxuLyogVGFibGVzXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICBsaW5lLWhlaWdodDogMjtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbnRib2R5IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG59XG5cbnRkLFxudGgge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxufVxuXG50ZCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xuICBwYWRkaW5nOiA2cHg7XG59XG5cbnRoIHtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm07XG4gIHBhZGRpbmc6IDAgNnB4O1xufVxuLyogU2NyZWVuIFJlYWRlciBUZXh0XG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2NyZWVuLXJlYWRlci1zaG9ydGN1dCxcbi5zY3JlZW4tcmVhZGVyLXRleHQsXG4uc2NyZWVuLXJlYWRlci10ZXh0IHNwYW4ge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweDtcbiAgd29yZC13cmFwOiBub3JtYWwgIWltcG9ydGFudDtcbn1cblxuLnNjcmVlbi1yZWFkZXItc2hvcnRjdXQ6Zm9jdXMsXG4uc2NyZWVuLXJlYWRlci10ZXh0OmZvY3VzIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNoYWRvdzogMCAwIDJweCAycHggcmdiYSgwLCAwLCAwLCAuNik7XG4gIGNsaXA6IGF1dG8gIWltcG9ydGFudDtcbiAgY29sb3I6ICMzMzM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDFlbTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZzogMTVweCAyM3B4IDE0cHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgd2lkdGg6IGF1dG87XG4gIHotaW5kZXg6IDEwMDAwMDtcbiAgLyogQWJvdmUgV1AgdG9vbGJhci4gKi9cbn1cblxuLm1vcmUtbGluayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi8qIEltYWdlIHJlbGVhc2VcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5pbWFnZS1yZWxlYXNlIHtcbiAgd2lkdGg6IDEwMHZ3O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDUwJTtcbiAgcmlnaHQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC01MHZ3O1xuICBtYXJnaW4tcmlnaHQ6IC01MHZ3O1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyogVmVydGljYWwgYWxpZ24gY29sdW1uIG9iamVjdHNcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi52ZXJ0aWNhbC1jZW50ZXIge1xuICAud3AtYmxvY2stY29sdW1uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxufVxuIiwiLyogQW5pbWF0aW9uc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuJWFuaW1hdGlvbi1iYXNpYy1oaWRlIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZS1pbi1vdXQ7XG4gIG9wYWNpdHk6IDA7XG59XG4vKiBmYWRlIGluIHRvcCAqL1xuLmhpZGRlbiB7XG4gIEBleHRlbmQgJWFuaW1hdGlvbi1iYXNpYy1oaWRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7XG59XG5cbi5zaG93biB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xufVxuLyogZmFkZSBpbiByaWdodCAqL1xuLmZhZGUtcmlnaHQtYmVmb3JlIHtcbiAgQGV4dGVuZCAlYW5pbWF0aW9uLWJhc2ljLWhpZGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzBweCk7XG59XG5cbi5mYWRlLXJpZ2h0IHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7XG59XG4vKiBmYWRlIGluIGxlZnQgKi9cbi5mYWRlLWxlZnQtYmVmb3JlIHtcbiAgQGV4dGVuZCAlYW5pbWF0aW9uLWJhc2ljLWhpZGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMHB4KTtcbn1cblxuLmZhZGUtbGVmdCB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpO1xufVxuLyogZmFkZSBpbiBzY2FsZSAqL1xuLmZhZGUtc2NhbGUtYmVmb3JlIHtcbiAgQGV4dGVuZCAlYW5pbWF0aW9uLWJhc2ljLWhpZGU7XG4gIHRyYW5zZm9ybTogc2NhbGUoLjkpO1xufVxuXG4uZmFkZS1zY2FsZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG4iLCIvKiBHcmlkXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBDb2x1bW4gTWl4aW5cbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBjb2x1bW5zKCRzcGFjZSwgJGNvbHM6IDIsICRtb2JpbGUtY29sOiAxKSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG5cbiAgPioge1xuICAgIEBpZiAkbW9iaWxlLWNvbCA9PTEge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2U7XG4gICAgfVxuXG4gICAgQGlmICRtb2JpbGUtY29sID09MiB7XG4gICAgICB3aWR0aDogY2FsYygoMTAwJSAtICgjeyRzcGFjZX0gLyAyICogKCN7JG1vYmlsZS1jb2x9IC0gMSkpKSAvICN7JG1vYmlsZS1jb2x9KTtcbiAgICAgIG1hcmdpbi1yaWdodDogY2FsYygkc3BhY2UgLyAyKTtcblxuICAgICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogY2FsYygkc3BhY2UgLyAyKTtcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgd2lkdGg6IGNhbGMoKDEwMCUgLSAoI3skc3BhY2V9ICogKCN7JGNvbHN9IC0gMSkpKSAvICN7JGNvbHN9KTtcbiAgICAgIG1hcmdpbi1yaWdodDogJHNwYWNlO1xuXG4gICAgICAmOm50aC1jaGlsZCgjeyRjb2xzfW4pIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4lY29sLTEge1xuICBwYWRkaW5nOiAwIDUlO1xuXG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWF4LXdpZHRoOiA3MDBweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbn1cblxuLmNvbHMtMiB7XG4gIEBpbmNsdWRlIGNvbHVtbnMoMzBweCwgMik7XG59XG5cbi5jb2xzLTMge1xuICBAaW5jbHVkZSBjb2x1bW5zKDMwcHgsIDMpO1xufVxuXG4vKiBDb2x1bW4gTGF5b3V0c1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1peGluIGNvbHVtbi1sYXlvdXQoJGNvbC0xLCAkY29sLTIsICRjb2wtMzogbnVsbCkge1xuICBAaWYgJGNvbC0zID09bnVsbCB7XG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgID4qOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIGZsZXg6ICRjb2wtMSAxIDA7XG4gICAgICB9XG5cbiAgICAgID4qOm50aC1jaGlsZCgyKSB7XG4gICAgICAgIGZsZXg6ICRjb2wtMiAxIDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICA+KjpudGgtY2hpbGQoMSkge1xuICAgICAgICBmbGV4OiAkY29sLTEgMSAwO1xuICAgICAgfVxuXG4gICAgICA+KjpudGgtY2hpbGQoMikge1xuICAgICAgICBmbGV4OiAkY29sLTIgMSAwO1xuICAgICAgfVxuXG4gICAgICA+KjpudGgtY2hpbGQoMykge1xuICAgICAgICBmbGV4OiAkY29sLTMgMSAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4udHdvLW9uZSB7XG4gIEBpbmNsdWRlIGNvbHVtbi1sYXlvdXQoMiwgMSk7XG59XG5cbi8qIFdyYXBwZXJcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiV3cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDUwcHggNSU7XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgcGFkZGluZzogODBweCAxMCU7XG4gIH1cblxuICAmLXNtYWxsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxNXB4IDUlO1xuXG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBwYWRkaW5nOiAzMHB4IDEwJTtcbiAgICB9XG4gIH1cblxuICAmLWxhcmdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA4MHB4IDUlO1xuXG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBwYWRkaW5nOiAxMjBweCAxMCU7XG4gICAgfVxuICB9XG5cbiAgJi1mdWxsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA1MHB4IDA7XG5cbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIHBhZGRpbmc6IDgwcHggMDtcbiAgICB9XG4gIH1cbn1cblxuc2VjdGlvbi53cmFwcGVyIHtcbiAgQGV4dGVuZCAld3JhcHBlcjtcblxuICAmLXNtYWxsIHtcbiAgICBAZXh0ZW5kICV3cmFwcGVyLXNtYWxsO1xuICB9XG5cbiAgJi1sYXJnZSB7XG4gICAgQGV4dGVuZCAld3JhcHBlci1sYXJnZTtcbiAgfVxuXG4gICYtZnVsbCB7XG4gICAgQGV4dGVuZCAld3JhcHBlci1mdWxsO1xuICB9XG59IiwiLyogR2VuZXNpcyBTdHJ1Y3R1cmUgYW5kIExheW91dFxuICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBTaXRlIENvbnRhaW5lclxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnNpdGUtY29udGFpbmVyIHtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWluLWhlaWdodDogMTAwdmg7XG59XG5cbm1haW4uY29udGVudCB7XG4gIGZsZXg6IDEgMSAxMDAlO1xufVxuXG4uc2l0ZS1oZWFkZXIrKiB7XG4gIG1hcmdpbi10b3A6IDY0cHg7XG59XG5cbi8qIENvbW1vbiBDbGFzc2VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIEdlbmVzaXNcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5hZnRlci1lbnRyeSxcbi5hcmNoaXZlLWRlc2NyaXB0aW9uLFxuLmF1dGhvci1ib3gge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xufVxuXG4uYWZ0ZXItZW50cnkge1xuICBib3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBwYWRkaW5nOiAyMHB4IDMwcHg7XG59XG5cbi5hZnRlci1lbnRyeSAud2lkZ2V0Omxhc3Qtb2YtdHlwZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5icmVhZGNydW1iIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xufVxuXG4uYXJjaGl2ZS1kZXNjcmlwdGlvbiBwOmxhc3QtY2hpbGQsXG4uYXV0aG9yLWJveCBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4vKiBTZWFyY2ggRm9ybVxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnNlYXJjaC1mb3JtIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmVudHJ5LWNvbnRlbnQgLnNlYXJjaC1mb3JtIHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgd2lkdGg6IDUwJTtcbn1cblxuLnBvc3QtcGFzc3dvcmQtZm9ybSBpbnB1dFt0eXBlPVwic3VibWl0XCJdLFxuLnNlYXJjaC1mb3JtIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4ud2lkZ2V0X3NlYXJjaCBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG59XG5cbi8qIFRpdGxlc1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmVudHJ5LXRpdGxlIGEsXG4uc2lkZWJhciAud2lkZ2V0LXRpdGxlIGEge1xuICBjb2xvcjogIzMzMztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ud2lkZ2V0LXRpdGxlIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi8qIFdvcmRQcmVzc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmEuYWxpZ25jZW50ZXIgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG5hLmFsaWdubm9uZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuYS5hbGlnbmxlZnQsXG5hLmFsaWdubm9uZSxcbmEuYWxpZ25yaWdodCB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuaW1nLmFsaWdubm9uZSxcbi5hbGlnbm5vbmUge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xufVxuXG5hLmFsaWdubGVmdCxcbmltZy5hbGlnbmxlZnQsXG4ud3AtY2FwdGlvbi5hbGlnbmxlZnQge1xuICBtYXJnaW46IDAgMjBweCAyMHB4IDA7XG59XG5cbmEuYWxpZ25yaWdodCxcbmltZy5hbGlnbnJpZ2h0LFxuLndwLWNhcHRpb24uYWxpZ25yaWdodCB7XG4gIG1hcmdpbjogMCAwIDIwcHggMjBweDtcbn1cblxuLmdhbGxlcnktY2FwdGlvbixcbi53cC1jYXB0aW9uLXRleHQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi10b3A6IDAuNWVtO1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZW50cnktY29udGVudCBwLndwLWNhcHRpb24tdGV4dCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5lbnRyeS1jb250ZW50IC53cC1hdWRpby1zaG9ydGNvZGUsXG4uZW50cnktY29udGVudCAud3AtcGxheWxpc3QsXG4uZW50cnktY29udGVudCAud3AtdmlkZW8ge1xuICBtYXJnaW46IDAgMCAzMHB4O1xufSIsIi8vIC5tZW51LWl0ZW0tLWhpZ2hsaWdodFxuLyogSGVhZGVyIEJ1dHRvbnNcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVoZWFkZXItYnV0dG9ucyB7XG4gIEBpbmNsdWRlIGNpcmNsZS1vYmplY3QoNDBweCwgaHNsYSgwLCAwJSwgMCUsIDApLCAxN3B4KTtcbiAgY29sb3I6IGhzbCgwLCAwJSwgNDAlKTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgfVxufVxuXG4vKiBTa2lwIExpbmtzXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZ2VuZXNpcy1za2lwLWxpbmsge1xuICBtYXJnaW46IDA7XG5cbiAgLnNraXAtbGluay1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgbGkge1xuICAgIGhlaWdodDogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHdpZHRoOiAwO1xuICB9XG59XG5cbi8qIFNpdGUgSGVhZGVyXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2l0ZS1oZWFkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk5OTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgcGFkZGluZzogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXRvcDogM3B4IHNvbGlkICRtYWluLWNvbG9yO1xuXG4gID4ud3JhcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IG1pbig5MCUsICRkZXNrdG9wLXhsLXdpZHRoKTtcbiAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuXG4gICAgLyogU3RydWN0dXJlICovXG4gICAgPioge1xuICAgICAgJi5wcmUtaGVhZGVyIHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICB9XG5cbiAgICAgICYudGl0bGUtYXJlYSB7XG4gICAgICAgIC8vIGZsZXg6IDIgMSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuaGVhZGVyLXdpZGdldC1hcmVhIHtcbiAgICAgICAgZmxleDogMSAxIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5tZW51LXRvZ2dsZSB7XG4gICAgICAgIGZsZXg6IDEgMSAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKiBUaXRsZSBBcmVhXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4udGl0bGUtYXJlYSB7XG4gIHdpZHRoOiAxMjBweDtcbiAgcGFkZGluZzogNnB4IDA7XG4gIG9yZGVyOiAyO1xuICBtYXJnaW46IDAgYXV0bztcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBvcmRlcjogMDtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxufVxuXG4uc2l0ZS1kZXNjcmlwdGlvbixcbi53cC1jdXN0b20tbG9nbyAuc2l0ZS10aXRsZSB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICB3b3JkLXdyYXA6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4vKiBSZXNwb25zaXZlIE1lbnVcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5tZW51IC5tZW51LWl0ZW06Zm9jdXMge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuXG4ubWVudSAubWVudS1pdGVtPmE6Zm9jdXMrdWwuc3ViLW1lbnUsXG4ubWVudSAubWVudS1pdGVtLnNmSG92ZXI+dWwuc3ViLW1lbnUge1xuICBsZWZ0OiBhdXRvO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZ2VuZXNpcy1yZXNwb25zaXZlLW1lbnUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgZGlzcGxheTogaW5oZXJpdDtcbiAgfVxufVxuXG4vKiBNZW51IFRvZ2dsZSAmIFN1YiBNZW51IFRvZ2dsZSAqL1xuLm1lbnUtdG9nZ2xlLFxuLnN1Yi1tZW51LXRvZ2dsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItd2lkdGg6IDA7XG4gIGNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAmOmZvY3VzLFxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItd2lkdGg6IDA7XG4gIH1cbn1cblxuLyogTWVudSBUb2dnbGUgKi9cbi5tZW51LXRvZ2dsZSB7XG4gIEBleHRlbmQgJWhlYWRlci1idXR0b25zO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDEwMDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIG9yZGVyOiA0O1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XG4gICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgfVxuXG4gICYuYWN0aXZhdGVkOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMzM1XCI7XG4gIH1cbn1cblxuLyogU3ViIE1lbnUgVG9nZ2xlICovXG4uc3ViLW1lbnUtdG9nZ2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNXB4O1xuICB0b3A6IDE1cHg7XG4gIHotaW5kZXg6IDEwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICY6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2UtaW4tb3V0O1xuICAgIGNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgfVxuXG4gICYuYWN0aXZhdGVkOmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICBjb2xvcjogbGlnaHRlbigkbWFpbi1jb2xvciwgMTAlKTtcbiAgfVxufVxuXG4vKiBIZWFkZXIgTWVudVxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJW1haW4tbmF2LWludGVyYWN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk2JSk7XG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRtYWluLWNvbG9yO1xuICB9XG59XG5cbi8qIEhlYWRlciBNZW51IFN0cnVjdHVyZSAqL1xuLm5hdi1wcmltYXJ5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDY0cHg7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgei1pbmRleDogOTk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgLndyYXAge1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4vKiBNYWluIEhlYWRlciBNZW51ICovXG4ubWVudS1wcmltYXJ5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1MCwgMjUwLCAyNTAsIDEpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcblxuICBAaW5jbHVkZSBtb2JpbGUge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gIC8qIEdlbmVyaWMgbGkgc3R5bGUqL1xuICAubWVudS1pdGVtIHtcbiAgICBAZXh0ZW5kICVtYWluLW1lbnUtaXRlbTtcbiAgfVxuXG4gIC8qIEdlbmVyaWMgbmF2IGxpbmsgc3R5bGUgKi9cbiAgYSB7XG4gICAgQGV4dGVuZCAlbWFpbi1tZW51LWxpbms7XG4gIH1cblxuICAvKiBGaXJzdCBsZXZlbCBsaSAqL1xuICA+bGkge1xuICAgIEBleHRlbmQgJW1haW4tbWVudS1pdGVtLWZpcnN0O1xuXG4gICAgPmEge1xuICAgICAgQGV4dGVuZCAlbWFpbi1tZW51LWxpbmstZmlyc3Q7XG4gICAgfVxuICB9XG5cbiAgLyogTGV2ZWwgMiBNZW51ICovXG4gIC5zdWItbWVudSB7XG4gICAgei1pbmRleDogOTk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCNmZmYsIDYlKTtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBtaW4td2lkdGg6IDE4MHB4O1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgbGVmdDogOTk5OXB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICBib3JkZXItcmFkaXVzOiAwIDAgOHB4IDhweDtcbiAgICB9XG5cbiAgICAvKiBTZWNvbmQgbGV2ZWwgbGkgKi9cbiAgICAubWVudS1pdGVtIHtcbiAgICAgIEBleHRlbmQgJW1haW4tbWVudS1pdGVtLXNlY29uZDtcblxuICAgICAgPmEge1xuICAgICAgICBAZXh0ZW5kICVtYWluLW1lbnUtbGluay1zZWNvbmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qIFN0eWxlcyBmb3IgTWFpbiBOYXZpZ2F0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVtYWluLW1lbnUtaXRlbSB7XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gICYtZmlyc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAvKiBJZiBoYXZlIGNoaWxkcmVuICovXG4gICAgJi5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmJlZm9yZSB7XG4gICAgICBAZXh0ZW5kICV0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItYm90dG9tOiA3cHggc29saWQgJG1haW4tY29sb3I7XG4gICAgICBsZWZ0OiBjYWxjKDUwJSAtIDEwcHgpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW46aG92ZXI6YmVmb3JlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgLyogSWYgSGlnaGxpZ2h0ZWQgKi9cbiAgICAmLm1lbnUtaXRlbS0taGlnaGxpZ2h0IHtcbiAgICAgID5hIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBtYXJnaW46IDAgMTBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuICAgICAgQGV4dGVuZCAlbWFpbi1uYXYtaW50ZXJhY3Q7XG4gICAgfVxuICB9XG5cbiAgJi1zZWNvbmQge1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1xuXG4gICAgICAgID5hIHtcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4lbWFpbi1tZW51LWxpbmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgY29sb3I6ICRtYWluLWNvbG9yLTkwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjQ7XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICBpIHtcbiAgICBmb250LXdlaWdodDogJGZvbnQtbm9ybTtcbiAgfVxuXG4gICYtZmlyc3Qge1xuICAgIHBhZGRpbmc6IDIwcHggMjRweDtcblxuICAgIEBpbmNsdWRlIGRlc2t0b3Age31cbiAgfVxuXG4gICYtc2Vjb25kIHtcbiAgICBwYWRkaW5nOiAxNHB4IDE1cHg7XG5cbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyogSGVhZGVyIFdpZGdldCBBcmVhXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uaGVhZGVyLXdpZGdldC1hcmVhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDEwMTtcbiAgb3JkZXI6IDA7XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgb3JkZXI6IDM7XG4gICAgbWFyZ2luOiAwIDUlIDAgYXV0bztcbiAgfVxuXG4gIC5tZW51IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG5cbiAgICBsaSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC53aWRnZXQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBhLFxuICBidXR0b24ge1xuICAgIC8vIEBleHRlbmQgJWhlYWRlci1idXR0b25zO1xuICB9XG59XG5cbi8qIFByZSBIZWFkZXJcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5wcmUtaGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbiAgcGFkZGluZzogM3B4IDMlO1xuXG4gID4qIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgaSB7XG4gICAgICBtYXJnaW46IDAgM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICBmbGV4OiAxIDEgMDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBsaW5lLWhlaWdodDogMjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgZmxleDogMTEgMSAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgICBmbGV4OiAyIDEgMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIGNvbG9yOiAkcmVkO1xuICB9XG5cbiAgYSB7XG4gICAgc3BhbiB7XG4gICAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ubWVudS1pdGVtLS1oaWdobGlnaHQgYXtcbiAgQGV4dGVuZCAlYnRuO1xuICBAZXh0ZW5kICVidG4tMTtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufSIsIi8qIFNpZGViYXJcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaWRlYmFyIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLnNpZGViYXIgLndpZGdldCB7XG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XG59XG5cbi5zaWRlYmFyIHAge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuIiwiLyogRm9vdGVyXG4gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIEZvb3RlciBXaWRnZXRzXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZm9vdGVyLXdpZGdldHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICRtYWluLWNvbG9yO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMzBweCAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IGNhbGMoMTAwdncgLyAxMCk7XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uLy4uL3N0YXRpYy9sYXllcmVkLXRyaWFuZ2xlLnN2ZycpIG5vLXJlcGVhdCBjZW50ZXIgLyBjb3ZlcjtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIHRyYW5zbGF0ZVkoMTAwJSk7XG4gICAgYXNwZWN0LXJhdGlvOiAxMDtcbiAgICB0b3A6IDA7XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgLndyYXAge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgd2lkdGg6IG1pbig5MCUsICRkZXNrdG9wLXhsLXdpZHRoKTtcbiAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuXG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBnYXA6IDVyZW07XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyIDNmcjtcbiAgICB9XG4gIH1cblxuICAud2lkZ2V0LXRpdGxlIHtcbiAgICBmb250LWZhbWlseTogJG1haW4tZm9udDtcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICBAaW5jbHVkZSBsaW5lLWJvcmRlcigxcHgsICRtYWluLWNvbG9yLCBcImJvdHRvbVwiLCAxNXB4KTtcbiAgfVxuXG4gIC53aWRnZXQge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cbn1cblxuLmZvb3Rlci13aWRnZXQtYXJlYSB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgcCB7XG4gIH1cblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cblxuLmZvb3Rlci13aWRnZXRzIC5tZW51IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICBnYXA6IDAuNXJlbTtcblxuICBsaSB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDNweCAwO1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjM7XG4gICAgICBjb2xvcjogJG9mZi13aGl0ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG5cbiAgICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgICAvLyBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICBpIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uZm9vdGVyLXdpZGdldC1hcmVhIHVsW2lkKj1cInNvY2lhbFwiXSB7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGdhcDogMXJlbTtcblxuICBAaW5jbHVkZSBtb2JpbGUge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgbGkge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgbGkgYSB7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLmZvb3Rlci13aWRnZXRzLTQge1xuICBjb2xvcjogJG9mZi13aGl0ZTtcblxuICBoMiB7XG4gICAgY29sb3I6ICRvZmYtd2hpdGU7XG4gIH1cbn1cblxuLnRleHR3aWRnZXQ+cCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZm9vdGVyLXdpZGdldC1hcmVhOmxhc3QtY2hpbGQsXG4uZm9vdGVyLXdpZGdldHMgLndpZGdldDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuI21lbnUtc29jaWFsLW1lZGlhLW1lbnUge1xuICBAaW5jbHVkZSBtb2JpbGUge1xuICAgIC5tZW51LWl0ZW0ge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgLnNpdGUtaGVhZGVyICYge1xuICAgICAgLy8gdG8gaGlkZSBkaXNwbGF5IGZyb20gaGVhZGVyXG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vKiBTaXRlIEZvb3RlclxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnNpdGUtZm9vdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XG4gIGNvbG9yOiAkb2ZmLXdoaXRlO1xuICBsaW5lLWhlaWdodDogMS41O1xuXG4gID4ud3JhcCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGdhcDogMTVyZW07XG4gICAgd2lkdGg6IG1pbig5MCUsICRkZXNrdG9wLXhsLXdpZHRoKTtcbiAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICAgIHBhZGRpbmc6IDE1cmVtIDAgMnJlbTtcblxuICAgIGltZyB7XG4gICAgICBmaWx0ZXI6IHNhdHVyYXRlKDApIGJyaWdodG5lc3MoMCkgaW52ZXJ0KDEpO1xuICAgICAgd2lkdGg6IDE1MHB4O1xuICAgIH1cblxuICAgID5wIHtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4zO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbn0iLCIvKiBEaXN0cmlidXRvciBQb3J0YWwgQXBwIFNoZWxsXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uZGlzdHJpYnV0b3Itc2hlbGwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgbWluLWhlaWdodDogMTAwdmg7XG59XG5cbi8qIFNpZGViYXJcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5kaXN0cmlidXRvci1zaWRlYmFyIHtcbiAgZmxleDogMCAwIDI4MHB4O1xuICB3aWR0aDogMjgwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgcGFkZGluZzogMzBweCAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgY29sb3I6ICNmZmY7XG5cbiAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICB3aWR0aDogMjYwcHg7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1pbi1vdXQ7XG4gIH1cbn1cblxuLmRpc3RyaWJ1dG9yLXNoZWxsLmRpc3RyaWJ1dG9yLXNpZGViYXItb3BlbiB7XG4gIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgLmRpc3RyaWJ1dG9yLXNpZGViYXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgYm94LXNoYWRvdzogMCAwIDMwcHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgaW5zZXQ6IDA7XG4gICAgICB6LWluZGV4OiA5OTk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgfVxuICB9XG59XG5cbi5kaXN0cmlidXRvci1zaWRlYmFyLWxvZ28ge1xuICAuY3VzdG9tLWxvZ28tbGluayxcbiAgaW1nIHtcbiAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMCkgaW52ZXJ0KDEpO1xuICAgIG1heC13aWR0aDogMTQwcHg7XG4gIH1cbn1cblxuLmRpc3RyaWJ1dG9yLXNpZGViYXItd2VsY29tZSB7XG4gIG1hcmdpbjogMjBweCAwIDA7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuXG4gIHN0cm9uZyB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gIH1cbn1cblxuLmRpc3RyaWJ1dG9yLW5hdiB7XG4gIGZsZXg6IDE7XG4gIG1hcmdpbi10b3A6IDQwcHg7XG5cbiAgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIH1cblxuICBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICB9XG5cbiAgYSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2UtaW4tb3V0O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgaSB7XG4gICAgICB3aWR0aDogMThweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICBsaS5pcy1hY3RpdmUgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBjb2xvcjogJG1haW4tY29sb3ItNzAwO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICB9XG59XG5cbi8qIE1haW4gY29sdW1uXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZGlzdHJpYnV0b3ItbWFpbiB7XG4gIGZsZXg6IDEgMSAwO1xuICBtaW4td2lkdGg6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbn1cblxuLmRpc3RyaWJ1dG9yLWNvbnRlbnQge1xuICBmbGV4OiAxO1xufVxuXG4vKiBUb3AgYmFyXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZGlzdHJpYnV0b3ItaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDE1cHggMjBweDtcbiAgcGFkZGluZzogMjBweCA1JTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGhzbCgwLCAwJSwgOTAlKTtcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBwYWRkaW5nOiAyNHB4IDQwcHg7XG4gIH1cbn1cblxuLmRpc3RyaWJ1dG9yLW5hdi10b2dnbGUge1xuICBvcmRlcjogLTE7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGNvbG9yOiAkZGFyay1jb2xvcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uZGlzdHJpYnV0b3ItaGVhZGVyLXRpdGxlIHtcbiAgZmxleDogMSAxIGF1dG87XG5cbiAgaDEge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDJyZW07XG4gIH1cblxuICBwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6IGhzbCgwLCAwJSwgNDUlKTtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgfVxufVxuXG4uZGlzdHJpYnV0b3ItaGVhZGVyLXVzZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG59XG5cbi5kaXN0cmlidXRvci1oZWFkZXItdXNlci1pbml0aWFscyB7XG4gIEBpbmNsdWRlIGNpcmNsZS1vYmplY3QoNDBweCwgJG1haW4tY29sb3IsIDEuNHJlbSk7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbi5kaXN0cmlidXRvci1oZWFkZXItdXNlci1pbmZvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcblxuICBzcGFuIHtcbiAgICBjb2xvcjogaHNsKDAsIDAlLCA0NSUpO1xuICB9XG59XG5cbi5kaXN0cmlidXRvci1oZWFkZXItbG9nb3V0IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBtYXJnaW4tbGVmdDogNHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGNvbG9yOiAkbWFpbi1jb2xvci03MDA7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZS1pbi1vdXQ7XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICRtYWluLWNvbG9yLTkwMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk1JSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5cbi8qIEJhbm5lclxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmRpc3RyaWJ1dG9yLWJhbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWluLWhlaWdodDogY2FsYygxMDB2dyAvIDQpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIG1hcmdpbjogNSUgNSUgMDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBtYXJnaW46IDQwcHggNDBweCAwO1xuICB9XG59XG5cbi5kaXN0cmlidXRvci1iYW5uZXItaW1hZ2Uge1xuICBAaW5jbHVkZSBhYnNvbHV0ZTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5kaXN0cmlidXRvci1iYW5uZXItY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDI1cHg7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgdG8gdG9wLFxuICAgIHJnYmEoMCwgMCwgMCwgMC43NSkgMCUsXG4gICAgcmdiYSgwLCAwLCAwLCAwKSAxMDAlXG4gICk7XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgcGFkZGluZzogNDBweDtcbiAgfVxuXG4gIGgyIHtcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG5cbiAgcCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogNjQwcHg7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gIH1cbn1cblxuLyogUHJvZHVjdCBsaWJyYXJ5XG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZGlzdHJpYnV0b3ItcHJvZHVjdC1jYXRlZ29yeSB7XG4gIG1hcmdpbi10b3A6IDQwcHg7XG4gIHBhZGRpbmc6IDI1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTclKTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBwYWRkaW5nOiAzMHB4IDQwcHg7XG4gIH1cblxuICBoMyB7XG4gICAgbWFyZ2luOiAwIDAgOHB4O1xuICB9XG59XG5cbi5kaXN0cmlidXRvci1wcm9kdWN0LWNhdGVnb3J5LWRlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgY29sb3I6IGhzbCgwLCAwJSwgNDAlKTtcbiAgZm9udC1zaXplOiAxLjRyZW07XG59XG5cbi5kaXN0cmlidXRvci1wcm9kdWN0LWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDEuNXJlbSAxcmVtO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuXG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICBnYXA6IDJyZW07XG4gIH1cbn1cblxuLmRpc3RyaWJ1dG9yLXByb2R1Y3QtY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246XG4gICAgdHJhbnNmb3JtIDAuMnMgZWFzZS1pbi1vdXQsXG4gICAgYm94LXNoYWRvdyAwLjJzIGVhc2UtaW4tb3V0O1xuXG4gICY6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDAgMTVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTtcbiAgfVxuXG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDE1cHg7XG5cbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIH1cbiAgfVxufVxuXG4uZGlzdHJpYnV0b3ItcHJvZHVjdC1jYXJkLXRpdGxlIHtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiBTaW5nbGUgcHJvZHVjdFxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmRpc3RyaWJ1dG9yLWJhY2stbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgY29sb3I6ICRtYWluLWNvbG9yLTcwMDtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgJjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbn1cblxuLmRpc3RyaWJ1dG9yLXByb2R1Y3QtbGF5b3V0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICBnYXA6IDQwcHg7XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB9XG59XG5cbi5kaXN0cmlidXRvci1wcm9kdWN0LW1haW4ge1xuICBmbGV4OiAxIDEgMDtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uZGlzdHJpYnV0b3ItcHJvZHVjdC1leWVicm93IHtcbiAgbWFyZ2luOiAwIDAgNHB4O1xuICBjb2xvcjogJG1haW4tY29sb3I7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICBmb250LXNpemU6IDEuNHJlbTtcbn1cblxuLmRpc3RyaWJ1dG9yLXByb2R1Y3QtbWFpbiBoMiB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xufVxuXG4uZGlzdHJpYnV0b3ItcHJvZHVjdC1kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiBoc2woMCwgMCUsIDMwJSk7XG5cbiAgPiAqOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLmRpc3RyaWJ1dG9yLWZseWVyLWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi5kaXN0cmlidXRvci1kaXZpZGVyIHtcbiAgbWFyZ2luOiAzMHB4IDA7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRtYWluLWNvbG9yO1xufVxuXG4uZGlzdHJpYnV0b3ItY2hhcmFjdGVyaXN0aWNzLXRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cbiAgdGgsXG4gIHRkIHtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgODglKTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIH1cblxuICB0aCB7XG4gICAgd2lkdGg6IDQwJTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtbm9ybTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk4JSk7XG4gIH1cbn1cblxuXG4vKiBTaWRlYmFyIGNhcmRzXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZGlzdHJpYnV0b3ItcHJvZHVjdC1zaWRlYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICBnYXA6IDIwcHg7XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgZmxleDogMCAwIDMyMHB4O1xuICB9XG59XG5cbi5kaXN0cmlidXRvci1kb2MtY2FyZCxcbi5kaXN0cmlidXRvci1nYWxsZXJ5LWNhcmQge1xuICBib3JkZXI6IDFweCBzb2xpZCBoc2woMCwgMCUsIDg4JSk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMjBweDtcbn1cblxuLmRpc3RyaWJ1dG9yLWRvYy1jYXJkLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBoc2woMCwgMCUsIDg4JSk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmRpc3RyaWJ1dG9yLWRvYy1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMTBweDtcbiAgcGFkZGluZzogMTJweCAwO1xuXG4gICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGhzbCgwLCAwJSwgOTIlKTtcbiAgfVxufVxuXG4uZGlzdHJpYnV0b3ItZG9jLW5hbWUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcblxuICBpIHtcbiAgICBjb2xvcjogJHJlZDtcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgfVxufVxuXG4uZGlzdHJpYnV0b3ItZG9jLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEycHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuXG4gIGEge1xuICAgIGNvbG9yOiAkbWFpbi1jb2xvci03MDA7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkbWFpbi1jb2xvci05MDA7XG4gICAgfVxuICB9XG59XG5cbi5kaXN0cmlidXRvci1nYWxsZXJ5LWNhcmQtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgaHNsKDAsIDAlLCA4OCUpO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5kaXN0cmlidXRvci1nYWxsZXJ5LWNhcm91c2VsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xufVxuXG4uZGlzdHJpYnV0b3ItZ2FsbGVyeS10cmFjayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogMSAxIDA7XG4gIGFzcGVjdC1yYXRpbzogNCAvIDM7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cblxuLmRpc3RyaWJ1dG9yLWdhbGxlcnktc2xpZGUge1xuICBAaW5jbHVkZSBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBub25lO1xuXG4gICYuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICB9XG59XG5cbi5kaXN0cmlidXRvci1nYWxsZXJ5LWV4cGFuZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHpvb20taW47XG59XG5cbi5kaXN0cmlidXRvci1nYWxsZXJ5LXByZXYsXG4uZGlzdHJpYnV0b3ItZ2FsbGVyeS1uZXh0IHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJG1haW4tY29sb3ItNzAwO1xuICB9XG59XG5cbi5kaXN0cmlidXRvci1nYWxsZXJ5LWNhcHRpb24ge1xuICBtYXJnaW46IDEycHggMCAwO1xuICBjb2xvcjogaHNsKDAsIDAlLCA0MCUpO1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKiBMaWdodGJveFxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmRpc3RyaWJ1dG9yLWxpZ2h0Ym94IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogMjAwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMjBweDtcbiAgcGFkZGluZzogMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcblxuICAmW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmRpc3RyaWJ1dG9yLWxpZ2h0Ym94LWZpZ3VyZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxNXB4O1xuICBtYXgtd2lkdGg6IDkwdnc7XG4gIG1heC1oZWlnaHQ6IDkwdmg7XG4gIG1hcmdpbjogMDtcblxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiA3NXZoO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB9XG5cbiAgZmlnY2FwdGlvbiB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4uZGlzdHJpYnV0b3ItbGlnaHRib3gtY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMjBweDtcbiAgcmlnaHQ6IDIwcHg7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDIuNHJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiBoc2woMCwgMCUsIDc1JSk7XG4gIH1cbn1cblxuLmRpc3RyaWJ1dG9yLWxpZ2h0Ym94LXByZXYsXG4uZGlzdHJpYnV0b3ItbGlnaHRib3gtbmV4dCB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAyLjRyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogaHNsKDAsIDAlLCA3NSUpO1xuICB9XG59XG4iLCIvKiBHcmFwaGljc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogU2Vjb25kYXJ5IEdyYXBoaWNcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVzZWNvbmRhcnktZ3JhcGhpYyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAmOmFmdGVyLFxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDQwMHB4O1xuICAgIGhlaWdodDogNDAwcHg7XG4gICAgb3BhY2l0eTogMC4xO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG5cbiAgJjpiZWZvcmUge1xuICAgIHRvcDogMTBweDtcbiAgICBsZWZ0OiAxMHB4O1xuICB9XG5cbiAgJjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMjIwZGVnKTtcbiAgICBib3R0b206IDEwcHg7XG4gICAgcmlnaHQ6IDEwcHg7XG4gIH1cbn1cbi8vIC5zZWNvbmRhcnktZ3JhcGhpYyB7XG4vLyAgIEBleHRlbmQgJXNlY29uZGFyeS1ncmFwaGljO1xuLy8gfVxuLyogQmFja2dyb3VuZCBQYXR0ZXJuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiViZy1wYXR0ZXJuIHtcbiAgYmFja2dyb3VuZDogJHBhdHRlcm4tMS1saW5rIHJlcGVhdCBjZW50ZXI7XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gIH1cbn1cbi8qIEdyYXBoaWMgRGl2aWRlciAxXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVncmFwaGljLWRpdmlkZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEyMHB4O1xuICBsZWZ0OiAwO1xuICAvLyBiYWNrZ3JvdW5kOiAkZ3JhcGhpYy1kaXZpZGVyLTEtbGluayBuby1yZXBlYXQgYm90dG9tIC8gMTAydncgYXV0bztcbn1cblxuJWdyYXBoaWMtZGl2aWRlci10b3Age1xuICBAZXh0ZW5kICVncmFwaGljLWRpdmlkZXI7XG4gIHRvcDogLTExOXB4O1xufVxuXG4lZ3JhcGhpYy1kaXZpZGVyLWJvdHRvbSB7XG4gIEBleHRlbmQgJWdyYXBoaWMtZGl2aWRlcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgYm90dG9tOiAtMTE5cHg7XG59XG4vKiBHcmFwaGljIERpdmlkZXIgMiAtIGJydXNoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVncmFwaGljLWRpdmlkZXItLWJydXNoIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1MHB4O1xuICBsZWZ0OiAwO1xuICAvLyBiYWNrZ3JvdW5kOiAkZ3JhcGhpYy1kaXZpZGVyLTItbGluayBuby1yZXBlYXQgYm90dG9tIC8gMTAydncgYXV0bztcbn1cblxuJWdyYXBoaWMtZGl2aWRlci0tYnJ1c2gtdG9wIHtcbiAgQGV4dGVuZCAlZ3JhcGhpYy1kaXZpZGVyLS1icnVzaDtcbiAgdG9wOiAtNDlweDtcbn1cblxuJWdyYXBoaWMtZGl2aWRlci0tYnJ1c2gtYm90dG9tIHtcbiAgQGV4dGVuZCAlZ3JhcGhpYy1kaXZpZGVyLS1icnVzaDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgYm90dG9tOiAtNDlweDtcbn1cbi8qIERpdmlkZXIgYWZ0ZXIgdGl0bGVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJWRpdmlkZXItYWZ0ZXItdGl0bGUge1xuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAkbWFpbi1jb2xvcjtcbiAgICB3aWR0aDogNTBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDIwcHggMDtcbiAgICBvcGFjaXR5OiAwLjY7XG4gIH1cbn1cbiIsIi8qIEJ1dHRvbnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiBidG4tMVxuIGJ0bi0yXG4gYnRuLWljb24tdGV4dFxuICovXG4vKiBTdHJ1Y3R1cmUgb2YgYSBidXR0b24gKi9cbkBtaXhpbiBidG4oJHNpemUpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0b3A6IDA7XG4gIGJvcmRlcjogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW4tb3V0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgQGlmICRzaXplID09c21hbGwge1xuICAgIHBhZGRpbmc6IDAuNmVtIDAuOWVtO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC40O1xuICB9XG5cbiAgQGlmICRzaXplID09bWVkaXVtIHtcbiAgICBwYWRkaW5nOiAwLjllbSAxLjJlbTtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMztcbiAgfVxuXG4gIEBpZiAkc2l6ZSA9PWxhcmdlIHtcbiAgICBwYWRkaW5nOiAxLjJlbTtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuXG4lYnRuIHtcbiAgQGluY2x1ZGUgYnRuKG1lZGl1bSk7XG5cbiAgJi1zbWFsbCB7XG4gICAgQGluY2x1ZGUgYnRuKHNtYWxsKTtcbiAgfVxuXG4gICYtbGFyZ2Uge1xuICAgIEBpbmNsdWRlIGJ0bihsYXJnZSk7XG4gIH1cbn1cblxuLmJ0biB7XG4gIEBleHRlbmQgJWJ0bjtcblxuICAmLmFsaWduLWMge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG5cbiAgJi1zbWFsbCB7XG4gICAgQGV4dGVuZCAlYnRuLXNtYWxsO1xuICB9XG5cbiAgJi1sYXJnZSB7XG4gICAgQGV4dGVuZCAlYnRuLWxhcmdlO1xuICB9XG59XG5cbi8qIFNvbGlkIEJ1dHRvbiAtIGJ0bi0xXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBidG4tMSgkYmctY29sb3IsICRjb2xvcikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmctY29sb3I7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRiZy1jb2xvciwgMTUlKTtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoM3B4KTtcbiAgfVxufVxuXG4lYnRuLTEge1xuICBAaW5jbHVkZSBidG4tMShkYXJrZW4oJG1haW4tY29sb3IsIDAlKSwgI2ZmZik7XG5cbiAgJi1zZWNvbmRhcnkge1xuICAgIEBpbmNsdWRlIGJ0bi0xKGhzbCgwLCAwJSwgNjAlKSwgaHNsKDAsIDAlLCAxMDAlKSk7XG4gIH1cblxuICAmLWRhcmsge1xuICAgIEBpbmNsdWRlIGJ0bi0xKCRtYWluLWNvbG9yLTgwMCwgI2ZmZik7XG4gIH1cblxuICAmLWxpZ2h0IHtcbiAgICBAaW5jbHVkZSBidG4tMShoc2woMCwgMCUsIDkwJSksIGhzbCgwLCAwJSwgNTAlKSk7XG4gIH1cblxuICAmLXN1Y2Nlc3Mge1xuICAgIEBpbmNsdWRlIGJ0bi0xKCRncmVlbiwgaHNsKDAsIDAlLCAxMDAlKSk7XG4gIH1cblxuICAmLWluZm8ge1xuICAgIEBpbmNsdWRlIGJ0bi0xKCRibHVlLCBoc2woMCwgMCUsIDEwMCUpKTtcbiAgfVxuXG4gICYtd2FybmluZyB7XG4gICAgQGluY2x1ZGUgYnRuLTEoJHllbGxvdywgZGFya2VuKCR5ZWxsb3csIDQwJSkpO1xuICB9XG5cbiAgJi1kYW5nZXIge1xuICAgIEBpbmNsdWRlIGJ0bi0xKCRyZWQsIGhzbCgwLCAwJSwgMTAwJSkpO1xuICB9XG59XG5cbi5idG4tMSB7XG4gIEBleHRlbmQgJWJ0bi0xO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAwO1xuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogOTAlO1xuICAgIHRvcDogNSU7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB6LWluZGV4OiAtMTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vLi4vc3RhdGljL3gtaWNvbi5zdmcnKSBuby1yZXBlYXQgY2VudGVyIC8gY29udGFpbjtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgICY6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgyMCk7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cztcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgJi1kYXJrIHtcbiAgICBAZXh0ZW5kICVidG4tMS1kYXJrO1xuICB9XG5cbiAgJi1zZWNvbmRhcnkge1xuICAgIEBleHRlbmQgJWJ0bi0xLXNlY29uZGFyeTtcbiAgfVxuXG4gICYtbGlnaHQge1xuICAgIEBleHRlbmQgJWJ0bi0xLWxpZ2h0O1xuICB9XG5cbiAgJi1zdWNjZXNzIHtcbiAgICBAZXh0ZW5kICVidG4tMS1zdWNjZXNzO1xuICB9XG5cbiAgJi1pbmZvIHtcbiAgICBAZXh0ZW5kICVidG4tMS1pbmZvO1xuICB9XG5cbiAgJi13YXJuaW5nIHtcbiAgICBAZXh0ZW5kICVidG4tMS13YXJuaW5nO1xuICB9XG5cbiAgJi1kYW5nZXIge1xuICAgIEBleHRlbmQgJWJ0bi0xLWRhbmdlcjtcbiAgfVxufVxuXG4vKiBPdXRsaW5lIEJ1dHRvbiAtIGJ0bi0yXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBidG4tMigkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGJvcmRlcjogMnB4IHNvbGlkIGxpZ2h0ZW4oJGNvbG9yLCAxMCUpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxufVxuXG4lYnRuLTIge1xuICBAaW5jbHVkZSBidG4tMigkbWFpbi1jb2xvcik7XG5cbiAgJi13aGl0ZSB7XG4gICAgQGluY2x1ZGUgYnRuLTIoI2ZmZik7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDE1JSk7XG4gICAgfVxuICB9XG59XG5cbi5idG4tMiB7XG4gIEBleHRlbmQgJWJ0bi0yO1xuXG4gICYtd2hpdGUge1xuICAgIEBleHRlbmQgJWJ0bi0yLXdoaXRlO1xuICB9XG59XG5cbi8qIEJ1dHRvbiBJY29uIFRleHQgLSAuYnRuLWljb24tdGV4dFxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4lYnRuLWljb24tdGV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRtYWluLWNvbG9yLCAxNSUpO1xuICBjb2xvcjogI2ZmZjtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG5cbiAgaSB7XG4gICAgQGluY2x1ZGUgY2lyY2xlLW9iamVjdCgzMHB4LCBoc2xhKDAsIDAlLCAxMDAlLCAwKSwgMThweCk7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gIH1cbn1cblxuLmJ0bi1pY29uLXRleHQge1xuICBAZXh0ZW5kICVidG4taWNvbi10ZXh0O1xufSIsIi8qIEdlbmVzaXMgV2lkZ2V0c1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogV2lkZ2V0XG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ud2lkZ2V0IHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbn1cblxuLndpZGdldCBwOmxhc3QtY2hpbGQsXG4ud2lkZ2V0IHVsID4gbGk6bGFzdC1vZi10eXBlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLndpZGdldCB1bCA+IGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLndpZGdldCB1bCA+IGxpOmxhc3Qtb2YtdHlwZSB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4ud2lkZ2V0IG9sID4gbGkge1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICB0ZXh0LWluZGVudDogLTIwcHg7XG59XG5cbi53aWRnZXQgbGkgbGkge1xuICBib3JkZXI6IDA7XG4gIG1hcmdpbjogMCAwIDAgMzBweDtcbiAgcGFkZGluZzogMDtcbn1cblxuLndpZGdldF9jYWxlbmRhciB0YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ud2lkZ2V0X2NhbGVuZGFyIHRkLFxuLndpZGdldF9jYWxlbmRhciB0aCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiIsIi8qIEZvcm1zXG4gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiogRm9ybSBFcnJvcnNcbiAqL1xuJWludmFsaWQtbGFiZWwge1xuICBjb2xvcjogJHJlZCAhaW1wb3J0YW50O1xufVxuXG4laW52YWxpZC1pbnB1dCB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCAkcmVkICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi8qQ09OVEFDVCBGT1JNKi9cbjpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG5cbjo6cGxhY2Vob2xkZXIge1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbiN7JGlucHV0LWZpZWxkc30sXG50ZXh0YXJlYSB7XG4gIGhlaWdodDogMzhweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRDFEMUQxO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiAjNTU1O1xuXG4gIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIH1cbn1cblxuLyogUmVtb3ZlcyBhd2t3YXJkIGRlZmF1bHQgc3R5bGVzIG9uIHNvbWUgaW5wdXRzIGZvciBpT1MgKi9cbiN7JGlucHV0LWZpZWxkc30sXG50ZXh0YXJlYSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4jeyRpbnB1dC1maWVsZHN9LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuXG4gICY6Zm9jdXMsXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYWVhZWE7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JiYmJiYjtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHNhdHVyYXRlKCRtYWluLWNvbG9yLCAxNSUpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICB9XG59XG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuZm9ybSB7XG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cblxuICBsYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gIH1cblxuICB0ZXh0YXJlYSB7XG4gICAgbWluLWhlaWdodDogODBweDtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICAmW3R5cGU9XCJmaWxlXCJdIHtcbiAgICAgIHBhZGRpbmc6IDAuNmVtIDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG5cbiAgICAmW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgQGV4dGVuZCAlYnRuO1xuICAgICAgQGV4dGVuZCAlYnRuLTE7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmMWYxZjI7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgI2NjYztcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLypXUENGNyBTUEVDSUZJQyBFUlJPUiBBTkQgQVBQUk9WQUwgTUVTU0FHRVMqL1xuLndwY2Y3IHtcbiAgZm9ybSB7XG4gICAgLndwY2Y3LWxpc3QtaXRlbSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLndwY2Y3LW5vdC12YWxpZC10aXAge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YTRhO1xuICAgICAgcGFkZGluZzogMC4yZW0gMC42ZW07XG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDVweCA1cHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLndwY2Y3LXJlc3BvbnNlLW91dHB1dCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW46IDEwcHggMDtcbiAgICAgIHBhZGRpbmc6IDAuNWVtIDFlbTtcbiAgICAgIGJvcmRlcjogMCBzb2xpZCAjY2M0YTRhO1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICBsaW5lLWhlaWdodDogMi4ycmVtO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YTRhO1xuICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBAZXh0ZW5kICVmbGV4Ym94LWMtYztcbiAgICAgICAgQGV4dGVuZCAlaWNvbjtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgICAgIGxlZnQ6IDVweDtcbiAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDE1cHgpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAud3BjZjctYWNjZXB0YW5jZS1taXNzaW5nLFxuICAgIC53cGNmNy12YWxpZGF0aW9uLWVycm9ycyB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcXGVhMGFcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAud3BjZjctbWFpbC1zZW50LW9rIHtcbiAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuO1xuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxlYTAzXCI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zZW50IC53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xuICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcXGVhMDNcIjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyogU2VsZWN0IFJlc2V0XG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbnNlbGVjdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMTtcbiAgY29sb3I6ICM1NTU7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIHBhZGRpbmc6IDAuNmVtIDEuNGVtIDAuNWVtIDAuOGVtO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDAuM2VtO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVMtQVNDSUksJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjI5Mi40JTIyJTIwaGVpZ2h0JTNEJTIyMjkyLjQlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzAwN0NCMiUyMiUyMGQlM0QlMjJNMjg3JTIwNjkuNGExNy42JTIwMTcuNiUyMDAlMjAwJTIwMC0xMy01LjRIMTguNGMtNSUyMDAtOS4zJTIwMS44LTEyLjklMjA1LjRBMTcuNiUyMDE3LjYlMjAwJTIwMCUyMDAlMjAwJTIwODIuMmMwJTIwNSUyMDEuOCUyMDkuMyUyMDUuNCUyMDEyLjlsMTI4JTIwMTI3LjljMy42JTIwMy42JTIwNy44JTIwNS40JTIwMTIuOCUyMDUuNHM5LjItMS44JTIwMTIuOC01LjRMMjg3JTIwOTVjMy41LTMuNSUyMDUuNC03LjglMjA1LjQtMTIuOCUyMDAtNS0xLjktOS4yLTUuNS0xMi44eiUyMiUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjdlbSB0b3AgNTAlLCAwIDA7XG4gIGJhY2tncm91bmQtc2l6ZTogMC42NWVtIGF1dG8sIDEwMCU7XG5cbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogIzg4ODtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogI2FhYTtcbiAgICBib3gtc2hhZG93OiAwIDAgMXB4IDNweCByZ2JhKDU5LCAxNTMsIDI1MiwgLjcpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAtbW96LW1hYy1mb2N1c3Jpbmc7XG4gICAgY29sb3I6ICMyMjI7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gICYgb3B0aW9uIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG59XG5cbi8qIENoZWNrYm94IFJlc2V0XG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblxuICArKiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgZGlzcGxheTogaW5saW5lO1xuXG4gICAgPioge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgJjphZnRlcixcbiAgICAmOmJlZm9yZSB7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICBtaW4td2lkdGg6IDE2cHg7XG4gICAgICB3aWR0aDogMTZweDtcbiAgICAgIGJvcmRlcjogc29saWQgMnB4ICNjY2M7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaGVpZ2h0OiAxMXB4O1xuICAgICAgd2lkdGg6IDIycHg7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgM3B4ICM5OTk7XG4gICAgICBib3JkZXItbGVmdDogc29saWQgM3B4ICM5OTk7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwKTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgICBAZXh0ZW5kICV0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgIH1cbiAgfVxuXG4gICsqOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAwLjg7XG4gIH1cblxuICAmOmNoZWNrZWQrKiB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oI2ZmZiwgNSUpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCNmZmYsIDUlKTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKC44KTtcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDRweCBsaWdodGVuKCRncmVlbiwgMCk7XG4gICAgICBib3JkZXItbGVmdDogc29saWQgNHB4IGxpZ2h0ZW4oJGdyZWVuLCAwKTtcbiAgICB9XG4gIH1cbn1cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXItd2lkdGg6IDA7XG59IiwiLyogTGlzdCBzdHlsZVxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJWl0ZW0tbGlzdCB7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XG5cbiAgbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgbWFyZ2luLWxlZnQ6IDI0cHg7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgLy8gbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICB9XG4gIH1cblxuICBvbCxcbiAgdWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLml0ZW0tbGlzdCB7XG4gIEBleHRlbmQgJWl0ZW0tbGlzdDtcblxuICA+IGxpIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gIH1cbn1cblxuLm51bWJlci1saXN0IHtcbiAgQGV4dGVuZCAlaXRlbS1saXN0O1xuXG4gID4gbGkge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbiAgfVxufVxuLyogRW50cnkgTWV0YVxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmVudHJ5LWZvb3RlciAuZW50cnktbWV0YSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xuICBwYWRkaW5nLXRvcDogMjBweDtcbn1cblxuLmVudHJ5LWNvbW1lbnRzLWxpbms6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMDE0XCI7XG4gIG1hcmdpbjogMCA2cHggMCAycHg7XG59XG4vKiBQYWdpbmF0aW9uXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ucGFnaW5hdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgQGV4dGVuZCAlZmxleGJveC1jLWM7XG4gIG1hcmdpbjogNjBweCAwO1xufVxuXG4uYWRqYWNlbnQtZW50cnktcGFnaW5hdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5hcmNoaXZlLXBhZ2luYXRpb24gbGkge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5hcmNoaXZlLXBhZ2luYXRpb24gbGkgYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGNvbG9yOiAjMzMzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5hcmNoaXZlLXBhZ2luYXRpb24gbGkgYTpmb2N1cyxcbi5hcmNoaXZlLXBhZ2luYXRpb24gbGkgYTpob3Zlcixcbi5hcmNoaXZlLXBhZ2luYXRpb24gbGkuYWN0aXZlIGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xuICBjb2xvcjogI2ZmZjtcbn1cbiIsIi8qIFNlY3Rpb24gVGl0bGVcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zZWN0aW9uLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgd2lkdGg6IG1pbig3MDBweCwgMTAwJSk7XG5cbiAgJi5hbGlnbi1jIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgfVxuXG4gIGg0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6ICRtYWluLWNvbG9yO1xuICAgIGZvbnQtZmFtaWx5OiAkbWFpbi1mb250O1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4yO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxufVxuXG4vKiBEaXZpZGVyXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5ociB7XG4gIGJvcmRlcjogMDtcbn1cblxuaHIuc21hbGwge1xuICBtYXJnaW46IDEwcHggMDtcbn1cblxuJWRpdmlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMTVweCAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJG1haW4tY29sb3I7XG4gIHdpZHRoOiA1MHB4O1xufVxuXG4uZGl2aWRlciB7XG4gIEBleHRlbmQgJWRpdmlkZXI7XG5cbiAgJi1jIHtcbiAgICBAZXh0ZW5kICVkaXZpZGVyO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufSIsIi8qIEltYWdlIENhcmRcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbjxmaWd1cmUgY2xhc3M9XCJpbWctY2FyZFwiPlxuICA8aW1nIHNyYz1cIlwiPlxuICA8ZmlnY2FwdGlvbj48L2ZpZ2NhcHRpb24+XG48L2ZpZ3VyZT5cbiovXG4uaW1nLWNhcmQge1xuICBAZXh0ZW5kICVpbWctY2FyZDtcbn1cblxuJWltZy1jYXJkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHotaW5kZXg6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG5cbiAgJjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICB6LWluZGV4OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIEBpbmNsdWRlIGdyYWRpZW50LWZhZGUoMTAsMTAlLDEwJSx0b3ApO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgaW1nIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuOHMgZWFzZS1pbi1vdXQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgb3BhY2l0eTogMC44O1xuICB9XG5cbiAgZmlnY2FwdGlvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAqIDEuMTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMTtcbiAgfVxufVxuLyogTG9nbyBHYWxsZXJ5XG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG48c2VjdGlvbiBjbGFzcz1cImxvZ28tc2hvd2Nhc2VcIj5cbiAgPGhlYWRlciBjbGFzcz1cInNlY3Rpb24tdGl0bGUgYWxpZ24tY1wiPlxuICAgIDxoMj5PdXIgQ2xpZW50czwvaDI+XG4gICAgPGhyIGNsYXNzPVwiZGl2aWRlci1jXCI+XG4gICAgPHA+SGVyZSBhcmUgc29tZSBvZiBvdXIgb3VyIGNsaWVudHMuPC9wPlxuICA8L2hlYWRlcj5cblxuICA8ZGl2IGNsYXNzPVwibG9nby1zaG93Y2FzZS1nYWxsZXJ5XCI+XG4gICAgPGltZyBzcmM9XCIuLi8uLi8uLi9zdGF0aWMvbG9nby0xLmpwZ1wiPlxuICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiovXG4ubG9nby1mZWF0dXJlLWdhbGxlcnkge1xuICBAZXh0ZW5kICVsb2dvLWZlYXR1cmUtZ2FsbGVyeTtcbn1cblxuJWxvZ28tZmVhdHVyZS1nYWxsZXJ5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBAZXh0ZW5kICVmbGV4Ym94LWMtYztcblxuICBpbWcge1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgcGFkZGluZzogMjBweDtcbiAgfVxufVxuLyogSW1hZ2UgQmFubmVyXG4gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICA8c2VjdGlvbiBjbGFzcz1cImltYWdlLWJhbm5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgY29udGFpbmVyLWxlZnRcIj5cbiAgICAgIDxoMz5UaXRsZTwvaDM+XG4gICAgICA8cD5EZXNjcmlwdGlvbjwvcD5cbiAgICAgIDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJidG4gYnRuLTNcIj5MZWFybiBNb3JlPC9hPlxuICAgIDwvZGl2PlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9hc2QuanBnXCI+XG4gIDwvc2VjdGlvbj5cblxuICAqL1xuLy8gLmltYWdlLWJhbm5lciB7XG4vLyAgIEBleHRlbmQgJWltYWdlLWJhbm5lcjtcbi8vIH1cblxuJWltYWdlLWJhbm5lciB7XG4gIEBleHRlbmQgJWJhbm5lcjtcbiAgcGFkZGluZzogMTBweDtcbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgcGFkZGluZzogNjBweCAwO1xuICB9XG5cbiAgLmNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgcGFkZGluZzogMzBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuOCk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggMCByZ2JhKDAsMCwwLDAuMSk7XG5cbiAgICAmLmNvbnRhaW5lci1sZWZ0IHtcbiAgICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgICB3aWR0aDogY2FsYygjeyRkZXNrdG9wLXdpZHRofSAqIDAuNSk7XG4gICAgICAgIG1heC13aWR0aDogJGRlc2t0b3Atd2lkdGg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKCgxMDAlIC0gI3skZGVza3RvcC13aWR0aH0pIC8gMik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5jb250YWluZXItcmlnaHQge1xuICAgICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygoMTAwJSAtICN7JGRlc2t0b3Atd2lkdGh9KSAvIDIpO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qIEJhbm5lcnNcbiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuJWJhbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDA7XG4gIHBhZGRpbmc6IDUwcHggNSU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgaW1nIHtcbiAgICBAaW5jbHVkZSBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgfVxufVxuLyogUmVndWxhciBCYW5uZXJcbiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJXJlZ3VsYXItYmFubmVyIHtcbiAgQGV4dGVuZCAlYmFubmVyO1xuICBAZXh0ZW5kICViZy1wYXR0ZXJuO1xuICBAaW5jbHVkZSBjaGlsZC1tYXJnaW4oXCJib3R0b21cIiwgMTBweCk7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogMjUwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBwIHtcbiAgICAvLyBAZXh0ZW5kICVjb2wtMTtcbiAgICBmb250LWZhbWlseTogJHRpdGxlLWZvbnQ7XG4gIH1cbn1cblxuLmVudHJ5LWhlYWRlcixcbi5yZWd1bGFyLWJhbm5lciB7XG4gIEBleHRlbmQgJXJlZ3VsYXItYmFubmVyO1xufVxuLyogR2lhbnQgQmFubmVyXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4lZ2lhbnQtYmFubmVyIHtcbiAgaGVpZ2h0OiA1MDBweDtcbiAgbWF4LWhlaWdodDogNzIwcHg7XG4gIEBleHRlbmQgJWJhbm5lcjtcbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoKTtcbiAgfVxuXG4gIC5lbnRyeS10aXRsZSxcbiAgLnNlY3Rpb24tdGl0bGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHotaW5kZXg6IDA7XG4gICAgdGV4dC1zaGFkb3c6IDNweCAzcHggNnB4IHJnYmEoMCwgMCwgMCwgMC42KTtcblxuICAgIGgxLFxuICAgIGgyIHtcbiAgICAgIGNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuICAgIH1cbiAgfVxufVxuXG4vLyAuZ2lhbnQtYmFubmVyIHtcbi8vICAgQGV4dGVuZCAlZ2lhbnQtYmFubmVyO1xuLy8gfVxuIiwiLyogSGVybyBTbGlkZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIEdpYW50IEJhbm5lciBTbGlkZXIgKi9cbi5oZXJvLXNsaWRlciB7XG4gIEBleHRlbmQgJXRyYW5zaXRpb24tZHVyYXRpb247XG4gIEBleHRlbmQgJWJhbm5lcjtcbiAgLy8gdmlzaWJpbGl0eTogaGlkZGVuO1xuICAvLyBvcGFjaXR5OiAwO1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IGF1dG87XG5cbiAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICB9XG5cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICBtYXgtaGVpZ2h0OiA3MjBweDtcbiAgfVxufVxuXG4uaGVyby1zbGlkZXItLXNob3J0IHtcbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICBtYXgtaGVpZ2h0OiA1MDBweDtcbiAgfVxuXG4gIC5oZXJvLXNsaWRlIHtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgaGVpZ2h0OiA1MDBweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIG1heC1oZWlnaHQ6IDUwMHB4O1xuICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICB9XG4gIH1cbn1cblxuLyogR2lhbnQgQmFubmVyIFNsaWRlICovXG4uaGVyby1zbGlkZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcblxuICBAaW5jbHVkZSBtb2JpbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuXG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgaGVpZ2h0OiA3MHZoO1xuICB9XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2dyAvIDE2ICogOSk7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgfVxuXG4gIC8qIEdlbmVyaWMgRmlnY2FwdGlvbiBTdHlsZXMgKi9cbiAgZmlnY2FwdGlvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB6LWluZGV4OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgIHBhZGRpbmc6IDIwcHggNSU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG4gICAgICAvLyBHcmFkaWVudCBGYWRlXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAtOTlweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwcHg7XG4gICAgICAgIEBpbmNsdWRlIGdyYWRpZW50LWZhZGUoMjU1LCAyNTUlLCAyNTUlLCB0b3ApO1xuICAgICAgfVxuXG4gICAgICBiciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiBtaW4oNTAlLCA0NTBweCk7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKiAzO1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cblxuICAgIGg0IHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkc3VidGl0bGUtZm9udDtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgICBoZWlnaHQ6IDkwdnc7XG4gICAgfVxuICB9XG59XG5cbi8vIENhcHRpb24gUG9zaXRpb25cbi5oZXJvLXNsaWRlLS1jZW50ZXItY2VudGVyIHtcbiAgZmlnY2FwdGlvbiB7XG4gICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbn1cblxuLmhlcm8tc2xpZGUtLWNlbnRlci1sZWZ0IHtcbiAgZmlnY2FwdGlvbiB7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNSU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoMCUpO1xuICB9XG59XG5cbi5oZXJvLXNsaWRlLS1jZW50ZXItcmlnaHQge1xuICBmaWdjYXB0aW9uIHtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogNSU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoMCUpO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgfVxufSIsIi8qIERlZmF1bHQgQmxvY2tzICovXG4uaW5saW5lLXdyYXAge1xuICB3aWR0aDogbWluKDkwJSwgJGRlc2t0b3AteGwtd2lkdGgpO1xuICBtYXJnaW4taW5saW5lOiBhdXRvO1xuXG4gICYubmFycm93IHtcbiAgICB3aWR0aDogbWluKDkwJSwgJGRlc2t0b3Atd2lkdGgpO1xuXG4gICAgQGluY2x1ZGUgZGVza3RvcC14bCB7XG4gICAgICB3aWR0aDogbWluKDkwJSwgJGRlc2t0b3AteGwtd2lkdGgpO1xuICAgIH1cbiAgfVxuXG4gICYuZnVsbCB7XG4gICAgd2lkdGg6IG1pbigxMDAlLCAkZGVza3RvcC14bC13aWR0aCk7XG4gIH1cblxuICAuaW5saW5lLXdyYXAge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5hbGlnbmNlbnRlciAuc2VjdGlvbi10aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBociB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG59XG5cbi8qIEltYWdlIEdhbGxlcnkgKi9cbi5pbWFnZS1nYWxsZXJ5LXNlY3Rpb24ge1xuICBwYWRkaW5nOiA1MHB4IDUlO1xuXG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgcGFkZGluZzogNTBweDtcbiAgfVxufVxuXG4uaW1hZ2UtZ2FsbGVyeS1saXN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBwYWRkaW5nOiAzcHg7XG5cbiAgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBoZWlnaHQ6IDMwMHB4O1xuICAgIG1pbi13aWR0aDogMzAwcHg7XG4gIH1cblxuICBpbWcge1xuICAgIEBpbmNsdWRlIGFic29sdXRlO1xuICAgIHBhZGRpbmc6IDNweDtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgfVxufVxuXG4vKiBMUiBMYXlvdXQgKi9cbi5sci1sYXlvdXQge1xuICAvLyBiYWNrZ3JvdW5kOiB1cmwoXCIuLi8uLi8uLi9zdGF0aWMvYmFja2dyb3VuZC5qcGdcIikgbm8tcmVwZWF0IGNlbnRlciAvIGNvdmVyO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogNDAwcHg7XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgfVxuXG4gICY6bnRoLW9mLXR5cGUoZXZlbikge1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgLmlubGluZS13cmFwIHtcbiAgICAgICAgZmxleC1mbG93OiByb3ctcmV2ZXJzZSB3cmFwO1xuICAgICAgfVxuXG4gICAgICBmaWd1cmUge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbmxpbmUtd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBleHRlbmQgJWZsZXhib3gtYy1jO1xuICAgIEBpbmNsdWRlIGNvbHVtbnMoMHB4LCAyKTtcbiAgfVxuXG4gIGZpZ3VyZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHotaW5kZXg6IDA7XG4gICAgaGVpZ2h0OiA5MHZ3O1xuXG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIGhlaWdodDogNzB2aDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIGhlaWdodDogNTB2dztcbiAgICAgIG1heC1oZWlnaHQ6IDcwdmg7XG4gICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRvZmYtd2hpdGUsIDMlKTtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICB3aWR0aDogY2FsYygyNXZ3KTtcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICAgIGhlaWdodDogY2FsYyg1MHZ3ICsgNjBweCk7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZmVhdHVyZS1hY3RpdmUge1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBtYXgtd2lkdGg6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIEBpbmNsdWRlIGFic29sdXRlO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDFzIGVhc2UtaW4tb3V0O1xuICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIEBpbmNsdWRlIGFic29sdXRlO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgICAgcGFkZGluZzogNjBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhcnRpY2xlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMzBweCA1JTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAwO1xuXG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBwYWRkaW5nOiA1MHB4IDEwMHB4O1xuICAgIH1cbiAgfVxufVxuXG4uc2Vjb25kYXJ5LWdyYXBoaWMtMCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogLTE7XG4gIG9wYWNpdHk6IDAuMztcbiAgd2lkdGg6IDI1dnc7XG4gIGhlaWdodDogMjV2dztcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXI7XG4gIGxlZnQ6IGNhbGMoNTAlIC0gMTIuNXZ3KTtcbiAgdG9wOiBjYWxjKDUwJSAtIDEyLjV2dyk7XG59XG5cbi8qIEVjb21tZXJjZSBIaWdobGlnaHRzICovXG4uYXR0cmlidXRlLWhpZ2hsaWdodHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgcGFkZGluZzogNjBweCA1JSA1MHB4O1xuXG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIHBhZGRpbmc6IDYwcHggMTAlIDUwcHg7XG4gIH1cblxuICAuaW5saW5lLXdyYXAge1xuICAgIEBpbmNsdWRlIGNvbHVtbnMoMjVweCwgNCk7XG5cbiAgICA+KiB7XG4gICAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pY29uLWNhcmQge1xuICAgIGltZyB7XG4gICAgICBmaWx0ZXI6IHNhdHVyYXRlKDApIGludmVydCgxKTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgaDQge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuICB9XG59XG5cbi8qIEZvb2QgTWVudSAqL1xuLmRpc2gtbGlzdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiA3MDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRvZmYtd2hpdGUsIDEwJSk7XG4gIH1cblxuICBhcnRpY2xlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAwIDEgNDUlO1xuICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG5cbiAgICBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDEwJSk7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgIGZpZ3VyZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZmlndXJlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRvcDogY2FsYygxMDAlICsgNXB4KTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgei1pbmRleDogMTA7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4O1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIH1cblxuICAgICAgZmlnY2FwdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5kaXNoLXRpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuXG4gIHNwYW4ge1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtO1xuICB9XG59XG5cblxuLyogUHJvZHVjdCBGZWF0dXJlICovXG4ubGlicmFyeS1nYWxsZXJ5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBtYXJnaW4tdG9wOiA1MHB4O1xuXG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICB9XG5cbiAgLnNpbmdsZS1wcm9kdWN0LWZlYXR1cmUge1xuICAgIGZpZ2NhcHRpb24ge1xuICAgICAgYm90dG9tOiAtMzAwcHg7XG4gICAgfVxuICB9XG5cbiAgLnNpbmdsZS1wcm9kdWN0LWZlYXR1cmUuYWN0aXZlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiA1MDBweDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgID5pbWcge1xuICAgICAgdHJhbnNpdGlvbjogMC42cztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0cmFuc2l0aW9uOiAwLjZzO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBib3R0b206IDA7XG4gICAgICB0b3A6IGF1dG87XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgcGFkZGluZzogMjVweDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZDogaHNsYSgwLCAwJSwgMCUsIDAuNSk7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgICBwYWRkaW5nOiAyNXB4IDUwcHg7XG4gICAgICB9XG5cbiAgICAgIGgzIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9XG5cbiAgICAgIHAge1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjNzO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiBTdGF0ZSB3aGVuIG5vdCBhY3RpdmUgKi9cbiAgLnNpbmdsZS1wcm9kdWN0LWZlYXR1cmU6bm90KC5hY3RpdmUpIHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAgIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgbWF4LXdpZHRoOiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTUlKTtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgICBtYXJnaW46IDA7XG5cbiAgICAgIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBoc2woMCwgMCUsIDg1JSk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgIHBhZGRpbmc6IDMwcHggMjBweDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBoc2woMCwgMCUsIDg1JSk7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCBkYXJrZW4oJG1haW4tY29sb3IsIDIwJSk7XG5cbiAgICAgICAgaDMge1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgZm9udC1mYW1pbHk6ICRtYWluLWZvbnQ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiAxLjdyZW07XG5cbiAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vKiBDb250YWN0IDEgKi9cbi5jb250YWN0LTEge1xuICBtYXJnaW46IDgwcHggMDtcbn1cblxuLmNvbnRhY3QtZGV0YWlscy13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgZ2FwOiA0MHB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiA4MHB4IDA7XG5cbiAgLmNvbnRhY3QtZGV0YWlsIHtcbiAgICBmbGV4OiAxIDEgMjAwcHg7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAxMHB4O1xuXG4gICAgaSB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIG1pbi13aWR0aDogNDBweDtcbiAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1xuICAgIH1cblxuICAgIC5jb250YWN0LWRldGFpbC1jYXB0aW9uIHtcbiAgICAgIGIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmNvbnRhY3QtMV9tYXBlbWJlZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiA1MHB4IDAgMTUwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogNzUlO1xuICAgIGJvdHRvbTogLTI1JTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2ZmLXdoaXRlO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBkYXJrZW4oJG9mZi13aGl0ZSwgMTAlKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZGFya2VuKCRvZmYtd2hpdGUsIDEwJSk7XG5cbiAgICBAZXh0ZW5kIC5pbWFnZS1yZWxlYXNlO1xuICB9XG59IiwiLnBvc3QtYXJjaGl2ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgZ2FwOiA1MHB4O1xuICB3aWR0aDogMTAwJTtcblxuICAuYXJjaGl2ZS1kZXNjcmlwdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9mZi13aGl0ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmc6IDNyZW0gMDtcbiAgICAvLyBAZXh0ZW5kICVyZWd1bGFyLWJhbm5lcjtcbiAgICAvLyBwYWRkaW5nOiA1MHB4IDUlIDA7XG4gICAgLy8gYXNwZWN0LXJhdGlvOiBhdXRvO1xuXG4gICAgPioge1xuICAgICAgd2lkdGg6IG1pbig5MCUsICRkZXNrdG9wLXhsLXdpZHRoKTtcbiAgICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gICAgfVxuXG4gICAgJi5oYXMtcG9zdC10aHVtYm5haWwge1xuICAgICAgLy8gQGV4dGVuZCAlaGFzLXBvc3QtdGh1bWJuYWlsO1xuICAgIH1cbiAgfVxuXG4gIC5wb3N0LWVudHJ5LWxpc3Qge1xuICAgIHBhZGRpbmc6IDAgNSU7XG4gICAgd2lkdGg6IG1pbig5MCUsICRkZXNrdG9wLXhsLXdpZHRoKTtcbiAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuXG5cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgcGFkZGluZzogMCAwIDVyZW0gMDtcbiAgICAgIC8vIGZsZXg6IDMgMSAwO1xuICAgICAgLy8gbWFyZ2luLWxlZnQ6IDUlO1xuICAgICAgLy8gbWFyZ2luLXJpZ2h0OiA1MHB4O1xuICAgICAgLy8gbWF4LXdpZHRoOiA2NTBweDtcbiAgICB9XG4gIH1cblxuICAuc2lkZWJhciB7XG4gICAgcGFkZGluZzogMCA1JTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZmxleDogMSAxIDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDUlO1xuICAgICAgbWF4LXdpZHRoOiAyODBweDtcbiAgICB9XG4gIH1cbn1cblxuLnBvc3QtZW50cnktbGlzdCB7XG5cbiAgLmVudHJ5LWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA1MHB4O1xuXG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIGdhcDogMjBweDtcbiAgICB9XG4gIH1cblxuICAuZW50cnkge1xuICAgICYrLmVudHJ5IHtcbiAgICAgIG1hcmdpbi1ibG9jazogNXJlbSAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBwYWRkaW5nOiAzMHB4IDMwcHggMDtcbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZChldmVuKSAuZW50cnktY29udGVudCB7XG4gICAgICBmbGV4LWZsb3c6IHJvdy1yZXZlcnNlO1xuXG4gICAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaDMge1xuICAgIG1hcmdpbjogMTBweCAwO1xuICB9XG5cbiAgcCB7XG4gICAgQGV4dGVuZCAuc21hbGw7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgfVxuXG4gIC5idG4tMyB7XG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmNhcHRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgaDIge1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC5lbnRyeS1jb250ZW50X190aHVtYm5haWwtbGluayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDE3MHB4O1xuICAgIGFzcGVjdC1yYXRpbzogMTYvOTtcbiAgICBtaW4td2lkdGg6IDU1JTtcblxuICAgIGltZyB7XG4gICAgICBAaW5jbHVkZSBhYnNvbHV0ZTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cbiAgfVxufSIsIi8qIFN0cnVjdHVyZSBvZiBzaW5nbGUgcG9zdCovXG4ucG9zdC1zaW5nbGUge1xuICAuZW50cnkge1xuICAgIEBpbmNsdWRlIGNoaWxkLW1hcmdpbignYm90dG9tJywgNTBweCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG5cbiAgLmhhcy1wb3N0LXRodW1ibmFpbCAuZW50cnktaGVhZGVyIHtcbiAgICBAZXh0ZW5kICVkYXJrLXRoZW1lO1xuICAgIGJhY2tncm91bmQ6ICRtYWluLWNvbG9yO1xuXG4gICAgaW1nIHtcbiAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcbiAgICB9XG4gIH1cblxuICAuZW50cnktY29udGVudCB7XG4gICAgcGFkZGluZzogMCA1JTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGZsZXg6IDMgMSAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDUlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1MHB4O1xuICAgICAgbWF4LXdpZHRoOiA2NTBweDtcbiAgICB9XG4gIH1cblxuICAuc2lkZWJhciB7XG4gICAgcGFkZGluZzogMCA1JTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGZsZXg6IDEgMSAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1JTtcbiAgICAgIG1heC13aWR0aDogMjgwcHg7XG4gICAgfVxuICB9XG59XG4vKiBQcmltYXJ5IHNpZGViYXIgb25seSAqL1xuLnNpZGViYXItcHJpbWFyeSB7XG4gIC53aWRnZXQtdGl0bGUge1xuICAgIEBpbmNsdWRlIGxpbmUtYm9yZGVyKDRweCwgaHNsKDAsMCUsODUlKSwgJ2JvdHRvbScsIDEwcHgpO1xuICB9XG59XG5cbi5lbnRyeS1jb250ZW50IHtcbiAgLmVudHJ5LW1ldGEge1xuICAgIEBleHRlbmQgLnNtYWxsO1xuICAgIGNvbG9yOiBoc2woMCwwJSw3MCUpO1xuICB9XG59XG4vKiBTaW5nbGUgUGFnZSBDb250ZW50XG4gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnBvc3Qtc2luZ2xlIHtcbiAgLmVudHJ5LWNvbnRlbnQge1xuICAgIEBleHRlbmQgJWJsb2ctdHlwb2dyYXBoeTtcblxuICAgID4gdWwge1xuICAgICAgQGV4dGVuZCAuaXRlbS1saXN0O1xuICAgIH1cblxuICAgID4gb2wge1xuICAgICAgQGV4dGVuZCAubnVtYmVyLWxpc3Q7XG4gICAgfVxuICB9XG4gIC8vXG4gIC8vIC5jb21tZW50LXJlc3BvbmQge1xuICAvLyAgIHBhZGRpbmc6IDAgNSU7XG4gIC8vIH1cbn1cbiIsIi5lcnJvcjQwNCB7XG4gICAgbWFpbi5jb250ZW50IHtcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCA3MDBweCk7XG4gICAgICAgIG1hcmdpbjogMTUwcHggYXV0byA1MHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnNlYXJjaC1mb3JtIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59IiwiQGZ1bmN0aW9uIHNwYWNpbmcoJG11bHRpcGxpZXIpIHtcbiAgQHJldHVybiBjYWxjKHZhcigtLXNwYWNpbmcpICogI3skbXVsdGlwbGllcn1yZW0pO1xufVxuXG4uYmctcGF0dGVybiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDtcblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIEBpbmNsdWRlIGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uLy4uLy4uL3N0YXRpYy9iZy1wYXR0ZXJuLnN2Z1wiKSByZXBlYXQgY2VudGVyIC8gNzUwcHg7XG4gICAgei1pbmRleDogLTE7XG4gICAgb3BhY2l0eTogMC40O1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gIH1cbn1cblxuLmJnLXBhdHRlcm4tMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDtcblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIEBpbmNsdWRlIGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uLy4uLy4uL3N0YXRpYy9iZy1wYXR0ZXJuLTIuc3ZnXCIpIHJlcGVhdCBjZW50ZXIgLyA1MDBweDtcbiAgICBvcGFjaXR5OiAwLjE7XG4gICAgei1pbmRleDogLTE7XG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgfVxufVxuXG4uYmctcGF0dGVybi0zIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAwO1xuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgQGluY2x1ZGUgYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vLi4vLi4vc3RhdGljL2JnLXBhdHRlcm4tMy5zdmdcIikgcmVwZWF0IGNlbnRlciAvIDc1MHB4O1xuICAgIG9wYWNpdHk6IDAuMTtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICB9XG59XG5cbi5iZy1saWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yLTUwO1xuICBjb2xvcjogJG1haW4tY29sb3ItOTAwO1xuXG4gICYgKyAuYmctbGlnaHQge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG59XG5cbi5iZy1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstY29sb3I7XG5cbiAgJiArIC5iZy1kYXJrIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgfVxufVxuXG4uYmctbWFpbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1xuXG4gICYgKyAuYmctbWFpbiB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIH1cbn1cblxuLmJnLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuLnRleHQtbGlnaHQge1xuICBAZXh0ZW5kICVkYXJrLXRoZW1lO1xuXG4gIHAge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cbn1cblxuLnRleHQtd2hpdGUge1xuICBjb2xvcjogJG9mZi13aGl0ZTtcbn1cblxuLnJlbGF0aXZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ub3ZlcmZsb3ctaGlkZGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnotMCB7XG4gIHotaW5kZXg6IDA7XG59XG5cbi5ib3JkZXItYm94IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLnRhYmxlIHtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5teC1hdXRvIHtcbiAgbWFyZ2luLWlubGluZTogYXV0bztcbn1cblxuLm10LTEwIHtcbiAgbWFyZ2luLXRvcDogc3BhY2luZygxMCk7XG59XG5cbi5tdC0xNSB7XG4gIG1hcmdpbi10b3A6IHNwYWNpbmcoMTUpO1xufVxuXG4ubXQtMjAge1xuICBtYXJnaW4tdG9wOiBzcGFjaW5nKDIwKTtcbn1cblxuLnB0LTEwIHtcbiAgcGFkZGluZy10b3A6IHNwYWNpbmcoMTApO1xufVxuXG4ucHQtMTUge1xuICBwYWRkaW5nLXRvcDogc3BhY2luZygxNSk7XG59XG5cbi5wdC0yMCB7XG4gIHBhZGRpbmctdG9wOiBzcGFjaW5nKDIwKTtcbn1cblxuLnBiLTEwIHtcbiAgcGFkZGluZy1ib3R0b206IHNwYWNpbmcoMTApO1xufVxuXG4ucGItMTUge1xuICBwYWRkaW5nLWJvdHRvbTogc3BhY2luZygxNSk7XG59XG5cbi5wYi0yMCB7XG4gIHBhZGRpbmctYm90dG9tOiBzcGFjaW5nKDIwKTtcbn1cblxuLm15LTEwIHtcbiAgbWFyZ2luLWJsb2NrOiBzcGFjaW5nKDIwKTtcbn1cblxuLm15LTIwIHtcbiAgbWFyZ2luLWJsb2NrOiBzcGFjaW5nKDIwKTtcbn1cblxuLnRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZ2FwLTUge1xuICBnYXA6IHNwYWNpbmcoNSk7XG59XG5cbi5nYXAtMTAge1xuICBnYXA6IHNwYWNpbmcoMTApO1xufVxuXG4uZ2FwLTE1IHtcbiAgZ2FwOiBzcGFjaW5nKDE1KTtcbn1cblxuLmdhcC0yMCB7XG4gIGdhcDogc3BhY2luZygyMCk7XG59XG5cbi5mbGV4IHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmZsZXgtY29sIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmp1c3RpZnktY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5wbGFjZS1pdGVtcy1jZW50ZXIge1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbn1cblxuLmNvbC1zcGFuLTEge1xuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICB9XG59XG5cbi5jb2wtc3Bhbi0yIHtcbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICBncmlkLWNvbHVtbjogMjtcbiAgfVxufVxuXG4uY29sLXNwYW4tMyB7XG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgZ3JpZC1jb2x1bW46IDM7XG4gIH1cbn1cblxuLnctM3hzIHtcbiAgd2lkdGg6IHNwYWNpbmcoNjQpO1xufVxuXG4uZ3JpZC1jb2xzLTIge1xuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIH1cbn1cblxuLmdyaWQtY29scy0yLTEge1xuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmcjtcbiAgfVxufVxuXG4uZ3JpZC1jb2xzLTMge1xuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gIH1cbn1cblxuLmdyaWQtY29scy00IHtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcblxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gIH1cbn1cblxuLmdyaWQtY29scy01IHtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcblxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIDFmcik7XG4gIH1cbn1cblxuLmNvbnRlbnQtY2VudGVyIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnAtNSB7XG4gIHBhZGRpbmc6IHNwYWNpbmcoNSk7XG59XG5cbi5wLTEwIHtcbiAgcGFkZGluZzogc3BhY2luZygxMCk7XG59XG5cbi5wLTE1IHtcbiAgcGFkZGluZzogc3BhY2luZygxNSk7XG59XG5cbi5wLTIwIHtcbiAgcGFkZGluZzogc3BhY2luZygyMCk7XG59XG5cbi5mb250LW1lZGl1bSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5mb250LWJvbGQge1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbn1cblxuLnRleHQtc20ge1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcbn1cblxuLnRleHQtM3hsIHtcbiAgZm9udC1zaXplOiAxLjg3NXJlbTtcbn1cblxuLnRleHQtNXhsIHtcbiAgZm9udC1zaXplOiAzcmVtO1xufVxuXG4udGV4dC03eGwge1xuICBmb250LXNpemU6IDQuNXJlbTtcbn1cblxuLnRleHQtOXhsIHtcbiAgZm9udC1zaXplOiA4cmVtO1xufVxuXG4ucm91bmRlZC01MCB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuLmFzcGVjdC1zcXVhcmUge1xuICBhc3BlY3QtcmF0aW86IDE7XG59XG5cbi5hc3BlY3QtMTYtOSB7XG4gIGFzcGVjdC1yYXRpbzogMTYvOTtcbn1cblxuLm9iamVjdC1jb3ZlciB7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4ub2JqZWN0LWNvbnRhaW4ge1xuICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4jYmFjay10by10b3AtYnV0dG9uIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogNHJlbTtcbiAgYXNwZWN0LXJhdGlvOiAxO1xuICB0b3A6IGNhbGMoNTAlIC0gMnJlbSk7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIHJpZ2h0OiAwcHg7XG4gIHotaW5kZXg6IDk5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDJyZW0gMCAwIDJyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiA4cHggc29saWQgI2ZmZjtcbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiVE9QXCI7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvci05MDA7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuXG4vKiBFY29tbWVyY2UgSGlnaGxpZ2h0cyAqL1xuLmVjb21tZXJjZS1oaWdobGlnaHRzIHtcbiAgQGluY2x1ZGUgY29sdW1ucygxNXB4LCA0KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XG4gIHBhZGRpbmc6IDYwcHggNSUgNTBweDtcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBwYWRkaW5nOiA2MHB4IDEwJSA1MHB4O1xuICB9XG5cbiAgPiAqIHtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAuaWNvbi1jYXJkIHtcbiAgICBpbWcge1xuICAgICAgZmlsdGVyOiBzYXR1cmF0ZSgwKSBpbnZlcnQoMSk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIGg0IHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxufVxuXG4uaWNvbi1jYXJkIHtcbiAgQGluY2x1ZGUgdGh1bWJuYWlsLWNhcmQoMTAwJSwgNDBweCwgcmlnaHQsIDEwcHgpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgfVxuXG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuXG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICB9XG4gIH1cblxuICBoNCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDIwJSk7XG5cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gIH1cblxuICAuY2FwdGlvbiB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLmltYWdlLWZpbGwge1xuICBAaW5jbHVkZSBhYnNvbHV0ZTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi8qIEZsb2F0aW5nIGJ1dHRvbiAqL1xuLmZsb2F0aW5nLXdoYXRzYXBwLWJ1dHRvbiB7XG4gIEBpbmNsdWRlIGNpcmNsZS1vYmplY3QoNDZweCwgIzI1ZDM2NiwgMjNweCk7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm07XG4gIHJpZ2h0OiAxMHB4O1xuICBib3R0b206IDEwcHg7XG4gIHotaW5kZXg6IDk5OTk5OTk7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGxpbmUtaGVpZ2h0OiA0NnB4O1xufVxuXG4vKiBTd2lwZXIgQnV0dG9uICovXG4uc3dpcGVyLWJ1dHRvbi1uZXh0LFxuLnN3aXBlci1idXR0b24tcHJldiB7XG4gIGNvbG9yOiAkbWFpbi1jb2xvcjtcbn1cblxuLy8gaW1hZ2Utb3ZlcmxheS13aXRoLWhvdmVyXG5maWdjYXB0aW9uIHtcbiAgPiAqIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi5pbWFnZS1vdmVybGF5LXdpdGgtaG92ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yYWRpdXM6IDJyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJjpob3ZlciB7XG4gICAgb3V0bGluZTogNXB4IHNvbGlkICRtYWluLWNvbG9yLTkwMDtcblxuICAgIGltZyB7XG4gICAgICBmaWx0ZXI6IHNhdHVyYXRlKDAuMjUpO1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgYXNwZWN0LXJhdGlvOiAwLjc1O1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIHRyYW5zaXRpb246IDAuM3M7XG4gIH1cblxuICBmaWdjYXB0aW9uIHtcbiAgICBAaW5jbHVkZSBhYnNvbHV0ZTtcbiAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgfVxuXG4gIGgzIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LXNoYWRvdzogMnB4IDJweCA1cHggaHNsYSgwLCAwJSwgMjAlLCAwLjcpO1xuICB9XG5cbiAgcCB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbWF4LWhlaWdodDogMDtcbiAgICB0cmFuc2l0aW9uOiAwLjdzO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmltYWdlLW92ZXJsYXktd2l0aC1ob3Zlci0tc21hbGwge1xuICBpbWcge1xuICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgfVxufVxuXG4vLyBHYWxsZXJ5XG4uZ2FsbGVyeS1zd2lwZXIge1xuICBpbWcge1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICB9XG59XG5cbi53cGYtbGlzdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDVyZW0gNSU7XG5cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICBwYWRkaW5nOiA1cmVtO1xuICB9XG5cbiAgLmljb24tdGV4dCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3ItNTAsIDUlKTtcbiAgICBwYWRkaW5nOiAycmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDJyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgZ2FwOiAxcmVtO1xuICAgIGFzcGVjdC1yYXRpbzogMTtcblxuICAgIGgzIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICsgMC40O1xuICAgIH1cblxuICAgIHAge1xuICAgICAgY29sb3I6ICRtYWluLWNvbG9yLTkwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAvLyBmb250LXdlaWdodDogNTAwO1xuICAgICAgLy8gZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gICAgfVxuXG4gICAgaSB7XG4gICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAqIDMuMjtcbiAgICAgIGNvbG9yOiAkbWFpbi1jb2xvci00MDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG4vLyBJY29uIFRleHQgT2JqZWN0XG4uaWNvbi10ZXh0LW9iamVjdCB7XG4gIGkge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICogMi41O1xuICAgIGNvbG9yOiAkbWFpbi1jb2xvci00MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxuXG4gIHAge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cbn1cblxuLy8gSG9tZSBCYW5uZXIgTGVmdCBSaWdodCBMYXlvdXRcbi5ob21lLWJhbm5lci1sciB7XG4gIGZpZ3VyZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgbWluLWhlaWdodDogY2FsYygxMDB2dyAqIDYgLyAxNik7XG5cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuXG4gICAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgICBvcmRlcjogLTE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGdhcDogMXJlbTtcbiAgICAgIHBhZGRpbmc6IDNyZW0gNSU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvci01MDtcbiAgICAgIHotaW5kZXg6IDI7XG5cbiAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgIHBhZGRpbmc6IDUwcHg7XG4gICAgICB9XG5cbiAgICAgICY6YmVmb3JlLFxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgdG9wOiAtMzBweDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBib3JkZXItbGVmdDogMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmlnaHQ6IDEwMHZ3IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItYm90dG9tOiAzMHB4IHNvbGlkICRtYWluLWNvbG9yLTUwO1xuXG4gICAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICByaWdodDogLTEwMHB4O1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxMDBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiA0MHZ3IHNvbGlkICRtYWluLWNvbG9yLTUwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIGJvcmRlci10b3A6IDQwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiA1MHZ3IHNvbGlkICRtYWluLWNvbG9yO1xuICAgICAgICByaWdodDogMHB4O1xuICAgICAgICB0b3A6IC00MHB4O1xuICAgICAgICB6LWluZGV4OiAxO1xuXG4gICAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDMwdncgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwcHggc29saWQgJG1haW4tY29sb3I7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDV2dyBzb2xpZCAkbWFpbi1jb2xvcjtcbiAgICAgICAgICByaWdodDogLTV2dztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBoNCB7XG4gICAgICAgIGNvbG9yOiAkbWFpbi1jb2xvci05MDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5taW5pLWN0YS1zZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XG4gIHBhZGRpbmc6IDNyZW07XG5cbiAgLmlubGluZS13cmFwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgICAgZ2FwOiAxcmVtO1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgICBjb2xvcjogJG9mZi13aGl0ZTtcblxuICAgICAgYmRpIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSArIDAuNTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgfVxuICB9XG59XG5cbi5pbWFnZS10ZXh0LXNlY3Rpb24tb2Zmc2V0LXRvcCB7XG4gIG1hcmdpbi10b3A6IG1pbihjYWxjKDkwdncgLyAxNiAqIDIpLCBjYWxjKCRkZXNrdG9wLXdpZHRoIC8gMTYgKiAyKSk7XG5cbiAgQGluY2x1ZGUgZGVza3RvcC14bCB7XG4gICAgbWFyZ2luLXRvcDogY2FsYygkZGVza3RvcC14bC13aWR0aCAvIDE2ICogMyk7XG4gIH1cblxuICBpbWcge1xuICAgIGFzcGVjdC1yYXRpbzogMTYvNjtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiBtYXgoXG4gICAgICBjYWxjKC01MHB4IC0gY2FsYyg5MHZ3IC8gMTYgKiAzKSksXG4gICAgICBjYWxjKC04MHB4IC0gY2FsYygkZGVza3RvcC13aWR0aCAvIDE2ICogMykpXG4gICAgKTtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuXG4gICAgQGluY2x1ZGUgZGVza3RvcC14bCB7XG4gICAgICBtYXJnaW4tdG9wOiBjYWxjKC04MHB4IC0gY2FsYygkZGVza3RvcC14bC13aWR0aCAvIDE2ICogMykpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBTbWFsbCBDYXJkIExpc3Rcbi5zbWFsbC1jYXJkLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBtYXJnaW4tYmxvY2s6IDJyZW07XG4gIGdhcDogMC41cmVtO1xuXG4gIGxpIHtcbiAgICBwYWRkaW5nOiAwLjZyZW0gMC45cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcbiAgICBjb2xvcjogJG1haW4tY29sb3ItOTAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGRhcmtlbigkb2ZmLXdoaXRlLCAxNSUpO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDAuNXJlbTtcblxuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBwYWRkaW5nOiAxcmVtIDEuMnJlbTtcbiAgICB9XG5cbiAgICBpIHtcbiAgICAgIGNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgICB9XG5cbiAgICBwOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cblxuLypcbkNBUkQgU0xPVFxuPGRpdiBjbGFzcz1cInRleHQtY2FyZFwiPlxuICA8c3Bhbj48L3NwYW4+XG4gIDxwPjwvcD5cbjwvZGl2PlxuKi9cbi50ZXh0LWNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXIge1xuICAgIHAge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJG1haW4tY29sb3ItNjAwO1xuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGxlZnQ6IC0yMHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3ItNjAwO1xuICAgIH1cbiAgfVxuXG4gIHNwYW4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICBtaW4td2lkdGg6IDUwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGhlaWdodDogMzBweDtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcblxuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBtaW4td2lkdGg6IDgwcHg7XG4gICAgfVxuXG4gICAgaSB7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBsaW5lLWhlaWdodDogMzBweDtcblxuICAgICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCAkbWFpbi1jb2xvcjtcbiAgICBwYWRkaW5nOiA4cHggMjBweDtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgZmxleDogMTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWFpbi1jb2xvcjtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgdHJhbnNpdGlvbjogMC4zcztcbiAgICB9XG4gIH1cbn1cblxuLy8gRkFRXG4uZmFxLWxpc3Qge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDFyZW07XG59XG5cbnN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5kZXRhaWxzIHtcbiAgcGFkZGluZzogMS41cmVtIDByZW07XG5cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICBwYWRkaW5nOiAxLjVyZW0gMnJlbTtcbiAgfVxuXG4gICZbb3Blbl0ge1xuICAgIHN1bW1hcnkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDEuNXJlbTtcblxuICAgICAgJjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3VtbWFyeSB7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbWFpbi1jb2xvci0zMDA7XG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG5cbiAgICBoMyB7XG4gICAgICBmb250LWZhbWlseTogJG1haW4tZm9udDtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXRvcDogOHB4IHNvbGlkICRtYWluLWNvbG9yLTYwMDtcbiAgICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgfVxuICB9XG5cbiAgPiAqOm5vdChzdW1tYXJ5KTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB9XG5cbiAgPiAqOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBwLFxuICBsaSB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgfVxuXG4gIHVsIHtcbiAgICBAZXh0ZW5kICVpdGVtLWxpc3Q7XG5cbiAgICA+IGxpIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgICB9XG4gIH1cblxuICBvbCB7XG4gICAgQGV4dGVuZCAlaXRlbS1saXN0O1xuXG4gICAgPiBsaSB7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7XG4gICAgfVxuICB9XG59XG5cbi5jb250YWN0LWRldGFpbCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgcCB7XG4gIH1cblxuICBhIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiBoc2woMCwgMCUsIDMwJSk7XG4gIH1cblxuICBzdHJvbmcge1xuICAgIGNvbG9yOiAkbWFpbi1jb2xvci03MDA7XG5cbiAgICBpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMjdweDtcbiAgICAgIHdpZHRoOiAyNXB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxufVxuXG4uYmctaW1nLWZ1bGwge1xuICBiYWNrZ3JvdW5kOiBuby1yZXBlYXQgY2VudGVyIC8gY292ZXI7XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgfVxufVxuXG4ucGFnZSBhcnRpY2xlLmhhcy1wb3N0LXRodW1ibmFpbCAuZW50cnktaGVhZGVyIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gID4gKjpub3QoaW1nKSB7XG4gICAgY29sb3I6ICRvZmYtd2hpdGU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogbWF4KGNhbGMoKDEwMHZ3IC0gJGRlc2t0b3AteGwtd2lkdGgpIC8gMiksIDUlKTtcbiAgICB3aWR0aDogbWluKDcwMHB4LCA5MCUpO1xuICB9XG5cbiAgcCB7XG4gIH1cbn1cblxuLmN1c3RvbS1hbHRlcm5hdGUtc2VjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1xuICAuaW5saW5lLXdyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgZmlndXJlIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDA7XG4gICAgICBhc3BlY3QtcmF0aW86IDQvMztcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgIHdpZHRoOiA0NSU7XG4gICAgICB9XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi8uLi8uLi9zdGF0aWMvZGl2aWRlci1ob3Jpem9udGFsLTIuc3ZnXCIpIG5vLXJlcGVhdFxuICAgICAgICAgIGNlbnRlciAvIGNvdmVyO1xuICAgICAgICAvLyBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiA0O1xuICAgICAgICBib3R0b206IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7XG4gICAgICAgICAgYXNwZWN0LXJhdGlvOiAxLzM7XG4gICAgICAgICAgcmlnaHQ6IC0xcHg7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uLy4uLy4uL3N0YXRpYy9ob3Jpem9udGFsLWRpdmlkZXIuc3ZnXCIpIG5vLXJlcGVhdDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpbWcge1xuICAgICAgICBAaW5jbHVkZSBhYnNvbHV0ZTtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmRlc2NyaXB0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDAgNSUgNXJlbTtcblxuICAgICAgQGV4dGVuZCAudGV4dC13aGl0ZTtcbiAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgIHdpZHRoOiA1NSU7XG4gICAgICAgIHBhZGRpbmc6IDAgNXJlbTtcbiAgICAgIH1cblxuICAgICAgaDIge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICArIC5jdXN0b20tYWx0ZXJuYXRlLXNlY3Rpb246bnRoLWNoaWxkKGV2ZW4pIC5pbmxpbmUtd3JhcCB7XG4gICAgZmxleC1mbG93OiByb3ctcmV2ZXJzZSB3cmFwO1xuXG4gICAgZmlndXJlOmJlZm9yZSB7XG4gICAgICBsZWZ0OiAtMXB4O1xuICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLypcbiAqIEVkaXRlZCAyMDE5MDcyN1xuICovXG4vLyBFbGVtZW50cyB1bnFpdWUgdG8gd29vY29tbWVyY2UgdGVtcGxhdGVcbi8qXG4qIFRBQkxFIE9GIENPTlRFTlRTXG4qIC0tLS0tLS0tLS0tICpcbiogLSBXb29jb21tZXJjZSBWYXJpYWJsZXNcbiogLSBXb29jb21tZXJjZSBHbG9iYWwgU3R5bGVzXG4qIC0gQWRkIHRvIENhcnQgQnV0dG9uXG4qIC0gQnJlYWRjcnVtYlxuKiAtIFNhbGUgTGFiZWxcbiogLSBNZXNzYWdlIGJveFxuKiAtIFBhZ2luYXRpb25cbiovXG4vKiBXb29jb21tZXJjZSBWYXJpYWJsZXMgKi9cbiV3b28tbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY2xpcDogdW5zZXQ7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6IGhzbCgwLDAlLDUwJSk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuXG4ld29vLWxhYmVsLTIge1xuICBAZXh0ZW5kICV3b28tbGFiZWw7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgY29sb3I6ICM2NjY7XG59XG4kcHJvZHVjdC1zZWxlY3Rpb24tbGF5b3V0LWNvbC0xOiAxMjBweDtcbkBtaXhpbiB3b29jb21tZXJjZS1tZXNzYWdlKCRtc2ctY29sb3IpIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtc2ctY29sb3I7XG5cbiAgYSB7XG4gICAgYmFja2dyb3VuZDogZGFya2VuKCRtc2ctY29sb3IsIDUlKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRtc2ctY29sb3IsIDEwJSk7XG4gICAgfVxuICB9XG59XG5AaW1wb3J0IFwiX3dvby1zdHlsZXMvYXJjaGl2ZVwiO1xuQGltcG9ydCBcIl93b28tc3R5bGVzL3NpbmdsZVwiO1xuQGltcG9ydCBcIl93b28tc3R5bGVzL2NhcnRcIjtcbkBpbXBvcnQgXCJfd29vLXN0eWxlcy9jaGVja291dFwiO1xuQGltcG9ydCBcIl93b28tc3R5bGVzL29yZGVyLXJlY2VpdmVkXCI7XG5AaW1wb3J0IFwiX3dvby1zdHlsZXMvb3JkZXItcGF5XCI7XG5AaW1wb3J0IFwiX3dvby1zdHlsZXMvYWNjb3VudFwiO1xuQGltcG9ydCBcIl93b28tc3R5bGVzL2xvZ2luXCI7IC8vIEBpbXBvcnQgXCJfd29vLXN0eWxlcy9wcmljZS1zbGlkZXJcIjtcbkBpbXBvcnQgXCJfd29vLXN0eWxlcy93aWRnZXRzXCI7XG5AaW1wb3J0IFwiX3dvby1zdHlsZXMvaW50ZXJhY3RpdmUtY2FydFwiO1xuQGltcG9ydCBcIl93b28tc3R5bGVzL2FkZHJlc3NcIjtcbkBpbXBvcnQgXCJfd29vLXN0eWxlcy9zbWFsbHNjcmVlblwiO1xuQGltcG9ydCBcIl93b28tc3R5bGVzL3dvb2NvbW1lcmNlLXByb2R1Y3Qtc2VhcmNoXCI7XG5AaW1wb3J0IFwiX3dvby1zdHlsZXMvYWR2YW5jZWQtcHJvZHVjdC1maWVsZHNcIjtcbi8qIFdvb2NvbW1lcmNlIEdsb2JhbCBTdHlsZXMgKi9cbi53b29jb21tZXJjZSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4KCk7XG59XG4vKiBOZXdseSBkaXNjb3ZlcmVkIGdsb2JhbCBzdHlsZXMgKi9cbi5jb2wyLXNldCB7XG4gIEBleHRlbmQgLmNvbHMtMjtcbn1cblxuLndvb2NvbW1lcmNlLWNvbHVtbl9fdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLyogR2xvYmFsIGZvcm1zICovXG5mb3JtIHtcbiAgbGFiZWwge1xuICAgIEBleHRlbmQgJXdvby1sYWJlbDtcbiAgfVxufVxuLyogQnV0dG9uIHN0eWxlcyBmb3Igd29vY29tbWVyY2UgKi9cbmJ1dHRvblt0eXBlPVwic3VibWl0XCJdLFxuLmJ1dHRvbiB7XG4gIEBleHRlbmQgJWJ0bjtcbn1cblxuLnNob3BfdGFibGUgLmJ1dHRvbiB7XG4gIEBleHRlbmQgJWJ0bi0xLWxpZ2h0O1xufVxuLyogQWRkIHRvIENhcnQgQnV0dG9uIEFLQSBNYWluIGJ1dHRvbiAqL1xuLmNoZWNrb3V0LWJ1dHRvbixcbmEuYWRkX3RvX2NhcnRfYnV0dG9uLFxuYnV0dG9uLmFkZF90b19jYXJ0X2J1dHRvbixcbmJ1dHRvblt0eXBlPVwic3VibWl0XCJdIHtcbiAgQGV4dGVuZCAlYnRuLTE7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ud2MtYmFja3dhcmQge1xuICBAZXh0ZW5kICVidG4tMTtcbiAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLyogQlJFQURDUlVNQiAqL1xuLndvb2NvbW1lcmNlLWJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgLyogQXJjaGl2ZSBQYWdlICovXG4gIC53b29jb21tZXJjZS5hcmNoaXZlICYge1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIH1cbiAgLyogU2luZ2xlIFByb2R1Y3QgQnJlYWRjcnVtYnMgKi9cbiAgLnNpbmdsZS1wcm9kdWN0ICYge1xuICAgIEBpbmNsdWRlIGxpbmUtYm9yZGVyKDJweCwgI2YxZjFmMSwgYm90dG9tLCAyMHB4KTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcbiAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIHBhZGRpbmc6IDMwcHggMDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIH1cbiAgfVxufVxuLyogU0FMRSBMQUJFTCAqL1xuLm9uc2FsZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIGNvbG9yOiAjZmZmO1xuXG4gIGxpLnByb2R1Y3QgJiB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgbWFyZ2luOiAtMjZweCBhdXRvIDVweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZzogMC4wNXJlbSAwLjZyZW07XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbjtcbiAgfVxuXG4gIC5zdW1tYXJ5ICYge1xuICAgIEBpbmNsdWRlIHRhZy1sYWJlbCgkZ3JlZW4sICdzbWFsbCcpO1xuICB9XG59XG4vKiBNZXNzYWdlIGJveCAqL1xuLndvb2NvbW1lcmNlLW5vdGljZXMtd3JhcHBlciB7XG4gIG1hcmdpbjogMzBweCBhdXRvIDA7XG4gIGZsZXg6IDEgMSAxMDAlO1xuXG4gIC53b29jb21tZXJjZS1hY2NvdW50LmxvZ2dlZC1pbiAmIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgLndvb2NvbW1lcmNlLWNhcnQgJiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4ud29vY29tbWVyY2UtTm90aWNlR3JvdXAge1xuICBtYXJnaW46IDMwcHggYXV0byAwO1xuICBmbGV4OiAxIDEgMTAwJTtcbn1cbi8qIEFsbCBpbmZvcm1hdGlvbiBhbmQgbWVzc2FnZXMgKi9cbi53b29jb21tZXJjZS1pbmZvLFxuLndvb2NvbW1lcmNlLW1lc3NhZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4od2hpdGUsIDUlKTtcbiAgY29sb3I6ICM1NTU7XG4gIGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvIDJlbTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEycHg7XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgcGFkZGluZzogMTJweCAyNHB4IDEycHggMTJweDtcbiAgfVxuXG4gIGEge1xuICAgIEBleHRlbmQgJWJ0bjtcbiAgICBAZXh0ZW5kICVidG4tMTtcbiAgICBAZXh0ZW5kICVmbGV4Ym94LWMtYztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWFyZ2luOiAwIDEwcHg7XG4gICAgfVxuICB9XG5cbiAgLnJlc3RvcmUtaXRlbSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLyogQWxsIGVycm9ycyAqL1xuLndvb2NvbW1lcmNlLWVycm9yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBmb250LXdlaWdodDogJGZvbnQtbm9ybTtcbiAgbGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlO1xuICB3aWR0aDogMTAwJTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gIHBhZGRpbmc6IDEycHg7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG5cbiAgbGkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZSAhaW1wb3J0YW50OyAvLyBSZXF1aXJlZCBmb3IgZGVmYXVsdCB0aGVtZSBjb21wYXRpYmlsaXR5XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IC8vIFJlcXVpcmVkIGZvciBkZWZhdWx0IHRoZW1lIGNvbXBhdGliaWxpdHlcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyAvLyBSZXF1aXJlZCBmb3IgZGVmYXVsdCB0aGVtZSBjb21wYXRpYmlsaXR5XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXG4gICAgLndvb2NvbW1lcmNlLU5vdGljZUdyb3VwLWNoZWNrb3V0ICYge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweCFpbXBvcnRhbnQ7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ud29vY29tbWVyY2UtbWVzc2FnZSB7XG4gIEBpbmNsdWRlIHdvb2NvbW1lcmNlLW1lc3NhZ2UoJGdyZWVuKTtcbn1cblxuLndvb2NvbW1lcmNlLWluZm8ge1xuICBAaW5jbHVkZSB3b29jb21tZXJjZS1tZXNzYWdlKCNjY2MpO1xufVxuXG4ud29vY29tbWVyY2UtZXJyb3Ige1xuICBAaW5jbHVkZSB3b29jb21tZXJjZS1tZXNzYWdlKCRyZWQpO1xufVxuLyogUEFHSU5BVElPTiAqL1xuLndvb2NvbW1lcmNlLXBhZ2luYXRpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAxMHB4IDA7XG4gIGZsZXg6IDEgMSAxMDAlO1xuXG4gIC5wYWdlLW51bWJlcnMge1xuICAgIEBleHRlbmQgJWZsZXhib3gtYy1jO1xuICAgIEBpbmNsdWRlIGNoaWxkLW1hcmdpbigncmlnaHQnLCA1cHgpO1xuICB9XG5cbiAgYSxcbiAgc3BhbiB7XG4gICAgQGV4dGVuZCAlYnRuLXNtYWxsO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICB9XG5cbiAgc3BhbiB7XG4gICAgQGV4dGVuZCAlYnRuLTEtbGlnaHQ7XG4gICAgY3Vyc29yOiB1bnNldDtcbiAgfVxuXG4gIGEge1xuICAgIEBleHRlbmQgJWJ0bi0xO1xuICB9XG59XG4vKiBXb29jb21tZXJjZSBTdG9yZSBOb3RpY2UgKi9cbi53b29jb21tZXJjZS1zdG9yZS1ub3RpY2Uge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMTJweCA1JTtcbiAgei1pbmRleDogODg7XG4gIGJvdHRvbTogMDtcbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDZweCA1JTtcbiAgfVxufVxuXG4ud29vY29tbWVyY2Utc3RvcmUtbm90aWNlX19kaXNtaXNzLWxpbmsge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA1JTtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cbiIsIi8qIEFyY2hpdmUgUGFnZSBNYWluIExheW91dFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmFyY2hpdmUud29vY29tbWVyY2Uge1xuICAuY29udGVudCB7XG4gICAgd2lkdGg6IG1pbig5MCUsICRkZXNrdG9wLXhsLXdpZHRoKTtcbiAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmctdG9wOiA1cmVtO1xuICB9XG5cbiAgLnNpdGUtY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvci01MDtcbiAgfVxuXG4gIC8vIHNwZWNpZmljIGZvciBhcmNoaXZlIHBhZ2VcbiAgYXNpZGUud2lkZ2V0LWFyZWEge1xuICAgIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICB6LWluZGV4OiAxMDAwMDtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHBhZGRpbmc6IDEwMHB4IDUwcHg7XG4gICAgfVxuXG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgfVxuXG4gIC53b29jb21tZXJjZS1wcm9kdWN0cy1oZWFkZXJfX3RpdGxlLFxuICAudGVybS1kZXNjcmlwdGlvbiB7XG4gICAgd2lkdGg6IG1pbihjYWxjKCRkZXNrdG9wLXdpZHRoICogMC43KSwgMTAwJSk7XG4gIH1cbn1cblxuLyogU2hvcCBCYW5uZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnNob3AtYmFubmVyIHtcbiAgQGV4dGVuZCAlcmVndWxhci1iYW5uZXI7XG4gIG1pbi1oZWlnaHQ6IDIwMHB4O1xuXG4gIHAge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4yO1xuXG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBtYXgtd2lkdGg6IDYwdnc7XG4gICAgfVxuICB9XG59XG5cbi8qIFNob3AgQXJjaGl2ZSBUb3AgQmFyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5hcmNoaXZlLXRvcGJhciB7XG4gIEBpbmNsdWRlIGxpbmUtYm9yZGVyKDJweCwgI2YxZjFmMSwgYm90dG9tLCAzMHB4KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMjBweCAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi53b29jb21tZXJjZS1yZXN1bHQtY291bnQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBjb2xvcjogaHNsKDAsIDAlLCA2MCUpO1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuNDtcbn1cblxuLndvb2NvbW1lcmNlLW9yZGVyaW5nIHtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgd2lkdGg6IDI1MHB4O1xuICB9XG59XG5cbi8qIFNob3AgQXJjaGl2ZSBXaWRnZXQgQXJlYVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ud29vY29tbWVyY2UgYXNpZGUud2lkZ2V0LWFyZWEge1xuICBAaW5jbHVkZSBsaW5lLWJvcmRlcigycHgsICNmMWYxZjEsIHJpZ2h0LCAxNXB4KTtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgd2lkdGg6IDE1MHB4O1xuXG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIEBpbmNsdWRlIGxpbmUtYm9yZGVyKDJweCwgI2YxZjFmMSwgcmlnaHQsIDMwcHgpO1xuICAgIHdpZHRoOiAyNTBweDtcbiAgfVxuXG4gIC53aWRnZXQge1xuICAgIEBpbmNsdWRlIGxpbmUtYm9yZGVyKDJweCwgI2YxZjFmMSwgYm90dG9tLCAzMHB4KTtcbiAgfVxufVxuXG4vKiBTaWRlYmFyIFRvZ2dsZSAqL1xuI3NpZGViYXItdG9nZ2xlIHtcbiAgQGV4dGVuZCAlYnRuLWxhcmdlO1xuICBAZXh0ZW5kICVidG4tMTtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbiNzaWRlYmFyLXRvZ2dsZS1jbG9zZSB7XG4gIEBpbmNsdWRlIGNpcmNsZS1vYmplY3QoNDBweCwgI2YxZjFmMSwgMjVweCk7XG4gIGNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDE1JSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1dnc7XG4gIHJpZ2h0OiA1dnc7XG59XG5cbi8qIFNwZWNpZmljYWxseSBmb3IgcHJvZHVjdCBjYXRlZ29yeSAqL1xuJWFyY2hpdmUtcHJvZHVjdC1jYXRlZ29yeSB7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4yO1xuXG4gIGEge1xuICAgIEBleHRlbmQgJXRyYW5zaXRpb24tZHVyYXRpb247XG4gICAgY29sb3I6IGhzbCgwLCAwJSwgNjAlKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwLjJlbSAwO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogaHNsKDAsIDAlLCA0MCUpO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjRlbTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLm1lbnUtc2hvcC1tZW51LWNvbnRhaW5lcixcbi53aWRnZXRfcHJvZHVjdF9jYXRlZ29yaWVzIHtcbiAgQGV4dGVuZCAlYXJjaGl2ZS1wcm9kdWN0LWNhdGVnb3J5O1xufVxuXG4vKiBQcm9kdWN0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBTdHJ1Y3R1cmUgb2YgcHJvZHVjdHMgdG8gZGlmZmVyZW50aWF0ZSBpdCBmcm9tIHJlbGF0ZWQgcHJvZHVjdHMgKi9cblxudWwucHJvZHVjdHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMnJlbSAxcmVtO1xuXG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgZ2FwOiA0cmVtIDJyZW07XG4gIH1cblxuICAmLmNvbHVtbnMtMiB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgfVxuXG4gICYuY29sdW1ucy0zIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIH1cbiAgfVxuXG4gICYuY29sdW1ucy00IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICAgIH1cbiAgfVxufVxuXG4vKiBQcm9kdWN0IExpc3QgKi9cbiVwcm9kdWN0LXN0eWxlIHtcbiAgQGV4dGVuZCAldHJhbnNpdGlvbi1kdXJhdGlvbjtcbiAgQGluY2x1ZGUgY2hpbGQtbWFyZ2luKFwiYm90dG9tXCIsIDEwcHgpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuOHJlbTtcbiAgYm9yZGVyLXJhZGl1czogMnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XG4gIHotaW5kZXg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogLTE7XG4gICAgYmFja2dyb3VuZDogaHNsKDAsIDAlLCA5NSUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTIuNXZ3O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIGhlaWdodDogNy41dnc7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgcGFkZGluZzogMS41cmVtIDNyZW07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLmF0dGFjaG1lbnQtd29vY29tbWVyY2VfdGh1bWJuYWlsLFxuICAud29vY29tbWVyY2UtcGxhY2Vob2xkZXIge1xuICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdyg4cHggOHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjUpKTtcblxuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG4gIH1cblxuICAud29vY29tbWVyY2UtbG9vcC1wcm9kdWN0X190aXRsZSB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKyAwLjQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIG9yZGVyOiAtNTtcblxuICAgICsgcCB7XG4gICAgICBvcmRlcjogLTI7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG4gIH1cblxuICAucHJpY2Uge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4yO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtO1xuICAgIGNvbG9yOiAjOTk5O1xuXG4gICAgLyogRm9yIHNhbGUgaXRlbSAqL1xuICAgIGlucyB7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICAgIGNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICBwIHtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGNvbG9yOiBoc2woMCwgMCUsIDQwJSk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMztcbiAgfVxufVxuXG5saS5wcm9kdWN0IHtcbiAgQGV4dGVuZCAlcHJvZHVjdC1zdHlsZTtcbn1cblxubGkucHJvZHVjdC1jYXRlZ29yeSB7XG4gIEBleHRlbmQgJXByb2R1Y3Qtc3R5bGU7XG5cbiAgaW1nIHtcbiAgICBhc3BlY3QtcmF0aW86IDE2Lzk7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYXNwZWN0LXJhdGlvOiAxcmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLndvb2NvbW1lcmNlLWxvb3AtY2F0ZWdvcnlfX3RpdGxlIHtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSArIDAuNDtcbiAgICBjb2xvcjogJG1haW4tY29sb3ItNzAwO1xuICAgIG1hcmdpbi1ibG9jazogMXJlbTtcbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgIGhlaWdodDogNzAlO1xuICB9XG59XG5cbi8qIEFkZGVkIHRvIGNhcnQgYnV0dG9uICovXG4uYWRkZWRfdG9fY2FydCB7XG4gIEBleHRlbmQgJWJ0bjtcbiAgQGV4dGVuZCAlYnRuLTEtbGlnaHQ7XG59XG4uc2hvcC1sb29wLWNhdGVnb3JpZXMge1xuICBvcmRlcjogLTEwO1xufVxuXG4uY2F0ZWdvcnktdGFnIHtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICRvZmYtd2hpdGU7XG4gIHBhZGRpbmc6IDAuNHJlbSAwLjhyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogJG1haW4tY29sb3ItNTAwO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkZGFyay1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2ZmLXdoaXRlO1xuICB9XG59XG4iLCIvKiBTaW5nbGUgUHJvZHVjdCBMYXlvdXQgKi9cbi5zaW5nbGUtcHJvZHVjdCB7XG4gIC5wcm9kdWN0LXByaW1hcnktaW5mb3JtYXRpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLDAlLDk3JSk7XG4gICAgcGFkZGluZzogMCAyLjUlO1xuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBwYWRkaW5nOiAwIDUlO1xuICAgIH1cbiAgfVxufVxuLyogU2ltcGxlIEFORCBWYXJpYWJsZSBQcm9kdWN0ICovXG5kaXYucHJvZHVjdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIC8qIENvbW1vbiBQcm9kdWN0IERlc2NyaXB0aW9uIC8gU3VtbWFyeSAqL1xuICAuc3VtbWFyeSB7XG4gICAgQGluY2x1ZGUgY2hpbGQtbWFyZ2luKCdib3R0b20nLCAxNXB4KTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIGZsZXg6IDEgMSAwO1xuICAgIH1cbiAgfVxuICAvLyBQcm9kdWN0IFRpdGxlXG4gIC5wcm9kdWN0X3RpdGxlIHtcbiAgICBmb250LXNpemU6IDNyZW07XG4gIH1cbiAgLy8gUHJpY2VcbiAgLnByaWNlIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gIH1cbiAgLy8gU2hvcnQgRGVzY3JpcHRpb25cbiAgLndvb2NvbW1lcmNlLXByb2R1Y3QtZGV0YWlsc19fc2hvcnQtZGVzY3JpcHRpb24ge1xuICAgIEBpbmNsdWRlIGNvbnRhaW5lcigyMHB4LCBoc2woMCwwJSwxMDAlKSwgNXB4LCAxcHggc29saWQgaHNsKDAsMCUsOTAlKSk7XG5cbiAgICBvbCB7XG4gICAgICBAZXh0ZW5kIC5udW1iZXItbGlzdDtcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICBAZXh0ZW5kIC5pdGVtLWxpc3Q7XG4gICAgfVxuXG4gICAgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbi8qIENvbW1vbiBQcm9kdWN0IFBhZ2UgR2FsbGVyeSAqL1xuLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeSB7XG4gIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cblxuICBkaXYudGh1bWJuYWlscyB7XG4gICAgcGFkZGluZy10b3A6IDFlbTtcbiAgfVxuXG4gICYud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIGZsZXg6IDEgMSAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1MHB4O1xuICAgICAgZmxleC1mbG93OiByb3ctcmV2ZXJzZSBub3dyYXA7XG4gICAgICBtYXgtd2lkdGg6IDQydnc7XG4gICAgfVxuXG4gICAgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeV9faW1hZ2Uge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgIGEgPiBpbWcge1xuICAgICAgICBoZWlnaHQ6IDQwMHB4O1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgICAgIGhlaWdodDogNTAwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5X193cmFwcGVyIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgY3ViaWMtYmV6aWVyKDAuNzk1LCAtMC4wMzUsIDAsIDEpIDAuNXM7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5X193cmFwcGVyIC56b29tSW1nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5X19pbWFnZS0tcGxhY2Vob2xkZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMmYyZjI7XG4gIH1cblxuICAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5X19pbWFnZTpudGgtY2hpbGQobisyKSB7XG4gICAgd2lkdGg6IDI1JTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cblxuICAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5X190cmlnZ2VyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwLjVlbTtcbiAgICByaWdodDogMC41ZW07XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgei1pbmRleDogOTtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgYm9yZGVyOiAycHggc29saWQgIzAwMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDlweDtcbiAgICAgIGxlZnQ6IDlweDtcbiAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAycHg7XG4gICAgICBoZWlnaHQ6IDhweDtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDE5cHg7XG4gICAgICBsZWZ0OiAyMnB4O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIH1cbiAgfVxuXG4gIC5mbGV4LWNvbnRyb2wtdGh1bWJzIHtcbiAgICAvLyBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHpvb206IDE7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICB3aWR0aDogODBweDtcbiAgICAgIG1heC13aWR0aDogODBweDtcbiAgICAgIG1pbi13aWR0aDogODBweDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBwYWRkaW5nOiAwIDEwcHggMTBweDtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgICAgaW1nIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNsaWNrLWxpc3Qge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2xpY2stY3VycmVudCB7XG4gICAgICBpbWcge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAjZmZmLCAwIDAgMCA0cHggI2NjYztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5zbGljay1uZXh0IHtcbiAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSB0cmFuc2xhdGVZKDUwJSk7XG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgYm90dG9tOiAtMzBweDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zbGljay1wcmV2IHtcbiAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSB0cmFuc2xhdGVZKDUwJSk7XG4gICAgICAgIHRvcDogLTMwcHg7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8qIFZhcmlhYmxlIFByb2R1Y3QgKi9cbmRpdi5wcm9kdWN0LXR5cGUtdmFyaWFibGUge1xuICAud29vY29tbWVyY2UtdmFyaWF0aW9uLWFkZC10by1jYXJ0IHtcbiAgICBAZXh0ZW5kICVzaW5nbGUtYWRkLXRvLWNhcnQtbW9kdWxlO1xuICB9XG4gIC8qIEZvciB2YXJpYXRpb25zICovXG4gIHRhYmxlLnZhcmlhdGlvbnMge1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcblxuICAgIHRib2R5IHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuXG4gICAgdGQge1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cblxuICAgIC5sYWJlbCB7XG4gICAgICB3aWR0aDogJHByb2R1Y3Qtc2VsZWN0aW9uLWxheW91dC1jb2wtMTtcbiAgICB9XG5cbiAgICAudmFsdWUge1xuICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgIHNlbGVjdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAucmVzZXRfdmFyaWF0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvKiBBZnRlciB2YXJpYXRpb24gc2VsZWN0ICovXG4gIC5zaW5nbGVfdmFyaWF0aW9uX3dyYXAge1xuICAgID4gKiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIH1cblxuICAgIC5zaW5nbGVfdmFyaWF0aW9uIHtcbiAgICAgIEBpbmNsdWRlIGNvbnRhaW5lcigyMHB4LCBoc2woMCwwJSwxMDAlKSwgNXB4LCAxcHggc29saWQgaHNsKDAsMCUsOTAlKSk7XG4gICAgfVxuXG4gICAgLndvb2NvbW1lcmNlLXZhcmlhdGlvbi1wcmljZSB7XG4gICAgICBAaW5jbHVkZSBsaW5lLWJvcmRlcigxcHgsICNmMWYxZjEsIHRvcCwgMjBweCk7XG5cbiAgICAgIC5wcmljZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiUHJpY2VcIjtcbiAgICAgICAgICBAZXh0ZW5kICV3b28tbGFiZWwtMjtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXNlbGVjdGlvbi1sYXlvdXQtY29sLTE7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgICAgIH1cblxuICAgICAgICBkZWwge1xuICAgICAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC40O1xuICAgICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5kaXYucHJvZHVjdC10eXBlLXNpbXBsZSB7XG4gIGZvcm0uY2FydCB7XG4gICAgQGV4dGVuZCAlc2luZ2xlLWFkZC10by1jYXJ0LW1vZHVsZTtcbiAgfVxufVxuLyogUXVhbnRpdHkgYW5kIEFkZCB0byBjYXJ0IG1vZHVsZSAqL1xuJXNpbmdsZS1hZGQtdG8tY2FydC1tb2R1bGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIHBhZGRpbmc6IDE1cHggMDtcblxuICBpbnB1dC5xdHkge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogNDBweDtcbiAgfVxuXG4gIC5xdWFudGl0eSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgZmxleDogMCAwIDQwcHg7XG5cbiAgICBpbnB1dCB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgaHNsKDAsMCUsODAlKTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBoc2woMCwwJSw4MCUpO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICAvKiBIaWRlIEhUTUw1IFVwIGFuZCBEb3duIGFycm93cy4gKi9cbiAgICAgICZbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbiAgICAgICZbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICAmW3R5cGU9XCJudW1iZXJcIl0ge1xuICAgICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWludXMsXG4gIC5wbHVzIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDAsMCUsODAlKTtcbiAgfVxuXG4gIC5taW51cyB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7XG4gIH1cblxuICAucGx1cyB7XG4gICAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7XG4gIH1cblxuICAuYnV0dG9uLnNpbmdsZV9hZGRfdG9fY2FydF9idXR0b24ge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICB9XG59XG4vKiBXb29jb21tZXJjZSBUYWJzICovXG4ud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLXRhYnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIFJlbGF0ZWQgUHJvZHVjdHMgKi9cbi5yZWxhdGVkLnByb2R1Y3RzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNTBweCAyLjUlO1xuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIHBhZGRpbmc6IDUwcHggNSU7XG4gIH1cblxuICA+IGgyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMi44cmVtO1xuICB9XG5cbiAgLnByb2R1Y3RzIHtcbiAgICBAaW5jbHVkZSBjb2x1bW5zKDIwcHgsIDQsIDIpO1xuICB9XG59XG5cbi8qIFNpbmdsZSBwcm9kdWN0IGFkZCB0byBhbnkgcGx1Z2luICovXG4uc3VtbWFyeSB7XG4gIC5hZGR0b2FueV9oZWFkZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgd2lkdGg6ICRwcm9kdWN0LXNlbGVjdGlvbi1sYXlvdXQtY29sLTE7XG4gICAgfVxuICB9XG5cbiAgLmEyYV9raXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBsZWZ0OiAxMHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLyogV29vIENhcnRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFN0cnVjdHVyZSAqL1xuLndvb2NvbW1lcmNlLWNhcnQge1xuICAud29vY29tbWVyY2Uge1xuICAgIHBhZGRpbmc6IDUwcHggM3Z3IDgwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgcGFkZGluZzogNTBweCA1JSA4MHB4O1xuICAgIH1cbiAgfVxufVxuXG4ud29vY29tbWVyY2UtY2FydCB7XG4gIC53b29jb21tZXJjZS1jYXJ0LWZvcm0ge1xuICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1dnc7XG4gICAgICBmbGV4OiAyIDEgMDtcbiAgICB9XG4gIH1cblxuICAuY2FydC1jb2xsYXRlcmFscyB7XG4gICAgZmxleDogMSAxIDEwMCU7XG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBmbGV4OiAxIDEgMDtcbiAgICB9XG4gIH1cbn1cbi8qIEdlbmVyYWwgVGFibGUgKi9cbi5zaG9wX3RhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgcCB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgdGhlYWQge1xuICAgIGNvbG9yOiBoc2woMCwwJSw2MCUpO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC40O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkICNlZWU7XG4gIH1cblxuICB0aCB7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7XG4gIH1cblxuICB0ZCB7XG4gICAgcGFkZGluZzogMTVweCAxMHB4O1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgcGFkZGluZzogMjVweCAxNXB4O1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuNDtcbiAgICAgIGNvbG9yOiAjOTk5O1xuICAgIH1cbiAgfVxuXG4gIHRkLnByb2R1Y3QtbmFtZSB7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgY29sb3I6IGRhcmtlbigkbWFpbi1jb2xvciwgMTAlKTtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcbiAgICB3aWR0aDogYXV0bztcbiAgICBsaW5lLWhlaWdodDogMi4ycmVtO1xuXG4gICAgYSB7XG4gICAgICBjb2xvcjogaHNsKDAsMCUsMzAlKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgY29sb3I6IGhzbCgwLDAlLDYwJSk7XG4gICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuNDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtbm9ybTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAucHJvZHVjdC1xdWFudGl0eSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIHdpZHRoOiAxMDBweDtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICB3aWR0aDogNTBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgIHdpZHRoOiA4MCU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgLnByb2R1Y3QtcHJpY2Uge1xuICAgICAgd2lkdGg6IDEwMHB4O1xuICAgIH1cblxuICAgIC5wcm9kdWN0LXN1YnRvdGFsIHtcbiAgICAgIHdpZHRoOiAxMDBweDtcbiAgICB9XG4gIH1cbn1cbi8qIENhcnQgVGFibGUgKi9cbnRhYmxlLmNhcnQge1xuICAucHJvZHVjdC1yZW1vdmUge1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIHdpZHRoOiAzMHB4O1xuICAgIH1cblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgY2lyY2xlLW9iamVjdCgyNnB4LCAkcmVkLCAwKTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgbWFyZ2luOiAwIDAgMCBhdXRvO1xuICAgICAgZm9udC1zaXplOiAwO1xuICAgICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgQGV4dGVuZCAlaWNvbjtcbiAgICAgICAgY29udGVudDogXCJcXGVhMGFcIjtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAucHJvZHVjdC10aHVtYm5haWwge1xuICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICBpbWcge1xuICAgICAgICB3aWR0aDogODBweDtcbiAgICAgICAgaGVpZ2h0OiA4MHB4O1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmFjdGlvbnMge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgYm9yZGVyLXRvcDogM3B4IHNvbGlkICNlZWU7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcblxuICAgIC5idXR0b24ge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjM7XG4gICAgfVxuXG4gICAgLmNvdXBvbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICBsYWJlbFtmb3I9XCJjb3Vwb25fY29kZVwiXSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYnV0dG9uW25hbWU9XCJ1cGRhdGVfY2FydFwiXSB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgI2NvdXBvbl9jb2RlIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8qIE1vYmlsZSBUYWJsZSAqL1xuICBAaW5jbHVkZSBtb2JpbGUge1xuICAgIHRib2R5IHRyLmNhcnRfaXRlbSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cbiAgICAgIHRkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZjVmNWY1O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLyogVmFyaWF0aW9uIHRleHQgd2l0aGluIHRhYmxlICovXG4udmFyaWF0aW9uLFxuLndjLWl0ZW0tbWV0YSB7XG4gIG1hcmdpbjogMDtcblxuICAud2MtaXRlbS1tZXRhLWxhYmVsLFxuICBkdCB7XG4gICAgQGV4dGVuZCAld29vLWxhYmVsO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gIH1cblxuICBkZCB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG4vKiBDYXJ0IFRvdGFscyBUYWJsZSAqL1xuLmNhcnRfdG90YWxzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCNmZmYsIDMlKTtcbiAgcGFkZGluZzogNXB4IDIwcHggMjBweDtcblxuICAuc2hvcF90YWJsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwIHRyYW5zcGFyZW50O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cblxuICAud29vY29tbWVyY2Utc2hpcHBpbmctdG90YWxzIHtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgd2lkdGg6IDIwMCU7XG4gICAgfVxuICB9XG5cbiAgPiBoMiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIHRyOmZpcnN0LWNoaWxkID4gKiB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxuXG4gIHRkLFxuICB0aCB7XG4gICAgcGFkZGluZzogMTJweCAwO1xuICB9XG5cbiAgdGgge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xuICAgIGNvbG9yOiAjNjY2O1xuICB9XG5cbiAgdGQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG5cbiAgLndvb2NvbW1lcmNlLXNoaXBwaW5nLWRlc3RpbmF0aW9uIHtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuNDtcbiAgICBtYXJnaW46IDEwcHggMDtcbiAgICBvcGFjaXR5OiAwLjg7XG5cbiAgICBzdHJvbmcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLmNoZWNrb3V0LWJ1dHRvbiB7XG4gICAgaSB7XG4gICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcbiAgICB9XG4gIH1cbn1cblxuI3NoaXBwaW5nX21ldGhvZCB7XG4gIGZvbnQ6ICRmb250LWJvbGQgJGJhc2UtZm9udC1zaXplIC0gMC4yICRtYWluLWZvbnQ7XG5cbiAgJWNoZWNrZWQtbGFiZWwge1xuICAgIEBleHRlbmQgJWJ0bi0xO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCBkYXJrZW4oJG1haW4tY29sb3IsIDMwJSk7XG4gIH1cblxuICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmOmNoZWNrZWQrbGFiZWwge1xuICAgICAgQGV4dGVuZCAlY2hlY2tlZC1sYWJlbDtcbiAgICB9XG4gIH1cblxuICBpbnB1dFt0eXBlPVwiaGlkZGVuXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgK2xhYmVsIHtcbiAgICAgIEBleHRlbmQgJWNoZWNrZWQtbGFiZWw7XG4gICAgfVxuICB9XG5cbiAgbGFiZWwge1xuICAgIEBleHRlbmQgJWJ0bi1sYXJnZTtcbiAgICBAZXh0ZW5kICVidG4tMS1saWdodDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgfVxufVxuXG4uY2FydC1lbXB0eSB7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5yZXR1cm4tdG8tc2hvcCB7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4iLCIud29vY29tbWVyY2UtY2hlY2tvdXQ6bm90KC53b29jb21tZXJjZS1vcmRlci1yZWNlaXZlZCkge1xuICAuZW50cnksXG4gIC5lbnRyeS1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gIC8vIG1ha2UgbGF5b3V0IGZ1bGwgd2lkdGhcbiAgLndvb2NvbW1lcmNlIHtcbiAgICBwYWRkaW5nOiAwIDUlIDUwcHg7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgcGFkZGluZzogMCA1JSA1MHB4O1xuICAgIH1cblxuICAgIC53b29jb21tZXJjZS1mb3JtLWxvZ2luLXRvZ2dsZSB7XG4gICAgICBmbGV4OjEgMSAxMDAlO1xuICAgIH1cblxuICAgIGgzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuICB9XG5cbiAgI3NoaXAtdG8tZGlmZmVyZW50LWFkZHJlc3Mge1xuICAgIHNwYW4ge1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtbm9ybTtcbiAgICB9XG4gIH1cbn1cbi8vIENoZWNrb3V0IGZvcm1cbmZvcm0ud29vY29tbWVyY2UtY2hlY2tvdXQge1xuICAuY29sMi1zZXQge1xuICAgIEBpbmNsdWRlIGNvbHVtbnMoMzBweCAyKTtcbiAgICBAaW5jbHVkZSBjb2x1bW4tbGF5b3V0KDMsMik7XG4gIH1cblxuICAuY29sLTEge1xuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgQGluY2x1ZGUgY2hpbGQtbWFyZ2luKCdib3R0b20nLCAyNXB4KTtcbiAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICBoNCB7XG4gICAgICBAZXh0ZW5kIGgzO1xuICAgICAgQGluY2x1ZGUgbGluZS1ib3JkZXIoMXB4LCBoc2woMCwwJSw5MCUpLCAndG9wJywgNTBweCk7XG4gICAgfVxuICB9XG5cbiAgLmNvbC0yIHtcbiAgICBwYWRkaW5nOiAzMHB4IDEwcHg7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG59XG5cbiNvcmRlci1yZXZpZXctd3JhcHBlciB7XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIEBpbmNsdWRlIGxpbmUtYm9yZGVyKDFweCwgaHNsKDAsMCUsOTUlKSwgJ2xlZnQnLCA1MHB4KTtcbiAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICB9XG59XG4vKiBTaGlwIHRvIGEgZGlmZmVyZW50IGFkZHJlc3MgKi9cbi53b29jb21tZXJjZS1mb3JtX19sYWJlbC1mb3ItY2hlY2tib3gge1xuICBzcGFuIHtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICBmb250LWZhbWlseTogJG1haW4tZm9udDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgfVxufVxuLyogU2VsZWN0IHNoaXBwaW5nIG1ldGhvZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uY2hlY2tvdXQtc2VsZWN0LXNoaXBwaW5nLW1ldGhvZCB7XG4gIEBpbmNsdWRlIGxpbmUtYm9yZGVyKDFweCwgaHNsKDAsMCUsODUlKSwgJ3RvcCcsIDYwcHgpO1xufVxuLyogUGF5bWVudCBtZXRob2Rcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLndvb2NvbW1lcmNlLWNoZWNrb3V0LXJldmlldy1vcmRlciBoNCB7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuLyogQ2hlY2tvdXQgUGFnZSBPcmRlciBTdW1tYXJ5IFRhYmxlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaG9wX3RhYmxlLndvb2NvbW1lcmNlLWNoZWNrb3V0LXJldmlldy1vcmRlci10YWJsZSB7XG4gIC5wcm9kdWN0LXRvdGFsLFxuICB0Zm9vdCB0ZCB7XG4gICAgd2lkdGg6IDgwcHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgfVxuXG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdGgge1xuICAgIHBhZGRpbmc6IDhweCAwO1xuICB9XG5cbiAgdGQge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIHBhZGRpbmc6IDEzcHggMDtcbiAgfVxuXG4gIC52YXJpYXRpb24ge1xuICAgIEBleHRlbmQgJXRyYW5zaXRpb24tZHVyYXRpb247XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXgtaGVpZ2h0OiAwO1xuXG4gICAgcCB7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgfVxuICB9XG5cbiAgLnZhcmlhdGlvbi0tYWN0aXZlIHtcbiAgICBtYXgtaGVpZ2h0OiA1MDBweDtcbiAgfVxuXG4gIC5vcmRlci10b3RhbCB7XG4gICAgYm9yZGVyLWJvdHRvbTogNHB4IGRvdWJsZSBoc2woMCwwJSw3NSUpO1xuICB9XG5cbiAgLnByb2R1Y3QtbmFtZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogZGFya2VuKCRtYWluLWNvbG9yLCAyNSUpO1xuICAgIH1cbiAgfVxufVxuLyogUGF5bWVudCBTZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiNwYXltZW50IHtcbiAgLyogVG8gc2VsZWN0IHNhdmVkIHBheW1lbnQgbWV0aG9kcyAqL1xuICAud2Mtc2F2ZWQtcGF5bWVudC1tZXRob2RzIHtcbiAgICBtYXJnaW46IDE1cHggMDtcblxuICAgIGxhYmVsIHtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCNmZmYsIDEwJSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmlucHV0W2lkXj1cInBheW1lbnRfbWV0aG9kXCJdIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgLy8gSWYgcGFydGljdWxhciBwYXltZW50IG1ldGhvZCBpcyBzZWxlY3RlZFxuICAmOmNoZWNrZWQgKyBsYWJlbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRtYWluLWNvbG9yLCAxMCUpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweCA3cHggMCAwO1xuICAgIGJvcmRlcjogMDtcbiAgfVxufVxuXG4ud2NfcGF5bWVudF9tZXRob2RzIHtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcbn1cblxuLndjX3BheW1lbnRfbWV0aG9kIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcblxuICA+IGxhYmVsIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBoc2woMCwwJSw4MCUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBAZXh0ZW5kICVidG47XG4gICAgQGV4dGVuZCAlYnRuLTEtbGlnaHQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLDAlLDcwJSk7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cbn1cblxuLnBheW1lbnRfYm94IHtcbiAgYm9yZGVyOiAxcHggc29saWQgaHNsKDAsMCUsODglKTtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDdweCA3cHg7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLDAlLDk4JSk7XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIHBhZGRpbmc6IDMwcHggMzBweCAyMHB4O1xuICB9XG5cbiAgLndjLXBheW1lbnQtZm9ybSB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAuZm9ybS1yb3cge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB9XG4gIH1cbiAgLyogRXJyb3IgaW5zaWRlIHBheW1lbnQgKi9cbiAgLndvb2NvbW1lcmNlX2Vycm9yIHtcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cbi8qIEZvciBTdHJpcGUgb25seVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4jc3RyaXBlLXBheW1lbnQtZGF0YSB7XG4gIHAge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4zO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIH1cbn1cblxubGFiZWxbZm9yPVwicGF5bWVudF9tZXRob2Rfc3RyaXBlXCJdIHtcbiAgaW1nIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5TdHJpcGVFbGVtZW50LmludmFsaWQge1xuICBAZXh0ZW5kICVpbnZhbGlkLWlucHV0O1xufVxuLyogQWZ0ZXIgcGF5bWVudCBib3hcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnBsYWNlLW9yZGVyIHtcbiAgLndvb2NvbW1lcmNlLXRlcm1zLWFuZC1jb25kaXRpb25zLWNoZWNrYm94LXRleHQge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXG4gICAgYSB7XG4gICAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4yO1xuICAgIGNvbG9yOiAjNjY2O1xuICB9XG59XG5cbiNwbGFjZV9vcmRlciB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyogRXJyb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi53b29jb21tZXJjZS1pbnZhbGlkLXJlcXVpcmVkLWZpZWxkIHtcbiAgbGFiZWwge1xuICAgIEBleHRlbmQgJWludmFsaWQtbGFiZWw7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgQGV4dGVuZCAlaW52YWxpZC1pbnB1dDtcbiAgfVxufVxuLyogT3JkZXIgRGVsaXZlcnkgRGF0ZSBPbmx5ICovXG4jb3JkZGRfdGltZV9zbG90X2ZpZWxkIHtcbiAgLnNlbGVjdDItc2VsZWN0aW9uLFxuICAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93IHtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gIH1cblxuICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcbiAgICBsaW5lLWhlaWdodDogMzhweDtcbiAgfVxufVxuXG4jcGF5bWVudCAucGF5bWVudF9tZXRob2RzID4gbGkgPiBsYWJlbCBpbWcge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogQ2hlY2tvdXQgY291cG9uICovXG4uY2hlY2tvdXRfY291cG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgQGV4dGVuZCAuY29sLTE7XG5cbiAgYnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5mb3JtLXJvdyB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG5cbiNvcmRlcl9yZXZpZXdfaGVhZGluZyB7XG4gIGZvbnQtZmFtaWx5OiAkdGl0bGUtZm9udDtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbi53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UtZm9ybS1sb2dpbiB7XG4gIC5mb3JtLXJvdyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8qIDEgaXRlbSB0byByZXZpZXdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi53b29jb21tZXJjZS1vcmRlci1yZWNlaXZlZCB7XG4gIC5lbnRyeS10aXRsZSB7XG4gICAgZm9udC1zaXplOiA0cmVtO1xuICB9XG5cbiAgLndvb2NvbW1lcmNlLW9yZGVyIHtcbiAgICBAaW5jbHVkZSBjaGlsZC1tYXJnaW4oJ2JvdHRvbScsIDQwcHgpO1xuICAgIHBhZGRpbmc6IDUwcHggNSU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsMCUsOTclKTtcbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIHBhZGRpbmc6IDUwcHggMTAlO1xuICAgIH1cbiAgfVxuXG4gIC53b29jb21tZXJjZS1vcmRlci1kZXRhaWxzX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICB9XG5cbiAgLndvb2NvbW1lcmNlLWN1c3RvbWVyLWRldGFpbHMsXG4gIC53b29jb21tZXJjZS1vcmRlci1kZXRhaWxzIHtcbiAgICBAZXh0ZW5kICVjb2wtMTtcbiAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cbn1cbi8qIE92ZXJ2aWV3IGJhciAqL1xuLndvb2NvbW1lcmNlLW9yZGVyLW92ZXJ2aWV3IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGJvcmRlci10b3A6IDNweCBzb2xpZCAkbWFpbi1jb2xvcjtcbiAgYm94LXNoYWRvdzogMCAwIDVweCAwIHJnYmEoMCwwLDAsMC4xNSk7XG5cbiAgPiAqIHtcbiAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuNDtcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggZG90dGVkICNkZGQ7XG4gICAgY29sb3I6ICM4ODg7XG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBmbGV4OiAxIDEgMDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgIHN0cm9uZyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICAgIGNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDIyJSk7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICB9XG4gIH1cbiAgLyogUkVWSUVXIFRISVMgKi9cbiAgLmRlbGl2ZXJ5RGV0YWlscyB7XG4gICAgZmxleDogMSAxIDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRtYWluLWNvbG9yLCAxMCUpO1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZsZXg6IDEgMSA1MCU7XG4gICAgfVxuXG4gICAgPiBzcGFuIHtcbiAgICAgIEBleHRlbmQgJXdvby1sYWJlbDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxufVxuXG4ud29vY29tbWVyY2UtdGhhbmt5b3Utb3JkZXItcmVjZWl2ZWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi53b29jb21tZXJjZS10YWJsZS0tb3JkZXItZGV0YWlscyB7XG4gIC5wcm9kdWN0LXRvdGFsLFxuICB0Zm9vdCB0ZCB7XG4gICAgd2lkdGg6IDIwJTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG59XG4iLCIud29vY29tbWVyY2Utb3JkZXItcGF5IHtcbiAgLmVudHJ5LWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLDAlLDk3JSk7XG4gIH1cblxuICAud29vY29tbWVyY2Uge1xuICAgIEBleHRlbmQgJWNvbC0xO1xuICB9XG5cbiAgLnByb2R1Y3QtcXVhbnRpdHkge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG4iLCIvKiBXb29jb21tZXJjZSBBY2NvdW50IFBhZ2VcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIE1haW4gU3RydWN0dXJlICovXG4ld29vY29tbWVyY2UtYWNjb3VudC1jb250YWluZXIge1xuICBAaW5jbHVkZSBjb250YWluZXIoMzVweCwgaHNsKDAsMCUsMTAwJSksIDEwcHgsIDFweCBzb2xpZCAjZGRkKTtcbn1cbi8qIGdlbmVyYWwgd29vY29tbWVyY2UgYWNjb3VudCBzdHlsZS4gRm9yIG15IGFjY291bnQsIGxvZ2dlZCBpbiwgYW5kIGxvc3QgcGFzc3dvcmQgKi9cbi53b29jb21tZXJjZS1hY2NvdW50IHtcbiAgLmVudHJ5LWNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwwJSw5NyUpO1xuICAgIHBhZGRpbmc6IDMwcHggNSU7XG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDMwcHggMTAlO1xuICAgIH1cbiAgfVxuICAvKiBXb29jb21tZXJjZSBhY2NvdW50IGxvZ2dlZCBpbiBzcGVjaWZpYyBzdHlsZSovXG4gICYubG9nZ2VkLWluIHtcbiAgICAud29vY29tbWVyY2Uge1xuICAgICAgQGV4dGVuZCAuY29scy0yO1xuICAgICAgQGluY2x1ZGUgY29sdW1uLWxheW91dCgxLDMpO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICB9XG59XG4vKiBNeSBBY2NvdW50IE5hdmlnYXRpb24gKi9cbi53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIHBhZGRpbmc6IDE1cHggMDtcbn1cblxuLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uLWxpbmsge1xuICBAaW5jbHVkZSBsaW5lLWJvcmRlcigxcHgsICNlZWUsIGJvdHRvbSwgMTBweCk7XG5cbiAgJi5pcy1hY3RpdmUge1xuICAgIGEge1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgICBjb2xvcjogZGFya2VuKCRtYWluLWNvbG9yLCAxMCUpO1xuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgIEBleHRlbmQgJXRyYW5zaXRpb24tZHVyYXRpb247XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMCAxMnB4O1xuICAgIGNvbG9yOiAjODg4O1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4xO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gICAgICBjb2xvcjogIzU1NTtcbiAgICB9XG4gIH1cbn1cbi8qIENvbnRlbnQgKi9cbi53b29jb21tZXJjZS1NeUFjY291bnQtY29udGVudCB7XG4gIEBleHRlbmQgJXdvb2NvbW1lcmNlLWFjY291bnQtY29udGFpbmVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gIG1hcmdpbjogMCBhdXRvO1xuICAvLyBwYWRkaW5nOiAzMHB4IDUlO1xuICBAaW5jbHVkZSBkZXNrdG9wIHt9XG5cbiAgZW0ge1xuICAgIG9wYWNpdHk6IDAuODtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcbiAgfVxuXG4gIG1hcmsge1xuICAgIEBpbmNsdWRlIHRhZy1sYWJlbChoc2woMCwwJSw5NSUpLCBzbWFsbCk7XG4gICAgY29sb3I6IGhzbCgwLDAlLDIwJSk7XG4gIH1cblxuICBmaWVsZHNldCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsMCUsOTklKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBoc2woMCwwJSw5MCUpO1xuICAgIHBhZGRpbmc6IDEwcHggMzBweDtcbiAgICBtYXJnaW46IDIwcHggMDtcblxuICAgIGxlZ2VuZCB7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICAgICAgY29sb3I6IGhzbCgwLDAlLDQwJSk7XG4gICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICBtYXJnaW46IDAgLTEwcHg7XG4gICAgfVxuICB9XG59XG4vKiBSZW1vdmUgZGFzaGJvYXJkIGxpbmsgKi9cbi53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbi1saW5rLS1kYXNoYm9hcmQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogUGFzc3dvcmQgc3RyZW5ndGggKi9cbi53b29jb21tZXJjZS1wYXNzd29yZC1zdHJlbmd0aCB7XG4gIHBhZGRpbmc6IDVweCAwO1xuXG4gICYuc2hvcnQge1xuICAgIGNvbG9yOiAkcmVkO1xuICB9XG5cbiAgJi5iYWQge1xuICAgIGNvbG9yOiAkb3JhbmdlO1xuICB9XG5cbiAgJi5nb29kIHtcbiAgICBjb2xvcjogJGdyZWVuO1xuICB9XG5cbiAgJi5zdHJvbmcge1xuICAgIGNvbG9yOiAkZ3JlZW47XG4gIH1cbn1cbi8qIFdvb2NvbW1lcmNlIEFjY291bnQgT3JkZXJzIFRhYmxlICovXG4ud29vY29tbWVyY2Utb3JkZXJzLXRhYmxlIHtcbiAgJl9fY2VsbC1vcmRlci1kZWxpdmVyeS1kYXRlLFxuICAmX19oZWFkZXItb3JkZXItZGVsaXZlcnktZGF0ZSB7XG4gICAgZGlzcGxheTogbm9uZSFpbXBvcnRhbnQ7XG4gIH1cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgJl9faGVhZGVyLW9yZGVyLW51bWJlciB7XG4gICAgICB3aWR0aDogODBweDtcbiAgICB9XG5cbiAgICAmX19oZWFkZXItb3JkZXItYWN0aW9ucyxcbiAgICAmX19oZWFkZXItb3JkZXItc3RhdHVzIHtcbiAgICAgIHdpZHRoOiAxMjBweDtcbiAgICB9XG4gIH1cbn1cblxuLndvb2NvbW1lcmNlLXRhYmxlLS1vcmRlci1kZXRhaWxzIHtcbiAgdGQge1xuICAgIHBhZGRpbmc6IDE1cHggMTBweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICB9XG59XG4iLCIvKiBMb2dpblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogTXkgYWNjb3VudCBwYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiNjdXN0b21lcl9sb2dpbiB7XG4gIEBpbmNsdWRlIGNvbHVtbnMoNXZ3LCAyKTtcblxuICAud29vY29tbWVyY2UtZm9ybS1sb2dpbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5jb2wtMSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGhzbCgwLDAlLDg1JSk7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuXG4ud29vY29tbWVyY2UtZm9ybS1sb2dpbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBwYWRkaW5nOiAzMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgbWF4LXdpZHRoOiA1MHZ3O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG5cbiAgbGFiZWwud29vY29tbWVyY2UtZm9ybV9fbGFiZWwge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcbiAgfVxufVxuXG4ud29vY29tbWVyY2UtZm9ybS1sb2dpbl9fc3VibWl0LFxuLndvb2NvbW1lcmNlLWZvcm0tcmVnaXN0ZXJfX3N1Ym1pdCB7XG4gIEBleHRlbmQgJWJ0bi0xO1xufVxuXG4ud29vY29tbWVyY2UtcHJpdmFjeS1wb2xpY3ktdGV4dCB7XG4gIHAge1xuICAgIEBleHRlbmQgLnNtYWxsO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgY29sb3I6IGhzbCgwLDAlLDYwJSk7XG4gIH1cbn1cbi8qIEZvciBsb3N0IHBhc3N3b3JkIHBhZ2UgKi9cbi53b29jb21tZXJjZS1sb3N0LXBhc3N3b3JkIC53b29jb21tZXJjZSB7XG4gIEBleHRlbmQgJWNvbC0xO1xufVxuIiwiLndpZGdldF9sYXllcmVkX25hdl9maWx0ZXJzIHVsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZTtcbiAgem9vbTogMTtcblxuICBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZzogMCAxZW0gMXB4IDFweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgYSB7XG4gICAgICBjb2xvcjogIzg4ODtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4zO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDFlbS8xICdiYXNlaWNvbic7XG4gICAgICAgIHNwZWFrOiBub25lO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nICovXG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgICBjb250ZW50OiAkaWNvbi1pY19jbG9zZV80OHB4O1xuICAgICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgIEBpbmNsdWRlIGNpcmNsZS1vYmplY3QoMTVweCwgJHJlZCwgJGJhc2UtZm9udC1zaXplIC0gMC4yKTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKiBJbnRlcmFjdGl2ZSBDYXJ0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBIZWFkZXIgYnV0dG9ucyAqL1xuI2NhcnQtaXRlbXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIEBpbmNsdWRlIGNpcmNsZS1vYmplY3QoMjBweCwgJG1haW4tY29sb3IsICRiYXNlLWZvbnQtc2l6ZSAtIDAuMik7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICB0b3A6IC01cHg7XG4gIHJpZ2h0OiAtM3B4O1xuICBjb2xvcjogI2ZmZjtcbn1cblxuI2ludGVyYWN0aXZlLWNhcnQtYWN0aXZhdGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5pbnRlcmFjdGl2ZS1jYXJ0X19iZyB7XG4gIEBpbmNsdWRlIGFic29sdXRlO1xuICB6LWluZGV4OiAtMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMjAsMC41KTtcbn1cblxuLmludGVyYWN0aXZlLWNhcnQtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiA5OTk5OTk5OTtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmludGVyYWN0aXZlLWNhcnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLDAlLDk1JSk7XG4gIG1hcmdpbjogMCAwIDAgYXV0bztcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIHdpZHRoOiA0MHZ3O1xuICB9XG59XG4vKiBDYXJ0IEhlYWRlciAqL1xuLmludGVyYWN0aXZlLWNhcnQtaGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBwYWRkaW5nOiAyMHB4IDEycHg7XG4gIGZsZXg6IDAgMSAwO1xuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICB9XG5cbiAgPiAqIHtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjODg4O1xuICB9XG5cbiAgYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLmludGVyYWN0aXZlLWNhcnQtY2xvc2Uge1xuICAgIEBleHRlbmQgJXRyYW5zaXRpb24tZHVyYXRpb247XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBjb2xvcjogaHNsKDAsMCUsNTAlKTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgZm9udC1zaXplOiAyNXB4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBsZWZ0OiAtM3B4O1xuICAgICAgY29sb3I6ICM3Nzc7XG4gICAgfVxuICB9XG59XG4vKiBNaW5pIENhcnQgTm90aWNlICovXG4uaW50ZXJhY3RpdmUtY2FydF9fbm90aWNlIHtcbiAgcGFkZGluZzogMTBweCAwO1xuICBAaW5jbHVkZSBjaGlsZC1tYXJnaW4oJ2JvdHRvbScsIDVweCk7XG5cbiAgPiAqIHtcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIH1cblxuICAmLmNhcnQtaXRlbS1jYXJkIHtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gIH1cblxuICBwIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgfVxufVxuXG4ubWVzc2FnZS0tZXJyb3Ige1xuICBjb2xvcjogJHJlZDtcbn1cblxuLm1lc3NhZ2UtLXN1Y2Nlc3Mge1xuICBjb2xvcjogJGdyZWVuO1xufVxuLyogQ2FydCBJdGVtIExpc3QgKi9cbi5pbnRlcmFjdGl2ZS1jYXJ0LWl0ZW1zIHtcbiAgZmxleDogMSAxIDA7XG4gIHBhZGRpbmc6IDIwcHggMDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xN3B4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE3cHg7XG4gICAgLyogSW5jcmVhc2UvZGVjcmVhc2UgdGhpcyB2YWx1ZSBmb3IgY3Jvc3MtYnJvd3NlciBjb21wYXRpYmlsaXR5ICovXG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgLyogU28gdGhlIHdpZHRoIHdpbGwgYmUgMTAwJSArIDE3cHggKi9cbiAgfVxufVxuLyogQ2FydCBJdGVtICovXG4uY2FydC1pdGVtLWNhcmQge1xuICBAaW5jbHVkZSB0aHVtYm5haWwtY2FyZCg4MHB4LCA4MHB4LCByaWdodCwgMTVweCk7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICB3aWR0aDogY2FsYygxMDAlIC0gNiUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG1hcmdpbi1sZWZ0OiAzJTtcbiAgbWFyZ2luLXJpZ2h0OiAzJTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgYm94LXNoYWRvdzogMCAwIDVweCAwIHJnYmEoMCwwLDAsMC4xKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDclKTtcbiAgICBtYXJnaW4tbGVmdDogNSU7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgaW1nIHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAxMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDBweDtcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICB9XG5cbiAgLmNhcHRpb24ge1xuICAgIEBpbmNsdWRlIGNoaWxkLW1hcmdpbignYm90dG9tJywgOHB4KTtcbiAgICBmbGV4OiAxIDEgYXV0bztcblxuICAgID4gKiB7XG4gICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcbiAgICB9XG4gIH1cblxuICAucHJvZHVjdC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgY29sb3I6IGRhcmtlbigkbWFpbi1jb2xvciwgMjUlKTtcbiAgfVxuXG4gIC5yZW1vdmVfZnJvbV9jYXJ0X2J1dHRvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAvLyBtYXJnaW4tdG9wOiAwO1xuICAgIC8vIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIGNvbG9yOiAkcmVkO1xuICB9XG59XG5cbi5pbnRlcmFjdGl2ZS1jYXJ0LXN1bW1hcnkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGZsZXg6IDAgMSAwO1xuXG4gID4gZGl2IHtcbiAgICBAaW5jbHVkZSBsaW5lLWJvcmRlcigxcHgsICNlNWU1ZTUsIGJvdHRvbSwgNXB4KTtcbiAgICBAZXh0ZW5kICVmbGV4Ym94LWMtYztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHBhZGRpbmc6IDhweCA1JTtcblxuICAgID4gKiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuXG4uaW50ZXJhY3RpdmUtY2FydC1zdW1tYXJ5X19idXR0b25zIHtcbiAgQGluY2x1ZGUgY29sdW1ucygwcHgsIDIsIDIpO1xuXG4gIGEge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGRhcmtlbigkbWFpbi1jb2xvciwgMTUlKTtcbiAgICB9XG4gIH1cbn1cbi8qIElmIHRoZXJlIGFyZSBubyBwcm9kdWN0cyAqL1xuLm5vLXByb2R1Y3QtdGV4dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMCA1JTtcbn1cbi8vXG4vLyAuaW50ZXJhY3RpdmUtY2FydC1zdW1tYXJ5IC5pbnRlcmFjdGl2ZS1jYXJ0X19jb3Vwb24ge1xuLy8gICBwYWRkaW5nOiAwO1xuLy8gfVxuLy9cbi8vIC5pbnRlcmFjdGl2ZS1jYXJ0X19jb3Vwb24tZm9ybSB7XG4vLyAgIHdpZHRoOiAxMDAlO1xuLy8gICBAaW5jbHVkZSBjb2x1bW5zKDBweCwgMik7XG4vL1xuLy8gICBpbnB1dFtuYW1lPVwiYXBwbHlfY291cG9uXCJdIHtcbi8vICAgICBtYXJnaW4tdG9wOiAwO1xuLy8gICB9XG4vLyB9XG4iLCIvKiBXb29jb21tZXJjZSBhZGRyZXNzIGNvbXBvbmVudFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMS4gT3JkZXIgb3JkZXItcmVjZWl2ZWRcbjIuIE15IEFjY291bnQgZWRpdCBhZGRyZXNzXG4qL1xuLyogQWRkcmVzcyBzZWN0aW9uICovXG5oZWFkZXIud29vY29tbWVyY2UtQWRkcmVzcy10aXRsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgaDIsXG4gIGgzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgYSB7XG4gICAgQGV4dGVuZCAlYnRuLXNtYWxsO1xuICAgIEBleHRlbmQgJWJ0bi0xLXNlY29uZGFyeTtcbiAgfVxufVxuLyogQWRkcmVzc2VzICovXG4uYWRkcmVzc2VzLFxuLndvb2NvbW1lcmNlLWN1c3RvbWVyLWRldGFpbHMge1xuICBoMixcbiAgaDMge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICsgMC4yO1xuICB9XG5cbiAgYWRkcmVzcyB7XG4gICAgQGluY2x1ZGUgY29udGFpbmVyKDE1cHgsIGhzbCgwLDAlLDEwMCUpLCA1cHgsIDFweCBzb2xpZCBoc2woMCwwJSw5MCUpKTtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiQWRkcmVzczogXCI7XG4gICAgICBAZXh0ZW5kICV3b28tbGFiZWw7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBAZXh0ZW5kICV3b28tbGFiZWw7XG4gICAgICB9XG5cbiAgICAgICYud29vY29tbWVyY2UtY3VzdG9tZXItZGV0YWlscy0tcGhvbmU6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJQaG9uZTogXCI7XG4gICAgICB9XG5cbiAgICAgICYud29vY29tbWVyY2UtY3VzdG9tZXItZGV0YWlscy0tZW1haWw6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJFbWFpbCBhZGRyZXNzOiBcIjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogd29vY29tbWVyY2Utc21hbGxzY3JlZW4uc2Nzc1xuICogT3B0aW1pc2VzIHRoZSBkZWZhdWx0IFdvb0NvbW1lcmNlIGZyb250ZW5kIGxheW91dCB3aGVuIHZpZXdlZCBvbiBzbWFsbGVyIHNjcmVlbnMuXG4gKi9cbi8qKlxuICogU3R5bGUgYmVnaW5zXG4gKi9cbkBpbmNsdWRlIG1vYmlsZSB7XG5cdC53b29jb21tZXJjZSxcblx0Lndvb2NvbW1lcmNlLXBhZ2Uge1xuXHRcdHRhYmxlLnNob3BfdGFibGVfcmVzcG9uc2l2ZSB7XG5cdFx0XHR0aGVhZCB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdHRib2R5IHtcblx0XHRcdFx0dHI6Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRcdHRkOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0XHRcdGJvcmRlci10b3A6IDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGgge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0dHIge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblxuXHRcdFx0XHR0ZCB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgLy8gSW1wb3J0YW50IHRvIG92ZXJ3cml0ZSBvcmRlciBzdGF0dXMgaW5saW5lIHN0eWxpbmdcblxuXHRcdFx0XHRcdCYub3JkZXItYWN0aW9ucyB7XG5cdFx0XHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IC8vIFRoaXMgbXVzdCBhbHdheXMgYWxpZ24gbGVmdCBvbiBoYW5kaGVsZFxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRjb250ZW50OiBhdHRyKGRhdGEtdGl0bGUpICc6ICc7XG5cdFx0XHRcdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ji5hY3Rpb25zLFxuXHRcdFx0XHRcdCYucHJvZHVjdC1yZW1vdmUge1xuXHRcdFx0XHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOm50aC1jaGlsZCgybikge1xuXHRcdFx0XHRcdHRkIHtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMjUpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRhYmxlLm15X2FjY291bnRfb3JkZXJzIHtcblx0XHRcdHRyIHtcblx0XHRcdFx0dGQge1xuXHRcdFx0XHRcdCYub3JkZXItYWN0aW9ucyB7XG5cdFx0XHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXG5cdFx0XHRcdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHQuYnV0dG9uIHtcblx0XHRcdFx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdFx0XHRcdG1hcmdpbjogMC4xMjVlbSAwLjI1ZW0gMC4xMjVlbSAwO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQvKipcblx0ICogR2VuZXJhbCBsYXlvdXRcblx0ICovXG5cdFx0LmNvbDItc2V0IHtcblx0XHRcdC5jb2wtMSxcblx0XHRcdC5jb2wtMiB7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cblx0XHR9XG5cdFx0LyoqXG5cdCAqIFByb2R1Y3RzXG5cdCAqL1xuXHRcdC8vIHVsLnByb2R1Y3RzW2NsYXNzKj0nY29sdW1ucy0nXSB7XG5cdFx0Ly8gXHRsaS5wcm9kdWN0IHtcblx0XHQvLyBcdFx0d2lkdGg6IDQ4JTtcblx0XHQvLyBcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0Ly8gXHRcdGNsZWFyOiBib3RoO1xuXHRcdC8vIFx0XHRtYXJnaW46IDAgMCAyLjk5MmVtO1xuXHRcdC8vXG5cdFx0Ly8gXHRcdCY6bnRoLWNoaWxkKCAybiApIHtcblx0XHQvLyBcdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0Ly8gXHRcdFx0Y2xlYXI6IG5vbmUgIWltcG9ydGFudDsgLy8gVGhpcyBzaG91bGQgbmV2ZXIgY2xlYXIuXG5cdFx0Ly8gXHRcdH1cblx0XHQvLyBcdH1cblx0XHQvLyB9XG5cdFx0LyoqXG5cdCAqIFByb2R1Y3QgRGV0YWlsc1xuXHQgKi9cblx0XHQjY29udGVudCBkaXYucHJvZHVjdCxcblx0XHRkaXYucHJvZHVjdCB7XG5cdFx0XHRkaXYuaW1hZ2VzLFxuXHRcdFx0ZGl2LnN1bW1hcnkge1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8qKlxuXHQgKiBDYXJ0XG5cdCAqL1xuXHRcdCNjb250ZW50IHRhYmxlLmNhcnQsXG5cdFx0dGFibGUuY2FydCB7XG5cdFx0XHQucHJvZHVjdC10aHVtYm5haWwge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHR0ZC5hY3Rpb25zIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblxuXHRcdFx0XHQuY291cG9uIHtcblx0XHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0XHRAaW5jbHVkZSBjbGVhcmZpeCgpO1xuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiAwLjVlbTtcblxuXHRcdFx0XHRcdC5idXR0b24sXG5cdFx0XHRcdFx0LmlucHV0LXRleHQsXG5cdFx0XHRcdFx0aW5wdXQge1xuXHRcdFx0XHRcdFx0d2lkdGg6IDQ4JTtcblx0XHRcdFx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0LmJ1dHRvbi5hbHQsXG5cdFx0XHRcdFx0LmlucHV0LXRleHQgKyAuYnV0dG9uIHtcblx0XHRcdFx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuYnV0dG9uIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5jYXJ0LWNvbGxhdGVyYWxzIHtcblx0XHRcdC5jYXJ0X3RvdGFscyxcblx0XHRcdC5jcm9zcy1zZWxscyxcblx0XHRcdC5zaGlwcGluZ19jYWxjdWxhdG9yIHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0fVxuXHRcdH1cblx0XHQvKipcblx0ICogQ2hlY2tvdXRcblx0ICovXG5cdFx0Ji53b29jb21tZXJjZS1jaGVja291dCB7XG5cdFx0XHRmb3JtLmxvZ2luIHtcblx0XHRcdFx0LmZvcm0tcm93IHtcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCNwYXltZW50IHtcblx0XHRcdC50ZXJtcyB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR9XG5cblx0XHRcdCNwbGFjZV9vcmRlciB7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMWVtO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQvKipcblx0ICogQWNjb3VudFxuXHQgKi9cblx0XHQubG9zdF9yZXNldF9wYXNzd29yZCB7XG5cdFx0XHQuZm9ybS1yb3ctZmlyc3QsXG5cdFx0XHQuZm9ybS1yb3ctbGFzdCB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC53b29jb21tZXJjZS1hY2NvdW50IHtcblx0XHQud29vY29tbWVyY2UtTXlBY2NvdW50LWNvbnRlbnQsXG5cdFx0Lndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHtcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG5cdC8qKlxuICogVHdlbnR5IFRoaXJ0ZWVuIHNwZWNpZmljIHN0eWxlc1xuICovXG5cdC5zaW5nbGUtcHJvZHVjdCB7XG5cdFx0LnR3ZW50eXRoaXJ0ZWVuIHtcblx0XHRcdC5wYW5lbCB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogMjBweCAhaW1wb3J0YW50O1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIjd29vY29tbWVyY2UtcHJvZHVjdC1zZWFyY2gtZmllbGQge1xuICBAZXh0ZW5kICV0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDcwcHg7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsMCUsOTUlKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAqIDEuNTtcbiAgbWF4LXdpZHRoOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHJpZ2h0OiA1MCU7XG4gIHBhZGRpbmc6IDA7XG5cbiAgJjpmb2N1cyxcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxuXG4gIC53b29jb21tZXJjZS1wcm9kdWN0LXNlYXJjaC0tYWN0aXZlICYge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDAgNSU7XG4gIH1cbn1cblxuI3dvb2NvbW1lcmNlLXByb2R1Y3Qtc2VhcmNoLWJ1dHRvbiB7XG4gIEBleHRlbmQgJWhlYWRlci1idXR0b25zO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgaSB7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICB9XG59XG4iLCIvKiBNYWtlIHdvb2NvbW1lcmNlIHZhcmlhdGlvbnMgdGFibGUgZnVsbCB3aWR0aCovXG50YWJsZS52YXJpYXRpb25zIHRyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuXG4gIHRkIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi8qIHdhcGYgY2hlY2tib3ggcHJpY2VzICovXG4ud2FwZi1wcmljaW5nLWhpbnQge1xuICBmbG9hdDogcmlnaHQhaW1wb3J0YW50O1xufVxuXG4ud2FwZi1pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyAud2FwZi1sYWJlbC10ZXh0IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4vKiBXQVBGIFJhZGlvIEJ1dHRvbnMgKi9cbi53YXBmLXJhZGlvcyB7XG4gIEBpbmNsdWRlIGNoaWxkLW1hcmdpbigncmlnaHQnLCA2cHgpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xufVxuLndhcGYtcmFkaW9zIHtcbiAgLndhcGYtaW5wdXQtbGFiZWwge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC53YXBmLWNoZWNrYWJsZSB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gNnB4KTtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG5cbiAgICAmLndhcGYtY2hlY2tlZCB7XG4gICAgICAud2FwZi1sYWJlbC10ZXh0IHtcbiAgICAgICAgQGV4dGVuZCAlYnRuLTE7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGRhcmtlbigkbWFpbi1jb2xvciwgMjAlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAud2FwZi1sYWJlbC10ZXh0IHtcbiAgICBAZXh0ZW5kICVidG47XG4gICAgQGV4dGVuZCAlYnRuLTEtbGlnaHQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBoc2woMCwwJSw4MCUpO1xuICAgIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgfVxufVxuIl19 */
