@charset "UTF-8";
/*!
Theme Name: ah-starter
Theme URI: http://underscores.me/
Author: alex harris
Author URI: http://alexharris.online
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: ah
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

ah-starter is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/
/* Normalize
--------------------------------------------- */
/*! 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;
  -webkit-text-size-adjust: 100%;
}

/* 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;
  height: 0;
  overflow: visible;
}

/**
 * 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;
  font-size: 1em;
}

/* 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;
  text-decoration: underline;
  text-decoration: underline dotted;
}

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

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

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

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

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

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

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

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

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

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

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

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

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

/**
 * 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;
  padding: 0;
}

/**
 * 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;
  outline-offset: -2px;
}

/**
 * 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;
  font: inherit;
}

/* 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
--------------------------------------------- */
/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
  box-sizing: inherit;
}

html {
  box-sizing: border-box;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/
/* Typography
--------------------------------------------- */
body,
button,
input,
select,
optgroup,
textarea {
  color: #404040;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
  font-size: 1rem;
  line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  clear: both;
}

p {
  margin-bottom: 1.5em;
}

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

blockquote {
  margin: 0 1.5em;
}

address {
  margin: 0 0 1.5em;
}

pre {
  background: #eee;
  font-family: "Courier 10 Pitch", courier, monospace;
  line-height: 1.6;
  margin-bottom: 1.6em;
  max-width: 100%;
  overflow: auto;
  padding: 1.6em;
}

code,
kbd,
tt,
var {
  font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

abbr,
acronym {
  border-bottom: 1px dotted #666;
  cursor: help;
}

mark,
ins {
  background: #fff9c0;
  text-decoration: none;
}

big {
  font-size: 125%;
}

/* Elements
--------------------------------------------- */
body {
  background: #fff;
}

hr {
  background-color: #ccc;
  border: 0;
  height: 1px;
  margin-bottom: 1.5em;
}

ul,
ol {
  margin: 0 0 1.5em 3em;
}

ul {
  list-style: disc;
}

ol {
  list-style: decimal;
}

li > ul,
li > ol {
  margin-bottom: 0;
  margin-left: 1.5em;
}

dt {
  font-weight: 700;
}

dd {
  margin: 0 1.5em 1.5em;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
  max-width: 100%;
}

img {
  height: auto;
}

figure {
  margin: 1em 0 0.5em 0;
}

table {
  margin: 0 0 1.5em;
  width: 100%;
}

/* Links
--------------------------------------------- */
a {
  color: #4169e1;
}

a:visited {
  color: #800080;
}

a:hover,
a:focus,
a:active {
  color: #191970;
}

a:focus {
  outline: thin dotted;
}

a:hover,
a:active {
  outline: 0;
}

/* Forms
--------------------------------------------- */
button,
input[type=button],
input[type=reset],
input[type=submit] {
  border: 1px solid;
  border-color: #ccc #ccc #bbb;
  border-radius: 3px;
  background: #e6e6e6;
  color: rgba(0, 0, 0, 0.8);
  line-height: 1;
  padding: 0.6em 1em 0.4em;
}

button:hover,
input[type=button]:hover,
input[type=reset]:hover,
input[type=submit]:hover {
  border-color: #ccc #bbb #aaa;
}

button:active,
button:focus,
input[type=button]:active,
input[type=button]:focus,
input[type=reset]:active,
input[type=reset]:focus,
input[type=submit]:active,
input[type=submit]:focus {
  border-color: #aaa #bbb #bbb;
}

input[type=text],
input[type=email],
input[type=url],
input[type=password],
input[type=search],
input[type=number],
input[type=tel],
input[type=range],
input[type=date],
input[type=month],
input[type=week],
input[type=time],
input[type=datetime],
input[type=datetime-local],
input[type=color],
textarea {
  color: #666;
  border: 1px solid #ccc;
  border-radius: 3px;
  padding: 3px;
}

input[type=text]:focus,
input[type=email]:focus,
input[type=url]:focus,
input[type=password]:focus,
input[type=search]:focus,
input[type=number]:focus,
input[type=tel]:focus,
input[type=range]:focus,
input[type=date]:focus,
input[type=month]:focus,
input[type=week]:focus,
input[type=time]:focus,
input[type=datetime]:focus,
input[type=datetime-local]:focus,
input[type=color]:focus,
textarea:focus {
  color: #111;
}

select {
  border: 1px solid #ccc;
}

textarea {
  width: 100%;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/
/* Navigation
--------------------------------------------- */
.main-navigation {
  display: block;
  width: 100%;
}

.main-navigation ul {
  display: none;
  list-style: none;
  margin: 0;
  padding-left: 0;
}

.main-navigation ul ul {
  box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
  float: left;
  position: absolute;
  top: 100%;
  left: -999em;
  z-index: 99999;
}

.main-navigation ul ul ul {
  left: -999em;
  top: 0;
}

.main-navigation ul ul li:hover > ul,
.main-navigation ul ul li.focus > ul {
  display: block;
  left: auto;
}

.main-navigation ul ul a {
  width: 200px;
}

.main-navigation ul li:hover > ul,
.main-navigation ul li.focus > ul {
  left: auto;
}

.main-navigation li {
  position: relative;
}

.main-navigation a {
  display: block;
  text-decoration: none;
}

/* Small menu. */
.menu-toggle,
.main-navigation.toggled ul {
  display: block;
}

@media screen and (min-width: 37.5em) {
  .menu-toggle {
    display: none;
  }

  .main-navigation ul {
    display: flex;
  }
}
.site-main .comment-navigation,
.site-main .posts-navigation,
.site-main .post-navigation {
  margin: 0 0 1.5em;
}

.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
  display: flex;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
  flex: 1 0 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
  text-align: end;
  flex: 1 0 50%;
}

/* Posts and pages
--------------------------------------------- */
.sticky {
  display: block;
}

.updated:not(.published) {
  display: none;
}

.page-content,
.entry-content,
.entry-summary {
  margin: 1.5em 0 0;
}

.page-links {
  clear: both;
  margin: 0 0 1.5em;
}

/* Comments
--------------------------------------------- */
.comment-content a {
  word-wrap: break-word;
}

.bypostauthor {
  display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
  margin: 0 0 1.5em;
}

.widget select {
  max-width: 100%;
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
  border: none;
  margin-bottom: 0;
  margin-top: 0;
  padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
  display: inline-block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
  margin-bottom: 1.5em;
  max-width: 100%;
}

.wp-caption img[class*=wp-image-] {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.wp-caption .wp-caption-text {
  margin: 0.8075em 0;
}

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

/* Galleries
--------------------------------------------- */
.gallery {
  margin-bottom: 1.5em;
  display: grid;
  grid-gap: 1.5em;
}

.gallery-item {
  display: inline-block;
  text-align: center;
  width: 100%;
}

.gallery-columns-2 {
  grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
  grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
  grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
  grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
  grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
  grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
  grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
  grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
  display: block;
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/
/* Jetpack infinite scroll
--------------------------------------------- */
/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
  display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
  display: block;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/
/* Accessibility
--------------------------------------------- */
/* Text meant only for screen readers. */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}

.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  clip-path: none;
  color: #21759b;
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
  outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {
  /*rtl:ignore*/
  float: left;
  /*rtl:ignore*/
  margin-right: 1.5em;
  margin-bottom: 1.5em;
}

.alignright {
  /*rtl:ignore*/
  float: right;
  /*rtl:ignore*/
  margin-left: 1.5em;
  margin-bottom: 1.5em;
}

.aligncenter {
  clear: both;
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.5em;
}

/* 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: block;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

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

.easteregg-wrapper .project-image, .svgBlur {
  filter: url("#sharpBlur");
  -webkit-filter: url("#sharpBlur");
  min-width: 100%;
  min-height: 100%;
  transform: scale(3);
}

.page-grid .gallery-wrapper .row a:hover .grid-item {
  filter: url("#sharpBlur");
  -webkit-filter: url("#sharpBlur");
  min-width: 100%;
  min-height: 100%;
}

/*
Media Queries
--------------------- */
* {
  -webkit-tap-highlight-color: transparent;
}

.woocommerce.single-product #page .product .price, .woocommerce.single-product #page .product .product_title, .woocommerce.single-product #page .product h1, .woocommerce-page .quantity input, .cart-number, .woocommerce-error, .woocommerce-info, .woocommerce-message, .woocommerce-checkout #payment ul.payment_methods li, .pan.zoomed, #project-images.zoomed, .project-header h1, .body-copy, body {
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-weight: bold;
  font-size: 16px;
  color: #000;
  line-height: normal;
  letter-spacing: 0.02em;
}
@media all and (min-width: 600px) {
  .woocommerce.single-product #page .product .price, .woocommerce.single-product #page .product .product_title, .woocommerce.single-product #page .product h1, .woocommerce-page .quantity input, .cart-number, .woocommerce-error, .woocommerce-info, .woocommerce-message, .woocommerce-checkout #payment ul.payment_methods li, .pan.zoomed, #project-images.zoomed, .project-header h1, .body-copy, body {
    font-size: 18px;
    letter-spacing: 0.025em;
    line-height: 1.19em;
    word-spacing: -0.9px;
  }
}

.woocommerce div.product form.cart.variations_form .variations .value .variation-radios label, .woocommerce.single-product #page .product .slider-container .product-images .slick-dots li button, body.home #page .pan-image a:hover, body.home .site .pan-image a:hover, body.single-project #page .pan-image a:hover, body.single-project .site .pan-image a:hover, body.page-grid #page .pan-image a:hover, body.page-grid .site .pan-image a:hover, body.page-index #page .pan-image a:hover, body.page-index .site .pan-image a:hover, body.category #page .pan-image a:hover, body.category .site .pan-image a:hover, body.woocommerce #page .pan-image a:hover, body.woocommerce .site .pan-image a:hover, body.home #page a, body.home .site a, body.single-project #page a, body.single-project .site a, body.page-grid #page a, body.page-grid .site a, body.page-index #page a, body.page-index .site a, body.category #page a, body.category .site a, body.woocommerce #page a, body.woocommerce .site a, body.home, body.single-project, body.page-grid, body.page-index, body.category, body.woocommerce, .link, body {
  cursor: url("../../assets/images/arrow-up-left_3-5.svg"), auto;
}

body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) a.button, body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) button.button,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) a.button,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) button.button {
  cursor: url("../../assets/images/arrow-up-left_3-5_BLACK.svg"), auto;
}

.woocommerce-cart, .woocommerce-checkout {
  cursor: url("../../assets/images/arrow-up-left_3-5_BLACK.svg"), auto;
}

#page a, .site a {
  color: white;
  text-decoration: none;
  outline: 0;
}
#page a:hover, #page a:active, #page a:visited, .site a:hover, .site a:active, .site a:visited {
  color: white;
}
#page p, .site p {
  margin-top: 0;
  margin-bottom: 1em;
}
#page ul, .site ul {
  display: flex;
  flex-direction: column;
  list-style-type: none;
  margin: 0;
  padding: 0;
}
#page ul li, .site ul li {
  align-self: flex-start;
}
#page .entry-content .subhead a, .site .entry-content .subhead a {
  height: 18px;
  text-decoration: none;
  border-bottom: none;
}
#page .entry-content .subhead.underline a, .site .entry-content .subhead.underline a {
  text-underline-position: from-font;
  text-decoration: underline;
}
#page .entry-content .subhead.underline a:hover, .site .entry-content .subhead.underline a:hover {
  text-decoration: none;
}
#page .entry-content p a, .site .entry-content p a {
  height: 20px;
  display: inline;
  text-underline-position: from-font;
  text-decoration: underline;
}
@media all and (max-width: 599px) {
  #page .entry-content p a, .site .entry-content p a {
    height: 19px;
  }
}
#page .entry-content p a:hover, #page .entry-content p a:active, #page .entry-content p a:focus, .site .entry-content p a:hover, .site .entry-content p a:active, .site .entry-content p a:focus {
  text-decoration: none;
}
#page .entry-content p a div, .site .entry-content p a div {
  display: inline-block;
}

#page p.subhead.no-margin-bottom {
  margin-bottom: 0;
}

.letter-flip {
  transform: scaleY(-1);
  top: 4px;
  position: relative;
  display: inline-block;
}

.underline a {
  display: inline-block;
  text-underline-position: from-font;
  text-decoration: underline;
}
.underline a:hover {
  text-decoration: none;
  border-bottom: none !important;
}

.subhead {
  font-size: 0.8em;
  margin-top: 0;
  margin-bottom: 0.9em;
  line-height: 20px;
}

.tag {
  font-size: 0.8em;
  text-decoration: underline;
  word-spacing: -3px;
}

.woocommerce.single-product #page .product .summary .cart .button, body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) .checkout-button,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) .checkout-button, body.page .site #mc_embed_shell form .button, .menu div, .big-button, .entry-content .big-button {
  font-weight: 500;
  font-size: 1.45em;
  text-transform: uppercase;
  line-height: 0.75;
  text-decoration: none;
}
@media all and (min-width: 600px) {
  .woocommerce.single-product #page .product .summary .cart .button, body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) .checkout-button,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) .checkout-button, body.page .site #mc_embed_shell form .button, .menu div, .big-button, .entry-content .big-button {
    font-size: 1.6em;
    font-weight: 600;
  }
}

body.home #page, body.home .site, body.single-project #page, body.single-project .site, body.page-grid #page, body.page-grid .site, body.page-index #page, body.page-index .site, body.category #page, body.category .site, body.woocommerce #page, body.woocommerce .site {
  color: #fff;
}
body.home #page .body-copy, body.home .site .body-copy, body.single-project #page .body-copy, body.single-project .site .body-copy, body.page-grid #page .body-copy, body.page-grid .site .body-copy, body.page-index #page .body-copy, body.page-index .site .body-copy, body.category #page .body-copy, body.category .site .body-copy, body.woocommerce #page .body-copy, body.woocommerce .site .body-copy {
  color: #fff;
}
body.home #page .entry-content, body.home .site .entry-content, body.single-project #page .entry-content, body.single-project .site .entry-content, body.page-grid #page .entry-content, body.page-grid .site .entry-content, body.page-index #page .entry-content, body.page-index .site .entry-content, body.category #page .entry-content, body.category .site .entry-content, body.woocommerce #page .entry-content, body.woocommerce .site .entry-content {
  color: #fff;
}
body.home #page .menu1 svg path, body.home .site .menu1 svg path, body.single-project #page .menu1 svg path, body.single-project .site .menu1 svg path, body.page-grid #page .menu1 svg path, body.page-grid .site .menu1 svg path, body.page-index #page .menu1 svg path, body.page-index .site .menu1 svg path, body.category #page .menu1 svg path, body.category .site .menu1 svg path, body.woocommerce #page .menu1 svg path, body.woocommerce .site .menu1 svg path {
  fill: #fff;
}
body.home #page .subhead, body.home .site .subhead, body.single-project #page .subhead, body.single-project .site .subhead, body.page-grid #page .subhead, body.page-grid .site .subhead, body.page-index #page .subhead, body.page-index .site .subhead, body.category #page .subhead, body.category .site .subhead, body.woocommerce #page .subhead, body.woocommerce .site .subhead {
  color: white;
}
body.home #page a, body.home .site a, body.single-project #page a, body.single-project .site a, body.page-grid #page a, body.page-grid .site a, body.page-index #page a, body.page-index .site a, body.category #page a, body.category .site a, body.woocommerce #page a, body.woocommerce .site a {
  color: #fff;
}
body.home #page a:hover, body.home .site a:hover, body.single-project #page a:hover, body.single-project .site a:hover, body.page-grid #page a:hover, body.page-grid .site a:hover, body.page-index #page a:hover, body.page-index .site a:hover, body.category #page a:hover, body.category .site a:hover, body.woocommerce #page a:hover, body.woocommerce .site a:hover {
  color: #fff;
}
.category-list {
  margin-top: -1px;
  line-height: 1.4em;
}
.category-list a {
  text-decoration: none;
}
.category-list a div {
  display: inline;
}
.category-list a:hover, .category-list a:active {
  display: inline-block;
  height: 20px;
}
@media all and (min-width: 600px) {
  .category-list {
    line-height: 1.3em;
  }
}

.project-header h1 {
  margin-top: 0;
}

.menu {
  height: 100%;
  width: 100%;
  z-index: 200;
  position: relative;
}

.menu div {
  position: fixed;
}
.menu div a {
  text-decoration: none;
}
.menu div svg {
  fill: white;
}
.menu div img:nth-of-type(2) {
  display: none;
}
.menu div svg:nth-of-type(2) {
  display: none;
}
.menu div a:hover svg:first-of-type, .menu div a:hover img:first-of-type, .menu div a.active svg:first-of-type, .menu div a.active img:first-of-type {
  display: none;
}
.menu div a:hover svg:nth-of-type(2), .menu div a:hover img:nth-of-type(2), .menu div a.active svg:nth-of-type(2), .menu div a.active img:nth-of-type(2) {
  display: block;
}

.menu1 {
  top: 28px;
  left: 24px;
}
.menu1 a {
  display: inline-block;
  width: 173px;
}
@media all and (min-width: 600px) {
  .menu1 a {
    width: 219px;
  }
}

.menu2 {
  top: 28px;
  right: 24px;
  color: white;
  text-align: right;
}
.menu2 a:first-of-type {
  display: inline-block;
  width: 116px;
  margin-bottom: 6px;
}
@media all and (min-width: 600px) {
  .menu2 a:first-of-type {
    width: 148px;
    margin-bottom: 14px;
    display: block;
  }
}
.menu2 a:nth-of-type(2) {
  display: inline-block;
  margin-top: 6px;
  width: 83px;
}
@media all and (min-width: 600px) {
  .menu2 a:nth-of-type(2) {
    margin-top: 0px;
    width: 106px;
    float: right;
    display: block;
  }
}
@media all and (max-width: 599px) {
  .menu2 {
    width: 200px;
  }
}

.menu3 {
  bottom: 28px;
  right: 24px;
}
.menu3 a {
  width: 81px;
  display: inline-block;
}
@media all and (min-width: 600px) {
  .menu3 a {
    width: 93px;
  }
}

.menu4 {
  bottom: 28px;
  left: 24px;
  color: white;
}
.menu4 a:first-of-type {
  width: 73px;
  display: inline-block;
}
@media all and (min-width: 600px) {
  .menu4 a:first-of-type {
    width: 74px;
  }
}
.menu4 a:nth-of-type(2) {
  width: 58px;
  display: inline-block;
}
@media all and (min-width: 600px) {
  .menu4 a:nth-of-type(2) {
    width: 74px;
  }
}

.store-menu .menu1 a.ringo-store {
  width: 206px;
}
.store-menu .menu1 a.store {
  display: none;
  width: 100px;
}
@media all and (max-width: 599px) {
  .store-menu .menu1 a.ringo-store {
    display: none;
  }
  .store-menu .menu1 a.store {
    display: block;
    width: 81px;
  }
}
.store-menu .menu2 {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
}
.store-menu .menu2 a {
  width: 81px;
}
.store-menu .menu2 .cart-number a {
  width: auto;
}
.store-menu .menu2 .close-cart {
  width: 30px;
  top: 60px;
  position: absolute;
  right: 0;
}
@media all and (max-width: 599px) {
  .store-menu .menu2 a {
    width: 65px;
  }
}
.store-menu .menu4 a {
  width: 220px;
}
@media all and (max-width: 599px) {
  .store-menu .menu4 a {
    width: 173px;
  }
}

.store-menu > *.menu-black {
  display: none;
}

.woocommerce-cart .store-menu > *.menu-black, .woocommerce-checkout .store-menu > *.menu-black {
  display: block;
}
.woocommerce-cart .store-menu > *:not(.menu-black), .woocommerce-checkout .store-menu > *:not(.menu-black) {
  display: none;
}
.woocommerce-cart .store-menu > .menu2, .woocommerce-checkout .store-menu > .menu2 {
  display: flex;
}

/* apply a natural box layout model to all elements, but allowing components to change */
html {
  box-sizing: border-box;
  overflow: hidden;
  position: fixed;
  height: 100%;
  width: 100%;
}

body {
  overflow: hidden;
  position: fixed;
  height: 100%;
  width: 100%;
}

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

main {
  display: block;
}

.pan {
  z-index: -1;
  overflow-x: scroll;
  overflow-y: hidden;
  display: flex;
  flex-direction: row;
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
}
.pan .project-image-wrapper, .pan .pan-image {
  padding-right: 3px;
  flex-shrink: 0;
}
.page-home #background-image {
  display: none;
}

.pan .project-image, .pan .pan-image img {
  height: 100vh;
  width: auto;
}

.pan.zoomed, #project-images.zoomed {
  position: fixed;
}

.entry-content {
  margin: 0;
  color: white;
}

.page-about .pan {
  display: none;
}

.entry-content {
  max-width: 600px;
}
.entry-content img {
  max-width: 100%;
}

.page-template:not(.woocommerce-page) .entry-content {
  max-width: 100%;
}
.page-template:not(.woocommerce-page) .entry-content > *:not(.full-width) {
  max-width: 600px;
}
.page-template:not(.woocommerce-page) .entry-content .full-width.left-text .wp-block-column:first-of-type {
  max-width: 600px;
}

.overflow-hidden {
  overflow: hidden;
}

body:not(.home):not(.single-project):not(.page-grid) .site-main {
  padding: 0 23px;
  position: absolute;
  overflow-y: auto;
  top: 103px;
  bottom: 80px;
  right: 0;
  left: 0;
}
body:not(.home):not(.single-project):not(.page-grid) .site-main.no-overflow {
  overflow-y: hidden;
}

body.page-about .header-background {
  display: block;
  width: 100%;
  height: 100px;
  background: white;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 40;
}
@media all and (max-width: 599px) {
  body.page-about .header-background {
    height: 83px;
  }
}
body.page-about .site-main {
  top: 103px !important;
  bottom: 67px !important;
}
@media all and (max-width: 599px) {
  body.page-about .site-main {
    margin-top: 16px !important;
    top: 83px !important;
  }
}

@media all and (max-width: 599px) {
  .page-typography .wp-block-columns {
    flex-direction: column-reverse;
  }
}
#background-image-wrapper {
  position: fixed;
  inset: 0;
  z-index: -1;
}

.hideSvgSoThatItSupportsFirefox {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.hidden {
  display: none;
}

.half-width-image {
  width: 50%;
}

body.page-about .wp-block-columns {
  margin-bottom: 0.2em;
}
body.page-about .wp-block-columns.is-layout-flex {
  gap: 1em;
}
@media all and (max-width: 599px) {
  body.page-about .wp-block-columns figure.wp-block-gallery {
    width: 50%;
  }
}
body.page-about figure {
  margin-top: 6px;
}
body.page-about .wp-block-gallery .wp-block-image {
  margin: 0 !important;
}
body.page-about.about-lightbox {
  z-index: 100;
}
body.page-about.about-lightbox .wp-block-gallery .wp-block-image:nth-of-type(1) {
  display: none !important;
}
body.page-about.about-lightbox .wp-block-gallery .wp-block-image:nth-of-type(2) {
  display: block !important;
}
body.page-about.about-lightbox .wp-block-gallery:hover .wp-block-image:nth-of-type(1) {
  display: none;
}
body.page-about.about-lightbox .wp-block-gallery:hover .wp-block-image:nth-of-type(2) {
  display: block;
}
body.page-about.about-lightbox .site .entry-content {
  filter: invert(100%);
}
body.page-about.about-lightbox .site .entry-content img {
  filter: invert(100%);
}
body.page-about.about-lightbox nav img {
  filter: invert(100%);
}
body.page-about.about-lightbox #background-image-wrapper #background-image {
  display: none;
}

body.page .site #mc_embed_shell form #mc_embed_signup_scroll {
  display: flex;
  justify-content: space-between;
  align-items: end;
}
@media all and (max-width: 599px) {
  body.page .site #mc_embed_shell form #mc_embed_signup_scroll {
    flex-direction: column;
    align-items: start;
  }
}
body.page .site #mc_embed_shell form label {
  display: block;
  padding-bottom: 2px;
  margin-bottom: 0px;
  color: black;
}
body.page .site #mc_embed_shell form .button {
  border: 0;
  background-color: white;
  margin: 0;
  padding: 0 0 2px 0;
  line-height: 1em;
  color: #000 !important;
  width: 169px;
}
body.page .site #mc_embed_shell form .button svg:nth-of-type(2) {
  display: none;
}
body.page .site #mc_embed_shell form .button:hover {
  cursor: pointer;
}
body.page .site #mc_embed_shell form .button:hover svg:nth-of-type(1) {
  display: none;
}
body.page .site #mc_embed_shell form .button:hover svg:nth-of-type(2) {
  display: inline;
}
@media all and (max-width: 599px) {
  body.page .site #mc_embed_shell form .button {
    margin-top: 8px;
    width: 137px;
  }
}
body.page .site #mc_embed_shell form .mce_inline_error:not(.email) {
  background-color: white !important;
  color: black !important;
  margin: 0 !important;
  padding-left: 0 !important;
}
body.page .site #mc_embed_shell #mce-success-response {
  margin-top: 8px;
}

.project-main {
  margin-top: 103px;
}

.project-header {
  margin: 0 0 0 23px;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  width: 100%;
}
.project-header > div {
  position: fixed;
}
.project-header a {
  height: 19px;
  display: inline-block;
}
@media all and (min-width: 600px) {
  .project-header a {
    height: 20px;
  }
}
.project-header .project-sub-menu {
  right: 24px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  z-index: 500;
}
.project-header .project-sub-menu .link {
  height: 19px;
}
@media all and (min-width: 600px) {
  .project-header .project-sub-menu .link {
    height: 20px;
  }
}
.project-image-wrapper {
  position: relative;
  background-color: white;
  display: flex;
  justify-content: center;
  padding-bottom: 3px;
}

.pan .project-image-wrapper {
  padding-bottom: 0;
}

.project-images-list {
  z-index: -1;
  display: flex;
  flex-direction: column;
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
}

.project-images-list .project-image {
  width: 100%;
}

.project-text {
  display: none;
  position: absolute;
  top: 160px;
  bottom: 60px;
  right: 0;
  left: 0;
  padding: 5px 23px;
  overflow-y: auto;
}
@media all and (min-width: 600px) {
  .project-text {
    top: 135px;
    bottom: 80px;
  }
  .project-text article {
    max-width: 926px;
  }
}
.project-text .entry-content {
  color: #fff;
}

.project-text-bottom-margin {
  bottom: 85px;
}

body.single-project #page .project-categories {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
}
body.single-project #page .project-categories a {
  margin-right: 0.6em;
  text-underline-position: from-font;
  text-decoration: underline;
  font-size: 0.8em;
  height: 19px;
}
@media all and (max-width: 599px) {
  body.single-project #page .project-categories a {
    height: 16px;
    margin-bottom: 4px;
  }
}
body.single-project #page .project-categories a:hover {
  text-decoration: none;
}

.easteregg-open-button {
  position: absolute;
  bottom: 20px;
  width: 30px;
  height: 30px;
}

div:not(.project-images-list) > .project-image-wrapper > .easteregg-open-button {
  display: block;
  bottom: 60px;
  right: 50px;
  left: auto;
}

.easteregg-close-button {
  position: relative;
  z-index: 8000;
  display: none;
  margin: 30px 23px;
  width: 30px;
  height: 30px;
}

.easteregg-wrapper {
  display: block;
  z-index: 100;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
}
.easteregg-wrapper .project-image {
  object-fit: cover;
  margin: -5px -10px -10px -5px;
}

.easteregg-content {
  display: none;
  color: white;
  z-index: 10000;
  position: absolute;
  margin: 0 23px;
  top: 83px;
}

.border {
  border: 1px solid red;
}

.page-grid .gallery-wrapper {
  z-index: -1;
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  overflow-x: scroll;
  overflow-y: hidden;
  display: flex;
  flex-direction: column;
  gap: 3px;
  font-size: 0.8em;
  background-color: white;
}
.page-grid .gallery-wrapper .row {
  height: 25%;
  display: flex;
  flex-direction: row;
  gap: 3px;
}
.page-grid .gallery-wrapper .row a {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
}
.page-grid .gallery-wrapper .row a .grid-item {
  height: 100%;
  overflow: hidden;
  background-repeat: no-repeat;
  background-size: cover;
}
.page-grid .gallery-wrapper .row a .gallery-title {
  position: absolute;
  color: #fff;
  display: none;
  padding: 20px;
  text-align: center;
  line-height: 20px;
}
@media all and (max-width: 599px) {
  .page-grid .gallery-wrapper .row a .gallery-title {
    line-height: 18px;
  }
}
.page-grid .gallery-wrapper .row a:hover .gallery-title {
  display: block;
  z-index: 10;
}
html {
  overscroll-behavior: none;
  touch-action: none;
}

body {
  overscroll-behavior: none;
  touch-action: none;
}

.pan {
  overscroll-behavior: none;
  touch-action: pan-x;
}

.site-main {
  overscroll-behavior: none;
}

.project-images-list {
  overscroll-behavior: none;
  touch-action: pan-y;
  overflow-y: scroll;
}

.page-about .site-main {
  touch-action: pan-y;
}

.gallery-wrapper {
  overscroll-behavior: none;
  touch-action: pan-x;
}

.pan-y {
  touch-action: pan-y !important;
}

body.page-index main#primary.site-main {
  padding: 0 11px;
}

.project-list {
  line-height: 13px;
  hyphens: auto;
}
.project-list table {
  border-collapse: collapse;
  table-layout: fixed;
}
.project-list table tr {
  border-bottom: 1px solid rgba(255, 255, 255, 0.8);
}
.project-list table tr td {
  padding: 16px 0 19px 32px;
  vertical-align: top;
  hyphens: auto;
  line-height: 16px;
}
.project-list table tr th {
  text-align: left;
  padding-bottom: 19px;
  padding-left: 32px;
}
.project-list table tr th:after {
  content: url("../../assets/images/chevron-down.svg");
  height: 16px;
  width: 16px;
  position: relative;
  top: 4px;
  display: inline-block;
}
.project-list table tr th.reverse.active:after {
  transform: rotate(180deg);
}
.project-list table th:first-of-type, .project-list table td:first-of-type {
  padding-left: 12px;
}
.project-list table .year {
  width: 110px;
}
.project-list table th:last-of-type {
  padding-right: 12px;
}
.project-list table td:last-of-type {
  padding-right: 24px;
}
@media all and (max-width: 599px) {
  .project-list table {
    font-size: 0.8em;
  }
  .project-list table tr td {
    padding: 13px 0 13px 16px;
  }
  .project-list table tr th {
    padding: 0 0 13px 16px;
  }
  .project-list table .year {
    width: 87px;
  }
}

#example-element {
  border: 2px dashed #999;
  font-size: 1.5rem;
  text-align: left;
  width: 7rem;
}

body #page .popup {
  position: fixed;
  height: 100%;
  justify-content: center;
  align-items: center;
  display: flex;
  z-index: 50;
  width: 100%;
  left: 0;
  top: 0;
}
body #page .popup.hide {
  display: none;
}
body #page .popup .popup-overlay {
  position: absolute;
  width: 100%;
  height: 100%;
  background: rgba(26, 32, 44, 0.5);
}
body #page .popup .popup-content {
  max-width: 36rem;
  z-index: 50;
  margin: 0 auto;
  background-color: white;
  padding: 1em;
  color: black;
  position: relative;
  max-height: 80vh;
  overflow: scroll;
}
body #page .popup .popup-content p {
  margin-right: 24px;
}
body #page .popup .popup-content img {
  max-width: 100%;
}
body #page .popup .popup-content a {
  color: #000;
  display: inline-block;
  text-underline-position: from-font;
  text-decoration: underline;
}
body #page .popup .popup-content .popup-close {
  position: absolute;
  top: 8px;
  right: 8px;
}

body.black-white {
  cursor: url("../../assets/images/arrow-up-left_3-5_BLACK.svg"), auto;
}
body.black-white #background-image-wrapper {
  display: none;
}
body.black-white #page a, body.black-white .site a {
  color: #000;
}
body.black-white #page a:hover, body.black-white #page a:active, body.black-white #page a:visited, body.black-white .site a:hover, body.black-white .site a:active, body.black-white .site a:visited {
  color: #000;
}
body.black-white #page .entry-content, body.black-white .site .entry-content {
  color: black;
}
body.black-white .menu svg {
  fill: black;
}
body.black-white .menu .menu4, body.black-white .menu .menu2 {
  color: #000;
}

.hideGallery {
  display: none;
}
@media all and (max-width: 949px) {
  .hideGallery {
    display: flex;
  }
}

.embla {
  overflow: hidden;
  position: fixed;
  top: 75px;
  right: 0;
  margin: 0 30px 0 30px;
  gap: 5px;
  align-items: start;
}
@media all and (max-width: 949px) {
  .embla {
    width: 100%;
    position: static;
    margin: 0 0 1em 0;
    max-width: 100%;
  }
}

.embla__container {
  display: flex;
  height: 100%;
  width: 100%;
  align-items: stretch;
  gap: 10px;
}

.embla__slide {
  flex: 0 0 auto;
  height: 100%;
  width: auto;
  max-width: none !important;
  display: flex;
  align-items: stretch;
  min-height: 100%;
}
.embla__slide img {
  height: 100%;
  width: auto;
  max-width: none !important;
}
.embla__slide:last-of-type {
  margin-right: 10px;
}

body:not(.home):not(.single-project):not(.page-grid).woocommerce .site-main {
  top: 0;
  bottom: 0;
  padding: 0;
  z-index: -1;
}

.woocommerce-shop #background-image-wrapper, .page-cart #background-image-wrapper {
  display: none;
}

.woocommerce-products-header {
  display: none;
}

.woocommerce #page ul.products {
  z-index: -1;
  flex-direction: row;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 3px;
}
@media all and (max-width: 799px) {
  .woocommerce #page ul.products {
    grid-template-columns: 1fr 1fr;
  }
}
.woocommerce #page ul.products:before, .woocommerce #page ul.products:after {
  display: none;
}
.woocommerce #page ul.products .product {
  margin: 0;
  aspect-ratio: 1;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
}
.woocommerce #page ul.products .product:hover > .attachment-woocommerce_thumbnail {
  display: none;
}
.woocommerce #page ul.products .product:hover .woocommerce-loop-product__title {
  padding: 5px;
  z-index: 10;
  display: block;
  margin: 1em;
}
.woocommerce #page ul.products .product .woocommerce-loop-product__title {
  display: none;
  text-align: center;
}
.woocommerce #page ul.products .product .price {
  display: none;
}
.woocommerce #page ul.products .product .attachment-woocommerce_thumbnail {
  z-index: 10;
}
.woocommerce #page ul.products .product .product-link {
  z-index: 100;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  background: none;
  cursor: url("../../assets/images/arrow-up-left_3-5.svg"), auto;
}
.woocommerce #page ul.products .product .product-background {
  position: absolute;
  background-image: url("/wp-content/uploads/2023/01/bg-03.png");
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.woocommerce #page ul.products .product .product-background img {
  width: 100%;
  height: 100%;
  filter: blur(10px);
  transform: scale(2);
}

body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) a.button, body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) button.button,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) a.button,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) button.button {
  background: none;
  text-transform: uppercase;
  text-decoration: none;
  margin: 0;
  padding: 0;
  font-weight: 700;
  font-size: 29px;
}
@media all and (max-width: 799px) {
  body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) a.button, body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) button.button,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) a.button,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) button.button {
    font-size: 23px;
  }
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) .entry-content,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) .entry-content {
  margin: 0 auto;
  margin-bottom: 100px;
  margin-top: 60px;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) .site-main,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) .site-main {
  top: 67px;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) h1,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) h1 {
  margin: 0 0 90px 0;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) .cart-number,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) .cart-number {
  color: #000;
  border-bottom: 3px solid #000;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.cart td.actions,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.cart td.actions {
  text-align: left !important;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.cart td.actions .button,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.cart td.actions .button {
  text-align: left;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) .woocommerce-cart-form td:nth-child(2),
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) .woocommerce-cart-form td:nth-child(2) {
  width: 35%;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) .cart-collaterals table.shop_table th,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) .cart-collaterals table.shop_table th {
  width: 65%;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) .cart-collaterals table.shop_table td,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) .cart-collaterals table.shop_table td {
  width: 35%;
  text-align: right !important;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) .cart_totals,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) .cart_totals {
  width: 100%;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) .cart_totals h2,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) .cart_totals h2 {
  display: none;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table {
  border: 0px solid white;
  margin-bottom: 0;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table th,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table th {
  border: 0px solid white;
  padding: 0 0 2em 0;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table th:nth-of-type(2),
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table th:nth-of-type(2) {
  text-align: right;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table tr td,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table tr td {
  border: 0px solid white;
  padding: 0 0 2em 0;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table tr td.product-thumbnail,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table tr td.product-thumbnail {
  width: 30%;
  text-align: left;
  margin-right: 10px;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table tr td.product-thumbnail a,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table tr td.product-thumbnail a {
  float: left;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table tr td.product-thumbnail img,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table tr td.product-thumbnail img {
  width: 100px;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table .button,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table .button {
  text-transform: uppercase;
  background: none;
  margin: 0;
  padding: 0;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table input,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table input {
  margin: 0;
  text-align: left;
  background: none;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table .coupon,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table .coupon {
  display: flex;
  align-items: flex-end;
  width: 100%;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table .coupon label,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table .coupon label {
  width: 65%;
  display: block;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table .coupon button.button,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table .coupon button.button {
  color: #000;
  width: 35%;
  float: right;
  text-align: right;
  padding: 0;
  bottom: -4px;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table .select2-container--default .select2-selection--single,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table .select2-container--default .select2-selection--single {
  border: 0;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table .select2-container--default .select2-selection--single .select2-selection__rendered,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table .select2-container--default .select2-selection--single .select2-selection__rendered {
  padding: 0;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table .select2-container--default .select2-selection--single .select2-selection__arrow b,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table .select2-container--default .select2-selection--single .select2-selection__arrow b {
  border-color: #000 transparent transparent transparent;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tbody th,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tbody th {
  display: block;
  float: left;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tr,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tr {
  display: table-row;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tr:nth-child(2n) td,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tr:nth-child(2n) td {
  background-color: white;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tr td,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tr td {
  display: inline-block;
  float: left;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tr td.product-name,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tr td.product-name {
  width: 35%;
  text-align: left !important;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tr td.product-subtotal,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tr td.product-subtotal {
  width: 30%;
  text-align: right !important;
  float: right;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tr td::before,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tr td::before {
  display: none;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tr td:only-child,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tr td:only-child {
  width: 100%;
}
@media all and (max-width: 799px) {
  body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tr td,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tr td {
    text-align: left !important;
  }
}
@media all and (max-width: 799px) {
  body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tr.shipping td,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive tr.shipping td {
    width: 100%;
  }
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive .coupon label,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive .coupon label {
  width: 65%;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive .coupon .button,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) table.shop_table_responsive .coupon .button {
  padding: 0;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) .checkout-button,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) .checkout-button {
  background: none;
  width: 35%;
  float: right;
  text-align: left;
  padding: 0 12px;
}
@media all and (max-width: 799px) {
  body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) .checkout-button,
body.woocommerce-checkout:not(.home):not(.single-project):not(.page-grid) .checkout-button {
    width: 100%;
    padding: 0;
  }
}

.woocommerce-notices-wrapper {
  position: absolute;
  right: 23px;
  width: 300px;
  color: white;
  text-align: right;
}
@media all and (max-width: 799px) {
  .woocommerce-notices-wrapper {
    position: relative;
    right: 0;
    width: 100%;
  }
}
.woocommerce-notices-wrapper .button {
  display: none;
}
.woocommerce-notices-wrapper .woocommerce-message, .woocommerce-notices-wrapper .woocommerce-error, .woocommerce-notices-wrapper .woocommerce-info {
  z-index: 100;
  max-width: 600px;
  margin: 0 auto;
  text-align: right;
  color: white;
}
.woocommerce-notices-wrapper .woocommerce-message a.button, .woocommerce-notices-wrapper .woocommerce-error a.button, .woocommerce-notices-wrapper .woocommerce-info a.button {
  display: none;
}
@media all and (max-width: 799px) {
  .woocommerce-notices-wrapper .woocommerce-message, .woocommerce-notices-wrapper .woocommerce-error, .woocommerce-notices-wrapper .woocommerce-info {
    text-align: left;
  }
}

.page-cart .woocommerce-notices-wrapper, .page-checkout .woocommerce-notices-wrapper {
  color: #000;
}
.page-cart .woocommerce-notices-wrapper .woocommerce-message, .page-cart .woocommerce-notices-wrapper .woocommerce-error, .page-cart .woocommerce-notices-wrapper .woocommerce-info, .page-checkout .woocommerce-notices-wrapper .woocommerce-message, .page-checkout .woocommerce-notices-wrapper .woocommerce-error, .page-checkout .woocommerce-notices-wrapper .woocommerce-info {
  color: #000;
}

.woocommerce-error, .woocommerce-info, .woocommerce-message, .woocommerce-checkout #payment ul.payment_methods li {
  background: none;
  padding: 10px 0;
  border: 0;
}
.woocommerce-error:before, .woocommerce-info:before, .woocommerce-message:before, .woocommerce-checkout #payment ul.payment_methods li:before {
  display: none;
}

.cart-number {
  font-size: 15px;
  margin-right: 1em;
  color: white;
  border-bottom: 3px solid white;
}
@media all and (max-width: 599px) {
  .cart-number {
    font-size: 13px;
    border-bottom: 2px solid white;
  }
}

.woocommerce-checkout input {
  background: none;
}
.woocommerce-checkout .woocommerce-input-wrapper textarea {
  border: 0;
  background: none;
}
.woocommerce-checkout .select2-container--default .select2-selection--single {
  border: 0;
  padding: 0;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
  padding: 0;
}
.woocommerce-checkout .select2-container--default .select2-selection--single b {
  border-color: #000 transparent transparent transparent;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table th, .woocommerce-checkout .woocommerce-checkout-review-order-table td {
  padding: 0;
  vertical-align: top;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table tr > * + * {
  width: 25%;
  text-align: right;
  vertical-align: top;
}
.woocommerce-checkout #payment {
  background: none;
}
.woocommerce-checkout #payment ul.payment_methods, .woocommerce-checkout #payment div.form-row {
  border: 0;
  padding: 0;
}
.woocommerce-checkout #payment div.payment_box {
  background-color: #f0f0f1;
}
.woocommerce-checkout #payment div.payment_box:before {
  border-bottom: 1em solid #f0f0f1;
}
.woocommerce-checkout ul.order_details li {
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  border-right: 0px;
  padding-bottom: 1em;
}
.woocommerce-checkout ul.order_details li strong {
  width: 32%;
}
.woocommerce-checkout .woocommerce-order-details {
  margin-top: 60px;
}

.woocommerce-page .quantity {
  display: flex;
}
.woocommerce-page .quantity input[type=number] {
  width: 24px;
  border: 0;
  background: 0;
  color: inherit;
  font-weight: 700;
  -webkit-appearance: none;
  margin: 0;
  padding: 0;
  -moz-appearance: textfield !important;
  text-align: left;
  margin-right: 12px !important;
}
.woocommerce-page .quantity .plusminus {
  font-size: 20px;
  padding-bottom: 4px;
}
.woocommerce-page .quantity .plusminus .plus {
  margin-right: 16px;
}
.woocommerce-page .quantity input {
  border: 0px;
  background: none;
  color: white;
  padding: 0;
  /* Chrome, Safari, Edge, Opera */
  /* Firefox */
}
.woocommerce-page .quantity input::-webkit-outer-spin-button, .woocommerce-page .quantity input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.woocommerce-page .quantity input[type=number] {
  -moz-appearance: textfield;
}

.woocommerce form .form-row {
  padding: 0px;
}

.woocommerce.single-product #page .site-main {
  padding: 0 23px;
  top: 67px;
  bottom: 67px;
}
.woocommerce.single-product #page .product-background-container {
  display: none;
}
.woocommerce.single-product #page .product {
  display: flex;
  flex-direction: row;
  align-items: start;
  margin: 50px auto 0 auto;
  z-index: 300;
  max-width: 60%;
  gap: 28px;
}
@media all and (max-width: 949px) {
  .woocommerce.single-product #page .product {
    max-width: 85%;
  }
}
@media all and (max-width: 799px) {
  .woocommerce.single-product #page .product {
    margin-top: 0;
    flex-direction: column;
    gap: 0;
    max-width: 100%;
  }
}
.woocommerce.single-product #page .product .slider-container {
  width: calc(50% - 14px);
}
@media all and (max-width: 799px) {
  .woocommerce.single-product #page .product .slider-container {
    width: 100%;
  }
}
.woocommerce.single-product #page .product .slider-container .product-images .slick-prev {
  width: 50%;
  position: absolute;
  z-index: 100;
  background: none;
  cursor: url("../../assets/images/arrow-left.svg"), auto;
  border: 0px;
}
.woocommerce.single-product #page .product .slider-container .product-images .slick-next {
  width: 50%;
  position: absolute;
  right: 0;
  top: 0;
  background: none;
  cursor: url("../../assets/images/arrow-right.svg"), auto;
  border: 0px;
}
.woocommerce.single-product #page .product .slider-container .product-images .slick-dots {
  display: flex;
  flex-direction: row;
  justify-content: center;
}
.woocommerce.single-product #page .product .slider-container .product-images .slick-dots li {
  position: relative;
  display: inline-block;
  width: 12px;
  height: 12px;
  margin: 0 5px;
  padding: 0;
}
.woocommerce.single-product #page .product .slider-container .product-images .slick-dots li button {
  background: none;
  border: 0;
  display: inline-block;
  padding: 0;
  font-size: 0;
}
.woocommerce.single-product #page .product .slider-container .product-images .slick-dots li button:before {
  font-size: 35px;
  width: 20px;
  height: 20px;
  content: "•";
  text-align: center;
  opacity: 0.25;
  color: black;
}
.woocommerce.single-product #page .product .slider-container .product-images .slick-dots li.slick-active button:before {
  opacity: 90%;
  color: white;
}
.woocommerce.single-product #page .product h1 {
  margin-top: 0;
  margin-bottom: 1em;
  color: white;
}
.woocommerce.single-product #page .product .summary {
  margin: 0 0 100px 0;
  padding: 0;
  width: calc(50% - 14px);
  font-weight: bold;
}
@media all and (max-width: 799px) {
  .woocommerce.single-product #page .product .summary {
    margin: 28px 0 100px 0;
    width: 100%;
  }
}
.woocommerce.single-product #page .product .summary .title-price {
  display: flex;
  justify-content: space-between;
  align-items: start;
  flex-direction: column;
}
.woocommerce.single-product #page .product .summary .title-price .back-to-store {
  display: flex;
  flex-direction: row;
  align-items: center;
}
.woocommerce.single-product #page .product .summary .title-price .back-to-store svg {
  margin-right: 4px;
  padding-top: 2px;
}
.woocommerce.single-product #page .product .summary .cart {
  width: 100%;
  text-align: left;
}
.woocommerce.single-product #page .product .summary .cart .quantity-wrapper {
  display: flex;
  justify-content: start;
}
.woocommerce.single-product #page .product .summary .cart .button {
  float: none;
  background: none;
  padding: 0;
  font-weight: 700;
}
.woocommerce.single-product #page .product .product_title {
  color: white;
  align-self: center;
}
.woocommerce.single-product #page .product .price {
  color: white;
}
.woocommerce.single-product #page .product p.stock {
  color: white;
  font-size: 1em;
}
.woocommerce.single-product #page .product .quantity {
  margin: 0;
  float: none;
  display: none !important;
}
.woocommerce.single-product #page .product .quantity input {
  text-align: left;
}

.woocommerce div.product form.cart.variations_form .variations {
  margin-top: 0;
  margin-bottom: 1em;
}
.woocommerce div.product form.cart.variations_form .variations .label {
  padding-right: 1em;
  width: 30%;
  display: none;
}
.woocommerce div.product form.cart.variations_form .variations .value #size {
  display: none;
}
.woocommerce div.product form.cart.variations_form .variations .value .variation-radios label {
  border: 1px solid white;
  border-radius: 4%;
  padding: 4px 8px;
  margin-right: 20px;
}
.woocommerce div.product form.cart.variations_form .variations .value .variation-radios label.active {
  background-color: white;
  color: black;
}
.woocommerce div.product form.cart.variations_form .variations .value .variation-radios input {
  display: none;
}
.woocommerce div.product form.cart.variations_form a.reset_variations {
  display: none !important;
}
.woocommerce div.product form.cart.variations_form .woocommerce-variation-price {
  display: none;
  margin-bottom: 1em;
}

.page-cart #page .actions .button[name=update_cart],
.page-cart #page .actions input[name=update_cart] {
  display: none;
}
.page-cart #page #coupon_code {
  width: 200px;
}
.page-cart #page .woocommerce-shipping-methods li {
  align-self: flex-end;
}

.page-checkout #page {
  /* styles.css | https://ringo-studio.com/wp-content/themes/ringo/public/css/styles.css?ver=6.2 */
}
.page-checkout #page #background-image-wrapper {
  display: none;
}
.page-checkout #page #ship-to-different-address {
  font-size: 18px;
  padding-bottom: 7px;
}
.page-checkout #page .woocommerce-terms-and-conditions-wrapper {
  margin-bottom: 2em;
}
.page-checkout #page #billing_address_1_field, .page-checkout #page #shipping_address_1_field {
  margin-bottom: 0.6em;
}
.page-checkout #page .woocommerce-error {
  display: none;
}
.page-checkout #page .woocommerce-validated input.input-text {
  border: 1px solid #ccc;
}
.page-checkout #page .woocommerce-invalid-required-field:after {
  content: "required";
  width: 100%;
  height: 1em;
  padding-top: 2px;
  font-size: 0.8em;
  color: #aa0000;
}
.page-checkout #page .woocommerce-checkout #payment div.payment_box {
  /* background-color: #f0f0f1; */
  background-color: white !important;
}
.page-checkout #page .woocommerce-checkout #payment div.payment_box * {
  color: #000;
}
.page-checkout #page .woocommerce-checkout #payment div.payment_box #wc-woocommerce_payments-cc-form {
  padding: 7px 0;
}
.page-checkout #page .woocommerce-checkout #payment div.payment_box::before {
  border-bottom: white;
}
.page-checkout #page #add_payment_method #payment div.payment_box, .page-checkout #page .woocommerce-cart #payment div.payment_box, .page-checkout #page .woocommerce-checkout #payment div.payment_box {
  padding: 0;
  margin: 0;
  border-radius: 0;
  color: white;
}
.page-checkout #page #wc-woocommerce_payments-upe-form {
  padding: 0;
  border: 0;
}
.page-checkout #page #wcpay-upe-element, .page-checkout #page .wcpay-upe-element {
  padding: 0;
}
.page-checkout #page .woocommerce-shipping-totals td {
  width: 50%;
}
.page-checkout #page .woocommerce-shipping-totals td li {
  align-self: flex-end;
}

.woocommerce.single-product #page .product .summary .cart .button {
  font-size: 0;
  background-image: url(../../assets/images/woo-buttons/add-to-cart.svg);
  background-repeat: no-repeat;
  width: 200px;
  height: 23px;
  border-radius: 0;
}
.woocommerce.single-product #page .product .summary .cart .button:hover {
  background-image: url(../../assets/images/woo-buttons/add-to-cart-hover.svg);
}
@media all and (max-width: 599px) {
  .woocommerce.single-product #page .product .summary .cart .button {
    height: 18px;
    width: 156px;
    background-size: contain;
  }
}

body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) .wc-proceed-to-checkout {
  width: 35%;
  float: right;
  text-align: left;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) .wc-proceed-to-checkout a.button {
  font-size: 0;
  background-image: url(../../assets/images/woo-buttons/checkout.svg);
  background-repeat: no-repeat;
  background-position: right;
  width: 100%;
  height: 23px;
  border-radius: 0;
}
body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) .wc-proceed-to-checkout a.button:hover {
  background-image: url(../../assets/images/woo-buttons/checkout-hover.svg);
}
@media all and (max-width: 599px) {
  body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) .wc-proceed-to-checkout a.button {
    height: 18px;
    width: 132px;
    background-size: contain;
  }
}

body.woocommerce-cart:not(.home):not(.single-project):not(.page-grid) #page .entry-content .return-to-shop a.button {
  font-size: 18px;
  text-decoration: none;
}

.woocommerce-checkout #payment #place_order {
  font-size: 0;
  background-image: url(../../assets/images/woo-buttons/place-order.svg);
  background-repeat: no-repeat;
  width: 211px;
  height: 23px;
  border-radius: 0;
  margin-top: 1em;
  float: right;
}
.woocommerce-checkout #payment #place_order:hover {
  background-image: url(../../assets/images/woo-buttons/place-order-hover.svg);
}
@media all and (max-width: 599px) {
  .woocommerce-checkout #payment #place_order {
    height: 18px;
    width: 165px;
    background-size: contain;
  }
}

body.woocommerce-order-received ul.order_details li {
  font-size: 1em;
  text-transform: none;
  margin-right: 0;
  padding-right: 0;
}
body.woocommerce-order-received ul.order_details li strong {
  font-size: 1em;
}
body.woocommerce-order-received table.woocommerce-table--order-details th {
  text-align: left !important;
}
body.woocommerce-order-received table.woocommerce-table--order-details tr.woocommerce-table__line-item td:first-of-type {
  padding-right: 1em !important;
}
body.woocommerce-order-received table.woocommerce-table--order-details td + td {
  width: 32%;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuZGVyc2NvcmUtYmFzZS5zY3NzIiwic2xpY2suc2NzcyIsIl9jb25maWcuc2NzcyIsInR5cG9ncmFwaHkuc2NzcyIsImNvcm5lci1tZW51LnNjc3MiLCJtYWluLnNjc3MiLCJzaW5nbGUtcHJvamVjdC5zY3NzIiwiX2dhbGxlcnkuc2NzcyIsInNjcm9sbC5zY3NzIiwicHJvamVjdC1saXN0LnNjc3MiLCJwb3B1cC5zY3NzIiwiYmxhY2stYW5kLXdoaXRlLnNjc3MiLCJhYm91dC1nYWxsZXJ5LnNjc3MiLCJ3b29jb21tZXJjZS9zaG9wLnNjc3MiLCJ3b29jb21tZXJjZS93b29jb21tZXJjZS5zY3NzIiwid29vY29tbWVyY2Uvc2luZ2xlLXByb2R1Y3Quc2NzcyIsIndvb2NvbW1lcmNlL3ZhcmlhYmxlLXByb2R1Y3Quc2NzcyIsIndvb2NvbW1lcmNlL2NhcnQuc2NzcyIsIndvb2NvbW1lcmNlL2NoZWNrb3V0LnNjc3MiLCJ3b29jb21tZXJjZS9idXR0b25zLnNjc3MiLCJ3b29jb21tZXJjZS9vcmRlci1kZXRhaWxzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUF3QkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUE0QkE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUdBO0FBRUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBSUM7RUFDQTtFQUNBOzs7QUFHRDtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBR0M7RUFDQTs7O0FBR0Q7QUFBQTtBQUFBO0FBR0E7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNDO0VBQ0E7RUFDQTs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNDO0VBQ0E7OztBQUdEO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHQTtFQUNDOzs7QUFHRDtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0M7RUFDQTtFQUNBOzs7QUFHRDtBQUFBO0FBQUE7QUFHQTtBQUFBO0VBRUM7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0VBR0M7RUFDQTs7O0FBR0Q7QUFBQTtBQUFBO0FBR0E7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUM7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0M7OztBQUdEO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHQTtFQUNDOzs7QUFHRDtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0M7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVDOzs7QUFHRDtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFQzs7O0FBR0Q7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7RUFJQzs7O0FBR0Q7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7RUFJQztFQUNBOzs7QUFHRDtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtFQUlDOzs7QUFHRDtBQUFBO0FBQUE7QUFHQTtFQUNDOzs7QUFHRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7QUFBQTtBQUFBO0FBR0E7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBR0E7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUM7RUFDQTs7O0FBR0Q7QUFBQTtBQUFBO0FBR0E7QUFBQTtFQUVDOzs7QUFHRDtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0M7RUFDQTs7O0FBR0Q7QUFBQTtBQUFBO0FBR0E7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNDO0VBQ0E7OztBQUdEO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHQTtFQUNDOzs7QUFHRDtBQUFBO0FBQUE7QUFHQTtFQUNDOzs7QUFHRDtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBR0E7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBR0E7RUFDQzs7O0FBR0Q7QUFBQTtBQUdBO0FBQUE7QUFFQTtBQUFBO0FBQUE7RUFHQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1DO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFNQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7RUFJQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7RUFJQzs7O0FBR0Q7QUFBQTtFQUVDO0VBQ0E7OztBQUdEO0FBQUE7RUFFQztFQUNBOzs7QUFHRDtFQUNDOzs7QUFHRDtBQUFBO0FBRUE7RUFDQzs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7QUFBQTtFQUVDOzs7QUFHRDtFQUNDOzs7QUFHRDtFQUNDOzs7QUFHRDtBQUFBO0VBRUM7RUFDQTs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7QUFDQTtBQUFBO0FBQUE7RUFHQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQztFQUNBOzs7QUFHRDtBQUFBO0FBRUE7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0VBR0M7OztBQUdEO0VBQ0M7OztBQUdEO0FBQUE7RUFFQzs7O0FBR0Q7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0VBSUM7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0VBSUM7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFRQzs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFnQkM7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBZ0JDOzs7QUFHRDtFQUNDOzs7QUFHRDtFQUNDOzs7QUFHRDtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBRUE7RUFDQztFQUNBOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQztFQUNBOzs7QUFHRDtBQUFBO0VBRUM7RUFDQTs7O0FBR0Q7RUFDQzs7O0FBR0Q7QUFBQTtFQUVDOzs7QUFHRDtFQUNDOzs7QUFHRDtFQUNDO0VBQ0E7OztBQUdEO0FBQ0E7QUFBQTtFQUVDOzs7QUFHRDtFQUVDO0lBQ0M7OztFQUdEO0lBQ0M7OztBQUlGO0FBQUE7QUFBQTtFQUtDOzs7QUFHRDtBQUFBO0FBQUE7RUFHQzs7O0FBR0Q7QUFBQTtBQUFBO0VBR0M7OztBQUdEO0FBQUE7QUFBQTtFQUdDO0VBQ0E7OztBQUdEO0FBQUE7QUFFQTtFQUNDOzs7QUFRRDtFQUNDOzs7QUFHRDtBQUFBO0FBQUE7RUFHQzs7O0FBR0Q7RUFDQztFQUNBOzs7QUFHRDtBQUFBO0FBRUE7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7QUFBQTtBQUVBO0VBQ0M7OztBQUdEO0VBQ0M7OztBQUdEO0FBQUE7QUFFQTtBQUFBO0FBQUE7RUFHQztFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7QUFDQTtFQUNDOzs7QUFHRDtBQUFBO0FBRUE7RUFDQztFQUNBOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7QUFBQTtBQUVBO0VBQ0M7RUFDQTtFQUNBOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUdBO0FBQ0E7QUFBQTtFQUVDOzs7QUFHRDtBQUNBO0VBQ0M7OztBQUdEO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFHQTtBQUNBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7QUFDQTtFQUNDOzs7QUFHRDtBQUFBO0FBRUE7QUFFQztFQUNBO0FBRUE7RUFDQTtFQUNBOzs7QUFHRDtBQUVDO0VBQ0E7QUFFQTtFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FDdDhCRDtBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7OztBQUdSO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUVJO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOzs7QUFHUjtFQUNJO0VBQ0E7RUFDQTtFQVdBOztBQVZBO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOztBQUtKO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHUjtFQUNJOzs7QUM2Rko7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUdBOzs7QUFXSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtBQUFBO0FBQUE7QUMxTkE7RUFFSTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQSxPRG1LSTtFQ2xLSjtFQUNBOztBRDZOQTtFQ25PSjtJQVFRO0lBQ0E7SUFDQTtJQUNBOzs7O0FBSVI7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0VBQ0k7OztBQUdKO0VBQ0k7OztBQWdCQTtFQUNJO0VBQ0E7RUFJQTs7QUFIQTtFQUNJOztBQUtSO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDQTs7QUFLSTtFQUNJO0VBQ0E7RUFDQTs7QUFLSjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTs7QUFPWjtFQUVJO0VBQ0E7RUFFQTtFQUVBOztBRDBIUjtFQ2pJSTtJQVNROzs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7OztBQVdoQjtFQUNJOzs7QUFZSjtFQUVJO0VBQ0E7RUFDQTtFQUNBOzs7QUFPQTtFQUNJO0VBQ0E7RUFFQTs7QUFDQTtFQUNJO0VBQ0E7OztBQVFaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQU9KO0VBQ0k7RUFDQTtFQUNBOzs7QUFPSjtBQUFBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUQrQ0E7RUNwREo7QUFBQTtJQU9RO0lBQ0E7Ozs7QUFnQ0o7RUFDSSxPRGxEQTs7QUNtREE7RUFDSSxPRHBESjs7QUNzREE7RUFDSSxPRHZESjs7QUN5REE7RUFDSSxNRDFESjs7QUM0REE7RUFDSTs7QUFFSjtFQUNJLE9EaEVKOztBQ29FSTtFQUNJLE9EckVSOztBQytFUjtFQUNJO0VBWUE7O0FBWEE7RUFDSTs7QUFDQTtFQUNJOztBQUVKO0VBQ0k7RUFDQTs7QUQzQlI7RUNrQko7SUFlUTs7OztBQU1KO0VBRUk7OztBQ25SUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUVJOztBQUNBO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7O0FBR0E7RUFDSTs7QUFFSjtFQUNJOzs7QUFPWjtFQUNJO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBOztBRmtNSjtFRXBNQTtJQUlROzs7O0FBTVo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTs7QUZrTEo7RUVyTEE7SUFLUTtJQUNBO0lBQ0E7OztBQUdSO0VBQ0k7RUFDQTtFQUNBOztBRndLSjtFRTNLQTtJQU1RO0lBQ0E7SUFDQTtJQUNBOzs7QUZzSlI7RUU5S0o7SUE2QlE7Ozs7QUFNUjtFQUNJO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBOztBRmtKSjtFRXBKQTtJQUtROzs7O0FBT1o7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFFSTtFQUNBOztBRmlJSjtFRXBJQTtJQU1ROzs7QUFHUjtFQUVJO0VBQ0E7O0FGd0hKO0VFM0hBO0lBTVE7Ozs7QUFPSjtFQUNJOztBQUVKO0VBQ0k7RUFDQTs7QUY2RlI7RUUxRlE7SUFDSTs7RUFFSjtJQUNJO0lBQ0E7OztBQUlaO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBRm1FUjtFRWhFUTtJQUNJOzs7QUFLUjtFQUNJOztBRnlEUjtFRXREUTtJQUNJOzs7O0FBTWhCO0VBQ0k7OztBQU9JO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOzs7QUM5TFo7QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDRTtFQUNBOztBQVNGO0VBQ0U7OztBQUtKO0VBQ0U7RUFDQTs7O0FBS0Y7RUFFRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFJQTtFQUNFOzs7QUFJSjtFQUNFOztBQUNBO0VBQ0U7OztBQU1GO0VBQ0U7O0FBQ0E7RUFDRTs7QUFHQTtFQUNFOzs7QUFNUjtFQUNFOzs7QUFLQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlBO0VBQ0U7OztBQVFKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUgyRkE7RUduR0Y7SUFVSTs7O0FBR0o7RUFDRTtFQUNBOztBSG9GQTtFR3RGRjtJQUlJO0lBQ0E7Ozs7QUhpRkY7RUcxRUE7SUFDRTs7O0FBUU47RUFDRTtFQUNBO0VBQ0E7OztBQU9GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBTUE7RUFDRTs7QUFDQTtFQUNFOztBSDhCRjtFRzNCQTtJQUVJOzs7QUFLTjtFQUNFOztBQU1BO0VBQ0U7O0FBbUJKO0VBQ0U7O0FBRUU7RUFDRTs7QUFFRjtFQUNFOztBQUdBO0VBQ0U7O0FBRUY7RUFFRTs7QUFJTjtFQUNFOztBQUNBO0VBQ0U7O0FBR0o7RUFDRTs7QUFHQTtFQUNFOzs7QUFRSjtFQUNFO0VBQ0E7RUFDQTs7QUhoREY7RUc2Q0E7SUFLSTtJQUNBOzs7QUFHSjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDRTs7QUFFRjtFQUNFOztBQUNBO0VBQ0U7O0FBRUY7RUFDRTs7QUg3RU47RUc0REE7SUFzQkk7SUFDQTs7O0FBR0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNFOzs7QUM1VEo7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0U7O0FBRUY7RUFDSTtFQUlBOztBSndOSjtFSTdOQTtJQUdROzs7QUFRUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTs7QUoyTVI7RUk1TUk7SUFHUTs7O0FBMkJoQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQW9CSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUowSEE7RUlsSUo7SUFVUTtJQUNBOztFQUNBO0lBQ0k7OztBQUlSO0VBQ0ksT0ptREE7OztBSS9DUjtFQUNJOzs7QUFlSjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFFQTtFQUNBO0VBRUE7O0FKb0VKO0VJM0VBO0lBU1E7SUFDQTs7O0FBRUo7RUFDSTs7O0FBS1o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBVUo7RUFDUTtFQUNBO0VBQ0E7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBR0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLEtKdkNPOzs7QUkwQ1g7RUFDSTs7O0FDL05BO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBLE9MdUlaO0VLdElZO0VBQ0E7RUFDQTtFQUNBOztBTG9MaEI7RUsxTFk7SUFRUTs7O0FBS0o7RUFDSTtFQUNBOztBQ25EeEI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBSUo7RUFDSTs7O0FBR0o7RUFDSTtFQUVBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FDckNKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTs7QUFDQTtFQUNJO0VBRUE7O0FBQ0E7RUFDSTs7QUFvQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLQTtFQUdJOztBQU1oQjtFQUNJOztBQWlCSjtFQUNJOztBQUtKO0VBRUk7O0FBRUo7RUFFSTs7QVBtSFI7RU94TkE7SUF3R1E7O0VBRUk7SUFDSTs7RUFHSjtJQUNJOztFQUlSO0lBQ0k7Ozs7QUFPaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FDcklKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0U7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNFOztBQUVGO0VBQ0U7O0FBRUY7RUFDRSxPUjBJRTtFUXpJRjtFQUNBO0VBQ0E7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQ3pDTjtFQUNFOztBQUNBO0VBQ0U7O0FBR0E7RUFDRSxPVG9LRTs7QVNuS0Y7RUFDSSxPVGtLRjs7QVMvSko7RUFDRTs7QUFNRjtFQUNFOztBQUVGO0VBQ0UsT1RvSkU7OztBVXZHUjtFQUNFOztBVnNKRTtFVXZKSjtJQUlJOzs7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBSUE7RUFJQTs7QVZrSUU7RVUvSUo7SUFnQk07SUFDQTtJQUNBO0lBQ0E7Ozs7QUFJTjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDRTtFQUNBO0VBQ0E7O0FBRUY7RUFDRTs7O0FDL0dKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUtBO0VBQ0U7OztBQUlKO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QVgwTEU7RVcvTEo7SUFPSTs7O0FBRUY7RUFDRTs7QUFFRjtFQUdFO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBOztBQUdFO0VBQ0U7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNFO0VBQ0E7O0FBRUY7RUFDRTs7QUFFRjtFQUNFOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTs7QUFFRjtFQUNFO0VBRUE7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBaUJOO0FBQUE7QUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBWG1HQTtFVzFHRjtBQUFBO0FBQUE7SUFVSTs7O0FBR0o7QUFBQTtFQUNFO0VBQ0E7RUFDQTs7QUFFRjtBQUFBO0VBQ0U7O0FBRUY7QUFBQTtFQUNFOztBQUVGO0FBQUE7RUFDRSxPWGlDSTtFV2hDSjs7QUFFRjtBQUFBO0VBQ0U7O0FBQ0E7QUFBQTtFQUNFOztBQUdKO0FBQUE7RUFDRTs7QUFJRTtBQUFBO0VBQ0U7O0FBRUY7QUFBQTtFQUNBO0VBQ0E7O0FBS0o7QUFBQTtFQUNFOztBQUNBO0FBQUE7RUFDRTs7QUFHSjtBQUFBO0VBQ0U7RUFDQTs7QUFDQTtBQUFBO0VBQ0U7RUFDQTs7QUFDQTtBQUFBO0VBQ0U7O0FBR0o7QUFBQTtFQUNFO0VBQ0E7O0FBRUE7QUFBQTtFQUNFO0VBQ0E7RUFDQTs7QUFDQTtBQUFBO0VBQ0U7O0FBR0Y7QUFBQTtFQUNFOztBQVdOO0FBQUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFFRjtBQUFBO0VBRUU7RUFFQTtFQUNBOztBQUVGO0FBQUE7RUFDRTtFQUNBO0VBQ0E7O0FBQ0E7QUFBQTtFQUNFO0VBQ0E7O0FBRUY7QUFBQTtFQUNFLE9YckRBO0VXc0RBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7QUFBQTtFQUNFOztBQUNBO0FBQUE7RUFDRTs7QUFFRjtBQUFBO0VBQ0U7O0FBTUo7QUFBQTtFQUNFO0VBRUE7O0FBRUY7QUFBQTtFQUVFOztBQUNBO0FBQUE7RUFDRTs7QUFFRjtBQUFBO0VBQ0U7RUFDQTs7QUFPQTtBQUFBO0VBQ0U7RUFDQTs7QUFLRjtBQUFBO0VBQ0U7RUFDQTtFQUNBOztBQUVGO0FBQUE7RUFDRTs7QUFFRjtBQUFBO0VBQ0U7O0FYN0ROO0VXb0NFO0FBQUE7SUE4Qkk7OztBWGxFTjtFV3VFSTtBQUFBO0lBRUk7OztBQU1OO0FBQUE7RUFDRTs7QUFFRjtBQUFBO0VBQ0U7O0FBS047QUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FYN0ZBO0VXd0ZGO0FBQUE7SUFTSTtJQUNBOzs7O0FBT047RUFDRTtFQUVBO0VBQ0E7RUFDQTtFQUNBOztBWC9HRTtFV3lHSjtJQVFJO0lBQ0E7SUFDQTs7O0FBRUY7RUFDRTs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDRTs7QVgvSEY7RVd3SEY7SUFVSTs7OztBQU1KO0VBQ0UsT1h6TEk7O0FXMExKO0VBQ0UsT1gzTEU7OztBV2dNUjtFQUNFO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOzs7QUFJSjtFQUVFO0VBQ0E7RUFDQTtFQUNBOztBWC9KRTtFVzBKSjtJQU9JO0lBQ0E7Ozs7QUFLRjtFQUdFOztBQUVGO0VBQ0U7RUFDQTs7QUFFRjtFQUNFO0VBQ0E7O0FBQ0E7RUFDRTs7QUFFRjtFQUNFOztBQUlGO0VBQ0U7RUFDQTs7QUFFSDtFQUNHO0VBQ0E7RUFDQTs7QUFHSjtFQUNFOztBQUNBO0VBQ0U7RUFDQTs7QUFjRjtFQUVFOztBQUNBO0VBQ0U7O0FBT0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNFOztBQUtOO0VBQ0U7OztBQU9GO0VBQ0U7O0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVGO0VBRUU7RUFDQTs7QUFDQTtFQUNFOztBQUdKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QUFHQTtBQU9BOztBQU5BO0VBRUU7RUFDQTs7QUFJRjtFQUNFOzs7QUM3ZlI7RUFDRTs7O0FDQUE7RUFDRTtFQUNBO0VBQ0E7O0FBRUY7RUFDRTs7QUFhRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBYm1NQTtFYTFNRjtJQVNJOzs7QWJpTUY7RWExTUY7SUFZSTtJQUNBO0lBQ0E7SUFDQTs7O0FBRUY7RUFFRTs7QWJ1TEY7RWF6TEE7SUFJSTs7O0FBS0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLQTtFQUNFO0VBQ0E7O0FBUWQ7RUFFRTtFQUNBO0VBQ0E7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QWI0R0Y7RWFoSEE7SUFNSTtJQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0U7RUFDQTtFQUNBOztBQUNBO0VBQ0U7RUFDQTs7QUFLTjtFQUNFO0VBQ0E7O0FBRUE7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBRUE7O0FBYU47RUFFRTtFQUNBOztBQUVGO0VBRUU7O0FBS0Y7RUFDRTtFQUNBOztBQUVGO0VBQ0U7RUFDQTtFQUNBOztBQUNBO0VBQ0U7OztBQ3JMTjtFQUNFO0VBQ0E7O0FBQ0E7RUFDRTtFQUNBO0VBQ0E7O0FBR0E7RUFDRTs7QUFHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTs7QUFHSjtFQUNFOztBQStCUjtFQUNFOztBQUVGO0VBQ0U7RUFDQTs7O0FDOURGO0FBQUE7RUFFRTs7QUFFRjtFQUNFOztBQUdBO0VBQ0U7OztBQ1JKO0FBOENFOztBQWpDQTtFQUNFOztBQUdGO0VBQ0U7RUFDQTs7QUFHRjtFQUNFOztBQUdGO0VBQ0U7O0FBRUY7RUFDRTs7QUFFRjtFQUNFOztBQUdBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU1KO0FBQ0U7RUFDQTs7QUFFQTtFQUNFLE9oQnVIQTs7QWdCckhGO0VBQ0U7O0FBSUo7RUFDRTs7QUFLRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUtGO0VBQ0U7RUFDQTs7QUFHRjtFQUNFOztBQUtBO0VBQ0U7O0FBQ0E7RUFDRTs7O0FDekZSO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0U7O0FqQm9ORjtFaUI1TkY7SUFXSTtJQUNBO0lBQ0E7Ozs7QUFPTjtFQUNFO0VBQ0E7RUFDQTs7QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0U7O0FqQjJMRjtFaUJwTUY7SUFZSTtJQUNBO0lBQ0E7Ozs7QUFNTjtFQUNFO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNFOztBakJnS0E7RWlCMUtKO0lBYUk7SUFDQTtJQUNBOzs7O0FDbEVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDRTs7QUFJRjtFQUNFOztBQUVGO0VBQ0U7O0FBRUY7RUFDRSIsImZpbGUiOiJzdHlsZXMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG5UaGVtZSBOYW1lOiBhaC1zdGFydGVyXG5UaGVtZSBVUkk6IGh0dHA6Ly91bmRlcnNjb3Jlcy5tZS9cbkF1dGhvcjogYWxleCBoYXJyaXNcbkF1dGhvciBVUkk6IGh0dHA6Ly9hbGV4aGFycmlzLm9ubGluZVxuRGVzY3JpcHRpb246IERlc2NyaXB0aW9uXG5WZXJzaW9uOiAxLjAuMFxuVGVzdGVkIHVwIHRvOiA1LjRcblJlcXVpcmVzIFBIUDogNS42XG5MaWNlbnNlOiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MiBvciBsYXRlclxuTGljZW5zZSBVUkk6IExJQ0VOU0VcblRleHQgRG9tYWluOiBhaFxuVGFnczogY3VzdG9tLWJhY2tncm91bmQsIGN1c3RvbS1sb2dvLCBjdXN0b20tbWVudSwgZmVhdHVyZWQtaW1hZ2VzLCB0aHJlYWRlZC1jb21tZW50cywgdHJhbnNsYXRpb24tcmVhZHlcblxuVGhpcyB0aGVtZSwgbGlrZSBXb3JkUHJlc3MsIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEwuXG5Vc2UgaXQgdG8gbWFrZSBzb21ldGhpbmcgY29vbCwgaGF2ZSBmdW4sIGFuZCBzaGFyZSB3aGF0IHlvdSd2ZSBsZWFybmVkLlxuXG5haC1zdGFydGVyIGlzIGJhc2VkIG9uIFVuZGVyc2NvcmVzIGh0dHBzOi8vdW5kZXJzY29yZXMubWUvLCAoQykgMjAxMi0yMDIwIEF1dG9tYXR0aWMsIEluYy5cblVuZGVyc2NvcmVzIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdQTCB2MiBvciBsYXRlci5cblxuTm9ybWFsaXppbmcgc3R5bGVzIGhhdmUgYmVlbiBoZWxwZWQgYWxvbmcgdGhhbmtzIHRvIHRoZSBmaW5lIHdvcmsgb2Zcbk5pY29sYXMgR2FsbGFnaGVyIGFuZCBKb25hdGhhbiBOZWFsIGh0dHBzOi8vbmVjb2xhcy5naXRodWIuaW8vbm9ybWFsaXplLmNzcy9cbiovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbj4+PiBUQUJMRSBPRiBDT05URU5UUzpcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgR2VuZXJpY1xuXHQtIE5vcm1hbGl6ZVxuXHQtIEJveCBzaXppbmdcbiMgQmFzZVxuXHQtIFR5cG9ncmFwaHlcblx0LSBFbGVtZW50c1xuXHQtIExpbmtzXG5cdC0gRm9ybXNcbiMjIExheW91dHNcbiMgQ29tcG9uZW50c1xuXHQtIE5hdmlnYXRpb25cblx0LSBQb3N0cyBhbmQgcGFnZXNcblx0LSBDb21tZW50c1xuXHQtIFdpZGdldHNcblx0LSBNZWRpYVxuXHQtIENhcHRpb25zXG5cdC0gR2FsbGVyaWVzXG4jIHBsdWdpbnNcblx0LSBKZXRwYWNrIGluZmluaXRlIHNjcm9sbFxuIyBVdGlsaXRpZXNcblx0LSBBY2Nlc3NpYmlsaXR5XG5cdC0gQWxpZ25tZW50c1xuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgR2VuZXJpY1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBOb3JtYWxpemVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qIERvY3VtZW50XG5cdCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG4gaHRtbCB7XG5cdGxpbmUtaGVpZ2h0OiAxLjE1O1xuXHQtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG59XG5cbi8qIFNlY3Rpb25zXG5cdCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuIGJvZHkge1xuXHRtYXJnaW46IDA7XG59XG5cbi8qKlxuICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXG4gKi9cbm1haW4ge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG4vLyBoMSB7XG4vLyBcdGZvbnQtc2l6ZTogMmVtO1xuLy8gXHRtYXJnaW46IDAuNjdlbSAwO1xuLy8gfVxuXG4vKiBHcm91cGluZyBjb250ZW50XG5cdCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuaHIge1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblx0aGVpZ2h0OiAwO1xuXHRvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuXHRmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG5cdGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuXHQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmEge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuXHRib3JkZXItYm90dG9tOiBub25lO1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cbmIsXG5zdHJvbmcge1xuXHRmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsXG5rYmQsXG5zYW1wIHtcblx0Zm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuXHRmb250LXNpemU6IDFlbTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuXHRmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcblx0Zm9udC1zaXplOiA3NSU7XG5cdGxpbmUtaGVpZ2h0OiAwO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcblx0Ym90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuXHR0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuXHQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5pbWcge1xuXHRib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qIEZvcm1zXG5cdCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuXHRmb250LWZhbWlseTogaW5oZXJpdDtcblx0Zm9udC1zaXplOiAxMDAlO1xuXHRsaW5lLWhlaWdodDogMS4xNTtcblx0bWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQge1xuXHRvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG5cdGJvcmRlci1zdHlsZTogbm9uZTtcblx0cGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcblx0b3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuZmllbGRzZXQge1xuXHRwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqXHRcdGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5sZWdlbmQge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRjb2xvcjogaW5oZXJpdDtcblx0ZGlzcGxheTogdGFibGU7XG5cdG1heC13aWR0aDogMTAwJTtcblx0cGFkZGluZzogMDtcblx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5wcm9ncmVzcyB7XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xudGV4dGFyZWEge1xuXHRvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG5cdGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuXHRvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcblx0Zm9udDogaW5oZXJpdDtcbn1cblxuLyogSW50ZXJhY3RpdmVcblx0ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5kZXRhaWxzIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1bW1hcnkge1xuXHRkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIE1pc2Ncblx0ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG50ZW1wbGF0ZSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cbltoaWRkZW5dIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLyogQm94IHNpemluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIEluaGVyaXQgYm94LXNpemluZyB0byBtb3JlIGVhc2lseSBjaGFuZ2UgaXQncyB2YWx1ZSBvbiBhIGNvbXBvbmVudCBsZXZlbC5cbkBsaW5rIGh0dHA6Ly9jc3MtdHJpY2tzLmNvbS9pbmhlcml0aW5nLWJveC1zaXppbmctcHJvYmFibHktc2xpZ2h0bHktYmV0dGVyLWJlc3QtcHJhY3RpY2UvICovXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuXHRib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG5odG1sIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBCYXNlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIFR5cG9ncmFwaHlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuYm9keSxcbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxub3B0Z3JvdXAsXG50ZXh0YXJlYSB7XG5cdGNvbG9yOiAjNDA0MDQwO1xuXHRmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG5cdGZvbnQtc2l6ZTogMXJlbTtcblx0bGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcblx0Y2xlYXI6IGJvdGg7XG59XG5cbnAge1xuXHRtYXJnaW4tYm90dG9tOiAxLjVlbTtcbn1cblxuZGZuLFxuY2l0ZSxcbmVtLFxuaSB7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuYmxvY2txdW90ZSB7XG5cdG1hcmdpbjogMCAxLjVlbTtcbn1cblxuYWRkcmVzcyB7XG5cdG1hcmdpbjogMCAwIDEuNWVtO1xufVxuXG5wcmUge1xuXHRiYWNrZ3JvdW5kOiAjZWVlO1xuXHRmb250LWZhbWlseTogXCJDb3VyaWVyIDEwIFBpdGNoXCIsIGNvdXJpZXIsIG1vbm9zcGFjZTtcblx0bGluZS1oZWlnaHQ6IDEuNjtcblx0bWFyZ2luLWJvdHRvbTogMS42ZW07XG5cdG1heC13aWR0aDogMTAwJTtcblx0b3ZlcmZsb3c6IGF1dG87XG5cdHBhZGRpbmc6IDEuNmVtO1xufVxuXG5jb2RlLFxua2JkLFxudHQsXG52YXIge1xuXHRmb250LWZhbWlseTogbW9uYWNvLCBjb25zb2xhcywgXCJBbmRhbGUgTW9ub1wiLCBcIkRlamFWdSBTYW5zIE1vbm9cIiwgbW9ub3NwYWNlO1xufVxuXG5hYmJyLFxuYWNyb255bSB7XG5cdGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzY2Njtcblx0Y3Vyc29yOiBoZWxwO1xufVxuXG5tYXJrLFxuaW5zIHtcblx0YmFja2dyb3VuZDogI2ZmZjljMDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5iaWcge1xuXHRmb250LXNpemU6IDEyNSU7XG59XG5cbi8qIEVsZW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmJvZHkge1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG5ociB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG5cdGJvcmRlcjogMDtcblx0aGVpZ2h0OiAxcHg7XG5cdG1hcmdpbi1ib3R0b206IDEuNWVtO1xufVxuXG51bCxcbm9sIHtcblx0bWFyZ2luOiAwIDAgMS41ZW0gM2VtO1xufVxuXG51bCB7XG5cdGxpc3Qtc3R5bGU6IGRpc2M7XG59XG5cbm9sIHtcblx0bGlzdC1zdHlsZTogZGVjaW1hbDtcbn1cblxubGkgPiB1bCxcbmxpID4gb2wge1xuXHRtYXJnaW4tYm90dG9tOiAwO1xuXHRtYXJnaW4tbGVmdDogMS41ZW07XG59XG5cbmR0IHtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuZGQge1xuXHRtYXJnaW46IDAgMS41ZW0gMS41ZW07XG59XG5cbi8qIE1ha2Ugc3VyZSBlbWJlZHMgYW5kIGlmcmFtZXMgZml0IHRoZWlyIGNvbnRhaW5lcnMuICovXG5lbWJlZCxcbmlmcmFtZSxcbm9iamVjdCB7XG5cdG1heC13aWR0aDogMTAwJTtcbn1cblxuaW1nIHtcblx0aGVpZ2h0OiBhdXRvO1xufVxuXG5maWd1cmUge1xuXHRtYXJnaW46IDFlbSAwIC41ZW0gMDtcbn1cblxudGFibGUge1xuXHRtYXJnaW46IDAgMCAxLjVlbTtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi8qIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmEge1xuXHRjb2xvcjogIzQxNjllMTtcbn1cblxuYTp2aXNpdGVkIHtcblx0Y29sb3I6ICM4MDAwODA7XG59XG5cbmE6aG92ZXIsXG5hOmZvY3VzLFxuYTphY3RpdmUge1xuXHRjb2xvcjogIzE5MTk3MDtcbn1cblxuYTpmb2N1cyB7XG5cdG91dGxpbmU6IHRoaW4gZG90dGVkO1xufVxuXG5hOmhvdmVyLFxuYTphY3RpdmUge1xuXHRvdXRsaW5lOiAwO1xufVxuXG4vKiBGb3Jtc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5idXR0b24sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG5cdGJvcmRlcjogMXB4IHNvbGlkO1xuXHRib3JkZXItY29sb3I6ICNjY2MgI2NjYyAjYmJiO1xuXHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdGJhY2tncm91bmQ6ICNlNmU2ZTY7XG5cdGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG5cdGxpbmUtaGVpZ2h0OiAxO1xuXHRwYWRkaW5nOiAwLjZlbSAxZW0gMC40ZW07XG59XG5cbmJ1dHRvbjpob3ZlcixcbmlucHV0W3R5cGU9XCJidXR0b25cIl06aG92ZXIsXG5pbnB1dFt0eXBlPVwicmVzZXRcIl06aG92ZXIsXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcblx0Ym9yZGVyLWNvbG9yOiAjY2NjICNiYmIgI2FhYTtcbn1cblxuYnV0dG9uOmFjdGl2ZSxcbmJ1dHRvbjpmb2N1cyxcbmlucHV0W3R5cGU9XCJidXR0b25cIl06YWN0aXZlLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpmb2N1cyxcbmlucHV0W3R5cGU9XCJyZXNldFwiXTphY3RpdmUsXG5pbnB1dFt0eXBlPVwicmVzZXRcIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdOmFjdGl2ZSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMge1xuXHRib3JkZXItY29sb3I6ICNhYWEgI2JiYiAjYmJiO1xufVxuXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcbmlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbmlucHV0W3R5cGU9XCJ1cmxcIl0sXG5pbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbmlucHV0W3R5cGU9XCJ0ZWxcIl0sXG5pbnB1dFt0eXBlPVwicmFuZ2VcIl0sXG5pbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbmlucHV0W3R5cGU9XCJtb250aFwiXSxcbmlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxuaW5wdXRbdHlwZT1cInRpbWVcIl0sXG5pbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXG5pbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG5pbnB1dFt0eXBlPVwiY29sb3JcIl0sXG50ZXh0YXJlYSB7XG5cdGNvbG9yOiAjNjY2O1xuXHRib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuXHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdHBhZGRpbmc6IDNweDtcbn1cblxuaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cInJhbmdlXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwibW9udGhcIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwid2Vla1wiXTpmb2N1cyxcbmlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cImNvbG9yXCJdOmZvY3VzLFxudGV4dGFyZWE6Zm9jdXMge1xuXHRjb2xvcjogIzExMTtcbn1cblxuc2VsZWN0IHtcblx0Ym9yZGVyOiAxcHggc29saWQgI2NjYztcbn1cblxudGV4dGFyZWEge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBMYXlvdXRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQ29tcG9uZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBOYXZpZ2F0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5tYWluLW5hdmlnYXRpb24ge1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDEwMCU7XG59XG5cbi5tYWluLW5hdmlnYXRpb24gdWwge1xuXHRkaXNwbGF5OiBub25lO1xuXHRsaXN0LXN0eWxlOiBub25lO1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmctbGVmdDogMDtcbn1cblxuLm1haW4tbmF2aWdhdGlvbiB1bCB1bCB7XG5cdGJveC1zaGFkb3c6IDAgM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuMik7XG5cdGZsb2F0OiBsZWZ0O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMTAwJTtcblx0bGVmdDogLTk5OWVtO1xuXHR6LWluZGV4OiA5OTk5OTtcbn1cblxuLm1haW4tbmF2aWdhdGlvbiB1bCB1bCB1bCB7XG5cdGxlZnQ6IC05OTllbTtcblx0dG9wOiAwO1xufVxuXG4ubWFpbi1uYXZpZ2F0aW9uIHVsIHVsIGxpOmhvdmVyID4gdWwsXG4ubWFpbi1uYXZpZ2F0aW9uIHVsIHVsIGxpLmZvY3VzID4gdWwge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bGVmdDogYXV0bztcbn1cblxuLm1haW4tbmF2aWdhdGlvbiB1bCB1bCBhIHtcblx0d2lkdGg6IDIwMHB4O1xufVxuXG4ubWFpbi1uYXZpZ2F0aW9uIHVsIGxpOmhvdmVyID4gdWwsXG4ubWFpbi1uYXZpZ2F0aW9uIHVsIGxpLmZvY3VzID4gdWwge1xuXHRsZWZ0OiBhdXRvO1xufVxuXG4ubWFpbi1uYXZpZ2F0aW9uIGxpIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubWFpbi1uYXZpZ2F0aW9uIGEge1xuXHRkaXNwbGF5OiBibG9jaztcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4vKiBTbWFsbCBtZW51LiAqL1xuLm1lbnUtdG9nZ2xlLFxuLm1haW4tbmF2aWdhdGlvbi50b2dnbGVkIHVsIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM3LjVlbSkge1xuXG5cdC5tZW51LXRvZ2dsZSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC5tYWluLW5hdmlnYXRpb24gdWwge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdH1cbn1cblxuLnNpdGUtbWFpbiAuY29tbWVudC1uYXZpZ2F0aW9uLFxuLnNpdGUtbWFpblxuLnBvc3RzLW5hdmlnYXRpb24sXG4uc2l0ZS1tYWluXG4ucG9zdC1uYXZpZ2F0aW9uIHtcblx0bWFyZ2luOiAwIDAgMS41ZW07XG59XG5cbi5jb21tZW50LW5hdmlnYXRpb24gLm5hdi1saW5rcyxcbi5wb3N0cy1uYXZpZ2F0aW9uIC5uYXYtbGlua3MsXG4ucG9zdC1uYXZpZ2F0aW9uIC5uYXYtbGlua3Mge1xuXHRkaXNwbGF5OiBmbGV4O1xufVxuXG4uY29tbWVudC1uYXZpZ2F0aW9uIC5uYXYtcHJldmlvdXMsXG4ucG9zdHMtbmF2aWdhdGlvbiAubmF2LXByZXZpb3VzLFxuLnBvc3QtbmF2aWdhdGlvbiAubmF2LXByZXZpb3VzIHtcblx0ZmxleDogMSAwIDUwJTtcbn1cblxuLmNvbW1lbnQtbmF2aWdhdGlvbiAubmF2LW5leHQsXG4ucG9zdHMtbmF2aWdhdGlvbiAubmF2LW5leHQsXG4ucG9zdC1uYXZpZ2F0aW9uIC5uYXYtbmV4dCB7XG5cdHRleHQtYWxpZ246IGVuZDtcblx0ZmxleDogMSAwIDUwJTtcbn1cblxuLyogUG9zdHMgYW5kIHBhZ2VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zdGlja3kge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLy8gLnBvc3QsXG4vLyAucGFnZSB7XG4vLyBcdG1hcmdpbjogMCAwIDEuNWVtO1xuLy8gfVxuXG4udXBkYXRlZDpub3QoLnB1Ymxpc2hlZCkge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4ucGFnZS1jb250ZW50LFxuLmVudHJ5LWNvbnRlbnQsXG4uZW50cnktc3VtbWFyeSB7XG5cdG1hcmdpbjogMS41ZW0gMCAwO1xufVxuXG4ucGFnZS1saW5rcyB7XG5cdGNsZWFyOiBib3RoO1xuXHRtYXJnaW46IDAgMCAxLjVlbTtcbn1cblxuLyogQ29tbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmNvbW1lbnQtY29udGVudCBhIHtcblx0d29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4uYnlwb3N0YXV0aG9yIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIFdpZGdldHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLndpZGdldCB7XG5cdG1hcmdpbjogMCAwIDEuNWVtO1xufVxuXG4ud2lkZ2V0IHNlbGVjdCB7XG5cdG1heC13aWR0aDogMTAwJTtcbn1cblxuLyogTWVkaWFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnBhZ2UtY29udGVudCAud3Atc21pbGV5LFxuLmVudHJ5LWNvbnRlbnQgLndwLXNtaWxleSxcbi5jb21tZW50LWNvbnRlbnQgLndwLXNtaWxleSB7XG5cdGJvcmRlcjogbm9uZTtcblx0bWFyZ2luLWJvdHRvbTogMDtcblx0bWFyZ2luLXRvcDogMDtcblx0cGFkZGluZzogMDtcbn1cblxuLyogTWFrZSBzdXJlIGxvZ28gbGluayB3cmFwcyBhcm91bmQgbG9nbyBpbWFnZS4gKi9cbi5jdXN0b20tbG9nby1saW5rIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKiBDYXB0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ud3AtY2FwdGlvbiB7XG5cdG1hcmdpbi1ib3R0b206IDEuNWVtO1xuXHRtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi53cC1jYXB0aW9uIGltZ1tjbGFzcyo9XCJ3cC1pbWFnZS1cIl0ge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLndwLWNhcHRpb24gLndwLWNhcHRpb24tdGV4dCB7XG5cdG1hcmdpbjogMC44MDc1ZW0gMDtcbn1cblxuLndwLWNhcHRpb24tdGV4dCB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyogR2FsbGVyaWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5nYWxsZXJ5IHtcblx0bWFyZ2luLWJvdHRvbTogMS41ZW07XG5cdGRpc3BsYXk6IGdyaWQ7XG5cdGdyaWQtZ2FwOiAxLjVlbTtcbn1cblxuLmdhbGxlcnktaXRlbSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy0yIHtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy0zIHtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy00IHtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy01IHtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNSwgMWZyKTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy02IHtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNiwgMWZyKTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy03IHtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy04IHtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoOCwgMWZyKTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy05IHtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoOSwgMWZyKTtcbn1cblxuLmdhbGxlcnktY2FwdGlvbiB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFBsdWdpbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogSmV0cGFjayBpbmZpbml0ZSBzY3JvbGxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiBIaWRlIHRoZSBQb3N0cyBOYXZpZ2F0aW9uIGFuZCB0aGUgRm9vdGVyIHdoZW4gSW5maW5pdGUgU2Nyb2xsIGlzIGluIHVzZS4gKi9cbi5pbmZpbml0ZS1zY3JvbGwgLnBvc3RzLW5hdmlnYXRpb24sXG4uaW5maW5pdGUtc2Nyb2xsLm5ldmVyZW5kaW5nIC5zaXRlLWZvb3RlciB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIFJlLWRpc3BsYXkgdGhlIFRoZW1lIEZvb3RlciB3aGVuIEluZmluaXRlIFNjcm9sbCBoYXMgcmVhY2hlZCBpdHMgZW5kLiAqL1xuLmluZmluaXR5LWVuZC5uZXZlcmVuZGluZyAuc2l0ZS1mb290ZXIge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBVdGlsaXRpZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogQWNjZXNzaWJpbGl0eVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIFRleHQgbWVhbnQgb25seSBmb3Igc2NyZWVuIHJlYWRlcnMuICovXG4uc2NyZWVuLXJlYWRlci10ZXh0IHtcblx0Ym9yZGVyOiAwO1xuXHRjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG5cdGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcblx0aGVpZ2h0OiAxcHg7XG5cdG1hcmdpbjogLTFweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxcHg7XG5cdHdvcmQtd3JhcDogbm9ybWFsICFpbXBvcnRhbnQ7XG59XG5cbi5zY3JlZW4tcmVhZGVyLXRleHQ6Zm9jdXMge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuXHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdGJveC1zaGFkb3c6IDAgMCAycHggMnB4IHJnYmEoMCwgMCwgMCwgMC42KTtcblx0Y2xpcDogYXV0byAhaW1wb3J0YW50O1xuXHRjbGlwLXBhdGg6IG5vbmU7XG5cdGNvbG9yOiAjMjE3NTliO1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC1zaXplOiAwLjg3NXJlbTtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0aGVpZ2h0OiBhdXRvO1xuXHRsZWZ0OiA1cHg7XG5cdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdHBhZGRpbmc6IDE1cHggMjNweCAxNHB4O1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdHRvcDogNXB4O1xuXHR3aWR0aDogYXV0bztcblx0ei1pbmRleDogMTAwMDAwO1xufVxuXG4vKiBEbyBub3Qgc2hvdyB0aGUgb3V0bGluZSBvbiB0aGUgc2tpcCBsaW5rIHRhcmdldC4gKi9cbiNwcmltYXJ5W3RhYmluZGV4PVwiLTFcIl06Zm9jdXMge1xuXHRvdXRsaW5lOiAwO1xufVxuXG4vKiBBbGlnbm1lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5hbGlnbmxlZnQge1xuXG5cdC8qcnRsOmlnbm9yZSovXG5cdGZsb2F0OiBsZWZ0O1xuXG5cdC8qcnRsOmlnbm9yZSovXG5cdG1hcmdpbi1yaWdodDogMS41ZW07XG5cdG1hcmdpbi1ib3R0b206IDEuNWVtO1xufVxuXG4uYWxpZ25yaWdodCB7XG5cblx0LypydGw6aWdub3JlKi9cblx0ZmxvYXQ6IHJpZ2h0O1xuXG5cdC8qcnRsOmlnbm9yZSovXG5cdG1hcmdpbi1sZWZ0OiAxLjVlbTtcblx0bWFyZ2luLWJvdHRvbTogMS41ZW07XG59XG5cbi5hbGlnbmNlbnRlciB7XG5cdGNsZWFyOiBib3RoO1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdG1hcmdpbi1yaWdodDogYXV0bztcblx0bWFyZ2luLWJvdHRvbTogMS41ZW07XG59XG4iLCIvKiBTbGlkZXIgKi9cblxuLnNsaWNrLXNsaWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zbGljay1saXN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICYuZHJhZ2dpbmcge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGN1cnNvcjogaGFuZDtcbiAgICB9XG59XG4uc2xpY2stc2xpZGVyIC5zbGljay10cmFjayxcbi5zbGljay1zbGlkZXIgLnNsaWNrLWxpc3Qge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uc2xpY2stdHJhY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgICYuc2xpY2stbG9hZGluZyBpbWcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmLmRyYWdnaW5nIGltZyB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC5zbGljay1pbml0aWFsaXplZCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuc2xpY2stdmVydGljYWwgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvLyBAZm9udC1mYWNlIHtcbi8vICAgICBmb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJztcbi8vICAgICBzcmM6IHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1Db25kZW5zZWRCbGFjay5lb3QnKTtcbi8vICAgICBzcmM6IHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1Db25kZW5zZWRCbGFjay5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuLy8gICAgICAgICB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtQ29uZGVuc2VkQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4vLyAgICAgICAgIHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1Db25kZW5zZWRCbGFjay53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4vLyAgICAgICAgIHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1Db25kZW5zZWRCbGFjay50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4vLyAgICAgICAgIHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1Db25kZW5zZWRCbGFjay5zdmcjSGVsdmV0aWNhTmV1ZS1Db25kZW5zZWRCbGFjaycpIGZvcm1hdCgnc3ZnJyk7XG4vLyAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbi8vICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4vLyAgICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuLy8gfVxuXG4vLyBAZm9udC1mYWNlIHtcbi8vICAgICBmb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJztcbi8vICAgICBzcmM6IHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1UaGluLmVvdCcpO1xuLy8gICAgIHNyYzogdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLVRoaW4uZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbi8vICAgICAgICAgdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4vLyAgICAgICAgIHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1UaGluLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbi8vICAgICAgICAgdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLVRoaW4udHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuLy8gICAgICAgICB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtVGhpbi5zdmcjSGVsdmV0aWNhTmV1ZS1UaGluJykgZm9ybWF0KCdzdmcnKTtcbi8vICAgICBmb250LXdlaWdodDogMTAwO1xuLy8gICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbi8vICAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4vLyB9XG5cbi8vIEBmb250LWZhY2Uge1xuLy8gICAgIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnO1xuLy8gICAgIHNyYzogdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLVRoaW5JdGFsaWMuZW90Jyk7XG4vLyAgICAgc3JjOiB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtVGhpbkl0YWxpYy5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuLy8gICAgICAgICB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtVGhpbkl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbi8vICAgICAgICAgdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLVRoaW5JdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpLFxuLy8gICAgICAgICB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtVGhpbkl0YWxpYy50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4vLyAgICAgICAgIHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1UaGluSXRhbGljLnN2ZyNIZWx2ZXRpY2FOZXVlLVRoaW5JdGFsaWMnKSBmb3JtYXQoJ3N2ZycpO1xuLy8gICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4vLyAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuLy8gICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbi8vIH1cblxuLy8gQGZvbnQtZmFjZSB7XG4vLyAgICAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZSc7XG4vLyAgICAgc3JjOiB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtTWVkaXVtLmVvdCcpO1xuLy8gICAgIHNyYzogdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLU1lZGl1bS5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuLy8gICAgICAgICB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuLy8gICAgICAgICB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtTWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbi8vICAgICAgICAgdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLU1lZGl1bS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4vLyAgICAgICAgIHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1NZWRpdW0uc3ZnI0hlbHZldGljYU5ldWUtTWVkaXVtJykgZm9ybWF0KCdzdmcnKTtcbi8vICAgICBmb250LXdlaWdodDogNTAwO1xuLy8gICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbi8vICAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4vLyB9XG5cbi8vIEBmb250LWZhY2Uge1xuLy8gICAgIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnO1xuLy8gICAgIHNyYzogdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLU1lZGl1bUl0YWxpYy5lb3QnKTtcbi8vICAgICBzcmM6IHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1NZWRpdW1JdGFsaWMuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbi8vICAgICAgICAgdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbi8vICAgICAgICAgdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLU1lZGl1bUl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4vLyAgICAgICAgIHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1NZWRpdW1JdGFsaWMudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuLy8gICAgICAgICB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtTWVkaXVtSXRhbGljLnN2ZyNIZWx2ZXRpY2FOZXVlLU1lZGl1bUl0YWxpYycpIGZvcm1hdCgnc3ZnJyk7XG4vLyAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbi8vICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4vLyAgICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuLy8gfVxuXG4vLyBAZm9udC1mYWNlIHtcbi8vICAgICBmb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJztcbi8vICAgICBzcmM6IHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1MaWdodC5lb3QnKTtcbi8vICAgICBzcmM6IHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1MaWdodC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuLy8gICAgICAgICB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4vLyAgICAgICAgIHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4vLyAgICAgICAgIHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1MaWdodC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4vLyAgICAgICAgIHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1MaWdodC5zdmcjSGVsdmV0aWNhTmV1ZS1MaWdodCcpIGZvcm1hdCgnc3ZnJyk7XG4vLyAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbi8vICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4vLyAgICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuLy8gfVxuXG4vLyBAZm9udC1mYWNlIHtcbi8vICAgICBmb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJztcbi8vICAgICBzcmM6IHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1VbHRyYUxpZ2h0SXRhbGljLmVvdCcpO1xuLy8gICAgIHNyYzogdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLVVsdHJhTGlnaHRJdGFsaWMuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbi8vICAgICAgICAgdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLVVsdHJhTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4vLyAgICAgICAgIHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1VbHRyYUxpZ2h0SXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbi8vICAgICAgICAgdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLVVsdHJhTGlnaHRJdGFsaWMudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuLy8gICAgICAgICB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtVWx0cmFMaWdodEl0YWxpYy5zdmcjSGVsdmV0aWNhTmV1ZS1VbHRyYUxpZ2h0SXRhbGljJykgZm9ybWF0KCdzdmcnKTtcbi8vICAgICBmb250LXdlaWdodDogMTAwO1xuLy8gICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbi8vICAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4vLyB9XG5cbi8vIEBmb250LWZhY2Uge1xuLy8gICAgIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnO1xuLy8gICAgIHNyYzogdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLUNvbmRlbnNlZEJvbGQuZW90Jyk7XG4vLyAgICAgc3JjOiB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtQ29uZGVuc2VkQm9sZC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuLy8gICAgICAgICB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtQ29uZGVuc2VkQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbi8vICAgICAgICAgdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLUNvbmRlbnNlZEJvbGQud29mZicpIGZvcm1hdCgnd29mZicpLFxuLy8gICAgICAgICB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtQ29uZGVuc2VkQm9sZC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4vLyAgICAgICAgIHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1Db25kZW5zZWRCb2xkLnN2ZyNIZWx2ZXRpY2FOZXVlLUNvbmRlbnNlZEJvbGQnKSBmb3JtYXQoJ3N2ZycpO1xuLy8gICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuLy8gICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbi8vICAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4vLyB9XG5cbi8vIEBmb250LWZhY2Uge1xuLy8gICAgIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnO1xuLy8gICAgIHNyYzogdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLVVsdHJhTGlnaHQuZW90Jyk7XG4vLyAgICAgc3JjOiB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtVWx0cmFMaWdodC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuLy8gICAgICAgICB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtVWx0cmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbi8vICAgICAgICAgdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLVVsdHJhTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpLFxuLy8gICAgICAgICB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtVWx0cmFMaWdodC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4vLyAgICAgICAgIHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1VbHRyYUxpZ2h0LnN2ZyNIZWx2ZXRpY2FOZXVlLVVsdHJhTGlnaHQnKSBmb3JtYXQoJ3N2ZycpO1xuLy8gICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4vLyAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuLy8gICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbi8vIH1cblxuLy8gQGZvbnQtZmFjZSB7XG4vLyAgICAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZSc7XG4vLyAgICAgc3JjOiB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtSXRhbGljLmVvdCcpO1xuLy8gICAgIHNyYzogdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLUl0YWxpYy5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuLy8gICAgICAgICB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuLy8gICAgICAgICB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbi8vICAgICAgICAgdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLUl0YWxpYy50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4vLyAgICAgICAgIHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1JdGFsaWMuc3ZnI0hlbHZldGljYU5ldWUtSXRhbGljJykgZm9ybWF0KCdzdmcnKTtcbi8vICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuLy8gICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbi8vICAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4vLyB9XG5cbi8vIEBmb250LWZhY2Uge1xuLy8gICAgIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnO1xuLy8gICAgIHNyYzogdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLUJvbGRJdGFsaWMuZW90Jyk7XG4vLyAgICAgc3JjOiB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtQm9sZEl0YWxpYy5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuLy8gICAgICAgICB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbi8vICAgICAgICAgdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLUJvbGRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpLFxuLy8gICAgICAgICB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtQm9sZEl0YWxpYy50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4vLyAgICAgICAgIHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1Cb2xkSXRhbGljLnN2ZyNIZWx2ZXRpY2FOZXVlLUJvbGRJdGFsaWMnKSBmb3JtYXQoJ3N2ZycpO1xuLy8gICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuLy8gICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbi8vICAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4vLyB9XG5cbi8vIEBmb250LWZhY2Uge1xuLy8gICAgIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnO1xuLy8gICAgIHNyYzogdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLUJvbGQuZW90Jyk7XG4vLyAgICAgc3JjOiB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtQm9sZC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuLy8gICAgICAgICB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbi8vICAgICAgICAgdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpLFxuLy8gICAgICAgICB1cmwoJy4uL2ZvbnRzL0hlbHZldGljYU5ldWUtQm9sZC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4vLyAgICAgICAgIHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS1Cb2xkLnN2ZyNIZWx2ZXRpY2FOZXVlLUJvbGQnKSBmb3JtYXQoJ3N2ZycpO1xuLy8gICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuLy8gICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbi8vICAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4vLyB9XG5cbi8vIEBmb250LWZhY2Uge1xuLy8gICAgIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnO1xuLy8gICAgIHNyYzogdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLmVvdCcpO1xuLy8gICAgIHNyYzogdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4vLyAgICAgICAgIHVybCgnLi4vZm9udHMvSGVsdmV0aWNhTmV1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbi8vICAgICAgICAgdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbi8vICAgICAgICAgdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbi8vICAgICAgICAgdXJsKCcuLi9mb250cy9IZWx2ZXRpY2FOZXVlLnN2ZyNIZWx2ZXRpY2FOZXVlJykgZm9ybWF0KCdzdmcnKTtcbi8vICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuLy8gICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbi8vICAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4vLyB9XG5cblxuXG5cblxuJHdoaXRlOiAjZmZmO1xuJGJsYWNrOiAjMDAwO1xuXG5cbiRzY3JlZW4teHhzOiA2MDBweDtcbiRzY3JlZW4tc206IDgwMHB4O1xuJHNjcmVlbi1tZDogOTUwcHg7XG5cbiRoYW5nbGluZTogODNweDtcblxuXG4lZmxpcC1saW5rIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7XG4gICAgdG9wOiA0cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAgIFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgXG59XG5cbiVzdmctYmx1ciB7XG4gICAgZmlsdGVyOiB1cmwoXCIjc2hhcnBCbHVyXCIpOyBcbiAgICAtd2Via2l0LWZpbHRlcjogdXJsKFwiI3NoYXJwQmx1clwiKTsgXG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgLy8gd2lkdGg6IDEwMHZ3O1xuICAgIC8vIGhlaWdodDogMTAwdmg7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgzKTsgICBcbn1cblxuJXN2Zy1ibHVyLW5vLXNjYWxlIHtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMTAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogZmlsbDtcbn1cblxuJXN2Zy1ibHVyLW5vLXNjYWxlLW5vLWJhY2tkcm9wIHtcbiAgICBmaWx0ZXI6IHVybChcIiNzaGFycEJsdXJcIik7IFxuICAgIC13ZWJraXQtZmlsdGVyOiB1cmwoXCIjc2hhcnBCbHVyXCIpOyBcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbn1cblxuXG5cbi8qXG5NZWRpYSBRdWVyaWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBiZWxvdygkYnJlYWtwb2ludCkge1xuICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6ICgkYnJlYWtwb2ludCAtIDEpKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cbiAgXG5AbWl4aW4gcmVzcG9uZC1iZXR3ZWVuKCRtaW4sICRtYXgpIHtcbiAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiRtaW4pIGFuZCAobWF4LXdpZHRoOiRtYXggLSAxKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cbiAgXG5AbWl4aW4gYWJvdmUoJG1pbi13aWR0aCkge1xuICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6ICgkbWluLXdpZHRoKSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59IiwiKiB7XG4gICAgLy9nZXQgcmlkIG9mIGdyZXkgaGlnaGxpZ2h0IHRoaW5nXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICBcblxuXG4lYm9keS1jb3B5IHtcbiAgICBmb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAxNnB4OyAgXG4gICAgY29sb3I6ICRibGFjaztcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsOyAgXG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMmVtO1xuICAgIEBpbmNsdWRlIGFib3ZlKCRzY3JlZW4teHhzKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDI1ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE5ZW07XG4gICAgICAgIHdvcmQtc3BhY2luZzogLS45cHg7ICAgICAgICBcbiAgICB9IFxufVxuXG4lY3Vyc29yIHtcbiAgICBjdXJzb3I6IHVybCgnLi4vLi4vYXNzZXRzL2ltYWdlcy9hcnJvdy11cC1sZWZ0XzMtNS5zdmcnKSwgYXV0bztcdFxufVxuXG4lY3Vyc29yLWJsYWNrIHtcbiAgICBjdXJzb3I6IHVybCgnLi4vLi4vYXNzZXRzL2ltYWdlcy9hcnJvdy11cC1sZWZ0XzMtNV9CTEFDSy5zdmcnKSwgYXV0bztcbn1cblxuLndvb2NvbW1lcmNlLWNhcnQsIC53b29jb21tZXJjZS1jaGVja291dCB7XG4gICAgY3Vyc29yOiB1cmwoJy4uLy4uL2Fzc2V0cy9pbWFnZXMvYXJyb3ctdXAtbGVmdF8zLTVfQkxBQ0suc3ZnJyksIGF1dG87XHRcbn1cblxuYm9keSB7XG4gICAgQGV4dGVuZCAlYm9keS1jb3B5O1xuICAgIEBleHRlbmQgJWN1cnNvcjtcbiAgICAgICAgICAgIFxufVxuXG4uYm9keS1jb3B5IHtcbiAgICBAZXh0ZW5kICVib2R5LWNvcHk7XG59XG5cbiNwYWdlLCAuc2l0ZSB7XG4gICAgLy8gR2VuZXJhbCBUeXBvZ3JhcGh5IHN0dWZmXG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICY6aG92ZXIsICY6YWN0aXZlLCAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICB9IFxuICAgICAgICBvdXRsaW5lOiAwO1xuICAgIH0gXG5cbiAgICBwIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGxpIHtcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZW50cnktY29udGVudCB7XG4gICAgICAgIC5zdWJoZWFkIHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHdoaXRlOyAgIFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gICBcbiAgICAgICAgICAgICYudW5kZXJsaW5lIGEge1xuICAgICAgICAgICAgICAgIHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiBmcm9tLWZvbnQ7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IFxuICAgICAgICAgICAgICAgIC8vIHRleHQtdW5kZXJsaW5lLW9mZnNldDogLjVweDsgIFxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSAgICAgICAgIFxuICAgICAgICB9XG4gICAgICAgXG5cbiAgICAgICAgXG4gICAgICAgIHAgYSB7XG4gICAgICAgICAgICAvLyAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgc29saWQgMXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAvLyBib3JkZXItYm90dG9tOiAxcHggc29saWQgd2hpdGU7ICBcbiAgICAgICAgICAgIHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiBmcm9tLWZvbnQ7XG4gICAgICAgICAgICAvLyB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IC41cHg7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgICAgICAgICAgICBcbiAgICAgICAgICAgIEBpbmNsdWRlIGJlbG93KCRzY3JlZW4teHhzKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxOXB4O1xuICAgICAgICAgICAgfSAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgXG4gICAgICAgICAgICAmOmhvdmVyLCAmOmFjdGl2ZSwgJjpmb2N1cyAge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAvLyBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGl2IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9ICAgIFxufVxuXG5cbi5saW5rIHtcbiAgICBAZXh0ZW5kICVjdXJzb3I7IFxufSBcblxuI3BhZ2UgcC5zdWJoZWFkLm5vLW1hcmdpbi1ib3R0b20ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cblxuXG4vLyBhOmhvdmVyIGRpdiB7XG5cbi8vICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4vLyAgICAgICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogM3B4OyAgXG4gICAgXG4vLyB9XG5cbi5sZXR0ZXItZmxpcCB7XG4gICAgLy8gdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoLTEpO1xuICAgIHRvcDogNHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgIFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBcbn1cblxuLy8gVGhpcyBnZXRzIHVzZWQgb24gcGFyYWdyYXBocyBpbiB3b3JkcHJlc3MgdG8gbWFrZSB0aGUgbGlua3Mgd2l0aGluIGhhdmUgdW5kZXJsaW5lc1xuLy8gR2VuZXJhbGx5IHVzZWQgd2l0aCAuc3ViaGVhZCBhcyBwZXIgdGhlIEFCT1VUIHBhZ2UganVtcCBsaW5rc1xuLnVuZGVybGluZSB7XG4gICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246IGZyb20tZm9udDtcbiAgICAgICAgLy8gdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAuNXB4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgICBcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgXG59XG5cblxuJXN1YmhlYWQge1xuICAgIGZvbnQtc2l6ZTogLjhlbTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IC45ZW07IFxuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4uc3ViaGVhZCB7XG4gICAgQGV4dGVuZCAlc3ViaGVhZDtcbn1cblxuJXRhZyB7XG4gICAgZm9udC1zaXplOiAuOGVtOyAgICAgICAgICBcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB3b3JkLXNwYWNpbmc6IC0zcHg7IFxufVxuXG4udGFnIHtcbiAgICBAZXh0ZW5kICV0YWdcbn1cbiBcbiViaWctYnV0dG9uIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogMS40NWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGluZS1oZWlnaHQ6IC43NTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgQGluY2x1ZGUgYWJvdmUoJHNjcmVlbi14eHMpIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjZlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9ICBcbn1cblxuLmJpZy1idXR0b24sIC5lbnRyeS1jb250ZW50IC5iaWctYnV0dG9uIHtcbiAgICBAZXh0ZW5kICViaWctYnV0dG9uO1xuICAgICYuYWN0aXZlIHtcbiAgICAgICAgLy8gQGV4dGVuZCAlZmxpcC1saW5rO1xuICAgIH1cbn1cblxuJWJsYWNrLWJ1dHRvbiB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gICAgYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjI1KSAwIDJweCA1cHg7ICAgIFxuICAgIGhlaWdodDogNDVweDtcbiAgICBwYWRkaW5nOiAxMnB4IDMwcHg7IFxuICAgIG1hcmdpbjogMDtcblxufVxuXG5cblxuLy8gY29sb3IgZm9yIGxvZ28sIG9uIHBhZ2VzIHRoYXQgZG9udCBoYXZlIGltYWdlIGJhY2tncm91bmRzXG4vLyAubWVudTEgc3ZnIHBhdGgge1xuLy8gICAgIGZpbGw6ICRibGFjaztcbi8vIH1cblxuLy8gU3R5bGVzIGZvciBwYWdlcyB3aXRoIGltYWdlIGJhY2tncm91bmRzXG5ib2R5LmhvbWUsIGJvZHkuc2luZ2xlLXByb2plY3QsIGJvZHkucGFnZS1ncmlkLCBib2R5LnBhZ2UtaW5kZXgsIGJvZHkuY2F0ZWdvcnksIGJvZHkud29vY29tbWVyY2Uge1xuICAgIEBleHRlbmQgJWN1cnNvcjtcdCBcbiAgICAjcGFnZSwgLnNpdGUge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAuYm9keS1jb3B5IHtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIH0gICAgICAgIFxuICAgICAgICAuZW50cnktY29udGVudCB7XG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG4gICAgICAgIC5tZW51MSBzdmcgcGF0aCB7XG4gICAgICAgICAgICBmaWxsOiAkd2hpdGU7XG4gICAgICAgIH0gICAgXG4gICAgICAgIC5zdWJoZWFkIHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAvLyB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAvLyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBAZXh0ZW5kICVjdXJzb3I7XHQgXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9ICAgIFxuICAgICAgICAucGFuLWltYWdlIGE6aG92ZXIge1xuICAgICAgICAgICAgQGV4dGVuZCAlY3Vyc29yOyBcbiAgICAgICAgfSAgICAgICAgICAgIFxuICAgIH1cbn1cblxuXG4uY2F0ZWdvcnktbGlzdCB7XG4gICAgbWFyZ2luLXRvcDogLTFweDsgLy8gZm9yIHByb2plY3QtbGlzdCB0byBhbGlnbiB3aXRoIGhhbmdsaW5lLCBvZmZzZXRzIHRvcCBvZiBsaW5lLWhlaWdodFxuICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGRpdiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciwgJjphY3RpdmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgLy8gYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHdoaXRlOyAgICAgICAgIFxuICAgICAgICB9XG4gICAgfVxuICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTtcbiAgICBAaW5jbHVkZSBhYm92ZSgkc2NyZWVuLXh4cykge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zZW07XG4gICAgfVxufVxuXG4vLyBUaGUgdGl0bGUgb2YgdGhlIHByb2plY3Qgb24gcHJvamVjdCBwYWdlc1xuLnByb2plY3QtaGVhZGVyIHtcbiAgICBoMSB7XG4gICAgICAgIEBleHRlbmQgJWJvZHktY29weTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9ICBcbn1cblxuXG5cblxuIiwiLm1lbnUge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTsgIFxuICAgIHotaW5kZXg6IDIwMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vIFN0eWxlcyBmb3IgdGhlIGJpZyBjb3JuZXIgbWVudSBidXR0b25zXG4ubWVudSBkaXYge1xuICAgIEBleHRlbmQgJWJpZy1idXR0b247XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICAgIHN2ZyB7XG4gICAgICAgIGZpbGw6IHdoaXRlO1xuICAgIH1cbiAgICBpbWc6bnRoLW9mLXR5cGUoMikge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH0gICAgXG4gICAgc3ZnOm50aC1vZi10eXBlKDIpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9ICAgICAgICBcbiAgICBhOmhvdmVyLCBhLmFjdGl2ZSB7XG4gICAgICAgIHN2ZzpmaXJzdC1vZi10eXBlLCBpbWc6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIHN2ZzpudGgtb2YtdHlwZSgyKSwgaW1nOm50aC1vZi10eXBlKDIpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9ICAgIFxuICAgIH1cbn1cblxuXG4vLyB1cHBlciBsZWZ0XG4ubWVudTEge1xuICAgIHRvcDogMjhweDtcbiAgICBsZWZ0OiAyNHB4O1xuICAgIGEge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxNzNweDtcbiAgICAgICAgQGluY2x1ZGUgYWJvdmUoJHNjcmVlbi14eHMpIHtcbiAgICAgICAgICAgIHdpZHRoOiAyMTlweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gdXBwZXIgcmlnaHRcbi5tZW51MiB7XG4gICAgdG9wOiAyOHB4O1xuICAgIHJpZ2h0OiAyNHB4O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBhOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMTZweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgICAgICBAaW5jbHVkZSBhYm92ZSgkc2NyZWVuLXh4cykge1xuICAgICAgICAgICAgd2lkdGg6IDE0OHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9ICAgICAgICBcbiAgICB9ICAgICBcbiAgICBhOm50aC1vZi10eXBlKDIpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgICAgIHdpZHRoOiA4M3B4O1xuICAgICAgICBcbiAgICAgICAgQGluY2x1ZGUgYWJvdmUoJHNjcmVlbi14eHMpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDZweDtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9ICAgICAgICBcbiAgICB9XG4gXG4gICAgQGluY2x1ZGUgYmVsb3coJHNjcmVlbi14eHMpIHtcbiAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICBcbiAgICB9XG59XG5cbi8vIGJvdHRvbSByaWdodFxuLm1lbnUzIHtcbiAgICBib3R0b206IDI4cHg7XG4gICAgcmlnaHQ6IDI0cHg7XG4gICAgYSB7XG4gICAgICAgIHdpZHRoOiA4MXB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIC8vIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICAgICAgQGluY2x1ZGUgYWJvdmUoJHNjcmVlbi14eHMpIHtcbiAgICAgICAgICAgIHdpZHRoOiA5M3B4O1xuICAgICAgICAgICAgLy8gbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgICB9ICAgICAgICBcbiAgICB9ICAgIFxufVxuXG4vL2JvdHRvbSBsZWZ0XG4ubWVudTQge1xuICAgIGJvdHRvbTogMjhweDtcbiAgICBsZWZ0OiAyNHB4O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBhOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAvLyB3aWR0aDogODNweDtcbiAgICAgICAgd2lkdGg6IDczcHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgQGluY2x1ZGUgYWJvdmUoJHNjcmVlbi14eHMpIHtcbiAgICAgICAgICAgIC8vIHdpZHRoOiAxMDZweDtcbiAgICAgICAgICAgIHdpZHRoOiA3NHB4O1xuICAgICAgICB9ICAgICAgICBcbiAgICB9ICAgIFxuICAgIGE6bnRoLW9mLXR5cGUoMikge1xuICAgICAgICAvLyB3aWR0aDogODNweDtcbiAgICAgICAgd2lkdGg6IDU4cHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgQGluY2x1ZGUgYWJvdmUoJHNjcmVlbi14eHMpIHtcbiAgICAgICAgICAgIC8vIHdpZHRoOiAxMDZweDtcbiAgICAgICAgICAgIHdpZHRoOiA3NHB4O1xuICAgICAgICB9ICAgICAgICBcbiAgICB9ICAgICAgICBcbn1cblxuLnN0b3JlLW1lbnUge1xuICAgIC5tZW51MSB7XG4gICAgICAgIGEucmluZ28tc3RvcmUge1xuICAgICAgICAgICAgd2lkdGg6IDIwNnB4O1xuICAgICAgICB9XG4gICAgICAgIGEuc3RvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBiZWxvdygkc2NyZWVuLXh4cykge1xuICAgICAgICAgICAgYS5yaW5nby1zdG9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGEuc3RvcmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA4MXB4O1xuICAgICAgICAgICAgfSAgICAgICAgICAgIFxuICAgICAgICB9ICAgICAgIFxuICAgIH0gICAgXG4gICAgLm1lbnUyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIHdpZHRoOiA4MXB4O1xuICAgICAgICB9XG4gICAgICAgIC5jYXJ0LW51bWJlciBhIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgICAgIC5jbG9zZS1jYXJ0IHtcbiAgICAgICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICAgICAgdG9wOiA2MHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7ICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYmVsb3coJHNjcmVlbi14eHMpIHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA2NXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9ICAgICAgICBcbiAgICB9XG4gICAgLm1lbnU0IHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICB3aWR0aDogMjIwcHg7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYmVsb3coJHNjcmVlbi14eHMpIHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNzNweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSAgICAgICAgIFxuICAgIH0gICAgXG59XG5cbi5zdG9yZS1tZW51ID4gKi5tZW51LWJsYWNrIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4ud29vY29tbWVyY2UtY2FydCwgLndvb2NvbW1lcmNlLWNoZWNrb3V0IHtcbiAgICBcbiAgICAuc3RvcmUtbWVudSB7XG5cbiAgICAgICAgPiAqLm1lbnUtYmxhY2sge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgICAgPiAqOm5vdCgubWVudS1ibGFjaykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICA+IC5tZW51MiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyAgICAgICAgICBcbiAgICAgICAgfSAgICAgICAgXG4gICAgfVxufVxuXG5cblxuXG4gIFxuXG4iLCIvKiBhcHBseSBhIG5hdHVyYWwgYm94IGxheW91dCBtb2RlbCB0byBhbGwgZWxlbWVudHMsIGJ1dCBhbGxvd2luZyBjb21wb25lbnRzIHRvIGNoYW5nZSAqL1xuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IFxuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbmJvZHkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxubWFpbiB7IC8vIHRoaXMgaXMgdGhlIG5vbiBoZWFkZXIvcHJvamVjdCBsaXN0IHBhZ2UgY29udGVudFxuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnBhbiB7XG4gIHotaW5kZXg6IC0xO1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIC5wcm9qZWN0LWltYWdlLXdyYXBwZXIsIC5wYW4taW1hZ2Uge1xuICAgIHBhZGRpbmctcmlnaHQ6IDNweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgfVxuXG4gIGE6aG92ZXIge1xuICAgIFxuICB9XG59XG5cbi5wYWdlLWhvbWUge1xuICAjYmFja2dyb3VuZC1pbWFnZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4gIFxuLnBhbiAucHJvamVjdC1pbWFnZSwgLnBhbiAucGFuLWltYWdlIGltZyB7IC8vIHRoZXNlIHNob3VsZCBiZSBjb25zb2xpZGF0ZWRcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgd2lkdGg6IGF1dG87XG59XG5cblxuXG4ucGFuLnpvb21lZCwgI3Byb2plY3QtaW1hZ2VzLnpvb21lZCB7XG4gIEBleHRlbmQgJWJvZHktY29weTtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuXG4uZW50cnktY29udGVudCB7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4ucGFnZS1hYm91dCB7XG4gIC5wYW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmVudHJ5LWNvbnRlbnQge1xuICBtYXgtd2lkdGg6IDYwMHB4OyAgXG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9ICAgIFxufSBcblxuLy9sZXQgLmZ1bGwtd2lkdGggYmxvY2tzIGJlIGZ1bGwgd2lkdGhcbi5wYWdlLXRlbXBsYXRlOm5vdCgud29vY29tbWVyY2UtcGFnZSkge1xuICAuZW50cnktY29udGVudCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICYgPiAqOm5vdCguZnVsbC13aWR0aCkge1xuICAgICAgbWF4LXdpZHRoOiA2MDBweDsgIFxuICAgIH1cbiAgICAuZnVsbC13aWR0aCB7XG4gICAgICAmLmxlZnQtdGV4dCAud3AtYmxvY2stY29sdW1uOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OyAgXG4gICAgICB9XG4gICAgfVxuICB9IFxufVxuXG4ub3ZlcmZsb3ctaGlkZGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gU2V0IHRoZSBjb250ZW50IHRvIGJlIGEgc2Nyb2xsYWJsZSBjb250YWluZXIgd2l0aGluIHRoZSBmb3VyIGNvcm5lciBtZW51cywgYnV0IG5vdCBvbiB0aGUgaG9tZXBhZ2UsIHByb2plY3QsIG9yIGdhbGxlcnkgcGFnZXNcbmJvZHk6bm90KC5ob21lKTpub3QoLnNpbmdsZS1wcm9qZWN0KTpub3QoLnBhZ2UtZ3JpZCkge1xuICAuc2l0ZS1tYWluIHtcbiAgICBwYWRkaW5nOiAwIDIzcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgdG9wOiAkaGFuZ2xpbmUgKyAyMHB4O1xuICAgIGJvdHRvbTogODBweDtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OjA7IFxuICAgIC8vIG92ZXJmbG93OiBoaWRkZW47XG4gICBcbiAgICBcbiAgICAmLm5vLW92ZXJmbG93IHsgLy8gVGhpcyBpcyBmb3IgdGhlIGZ1bGwgc2NyZWVuIHdoaXRlIGJhY2tncm91bmQgb24gaW1hZ2UgY2xpY2tcbiAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICB9ICAgIFxuICB9XG5cbn1cblxuLy8gb3ZlcnJpZGUgdGhlIGhhbmdsaW5lIG9uIHRoZSBhYm91dCBwYWdlIHNvIHRoZXJlIGlzIGxlc3Mgc3BhY2UgYmV0d2VlbiBsb2dvIGR1cmluZyBzY3JvbGxcbmJvZHkucGFnZS1hYm91dCB7XG4gIC5oZWFkZXItYmFja2dyb3VuZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogNDA7XG4gICAgQGluY2x1ZGUgYmVsb3coJHNjcmVlbi14eHMpIHtcbiAgICAgIGhlaWdodDogODNweDtcbiAgICB9XG4gIH1cbiAgLnNpdGUtbWFpbiB7XG4gICAgdG9wOiAoJGhhbmdsaW5lICsgMjBweCkgIWltcG9ydGFudDtcbiAgICBib3R0b206IDY3cHggIWltcG9ydGFudDtcbiAgICBAaW5jbHVkZSBiZWxvdygkc2NyZWVuLXh4cykge1xuICAgICAgbWFyZ2luLXRvcDogMTZweCAhaW1wb3J0YW50O1xuICAgICAgdG9wOiAoJGhhbmdsaW5lKSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBiZWxvdygkc2NyZWVuLXh4cykge1xuICAucGFnZS10eXBvZ3JhcGh5IHtcbiAgICAud3AtYmxvY2stY29sdW1ucyB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgfVxuICB9IFxufVxuXG5cbi8vIFNUVUZGXG5cbiNiYWNrZ3JvdW5kLWltYWdlLXdyYXBwZXIge1xuICBwb3NpdGlvbjpmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6LTE7ICBcbn1cblxuLnN2Z0JsdXIgeyBcbiAgQGV4dGVuZCAlc3ZnLWJsdXI7XG59XG5cbi5oaWRlU3ZnU29UaGF0SXRTdXBwb3J0c0ZpcmVmb3gge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbn1cblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5oYWxmLXdpZHRoLWltYWdlIHtcbiAgd2lkdGg6IDUwJTtcbn1cblxuXG5cbmJvZHkucGFnZS1hYm91dCB7XG4gIC53cC1ibG9jay1jb2x1bW5zIHtcbiAgICBtYXJnaW4tYm90dG9tOiAuMmVtOyAvLyByZWR1Y2UgdmVydGljYWwgc3BhY2luZyBhZnRlciBjb2x1bW4gYmxvY2tzXG4gICAgJi5pcy1sYXlvdXQtZmxleCB7XG4gICAgICBnYXA6IDFlbTtcbiAgICB9XG4gICAgLy8gTWFrZSBzdGFmZiBwb3J0cmFpdHMgb24gYWJvdXQgcGFnZSBoYWxmIHdpZHRoXG4gICAgZmlndXJlLndwLWJsb2NrLWdhbGxlcnkge1xuICAgICAgQGluY2x1ZGUgYmVsb3coJHNjcmVlbi14eHMpIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIH1cbiAgICAgIFxuICAgIH1cbiAgfVxuICBmaWd1cmUge1xuICAgIG1hcmdpbi10b3A6IDZweDtcbiAgfVxuICBcbiAgLndwLWJsb2NrLWdhbGxlcnkge1xuICAgIC8vIGJvcmRlcjogMXB4IHNvbGlkIHJlZDtcblxuICAgIC53cC1ibG9jay1pbWFnZSB7XG4gICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLy8gVGhpcyBpcyBmb3IgdGhlIGltYWdlIGhvdmVyIHN0dWZmXG4gICAgLy8gLndwLWJsb2NrLWltYWdlOm50aC1vZi10eXBlKDEpIHtcbiAgICAvLyAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgLy8gfSAgICAgIFxuICAgIC8vIC53cC1ibG9jay1pbWFnZTpudGgtb2YtdHlwZSgyKSB7XG4gICAgLy8gICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgLy8gfSAgICBcbiAgICAvLyAmOmhvdmVyIHtcbiAgICAvLyAgIC53cC1ibG9jay1pbWFnZTpudGgtb2YtdHlwZSgxKSB7XG4gICAgLy8gICAgIGRpc3BsYXk6IG5vbmUgO1xuICAgIC8vICAgfSAgICAgIFxuICAgIC8vICAgLndwLWJsb2NrLWltYWdlOm50aC1vZi10eXBlKDIpIHtcbiAgICAvLyAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgLy8gICB9XG4gICAgLy8gfVxuICB9XG5cbiAgJi5hYm91dC1saWdodGJveCB7XG4gICAgei1pbmRleDoxMDA7XG4gICAgLndwLWJsb2NrLWdhbGxlcnkge1xuICAgICAgLndwLWJsb2NrLWltYWdlOm50aC1vZi10eXBlKDEpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfSAgICAgICAgIFxuICAgICAgLndwLWJsb2NrLWltYWdlOm50aC1vZi10eXBlKDIpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgIH0gICAgXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgLndwLWJsb2NrLWltYWdlOm50aC1vZi10eXBlKDEpIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lIDtcbiAgICAgICAgfSAgICAgIFxuICAgICAgICAud3AtYmxvY2staW1hZ2U6bnRoLW9mLXR5cGUoMikge1xuICAgICAgICAgIFxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrIDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gICAgXG4gICAgLnNpdGUgLmVudHJ5LWNvbnRlbnQge1xuICAgICAgZmlsdGVyOiBpbnZlcnQoMTAwJSk7IFxuICAgICAgaW1nIHtcbiAgICAgICAgZmlsdGVyOiBpbnZlcnQoMTAwJSk7IC8vIHRoaXMgdW5kb2VzIHRoZSBmaWx0ZXIgaGFwcGVuaW5nIG9uIHRoZSBlbnRpcmUgcGFnZSBhYm92ZVxuICAgICAgfVxuICAgIH1cbiAgICBuYXYgaW1nIHtcbiAgICAgIGZpbHRlcjogaW52ZXJ0KDEwMCUpOyAgICAgIFxuICAgIH1cbiAgICAjYmFja2dyb3VuZC1pbWFnZS13cmFwcGVyIHtcbiAgICAgICNiYWNrZ3JvdW5kLWltYWdlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH0gXG59XG5cbmJvZHkucGFnZSAuc2l0ZSAjbWNfZW1iZWRfc2hlbGwge1xuICBmb3JtIHtcbiAgICAjbWNfZW1iZWRfc2lnbnVwX3Njcm9sbCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYWxpZ24taXRlbXM6IGVuZDtcbiAgICAgIEBpbmNsdWRlIGJlbG93KCRzY3JlZW4teHhzKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICAgIH0gICAgICBcbiAgICB9XG4gICAgbGFiZWwge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMnB4OyAgICBcbiAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgIGNvbG9yOiBibGFjazsgICAgXG4gICAgfVxuICAgIC5idXR0b24ge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwIDAgMnB4IDA7XG4gICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgICAgY29sb3I6ICRibGFjayAhaW1wb3J0YW50O1xuICAgICAgd2lkdGg6IDE2OXB4O1xuICAgICAgc3ZnOm50aC1vZi10eXBlKDIpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZVxuICAgICAgfVxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgc3ZnOm50aC1vZi10eXBlKDEpIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lXG4gICAgICAgIH1cbiAgICAgICAgc3ZnOm50aC1vZi10eXBlKDIpIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmVcbiAgICAgICAgfSAgICAgICAgXG4gICAgICB9XG4gICAgICBAZXh0ZW5kICViaWctYnV0dG9uOyAgICBcbiAgICAgIEBpbmNsdWRlIGJlbG93KCRzY3JlZW4teHhzKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgd2lkdGg6IDEzN3B4O1xuICAgICAgfSAgICAgICAgIFxuICAgIH1cbiAgICAubWNlX2lubGluZV9lcnJvcjpub3QoLmVtYWlsKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICAjbWNlLXN1Y2Nlc3MtcmVzcG9uc2Uge1xuICAgIG1hcmdpbi10b3A6OHB4O1xuICB9XG59XG5cblxuXG4iLCIucHJvamVjdC1tYWluIHtcbiAgICBtYXJnaW4tdG9wOiAkaGFuZ2xpbmUgKyAyMHB4O1xufVxuXG4ucHJvamVjdC1oZWFkZXIge1xuICAgIG1hcmdpbjogMCAwIDAgMjNweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHdpZHRoOjEwMCU7XG4gICAgJiA+IGRpdiB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuICAgIGEge1xuICAgICAgICBoZWlnaHQ6IDE5cHg7XG4gICAgICAgIEBpbmNsdWRlIGFib3ZlKCRzY3JlZW4teHhzKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIH1cbiAgICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBib3JkZXItYm90dG9tOiAxcHggc29saWQgd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnByb2plY3Qtc3ViLW1lbnUge1xuICAgICAgICByaWdodDogMjRweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB6LWluZGV4OiA1MDA7XG4gICAgICAgIC5saW5rIHtcbiAgICAgICAgICAgIGhlaWdodDogMTlweDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFib3ZlKCRzY3JlZW4teHhzKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgLy8gYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHdoaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGFib3ZlKCRzY3JlZW4teHhzKSB7XG4gICAgICAgICAgICAvLyByaWdodDogODJweDsgICBcbiAgICAgICAgfVxuICAgICAgICAucHJvamVjdC1pbWFnZXMtbGluayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhYm92ZSgkc2NyZWVuLXh4cykge1xuICAgICAgICAgICAgICAgIC8vIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9ICBcbn1cblxuLy8gLnByb2plY3QtY2F0ZWdvcnktbGlzdHMge1xuLy8gICAgIG1hcmdpbjogNjBweCAyM3B4O1xuLy8gICAgIEBpbmNsdWRlIGFib3ZlKCRzY3JlZW4teHhzKSB7XG4vLyAgICAgICBtYXJnaW46IDk0cHggMjNweDtcbi8vICAgICB9ICAgICAgXG4vLyB9XG5cblxuXG4ucHJvamVjdC1pbWFnZS13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xufVxuXG4ucGFuIC5wcm9qZWN0LWltYWdlLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG5cblxuLy8gLmVhc3RlcmVnZyB7XG4vLyAgICAgZGlzcGxheTogbm9uZTtcbi8vICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4vLyAgICAgaGVpZ2h0OiAwO1xuLy8gICAgIHdpZHRoOiA1MHB4O1xuLy8gICAgIHRvcDogLTQwcHg7XG4vLyAgICAgYm90dG9tOiAwdmg7XG4vLyAgICAgYWxpZ24tc2VsZjogZW5kO1xuLy8gICAgIC8vIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vYXNzZXRzL2ltYWdlcy9lYXN0ZXJlZ2ctb3Blbi5zdmcnKTtcbi8vIH1cblxuLy8gLmVhc3RlcmVnZy1tb2RhbCB7XG4vLyAgICAgZGlzcGxheTogbm9uZTtcbi8vIH1cblxuLnByb2plY3QtaW1hZ2VzLWxpc3Qge1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xufVxuICAgIFxuLnByb2plY3QtaW1hZ2VzLWxpc3QgLnByb2plY3QtaW1hZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ucHJvamVjdC10ZXh0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE2MHB4O1xuICAgIGJvdHRvbTogNjBweDtcbiAgICByaWdodDowO1xuICAgIGxlZnQ6IDA7XG4gICAgcGFkZGluZzogNXB4IDIzcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBAaW5jbHVkZSBhYm92ZSgkc2NyZWVuLXh4cykge1xuICAgICAgICB0b3A6IDEzNXB4O1xuICAgICAgICBib3R0b206IDgwcHg7XG4gICAgICAgIGFydGljbGUge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA5MjZweDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICB9XG4gICAgLmVudHJ5LWNvbnRlbnQge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbn1cblxuLnByb2plY3QtdGV4dC1ib3R0b20tbWFyZ2luIHtcbiAgICBib3R0b206IDg1cHg7XG59XG5cblxuLy8gY2F0ZWdvcnkgbGlzdHMgaGlkZGVuIGluIGhlYWRlclxuXG4vLyAuY2F0ZWdvcnktbGlzdCB7XG4vLyAgICAgZGlzcGxheTogbm9uZTtcbi8vICAgICB1bCB7XG4vLyAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbi8vICAgICAgICAgbWFyZ2luOiAwO1xuLy8gICAgICAgICBwYWRkaW5nOiAwO1xuLy8gICAgIH1cbi8vIH1cblxuYm9keS5zaW5nbGUtcHJvamVjdCAjcGFnZSAucHJvamVjdC1jYXRlZ29yaWVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgYSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLjZlbTtcbiAgICAgICAgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246IGZyb20tZm9udDtcbiAgICAgICAgLy8gdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAuNXB4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgIFxuICAgICAgICBmb250LXNpemU6IC44ZW07ICAgICAgICAgIFxuICAgICAgICAvLyB3b3JkLXNwYWNpbmc6IC0zcHg7ICBcbiAgICAgICAgaGVpZ2h0OiAxOXB4OyAgXG4gICAgICAgIEBpbmNsdWRlIGJlbG93KCRzY3JlZW4teHhzKSB7ICAgICBcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmVhc3RlcmVnZy1vcGVuLWJ1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMjBweDtcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgLy8gZGlzcGxheTogbm9uZTtcbiAgICAvLyBAaW5jbHVkZSBhYm92ZSgkc2NyZWVuLXh4cykge1xuICAgIC8vICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAvLyAgICAgYm90dG9tOiA1MHB4O1xuICAgIC8vICAgICByaWdodDogNTBweDtcbiAgICAvLyAgICAgbGVmdDogYXV0bzsgICAgXG4gICAgLy8gfSAgICBcbn1cblxuZGl2Om5vdCgucHJvamVjdC1pbWFnZXMtbGlzdCkgPiAgLnByb2plY3QtaW1hZ2Utd3JhcHBlciA+IC5lYXN0ZXJlZ2ctb3Blbi1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm90dG9tOiA2MHB4O1xuICAgICAgICByaWdodDogNTBweDtcbiAgICAgICAgbGVmdDogYXV0bzsgIFxuICAgIH1cblxuXG4uZWFzdGVyZWdnLWNsb3NlLWJ1dHRvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDgwMDA7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXJnaW46IDMwcHggMjNweDtcbiAgICB3aWR0aDozMHB4O1xuICAgIGhlaWdodDozMHB4OyAgICBcblxufVxuXG4uZWFzdGVyZWdnLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLnByb2plY3QtaW1hZ2Uge1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgQGV4dGVuZCAlc3ZnLWJsdXI7XG4gICAgICAgIC8vIHRyYW5zaXRpb246IGFsbCAuM3M7XG4gICAgICAgIG1hcmdpbjogLTVweCAtMTBweCAtMTBweCAtNXB4OyAgICAgIFxuICAgIH1cbn1cblxuLmVhc3RlcmVnZy1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB6LWluZGV4OiAxMDAwMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7ICAgIFxuICAgIG1hcmdpbjogMCAyM3B4O1xuICAgIHRvcDogJGhhbmdsaW5lO1xufVxuXG4uYm9yZGVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZWQ7XG59IiwiLnBhZ2UtZ3JpZCB7XG4gICAgLmdhbGxlcnktd3JhcHBlciB7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDsgICBcbiAgICAgICAgLy8gaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjsgICAgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogM3B4O1xuICAgICAgICBmb250LXNpemU6IC44ZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAucm93IHsgICAgICAgICAgXG4gICAgICAgICAgICBoZWlnaHQ6IDI1JTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgZ2FwOiAzcHg7ICBcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgLy8gd2lkdGg6MjV2aDtcbiAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC5ncmlkLWl0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47ICAgXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7ICAgXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IFxuXG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuZ2FsbGVyeS10aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyAgXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OyAgXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJlbG93KCRzY3JlZW4teHhzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMThweDtcblxuICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgLmdhbGxlcnktdGl0bGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICAgICAgICAgICAgfSAgICAgXG4gICAgICAgICAgICAgICAgICAgIC5ncmlkLWl0ZW0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGV4dGVuZCAlc3ZnLWJsdXItbm8tc2NhbGUtbm8tYmFja2Ryb3A7ICAgICBcbiAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG59IiwiaHRtbCB7XG4gICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTtcbiAgICB0b3VjaC1hY3Rpb246IG5vbmU7XG59XG5cbmJvZHkge1xuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7XG4gICAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4ucGFuIHtcbiAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBub25lO1xuICAgIHRvdWNoLWFjdGlvbjogcGFuLXg7XG4gICAgXG59XG5cbi5zaXRlLW1haW4ge1xuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7XG59XG5cbi5wcm9qZWN0LWltYWdlcy1saXN0IHtcbiAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBub25lO1xuICAgIC8vIG92ZXJzY3JvbGwtYmVoYXZpb3ItYmxvY2s6IG5vbmU7XG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbi5wYWdlLWFib3V0IC5zaXRlLW1haW4ge1xuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG59XG5cbi5nYWxsZXJ5LXdyYXBwZXIge1xuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7XG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teDtcbn1cblxuLnBhbi15IHtcbiAgICB0b3VjaC1hY3Rpb246IHBhbi15ICFpbXBvcnRhbnQ7XG59IiwiYm9keS5wYWdlLWluZGV4IG1haW4jcHJpbWFyeS5zaXRlLW1haW4ge1xuICAgIHBhZGRpbmc6IDAgMTFweDtcbn1cbi5wcm9qZWN0LWxpc3Qge1xuICAgIGxpbmUtaGVpZ2h0OiAxM3B4O1xuICAgIGh5cGhlbnM6IGF1dG87XG4gICAgdGFibGUge1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBcbiAgICAgICAgXG4gICAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIC44KTs7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIGE6bm90KDpvbmx5LWNoaWxkKSB7ICAgICBcbiAgICAgICAgICAgIC8vICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIC8vICAgICAgICAgY29udGVudDogJywgJ1xuICAgICAgICAgICAgLy8gICAgIH0gIFxuICAgICAgICAgICAgLy8gICAgICY6bGFzdC1vZi10eXBlOmFmdGVyIHtcbiAgICAgICAgICAgIC8vICAgICAgICAgY29udGVudDogJydcbiAgICAgICAgICAgIC8vICAgICB9ICAgICAgICAgXG4gICAgICAgICAgICAvLyAgICAgJiArIGEge1xuICAgICAgICAgICAgLy8gICAgICAgICBwYWRkaW5nLXRvcDogNHB4O1xuICAgICAgICAgICAgLy8gICAgIH1cbiAgICAgICAgICAgIC8vIH0gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vICYuZXhwYW5kIHtcbiAgICAgICAgICAgIC8vICAgICAvLyBtYXgtd2lkdGg6IDEwMHB4O1xuICAgICAgICAgICAgLy8gICAgIHAge1xuICAgICAgICAgICAgLy8gICAgICAgICAtd2Via2l0LWh5cGhlbnM6IGF1dG87XG4gICAgICAgICAgICAvLyAgICAgICAgIC1tcy1oeXBoZW5zOiBhdXRvO1xuICAgICAgICAgICAgLy8gICAgICAgICBoeXBoZW5zOiBhdXRvOyAgIFxuICAgICAgICAgICAgLy8gICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgICAgICAvLyAgICAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7ICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIC8vICAgICB9XG4gICAgICAgICAgICAvLyAgICAgYSB7XG4gICAgICAgICAgICAvLyAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgLy8gICAgIH1cbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgIC8vICY6bm90KC5leHBhbmQpIHtcbiAgICAgICAgICAgIC8vICAgICB0ZCwgdGgge1xuICAgICAgICAgICAgLy8gICAgICAgICAvLyBtYXgtd2lkdGg6IDEwMHB4O1xuICAgICAgICAgICAgLy8gICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgLy8gICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIC8vICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIC8vICAgICB9IFxuICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICBcbiAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxNnB4IDAgMTlweCAzMnB4O1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICAgICAgaHlwaGVuczogYXV0bztcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxOXB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMzJweDtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdXJsKFwiLi4vLi4vYXNzZXRzL2ltYWdlcy9jaGV2cm9uLWRvd24uc3ZnXCIpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNHB4O1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi5yZXZlcnNlLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIEZpcnN0IGNlbGwgZ2V0cyBmdXJ0aGVyIGluZGVudGVkIHRvIGFsaWduIHdpdGggY29ybmVyIG1lbnUgaXRlbXNcbiAgICAgICAgdGg6Zmlyc3Qtb2YtdHlwZSwgdGQ6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29sOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAvLyAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTtcbiAgICAgICAgLy8gfVxuICAgICAgICAvLyBjb2w6bnRoLW9mLXR5cGUoMikge1xuICAgICAgICAvLyAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47XG4gICAgICAgIC8vIH0gICBcbiAgICAgICAgLy8gY29sOm50aC1vZi10eXBlKDMpIHtcbiAgICAgICAgLy8gICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgICAgICAvLyB9ICAgICAgICAgICAgICAgIFxuICAgICAgICAvLyBMYXN0IGNlbGxzIGFsaWduIHJpZ2h0XG4gICAgICAgIC8vIHRoOmxhc3Qtb2YtdHlwZSwgdGQ6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgLy8gICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAvLyAgICAgcGFkZGluZy1yaWdodDogMTJweDtcbiAgICAgICAgLy8gICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgLy8gfSAgIFxuICAgICAgICAueWVhciB7XG4gICAgICAgICAgICB3aWR0aDogMTEwcHg7XG4gICAgICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gICAgICAgICAgICAvLyB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIC8vIHdpZHRoOiAxMDBweDtcbiAgICAgICAgfSAgICBcbiAgICAgICAgdGg6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIC8vIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTJweDtcbiAgICAgICAgfVxuICAgICAgICB0ZDpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgLy8gdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICAgICAgICB9ICAgICAgXG4gICAgICAgIEBpbmNsdWRlIGJlbG93KCRzY3JlZW4teHhzKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IC44ZW07XG4gICAgICAgICAgICB0ciB7XG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxM3B4IDAgMTNweCAxNnB4O1xuICAgICAgICAgICAgICAgICAgICAvLyBib3JkZXItbGVmdDogMXB4IHNvbGlkIHdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAxM3B4IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgIC8vIGJvcmRlci1sZWZ0OiAxcHggc29saWQgd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnllYXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA4N3B4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9ICAgICAgICAgICAgICAgXG4gICAgfVxuICAgIFxufVxuXG4jZXhhbXBsZS1lbGVtZW50IHtcbiAgICBib3JkZXI6IDJweCBkYXNoZWQgIzk5OTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHdpZHRoOiA3cmVtO1xuICB9IiwiYm9keSAjcGFnZSAucG9wdXAge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGhlaWdodDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHotaW5kZXg6IDUwO1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICAmLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLnBvcHVwLW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNiwzMiw0NCwuNSkgXG4gIH1cbiAgLnBvcHVwLWNvbnRlbnQge1xuICAgIG1heC13aWR0aDogMzZyZW07XG4gICAgei1pbmRleDogNTA7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgcGFkZGluZzogMWVtO1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LWhlaWdodDogODB2aDtcbiAgICBvdmVyZmxvdzogc2Nyb2xsO1xuICAgIHAge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogZnJvbS1mb250O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7ICAgICAgXG4gICAgfVxuICAgIC5wb3B1cC1jbG9zZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDhweDsgXG4gICAgICByaWdodDogOHB4O1xuICAgIH1cbiAgfVxufSIsIi8vIEFkZGluZyBhIGJvZHkgY2xhc3MgaGVyZSBzaG91bGQgbWFrZSB0aGF0IHBhZ2UgYmxhY2sgYW5kIHdoaXRlIHdpdGggbm8gaG92ZXIvYmcgc3R1ZmZcblxuXG5ib2R5LmJsYWNrLXdoaXRlIHtcbiAgY3Vyc29yOiB1cmwoJy4uLy4uL2Fzc2V0cy9pbWFnZXMvYXJyb3ctdXAtbGVmdF8zLTVfQkxBQ0suc3ZnJyksIGF1dG87XHRcbiAgI2JhY2tncm91bmQtaW1hZ2Utd3JhcHBlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAjcGFnZSwgLnNpdGUge1xuICAgIGEge1xuICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICY6aG92ZXIsICY6YWN0aXZlLCAmOnZpc2l0ZWQge1xuICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICB9IFxuICAgIH0gXG4gICAgLmVudHJ5LWNvbnRlbnQge1xuICAgICAgY29sb3I6IGJsYWNrO1xuICAgIH1cbiAgfVxuXG5cbiAgLm1lbnUge1xuICAgIHN2ZyB7XG4gICAgICBmaWxsOiBibGFjaztcbiAgICB9XG4gICAgLm1lbnU0LCAubWVudTIge1xuICAgICAgY29sb3I6ICRibGFjaztcbiAgICB9XG4gIH1cblxufSIsIi8vIGJvZHkucGFnZS1hYm91dCB7XG4vLyAgIC5lbnRyeS1jb250ZW50IHtcbi8vICAgICBjbGlwLXBhdGg6IGluc2V0KDAgMCAwIDApO1xuXG4vLyAgICAgLmFib3V0LWdhbGxlcnksIC5lbWJsYSB7XG4vLyAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4vLyAgICAgICB0b3A6IDkwcHg7XG4vLyAgICAgICByaWdodDogMDtcbi8vICAgICAgIG1hcmdpbjogMCAzMHB4IDAgMzBweDtcbi8vICAgICAgIGRpc3BsYXk6IGZsZXg7XG4vLyAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuLy8gICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4vLyAgICAgICBnYXA6IDVweDtcbi8vICAgICAgIHRvdWNoLWFjdGlvbjogcGFuLXg7XG4vLyAgICAgICBvdmVyZmxvdzogc2Nyb2xsO1xuLy8gICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTtcbi8vICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcblxuLy8gICAgICAgLy8gJi5ob3Zlci1mb2N1cyB7XG4vLyAgICAgICAvLyAgIG92ZXJmbG93OiBzY3JvbGw7XG4vLyAgICAgICAvLyB9XG4vLyAgICAgICAvLyAuZW1ibGFfX2NvbnRhaW5lciB7XG4vLyAgICAgICAvLyAgIGhlaWdodDogMDtcbi8vICAgICAgIC8vICAgbWluLWhlaWdodDogMTAwJTtcbi8vICAgICAgIC8vICAgd2lkdGg6IGF1dG87XG4vLyAgICAgICAvLyAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50OyAgXG4vLyAgICAgICAvLyB9XG4vLyAgICAgICAvLyAuZW1ibGFfX3NsaWRlIHtcbi8vICAgICAgIC8vICAgaGVpZ2h0OiAwO1xuLy8gICAgICAgLy8gICBtaW4taGVpZ2h0OiAxMDAlO1xuLy8gICAgICAgLy8gICBtaW4td2lkdGg6IDEwMCU7XG4vLyAgICAgICAvLyAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50OyAgICAgICAgXG4vLyAgICAgICAvLyB9XG5cbi8vICAgICAgICYuaGFzLW5lc3RlZC1pbWFnZXMuY29sdW1ucy1kZWZhdWx0IGZpZ3VyZS53cC1ibG9jay1pbWFnZTpub3QoI2luZGl2aWR1YWwtaW1hZ2UpIHtcbi8vICAgICAgICAgaGVpZ2h0OiAwO1xuLy8gICAgICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuLy8gICAgICAgICB3aWR0aDogYXV0bztcbi8vICAgICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4vLyAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4vLyAgICAgICAgIC8vIGltZyB7XG4vLyAgICAgICAgIC8vICAgaGVpZ2h0OiAwO1xuLy8gICAgICAgICAvLyAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4vLyAgICAgICAgIC8vICAgbWluLXdpZHRoOiAxMDAlO1xuLy8gICAgICAgICAvLyAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuLy8gICAgICAgICAvLyB9XG4vLyAgICAgICB9XG5cbi8vICAgICAgICYuaGlkZUdhbGxlcnkge1xuLy8gICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4vLyAgICAgICAgIEBpbmNsdWRlIGJlbG93KCRzY3JlZW4tbWQpIHtcbi8vICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuLy8gICAgICAgICB9XG4vLyAgICAgICB9XG5cbi8vICAgICAgIEBpbmNsdWRlIGJlbG93KCRzY3JlZW4tbWQpIHtcbi8vICAgICAgICAgd2lkdGg6IDEwMCU7XG4vLyAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4vLyAgICAgICAgIG1hcmdpbjogMCAwIDFlbSAwO1xuLy8gICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbi8vICAgICAgICAgLy8gJi5ob3Zlci1mb2N1cyB7XG4vLyAgICAgICAgIC8vICAgb3ZlcmZsb3c6IHNjcm9sbDtcbi8vICAgICAgICAgLy8gfVxuLy8gICAgICAgfVxuLy8gICAgIH1cbi8vICAgfVxuLy8gfVxuXG4uaGlkZUdhbGxlcnkge1xuICBkaXNwbGF5OiBub25lO1xuXG4gIEBpbmNsdWRlIGJlbG93KCRzY3JlZW4tbWQpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG59XG5cbi5lbWJsYSB7XG4gIG92ZXJmbG93OiBoaWRkZW47ICBcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDc1cHg7XG4gIHJpZ2h0OiAwO1xuICBtYXJnaW46IDAgMzBweCAwIDMwcHg7XG4gIC8vIGRpc3BsYXk6IGZsZXg7XG4gIC8vIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIC8vIGZsZXgtd3JhcDogbm93cmFwO1xuICBnYXA6IDVweDtcbiAgLy8gdG91Y2gtYWN0aW9uOiBwYW4teDtcbiAgLy8gb3ZlcmZsb3c6IHNjcm9sbDtcbiAgLy8gb3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTtcbiAgYWxpZ24taXRlbXM6IHN0YXJ0OyAgXG5cbiAgICBAaW5jbHVkZSBiZWxvdygkc2NyZWVuLW1kKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICBtYXJnaW46IDAgMCAxZW0gMDtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9ICBcbn1cblxuLmVtYmxhX19jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgZ2FwOiAxMHB4O1xufVxuXG4uZW1ibGFfX3NsaWRlIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IGF1dG87XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgaW1nIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgJjpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDsgICAgXG4gIH1cbn0iLCIvLyAucGFnZS1zaG9wICNwYWdlIHtcbi8vICAgLmVudHJ5LWNvbnRlbnQge1xuLy8gICAgIG1heC13aWR0aDoxMDAlO1xuLy8gICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMge1xuLy8gICAgICAgZGlzcGxheTogZmxleDtcbi8vICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4vLyAgICAgICAuYnV0dG9uIHtcbi8vICAgICAgICAgQGV4dGVuZCAlYmxhY2stYnV0dG9uO1xuLy8gICAgICAgfVxuLy8gICAgIH1cbi8vICAgfVxuLy8gfVxuXG5ib2R5Om5vdCguaG9tZSk6bm90KC5zaW5nbGUtcHJvamVjdCk6bm90KC5wYWdlLWdyaWQpLndvb2NvbW1lcmNlIC5zaXRlLW1haW4ge1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgcGFkZGluZzogMDtcbiAgei1pbmRleDogLTE7XG59XG5cbi8vIFBhZ2VzIHRvIGhpZGUgZnVsbHNjcmVlbiBiZyBvblxuLndvb2NvbW1lcmNlLXNob3AsIC5wYWdlLWNhcnQge1xuICAjYmFja2dyb3VuZC1pbWFnZS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi53b29jb21tZXJjZS1wcm9kdWN0cy1oZWFkZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ud29vY29tbWVyY2UgI3BhZ2UgdWwucHJvZHVjdHMge1xuICB6LWluZGV4OiAtMTtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgZ2FwOiAzcHg7XG4gIEBpbmNsdWRlIGJlbG93KCRzY3JlZW4tc20pIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIH1cbiAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLnByb2R1Y3Qge1xuICAgIC8vIGJvcmRlcjogMXB4IHNvbGlkIGJsdWU7XG4gICAgLy8gYmFja2dyb3VuZC1jb2xvcjogYmx1ZTtcbiAgICBtYXJnaW46IDA7XG4gICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIFxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgIFxuICAgICY6aG92ZXIge1xuICAgICAgJiA+IC5hdHRhY2htZW50LXdvb2NvbW1lcmNlX3RodW1ibmFpbCAge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdF9fdGl0bGUge1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAxZW07XG4gICAgICB9XG4gICAgfVxuICAgIC53b29jb21tZXJjZS1sb29wLXByb2R1Y3RfX3RpdGxlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICAgIC5wcmljZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAuYXR0YWNobWVudC13b29jb21tZXJjZV90aHVtYm5haWwgeyAvLyBtYWluIHByb2R1Y3QgaW1hZ2VcbiAgICAgIHotaW5kZXg6IDEwO1xuXG4gICAgfVxuICAgIC5wcm9kdWN0LWxpbmsge1xuICAgICAgei1pbmRleDogMTAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIFxuICAgICAgY3Vyc29yOiB1cmwoXCIuLi8uLi9hc3NldHMvaW1hZ2VzL2Fycm93LXVwLWxlZnRfMy01LnN2Z1wiKSwgYXV0bzsgICAgICBcbiAgICB9XG4gICAgLnByb2R1Y3QtYmFja2dyb3VuZCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAvLyB6LWluZGV4OiAtMTBcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzAxL2JnLTAzLnBuZycpO1xuICAgICAgd2lkdGg6MTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBmaWx0ZXI6IGJsdXIoMTBweCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMik7ICAgICAgICBcbiAgICAgIH1cbiAgICAgIC8vICY6YmVmb3JlIHtcbiAgICAgIC8vICAgY29udGVudDogJyAnO1xuICAgICAgLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAvLyAgIGluc2V0OiAwO1xuICAgICAgLy8gICB6LWluZGV4OjU7XG4gICAgICAvLyAgIEBleHRlbmQgJXN2Zy1ibHVyLW5vLXNjYWxlO1xuICAgICAgLy8gfSAgICAgICAgXG4gICBcbiAgICB9XG4gICAgXG4gIH1cbn1cblxuYm9keS53b29jb21tZXJjZS1jYXJ0Om5vdCguaG9tZSk6bm90KC5zaW5nbGUtcHJvamVjdCk6bm90KC5wYWdlLWdyaWQpLCBcbmJvZHkud29vY29tbWVyY2UtY2hlY2tvdXQ6bm90KC5ob21lKTpub3QoLnNpbmdsZS1wcm9qZWN0KTpub3QoLnBhZ2UtZ3JpZCkge1xuICBhLmJ1dHRvbiwgYnV0dG9uLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMjlweDtcbiAgICBAZXh0ZW5kICVjdXJzb3ItYmxhY2s7XG4gICAgQGluY2x1ZGUgYmVsb3coJHNjcmVlbi1zbSkge1xuICAgICAgZm9udC1zaXplOiAyM3B4O1xuICAgIH0gICAgIFxuICB9XG4gIC5lbnRyeS1jb250ZW50IHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiAxMDBweDtcbiAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICB9XG4gIC5zaXRlLW1haW4ge1xuICAgIHRvcDogNjdweDtcbiAgfVxuICBoMSB7XG4gICAgbWFyZ2luOiAwIDAgOTBweCAwO1xuICB9XG4gIC5jYXJ0LW51bWJlciB7XG4gICAgY29sb3I6ICRibGFjaztcbiAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgJGJsYWNrO1xuICB9XG4gIHRhYmxlLmNhcnQgdGQuYWN0aW9ucyB7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyAvL2xlZnQgYWxpZ24gdXBkYXRlIGNhcnQgYnV0dG9uIG9uIGNhcnQgZm9ybVxuICAgIC5idXR0b24ge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gIH1cbiAgLndvb2NvbW1lcmNlLWNhcnQtZm9ybSB0ZDpudGgtY2hpbGQoMikge1xuICAgIHdpZHRoOiAzNSU7XG4gIH1cbiAgLmNhcnQtY29sbGF0ZXJhbHMge1xuICAgIHRhYmxlLnNob3BfdGFibGUge1xuICAgICAgdGgge1xuICAgICAgICB3aWR0aDogNjUlO1xuICAgICAgfVxuICAgICAgdGQge1xuICAgICAgd2lkdGg6IDM1JTtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmNhcnRfdG90YWxzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoMiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuICB0YWJsZS5zaG9wX3RhYmxlIHtcbiAgICBib3JkZXI6IDBweCBzb2xpZCB3aGl0ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHRoIHtcbiAgICAgIGJvcmRlcjogMHB4IHNvbGlkIHdoaXRlO1xuICAgICAgcGFkZGluZzogMCAwIDJlbSAwO1xuICAgICAgJjpudGgtb2YtdHlwZSgyKSB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgICB0ciB0ZCB7XG4gICAgICBib3JkZXI6IDBweCBzb2xpZCB3aGl0ZTtcbiAgICAgIHBhZGRpbmc6IDAgMCAyZW0gMDtcbiAgICAgIC8vIHdpZHRoOiAzMCU7XG4gICAgICAmLnByb2R1Y3QtdGh1bWJuYWlsIHtcbiAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICBhIHtcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgfVxuICAgICAgICAvLyBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgICAgLy8gQGluY2x1ZGUgYmVsb3coJHNjcmVlbi1zbSkge1xuICAgICAgICAgIC8vICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgLy8gfSAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXG4gICAgfVxuICAgIC8vIHRyLnNoaXBwaW5nIHtcbiAgICAvLyAgIGRpc3BsYXk6IG5vbmU7XG4gICAgLy8gfVxuICAgIC5idXR0b24ge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGJhY2tncm91bmQ6bm9uZTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgIGlucHV0IHtcbiAgICAgIC8vIGJvcmRlcjogMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIC8vIHBhZGRpbmc6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9ICAgIFxuICAgIC5jb3Vwb24ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbGFiZWwge1xuICAgICAgICB3aWR0aDogNjUlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgIGJ1dHRvbi5idXR0b24ge1xuICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICB3aWR0aDogMzUlO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3R0b206IC00cHg7XG4gICAgICB9XG4gICAgfVxuICAgIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cgYiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJsYWNrIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgICAgfSAgICAgIFxuICAgIH1cbiAgfSAgXG5cbiAgdGFibGUuc2hvcF90YWJsZV9yZXNwb25zaXZlIHtcbiAgICB0Ym9keSB0aCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIC8vIHdpZHRoOiA1MCU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG4gICAgdHIge1xuICAgICAgLy8gd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG4gICAgICAmOm50aC1jaGlsZCgybikgdGQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIH1cbiAgICAgIHRkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgLy8gd2lkdGg6IDUwJTtcbiAgICAgICAgLy8gcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgIC8vIHdpZHRoOiA1MCU7XG4gICAgICAgICAgLy8gdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgICYucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICB3aWR0aDogMzUlO1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgICAgICAgICAvLyBAaW5jbHVkZSBiZWxvdygkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgLy8gICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAvLyB9ICAgICAgICAgIFxuICAgICAgICB9XG4gICAgICAgICYucHJvZHVjdC1zdWJ0b3RhbCB7XG4gICAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50O1xuICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH0gXG4gICAgICAgICY6b25seS1jaGlsZCB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBiZWxvdygkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgLy8gd2lkdGg6IDEwMCU7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICAgICAgXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuc2hpcHBpbmcge1xuICAgICAgICB0ZCB7XG4gICAgICAgICAgQGluY2x1ZGUgYmVsb3coJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgfVxuICAgICAgICB9ICBcbiAgICAgIH0gXG4gICAgfVxuICAgIC5jb3Vwb24ge1xuICAgICAgbGFiZWwge1xuICAgICAgICB3aWR0aDogNjUlO1xuICAgICAgfSAgICBcbiAgICAgIC5idXR0b24ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfSBcblxuICAuY2hlY2tvdXQtYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHdpZHRoOiAzNSU7IFxuICAgIGZsb2F0OiByaWdodDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICBAZXh0ZW5kICViaWctYnV0dG9uO1xuXG4gICAgQGluY2x1ZGUgYmVsb3coJHNjcmVlbi1zbSkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfSAgXG5cbn1cblxuXG4ud29vY29tbWVyY2Utbm90aWNlcy13cmFwcGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAvLyB0b3A6IDYwcHg7XG4gIHJpZ2h0OiAyM3B4O1xuICB3aWR0aDogMzAwcHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIEBpbmNsdWRlIGJlbG93KCRzY3JlZW4tc20pIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAud29vY29tbWVyY2UtbWVzc2FnZSwgLndvb2NvbW1lcmNlLWVycm9yLCAud29vY29tbWVyY2UtaW5mbyB7XG4gICAgei1pbmRleDogMTAwO1xuICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGEuYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfSAgICBcbiAgICBAaW5jbHVkZSBiZWxvdygkc2NyZWVuLXNtKSB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgfVxufSBcblxuLnBhZ2UtY2FydCwgLnBhZ2UtY2hlY2tvdXQge1xuICAud29vY29tbWVyY2Utbm90aWNlcy13cmFwcGVyIHtcbiAgICBjb2xvcjogJGJsYWNrO1xuICAgIC53b29jb21tZXJjZS1tZXNzYWdlLCAud29vY29tbWVyY2UtZXJyb3IsIC53b29jb21tZXJjZS1pbmZvIHtcbiAgICAgIGNvbG9yOiAkYmxhY2s7IFxuICAgIH1cbiAgfVxufVxuXG4ud29vY29tbWVyY2UtZXJyb3IsIC53b29jb21tZXJjZS1pbmZvLCAud29vY29tbWVyY2UtbWVzc2FnZSwud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgdWwucGF5bWVudF9tZXRob2RzIGxpIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZzogMTBweCAwO1xuICBib3JkZXI6IDA7XG4gIEBleHRlbmQgJWJvZHktY29weTtcbiAgJjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmNhcnQtbnVtYmVyIHtcbiAgQGV4dGVuZCAlYm9keS1jb3B5O1xuICBmb250LXNpemU6IDE1cHg7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB3aGl0ZTtcbiAgQGluY2x1ZGUgYmVsb3coJHNjcmVlbi14eHMpIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHdoaXRlO1xuICB9ICBcbn1cblxuLndvb2NvbW1lcmNlLWNoZWNrb3V0IHtcbiAgaW5wdXQge1xuICAgIC8vIGJvcmRlcjogMDtcbiAgICAvLyBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbiAgLndvb2NvbW1lcmNlLWlucHV0LXdyYXBwZXIgdGV4dGFyZWF7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbiAgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgIGIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmxhY2sgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG4gIC53b29jb21tZXJjZS1jaGVja291dC1yZXZpZXctb3JkZXItdGFibGUge1xuICAgIHRoLCB0ZCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICB9XG4gICB0ciAgPiAqICsgKiB7XG4gICAgICB3aWR0aDogMjUlO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7ICAgIFxuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgIFxuICAgIH1cbiAgfVxuICAjcGF5bWVudCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB1bC5wYXltZW50X21ldGhvZHMsIGRpdi5mb3JtLXJvdyB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgICAvLyAjcGxhY2Vfb3JkZXIge1xuICAgIC8vICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAvLyAgIGNvbG9yOiAkYmxhY2s7XG4gICAgLy8gICBwYWRkaW5nOiAxZW0gMDtcbiAgICAvLyAgIGZsb2F0OiByaWdodDtcbiAgICAvLyAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgLy8gICB3aWR0aDogMzUlO1xuICAgIC8vICAgLy8gQGV4dGVuZCAlYmlnLWJ1dHRvbjtcbiAgICAvLyAgIEBpbmNsdWRlIGJlbG93KCRzY3JlZW4tc20pIHtcbiAgICAvLyAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAvLyAgIH0gICAgICBcbiAgICAvLyB9ICAgXG4gICAgZGl2LnBheW1lbnRfYm94IHtcbiAgICAgIC8vIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjE7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFlbSBzb2xpZCAjZjBmMGYxO1xuICAgICAgfVxuICAgIH0gXG4gICAgXG4gIH1cblxuICB1bC5vcmRlcl9kZXRhaWxzIHtcbiAgICBsaSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGJvcmRlci1yaWdodDogMHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDFlbTtcbiAgICAgIHN0cm9uZyB7XG4gICAgICAgIHdpZHRoOiAzMiU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLndvb2NvbW1lcmNlLW9yZGVyLWRldGFpbHMge1xuICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gIH1cbiAgXG5cbn1cblxuLndvb2NvbW1lcmNlLXBhZ2Uge1xuICAucXVhbnRpdHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZDogMDtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZCAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTJweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAucGx1c21pbnVzIHtcbiAgICAgIC8vIGZsb2F0OiByaWdodDtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gICAgICAucGx1cyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICAgIH1cbiAgICB9ICAgIFxuICAgIGlucHV0IHtcbiAgICAgIGJvcmRlcjogMHB4O1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAvLyB3aWR0aDogMmVtO1xuICAgICAgQGV4dGVuZCAlYm9keS1jb3B5O1xuICAgICAgLyogQ2hyb21lLCBTYWZhcmksIEVkZ2UsIE9wZXJhICovXG4gICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICBcbiAgICAgIC8qIEZpcmVmb3ggKi9cbiAgICAgICZbdHlwZT1udW1iZXJdIHtcbiAgICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gICAgICB9ICAgIFxuICAgIH0gICAgXG4gIH1cblxufVxuXG5cblxuIiwiLndvb2NvbW1lcmNlIGZvcm0gLmZvcm0tcm93IHtcbiAgcGFkZGluZzogMHB4O1xufSIsIi53b29jb21tZXJjZS5zaW5nbGUtcHJvZHVjdCAjcGFnZSB7XG4gIC5zaXRlLW1haW4ge1xuICAgIHBhZGRpbmc6IDAgMjNweDtcbiAgICB0b3A6IDY3cHg7XG4gICAgYm90dG9tOiA2N3B4O1xuICB9XG4gIC5wcm9kdWN0LWJhY2tncm91bmQtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIC8vIHotaW5kZXg6MTAwO1xuICAgIC8vIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAvLyBpbnNldDogMDtcbiAgICAvLyAucHJvZHVjdC1iYWNrZ3JvdW5kIHtcbiAgICAvLyAgIGhlaWdodDogYXV0bztcbiAgICAvLyAgIG1heC13aWR0aDogMTAwJTtcbiAgICAvLyAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAvLyAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgLy8gICBmaWx0ZXI6IHVybChcIiNzaGFycEJsdXJcIik7ICBcbiAgICAvLyB9XG4gIH1cblxuICAucHJvZHVjdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICBtYXJnaW46IDUwcHggYXV0byAwIGF1dG87XG4gICAgei1pbmRleDozMDA7XG4gICAgbWF4LXdpZHRoOiA2MCU7XG4gICAgZ2FwOiAyOHB4O1xuICAgIEBpbmNsdWRlIGJlbG93KCRzY3JlZW4tbWQpIHtcbiAgICAgIG1heC13aWR0aDogODUlO1xuICAgIH1cbiAgICBAaW5jbHVkZSBiZWxvdygkc2NyZWVuLXNtKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGdhcDogMDtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLnNsaWRlci1jb250YWluZXIge1xuXG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSAxNHB4KTsgICBcbiAgICAgIEBpbmNsdWRlIGJlbG93KCRzY3JlZW4tc20pIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIC8vIG1heC13aWR0aDogNjAwcHg7XG4gICAgICB9ICAgICAgXG4gICAgICAucHJvZHVjdC1pbWFnZXMge1xuXG4gICAgICAgIC5zbGljay1wcmV2IHtcbiAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB6LWluZGV4OiAxMDA7XG4gICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICBjdXJzb3I6IHVybChcIi4uLy4uL2Fzc2V0cy9pbWFnZXMvYXJyb3ctbGVmdC5zdmdcIiksIGF1dG87XG4gICAgICAgICAgYm9yZGVyOiAwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLnNsaWNrLW5leHQge1xuICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgIGN1cnNvcjogdXJsKFwiLi4vLi4vYXNzZXRzL2ltYWdlcy9hcnJvdy1yaWdodC5zdmdcIiksIGF1dG87XG4gICAgICAgICAgYm9yZGVyOiAwcHg7XG4gICAgICAgIH0gIFxuICAgICAgICAuc2xpY2stZG90cyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwIDVweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICBAZXh0ZW5kICVjdXJzb3I7ICAgICBcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7ICAgICBcbiAgICAgICAgICAgICAgcGFkZGluZzogMDsgXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzVweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IC4yNTtcbiAgICAgICAgICAgICAgICBjb2xvcjogYmxhY2s7ICAgICAgICAgICAgIFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IFxuICAgICAgICAgICAgJi5zbGljay1hY3RpdmUge1xuICAgICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDkwJTtcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9ICAgICAgICAgXG4gICAgICAgIH1cbiAgICAgIH0gICAgICAgICBcbiAgICB9XG4gICAgaDEge1xuICAgICAgQGV4dGVuZCAlYm9keS1jb3B5O1xuICAgICAgbWFyZ2luLXRvcDogMDsgICAgXG4gICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuICAgIC5zdW1tYXJ5IHtcbiAgICAgIG1hcmdpbjogMCAwIDEwMHB4IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMTRweCk7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIEBpbmNsdWRlIGJlbG93KCRzY3JlZW4tc20pIHtcbiAgICAgICAgbWFyZ2luOiAyOHB4IDAgMTAwcHggMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgICAudGl0bGUtcHJpY2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgLmJhY2stdG8tc3RvcmUge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOjJweDtcbiAgICAgICAgICAgIC8vIGJvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5jYXJ0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIC8vIG1hcmdpbi1ib3R0b206IDBweDsgICAgICAgIFxuICAgICAgICAucXVhbnRpdHktd3JhcHBlciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIC8vIG1hcmdpbi10b3A6IC44ZW07XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICBAZXh0ZW5kICViaWctYnV0dG9uO1xuICAgICAgICAgIC8vIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgICAgICBcbiAgICAgICAgfVxuXG4gICAgICB9XG4gICAgfVxuICAgIC8vIC5idXktYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgLy8gICB3aWR0aDogMTAwJTtcbiAgICAvLyAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIC8vICAgbWFyZ2luOiA3MHB4IDAgNDVweCAwO1xuICAgIC8vIH1cbiAgICAucHJvZHVjdF90aXRsZSB7XG4gICAgICBAZXh0ZW5kICVib2R5LWNvcHk7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgfVxuICAgIC5wcmljZSB7XG4gICAgICBAZXh0ZW5kICVib2R5LWNvcHk7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAvLyBtYXJnaW4tdG9wOiA0NXB4O1xuICAgICAgLy8gbWFyZ2luLWJvdHRvbTogLjJlbTtcbiAgICAgIC8vIGZsb2F0OiByaWdodDtcbiAgICB9XG4gICAgcC5zdG9jayB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBmb250LXNpemU6IDFlbTtcbiAgICB9XG4gICAgLnF1YW50aXR5IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgaW5wdXQge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuICAgIH1cblxuXG4gIH1cblxufVxuLy8gICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4vLyAgIGNvbG9yOiB3aGl0ZTtcbi8vICAgLmVudHJ5LWNvbnRlbnQge1xuLy8gICAgIG1heC13aWR0aDogMTAwJTtcbi8vICAgICBjb2xvcjogd2hpdGU7XG4vLyAgICAgYSB7XG4vLyAgICAgICBjb2xvcjogd2hpdGU7XG4vLyAgICAgfVxuLy8gICAgID4gKiB7XG4vLyAgICAgICBjb2xvcjogd2hpdGU7XG4vLyAgICAgfVxuLy8gICB9XG4vLyAgIGRpdi5wcm9kdWN0IHAucHJpY2UsIGRpdi5wcm9kdWN0IHNwYW4ucHJpY2Uge1xuLy8gICAgIGNvbG9yOiB3aGl0ZTtcbi8vICAgfVxuLy8gICB0YWJsZS52YXJpYXRpb25zIHtcbi8vICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuLy8gICB9XG4vLyAgIC5wcm9kdWN0X21ldGEge1xuLy8gICAgIGRpc3BsYXk6IGZsZXg7XG4vLyAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbi8vICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuLy8gICB9XG4vLyAgIGJ1dHRvbi5idXR0b24uYWx0IHtcbi8vICAgICBAZXh0ZW5kICVibGFjay1idXR0b247XG4vLyAgIH1cbi8vICAgLnJlbGF0ZWQucHJvZHVjdHMge1xuLy8gICAgIGRpc3BsYXk6IG5vbmU7XG4vLyAgICAgdWwge1xuLy8gICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbi8vICAgICAgIC5idXR0b24ge1xuLy8gICAgICAgICBAZXh0ZW5kICVibGFjay1idXR0b247XG4vLyAgICAgICB9XG4vLyAgICAgfVxuLy8gICB9XG4vLyAgIC53Yy10YWJzIHtcbi8vICAgICBkaXNwbGF5OiBmbGV4O1xuLy8gICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4vLyAgICAgbGkge1xuLy8gICAgICAgYmFja2dyb3VuZDogbm9uZTtcbi8vICAgICB9XG4vLyAgICAgbGkuYWN0aXZlIHtcbi8vICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyYXk7XG4vLyAgICAgfVxuLy8gICB9XG4vLyAgIC5uYXZpZ2F0aW9uIHtcbi8vICAgICBkaXNwbGF5OiBub25lO1xuLy8gICB9XG4vLyB9IiwiLndvb2NvbW1lcmNlIGRpdi5wcm9kdWN0IGZvcm0uY2FydC52YXJpYXRpb25zX2Zvcm0ge1xuXG4gIC52YXJpYXRpb25zIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICAubGFiZWwge1xuICAgICAgcGFkZGluZy1yaWdodDogMWVtO1xuICAgICAgd2lkdGg6IDMwJTtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC52YWx1ZSB7XG4gICAgICAjc2l6ZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgICAudmFyaWF0aW9uLXJhZGlvcyB7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0JTtcbiAgICAgICAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDs7XG4gICAgICAgICAgQGV4dGVuZCAlY3Vyc29yO1xuICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyAudmFsdWUge1xuICAgIC8vICAgbGluZS1oZWlnaHQ6IDBlbTtcbiAgICAvLyAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgLy8gICAudmFsdWUtaW5uZXItd3JhcHBlciB7XG4gICAgLy8gICAgIHNlbGVjdCB7XG4gICAgLy8gICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAvLyAgICAgICBib3JkZXI6IDA7XG4gICAgLy8gICAgICAgY29sb3I6IHdoaXRlO1xuICAgIC8vICAgICAgIEBleHRlbmQgJWJvZHktY29weTsgIFxuICAgIC8vICAgICAgIEBleHRlbmQgJWN1cnNvcjtcbiAgICAvLyAgICAgICBhcHBlYXJhbmNlOiBub25lOyAgXG4gICAgLy8gICAgICAgbWluLXdpZHRoOjI1JTsgIFxuICAgIC8vICAgICAgIG1hcmdpbi1yaWdodDogMDsgICBcbiAgICAvLyAgICAgICBwYWRkaW5nOiAwOyAgICAgXG4gICAgLy8gICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8vICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAvLyAgICAgfSAgICAgIFxuICAgIC8vICAgICAmOmFmdGVyIHtcbiAgICAvLyAgICAgICBjb250ZW50OiBcInZcIjtcbiAgICAvLyAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgLy8gICAgICAgcmlnaHQ6IDE0cHg7XG4gICAgLy8gICAgICAgYm90dG9tOiAycHg7XG4gICAgLy8gICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAgIFxuICAgIC8vICAgICB9XG4gICAgLy8gICB9XG4gICAgLy8gfVxuICB9XG4gIGEucmVzZXRfdmFyaWF0aW9ucyB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC53b29jb21tZXJjZS12YXJpYXRpb24tcHJpY2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICB9XG59IiwiLnBhZ2UtY2FydCAjcGFnZSB7XG4gIC5hY3Rpb25zIC5idXR0b25bbmFtZT1cInVwZGF0ZV9jYXJ0XCJdLFxuICAuYWN0aW9ucyBpbnB1dFtuYW1lPVwidXBkYXRlX2NhcnRcIl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH0gIFxuICAjY291cG9uX2NvZGUge1xuICAgIHdpZHRoOiAyMDBweDtcbiAgfVxuICAud29vY29tbWVyY2Utc2hpcHBpbmctbWV0aG9kcyB7XG4gICAgbGkge1xuICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgfVxuICB9XG59IiwiLnBhZ2UtY2hlY2tvdXQge1xuXG4gICNwYWdlIHtcblxuXG4gICAgLy9jaGFuZ2UgdGhlIG9yZGVyIG9mIGNoZWNrb3V0IHN0dWZmIFxuICAgIC8vIGZvcm0uY2hlY2tvdXQgI29yZGVyX3JldmlldyB7XG4gICAgLy8gICBib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gICAgLy8gICBkaXNwbGF5OiBmbGV4O1xuICAgIC8vICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgICBcbiAgICAvLyAgICNvcmRlcl9yZXZpZXdfaGVhZGluZyB7XG4gICAgLy8gICAgIG9yZGVyOiAtNVxuICAgIC8vICAgfSAgIFxuICAgIC8vIH1cblxuICAgICNiYWNrZ3JvdW5kLWltYWdlLXdyYXBwZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgIH1cbiAgICAjc2hpcC10by1kaWZmZXJlbnQtYWRkcmVzcyB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogN3B4O1xuICAgIH1cblxuICAgIC53b29jb21tZXJjZS10ZXJtcy1hbmQtY29uZGl0aW9ucy13cmFwcGVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgICB9XG5cbiAgICAjYmlsbGluZ19hZGRyZXNzXzFfZmllbGQsICNzaGlwcGluZ19hZGRyZXNzXzFfZmllbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogLjZlbTtcbiAgICB9XG4gICAgLndvb2NvbW1lcmNlLWVycm9yIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC53b29jb21tZXJjZS12YWxpZGF0ZWQgaW5wdXQuaW5wdXQtdGV4dCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgIH1cbiAgICAud29vY29tbWVyY2UtaW52YWxpZC1yZXF1aXJlZC1maWVsZCB7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJ3JlcXVpcmVkJztcbiAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgaGVpZ2h0OjFlbTtcbiAgICAgICAgcGFkZGluZy10b3A6IDJweDtcbiAgICAgICAgZm9udC1zaXplOiAuOGVtO1xuICAgICAgICBjb2xvcjogI2FhMDAwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBzdHlsZXMuY3NzIHwgaHR0cHM6Ly9yaW5nby1zdHVkaW8uY29tL3dwLWNvbnRlbnQvdGhlbWVzL3JpbmdvL3B1YmxpYy9jc3Mvc3R5bGVzLmNzcz92ZXI9Ni4yICovXG5cbiAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IHtcbiAgICAgIC8qIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjE7ICovXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgXG4gICAgICAmICoge1xuICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgfVxuICAgICAgI3djLXdvb2NvbW1lcmNlX3BheW1lbnRzLWNjLWZvcm0ge1xuICAgICAgICBwYWRkaW5nOiA3cHggMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94OjpiZWZvcmUge1xuICAgICAgYm9yZGVyLWJvdHRvbTogd2hpdGU7XG4gICAgfVxuXG5cblxuICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94LCAud29vY29tbWVyY2UtY2FydCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3gsIC53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3gge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuXG5cblxuICAgICN3Yy13b29jb21tZXJjZV9wYXltZW50cy11cGUtZm9ybSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cblxuICAgICN3Y3BheS11cGUtZWxlbWVudCwgLndjcGF5LXVwZS1lbGVtZW50IHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLy8gIFNISVBQSU5HIE1FVEhPRFNcbiAgICAud29vY29tbWVyY2Utc2hpcHBpbmctdG90YWxzIHtcbiAgICAgIHRkIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgbGkge1xuICAgICAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn0iLCIud29vY29tbWVyY2Uge1xuICAvLyBBZGQgdG8gQ2FydFxuICAmLnNpbmdsZS1wcm9kdWN0ICNwYWdlIC5wcm9kdWN0IC5zdW1tYXJ5IC5jYXJ0IC5idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vYXNzZXRzL2ltYWdlcy93b28tYnV0dG9ucy9hZGQtdG8tY2FydC5zdmcpO1x0XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgaGVpZ2h0OiAyM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vYXNzZXRzL2ltYWdlcy93b28tYnV0dG9ucy9hZGQtdG8tY2FydC1ob3Zlci5zdmcpO1x0XG4gICAgfVxuICAgIEBpbmNsdWRlIGJlbG93KCRzY3JlZW4teHhzKSB7XG4gICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICB3aWR0aDogMTU2cHg7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgfVxuICB9XG59XG5cblxuLy8gIENoZWNrb3V0XG5ib2R5Lndvb2NvbW1lcmNlLWNhcnQ6bm90KC5ob21lKTpub3QoLnNpbmdsZS1wcm9qZWN0KTpub3QoLnBhZ2UtZ3JpZCkgLndjLXByb2NlZWQtdG8tY2hlY2tvdXQgIHtcbiAgd2lkdGg6IDM1JTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBhLmJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9hc3NldHMvaW1hZ2VzL3dvby1idXR0b25zL2NoZWNrb3V0LnN2Zyk7XHRcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyAgXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQ7XG4gICAgd2lkdGg6MTAwJTtcbiAgICBoZWlnaHQ6IDIzcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9hc3NldHMvaW1hZ2VzL3dvby1idXR0b25zL2NoZWNrb3V0LWhvdmVyLnN2Zyk7XHRcbiAgICB9ICBcbiAgICBAaW5jbHVkZSBiZWxvdygkc2NyZWVuLXh4cykge1xuICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgd2lkdGg6IDEzMnB4O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIH0gIFxuICB9XG59XG5cbi8vIHJldHVybiB0byBzaG9wIChlbXB0eSBjYXJ0KVxuYm9keS53b29jb21tZXJjZS1jYXJ0Om5vdCguaG9tZSk6bm90KC5zaW5nbGUtcHJvamVjdCk6bm90KC5wYWdlLWdyaWQpICNwYWdlIC5lbnRyeS1jb250ZW50IC5yZXR1cm4tdG8tc2hvcCBhLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4vLyBQbGFjZSBvcmRlclxuLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50ICNwbGFjZV9vcmRlciB7XG4gIGZvbnQtc2l6ZTogMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL2Fzc2V0cy9pbWFnZXMvd29vLWJ1dHRvbnMvcGxhY2Utb3JkZXIuc3ZnKTtcdFxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB3aWR0aDogMjExcHg7ICAgIFxuICBoZWlnaHQ6IDIzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG1hcmdpbi10b3A6IDFlbTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vYXNzZXRzL2ltYWdlcy93b28tYnV0dG9ucy9wbGFjZS1vcmRlci1ob3Zlci5zdmcpO1x0XG4gIH0gXG4gIEBpbmNsdWRlIGJlbG93KCRzY3JlZW4teHhzKSB7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIHdpZHRoOiAxNjVweDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIH0gICAgXG59IiwiYm9keS53b29jb21tZXJjZS1vcmRlci1yZWNlaXZlZCB7XG4gIHVsLm9yZGVyX2RldGFpbHMgbGkge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHN0cm9uZyB7XG4gICAgICBmb250LXNpemU6IDFlbTtcbiAgICB9XG4gIH1cbiAgdGFibGUud29vY29tbWVyY2UtdGFibGUtLW9yZGVyLWRldGFpbHMge1xuICAgIHRoIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgICB9XG4gICAgdHIud29vY29tbWVyY2UtdGFibGVfX2xpbmUtaXRlbSB0ZDpmaXJzdC1vZi10eXBlIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDFlbSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICB0ZCArIHRkIHtcbiAgICAgIHdpZHRoOiAzMiU7XG4gICAgfVxuICB9XG59Il19 */
