@charset "UTF-8";
/* ================ 
MIXINS & FUNCTIONS 
=========== */
/*============== 
VARS 
================*/
/*===================
BUTTONS
====================*/
/*===================
RADIUS
====================*/
/*===================
FONT FAMILIES
====================*/
/*===================
FONT SIZES
====================*/
/*===================
FONT WEIGHTS
====================*/
/*===================
LETTER SPACING
====================*/
/*===================
BORDER SIZES
====================*/
/*===================
GUTTERS & PADDINGS SIZES
====================*/
/*=======
GRID
======*/
/*========
Z-INDEX
========*/
/*===================
COLUMN SIZES
====================*/
/*===================
Widths
====================*/
/*===================
Root custom props
====================*/
:root {
  --header-height: 4.7222222222rem;
  --section-space: 1.3333333333rem;
}
@media (min-width: 768px) {
  :root {
    --header-height: 5.3333333333rem;
    --section-space: 2.6666666667rem;
  }
}
@media (min-width: 1150px) {
  :root {
    --header-height: 11.2222222222rem;
  }
}

@font-face {
  font-family: "FONT-NAME";
  font-style: "normal";
  font-weight: "400";
  src: url("/assets/fonts/NAME.woff2") format("woff2"), url("/assets/fonts/NAME.woff") format("woff");
  font-display: swap;
}
/*======CSS VARS=======*/
:root {
  --main-bg-color: #f6f2eb;
  --main-body-color: #3c3c3c;
  --red-color:#780000;
  --main-font-family: Forum, sans-serif;
}

img {
  max-width: 100%;
  height: auto;
}

body.navigation--open {
  overflow: hidden;
  padding-right: 15px; /* Adjust for scrollbar width (usually 15–17px) */
}

/*FOCUS*/
/* 1) Baseline for everything that can be focused */
:where(a, button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus {
  outline: none; /* only because we add a replacement below */
}

/* 2) Show the ring when it matters (keyboard, etc.) */
:where(a, button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: 1px solid #780000;
  outline-offset: 2px;
}

/* 3) Fallback for browsers that don’t support :focus-visible */
@supports not selector(:focus-visible) {
  :where(a, button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus {
    outline: 1px solid #780000;
    outline-offset: 2px;
  }
}
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

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

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

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

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

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

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

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

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

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

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

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/*Basic Reset of styles*/
/*** box sizing border-box for all elements ***/
*,
*::before,
*::after {
  box-sizing: border-box;
}

a {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

button {
  background-color: transparent;
  color: inherit;
  border-width: 0;
  padding: 0;
  cursor: pointer;
}

figure {
  margin: 0;
}

input::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}

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

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
}

p {
  margin: 0;
}

cite {
  font-style: normal;
}

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

html {
  line-height: 1.3;
  font-weight: 400;
  font-family: "Forum", sans-serif;
  font-size: 18px;
}

body {
  color: #3c3c3c;
  letter-spacing: 0.0722222222em;
}
p {
  margin-bottom: 0.8888888889rem;
}
img + p {
  margin-top: 0.8888888889rem;
}

.u-heading-font-styles {
  text-transform: uppercase;
  letter-spacing: 0.3em;
}

.u-titlecase-font-styles {
  text-transform: capitalize;
  letter-spacing: 0.0722222222em;
}

.u-body-font-styles {
  letter-spacing: 0.0722222222em;
}

h1, h2, h3, .u-h1, .u-h2, .u-h3 {
  font-family: "Forum", sans-serif;
  line-height: 1.1;
  font-weight: 400;
  margin-bottom: 0.8888888889rem;
  text-transform: uppercase;
  letter-spacing: 0.3em;
}

h4, h5, .u-h4, .u-h5 {
  margin-bottom: 0.8888888889rem;
}

h2, h3, h4, h5, .u-h2, .u-h3, .u-h4, .u-h5 {
  margin-top: 0.8888888889rem;
  font-weight: 400;
}
.l-content p + h2:not([class]), .l-content p + h3:not([class]), .l-content p + h4:not([class]), .l-content p + h5:not([class]), .l-content p + .u-h2:not([class]), .l-content p + .u-h3:not([class]), .l-content p + .u-h4:not([class]), .l-content p + .u-h5:not([class]) {
  margin-top: 2.6666666667rem;
  margin-bottom: 1.3333333333rem;
}

h1, .u-h1 {
  font-size: 1.3333333333rem;
}
@media (min-width: 1150px) {
  h1, .u-h1 {
    font-size: 1.5555555556rem;
  }
}

h2, .u-h2 {
  font-size: 1.1111111111rem;
}
@media (min-width: 768px) {
  h2, .u-h2 {
    font-size: 1.4444444444rem;
  }
}
.l-grid h2, .l-grid .u-h2 {
  color: #780000;
}

h3, .u-h3 {
  font-size: 1.1111111111rem;
}

h4, .u-h4 {
  font-size: 1rem;
  line-height: 1.5;
  color: #780000;
  font-weight: normal;
}

h5, .u-h5 {
  line-height: 1.5;
}

/*LINKS*/
a {
  text-decoration: none;
  color: #780000;
}
a:hover {
  text-decoration: underline;
  background-size: 0% 2px;
}

.content-header__intro {
  font-size: 1rem;
}
main ul, main ol {
  margin: 1.3333333333rem 0;
}
main ul li, main ol li {
  margin: 0 0 10px 30px;
  padding-left: 5px;
}
@media (min-width: 768px) {
  main ul li, main ol li {
    margin-left: 40px;
  }
}
main ul {
  list-style-type: disc;
}
main ol {
  list-style-type: decimal;
}

/*====
tag order specific styles
=====*/
h2 + h3 {
  margin-top: 2.6666666667rem;
}

ul + h3, p + h3 {
  margin-top: 2.6666666667rem;
}

/*====================
COLOURS
====================*/
.u-bg-color__1 {
  background-color: #3c3c3c !important;
}
.u-bg-color__1--75 {
  background-color: rgb(108.75, 108.75, 108.75) !important;
}
.u-bg-color__1--50 {
  background-color: rgb(157.5, 157.5, 157.5) !important;
}
.u-bg-color__1--25 {
  background-color: rgb(206.25, 206.25, 206.25) !important;
}

.u-txt-color__1 {
  color: #3c3c3c !important;
}
.u-txt-color__1--75 {
  color: rgb(108.75, 108.75, 108.75) !important;
}
.u-txt-color__1--50 {
  color: rgb(157.5, 157.5, 157.5) !important;
}
.u-txt-color__1--25 {
  color: rgb(206.25, 206.25, 206.25) !important;
}

.u-brd-color__1 {
  border: solid 2px #3c3c3c 2px !important;
}
.u-brd-color__1--top {
  border-style: solid;
  border-color: #3c3c3c;
  border-width: 2px 0 0 0 !important;
}
.u-brd-color__1--btm {
  border-style: solid;
  border-color: #3c3c3c;
  border-width: 0 0 2px 0 !important;
}
.u-brd-color__1--right {
  border-style: solid;
  border-color: #3c3c3c;
  border-width: 0 2px 0 0 !important;
}
.u-brd-color__1--left {
  border-style: solid;
  border-color: #3c3c3c;
  border-width: 0 0 0 2px !important;
}
.u-brd-color__1--top-btm {
  border-style: solid;
  border-color: #3c3c3c;
  border-width: 2px 0 2px 0 !important;
}
.u-brd-color__1--left-right {
  border-style: solid;
  border-color: #3c3c3c;
  border-width: 0 2px 0 2px !important;
}

.u-bg-color__2 {
  background-color: #780000 !important;
}
.u-bg-color__2--75 {
  background-color: rgb(217.5, 0, 0) !important;
}
.u-bg-color__2--50 {
  background-color: #ff3c3c !important;
}
.u-bg-color__2--25 {
  background-color: rgb(255, 157.5, 157.5) !important;
}

.u-txt-color__2 {
  color: #780000 !important;
}
.u-txt-color__2--75 {
  color: rgb(217.5, 0, 0) !important;
}
.u-txt-color__2--50 {
  color: #ff3c3c !important;
}
.u-txt-color__2--25 {
  color: rgb(255, 157.5, 157.5) !important;
}

.u-brd-color__2 {
  border: solid 2px #780000 2px !important;
}
.u-brd-color__2--top {
  border-style: solid;
  border-color: #780000;
  border-width: 2px 0 0 0 !important;
}
.u-brd-color__2--btm {
  border-style: solid;
  border-color: #780000;
  border-width: 0 0 2px 0 !important;
}
.u-brd-color__2--right {
  border-style: solid;
  border-color: #780000;
  border-width: 0 2px 0 0 !important;
}
.u-brd-color__2--left {
  border-style: solid;
  border-color: #780000;
  border-width: 0 0 0 2px !important;
}
.u-brd-color__2--top-btm {
  border-style: solid;
  border-color: #780000;
  border-width: 2px 0 2px 0 !important;
}
.u-brd-color__2--left-right {
  border-style: solid;
  border-color: #780000;
  border-width: 0 2px 0 2px !important;
}

.u-bg-color__3 {
  background-color: #dcd5c5 !important;
}
.u-bg-color__3--75 {
  background-color: rgb(228.75, 223.5, 211.5) !important;
}
.u-bg-color__3--50 {
  background-color: rgb(237.5, 234, 226) !important;
}
.u-bg-color__3--25 {
  background-color: rgb(246.25, 244.5, 240.5) !important;
}

.u-txt-color__3 {
  color: #dcd5c5 !important;
}
.u-txt-color__3--75 {
  color: rgb(228.75, 223.5, 211.5) !important;
}
.u-txt-color__3--50 {
  color: rgb(237.5, 234, 226) !important;
}
.u-txt-color__3--25 {
  color: rgb(246.25, 244.5, 240.5) !important;
}

.u-brd-color__3 {
  border: solid 2px #dcd5c5 2px !important;
}
.u-brd-color__3--top {
  border-style: solid;
  border-color: #dcd5c5;
  border-width: 2px 0 0 0 !important;
}
.u-brd-color__3--btm {
  border-style: solid;
  border-color: #dcd5c5;
  border-width: 0 0 2px 0 !important;
}
.u-brd-color__3--right {
  border-style: solid;
  border-color: #dcd5c5;
  border-width: 0 2px 0 0 !important;
}
.u-brd-color__3--left {
  border-style: solid;
  border-color: #dcd5c5;
  border-width: 0 0 0 2px !important;
}
.u-brd-color__3--top-btm {
  border-style: solid;
  border-color: #dcd5c5;
  border-width: 2px 0 2px 0 !important;
}
.u-brd-color__3--left-right {
  border-style: solid;
  border-color: #dcd5c5;
  border-width: 0 2px 0 2px !important;
}

.u-bg-color__4 {
  background-color: #e9e5dc !important;
}
.u-bg-color__4--75 {
  background-color: rgb(238.5, 235.5, 228.75) !important;
}
.u-bg-color__4--50 {
  background-color: rgb(244, 242, 237.5) !important;
}
.u-bg-color__4--25 {
  background-color: rgb(249.5, 248.5, 246.25) !important;
}

.u-txt-color__4 {
  color: #e9e5dc !important;
}
.u-txt-color__4--75 {
  color: rgb(238.5, 235.5, 228.75) !important;
}
.u-txt-color__4--50 {
  color: rgb(244, 242, 237.5) !important;
}
.u-txt-color__4--25 {
  color: rgb(249.5, 248.5, 246.25) !important;
}

.u-brd-color__4 {
  border: solid 2px #e9e5dc 2px !important;
}
.u-brd-color__4--top {
  border-style: solid;
  border-color: #e9e5dc;
  border-width: 2px 0 0 0 !important;
}
.u-brd-color__4--btm {
  border-style: solid;
  border-color: #e9e5dc;
  border-width: 0 0 2px 0 !important;
}
.u-brd-color__4--right {
  border-style: solid;
  border-color: #e9e5dc;
  border-width: 0 2px 0 0 !important;
}
.u-brd-color__4--left {
  border-style: solid;
  border-color: #e9e5dc;
  border-width: 0 0 0 2px !important;
}
.u-brd-color__4--top-btm {
  border-style: solid;
  border-color: #e9e5dc;
  border-width: 2px 0 2px 0 !important;
}
.u-brd-color__4--left-right {
  border-style: solid;
  border-color: #e9e5dc;
  border-width: 0 2px 0 2px !important;
}

.u-bg-color__5 {
  background-color: #f6f2eb !important;
}
.u-bg-color__5--75 {
  background-color: rgb(248.25, 245.25, 240) !important;
}
.u-bg-color__5--50 {
  background-color: rgb(250.5, 248.5, 245) !important;
}
.u-bg-color__5--25 {
  background-color: rgb(252.75, 251.75, 250) !important;
}

.u-txt-color__5 {
  color: #f6f2eb !important;
}
.u-txt-color__5--75 {
  color: rgb(248.25, 245.25, 240) !important;
}
.u-txt-color__5--50 {
  color: rgb(250.5, 248.5, 245) !important;
}
.u-txt-color__5--25 {
  color: rgb(252.75, 251.75, 250) !important;
}

.u-brd-color__5 {
  border: solid 2px #f6f2eb 2px !important;
}
.u-brd-color__5--top {
  border-style: solid;
  border-color: #f6f2eb;
  border-width: 2px 0 0 0 !important;
}
.u-brd-color__5--btm {
  border-style: solid;
  border-color: #f6f2eb;
  border-width: 0 0 2px 0 !important;
}
.u-brd-color__5--right {
  border-style: solid;
  border-color: #f6f2eb;
  border-width: 0 2px 0 0 !important;
}
.u-brd-color__5--left {
  border-style: solid;
  border-color: #f6f2eb;
  border-width: 0 0 0 2px !important;
}
.u-brd-color__5--top-btm {
  border-style: solid;
  border-color: #f6f2eb;
  border-width: 2px 0 2px 0 !important;
}
.u-brd-color__5--left-right {
  border-style: solid;
  border-color: #f6f2eb;
  border-width: 0 2px 0 2px !important;
}

.u-bg-color__6 {
  background-color: #f6f2ec !important;
}
.u-bg-color__6--75 {
  background-color: rgb(248.25, 245.25, 240.75) !important;
}
.u-bg-color__6--50 {
  background-color: rgb(250.5, 248.5, 245.5) !important;
}
.u-bg-color__6--25 {
  background-color: rgb(252.75, 251.75, 250.25) !important;
}

.u-txt-color__6 {
  color: #f6f2ec !important;
}
.u-txt-color__6--75 {
  color: rgb(248.25, 245.25, 240.75) !important;
}
.u-txt-color__6--50 {
  color: rgb(250.5, 248.5, 245.5) !important;
}
.u-txt-color__6--25 {
  color: rgb(252.75, 251.75, 250.25) !important;
}

.u-brd-color__6 {
  border: solid 2px #f6f2ec 2px !important;
}
.u-brd-color__6--top {
  border-style: solid;
  border-color: #f6f2ec;
  border-width: 2px 0 0 0 !important;
}
.u-brd-color__6--btm {
  border-style: solid;
  border-color: #f6f2ec;
  border-width: 0 0 2px 0 !important;
}
.u-brd-color__6--right {
  border-style: solid;
  border-color: #f6f2ec;
  border-width: 0 2px 0 0 !important;
}
.u-brd-color__6--left {
  border-style: solid;
  border-color: #f6f2ec;
  border-width: 0 0 0 2px !important;
}
.u-brd-color__6--top-btm {
  border-style: solid;
  border-color: #f6f2ec;
  border-width: 2px 0 2px 0 !important;
}
.u-brd-color__6--left-right {
  border-style: solid;
  border-color: #f6f2ec;
  border-width: 0 2px 0 2px !important;
}

.u-bg-color__white {
  background-color: white !important;
}
.u-bg-color__white--75 {
  background-color: white !important;
}
.u-bg-color__white--50 {
  background-color: white !important;
}
.u-bg-color__white--25 {
  background-color: white !important;
}

.u-txt-color__white {
  color: white !important;
}
.u-txt-color__white--75 {
  color: white !important;
}
.u-txt-color__white--50 {
  color: white !important;
}
.u-txt-color__white--25 {
  color: white !important;
}

.u-brd-color__white {
  border: solid 2px white 2px !important;
}
.u-brd-color__white--top {
  border-style: solid;
  border-color: white;
  border-width: 2px 0 0 0 !important;
}
.u-brd-color__white--btm {
  border-style: solid;
  border-color: white;
  border-width: 0 0 2px 0 !important;
}
.u-brd-color__white--right {
  border-style: solid;
  border-color: white;
  border-width: 0 2px 0 0 !important;
}
.u-brd-color__white--left {
  border-style: solid;
  border-color: white;
  border-width: 0 0 0 2px !important;
}
.u-brd-color__white--top-btm {
  border-style: solid;
  border-color: white;
  border-width: 2px 0 2px 0 !important;
}
.u-brd-color__white--left-right {
  border-style: solid;
  border-color: white;
  border-width: 0 2px 0 2px !important;
}

/*====================
GENERAL FORMATTING
====================*/
.u-error, .form__row-error {
  color: red !important;
}

.u-center {
  text-align: center !important;
}

.u-lowercase {
  text-transform: lowercase !important;
}

.u-uppercase {
  text-transform: uppercase !important;
}

.u-titlecase {
  text-transform: capitalize !important;
}

.u-transform-none {
  text-transform: none !important;
}

.u-rounded-corners {
  border-radius: 40px;
}
.u-rounded-corners--top {
  border-radius: 40px 40px 0 0;
}
.u-rounded-corners--top-left {
  border-top-left-radius: 40px;
}
.u-rounded-corners--top-right {
  border-top-right-radius: 40px;
}
.u-rounded-corners--left {
  border-radius: 40px 0 40px 0;
}
.u-rounded-corners--right {
  border-radius: 0 40px 0 40px;
}
.u-rounded-corners--btm {
  border-radius: 0 0 40px 40px;
}
.u-rounded-corners--btm-left {
  border-bottom-left-radius: 40px;
}
.u-rounded-corners--btm-right {
  border-bottom-right-radius: 40px;
}

.u-cursor--pointer {
  cursor: pointer;
}
.u-cursor--default {
  cursor: default;
}

.u-link-styles {
  text-decoration: none;
}
.u-link-styles:hover {
  color: #780000;
  text-decoration: none;
}

.u-flex {
  display: flex;
}
.u-flex-justify--end {
  justify-content: flex-end;
}
.u-flex-justify--start {
  justify-content: flex-start;
}
.u-flex-justify--center {
  justify-content: center;
}
.u-flex-align--end {
  align-items: flex-end;
}
.u-flex-align--start {
  align-items: flex-end;
}
.u-flex-align--center {
  align-items: center;
}

.u-border {
  border: 1px solid #3c3c3c;
}

hr, .u-hr {
  border: 0;
  border-top: 2px solid #e9e5dc;
  margin: 0.8888888889rem 0;
}
@media (min-width: 768px) {
  hr, .u-hr {
    margin: 1.3333333333rem 0;
  }
}
hr.content-hr, .u-hr.content-hr {
  margin: 3.5555555556rem 0;
}
hr.content-hr--transparent, .u-hr.content-hr--transparent {
  border-color: transparent;
}

/*===========================
HIDE ASSETS BUT RENDER IN DOM
===========================*/
.u-visually-hidden, .form--nolabel .form__label, .form__label--hide, .u-sr {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

/*===========================
HIDE ELEMENTS
===========================*/
.u-hide {
  display: none !important;
}
@media (max-width: 768px) {
  .u-hide--sm {
    display: none !important;
  }
}
@media (medium-width: 768px) {
  .u-hide--med {
    display: none !important;
  }
}

/*===========
SCROLL/OVERFLOW CLASSES
============*/
.u-model--open {
  overflow: hidden;
}

.u-overflow--hidden {
  overflow: hidden;
}
.u-overflow--scroll {
  overflow: scroll;
}
.u-overflow--scroll-y {
  overflow-y: scroll;
}
.u-overflow--scroll-x {
  overflow-x: scroll;
}

/*===========
FONT CLASSES
============*/
.u-txt--small {
  font-size: 0.6666666667rem;
}
.u-txt--large {
  font-size: 0.8888888889rem;
}

/*====================
tooltip styles
====================*/
.tooltip {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  width: 20px;
  height: 20px;
  right: 0px;
  top: 0px;
  position: absolute;
}
.tooltip .a-icon__svg {
  width: 20px;
  height: 20px;
}
.tooltip__wrap {
  position: relative;
  padding-right: 22px;
}

/*====================
Paddings
====================*/
.u-no-pad {
  padding: 0 !important;
}
.u-no-pad--top {
  padding-top: 0 !important;
}
.u-no-pad--bottom {
  padding-bottom: 0 !important;
}
.u-no-pad--right {
  padding-right: 0 !important;
}
.u-no-pad--left {
  padding-left: 0 !important;
}

/*====================
Video
====================*/
.u-video {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 */
  height: 0;
  overflow: hidden;
}
.u-video iframe, .u-video embed, .u-video object {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/*======
AJAX LOADER
=======*/
.u-loader {
  background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200"><rect fill="%23780000" stroke="%23780000" stroke-width="15" width="30" height="30" x="25" y="85"><animate attributeName="opacity" calcMode="spline" dur="2" values="1;0;1;" keySplines=".5 0 .5 1;.5 0 .5 1" repeatCount="indefinite" begin="-.4"></animate></rect><rect fill="%23780000" stroke="%23780000" stroke-width="15" width="30" height="30" x="85" y="85"><animate attributeName="opacity" calcMode="spline" dur="2" values="1;0;1;" keySplines=".5 0 .5 1;.5 0 .5 1" repeatCount="indefinite" begin="-.2"></animate></rect><rect fill="%23780000" stroke="%23780000" stroke-width="15" width="30" height="30" x="145" y="85"><animate attributeName="opacity" calcMode="spline" dur="2" values="1;0;1;" keySplines=".5 0 .5 1;.5 0 .5 1" repeatCount="indefinite" begin="0"></animate></rect></svg>') no-repeat center;
  min-height: 300px;
  background-size: 100px;
}
.u-loader--overlay {
  z-index: 2;
  height: 100%;
  width: 100%;
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.2);
}

/*====================
COLLAPSABLE TOGGLE
====================*/
.u-collapsable-toggle {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  top: 0;
  left: 0;
}
.u-collapsable-toggle__content {
  display: none;
}
.u-collapsable-toggle:checked + .u-collapsable-toggle__title + .u-collapsable-toggle__content {
  display: block;
}

.l-grid {
  display: grid;
  gap: 1.3333333333rem;
  grid-template-columns: minmax(0, 1fr);
  margin: 1.3333333333rem 0;
}
.l-container__inner > .l-grid:first-child, .l-content > .l-grid:first-child {
  margin-top: 0;
}
.l-grid--no-margin {
  margin: 0;
}
@media (min-width: 1000px) {
  .l-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
}
.l-grid__col--content {
  padding: 1.3333333333rem;
}
@media (min-width: 768px) {
  .l-grid__col--content {
    padding: 2.6666666667rem 3.5555555556rem;
  }
}
@media (min-width: 1000px) {
  .l-grid--3 {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
  }
}
.l-grid--4 {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
@media (min-width: 768px) {
  .l-grid--4 {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
  }
}
@media (min-width: 1000px) {
  .l-grid--4 {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
  }
}
.l-grid--card-img {
  grid-template-columns: minmax(0, 1fr);
  margin-top: 0;
  padding: 1.3333333333rem 0;
}
@media (min-width: 768px) {
  .l-grid--card-img {
    padding: 2.6666666667rem 0;
  }
}
@media (min-width: 768px) {
  .l-grid--card-img {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
}
@media (min-width: 1150px) {
  .l-grid--card-img {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
  }
}
@media (min-width: 768px) {
  .l-grid--50\/50 {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
}
@media (min-width: 768px) {
  .l-grid--75\/25 {
    grid-template-columns: minmax(0, 1fr) minmax(400px, 400px);
  }
}
@media (min-width: 768px) {
  .l-grid--25\/75 {
    grid-template-columns: minmax(400px, 400px) minmax(0, 1fr);
  }
}

.l-site__wrapper {
  min-height: 100vh;
  display: grid;
  grid-template-rows: auto 1fr auto;
}

.l-container {
  padding: 0.8888888889rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 100vw;
}
.l-container--main, .l-container--breadcrumbs {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
@media (min-width: 768px) {
  .l-container {
    padding: 1.3333333333rem;
  }
}
.l-container__inner {
  width: 100%;
  max-width: 1280px;
}
@media (min-width: 768px) {
  .l-container.backtotop {
    padding-left: 0;
    display: flex;
  }
}

.l-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  padding-top: var(--section-space);
  padding-bottom: var(--section-space);
}
.l-section > *:first-child, .l-section > .l-section__inner > *:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
.l-section > *:last-child, .l-section > .l-section__inner > *:last-child {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
.l-section__inner {
  width: 100%;
  max-width: 1800px;
}
.l-section__inner--contained {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  max-width: 1280px;
}
.l-section--bg {
  background-color: #f6f2eb;
}
.l-section--bg + .l-section--bg {
  padding-top: 0;
}
.l-section:not(.l-section--bg) + .l-section:not(.l-section--bg):not(.l-section--bg) {
  padding-top: 0;
}
.l-section:has(> .l-section__inner > .card--wide:first-child) {
  padding-top: 0;
}

.l-section22 {
  margin-top: 3.5555555556rem;
}
.l-section--bg + .l-section22 {
  margin-top: 0;
}
.l-section22--no-margin, .l-section22--bg + .l-section22--bg {
  margin-top: 0 !important;
}
.l-site__main .l-section22:first-child {
  margin-top: 0;
}
.l-section22--bg {
  background-color: #f6f2eb;
  padding-bottom: 3.5555555556rem;
}
.l-section22--bg .l-section__inner:not(:has(> :first-child.card)) {
  padding-top: 1.3333333333rem;
}
@media (min-width: 768px) {
  .l-section22--bg .l-section__inner:not(:has(> :first-child.card)) {
    padding-top: 2.6666666667rem;
  }
}
.l-section22--bg-white {
  background-color: #ffffff;
}
.l-section22__inner {
  margin-left: auto;
  margin-right: auto;
  max-width: 1900px;
}
.l-section22__inner h2:first-child {
  margin-top: 0;
}
.l-section22__inner > *:last-child {
  margin-bottom: 0;
}
@media (min-width: 768px) {
  .l-section22__inner {
    padding: 0 1.3333333333rem;
  }
}
.l-section22__inner--no-pad {
  padding: 0 !important;
}
.l-section22__inner--no-pad > *:not(.card--wide) {
  margin-left: 2.6666666667rem;
  margin-right: 2.6666666667rem;
}
.l-section22__inner--full-bleed {
  max-width: 100%;
}
.l-section22__inner--contained {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  max-width: 1280px;
}

.l-content {
  padding: 2.6666666667rem 0;
}
.l-content + .l-content {
  padding-top: 0;
}
.l-content img {
  display: block;
  width: 100%;
  max-width: 100%;
}
.l-content--contained {
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
.l-content:first-child {
  padding-top: 0;
}

.l-section__home-last {
  display: flex;
  flex-direction: column;
}
.l-section__home-last .home__tiles {
  order: 2;
}
@media (min-width: 768px) {
  .l-section__home-last .home__tiles {
    order: 2;
    margin-top: 1.3333333333rem;
  }
}

.a-icon__svg {
  height: 16px;
  width: 16px;
  fill: currentColor;
}
.a-icon__svg--x1-5 {
  height: 24px;
  width: 24px;
}
.a-icon__svg--x2 {
  height: 32px;
  width: 32px;
}
.a-icon__svg--x2-5 {
  height: 40px;
  width: 40px;
}
.a-icon__svg--x3 {
  height: 48px;
  width: 48px;
}
.a-icon__svg--x4 {
  height: 64px;
  width: 64px;
}
.a-icon__svg--x5 {
  height: 80px;
  width: 80px;
}

.logo {
  display: none;
  width: 100%;
  max-width: 100px;
}
.logo--sm {
  display: block;
}
@media (min-width: 400px) {
  .logo {
    max-width: 100px;
  }
}
@media (min-width: 768px) {
  .logo {
    display: block;
    max-width: 390px;
    min-width: 390px;
  }
  .logo--sm {
    display: none;
  }
}
.header {
  border-bottom: 2px solid #e9e5dc;
  z-index: 900;
}
.header__logout .a-icon__svg {
  width: 29px !important;
}
.search--open .header {
  background-color: #dcd5c5;
}
@media (min-width: 1150px) {
  .search--open .header {
    background-color: transparent;
  }
}
.is-sticky .header {
  position: fixed !important;
  background-color: #ffffff;
  overflow: visible;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 900;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}
@media (min-width: 1150px) {
  .is-sticky .header .header__inner {
    display: none;
  }
}
.header.l-container {
  padding: 0;
  position: relative;
}
@media (min-width: 1150px) {
  .header.l-container {
    padding: 1.3333333333rem 1.3333333333rem 0 1.3333333333rem;
  }
}
.header__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  padding: 0.8888888889rem;
  z-index: 2;
}
.navigation--open .header__inner {
  background-color: #dcd5c5;
}
@media (min-width: 1150px) {
  .navigation--open .header__inner {
    background-color: transparent;
  }
}
@media (min-width: 1150px) {
  .header__inner {
    padding: 0.8888888889rem 0;
  }
}
@media (min-width: 1150px) {
  .header__inner {
    position: relative;
  }
}
.header__account-link {
  display: flex;
  align-items: center;
  gap: 5px;
}
.header__account-link:hover {
  text-decoration: none !important;
}
.header__account-link .header__account-text {
  opacity: 0;
  transition: opacity 0.3s ease;
}
.header__account-link:hover {
  color: #780000;
}
.header__account-link:hover .header__account-text {
  text-decoration: none;
  opacity: 1;
  color: #780000;
}
.header__icons {
  color: #3c3c3c;
}
.header__icons:hover {
  color: #780000;
}
.header__icons a {
  color: #3c3c3c;
}
.header__icons a:hover {
  color: #780000;
}
.header__icons .a-icon__svg {
  height: 26px;
  width: 26px;
}
.header__icons--basket {
  position: relative;
  display: flex;
  color: #3c3c3c;
}
.active .header__icons--basket {
  color: #780000;
}
.header__icons--basket .a-icon__svg {
  fill: transparent;
  stroke: currentColor;
  width: 34px;
  height: 30px;
}
.header__left {
  display: flex;
  height: 100%;
  align-items: center;
  gap: 0.8888888889rem;
}
.header .logo__wrap {
  display: flex;
  justify-content: center;
}
.header__basket {
  position: relative;
}
.header__basket-count {
  position: absolute;
  left: 0;
  width: 100%;
  text-align: center;
  top: 8px;
  font-size: 14px;
  line-height: 1;
  margin-top: 4px;
}
@media (min-width: 1150px) {
  .header__basket-count {
    display: inline-block;
  }
}
.header__search-btn {
  display: flex;
  padding: 0;
  border: none;
  background: none;
}
.header__search-btn .a-icon__svg {
  height: 26px;
  width: 26px;
}
.header__account {
  display: flex;
  gap: 15px;
}
.header__utilities {
  display: flex;
  gap: 15px;
  justify-content: flex-end;
  align-items: center;
}
.header__utilities-links {
  display: none;
}
@media (min-width: 1150px) {
  .header__utilities-links {
    display: block;
  }
}

/*==Content Header==*/
/*==Content Header==*/
.content-header {
  padding-top: 2.6666666667rem;
  padding-bottom: 0.4444444444rem;
}
.l-container--breadcrumbs + .content-header {
  padding-top: 0;
}
.content-header[class*=u-bg-color], .content-header[class^=u-bg-color], .content-header.header--content {
  padding-bottom: 2.6666666667rem;
}
.content-header__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  max-width: 41.6666666667rem;
}
.content-header__intro {
  max-width: 40.8333333333rem;
}

#cc-panel {
  padding: 25px !important;
}
#cc-panel #ccc-necessary-title, #cc-panel #ccc-optional-categories {
  text-transform: capitalize;
  letter-spacing: 0.0722222222em;
}

#ccc-notify-title > span {
  font-size: 30px;
  color: #780000 !important;
  font-weight: normal;
  display: flex;
  align-items: center;
}

#cookie_icon {
  margin-right: 10px;
}

#cookie_icon svg {
  height: 40px;
  fill: #780000;
}

#ccc .ccc-module--popup #ccc-content {
  background: #ffffff !important;
  border-radius: 0 !important;
}

body #ccc .ccc-notify-button.ccc-accept-button, body #ccc .ccc-notify-button.ccc-reject-button, body #ccc .ccc-notify-button#ccc-notify-reject, #ccc #ccc-button-holder button#ccc-recommended-settings {
  display: inline-block;
  background-color: #ffffff;
  padding: 0.3333333333rem 1.1111111111rem;
  color: #780000;
  transition: background-color 0.5s, color 0.5s;
  text-transform: uppercase;
  letter-spacing: 0.3em;
  border: 1px solid #780000 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  position: relative;
  background-color: transparent;
  border-left: none;
  border-right: none;
  color: #780000;
  padding: 0.5555555556rem 0.2222222222rem 0.5555555556rem 0.5555555556rem;
  border-radius: 0 !important;
  padding-bottom: 0;
}
body #ccc .ccc-notify-button.ccc-accept-button:hover, a.card:hover body #ccc .ccc-notify-button.ccc-accept-button, body #ccc .ccc-notify-button.ccc-reject-button:hover, a.card:hover body #ccc .ccc-notify-button.ccc-reject-button, body #ccc .ccc-notify-button#ccc-notify-reject:hover, a.card:hover body #ccc .ccc-notify-button#ccc-notify-reject, #ccc #ccc-button-holder button#ccc-recommended-settings:hover, a.card:hover #ccc #ccc-button-holder button#ccc-recommended-settings {
  background-color: transparent;
  color: #780000;
}
body #ccc .ccc-notify-button.ccc-accept-button:hover::after, body #ccc .ccc-notify-button.ccc-accept-button:hover::before, a.card:hover body #ccc .ccc-notify-button.ccc-accept-button::after, a.card:hover body #ccc .ccc-notify-button.ccc-accept-button::before, body #ccc .ccc-notify-button.ccc-reject-button:hover::after, body #ccc .ccc-notify-button.ccc-reject-button:hover::before, a.card:hover body #ccc .ccc-notify-button.ccc-reject-button::after, a.card:hover body #ccc .ccc-notify-button.ccc-reject-button::before, body #ccc .ccc-notify-button#ccc-notify-reject:hover::after, body #ccc .ccc-notify-button#ccc-notify-reject:hover::before, a.card:hover body #ccc .ccc-notify-button#ccc-notify-reject::after, a.card:hover body #ccc .ccc-notify-button#ccc-notify-reject::before, #ccc #ccc-button-holder button#ccc-recommended-settings:hover::after, #ccc #ccc-button-holder button#ccc-recommended-settings:hover::before, a.card:hover #ccc #ccc-button-holder button#ccc-recommended-settings::after, a.card:hover #ccc #ccc-button-holder button#ccc-recommended-settings::before {
  height: 100%;
}
body #ccc .ccc-notify-button.ccc-accept-button::after, body #ccc .ccc-notify-button.ccc-accept-button::before, body #ccc .ccc-notify-button.ccc-reject-button::after, body #ccc .ccc-notify-button.ccc-reject-button::before, body #ccc .ccc-notify-button#ccc-notify-reject::after, body #ccc .ccc-notify-button#ccc-notify-reject::before, #ccc #ccc-button-holder button#ccc-recommended-settings::after, #ccc #ccc-button-holder button#ccc-recommended-settings::before {
  content: "";
  position: absolute;
  width: 1px;
  height: 0;
  background: #780000;
  transition: height 0.3s ease;
}
body #ccc .ccc-notify-button.ccc-accept-button::after, body #ccc .ccc-notify-button.ccc-reject-button::after, body #ccc .ccc-notify-button#ccc-notify-reject::after, #ccc #ccc-button-holder button#ccc-recommended-settings::after {
  top: 0;
  right: 0;
}
body #ccc .ccc-notify-button.ccc-accept-button::before, body #ccc .ccc-notify-button.ccc-reject-button::before, body #ccc .ccc-notify-button#ccc-notify-reject::before, #ccc #ccc-button-holder button#ccc-recommended-settings::before {
  bottom: 0;
  left: 0;
}

@media (min-width: 768px) {
  body #ccc .ccc-notify-button#ccc-notify-reject {
    margin-left: 1.3333333333rem !important;
  }
}

button.ccc-notify-link span {
  color: #780000 !important;
}

button.ccc-notify-link {
  text-decoration: none;
}

.ccc-notify-button span, body #ccc .ccc-notify-button.ccc-accept-button span {
  display: block !important;
}

#ccc-notify-dismiss {
  display: none !important;
}

#ccc, #ccc-title {
  font-family: "Forum", serif !important;
}

#ccc #ccc-notify p {
  font-size: 20px !important;
}

#ccc #ccc-notify {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
}
@media (min-width: 768px) {
  #ccc #ccc-notify {
    padding: 1.3333333333rem !important;
  }
}

#ccc .checkbox-toggle--dark .checkbox-toggle-toggle {
  background-color: #780000 !important;
}

.hamburger {
  position: relative;
  width: 27px;
  height: 43px;
  cursor: pointer;
}
@media (min-width: 1150px) {
  .hamburger {
    display: none;
  }
}
.hamburger .line {
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background: #3c3c3c;
  transition: transform 0.3s ease, opacity 0.3s ease;
  transform-origin: center center;
}
.hamburger .line:nth-child(1) {
  top: 25%;
}
.hamburger .line:nth-child(2) {
  top: 50%;
}
.hamburger .line:nth-child(3) {
  top: 75%;
}

.hamburger--active .line:nth-child(2) {
  opacity: 0;
}
.hamburger--active .line:nth-child(1),
.hamburger--active .line:nth-child(3) {
  top: 50%;
}
.hamburger--active .line:nth-child(1) {
  transform: rotate(45deg);
}
.hamburger--active .line:nth-child(3) {
  transform: rotate(-45deg);
}

@media (min-width: 1150px) {
  #mainNav.is-sticky {
    position: fixed;
    overflow: visible;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  }
}

.navigation__wrapper {
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0%;
  left: 0;
  background-color: #dcd5c5;
  width: 100%;
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.3s ease;
  display: flex;
  justify-content: center;
}
@media (min-width: 1150px) {
  .navigation__wrapper {
    position: static;
    max-height: none !important;
    height: auto;
    background-color: #ffffff;
  }
}
.navigation--open .navigation__wrapper {
  max-height: 100vh;
  max-height: 100dvh;
}
.navigation__inner {
  padding: 6.6666666667rem 0.8888888889rem 0.8888888889rem 0.8888888889rem;
  overflow: auto;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
  max-width: 1280px;
}
@media (min-width: 1150px) {
  .navigation__inner {
    display: block;
    padding: 0;
  }
}
.navigation__items {
  display: flex;
  flex-direction: column;
}
@media (min-width: 1150px) {
  .navigation__items {
    flex-direction: row;
    justify-content: space-between;
  }
}
.navigation__item {
  font-weight: 600;
  color: #3c3c3c;
  text-transform: uppercase;
  letter-spacing: 0.3em;
  position: relative;
}
@media (min-width: 1150px) {
  .navigation__item {
    margin: 1.5555555556rem 0;
  }
}
@media (min-width: 1150px) {
  .navigation__item {
    position: static;
  }
}
.navigation__item--active .navigation__link, .navigation__item:hover .navigation__link {
  color: #780000;
}
.navigation__item > a, .navigation__item > span, .navigation__item > button {
  appearance: none;
  -webkit-appearance: none;
  transition: color 0.5s;
  color: inherit;
  cursor: pointer;
  font-size: 1rem;
  font-family: "Forum", sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.3em;
  font-weight: 400;
  padding: 0.5555555556rem 0;
  text-decoration: none;
  display: flex;
  align-items: center;
}
@media (min-width: 1150px) {
  .navigation__item > a, .navigation__item > span, .navigation__item > button {
    padding: 0.4444444444rem 0;
  }
}
@media (min-width: 1150px) {
  .navigation__item > a, .navigation__item > span, .navigation__item > button {
    padding: 0;
  }
}
.navigation__footer {
  padding-bottom: 0.8888888889rem;
  padding-top: 1.3333333333rem;
  margin-top: 1.3333333333rem;
  border-top: 1px solid #e9e5dc;
}
@media (min-width: 1150px) {
  .navigation__footer {
    display: none;
  }
}
.navigation__footer-list {
  display: flex;
  flex-direction: column;
  gap: 0.4444444444rem;
}
.navigation__footer-item {
  display: flex;
  align-items: center;
  gap: calc(0.4444444444rem - 4px);
  color: #780000;
}
.navigation__footer-item .navigation__footer-item-icon {
  width: 20px;
}
.navigation__footer-link {
  display: flex;
  align-items: center;
  gap: 0.4444444444rem;
}

.megamenu {
  background-color: #dcd5c5;
  justify-content: center;
  pointer-events: none;
  width: 100%;
  padding: 0 2.6666666667rem;
  text-transform: none;
  opacity: 0;
  visibility: hidden;
  display: flex;
  pointer-events: none;
  z-index: 2;
  padding: 0;
  overflow: hidden;
}
@media (min-width: 1150px) {
  .megamenu {
    position: absolute;
    top: 0;
    left: 0;
    transition: transform 0.45s ease, opacity 0.45s ease, visibility 0s linear 0.45s;
    transform: translateX(-110%);
    padding: 2.6666666667rem 1.3333333333rem;
    transform: translateX(0);
    visibility: hidden;
    transition: opacity 0.5s ease-in-out, visibility 0s linear 0.5s;
    top: auto;
    left: 0;
    right: auto;
    margin-top: 1.5555555556rem;
  }
}
.megamenu--active .megamenu {
  pointer-events: auto;
  transition: transform 0.45s ease, opacity 0.45s ease, visibility 0s;
  transform: translateX(0); /* slide into view */
  opacity: 1;
  overflow: auto;
  height: auto;
}
@media (max-width: 1150px) {
  .megamenu--active .megamenu {
    min-height: 100%;
    visibility: visible;
  }
}
@media (min-width: 1150px) {
  .navigation__item--has-megamenu:hover .megamenu, .navigation__item--has-megamenu.megamenu--hover-active .megamenu {
    pointer-events: auto;
    transition: opacity 0.5s ease-in-out, visibility 0s;
    visibility: visible;
    opacity: 1;
    height: auto;
  }
}
.megamenu--active .megamenu__close-button {
  transform: rotate(90deg);
}
@media (min-width: 1150px) {
  .megamenu__close-button {
    display: none;
  }
}
.megamenu__inner {
  width: 100%;
  max-width: 1280px;
  width: 100%;
  display: grid;
  grid-template-columns: 1fr;
  position: relative;
}
@media (min-width: 1150px) {
  .megamenu__inner {
    grid-template-columns: 1fr minmax(37.7777777778rem, 1fr);
  }
}
.megamenu__menu {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}
.megamenu__menu-item {
  margin: 0;
  font-size: 1rem;
  letter-spacing: 0.0722222222em;
}
.megamenu__menu-item a {
  display: inline-block;
  color: #3c3c3c;
  padding: 0.2222222222rem 0;
}
.megamenu__menu-item a:hover {
  color: #780000;
  text-decoration: none;
}
.megamenu__left {
  margin-left: 0.6666666667rem;
}
@media (min-width: 1150px) {
  .megamenu__left {
    margin-left: 0;
  }
}
.megamenu__right {
  margin: 0.6666666667rem;
}
@media (min-width: 1150px) {
  .megamenu__right {
    margin-left: 0;
  }
}
.megamenu__right .l-grid {
  margin: 0;
}
.megamenu .product-card {
  color: #3c3c3c;
}

.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 1.3333333333rem 0 0.8888888889rem 0;
  font-size: 0.7777777778rem;
  letter-spacing: 0.0722222222em;
}
@media (min-width: 400px) {
  .breadcrumbs {
    font-size: 0.8888888889rem;
  }
}
.breadcrumbs li {
  display: flex;
  align-items: center;
  color: #3c3c3c;
  margin: 0;
  padding: 0;
}
.breadcrumbs li:empty {
  display: none;
}
.breadcrumbs li:not(:first-child)::before {
  content: "/";
  margin: 0 0.5em;
  color: #3c3c3c;
}
.breadcrumbs li a {
  text-decoration: none;
  color: inherit;
}
.breadcrumbs li a:hover {
  text-decoration: underline;
}
.breadcrumbs--back .a-icon__svg {
  margin-right: 5px;
}
.footer__row {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.footer__top {
  background-color: #f6f2ec;
  padding: 2.6666666667rem 0;
}
@media (min-width: 1000px) {
  .footer__top {
    padding: 2.6666666667rem 1.3333333333rem 2.6666666667rem 1.3333333333rem;
  }
}
.footer__top .footer__col {
  text-align: center;
}
@media (min-width: 1000px) {
  .footer__top .footer__col {
    text-align: left;
  }
}
.footer__inner {
  width: 100%;
  max-width: 1280px;
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 0.4444444444rem;
  justify-content: space-between;
}
@media (min-width: 1000px) {
  .footer__inner {
    display: flex;
    flex-wrap: wrap;
    gap: 2.6666666667rem;
  }
}
.footer__btm .footer__inner {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  text-align: center;
  gap: 0;
}
.footer__heading {
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.3em;
  padding: 0.4444444444rem 0;
  font-size: 1.1111111111rem;
}
@media (min-width: 1150px) {
  .footer__heading {
    padding: 0.8888888889rem 0;
  }
}
.footer__items {
  display: none;
  background-color: #dcd5c5;
  padding: 0.6666666667rem 0;
}
.footer__heading--active + .footer__items {
  display: block;
}
@media (min-width: 1000px) {
  .footer__items {
    display: block;
    background-color: transparent;
    padding: 1.3333333333rem 0;
  }
}
.footer__items li {
  font-size: 0.9444444444rem;
}
.footer__items a {
  display: block;
  color: #3c3c3c;
  padding: 0.2777777778rem 0;
}
.footer__items a:hover {
  text-decoration: none;
  color: #780000;
}
.footer__btm .footer__socials {
  display: flex;
  flex-direction: column;
  gap: 0.8888888889rem;
  width: 100%;
  justify-content: center;
  margin-bottom: 1.3333333333rem;
}
@media (min-width: 768px) {
  .footer__btm .footer__socials {
    flex-direction: column;
  }
}
@media (min-width: 1150px) {
  .footer__btm .footer__socials {
    display: none;
  }
}
.footer__top .footer__socials {
  display: none;
}
@media (min-width: 1150px) {
  .footer__top .footer__socials {
    display: block;
  }
}
.footer__btm {
  background-color: #ffffff;
  padding: 1.3333333333rem;
}
.footer__btm .footer__socials {
  display: flex;
}
@media (min-width: 1150px) {
  .footer__btm .footer__socials {
    display: none;
  }
}
.footer__legal {
  display: flex;
  gap: 0.8888888889rem;
  flex-direction: column;
}
@media (min-width: 768px) {
  .footer__legal {
    flex-direction: row;
  }
}
.footer__btm-links {
  display: flex;
  justify-content: center;
  width: 100%;
  gap: 0.8888888889rem;
  font-size: 0.8333333333rem;
  flex-direction: column;
}
@media (min-width: 768px) {
  .footer__btm-links {
    flex-direction: row;
  }
}
.footer__btm-links a {
  color: #3c3c3c;
}
.footer__btm-links a:hover {
  text-decoration: none;
  color: #780000;
}
.blockquotes {
  margin: 2.6666666667rem;
}
.blockquotes:last-child {
  margin-bottom: 0;
}
.blockquotes blockquote {
  font-size: 2.7777777778rem;
  text-align: center;
  margin: 0;
}
.blockquotes cite {
  text-align: right;
  width: 100%;
  display: inline-block;
}

.hero__wrap {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 1800px;
}
.hero__wrap .f-carousel__viewport {
  width: 100%;
}
.hero__container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.hero__inner {
  width: 100%;
  max-width: 1800px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.hero__img {
  max-width: 1800px;
  position: relative;
  width: 100%;
}
.hero__img-caption {
  opacity: 0;
  transition: opacity 0.3s ease;
  position: absolute;
  bottom: 0;
  left: 0;
  background: rgba(246, 242, 235, 0.8);
  width: 100%;
  padding: 0.8888888889rem;
}
@media (hover: hover) {
  .hero__img:hover .hero__img-caption {
    opacity: 1;
  }
}
.hero__img--active .hero__img-caption {
  opacity: 1;
}
.hero__img img {
  display: block;
  object-fit: cover;
  object-position: center;
  aspect-ratio: 1/1;
  width: 100%;
}
@media (min-width: 768px) {
  .hero__img img {
    aspect-ratio: auto;
  }
}
.hero__slide {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}
.hero__txt {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1.3333333333rem;
  text-align: center;
  max-width: 41.6666666667rem;
}
.hero__txt h1, .hero__txt h2 {
  font-size: 1.1111111111rem;
  text-transform: uppercase;
  letter-spacing: 0.3em;
}
@media (min-width: 768px) {
  .hero__txt h1, .hero__txt h2 {
    font-size: 1.4444444444rem;
  }
}
@media (min-width: 768px) {
  .hero__txt {
    padding: 2.6666666667rem;
  }
}
.hero-sub {
  display: flex;
  justify-content: center;
}
.hero-sub__img img {
  display: block;
  width: 100%;
}
.hero-sub__inner {
  width: 100%;
  max-width: 1280px;
}
.hero-sub--full-width .hero-sub__inner {
  max-width: none;
}

.hero--video {
  position: relative;
  height: 67vh;
}
.hero--video .hero__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.hero--video .hero__overlay {
  background-color: rgba(0, 0, 0, 0.3);
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}
.hero--video .hero__inner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  padding: 1.3636363636rem;
  /* background: rgba(246, 242, 235, .5); */
  color: white;
}

/*===================
VARIABLES
====================*/
input, textarea, select {
  letter-spacing: 0.0722222222em;
}
input:disabled, textarea:disabled, select:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

input[type=number] {
  text-align: center;
  padding-right: 0; /* remove space reserved for spinner */
}

input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
  display: none;
  -webkit-appearance: textfield;
  margin: 0;
  appearance: textfield;
}

.placeholder, .form__textarea::placeholder, .form__input::placeholder {
  color: #3c3c3c;
  opacity: 1;
}

.form {
  /*===================
  INPUT
  ====================*/
  /*===================
  TEXT AREA
  ====================*/
  /*===================
  SELECT DROPDOWNS
  ====================*/
  /*===================
  CHECKBOXES
  ====================*/
  /*===================
  RADIO
  ====================*/
}
.form__row {
  margin-bottom: 1.1111111111rem;
  display: flex;
  flex-direction: column;
}
.form__row--inline {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.1111111111rem;
}
@media (min-width: 768px) {
  .form__row--inline {
    grid-template-columns: 1fr 1fr;
  }
}
.form__label {
  padding: 0.8888888889rem 0.8888888889rem 0.8888888889rem 0;
}
.form--inline .form__label {
  padding: 0.8888888889rem;
}
.form__text {
  margin: 0.8888888889rem 0 0 0;
}
.form__input {
  padding: 0.8888888889rem;
  border: none;
  width: 100%;
  background-color: #f6f2eb;
  border: 1px solid #f6f2eb;
}
.form--white .form__input {
  background-color: #ffffff;
}
.form__input--wbtn {
  display: flex;
  width: 100%;
}
.form__textarea {
  width: 100%;
  padding: 0.8888888889rem;
  background-color: #f6f2eb;
  border: none;
  min-height: 9.1666666667rem;
}
.form--white .form__textarea {
  background-color: #ffffff;
}
.form__select {
  background-color: #f6f2eb;
  width: 100%;
  position: relative;
  margin-bottom: auto;
}
.form--white .form__select {
  background-color: #ffffff;
}
.form__select-input {
  appearance: none;
  color: #3c3c3c;
  width: 100%;
  border: none;
  background: none;
  padding: 0.8888888889rem;
}
.form__select-input--icon {
  padding-right: 1.7777777778rem;
}
.form__select-icon {
  position: absolute;
  right: 0;
  top: 0;
  height: 100%;
  display: flex;
  align-items: center;
  padding-right: 0.4444444444rem;
  color: #780000;
  pointer-events: none;
}
.form__checkbox {
  display: block;
  margin-right: 5px;
}
.form__checkbox-label {
  display: flex;
}
.form__checkbox-styled {
  display: block;
  position: relative;
  padding-left: calc(25px + 0.8888888889rem);
  cursor: pointer;
  user-select: none;
}
.form__checkbox-styled ~ .form__checkbox-styled {
  margin-top: 0.8888888889rem;
}
.form__checkbox-styled-tick {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  background-color: #f6f2ec;
}
.form__checkbox-styled-tick::after {
  content: "";
  position: absolute;
  display: none;
  left: 9px;
  top: 5px;
  width: 5px;
  height: 10px;
  border: solid #f6f2ec;
  border-width: 0 3px 3px 0;
  transform: rotate(45deg);
}
.form__checkbox-styled input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}
.form__checkbox-styled input ~ .form__checkbox-styled-tick {
  background-color: #dcd5c5;
}
.form__checkbox-styled input:checked ~ .form__checkbox-styled-tick {
  background-color: #780000;
}
.form__checkbox-styled input:checked ~ .form__checkbox-styled-tick::after {
  display: block;
}
.form__radio-styled {
  display: block;
  position: relative;
  padding-left: calc(24px + 0.8888888889rem);
  margin-bottom: 0.8888888889rem;
  cursor: pointer;
  user-select: none;
}
.form__radio-styled-dot {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 24px;
  width: 24px;
  background-color: transparent;
  border-radius: 50%;
  border: 1px solid #3c3c3c;
}
.form__radio-styled-dot::after {
  content: "";
  display: none;
  border-radius: 50%;
  width: 8px;
  height: 8px;
  background-color: #780000;
}
.form__radio-styled input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}
.form__radio-styled input:checked ~ .form__radio-styled-dot {
  border-color: #3c3c3c;
  background-color: transparent;
}
.form__radio-styled input:checked ~ .form__radio-styled-dot::after {
  display: block;
}
.form__inline-btn {
  padding: 0 1.3333333333rem;
  background-color: #f6f2eb;
}
.form__inline-btn svg {
  fill: #780000;
}

.form__toggle {
  display: inline-flex;
  font-size: 0.7777777778rem;
  overflow: hidden;
}
.form__toggle input[type=radio] {
  display: none;
}
.form__toggle input[type=radio]:checked + label {
  border: 1px solid #780000;
}
.form__toggle label {
  padding: 6px 10px;
  cursor: pointer;
  background: #ffffff;
  color: #3c3c3c;
  line-height: 1;
  user-select: none;
  transition: all 0.2s ease;
}

.form-address {
  background-color: #ffffff;
}
.form-address .form__row {
  display: grid;
  grid-template-columns: 16.6666666667rem 1fr;
}
.form-address .form__row.form__row--wide {
  grid-template-columns: 1fr;
}
.form-address .form__row:last-child {
  margin-bottom: 0;
}
/*====CONTACT FORM====*/
.form-contact__icon {
  display: flex;
  justify-self: center;
  justify-content: center;
  align-items: center;
  margin-bottom: 2.6666666667rem;
  color: #780000;
}
.form-contact__wrap {
  padding: 1.3333333333rem;
  border: 2px solid #f6f2eb;
  display: flex;
  justify-content: center;
  width: 100%;
}
@media (min-width: 768px) {
  .form-contact__wrap {
    padding: 2.6666666667rem 2.6666666667rem 1.3333333333rem 2.6666666667rem;
  }
}
.form-contact__inner {
  width: 100%;
  max-width: 66.6666666667rem;
}

:root {
  --hsf-global__font-family: Forum, sans-serif;
  --hsf-global__font-size: 18px;
  --hsf-global__color: #3c3c3c;
  --hsf-background__background-color: transparent;
  --hsf-row__horizontal-spacing: 1.3333333333rem;
  --hsf-button__font-family: Forum, sans-serif;
  --hsf-button__color: #780000;
  --hsf-button__background-color: transparent;
  --hsf-button__border-radius: none;
  --hsf-field-input__background-color: #f6f2eb;
  --hsf-field-input__border-color: #f6f2eb;
  --hsf-field-input__padding: 0.8888888889rem;
  --hsf-field-input__placeholder-color: #3c3c3c;
  --hsf-field-checkbox__background-color: #f6f2eb;
  --hsf-field-checkbox__color: #780000;
}

input[type=checkbox] {
  --hsf-field-input__padding: 10px;
}

.hsfc-Button {
  --hsf-default-button__border-color: #780000;
  --hsf-default-button__border-width:1px 0 1px 0;
  --hsf-default-button__border-style: solid;
  display: inline-block;
  background-color: #ffffff;
  padding: 0.3333333333rem 1.1111111111rem;
  color: #780000;
  transition: background-color 0.5s, color 0.5s;
  text-transform: uppercase;
  letter-spacing: 0.3em;
  margin-right: auto !important;
  position: relative;
  background-color: transparent;
  border-left: none;
  border-right: none;
  color: #780000;
  padding: 0.5555555556rem 0.2222222222rem 0.5555555556rem 0.5555555556rem;
}
.hsfc-Button:hover {
  transform: translateY(0px) !important;
}
.hsfc-Button:hover, a.card:hover .hsfc-Button {
  background-color: transparent;
  color: #780000;
}
.hsfc-Button:hover::after, .hsfc-Button:hover::before, a.card:hover .hsfc-Button::after, a.card:hover .hsfc-Button::before {
  height: 100%;
}
.hsfc-Button::after, .hsfc-Button::before {
  content: "";
  position: absolute;
  width: 1px;
  height: 0;
  background: #780000;
  transition: height 0.3s ease;
}
.hsfc-Button::after {
  top: 0;
  right: 0;
}
.hsfc-Button::before {
  bottom: 0;
  left: 0;
}

.product__tech-table {
  line-height: 1.2;
}

.profile-widget {
  display: flex;
  visibility: hidden;
  overflow: hidden;
  max-height: 0;
  background-color: #dcd5c5;
  justify-content: center;
  width: 100%;
  position: absolute;
  top: var(--header-height);
  left: 0;
  transition: max-height 500ms ease, visibility 500ms ease;
}
.profile-widget__inner {
  padding: 0.8888888889rem;
  max-width: 600px;
  width: 100%;
}
.profile-widget.is-open {
  visibility: visible;
  max-height: 17.7777777778rem;
  opacity: 1;
  display: flex;
}
.profile-widget p {
  margin-bottom: 0.4444444444rem;
}
.profile-widget .form__input, .profile-widget .form__inline-btn {
  background-color: #ffffff;
}
.profile-widget__register {
  width: 100%;
}

.btn {
  display: inline-block;
  background-color: #ffffff;
  padding: 0.3333333333rem 1.1111111111rem;
  color: #780000;
  transition: background-color 0.5s, color 0.5s;
  text-transform: uppercase;
  letter-spacing: 0.3em;
  border: 1px solid #780000;
  align-self: flex-start;
  font-size: 0.8888888889rem;
}
.btn .btn {
  font-size: 1.1111111111rem;
}
.btn--right {
  align-self: flex-end;
}
.btn__wrap {
  padding-top: 0.8888888889rem;
}
.l-site__main .l-content > .btn, .l-site__main .l-grid__col > .btn {
  margin-bottom: 0.8888888889rem;
}
.btn__block {
  display: block;
  margin: 0.8888888889rem 0 !important;
}
.btn__block:last-child {
  margin-bottom: 0 !important;
}
.btn__block--right {
  display: flex;
  justify-content: flex-end;
}
.btn__block--center {
  display: flex;
  justify-content: center;
}
.btn--sm {
  margin-left: auto;
  margin-right: auto;
}
.btn:hover, a.card:hover .btn {
  background-color: #780000;
  color: #ffffff;
  text-decoration: none;
}
.btn--alt {
  background-color: #780000;
  padding: 0.8888888889rem;
  color: #dcd5c5;
  font-weight: 600;
}
.btn--alt:hover, a.card:hover .btn--alt {
  background-color: #ffffff;
  color: #780000;
}
.btn--outline {
  position: relative;
  margin-top: 5px;
  margin-bottom: 5px;
  border: none;
  background-color: transparent;
}
.btn--outline:before, .btn--outline:after {
  position: absolute;
  top: -5px;
  left: 0;
  content: "";
  height: 2px;
  width: 100%;
  background-color: #780000;
}
.btn--outline:after {
  top: auto;
  bottom: -5px;
}
.btn--buy {
  background-color: #780000;
}
.btn--simple {
  position: relative;
  background-color: transparent;
  border-left: none;
  border-right: none;
  color: #780000;
  padding: 0.5555555556rem 0.2222222222rem 0.5555555556rem 0.5555555556rem;
}
.btn--simple:hover, a.card:hover .btn--simple {
  background-color: transparent;
  color: #780000;
}
.btn--simple:hover::after, .btn--simple:hover::before, a.card:hover .btn--simple::after, a.card:hover .btn--simple::before {
  height: 100%;
}
.btn--simple::after, .btn--simple::before {
  content: "";
  position: absolute;
  width: 1px;
  height: 0;
  background: #780000;
  transition: height 0.3s ease;
}
.btn--simple::after {
  top: 0;
  right: 0;
}
.btn--simple::before {
  bottom: 0;
  left: 0;
}

.btn-reset {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5px;
}
.btn-reset svg {
  fill: #780000;
}

.btn-backtotop {
  display: flex;
  align-items: center;
  gap: 0.6666666667rem;
  text-transform: capitalize;
  letter-spacing: 0.0722222222em;
}
.btn-backtotop:hover {
  color: #780000;
}
.btn-backtotop__icon {
  display: flex;
  color: #780000;
}

/*===Button Layout===*/
.btn__group {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.3333333333rem;
  margin-bottom: 1.3333333333rem;
}
.btn__group--2 {
  grid-template-columns: 1fr;
}
@media (min-width: 768px) {
  .btn__group--2 {
    grid-template-columns: repeat(2, 1fr);
  }
}
.btn__group--3 {
  grid-template-columns: 1fr;
}
@media (min-width: 768px) {
  .btn__group--3 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1000px) {
  .btn__group--3 {
    grid-template-columns: repeat(3, 1fr);
  }
}
.btn__group--4 {
  grid-template-columns: 1fr;
}
@media (min-width: 768px) {
  .btn__group--4 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1000px) {
  .btn__group--4 {
    grid-template-columns: repeat(4, 1fr);
  }
}
.btn__group-item {
  display: inline;
}

.header__search {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1px;
}
@media (min-width: 1150px) {
  .header__search {
    position: relative;
  }
}
.header__search-input-wrap {
  position: relative;
  display: inline-block;
}

.header__search-input {
  padding: 0.4rem 0.6rem;
  border: none;
  width: 100%;
  background-color: #ffffff;
}
.header__search-input:focus-within, .header__search-input:focus {
  outline: none;
}
.header__search-input-wrap {
  width: 0;
  opacity: 0;
  pointer-events: none;
  padding: 0;
  border: 0;
  position: absolute;
  left: 0;
  bottom: -3.6111111111rem;
  padding: 0.8888888889rem;
  display: flex;
  justify-content: center;
}
@media (min-width: 1150px) {
  .header__search-input-wrap {
    transition: width 200ms ease, opacity 200ms ease, padding 200ms ease;
    padding: 0 0 0 1.5555555556rem;
    bottom: auto;
  }
}
.is-open .header__search-input-wrap {
  width: 100%; /* adjust */
  opacity: 1;
  pointer-events: auto;
  border-bottom: 1px solid #780000;
  background-color: #dcd5c5;
}
@media (min-width: 1150px) {
  .is-open .header__search-input-wrap {
    background-color: transparent;
    border-bottom: 1px solid #780000;
    width: 14rem;
  }
}
@media (min-width: 1150px) {
  .header__search-input-wrap button {
    display: none;
  }
}
.header__search-input-inner {
  width: 100%;
  max-width: 600px;
  display: flex;
  background-color: #ffffff;
  padding-right: 0.1666666667rem;
  transition: opacity 900ms ease;
  opacity: 0;
}
.is-open .header__search-input-inner {
  opacity: 1;
}
@media (min-width: 1150px) {
  .header__search-input-inner {
    background-color: transparent;
  }
}

#search-typeahead {
  position: fixed;
  z-index: 9999;
  margin: 0;
  padding: 0;
  list-style: none;
  background: #fff;
  border: 1px solid #ddd;
  border-top: none;
  border-radius: 0 0 4px 4px;
  overflow: hidden;
}
#search-typeahead li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 12px;
  font-size: 14px;
  border-bottom: 1px solid #f0f0f0;
  cursor: pointer;
  transition: background 0.1s ease;
}
#search-typeahead li:last-child {
  border-bottom: none;
}
#search-typeahead li:hover, #search-typeahead li.is-active {
  background: #f5f5f5;
}
#search-typeahead li .search-typeahead__name {
  color: #222;
}
#search-typeahead li .search-typeahead__category {
  font-size: 11px;
  color: #888;
  text-transform: capitalize;
}

.search__item h3 {
  letter-spacing: 0.0722222222em;
}

.search__results h2 {
  letter-spacing: 0.0722222222em;
}

.filters-bar__filters {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.6666666667rem;
}
@media (min-width: 768px) {
  .filters-bar__filters--blog .filters-bar__filters-item {
    grid-column: 3;
  }
}
@media (min-width: 768px) {
  .filters-bar__filters {
    gap: 1.3333333333rem;
    grid-template-columns: repeat(3, 1fr);
  }
}
.filters-bar__filters .btn-reset {
  text-transform: capitalize;
  letter-spacing: 0.0722222222em;
  position: absolute;
  top: -2.05rem;
  right: 0;
}

a.card {
  text-decoration: none;
}
a.card:hover {
  text-decoration: none;
}

.card {
  display: flex;
  flex-direction: column;
  margin-bottom: 1.3333333333rem;
  align-items: center;
  padding: 0 0.8888888889rem;
}
.l-grid .card {
  margin-bottom: 0;
}
.l-grid .l-grid__col:last-child .card {
  margin-bottom: 0;
}
@media (min-width: 768px) {
  .card {
    margin-bottom: 0;
  }
}
.card--img {
  padding: 0;
}
.card__img {
  overflow: hidden;
  width: 100%;
}
@media (min-width: 768px) {
  .card__img {
    padding: 0;
  }
}
.card__img img {
  aspect-ratio: 1/1;
  object-fit: cover;
  display: block;
  width: 100%;
}
@media (min-width: 768px) {
  .card__img--portrait img {
    aspect-ratio: 70/99;
  }
}
.card__details {
  padding: 1.3333333333rem;
}
.card__header {
  font-size: 1.1111111111rem;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .card__header {
    font-size: 1.4444444444rem;
  }
}
.card__txt {
  padding: 1.3333333333rem 1.3333333333rem 0 1.3333333333rem;
  text-align: center;
  max-width: 25rem;
}
.card__txt *:first-child {
  margin-top: 0;
}
.card__txt > *:not(.btn) {
  color: #3c3c3c;
}
.card__txt br {
  display: none;
}
@media (min-width: 768px) {
  .card__txt {
    padding: 2.6666666667rem 1.3333333333rem 0 1.3333333333rem;
  }
  .card__txt br {
    display: inline;
  }
}

a.card--pop {
  transition: scale 0.3s ease;
}
a.card--pop .card__img--landscape {
  background-color: rgba(0, 0, 0, 0.2);
}
a.card--pop .card__img--landscape::before {
  background-color: rgba(0, 0, 0, 0.2);
}
a.card--pop .card__img--landscape + .card__txt .card__header {
  color: #ffffff;
}
a.card--pop:hover {
  scale: 1.02;
}
a.card--pop:hover .card__img--landscape::before {
  background-color: rgba(246, 242, 235, 0.7);
}
a.card--pop:hover .card__img--landscape + .card__txt .card__header {
  color: #3c3c3c;
}

/*======
CARD landscape
======*/
.card__img--landscape {
  aspect-ratio: 2/1;
  padding: 0;
}
/*======
CARD WIDE
======*/
.carousel .card {
  padding: 0;
  margin-bottom: 0;
}
.carousel .card .card__txt {
  width: 100%;
  max-width: none;
}
.carousel .card .card__header {
  width: 100%;
  text-transform: none;
  margin-bottom: 0;
}
.card--wide {
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 1800px;
  margin-left: auto;
  margin-right: auto;
}
.card--wide .card__img {
  padding: 0;
}
.card--wide .card__img img {
  aspect-ratio: auto;
}
.card--wide .card__txt {
  max-width: 41.6666666667rem;
  text-align: center;
}
.card--simple {
  padding: 0;
}
.card--simple .card__txt {
  padding: 0;
  text-align: left;
  width: 100%;
  padding: 0.4444444444rem 0 0 0;
}
.card--simple .card__header {
  font-size: 1rem;
  color: #3c3c3c;
  padding: 0;
  text-transform: uppercase;
  letter-spacing: 0.3em;
}
.card--text {
  padding: 0;
  align-items: center;
}
.card--text .card__txt {
  max-width: 50rem;
}
.card--img {
  padding: 0;
  position: relative;
}
.card--img .card__img {
  position: relative;
}
.card--img .card__img::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  width: 100%;
  height: 100%;
}
.card--img .card__txt {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0;
  max-width: none;
}
.card--img .card__header {
  margin: 0;
}

.card--overlay {
  position: relative;
}
.card--overlay .card__txt {
  position: absolute;
  top: 20%;
}

/*==========
CARD CONTACT
===========*/
.card-contact {
  background-color: #f6f2eb;
  height: 100%;
}
.card-contact__inner {
  padding: 1.3333333333rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media (min-width: 768px) {
  .card-contact__inner {
    padding: 2.6666666667rem 3.5555555556rem;
  }
}
.card-contact__row {
  margin-bottom: 1.1111111111rem;
}
.card-contact P {
  margin: 0;
}
.card-contact__title {
  color: #3c3c3c !important;
  text-transform: uppercase;
  letter-spacing: 0.3em;
}
.card-contact a {
  color: #3c3c3c;
  text-decoration: none;
}
.card-contact a:hover {
  color: #780000;
}

#googlemap .card-contact__inner {
  padding: 10px !important;
  background: none !important;
}
#googlemap .card-contact__row {
  margin: 0 !important;
}
#googlemap .card-contact__row.card-contact__title {
  margin-bottom: 10px !important;
}
#googlemap p {
  margin-bottom: 9px !important;
}

.video-thumb {
  width: 100%;
  max-width: 50rem;
  overflow: hidden;
}

.video-thumb video {
  width: 100%;
  display: block;
}

.checkout__details .l-grid {
  margin-top: 0;
}
.checkout__step {
  display: grid;
  grid-template-columns: 10.5555555556rem 1fr;
  margin-bottom: 2.6666666667rem;
}
.checkout__step-subtitle {
  margin-top: 0;
}
.checkout__step-content {
  padding: 1.3333333333rem 0.8888888889rem;
}
.checkout__step-title {
  margin: 0;
}
.checkout__step-row {
  position: relative;
  margin-bottom: 1.3333333333rem;
}
.checkout__step-details .l-grid {
  margin-top: 0;
}
.checkout-step-option {
  background-color: #f6f2ec;
  border-left: 5px solid transparent;
  display: block;
}
.checkout-step-option-nopad {
  padding: 0;
}
.checkout-step-option__title {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.6666666667rem;
  padding: 1.3333333333rem 0.6666666667rem;
}

.checkout-step-option .checkout-step-option__icon--checked {
  display: none;
}
.checkout-step-option .checkout-step-option__icon--unchecked {
  display: block;
}

.checkout-step-option--active + .u-collapsable-toggle__title, .checkout-step-option--active .u-collapsable-toggle__title, .u-collapsable-toggle:checked + .u-collapsable-toggle__title, .u-collapsable-toggle:checked .u-collapsable-toggle__title {
  background-color: #dcd5c5;
  border-color: #780000;
}
.checkout-step-option--active + .u-collapsable-toggle__title .checkout-step-option__icon--checked, .checkout-step-option--active .u-collapsable-toggle__title .checkout-step-option__icon--checked, .u-collapsable-toggle:checked + .u-collapsable-toggle__title .checkout-step-option__icon--checked, .u-collapsable-toggle:checked .u-collapsable-toggle__title .checkout-step-option__icon--checked {
  display: block;
}
.checkout-step-option--active + .u-collapsable-toggle__title .checkout-step-option__icon--unchecked, .checkout-step-option--active .u-collapsable-toggle__title .checkout-step-option__icon--unchecked, .u-collapsable-toggle:checked + .u-collapsable-toggle__title .checkout-step-option__icon--unchecked, .u-collapsable-toggle:checked .u-collapsable-toggle__title .checkout-step-option__icon--unchecked {
  display: none;
}
.checkout-step-option--active + .u-collapsable-toggle__title + .checkout__step-content, .checkout-step-option--active .u-collapsable-toggle__title + .checkout__step-content, .u-collapsable-toggle:checked + .u-collapsable-toggle__title + .checkout__step-content, .u-collapsable-toggle:checked .u-collapsable-toggle__title + .checkout__step-content {
  border-left: 5px solid transparent;
  border-color: #780000;
}

.product-card {
  position: relative;
  overflow: hidden;
  color: #3c3c3c;
  display: block;
}
.product-card:hover {
  text-decoration: none;
}
.product-card img {
  display: block;
  width: 100%;
}
.product-card__title {
  display: flex;
  justify-content: space-between;
  text-transform: uppercase;
  letter-spacing: 0.3em;
}
.product-card__title-colourway {
  display: block;
  text-transform: capitalize;
  letter-spacing: 0.0722222222em;
}
.megamenu .product-card__title {
  font-size: 0.7777777778rem;
}
.product-card__img {
  position: relative;
}
.product-card__img-lifestyle {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.2s ease;
  pointer-events: none;
}
.product-card__img:hover .product-card__img-lifestyle {
  opacity: 1;
}
.product-card__download {
  color: #3c3c3c;
  transition: transform 0.3s ease, color 0.3s ease;
}
.product-card__download:hover {
  color: #780000;
  transform: scale(1.1);
}
.product-card__footer {
  padding-top: 0.4444444444rem;
}
.product-card__ribbon-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 0;
  right: 0;
  width: 25%;
  aspect-ratio: 1/1;
  transform: rotate(45deg);
  z-index: 1;
}
.product-card__ribbon-wrap .product-card__ribbon {
  position: absolute;
  width: 400px;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.3em;
  padding: 5px 0;
  background-color: #f6f2eb;
  color: #780000;
}
.megamenu .product-card__ribbon-wrap .product-card__ribbon {
  font-size: 0.5555555556rem;
  text-transform: uppercase;
  letter-spacing: 0.3em;
}

.newsletter-signup {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: #dcd5c5;
  padding: var(--section-space) 1.3333333333rem;
}
.newsletter-signup__inner {
  width: 100%;
  max-width: 1280px;
  display: grid;
  grid-template-columns: 1fr;
  width: 100%;
  gap: 1.3333333333rem;
}
@media (min-width: 768px) {
  .newsletter-signup__inner {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 768px) {
  .newsletter-signup .btn-backtotop {
    margin-left: auto;
    margin-right: auto;
  }
}
.newsletter-signup__btn {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
@media (max-width: 768px) {
  .newsletter-signup__btn {
    margin-left: auto;
    margin-right: auto;
  }
}
.newsletter-signup__btn .btn {
  align-self: inherit;
}

#newsletterOverlay {
  width: 100%;
  max-width: 580px;
  --f-html-padding: 0;
  --f-close-button-color: setcolor(1);
}
#newsletterOverlay .newsletter-widget {
  border: none;
}

.newsletter-widget {
  margin: auto;
  border: 2px solid #f6f2eb;
  max-width: 32.2222222222rem;
  width: 100%;
  padding: 1.3333333333rem;
}
.l-content .newsletter-widget {
  margin: 2.6666666667rem auto;
}
@media (min-width: 768px) {
  .newsletter-widget {
    padding: 3.5555555556rem;
  }
}
.newsletter-widget__top {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.newsletter-widget__title {
  text-transform: uppercase;
  letter-spacing: 0.3em;
  text-align: center;
  margin-top: 0;
}
.newsletter-widget__title span {
  display: block;
  text-transform: none;
  letter-spacing: 0.0722222222em;
}
.newsletter-widget__icon svg {
  fill: #780000;
}

/*===================
styles for the newsletter widget
===================*/
.newsletter-widget--hubspot {
  max-width: 40rem;
  padding: 1.3333333333rem 0.8888888889rem;
}
.newsletter-widget--hubspot form {
  text-align: left;
}

.tiles__wrap {
  width: 100%;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  gap: 0;
}
@media (min-width: 1000px) {
  .tiles__wrap {
    gap: 1.3333333333rem;
  }
}
.tiles__item {
  padding: 2.6666666667rem;
  background-color: #dcd5c5;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
  width: 100%;
}
@media (min-width: 1000px) {
  .tiles__item {
    padding: 1.3333333333rem;
    aspect-ratio: 1/0.5;
  }
}
.tiles__item-heading {
  text-align: center;
  text-transform: uppercase;
}

.product__top {
  display: grid;
  grid-template-columns: 1fr;
  column-gap: 2rem;
  row-gap: 0; /* key: no forced vertical gaps */
  align-items: start;
  grid-template-areas: "heading" "left" "right";
}
@media (min-width: 1000px) {
  .product__top {
    grid-template-columns: minmax(0, 50%) 1fr minmax(0, 650px);
    grid-template-areas: "left . right";
    justify-content: end;
  }
}

.product__left {
  grid-area: left;
}

.product__right {
  grid-area: right;
}

.product__header--desktop {
  display: none;
}
@media (min-width: 1000px) {
  .product__header--desktop {
    display: block;
  }
}
.product__header--mobile {
  grid-area: heading;
}
@media (min-width: 1000px) {
  .product__header--mobile {
    display: none;
  }
}

.product__description--desktop {
  padding-top: 0.8888888889rem;
  display: none;
}
@media (min-width: 1000px) {
  .product__description--desktop {
    display: block;
  }
}
@media (min-width: 1000px) {
  .product__description--mobile {
    display: none;
  }
}

.product h4 {
  color: #3c3c3c;
  margin: 0 0 0.8888888889rem 0;
}
.product__top {
  padding-bottom: 2.6666666667rem;
}
.product__section {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1.3333333333rem;
}
.product__section-inner {
  border-top: 2px solid #e9e5dc;
  padding-top: 1.3333333333rem;
  width: 100%;
  max-width: 1280px;
}
.product__section h2 {
  text-transform: none;
  letter-spacing: 0.0722222222em;
  text-align: center;
  color: #780000;
  font-weight: normal;
}
.product__title {
  margin-bottom: 0;
}
.product__title-variant {
  padding-top: 0.4444444444rem;
  text-transform: capitalize;
  letter-spacing: 0.0722222222em;
  font-size: 1.1111111111rem;
}
.product__title + .product__title-variant {
  padding-top: 0;
}
.product__price {
  margin: 0.6666666667rem 0;
}
.product__price-fig {
  font-size: 1.1111111111rem;
}
.product__swatches {
  display: grid;
  gap: 0.4444444444rem;
  grid-template-columns: repeat(5, minmax(2.2222222222rem, 1fr));
  padding-bottom: 5px;
}
@media (min-width: 768px) {
  .product__swatches {
    gap: 0.8888888889rem;
    grid-template-columns: repeat(4, minmax(2.2222222222rem, 1fr));
  }
}
@media (min-width: 768px) {
  .product__swatches {
    gap: 0.8888888889rem;
    grid-template-columns: repeat(4, minmax(2.2222222222rem, 1fr));
  }
}
@media (min-width: 1000px) {
  .product__swatches {
    grid-template-columns: repeat(5, minmax(2.2222222222rem, 1fr));
  }
}
@media (min-width: 1150px) {
  .product__swatches {
    gap: 1.3333333333rem;
  }
}
.gallery-thumbnails .product__swatches-item {
  padding: 10px;
}
.product__swatches-item--selected img, .product__swatches-item.is-selected img {
  outline-offset: 3px;
  outline: 1px solid #780000;
}
.product__swatches-item img {
  display: block;
  width: 100%;
}
.product__additional {
  display: grid;
  grid-template-columns: 1fr;
}
.product__tech-details {
  text-align: left;
}
.product__tech-details h4 {
  color: #3c3c3c;
  text-transform: none;
}
.product__tech-details th {
  min-width: 180px;
  padding-right: 50px;
}
.product__tech-details div.product__tech-table tr *:first-child {
  min-width: 180px;
  padding-right: 50px;
}
.product__fabric_care_img {
  width: 100%;
  max-height: 1.1111111111rem;
}
.product__options {
  display: grid;
  grid-template-columns: 1fr;
}
.product__options-title {
  text-transform: none;
  color: #3c3c3c;
  font-weight: normal;
  margin-bottom: 0.4444444444rem;
  margin-top: 0.4444444444rem;
}
.product__selection {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  justify-content: flext-start;
  margin-bottom: 0.4444444444rem;
}
.product__selection-info {
  margin-top: -3px;
}
.product__selection-type {
  width: 100%;
}
.product__meterage-price {
  display: flex;
  align-items: center;
}
.product__form {
  container-type: inline-size;
  background-color: #f6f2ec;
  padding: 1.3333333333rem;
}
.product__form-inner {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  margin-bottom: 0.8888888889rem;
}
.product__form .form__select {
  max-width: 7.7777777778rem;
}
.product__form-qty {
  width: 60px;
  border: none;
  text-align: center;
  height: 100%;
  margin: 0 10px;
  padding: 10px 0;
}
.product__form-control {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0.2222222222rem 0.4444444444rem;
  background-color: #ffffff;
  color: #780000;
  height: 100%;
}
.product__form-control-wrap {
  display: flex;
  align-items: center;
  margin-left: auto;
}
.product-links {
  display: flex;
  align-items: flex-end;
}
.product-links__list {
  width: 100%;
  display: flex;
  gap: 0.4444444444rem;
  flex-direction: column;
}
.product-links__item {
  display: flex;
  align-items: center;
  text-transform: uppercase;
  letter-spacing: 0.3em;
  color: #780000;
  font-weight: normal;
}
.product-links__item-icon {
  display: inline-flex;
  margin-right: 0.4444444444rem;
}

.f-button:hover svg {
  color: #780000;
}

#goesWithProduct .f-button {
  top: calc(var(--img-height) / 2) !important;
}

.carousel {
  margin: 1.3333333333rem 2.6666666667rem;
  --per-page: 1;
  --f-carousel-gap: 24px;
  --f-carousel-slide-width: calc(
      (100% - ((var(--per-page) - 1) * var(--f-carousel-gap)))
      / var(--per-page)
  );
  /*ARROWS*/
  --f-arrow-pos: -50px;
}
.carousel .f-button {
  top: calc(var(--img-height) / 2) !important;
  cursor: pointer;
}
.carousel .f-button:hover {
  color: #780000;
}
@media (min-width: 768px) {
  .carousel {
    --per-page: 2;
  }
}
@media (min-width: 1000px) {
  .carousel {
    --per-page: 3;
  }
}
@media (min-width: 1380px) {
  .carousel {
    --per-page: var(--max-per-page, 4);
    margin-left: 0;
    margin-right: 0;
  }
}
.l-section__inner--no-pad .carousel {
  margin-left: 2.6666666667rem !important;
  margin-right: 2.6666666667rem !important;
}
.carousel__cta {
  margin-top: 0;
  margin-bottom: 0;
}

.carousel-columns {
  margin: 1.3333333333rem 1.3333333333rem 0 1.3333333333rem;
  --per-page: 1;
  --f-carousel-gap: 24px;
  --f-carousel-slide-width: calc(
      (100% - ((var(--per-page) - 1) * var(--f-carousel-gap)))
      / var(--per-page)
  );
  /*ARROWS*/
  --f-arrow-pos: -50px;
}
@media (min-width: 1000px) {
  .carousel-columns {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.3333333333rem;
  }
  .carousel-columns .f-carousel__slide {
    grid-area: auto;
  }
}
.l-section__inner--no-pad .carousel-columns {
  margin-left: 2.6666666667rem !important;
  margin-right: 2.6666666667rem !important;
  --f-arrow-pos: -50px !important;
}

/*product carousel*/
#productCarousel.f-carousel {
  --per-page: 5;
  --f-carousel-gap: 10px;
  --f-carousel-slide-width: calc(
      (100% - ((var(--per-page) - 1) * var(--f-carousel-gap)))
      / var(--per-page)
  );
  /*ARROWS*/
  --f-arrow-pos: -50px;
}
@media (min-width: 1000px) {
  #productCarousel.f-carousel {
    --f-carousel-gap: 10px;
  }
}

.gallery-slide a {
  cursor: url("../img/icons/magnifying-glass-solid-full.svg") 8 8, zoom-in;
}

.product-carousel__wrap {
  padding: 1.3333333333rem 2.6666666667rem;
}
.product-carousel .is-prev {
  justify-content: flex-start;
}
.product-carousel .is-next {
  justify-content: flex-end;
}

.gallery-thumbnails {
  display: none;
}
@media (min-width: 1000px) {
  .gallery-thumbnails {
    display: block;
  }
}
.gallery-thumbnails .f-button:hover svg {
  color: #780000;
}

.gallery__main {
  --f-carousel-dots-height: 45px;
}
.gallery__main .f-button {
  background: rgba(0, 0, 0, 0.2);
}
.gallery__main .f-button svg {
  color: white;
}
.gallery__main .f-button:hover {
  background: rgba(0, 0, 0, 0.6);
}
.gallery__main .f-button:hover svg {
  color: #780000;
}
.gallery__main .f-carousel__dots {
  padding: 0.4444444444rem 0 1.3333333333rem 0;
}

.fancybox__backdrop {
  --fancybox-backdrop-bg: #dcd5c5 !important;
  --f-drag-opacity: .9;
}

#goesWithProduct.f-carousel {
  margin: 0 1.3333333333rem;
  --per-page: 1;
  --f-carousel-gap: 30px;
  --f-carousel-slide-width: calc(
      (100% - ((var(--per-page) - 1) * var(--f-carousel-gap)))
      / var(--per-page)
  );
  /*ARROWS*/
  --f-arrow-pos: -50px;
}
@media (min-width: 400px) {
  #goesWithProduct.f-carousel {
    --per-page: 2;
  }
}
@media (min-width: 768px) {
  #goesWithProduct.f-carousel {
    --per-page: 3;
  }
}
@media (min-width: 1380px) {
  #goesWithProduct.f-carousel {
    --per-page: 4;
    margin: 0;
    --f-arrow-pos: -50px;
  }
}

.gallery-slide img {
  width: 100%;
  display: block;
}

.blog-card {
  color: #3c3c3c;
  background-color: #f6f2eb;
}
.blog-card img {
  width: 100%;
}
.blog-card__details {
  padding: 1.3333333333rem 0.8888888889rem;
}
.blog-card__meta {
  display: flex;
  font-size: 0.8888888889rem;
}
.blog-card__meta-item {
  border-right: 1px solid #780000;
  padding: 0 0.8888888889rem;
}
.blog-card__meta-item:first-child {
  padding-left: 0;
}
.blog-card__meta-item:last-child {
  border-right: none;
}
.blog-card__desc {
  margin-bottom: 1.3333333333rem;
}
.blog-card__title {
  text-transform: uppercase;
}

.article .content-block {
  max-width: 720px;
  margin: 0 auto;
}

.events__wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #f6f2ec;
  padding: 0 1.3333333333rem;
  max-width: 55.5555555556rem;
  margin: 0 auto;
}
.events__item {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.3333333333rem;
  border-bottom: 1px solid #ffffff;
  width: 100%;
  max-width: 800px;
  font-size: 1.1111111111rem;
  padding: 2.6666666667rem 0.8888888889rem;
}
@media (min-width: 768px) {
  .events__item {
    grid-template-columns: 1fr 6.9444444444rem;
  }
}
.events__item p, .events__item h2 {
  margin: 0;
}
.events__item-date {
  text-transform: uppercase;
  letter-spacing: 0.3em;
  font-size: 1.1111111111rem;
}
.events__item-title {
  font-size: 1.3333333333rem;
  color: #780000;
  text-transform: uppercase;
  letter-spacing: 0.3em;
}
.events__item-time {
  font-size: 1.1111111111rem;
}
.events__item-content {
  font-size: 1.1111111111rem;
}
.events__item:last-child {
  border-bottom: none;
}
.events__item-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.events__item .btn {
  width: 100%;
  text-align: center;
}
@media (min-width: 768px) {
  .events__item .btn {
    width: auto;
  }
}

/*=====
WIDGET SAMPLE FORM
======*/
.samples-form {
  background-color: #f6f2eb;
  padding: 1.3333333333rem 1.3333333333rem;
  container-type: inline-size;
  position: relative;
}
@media (min-width: 1000px) {
  .samples-form {
    max-width: 31.1111111111rem;
  }
}
.samples-form__row {
  display: flex;
  flex-direction: column;
}
.samples-form__row .product__selection {
  margin-bottom: 0;
}
.samples-form__row .form__label {
  width: 100%;
}
.samples-form__row .form__select-input {
  background: #ffffff;
}
@container (min-width: 600px) {
  .samples-form__row {
    flex-direction: row;
  }
  .samples-form .form__label {
    width: 35%;
  }
}

.widget--3-blocks {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-areas: "content img1 img2";
  gap: 1.3333333333rem;
  row-gap: 0;
}
.widget--3-blocks video, .widget--3-blocks img {
  display: block;
  width: 100%;
  max-width: 100%;
}
.widget--3-blocks .widget__col {
  padding: 1.3333333333rem;
}
.widget--3-blocks .widget__col--content {
  grid-area: content;
  background-color: #f6f2eb;
}
.widget--3-blocks .widget__col--img {
  padding: 0;
}
.widget--3-blocks .widget__col--img:nth-of-type(2) {
  grid-area: img1;
}
.widget--3-blocks .widget__col--img:nth-of-type(3) {
  grid-area: img2;
}
@media (max-width: 1000px) {
  .widget--3-blocks {
    grid-template-columns: repeat(2, 1fr);
    grid-template-areas: "img1 img2" "content content";
  }
}
@media (min-width: 1000px) {
  .widget--content-middle {
    grid-template-areas: "img1 content img2";
  }
}

.calculator__units {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
}
.calculator input {
  text-align: left;
}

.panels--required {
  color: #780000;
}

.panel-shape__wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  max-width: 200px;
}
.panel-shape__item {
  background-color: white;
  border: 1px solid #3c3c3c;
  height: 150px;
  width: 150px;
}
.panel-shape__item-width {
  display: flex;
  align-items: center;
  justify-content: center;
}
.panel-shape__item-height {
  display: flex;
  align-items: center;
  justify-content: center;
}
.panel-shape__item-unit {
  padding: 0.4444444444rem;
}

.accordion {
  margin: 0;
  border-bottom: 2px solid #dcd5c5;
}
.accordion__heading {
  margin: 0;
  color: #780000;
  border-top: 2px solid #dcd5c5;
  letter-spacing: 0.0722222222em;
}
.accordion__heading button {
  color: inherit;
  font-size: inherit;
}
.accordion > li, .accordion > .accordion__item {
  margin: 0;
  list-style: none;
  padding-left: 0;
}
.accordion dd {
  padding: 0;
}
.accordion__trigger {
  background: none;
  display: grid;
  grid-template-columns: 1fr 30px;
  color: hsl(0, 0%, 13%);
  padding-left: 0.8888888889rem;
  font-weight: bold;
  margin: 0;
  padding: 1.3333333333rem 1.3333333333rem 1.3333333333rem 1.3333333333rem;
  position: relative;
  text-align: left;
  width: 100%;
  outline: none;
  border: 0;
  text-transform: none;
  letter-spacing: 0.0722222222em;
}
.accordion__trigger-icon {
  display: flex;
}
.accordion__trigger-icon svg {
  transition: transform 0.2s ease-in-out;
}
.accordion__trigger[aria-expanded=true] {
  background-color: #780000;
  color: #ffffff;
}
.accordion__trigger[aria-expanded=true] .accordion__trigger-icon svg {
  transform: rotate(90deg);
}
.accordion__trigger:focus {
  outline: 4px solid transparent;
}
.accordion__content {
  transition: all 0.5s cubic-bezier(0.41, 0.97, 0.36, 0.78);
  overflow: hidden;
}
.accordion__content-inner {
  padding: 1.3333333333rem;
}
.accordion__content-inner > :last-child {
  margin-bottom: 0;
}
.accordion--expanded {
  background-color: #f6f2eb;
}
.accordion--alt .accordion__trigger {
  border: none;
}
.accordion--alt .accordion__content-inner {
  padding-left: 0;
  padding-right: 0;
  margin: 0 1.3333333333rem;
}

.property .accordion__content-inner {
  border-top: 0;
}
.property .accordion__content-inner {
  padding-top: 5px;
}

.glossary {
  border-top: 2px solid #e9e5dc;
}
.glossary__item {
  padding: 1.3333333333rem 0;
  border-bottom: 2px solid #e9e5dc;
}
.glossary__term {
  color: #780000;
  text-transform: uppercase;
  margin-top: 0;
}
.glossary__definition p:last-child {
  margin-bottom: 0;
}

.cart__head th:first-child {
  text-align: left;
}
.cart__items {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 1rem;
  table-layout: auto;
}
.cart__item td {
  padding: 1.3333333333rem;
  vertical-align: middle;
  background-color: #f6f2ec;
}
.cart__item-cat {
  display: block;
  font-size: 0.7777777778rem;
}
.cart__item .cart__item-title {
  text-transform: none !important;
  margin: 0 0 0.4444444444rem 0;
}
.cart__item p {
  margin: 0;
}
.cart__item-image {
  width: 7rem;
}
.cart__item-image img {
  max-width: 100px;
  min-width: 100px;
}
.cart__item-details {
  width: 100%;
}
.cart__item-price, .cart__item-subtotal {
  white-space: nowrap;
}
.cart__item-quantity {
  white-space: nowrap;
  text-align: center;
}
.cart__item-quantity-wrap {
  display: flex;
}

.product333__form-control-wrap {
  display: inline-flex;
  align-items: center;
  overflow: hidden;
  background: #fafafa;
  border: 1px solid #ddd;
  border-radius: 999px;
}
.product333__form-control {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.625rem;
  height: 2.625rem;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.product333__form-control:hover {
  background: #f0f0f0;
}
.product333__form-control .a-icon__svg {
  width: 0.875rem;
  height: 0.875rem;
}
.product333__form-qty {
  width: 3.125rem;
  height: 2.625rem;
  border: 0;
  text-align: center;
  font-weight: 600;
  background: transparent;
  appearance: textfield;
}
.product333__form-qty::-webkit-outer-spin-button, .product333__form-qty::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}

@media (max-width: 768px) {
  .cart__items, .cart__items tbody, .cart__items tr, .cart__items td {
    display: block;
    width: 100%;
  }
  .cart__items {
    border-spacing: 0;
  }
  .cart__item {
    margin-bottom: 1rem;
  }
  .cart__item td {
    padding: 0.75rem 1rem;
    border: 0;
    border-left: 1px solid #e8e8e8;
    border-right: 1px solid #e8e8e8;
  }
  .cart__item td:first-child {
    border-top: 1px solid #e8e8e8;
    border-top-left-radius: 1rem;
    border-top-right-radius: 1rem;
    border-bottom-left-radius: 0;
  }
  .cart__item td:last-child {
    border-bottom: 1px solid #e8e8e8;
    border-top-right-radius: 0;
    border-bottom-right-radius: 1rem;
    border-bottom-left-radius: 1rem;
  }
  .cart__item-image img {
    width: 6rem;
    height: 6rem;
  }
  .cart__item-price, .cart__item-quantity, .cart__item-subtotal {
    margin-top: 0.5rem;
  }
}
.cart__summary {
  grid-column: 2;
}
.cart__summary-wrap {
  display: grid;
  grid-template-columns: 1fr minmax(0, 29.4444444444rem);
}
.cart__summary-table {
  width: 100%;
}
.cart__summary-table .value {
  text-align: right;
}
.cart__summary-table th {
  text-align: left;
  font-weight: 800;
}

/*=====cart drawer=====*/
body.cart-drawer-open {
  overflow: hidden;
}

.cart-drawer {
  position: fixed;
  inset: 0;
  z-index: 900;
  pointer-events: none;
}
.cart-drawer__header {
  text-transform: uppercase;
  letter-spacing: 0.3em;
}
.cart-drawer__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.cart-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  left: auto;
  width: min(420px, 90vw);
  height: 100%;
  background: #fff;
  transform: translateX(100%);
  box-shadow: -8px 0 24px rgba(0, 0, 0, 0.12);
  transition: transform 0.3s ease;
  display: flex;
  flex-direction: column;
}
.cart-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.3333333333rem;
  border-bottom: 1px solid #e9e5dc;
}
.cart-drawer__close {
  border: 0;
  background: none;
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  color: #780000;
}
.cart-drawer__body {
  flex: 1;
  overflow-y: auto;
  padding: 1.3333333333rem;
}
.cart-drawer__items {
  list-style: none;
  margin: 0;
  padding: 0;
}
.cart-drawer__footer {
  border-top: 1px solid #e9e5dc;
  padding: 1.3333333333rem;
}
.cart-drawer__summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.cart-drawer.is-open {
  pointer-events: auto;
}
.cart-drawer.is-open .cart-drawer__overlay {
  opacity: 1;
}
.cart-drawer.is-open .cart-drawer__panel {
  transform: translateX(0);
}

.cart-item {
  display: grid;
  grid-template-columns: 3.6111111111rem 1fr;
  gap: 1rem;
  padding-bottom: 1rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid #e9e5dc;
  position: relative;
}
.cart-item__meta {
  margin: 0;
}
.cart-item:last-child {
  margin-bottom: 0;
}
.cart-item__image {
  display: block;
}
.cart-item__image img {
  display: block;
  width: 100%;
  height: auto;
}
.cart-item__content {
  padding-right: 0.8888888889rem;
}
.cart-item__title {
  margin: 0;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.3em;
}
.cart-item__title a {
  color: #3c3c3c;
}
.cart-item__title a:hover {
  color: #780000;
}
.cart-item__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-top: 0.75rem;
}
.cart-item__remove {
  position: absolute;
  top: 0;
  right: 0;
  font-size: 1.5rem;
  cursor: pointer;
  padding: 0;
  color: #780000;
}

.cart-aside {
  background-color: #f6f2eb;
  padding: 1.3333333333rem;
}
.cart-aside__items {
  border-bottom: 1px solid #ffffff;
  padding-bottom: 0.8888888889rem;
  margin: 0 0 0.8888888889rem 0;
}
.cart-aside__item {
  padding: 0.4444444444rem 0;
  margin: 0;
  list-style: none;
}
.cart-aside__item p {
  margin: 0;
}
.cart-aside__item-title {
  font-size: 1rem;
  text-transform: none !important;
  letter-spacing: 0.0722222222em;
  margin: 0;
  color: #780000;
}
.cart-aside__item-top {
  display: flex;
  justify-content: space-between;
  gap: 0.6666666667rem;
}
.cart-aside__item-price {
  font-weight: 600;
}

.cart__edit-cart {
  display: block;
  text-align: right;
}

/**
 * Use this file to add in temporary styles.  For example overriding legacy styles.
 * These styles will be added with the intention to remove them  once time to refactor
 *
 */
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFic3RyYWN0cy9faW5kZXguc2NzcyIsImJhc2UvX2ZvbnRzLnNjc3MiLCJiYXNlL19nZW5lcmFsLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9ybWFsaXplLmNzcy9ub3JtYWxpemUuY3NzIiwiYmFzZS9fcmVzZXQuc2NzcyIsImJhc2UvX3R5cG9ncmFwaHkuc2NzcyIsImJhc2UvX3V0aWxpdGllcy5zY3NzIiwibGF5b3V0L19ncmlkLnNjc3MiLCJsYXlvdXQvX3NlY3Rpb25zLnNjc3MiLCJsYXlvdXQvX2NvbnRlbnQuc2NzcyIsInBhZ2VzL19ob21lLnNjc3MiLCIuLi8uLi9jb21wb25lbnRzLzAxLUZvdW5kYXRpb25zL0ljb25zL2ljb25zLnNjc3MiLCIuLi8uLi9jb21wb25lbnRzLzAyLWxvZ28vX2xvZ28uc2NzcyIsIi4uLy4uL2NvbXBvbmVudHMvMDQtaGVhZGVyL19oZWFkZXIuc2NzcyIsIi4uLy4uL2NvbXBvbmVudHMvX2Nvb2tpZWJhbm5lci5zY3NzIiwiLi4vLi4vY29tcG9uZW50cy8wNS1uYXZpZ2F0aW9uL19oYW1idXJnZXIuc2NzcyIsIi4uLy4uL2NvbXBvbmVudHMvMDUtbmF2aWdhdGlvbi9fbmF2aWdhdGlvbi5zY3NzIiwiLi4vLi4vY29tcG9uZW50cy8wNS1uYXZpZ2F0aW9uL19uYXZpZ2F0aW9uLW1lZ2FtZW51LnNjc3MiLCIuLi8uLi9jb21wb25lbnRzL2JyZWFkY3J1bWJzL19icmVhZGNydW1icy5zY3NzIiwiLi4vLi4vY29tcG9uZW50cy8wNi1mb290ZXIvX2Zvb3Rlci5zY3NzIiwiLi4vLi4vY29tcG9uZW50cy9xdW90ZXMvX3F1b3RlLnNjc3MiLCIuLi8uLi9jb21wb25lbnRzLzA3LWhlcm8vaGVyby5zY3NzIiwiLi4vLi4vY29tcG9uZW50cy8wOC1Gb3Jtcy9mb3JtLnNjc3MiLCIuLi8uLi9jb21wb25lbnRzLzA4LUZvcm1zL2Zvcm1zLWh1YnNwb3Quc2NzcyIsIi4uLy4uL2NvbXBvbmVudHMvX3RhYmxlcy5zY3NzIiwiLi4vLi4vY29tcG9uZW50cy9Qcm9maWxlL19wcm9maWxlLnNjc3MiLCIuLi8uLi9jb21wb25lbnRzLzA5LWJ1dHRvbnMvYnV0dG9uLnNjc3MiLCIuLi8uLi9jb21wb25lbnRzLzEwLVNlYXJjaC9zZWFyY2guc2NzcyIsIi4uLy4uL2NvbXBvbmVudHMvZmlsdGVycy9maWx0ZXJzLnNjc3MiLCIuLi8uLi9jb21wb25lbnRzLzExLUNhcmRzL2NhcmQuc2NzcyIsIi4uLy4uL2NvbXBvbmVudHMvVmlkZW8vX3ZpZGVvLnNjc3MiLCIuLi8uLi9jb21wb25lbnRzL0NoZWNrb3V0L19jaGVja291dC5zY3NzIiwiLi4vLi4vY29tcG9uZW50cy8xMS1DYXJkcy9Qcm9kdWN0cy9fcHJvZHVjdC1jYXJkLnNjc3MiLCIuLi8uLi9jb21wb25lbnRzL25ld3NsZXR0ZXIvX25ld3NsZXR0ZXIuc2NzcyIsIi4uLy4uL2NvbXBvbmVudHMvdGlsZXMvX3RpbGVzLnNjc3MiLCIuLi8uLi9jb21wb25lbnRzL1Byb2R1Y3RzL19wcm9kdWN0LnNjc3MiLCIuLi8uLi9jb21wb25lbnRzL2Nhcm91c2VsL19jYXJvdXNlbC5zY3NzIiwiLi4vLi4vY29tcG9uZW50cy9nYWxsZXJ5L19nYWxsZXJ5LnNjc3MiLCIuLi8uLi9jb21wb25lbnRzL0Jsb2cvX2Jsb2cuc2NzcyIsIi4uLy4uL2NvbXBvbmVudHMvZXZlbnRzL2V2ZW50cy5zY3NzIiwiLi4vLi4vY29tcG9uZW50cy93aWRnZXRzL193aWRnZXRzLnNjc3MiLCIuLi8uLi9jb21wb25lbnRzL0NhbGN1bGF0b3IvX2NhbGN1bGF0b3Iuc2NzcyIsIi4uLy4uL2NvbXBvbmVudHMvYWNjb3JkaW9uL19hY2NvcmRpb24uc2NzcyIsIi4uLy4uL2NvbXBvbmVudHMvZ2xvc3NhcnkvX2dsb3NzYXJ5LnNjc3MiLCIuLi8uLi9jb21wb25lbnRzL2NhcnQvY2FydC5zY3NzIiwiX3NoYW1lLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQVNBO0FBQUE7QUFBQTtBQXVLRTtBQUFBO0FBQUE7QUE2Q0Y7QUFBQTtBQUFBO0FBa0JBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQXFCQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUEyQkE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBR0E7RUFDRTtFQUdBOztBQS9ORTtFQTJOSjtJQU9JO0lBR0M7OztBQXJPRDtFQTJOSjtJQWNJOzs7O0FDM1dKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFFQTs7QUNMSjtBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQU1GO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFPRjtBQUVBO0FBQ0Y7RUFDRTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7OztBQUdGO0FBQ0E7RUFDRTtJQUNFO0lBQ0E7OztBQzNDSjtBQUVBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0VBR0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQSxRQUNRO0VBQ047OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQSxTQUNTO0VBQ1A7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0VBSUU7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0VBSUU7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7RUFJRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtFQUVFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQ3hWRjtBQUNBO0FBQ0E7QUFBQTtBQUFBO0VBRVM7OztBQUNUO0VBQUU7RUFBc0I7RUFBZTs7O0FBQ3ZDO0VBQU87RUFBOEI7RUFBZTtFQUFnQjtFQUFXOzs7QUFDL0U7RUFBTzs7O0FBQ1A7RUFBeUI7RUFBVTtFQUFXOzs7QUFDOUM7RUFBVztFQUFVO0VBQVc7OztBQUNoQztFQUF1QjtFQUFVO0VBQW1COzs7QUFDcEQ7RUFBRTs7O0FBQ0Y7RUFBTTs7O0FBQ047RUFBUztFQUFnQjtFQUFXOzs7QUNicEM7RUFDSTtFQUNBO0VBQ0EsYUxpUFE7RUsvT1A7OztBQUlMO0VBQ0ksT0xpTVU7RUsvTFYsZ0JMK1BNOztBS3hQVjtFQUNJLGVMcVFZOztBS25RWjtFQUNJLFlMa1FROzs7QUs5UGhCO0VMcUZFO0VBQ0EsZ0JBeUpZOzs7QUszT2Q7RUxxRkU7RUFDQSxnQkFzSlE7OztBS3pPVjtFQUNJLGdCTHdPTTs7O0FLcE9WO0VBQ0ksYUw2TVE7RUs1TVI7RUFDQTtFQUNBLGVMOE9ZO0VBektkO0VBQ0EsZ0JBeUpZOzs7QUt6TmQ7RUFHSSxlTHFPWTs7O0FLbE9oQjtFQUVJLFlMZ09ZO0VLL05aOztBQUNBO0VBQ0ksWUwrTlE7RUs5TlIsZUw2TlE7OztBS25OaEI7RUFHSTs7QUxxREE7RUt4REo7SUFNUTs7OztBQUlSO0VBQ0k7O0FMNkNBO0VLOUNKO0lBSVE7OztBQUVKO0VBQ0k7OztBQUtSO0VBQ0k7OztBQUlKO0VBQ0k7RUFDQTtFQUVBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0FBQ0E7RUFDSTtFQUNBLE9MMkZXOztBSzFGWDtFQUNJO0VBQ0E7OztBQUtSO0VBQ0k7O0FBUUE7RUFDSTs7QUFDQTtFQUNJO0VBQ0E7O0FMUFI7RUtLSTtJQUlROzs7QUFJWjtFQUNJOztBQUVKO0VBQ0k7OztBQU1SO0FBQUE7QUFBQTtBQUlBO0VBQ0ksWUxnSVk7OztBSzdIaEI7RUFDSSxZTDRIWTs7O0FNMVJoQjtBQUFBO0FBQUE7QUFLRTtFQUNFOztBQUNBO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOzs7QUFHTjtFQUNFOztBQUNBO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOzs7QUFHTjtFQUNFOztBQUNBO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUF0RE47RUFDRTs7QUFDQTtFQUNJOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTs7O0FBR047RUFDRTs7QUFDQTtFQUNJOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTs7O0FBR047RUFDRTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBdEROO0VBQ0U7O0FBQ0E7RUFDSTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7OztBQUdOO0VBQ0U7O0FBQ0E7RUFDSTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7OztBQUdOO0VBQ0U7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQXRETjtFQUNFOztBQUNBO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOzs7QUFHTjtFQUNFOztBQUNBO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOzs7QUFHTjtFQUNFOztBQUNBO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUF0RE47RUFDRTs7QUFDQTtFQUNJOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTs7O0FBR047RUFDRTs7QUFDQTtFQUNJOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTs7O0FBR047RUFDRTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTs7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Q21HYTtFNENsR2I7O0FBQ0E7RTVDbkdGO0VBQ0EsZ0JBeUpZOztBNENwRFY7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsUzVDeUNRO0U0Q3hDUjs7QUFTSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBLFM1Q2tCUTs7QTRDZlo7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBLFM1Q09ROztBNENKWjtFQUNJO0VBQ0E7RUFDQTs7QUFLSjtFQUNJOztBQUVBO0VBQ0E7O0FBR0E7RUFDQTs7O0FBS0o7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUVKO0VBQ0k7O0FBR0o7RUFDSTs7QUFFQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJOztBQUlKO0VBQ0k7RUFDQTtFNUM1Tk47RUFDQSxnQkF5Slk7O0E0Q29FTjtFQUNJOztBQUNBO0VBQ0k7O0FBS1o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQVNKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtSO0VBQ0k7RUFDQSxTNUN4Rlk7O0E0Q3lGWjtFQUNJO0VBQ0EsZ0I1QzVGUTtFNEM2RlI7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTs7QUFFSjtFQUNJO0VBQ0E7RUFDQSxnQjVDdkhGO0U0Q3dIRTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBLEs1Q2pISTs7QTRDbUhSO0VBQ0k7OztBQUlaO0VBQ0M7RUFDQTs7O0FDclpEO0FBQUE7QUFBQTtBQUFBO0FBQUEiLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlIFwic2Fzczpjb2xvclwiO1xuQHVzZSAnc2FzczptYXRoJztcbkB1c2UgXCJzYXNzOm1ldGFcIjtcbkB1c2UgXCJzYXNzOm1hcFwiO1xuXG4vL0Bmb3J3YXJkIFwibWFwcHktYnBcIiBhcyBtYnAtKjtcblxuLy8gJGJhc2Utc2l6ZTogMjJweDtcbiRiYXNlLXNpemU6IDE4cHg7XG4vKiA9PT09PT09PT09PT09PT09IFxuTUlYSU5TICYgRlVOQ1RJT05TIFxuPT09PT09PT09PT0gKi9cbkBtaXhpbiBidG4tc2ltcGxlLXN0eWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWxlZnQ6bm9uZTtcbiAgICBib3JkZXItcmlnaHQ6bm9uZTtcbiAgICBjb2xvcjogc2V0Y29sb3IoMik7XG4gICAgcGFkZGluZzogcmVtMigxMHB4KSByZW0yKDRweCkgcmVtMigxMHB4KSByZW0yKDEwcHgpOyAvL0FsbG93IGZvciBsZXR0ZXIgc3BhY2luZyB0byByaWdodCBvZiBmaW5hbCBjaGFyYWN0ZXJcbiAgICAmOmhvdmVyLCBhLmNhcmQ6aG92ZXIgJiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogc2V0Y29sb3IoMik7XG4gICAgICAgICY6OmFmdGVyLCAmOjpiZWZvcmUge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuICAgICY6OmFmdGVyLCAmOjpiZWZvcmV7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgXG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogc2V0Y29sb3IoMik7XG4gICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjNzIGVhc2U7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgIH1cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxufVxuXG5cbkBtaXhpbiBidG4tb3V0bGluZS1zdHlsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtNXB4O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNldGNvbG9yKDIpO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIGJvdHRvbTogLTVweDtcbiAgICB9XG59XG5cblxuLy8gT3VyIGZ1bmN0aW9uIGZvciBzaG9ydGVyIHVzYWdlIG9mIG1hcC5nZXQoKTtcbkBmdW5jdGlvbiBzZXRjb2xvcigkaW5kZXgsICRzaGFkZTogMTAwJSkge1xuICAgICRzaGFkZTogKDEwMCAtIHN0cmlwLXVuaXQoJHNoYWRlKSkgKyAwJTtcbiAgICAgLy9tYXAuZ2V0KG1hcC5nZXQoJG1haW5jb2xvcnMsICRzY2hlbWUpLCBiYXNlKTtcbiAgICBAaWYgJHNoYWRlID09IDEwMCUge1xuICAgICAgQHJldHVybiBtYXAuZ2V0KG1hcC5nZXQoJHN3YXRjaGVzLCAkaW5kZXgpLCBoZXgpO1xuICAgIH1cbiAgICBAcmV0dXJuIGNvbG9yLnNjYWxlKCBtYXAuZ2V0KG1hcC5nZXQoJHN3YXRjaGVzLCAkaW5kZXgpLCBoZXgpLCAkbGlnaHRuZXNzOiAkc2hhZGUgKTtcbiAgfVxuICBcbiAgXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtYmVyKSB7XG4gIEBpZiBtZXRhLnR5cGUtb2YoJG51bWJlcikgPT0gJ251bWJlcicgYW5kIG5vdCBtYXRoLmlzLXVuaXRsZXNzKCRudW1iZXIpIHtcbiAgICBAcmV0dXJuIG1hdGguZGl2KCRudW1iZXIsIDEpOyAvLyBTaW1wbGlmaWVkIGRpdmlzaW9uXG4gIH1cbiAgQHJldHVybiAkbnVtYmVyOyAvLyBSZXR1cm4gYXMtaXMgaWYgbm8gdW5pdFxufVxuICBcbiAgLy9Db252ZXJ0IHZhbHVlIHRvIGVtLlxuICBAZnVuY3Rpb24gZW0oJHNpemUsICRiYXNlLWZvbnQtc2l6ZTogJGJhc2Utc2l6ZSkge1xuICAgIEByZXR1cm4gbWF0aC5kaXYoIHN0cmlwLXVuaXQoJHNpemUpLCBzdHJpcC11bml0KCRiYXNlLWZvbnQtc2l6ZSkgKSAqIDFlbTtcbiAgfVxuICBcbiAgLy8vIENvbnZlcnQgdmFsdWUgdG8gcmVtLlxuICBAZnVuY3Rpb24gcmVtMigkc2l6ZSwgJGJhc2UtZm9udC1zaXplOiAkYmFzZS1zaXplKSB7XG4gICAgQHJldHVybiBtYXRoLmRpdiggc3RyaXAtdW5pdCgkc2l6ZSksIHN0cmlwLXVuaXQoJGJhc2UtZm9udC1zaXplKSApICogMXJlbTtcbiAgXG4gIH1cbiAgXG4gIC8vR2VuZXJpYyBjb250YWluZXIgaW5uZXIgc3R5bGVzXG4gIEBtaXhpbiBjb250YWluZXItaW5uZXItc3R5bGVzIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAkbWF4O1xuICB9XG4gIFxuICBcbiAgLy8gU2ltcGxlIGJvcmRlciBtaXhpblxuICBAbWl4aW4gYm9yZGVyLWRlZmF1bHQoJHNpemU6ICRib3JkZXItc2l6ZSwgJGNvbG9yOiRib3JkZXItY29sb3IpIHtcbiAgICBib3JkZXI6ICRzaXplIHNvbGlkICRjb2xvcjtcbiAgfVxuXG4vLyBtaXhpbiBnb3QgYXBwbHkgY2FwcyBhbmQgbGV0dGVyIHNwYWNpbmcgZm9yIGZvcnVtIGZvbnRcbkBtaXhpbiB1cHBlcmNhc2Utc3BhY2VkKCRzcGFjaW5nOiAkbHMtaGVhZGluZ3MpIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6ICRzcGFjaW5nO1xufVxuQG1peGluIHRpdGxlY2FzZS1zcGFjZWQoJHNwYWNpbmc6ICRscy1ib2R5KSB7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICBsZXR0ZXItc3BhY2luZzogJHNwYWNpbmc7XG59XG5cbi8vLyBNaXhpbiBmb3IgYnJlYWtwb2ludHNcbi8vLyBAcGFyYW0gJGJyZWFrcG9pbnQge1N0cmluZ30gLSBUaGUgYnJlYWtwb2ludCBrZXkgKGUuZy4sICdzbWFsbCcsICdtZWRpdW0nKS5cbi8vLyBAcGFyYW0gJHR5cGUge1N0cmluZ30gLSBUaGUgbWVkaWEgcXVlcnkgdHlwZTogJ21pbicgb3IgJ21heCcuIERlZmF1bHRzIHRvICdtaW4nLlxuQG1peGluIG1hcHB5LWJwKCRicmVha3BvaW50LCAkdHlwZTogJ21pbicpIHtcbiAgJHZhbHVlOiBtYXAuZ2V0KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQpO1xuXG4gIEBpZiAkdmFsdWUgIT0gbnVsbCB7XG4gICAgQG1lZGlhICgjeyR0eXBlfS13aWR0aDogI3skdmFsdWV9KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBlcnJvciBcIkJyZWFrcG9pbnQgJyN7JGJyZWFrcG9pbnR9JyBub3QgZm91bmQgaW4gdGhlIFxcJGJyZWFrcG9pbnRzIG1hcC5cIjtcbiAgfVxufVxuLy8vIEFwcGx5IGEgYm9yZGVyIHRvIG9uZSBvciBtb3JlIHNpZGVzLlxuLy8vIEBwYXJhbSB7bGlzdHxzdHJpbmd9ICRzaWRlcyAtIHRvcCB8IHJpZ2h0IHwgYm90dG9tIHwgbGVmdCB8IHggfCB5IHwgYWxsIHwgKHRvcCByaWdodCAuLi4pXG4vLy8gQHBhcmFtIHtsZW5ndGh9ICR3aWR0aFxuLy8vIEBwYXJhbSB7c3RyaW5nfSAkc3R5bGVcbi8vLyBAcGFyYW0geyp9ICRjb2xvci1pbmRleCAtIHBhc3NlZCBpbnRvIHNldGNvbG9yKClcbkBtaXhpbiBib3JkZXItc2lkZXMoJHNpZGVzOiB0b3AsICR3aWR0aDogMnB4LCAkc3R5bGU6IHNvbGlkLCAkY29sb3ItaW5kZXg6IDQpIHtcbiAgJGJvcmRlcjogJHdpZHRoICRzdHlsZSBzZXRjb2xvcigkY29sb3ItaW5kZXgpO1xuXG4gIEBpZiAkc2lkZXMgPT0gYWxsIHtcbiAgICBib3JkZXI6ICRib3JkZXI7XG4gIH0gQGVsc2UgaWYgJHNpZGVzID09IHgge1xuICAgIGJvcmRlci1sZWZ0OiAkYm9yZGVyO1xuICAgIGJvcmRlci1yaWdodDogJGJvcmRlcjtcbiAgfSBAZWxzZSBpZiAkc2lkZXMgPT0geSB7XG4gICAgYm9yZGVyLXRvcDogJGJvcmRlcjtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICB9IEBlbHNlIHtcbiAgICBAaWYgbWV0YS50eXBlLW9mKCRzaWRlcykgIT0gbGlzdCB7XG4gICAgICAkc2lkZXM6ICgkc2lkZXMpO1xuICAgIH1cblxuICAgIEBlYWNoICRzaWRlIGluICRzaWRlcyB7XG4gICAgICBAaWYgJHNpZGUgPT0gdG9wIHtcbiAgICAgICAgYm9yZGVyLXRvcDogJGJvcmRlcjtcbiAgICAgIH0gQGVsc2UgaWYgJHNpZGUgPT0gcmlnaHQge1xuICAgICAgICBib3JkZXItcmlnaHQ6ICRib3JkZXI7XG4gICAgICB9IEBlbHNlIGlmICRzaWRlID09IGJvdHRvbSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gICAgICB9IEBlbHNlIGlmICRzaWRlID09IGxlZnQge1xuICAgICAgICBib3JkZXItbGVmdDogJGJvcmRlcjtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAZXJyb3IgXCJib3JkZXItc2lkZXMoKTogaW52YWxpZCBzaWRlICcjeyRzaWRlfScuIFVzZSB0b3AvcmlnaHQvYm90dG9tL2xlZnQsIHgsIHksIGFsbCwgb3IgYSBsaXN0LlwiO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuICAvKj09PT09PT09PT09PT09IFxuICBWQVJTIFxuICA9PT09PT09PT09PT09PT09Ki9cbi8vZmlnbWEgdXNpbmcgICAjRjZGNEYwIGZvciBsaWdodCBjcmVhbS5cbiAgLy9Db2xvdXIgcGFsZXR0ZS5cbiAgJHN3YXRjaGVzOiAoXG4gICAgMTogKGhleDogIzNDM0MzQywgbmFtZTogJ0dyZXknKSxcbiAgICAyOiAoaGV4OiAjNzgwMDAwLCBuYW1lOiAnUmVkJyksXG4gICAgMzogKGhleDogI2RjZDVjNSwgbmFtZTogJ0Jyb3duJyksXG4gICAgNDogKGhleDogI2U5ZTVkYywgbmFtZTogJ0Jyb3duIEFsdCcpLFxuICAgIDU6IChoZXg6ICNmNmYyZWIsIG5hbWU6ICdMaWdodCBDcmVhbScpLFxuICAgIDY6IChoZXg6ICNmNmYyZWMsIG5hbWU6ICdMaWdodCBvZmYgV2hpdGUnKSxcbiAgICAnd2hpdGUnOiAoaGV4OiAjRkZGRkZGLCBuYW1lOiAnV2hpdGUnKSwgXG4pO1xuLy8gJHN3YXRjaGVzOiAoXG4vLyAgICAgMTogKGhleDogIzE5M0U3MiwgbmFtZTogJ05hdnknKSxcbi8vICAgICAyOiAoaGV4OiAjRUE1RDRFLCBuYW1lOiAnT3JhbmdlJyksXG4vLyAgICAgMzogKGhleDogIzQ2QTg2QywgbmFtZTogJ0dyZWVuJyksXG4vLyAgICAgNDogKGhleDogI0UyRUVFMywgbmFtZTogJ0xpZ2h0IEdyZWVuJyksXG4vLyAgICAgNTogKGhleDogI0VGRjFGMywgbmFtZTogJ0dyZXknKSxcbi8vICAgICA2OiAoaGV4OiAjNjY2N0FELCBuYW1lOiAnUHVycGxlJyksXG4vLyAgICAgNzogKGhleDogI0ZFRDQ3QSwgbmFtZTogJ1llbGxvdycpLFxuLy8gICAgIDg6IChoZXg6ICNBQ0JDQzMsIG5hbWU6J0dyZXkyJyksXG4vLyAgICAgOTogKGhleDogI2IyYzJjOCwgbmFtZTonTGlnaHQgQmx1ZScpLFxuLy8gICAgICd3aGl0ZSc6IChoZXg6ICNGRkZGRkYsIG5hbWU6ICdXaGl0ZScpLFxuICAgIFxuLy8gKTtcblxuLy9Db2xvdXJzXG4kY29sb3ItbWFpbjogIHNldGNvbG9yKDEpO1xuICRjb2xvci1ib2R5OiBzZXRjb2xvcigxKTtcbiRjb2xvci1hbmNob3I6IHNldGNvbG9yKDIpO1xuJGNvbG9yLWJvcmRlcjogc2V0Y29sb3IoMSk7IC8vR2VuZXJhbCBib3JkZXIgY29sb3VyXG4kY29sb3ItcGxhY2Vob2xkZXI6IHNldGNvbG9yKDEpO1xuXG4vL1RoZW1lIENvbG91cnNcblxuJHRoZW1lLWNvbG9yLTE6IHNldGNvbG9yKDEpOyAvL05hdnlcbiR0aGVtZS1jb2xvci0yOiBzZXRjb2xvcigyKTsgLy9PcmFuZ2UgODAlXG4kdGhlbWUtY29sb3ItMzogc2V0Y29sb3IoMyk7IC8vVHVycXVvaXNlXG4kdGhlbWUtY29sb3ItNDogc2V0Y29sb3IoNCk7IC8vUmVkXG5cblxuXG5cbi8qPT09PT09PT09PT09PT09PT09PVxuQlVUVE9OU1xuPT09PT09PT09PT09PT09PT09PT0qL1xuJGJ0bi1tYWluOiBzZXRjb2xvcigyKTtcbiRidG4tbWFpbi10eHQ6ICNmZmZmZmY7XG4kYnRuLW1haW4tYnJkOiAjZmZmZmZmO1xuJGJ0bi1tYWluLWhvdmVyOiBzZXRjb2xvcigyKTtcbiRidG4tbWFpbi1ob3Zlci10eHQ6ICNmZmZmZmY7XG4kYnRuLW1haW4taG92ZXItYnJkOiAjZmZmZmZmO1xuXG4kYnRuLWFsdDogc2V0Y29sb3IoMik7XG4kYnRuLWFsdC10eHQ6IHNldGNvbG9yKDMpO1xuJGJ0bi1hbHQtaG92ZXItYnJkOiBzZXRjb2xvcigzKTtcbiRidG4tYWx0LWhvdmVyOiAjZmZmZmZmO1xuJGJ0bi1hbHQtaG92ZXItdHh0OiBzZXRjb2xvcigyKTtcbiRidG4tYWx0LWhvdmVyLWJyZDogc2V0Y29sb3IoMyk7XG5cblxuLyo9PT09PT09PT09PT09PT09PT09XG5SQURJVVNcbj09PT09PT09PT09PT09PT09PT09Ki9cbiRyb3VuZGVkLWNvcm5lcjo0MHB4O1xuXG4vKj09PT09PT09PT09PT09PT09PT1cbkZPTlQgRkFNSUxJRVNcbj09PT09PT09PT09PT09PT09PT09Ki9cbiRmb250LW1haW46IFwiRm9ydW1cIiwgc2Fucy1zZXJpZjtcbiRmb250LWFsdDogIFwiRm9ydW1cIiwgc2Fucy1zZXJpZjtcblxuLyo9PT09PT09PT09PT09PT09PT09XG5GT05UIFNJWkVTXG49PT09PT09PT09PT09PT09PT09PSovXG4kYmFzZS1mb250LXNpemU6IDE4cHg7XG4kZm50LXNpemUteGxhcmdlOiByZW0yKDI0cHgpOyAvL0FkanVzdGVkXG4kZm50LXNpemUtbGFyZ2U6ICByZW0yKDE4cHgpOy8vQWRqdXN0ZWRcbiRmbnQtc2l6ZS1ub3JtYWw6IHJlbTIoMThweCk7Ly9BZGp1c3RlZFxuJGZudC1zaXplLXNtYWxsOiAgcmVtMigxNXB4KTsvL0FkanVzdGVkXG4kZm50LXNpemUteHNtYWxsOiByZW0yKDEwcHgpOy8vQWRqdXN0ZWRcblxuLyo9PT09PT09PT09PT09PT09PT09XG5GT05UIFdFSUdIVFNcbj09PT09PT09PT09PT09PT09PT09Ki9cbiRmbnQtd2VpZ2h0LW5vcm1hbDogNDAwO1xuJGZudC13ZWlnaHQtYm9sZDogNzAwO1xuJGZudC13ZWlnaHQteGJvbGQ6IDkwMDsgLy9Ob3QgdXNlZCBhbnltb3JlXG4vKj09PT09PT09PT09PT09PT09PT1cbkxFVFRFUiBTUEFDSU5HXG49PT09PT09PT09PT09PT09PT09PSovXG4kbHMtaGVhZGluZ3M6IDAuM2VtO1xuJGxzLWJvZHk6IGVtKDEuM3B4KTtcblxuLyo9PT09PT09PT09PT09PT09PT09XG5CT1JERVIgU0laRVNcbj09PT09PT09PT09PT09PT09PT09Ki9cbiRib3JkZXItY29sb3I6IHNldGNvbG9yKDEpO1xuJGJvcmRlci1zaXplOjFweDtcbiRib3JkZXItc2l6ZS1scmc6IDJweDtcblxuLyo9PT09PT09PT09PT09PT09PT09XG5HVVRURVJTICYgUEFERElOR1MgU0laRVNcbj09PT09PT09PT09PT09PT09PT09Ki9cbiRlbGVtLXBhZC14eHNtOiByZW0yKDhweCk7IFxuJGVsZW0tcGFkLXhzbTogIHJlbTIoMTJweCk7XG4kZWxlbS1wYWQtc206ICAgcmVtMigxNnB4KTtcbiRlbGVtLXBhZDogICAgICByZW0yKDI0cHgpOyBcbiRlbGVtLXBhZC1scmc6ICByZW0yKDQ4cHgpOyBcbiRlbGVtLXBhZC14bHJnOiByZW0yKDY0cHgpOyAgIFxuJGVsZW0tbWFyZ2luOiAgIHJlbTIoMjBweCk7XG5cbiRndXR0ZXI6ICAgICAgICByZW0yKDI0cHgpOyBcbiRndXR0ZXItbHJnOiAgICByZW0yKDY0cHgpOyBcbiRndXR0ZXIteDogJGd1dHRlcjtcbiRndXR0ZXIteTogJGd1dHRlcjtcblxuJHRleHQtbWF4LXdpZHRoOiByZW0yKDkwMHB4KTtcblxuJGhlcm8tdHh0LW1heC13aWR0aDogcmVtMig3NTBweCk7XG4kY2FyZC10eHQtbWF4LXdpZHRoOiByZW0yKDQ1MHB4KTtcbiRjYXJkLXdpZGUtdHh0LW1heC13aWR0aDogJGhlcm8tdHh0LW1heC13aWR0aDtcbi8qPT09PT09PVxuR1JJRFxuPT09PT09Ki9cbi8vICRncmlkLWNvbDpyZW0yKDcwKTtcbi8vICRncmlkLWdhcDpyZW0yKDMwKTtcblxuXG5cbi8qPT09PT09PT1cblotSU5ERVhcbj09PT09PT09Ki9cbiR6LWluZGV4LS1vbnRvcDogOTAwO1xuLyo9PT09PT09PT09PT09PT09PT09XG5DT0xVTU4gU0laRVNcbj09PT09PT09PT09PT09PT09PT09Ki9cblxuJGFzaWRlLXdpZHRoLW1pbjogNDAwcHg7XG4kYXNpZGUtd2lkdGgtbWF4OiAkYXNpZGUtd2lkdGgtbWluO1xuJGFzaWRlLW1heDogJGFzaWRlLXdpZHRoLW1pbjtcblxuXG4vL0JyZWFrIFBvaW50c1xuJG1heDogMTI4MHB4O1xuJG1heC13aXRoLWd1dHRlcjogJG1heCArIDEwMHB4O1xuJG1heC1mdWxsLWJsZWVkOiAxODAwcHg7XG4kbWF4LWZ1bGwtYmxlZWQtdy1ndXR0ZXI6ICRtYXgtZnVsbC1ibGVlZCArIDEwMHB4O1xuJGNvbnRhaW5lZC13aWR0aDogMTAwMHB4O1xuJGNvbnRhaW5lZC1hcnRpY2xlLXdpZHRoOiA3MjBweDtcblxuJGJyZWFrcG9pbnRzOiAoXG4gICd4c21hbGwnOiA0MDBweCxcbiAgJ3NtYWxsJzogNzY4cHgsXG4gICdtZWRpdW0nOiAxMDAwcHgsXG4gICdsYXJnZSc6IDExNTBweCxcbiAgJ3hsYXJnZSc6IDE0MDBweCxcbiAgJ21heCc6ICRtYXgsXG4gICdtYXgtd2l0aC1ndXR0ZXInOiAkbWF4LXdpdGgtZ3V0dGVyLFxuKTtcblxuLyo9PT09PT09PT09PT09PT09PT09XG5XaWR0aHNcbj09PT09PT09PT09PT09PT09PT09Ki9cbi8vICRtYXg6IG1hcC5nZXQoJGJyZWFrcG9pbnRzLCBtYXgpO1xuLy8gJG1heC13aXRoLWd1dHRlcjogbWFwLmdldCgkYnJlYWtwb2ludHMsIG1heC13aXRoLWd1dHRlcik7XG5cblxuLyo9PT09PT09PT09PT09PT09PT09XG5Sb290IGN1c3RvbSBwcm9wc1xuPT09PT09PT09PT09PT09PT09PT0qL1xuOnJvb3Qge1xuICAtLWhlYWRlci1oZWlnaHQ6ICN7cmVtMig4NXB4KX07IFxuXG4gICAgLy9wYWRkaW5nc1xuICAtLXNlY3Rpb24tc3BhY2U6ICN7JGVsZW0tcGFkfTtcblxuICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgIC0taGVhZGVyLWhlaWdodDogI3tyZW0yKDk2cHgpfTtcblxuICAgIC8vUGFkZGluZ1xuICAgICAtLXNlY3Rpb24tc3BhY2U6ICN7JGVsZW0tcGFkLWxyZ307XG4gIH1cblxuICBAaW5jbHVkZSBtYXBweS1icChsYXJnZSkgeyBcbiAgICAtLWhlYWRlci1oZWlnaHQ6ICN7cmVtMigyMDJweCl9O1xuICB9XG5cbn0iLCJAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ0ZPTlQtTkFNRSc7XG4gICAgZm9udC1zdHlsZTogJ25vcm1hbCc7XG4gICAgZm9udC13ZWlnaHQ6ICc0MDAnO1xuICAgIHNyYzogdXJsKCcvYXNzZXRzL2ZvbnRzL05BTUUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgIHVybCgnL2Fzc2V0cy9mb250cy9OQU1FLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG4iLCJAdXNlICdhYnN0cmFjdHMvaW5kZXgnIGFzICo7XG4vKj09PT09PUNTUyBWQVJTPT09PT09PSovXG5cbjpyb290IHtcbiAgLS1tYWluLWJnLWNvbG9yOiAje3NldGNvbG9yKDUpfTtcbiAgLS1tYWluLWJvZHktY29sb3I6ICN7c2V0Y29sb3IoMSl9O1xuICAtLXJlZC1jb2xvcjoje3NldGNvbG9yKDIpfTtcbiAgLS1tYWluLWZvbnQtZmFtaWx5OiAjeyRmb250LW1haW59O1xufVxuXG5odG1sLCBib2R5IHtcbiAgIFxufVxuaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuYm9keS5uYXZpZ2F0aW9uLS1vcGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7IC8qIEFkanVzdCBmb3Igc2Nyb2xsYmFyIHdpZHRoICh1c3VhbGx5IDE14oCTMTdweCkgKi9cbiAgfVxuXG4gIC5jb250ZW50LWJsb2NrIHtcbi8vVXNlZCB0byB3cmFwIFJURSBlbGVtZW50cy5cbiAgfVxuXG4gIC8qRk9DVVMqL1xuXG4gIC8qIDEpIEJhc2VsaW5lIGZvciBldmVyeXRoaW5nIHRoYXQgY2FuIGJlIGZvY3VzZWQgKi9cbjp3aGVyZShhLCBidXR0b24sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBzdW1tYXJ5LCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSkpOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgLyogb25seSBiZWNhdXNlIHdlIGFkZCBhIHJlcGxhY2VtZW50IGJlbG93ICovXG59XG5cbi8qIDIpIFNob3cgdGhlIHJpbmcgd2hlbiBpdCBtYXR0ZXJzIChrZXlib2FyZCwgZXRjLikgKi9cbjp3aGVyZShhLCBidXR0b24sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBzdW1tYXJ5LCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSkpOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAxcHggc29saWQgc2V0Y29sb3IoMik7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi8qIDMpIEZhbGxiYWNrIGZvciBicm93c2VycyB0aGF0IGRvbuKAmXQgc3VwcG9ydCA6Zm9jdXMtdmlzaWJsZSAqL1xuQHN1cHBvcnRzIG5vdCBzZWxlY3Rvcig6Zm9jdXMtdmlzaWJsZSkge1xuICA6d2hlcmUoYSwgYnV0dG9uLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgc3VtbWFyeSwgW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PVwiLTFcIl0pKTpmb2N1cyB7XG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHNldGNvbG9yKDIpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gIH1cbn0iLCIvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXG4gKi9cblxubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICBtYXJnaW46IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQgeyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7IC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBNaXNjXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAqL1xuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuIiwiQHVzZSBcIi4vbm9kZV9tb2R1bGVzL25vcm1hbGl6ZS5jc3Mvbm9ybWFsaXplLmNzc1wiO1xuXG5cbi8qQmFzaWMgUmVzZXQgb2Ygc3R5bGVzKi9cbi8qKiogYm94IHNpemluZyBib3JkZXItYm94IGZvciBhbGwgZWxlbWVudHMgKioqL1xuKixcbio6OmJlZm9yZSxcbio6OmFmdGVye2JveC1zaXppbmc6Ym9yZGVyLWJveDt9XG5he3RleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjppbmhlcml0OyBjdXJzb3I6cG9pbnRlcjt9XG5idXR0b257YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgY29sb3I6aW5oZXJpdDsgYm9yZGVyLXdpZHRoOjA7IHBhZGRpbmc6MDsgY3Vyc29yOnBvaW50ZXI7fVxuZmlndXJle21hcmdpbjowO31cbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtib3JkZXI6MDsgcGFkZGluZzowOyBtYXJnaW46MDt9XG51bCwgb2wsIGRke21hcmdpbjowOyBwYWRkaW5nOjA7IGxpc3Qtc3R5bGU6bm9uZTt9XG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2e21hcmdpbjowOyBmb250LXNpemU6aW5oZXJpdDsgZm9udC13ZWlnaHQ6aW5oZXJpdDt9XG5we21hcmdpbjowO31cbmNpdGUge2ZvbnQtc3R5bGU6bm9ybWFsO31cbmZpZWxkc2V0e2JvcmRlci13aWR0aDowOyBwYWRkaW5nOjA7IG1hcmdpbjowO31cbiIsIkB1c2UgJ2Fic3RyYWN0cy9pbmRleCcgYXMgKjtcblxuXG5odG1sIHtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LW1haW47XG4gICAgLy8gZm9udC1zaXplOiAxOHB4O1xuICAgICBmb250LXNpemU6ICRiYXNlLXNpemU7XG4gIH1cblxuXG5ib2R5IHtcbiAgICBjb2xvcjogJGNvbG9yLWJvZHk7XG4gICAgLy8gbGV0dGVyLXNwYWNpbmc6IHJlbTIoMS4zcHgpO1xuICAgIGxldHRlci1zcGFjaW5nOiAkbHMtYm9keTtcbiAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgICAgIC8vIGZvbnQtc2l6ZTogcmVtMigxNXB4KTtcbiAgICB9XG59XG5cblxucCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGVsZW0tcGFkLXNtO1xuXG4gICAgaW1nICsgJiB7XG4gICAgICAgIG1hcmdpbi10b3A6JGVsZW0tcGFkLXNtO1xuXG4gICAgfVxufVxuLnUtaGVhZGluZy1mb250LXN0eWxlcyB7XG4gICAgQGluY2x1ZGUgdXBwZXJjYXNlLXNwYWNlZCgpO1xufVxuXG4udS10aXRsZWNhc2UtZm9udC1zdHlsZXMge1xuICAgICBAaW5jbHVkZSB0aXRsZWNhc2Utc3BhY2VkKCk7XG59XG4udS1ib2R5LWZvbnQtc3R5bGVzIHtcbiAgICBsZXR0ZXItc3BhY2luZzogJGxzLWJvZHk7XG59XG5cblxuaDEsIGgyLCBoMywgLnUtaDEsIC51LWgyLCAudS1oMyB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWFsdDtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogJGVsZW0tcGFkLXNtO1xuICAgIEBpbmNsdWRlIHVwcGVyY2FzZS1zcGFjZWQoKTtcblxufVxuXG5cbmg0LCBoNSwgLnUtaDQsIC51LWg1IHtcbiAgIC8vIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgbWFyZ2luLWJvdHRvbTogJGVsZW0tcGFkLXNtO1xufVxuXG5oMiwgaDMsIGg0LCBoNSwgLnUtaDIsIC51LWgzLCAudS1oNCwgLnUtaDUge1xuICAgIFxuICAgIG1hcmdpbi10b3A6ICRlbGVtLXBhZC1zbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIC5sLWNvbnRlbnQgcCArICY6bm90KFtjbGFzc10pIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGVsZW0tcGFkLWxyZztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGVsZW0tcGFkO1xuICAgIH1cblxuICAgIC8vIC5sLWNvbnRlbnQgJiB7XG4gICAgLy8gICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgLy8gfVxufVxuXG5cblxuaDEsIC51LWgxIHtcbiAgICAvLyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIC8vIGxldHRlci1zcGFjaW5nOiAwLjNlbTtcbiAgICBmb250LXNpemU6IHJlbTIoMjRweCk7IC8vQWRqdXN0ZWRcblxuICAgIEBpbmNsdWRlIG1hcHB5LWJwKGxhcmdlKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtMigyOHB4KTsgLy9BZGp1c3RlZFxuICAgIH1cbn1cblxuaDIsIC51LWgyIHtcbiAgICBmb250LXNpemU6IHJlbTIoMjBweCk7IC8vQWRqdXN0ZWRcbiAgICAvLyBsZXR0ZXItc3BhY2luZzogJGxzLWhlYWRpbmdzO1xuICAgIEBpbmNsdWRlIG1hcHB5LWJwKHNtYWxsKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtMigyNnB4KTsgLy9BZGp1c3RlZFxuICAgIH1cbiAgICAubC1ncmlkICZ7XG4gICAgICAgIGNvbG9yOiBzZXRjb2xvcigyKTsgLy9taWdodCBub3QgbmVlZCB0byBiZSB0aGlzIHNwZWNpZmljLCBidXQgZm9yIG5vdyBpdCBpc1xuICAgIH1cbn1cblxuXG5oMywgLnUtaDMge1xuICAgIGZvbnQtc2l6ZTogcmVtMigyMHB4KTsgLy9BZGp1c3RlZFxuXG59XG5cbmg0LCAudS1oNCB7XG4gICAgZm9udC1zaXplOiByZW0yKDE4cHgpOyAgLy9BZGp1c3RlZFxuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgLy8gdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogc2V0Y29sb3IoMik7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuaDUsIC51LWg1IHtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4vKkxJTktTKi9cbmEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjokY29sb3ItYW5jaG9yO1xuICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAwJSAycHg7XG4gICAgfVxuXG59XG5cbi5jb250ZW50LWhlYWRlcl9faW50cm8ge1xuICAgIGZvbnQtc2l6ZTogcmVtMigxOHB4KTsgIC8vQWRqdXN0ZWRcbiAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuXG4gICAgfVxufVxuXG5tYWluIHtcbiAgICAvL1RhcmdldCBlbGVtZW50cyB0aGF0IGFyZSBwYXJ0IG9mIHRoZSBtYWluIHRhZy4gIFVzZWZ1bCBmb3IgZ2VuZXJpYyBlbGVtZW50IHRhZ3MgdGhhdCBhIHVzZXIgbWF5IGFkZCB2aWEgYW4gUlRFXG4gICAgdWwsIG9sIHtcbiAgICAgICAgbWFyZ2luOiRlbGVtLXBhZCAwO1xuICAgICAgICBsaSB7XG4gICAgICAgICAgICBtYXJnaW46MCAwIDEwcHggMzBweDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgICAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAoc21hbGwpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICB1bCB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgICB9XG4gICAgb2wge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7XG4gICAgfVxufVxuXG5cblxuLyo9PT09XG50YWcgb3JkZXIgc3BlY2lmaWMgc3R5bGVzXG49PT09PSovXG5cbmgyICsgaDMge1xuICAgIG1hcmdpbi10b3A6ICRlbGVtLXBhZC1scmc7XG59XG5cbnVsICsgaDMsIHAgKyBoMyB7XG4gICAgbWFyZ2luLXRvcDogJGVsZW0tcGFkLWxyZztcbn1cbiIsIkB1c2UgJ2Fic3RyYWN0cy9pbmRleCcgYXMgKjtcblxuXG5cbi8qPT09PT09PT09PT09PT09PT09PT1cbkNPTE9VUlNcbj09PT09PT09PT09PT09PT09PT09Ki9cblxuQGVhY2ggJGtleSwgJHZhbCBpbiAkc3dhdGNoZXMge1xuICAudS1iZy1jb2xvcl9fI3ska2V5fSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjpzZXRjb2xvcigka2V5KSAhaW1wb3J0YW50O1xuICAgICYtLTc1IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjpzZXRjb2xvcigka2V5LCA3NSkgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJi0tNTAge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOnNldGNvbG9yKCRrZXksIDUwKSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmLS0yNSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6c2V0Y29sb3IoJGtleSwgMjUpICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIC51LXR4dC1jb2xvcl9fI3ska2V5fSB7XG4gICAgY29sb3I6c2V0Y29sb3IoJGtleSkgIWltcG9ydGFudDtcbiAgICAmLS03NSB7XG4gICAgICAgIGNvbG9yOnNldGNvbG9yKCRrZXksIDc1KSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmLS01MCB7XG4gICAgICAgIGNvbG9yOnNldGNvbG9yKCRrZXksIDUwKSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmLS0yNSB7XG4gICAgICAgIGNvbG9yOnNldGNvbG9yKCRrZXksIDI1KSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICAudS1icmQtY29sb3JfXyN7JGtleX0ge1xuICAgIGJvcmRlcjogc29saWQgMnB4IHNldGNvbG9yKCRrZXkpIDJweCAhaW1wb3J0YW50O1xuICAgICYtLXRvcCB7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogc2V0Y29sb3IoJGtleSk7XG4gICAgICAgIGJvcmRlci13aWR0aDogMnB4IDAgMCAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICYtLWJ0bSB7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogc2V0Y29sb3IoJGtleSk7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAwIDJweCAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICYtLXJpZ2h0IHtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBzZXRjb2xvcigka2V5KTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDJweCAwIDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJi0tbGVmdCB7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogc2V0Y29sb3IoJGtleSk7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAwIDAgMnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICYtLXRvcC1idG0ge1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItY29sb3I6IHNldGNvbG9yKCRrZXkpO1xuICAgICAgICBib3JkZXItd2lkdGg6IDJweCAwIDJweCAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICYtLWxlZnQtcmlnaHQge1xuICAgICAgICBib3JkZXItc3R5bGU6ICBzb2xpZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBzZXRjb2xvcigka2V5KTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDJweCAwIDJweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG4vKj09PT09PT09PT09PT09PT09PT09XG5HRU5FUkFMIEZPUk1BVFRJTkdcbj09PT09PT09PT09PT09PT09PT09Ki9cbi51LWVycm9yLCAuZm9ybV9fcm93LWVycm9yIHtcbiAgICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7XG59XG4udS1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4udS1sb3dlcmNhc2Uge1xuICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2UgIWltcG9ydGFudDtcbn1cbi51LXVwcGVyY2FzZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50O1xufVxuLnUtdGl0bGVjYXNlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZSAhaW1wb3J0YW50O1xufVxuLnUtdHJhbnNmb3JtLW5vbmUge1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG59XG4udS1yb3VuZGVkLWNvcm5lcnMge1xuICAgIGJvcmRlci1yYWRpdXM6ICRyb3VuZGVkLWNvcm5lcjtcbiAgICAmLS10b3Age1xuICAgICAgICBib3JkZXItcmFkaXVzOiRyb3VuZGVkLWNvcm5lciAkcm91bmRlZC1jb3JuZXIgMCAwO1xuICAgICAgICAmLWxlZnQge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czokcm91bmRlZC1jb3JuZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLXJpZ2h0IHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcm91bmRlZC1jb3JuZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1sZWZ0IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHJvdW5kZWQtY29ybmVyIDAgJHJvdW5kZWQtY29ybmVyIDA7XG4gICAgfVxuICAgICYtLXJpZ2h0IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAkcm91bmRlZC1jb3JuZXIgMCAkcm91bmRlZC1jb3JuZXI7XG4gICAgfVxuXG4gICAgJi0tYnRtIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czowIDAgJHJvdW5kZWQtY29ybmVyICRyb3VuZGVkLWNvcm5lcjtcbiAgICAgICAgJi1sZWZ0IHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyb3VuZGVkLWNvcm5lcjtcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAmLXJpZ2h0IHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcm91bmRlZC1jb3JuZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi51LWN1cnNvciB7XG4gICAgJi0tcG9pbnRlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gICAgJi0tZGVmYXVsdCB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG59XG4udS1saW5rLXN0eWxlcyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogc2V0Y29sb3IoMik7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG59XG4vL0ZsZXggYWxpZ25cbi51LWZsZXgge1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAmLWp1c3RpZnkge1xuICAgICAgICAmLS1lbmQge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgfVxuICAgICAgICAmLS1zdGFydCB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi1hbGlnbiB7XG4gICAgICAgICYtLWVuZCB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cbiAgICAgICAgJi0tc3RhcnQge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udS1ib3JkZXIge1xuICAgIGJvcmRlcjoxcHggc29saWQgJGNvbG9yLWJvcmRlcjtcblxufVxuXG5ociwgLnUtaHIge1xuICAgIGJvcmRlcjogMDtcbiAgICBAaW5jbHVkZSBib3JkZXItc2lkZXModG9wLCAycHgpO1xuICAgIG1hcmdpbjogJGVsZW0tcGFkLXNtIDA7XG4gICAgQGluY2x1ZGUgbWFwcHktYnAoc21hbGwpIHtcbiAgICAgICAgbWFyZ2luOiAkZWxlbS1wYWQgMDtcbiAgICB9XG4gICAgJi5jb250ZW50LWhyIHtcbiAgICAgICAgbWFyZ2luOiAkZWxlbS1wYWQteGxyZyAwO1xuXG4gICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgIH1cbiAgICBcbn1cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09XG5ISURFIEFTU0VUUyBCVVQgUkVOREVSIElOIERPTVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblxuLnUtdmlzdWFsbHktaGlkZGVuLCAudS1zciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbn1cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09XG5ISURFIEVMRU1FTlRTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXG4udS1oaWRlIHtcbiAgICBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDtcblxuICAgICYtLXNtIHtcbiAgICAgICAgLy9IaWRlIG9uIHNtYWxsIHNjcmVlbiBvbmx5XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKCdzbWFsbCcsICdtYXgnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1tZWQge1xuICAgICAgICAvL0hpZGUgb24gbWVkaXVtIHNjcmVlbnMgYW5kIGJlbG93XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKCdzbWFsbCcsICdtZWRpdW0nKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLyo9PT09PT09PT09PVxuU0NST0xML09WRVJGTE9XIENMQVNTRVNcbj09PT09PT09PT09PSovXG4udS1tb2RlbC0tb3BlbiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi51LW92ZXJmbG93IHtcbiAgICAmLS1oaWRkZW4ge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgICAmLS1zY3JvbGwge1xuICAgICAgICBvdmVyZmxvdzogc2Nyb2xsO1xuICAgIH1cblxuICAgICYtLXNjcm9sbC15IHtcbiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIH1cblxuICAgICYtLXNjcm9sbC14IHtcbiAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgIH1cbn1cbi8qPT09PT09PT09PT1cbkZPTlQgQ0xBU1NFU1xuPT09PT09PT09PT09Ki9cblxuLnUtdHh0IHtcbiAgICAmLS1zbWFsbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtMigxMnB4KTsgLy9BZGp1c3RlZFxuICAgIH1cbiAgICAmLS1sYXJnZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtMigxNnB4KTsgLy9BZGp1c3RlZFxuICAgIH1cbn1cblxuLyo9PT09PT09PT09PT09PT09PT09PVxudG9vbHRpcCBzdHlsZXNcbj09PT09PT09PT09PT09PT09PT09Ki9cbi50b29sdGlwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAvLyBmb250LXNpemU6IHJlbTIoMTNweCk7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIC8vIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAvLyBib3JkZXI6MXB4IHNvbGlkICBzZXRjb2xvcigxKTtcbiAgICByaWdodDowcHg7XG4gICAgdG9wOjBweDtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAuYS1pY29uX19zdmcge1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgIH1cbiAgICAmX193cmFwIHtcbiAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6MjJweDtcbiAgICB9XG59XG4vKj09PT09PT09PT09PT09PT09PT09XG5QYWRkaW5nc1xuPT09PT09PT09PT09PT09PT09PT0qL1xuLnUtbm8tcGFkIHtcbiAgICAgICAgcGFkZGluZzowICFpbXBvcnRhbnQ7XG4gICAgICAgICYtLXRvcCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDowICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOjAgIWltcG9ydGFudDsgICAgXG4gICAgICAgIH1cbiAgICAgICAgJi0tcmlnaHQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDowICFpbXBvcnRhbnQ7ICAgIFxuICAgICAgICB9XG4gICAgICAgICYtLWxlZnQge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OjAgIWltcG9ydGFudDsgIFxuICAgICAgICB9XG4gICAgfVxuXG4vKj09PT09PT09PT09PT09PT09PT09XG5WaWRlb1xuPT09PT09PT09PT09PT09PT09PT0qL1xuLnUtdmlkZW8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXRvcDogNTYuMjUlOyAvKiAxNjo5ICovXG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAmIGlmcmFtZSxcbiAgICAmIGVtYmVkLFxuICAgICYgb2JqZWN0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyOiAwO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbn1cblxuXG5cblxuLyo9PT09PT1cbkFKQVggTE9BREVSXG49PT09PT09Ki9cbi51LWxvYWRlciB7XG4gICAgYmFja2dyb3VuZDogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMDAgMjAwXCI+PHJlY3QgZmlsbD1cIiUyMzc4MDAwMFwiIHN0cm9rZT1cIiUyMzc4MDAwMFwiIHN0cm9rZS13aWR0aD1cIjE1XCIgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMwXCIgeD1cIjI1XCIgeT1cIjg1XCI+PGFuaW1hdGUgYXR0cmlidXRlTmFtZT1cIm9wYWNpdHlcIiBjYWxjTW9kZT1cInNwbGluZVwiIGR1cj1cIjJcIiB2YWx1ZXM9XCIxOzA7MTtcIiBrZXlTcGxpbmVzPVwiLjUgMCAuNSAxOy41IDAgLjUgMVwiIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiIGJlZ2luPVwiLS40XCI+PC9hbmltYXRlPjwvcmVjdD48cmVjdCBmaWxsPVwiJTIzNzgwMDAwXCIgc3Ryb2tlPVwiJTIzNzgwMDAwXCIgc3Ryb2tlLXdpZHRoPVwiMTVcIiB3aWR0aD1cIjMwXCIgaGVpZ2h0PVwiMzBcIiB4PVwiODVcIiB5PVwiODVcIj48YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPVwib3BhY2l0eVwiIGNhbGNNb2RlPVwic3BsaW5lXCIgZHVyPVwiMlwiIHZhbHVlcz1cIjE7MDsxO1wiIGtleVNwbGluZXM9XCIuNSAwIC41IDE7LjUgMCAuNSAxXCIgcmVwZWF0Q291bnQ9XCJpbmRlZmluaXRlXCIgYmVnaW49XCItLjJcIj48L2FuaW1hdGU+PC9yZWN0PjxyZWN0IGZpbGw9XCIlMjM3ODAwMDBcIiBzdHJva2U9XCIlMjM3ODAwMDBcIiBzdHJva2Utd2lkdGg9XCIxNVwiIHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzMFwiIHg9XCIxNDVcIiB5PVwiODVcIj48YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPVwib3BhY2l0eVwiIGNhbGNNb2RlPVwic3BsaW5lXCIgZHVyPVwiMlwiIHZhbHVlcz1cIjE7MDsxO1wiIGtleVNwbGluZXM9XCIuNSAwIC41IDE7LjUgMCAuNSAxXCIgcmVwZWF0Q291bnQ9XCJpbmRlZmluaXRlXCIgYmVnaW49XCIwXCI+PC9hbmltYXRlPjwvcmVjdD48L3N2Zz4nKSBuby1yZXBlYXQgY2VudGVyO1xuICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwcHg7XG5cbiAgICAmLS1vdmVybGF5IHtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIH1cbn1cblxuXG4vKj09PT09PT09PT09PT09PT09PT09XG5DT0xMQVBTQUJMRSBUT0dHTEVcbj09PT09PT09PT09PT09PT09PT09Ki9cbi51LWNvbGxhcHNhYmxlLXRvZ2dsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAmOmNoZWNrZWQrLnUtY29sbGFwc2FibGUtdG9nZ2xlX190aXRsZSsudS1jb2xsYXBzYWJsZS10b2dnbGVfX2NvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59IiwiQHVzZSAnYWJzdHJhY3RzL2luZGV4JyBhcyAqO1xuXG4ubC1ncmlkIHtcbiAgICAvL0dlbmVyaWMgR3JpZCBzeXN0ZW0gdXNlZCBhY3Jvc3MgbW9zdCBvZiB0aGUgc2l0ZS5cbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogJGd1dHRlcjtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgIG1hcmdpbjogJGVsZW0tcGFkIDA7XG5cbiAgICAubC1jb250YWluZXJfX2lubmVyID4gJjpmaXJzdC1jaGlsZCwgLmwtY29udGVudCA+ICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tdG9wOjA7XG4gICAgfVxuICAgICYtLW5vLW1hcmdpbiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWFwcHktYnAobWVkaXVtKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgIG1pbm1heCgwLCAxZnIpO1xuICAgIH1cblxuXG4gICAgXG4gICAgJl9fY29sIHtcblxuICAgICAgICAmLS1jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6JGVsZW0tcGFkO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAoc21hbGwpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiRlbGVtLXBhZC1scmcgJGVsZW0tcGFkLXhscmc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLTMge1xuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChtZWRpdW0pIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgbWlubWF4KDAsIDFmcikgbWlubWF4KDAsIDFmcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi0tNCB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgbWlubWF4KDAsIDFmcik7XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKHNtYWxsKSB7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIG1pbm1heCgwLCAxZnIpIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKG1lZGl1bSkge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBtaW5tYXgoMCwgMWZyKSBtaW5tYXgoMCwgMWZyKSBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLS1jYXJkLWltZyB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7XG4gICAgICAgIG1hcmdpbi10b3A6MDtcbiAgICAgICAgXG4gICAgICAgIHBhZGRpbmc6JGVsZW0tcGFkIDA7XG4gICAgICAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgICAgICAgICAgcGFkZGluZzokZWxlbS1wYWQtbHJnIDA7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAoc21hbGwpIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgbWlubWF4KDAsIDFmcik7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAobGFyZ2UpIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgbWlubWF4KDAsIDFmcikgbWlubWF4KDAsIDFmcikgbWlubWF4KDAsIDFmcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS01MFxcLzUwe1xuICAgICAgICAvL0VxdWFsIENvbHNcbiAgICAgICAgLy8kYXNpZGUtd2lkdGhcbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAoc21hbGwpIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgbWlubWF4KDAsIDFmcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS03NVxcLzI1e1xuICAgICAgICAvL0xhcmdlIC8gU21hbGwgQ29sc1xuICAgICAgICBcbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAoc21hbGwpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIG1pbm1heCgkYXNpZGUtd2lkdGgtbWF4LCAkYXNpZGUtd2lkdGgtbWF4KTtcbiAgICAgICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0yNVxcLzc1e1xuICAgICAgICAvL1NtYWxsIC8gTGFyZ2UgQ29sc1xuICAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoJGFzaWRlLXdpZHRoLW1heCwgJGFzaWRlLXdpZHRoLW1heCkgbWlubWF4KDAsIDFmcik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiIsIkB1c2UgJ2Fic3RyYWN0cy9pbmRleCcgYXMgKjtcblxuLmwtc2l0ZV9fd3JhcHBlciB7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gMWZyIGF1dG87XG5cbn1cbi5sLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzokZWxlbS1wYWQtc207XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWF4LXdpZHRoOiAxMDB2dztcbiAgICAmLS1tYWluLCAmLS1icmVhZGNydW1icyB7XG4gICAgICAgIHBhZGRpbmctdG9wOjAgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206MCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1hcHB5LWJwKHNtYWxsKSB7XG4gICAgICAgIHBhZGRpbmc6JGVsZW0tcGFkO1xuICAgIH1cblxuICAgICZfX2lubmVyIHtcbiAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyLWlubmVyLXN0eWxlcztcbiAgICB9XG5cbiAgICAmLmJhY2t0b3RvcCB7XG4gICAgICAgIC8vIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKHNtYWxsKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6MDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgIH1cbn1cbi5sLXNlY3Rpb24ge1xuICAgIGRpc3BsYXk6ZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6dmFyKC0tc2VjdGlvbi1zcGFjZSk7XG4gICAgcGFkZGluZy1ib3R0b206dmFyKC0tc2VjdGlvbi1zcGFjZSk7XG4gICAgLmwtc2l0ZV9fbWFpbiA+ICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAvLyBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG4gICAgJiA+ICo6Zmlyc3QtY2hpbGQsICYgPiAubC1zZWN0aW9uX19pbm5lciA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICYgPiAqOmxhc3QtY2hpbGQsICYgPiAubC1zZWN0aW9uX19pbm5lciA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJl9faW5uZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAkbWF4LWZ1bGwtYmxlZWQ7XG4gICAgICAgICYtLWNvbnRhaW5lZCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDphdXRvO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OmF1dG87XG4gICAgICAgICAgICBAaW5jbHVkZSBjb250YWluZXItaW5uZXItc3R5bGVzO1xuICAgICAgICB9XG4gICAgfVxuICAgICYtLWJnIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2V0Y29sb3IoNSk7XG4gICAgICAgICYgKyAmIHtcbiAgICAgICAgICAgIC8vUmVtb3ZlIHRvcCBwYWRkaW5nIGlmIGZvbGxvd2luZyBhbm90aGVyIHNlY3Rpb24gd2l0aCBhIGJhY2tncm91bmQsIHRvIGF2b2lkIGxhcmdlIGdhcHMgYmV0d2VlbiBzZWN0aW9uc1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH0gICBcbiAgICB9XG4gICAgJjpub3QoLmwtc2VjdGlvbi0tYmcpIHtcbiAgICAgICAgLy9SZW1vdmUgdG9wIHBhZGRpbmcgaWYgZm9sbG93aW5nIGFub3RoZXIgc2VjdGlvbiB3aXRob3V0IGEgYmFja2dyb3VuZCwgdG8gYXZvaWQgbGFyZ2UgZ2FwcyBiZXR3ZWVuIHNlY3Rpb25zXG4gICAgICAgICYgKyAmOm5vdCgubC1zZWN0aW9uLS1iZykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJjpoYXMoPiAubC1zZWN0aW9uX19pbm5lciA+IC5jYXJkLS13aWRlOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cbn1cblxuLmwtc2VjdGlvbjIyIHtcbiAgICBtYXJnaW4tdG9wOiAkZ3V0dGVyLWxyZztcbiAgICAvLyAmICsgJiB7XG4gICAgLy8gICAgIG1hcmdpbi10b3A6ICRndXR0ZXI7XG4gICAgLy8gfVxuICAgIC5sLXNlY3Rpb24tLWJnICsgJiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICAgICYtLW5vLW1hcmdpbiwgJi0tYmcgKyAgJi0tYmd7XG4gICAgICAgIG1hcmdpbi10b3A6MCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIFxuICAgIC5sLXNpdGVfX21haW4gJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICAgICYtLWJnIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2V0Y29sb3IoNSk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkZ3V0dGVyLWxyZztcbiAgICAgICAgLmwtc2VjdGlvbl9faW5uZXI6bm90KDpoYXMoPiA6Zmlyc3QtY2hpbGQuY2FyZCkpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkZWxlbS1wYWQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkZWxlbS1wYWQtbHJnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICAgICAgJi13aGl0ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICB9XG4gICAgICAgICYgKyAubC1zZWN0aW9uICB7XG4gICAgICAgICAgIC8vIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbm5lciB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OmF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDphdXRvO1xuICAgICAgICBtYXgtd2lkdGg6ICRtYXgtZnVsbC1ibGVlZC13LWd1dHRlcjtcblxuICAgICAgICAmIGgyOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6MDtcbiAgICAgICAgfVxuICAgICAgICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKHNtYWxsKSB7XG4gICAgICAgICAgICBwYWRkaW5nOjAgJGVsZW0tcGFkO1xuICAgICAgICB9XG4gICAgICAgICYtLW5vLXBhZCB7XG4gICAgICAgICAgICBwYWRkaW5nOjAgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgJiA+ICo6bm90KC5jYXJkLS13aWRlKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDokZWxlbS1wYWQtbHJnO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiRlbGVtLXBhZC1scmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLWJsZWVkIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICAmLS1jb250YWluZWQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6YXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDphdXRvO1xuICAgICAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyLWlubmVyLXN0eWxlcztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiQHVzZSAnYWJzdHJhY3RzL2luZGV4JyBhcyAqO1xuLmwtY29udGVudCB7XG4gICAgcGFkZGluZzokZWxlbS1wYWQtbHJnIDA7XG5cbiAgICAmICsgJiB7XG4gICAgICAgIHBhZGRpbmctdG9wOjA7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgICYtLWNvbnRhaW5lZCB7XG4gICAgICAgIG1heC13aWR0aDogJGNvbnRhaW5lZC13aWR0aDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6YXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OmF1dG87XG5cbiAgICAgICAgLy8gLmFydGljbGUgJiB7XG4gICAgICAgIC8vICAgICBtYXgtd2lkdGg6ICRjb250YWluZWQtYXJ0aWNsZS13aWR0aDtcbiAgICAgICAgLy8gfVxuICAgIH1cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy10b3A6MDtcbiAgICB9XG59XG4iLCJAdXNlICdhYnN0cmFjdHMvaW5kZXgnIGFzICo7XG5cbi5sLXNlY3Rpb25fX2hvbWUtbGFzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIC5uZXdzbGV0dGVyLXNpZ251cCB7XG4gICAgICAgLy8gb3JkZXI6MztcbiAgICB9XG5cbiAgICAuaG9tZV9fdGlsZXMge1xuICAgICAgICBvcmRlcjoyO1xuICAgICAgICAvL21hcmdpbi10b3A6IDA7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1hcHB5LWJwKHNtYWxsKSB7XG4gICAgICAgIC5ob21lX190aWxlcyB7XG4gICAgICAgICAgICBvcmRlcjoyO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogICRlbGVtLXBhZCA7XG4gICAgICAgIH1cbiAgICAgICAgLm5ld3NsZXR0ZXItc2lnbnVwIHtcbiAgICAgICAgICAgLy8gb3JkZXI6MTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCJAdXNlICdhYnN0cmFjdHMvaW5kZXgnIGFzICo7XG4kc3ZnU2l6ZTogMTZweDtcblxuLmEtaWNvbiB7XG4gICAgJl9fc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiAkc3ZnU2l6ZTtcbiAgICAgICAgd2lkdGg6ICRzdmdTaXplO1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgICYtLXgxLTUge1xuICAgICAgICAgICAgaGVpZ2h0OiAkc3ZnU2l6ZSAqIDEuNTtcbiAgICAgICAgICAgIHdpZHRoOiAkc3ZnU2l6ZSAqIDEuNTtcbiAgICAgICAgfVxuICAgICAgICAmLS14MiB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzdmdTaXplICogMjtcbiAgICAgICAgICAgIHdpZHRoOiAkc3ZnU2l6ZSAqIDI7XG4gICAgICAgIH1cbiAgICAgICAgJi0teDItNSB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzdmdTaXplICogMi41O1xuICAgICAgICAgICAgd2lkdGg6ICRzdmdTaXplICogMi41O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0teDMge1xuICAgICAgICAgICAgaGVpZ2h0OiAkc3ZnU2l6ZSAqIDM7XG4gICAgICAgICAgICB3aWR0aDogJHN2Z1NpemUgKiAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0teDQge1xuICAgICAgICAgICAgaGVpZ2h0OiAkc3ZnU2l6ZSAqIDQ7XG4gICAgICAgICAgICB3aWR0aDogJHN2Z1NpemUgKiA0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0teDUge1xuICAgICAgICAgICAgaGVpZ2h0OiAkc3ZnU2l6ZSAqIDU7XG4gICAgICAgICAgICB3aWR0aDogJHN2Z1NpemUgKiA1O1xuICAgICAgICB9XG4gICAgfVxufSIsIkB1c2UgJ2Fic3RyYWN0cy9pbmRleCcgYXMgKjtcblxuLmxvZ28ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDBweDtcbiAgICAmLS1zbSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtYXBweS1icCh4c21hbGwpIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDBweDtcbiAgICB9XG4gICAgXG4gICAgQGluY2x1ZGUgbWFwcHktYnAoc21hbGwpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1heC13aWR0aDogMzkwcHg7XG4gICAgICAgIG1pbi13aWR0aDogMzkwcHg7XG4gICAgICAgICYtLXNtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgbWFwcHktYnAobWVkaXVtKSB7XG4gICAgICAgIC8vIG1heC13aWR0aDogMzkwcHg7XG4gICAgfVxufVxuIiwiQHVzZSAnYWJzdHJhY3RzL2luZGV4JyBhcyAqO1xuXG5cblxuLmhlYWRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHNldGNvbG9yKDQpO1xuICAgIHotaW5kZXg6ICR6LWluZGV4LS1vbnRvcDtcbiAgICAmX19sb2dvdXQge1xuICAgICAgICAuYS1pY29uX19zdmcge1xuICAgICAgICAgICAgd2lkdGg6MjlweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICB9XG4gICAgXG4gICAgLnNlYXJjaC0tb3BlbiAmIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2V0Y29sb3IoMyk7XG4gICAgICAgICBAaW5jbHVkZSBtYXBweS1icChsYXJnZSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICB9XG4gICAgfVxuXG4gICAgLmlzLXN0aWNreSAme1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7O1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgei1pbmRleDogJHotaW5kZXgtLW9udG9wO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XG5cbiAgICAgICAgICAgIC5oZWFkZXJfX2lubmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtYXBweS1icChsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH1cbiAgICB9XG4gICAgLy8gYmFja2dyb3VuZC1jb2xvcjogIzFmYWVkZDtcbiAgICAvLyBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICAvLyBzdmcge1xuICAgIC8vICAgICBmaWxsOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIC8vIH1cbi8vIHBhZGRpbmc6JGVsZW0tcGFkO1xuICAgICYubC1jb250YWluZXIge1xuICAgICAgICBwYWRkaW5nOjA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAobGFyZ2UpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6JGVsZW0tcGFkICRlbGVtLXBhZCAwICRlbGVtLXBhZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICZfX2lubmVyIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgLy9ncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6ICRlbGVtLXBhZC1zbTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgLm5hdmlnYXRpb24tLW9wZW4gJiAge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2V0Y29sb3IoMyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBtYXBweS1icChsYXJnZSkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKGxhcmdlKXtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRlbGVtLXBhZC1zbSAwO1xuICAgICAgICB9XG4gICAgICAgIC8vIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChsYXJnZSkge1xuICAgICAgICAgICAgLy9vbmx5IG9uIGZ1bGwgXG4gICAgICAgICAgICAvLyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBtaW5tYXgoNDAwcHgsIDFmcikgMWZyO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG4gICB9XG4gICBcbiAgICAmX19hY2NvdW50IHtcblxuICAgICAgICAmLWxpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IDVweDtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjpub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuaGVhZGVyX19hY2NvdW50LXRleHQge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogc2V0Y29sb3IoMik7XG4gICAgICAgICAgICAgICAgLmhlYWRlcl9fYWNjb3VudC10ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzZXRjb2xvcigyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9faWNvbnMge1xuICAgICAgICAgY29sb3I6c2V0Y29sb3IoMSk7XG4gICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiBzZXRjb2xvcigyKTtcbiAgICAgICAgfVxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOnNldGNvbG9yKDEpO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHNldGNvbG9yKDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgXG4gICAgICAgIFxuICAgICAgICAuYS1pY29uX19zdmcge1xuICAgICAgICAgICAgLy8gY29sb3I6c2V0Y29sb3IoMSk7XG4gICAgICAgICAgICBoZWlnaHQ6IDI2cHg7XG4gICAgICAgICAgICB3aWR0aDogMjZweDtcbiAgICAgICAgfVxuICAgICAgICAmLS1iYXNrZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGNvbG9yOiBzZXRjb2xvcigxKTtcbiAgICAgICAgICAgIC5hY3RpdmUgJiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHNldGNvbG9yKDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmEtaWNvbl9fc3ZnIHtcbiAgICAgICAgICAgICAgICBmaWxsOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBzdHJva2U6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgICAgICAgICB3aWR0aDogMzRweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG4gICAgfVxuXG4gICAgJl9fbGVmdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiRlbGVtLXBhZC1zbTtcbiAgICB9XG5cbiAgICAubG9nb19fd3JhcCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgICAmX19iYXNrZXQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJi1jb3VudCB7XG4gICAgICAgICAgICAvLyBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdG9wOiA4cHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6NHB4O1xuICAgICAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zZWFyY2gge1xuICAgICAgICAmLWJ0biB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICAuYS1pY29uX19zdmcgIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDI2cHg7XG4gICAgICAgICAgICAgICAgIHdpZHRoOiAyNnB4O1xuICAgICAgICAgICAgICAgIC8vIG1hcmdpbi10b3A6LTdweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjY291bnQge1xuICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgIGdhcDoxNXB4O1xuICAgIH1cbiAgICAmX191dGlsaXRpZXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6MTVweDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAmLWxpbmtzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBAaW5jbHVkZSBtYXBweS1icChsYXJnZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgIH1cbn1cblxuXG4vKj09Q29udGVudCBIZWFkZXI9PSovXG5cblxuLyo9PUNvbnRlbnQgSGVhZGVyPT0qL1xuLmNvbnRlbnQtaGVhZGVyIHtcbiAgICBwYWRkaW5nLXRvcDogJGVsZW0tcGFkLWxyZztcbiAgICBwYWRkaW5nLWJvdHRvbTokZWxlbS1wYWQteHhzbTtcbiAgICAubC1jb250YWluZXItLWJyZWFkY3J1bWJzICsgJiB7XG4gICAgICAgIHBhZGRpbmctdG9wOjA7XG4gICAgfVxuICAgICZbY2xhc3MqPVwidS1iZy1jb2xvclwiXSwgJltjbGFzc149XCJ1LWJnLWNvbG9yXCJdLCAmLmhlYWRlci0tY29udGVudCB7XG4gICAgICAgIC8vIHBhZGRpbmctdG9wOiAkZWxlbS1wYWQteGxyZztcbiAgICAgICAgcGFkZGluZy1ib3R0b206JGVsZW0tcGFkLWxyZztcbiAgICB9XG4gICAgJl9faW5uZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1heC13aWR0aDogJGhlcm8tdHh0LW1heC13aWR0aDtcbiAgICB9XG4gICAgJl9faW50cm8ge1xuICAgICAgICBtYXgtd2lkdGg6IHJlbTIoNzM1cHgpOyAvL0FkanVzdGVkXG4gICAgfVxufSIsIlxuQHVzZSAnYWJzdHJhY3RzL2luZGV4JyBhcyAqO1xuXG5cbiNjYy1wYW5lbCB7XG4gICAgIHBhZGRpbmc6MjVweCAhaW1wb3J0YW50O1xuXG4gICAgLy8gIGgyLCBoMywgaDQge1xuICAgIC8vICAgICBsZXR0ZXItc3BhY2luZzogJGxzLWJvZHkgIWltcG9ydGFudDtcbiAgICAvLyAgfVxuXG4gICAgICNjY2MtbmVjZXNzYXJ5LXRpdGxlLCAjY2NjLW9wdGlvbmFsLWNhdGVnb3JpZXMge1xuICAgICAgICBAaW5jbHVkZSB0aXRsZWNhc2Utc3BhY2VkKCk7XG4gICAgIH1cbn1cbiNjY2Mtbm90aWZ5LXRpdGxlID4gc3BhbntcbmZvbnQtc2l6ZTozMHB4O1xuY29sb3I6c2V0Y29sb3IoMikgIWltcG9ydGFudDtcbmZvbnQtd2VpZ2h0Om5vcm1hbDtcbmRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbiNjb29raWVfaWNvbiB7bWFyZ2luLXJpZ2h0OjEwcHh9XG4jY29va2llX2ljb24gc3Zne1xuaGVpZ2h0OjQwcHg7XG5cbmZpbGw6c2V0Y29sb3IoMik7XG4gICAgXG59XG4jY2NjLXRpdGxlIHtcbn1cbiNjY2MgLmNjYy1tb2R1bGUtLXBvcHVwICNjY2MtY29udGVudCB7XG5iYWNrZ3JvdW5kOiNmZmZmZmYgIWltcG9ydGFudDtcbmJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbn1cbmJvZHkgI2NjYyAuY2NjLW5vdGlmeS1idXR0b24ge1xuXG59XG5ib2R5ICNjY2MgLmNjYy1ub3RpZnktYnV0dG9uLmNjYy1hY2NlcHQtYnV0dG9uLCBib2R5ICNjY2MgLmNjYy1ub3RpZnktYnV0dG9uLmNjYy1yZWplY3QtYnV0dG9uLCBib2R5ICNjY2MgLmNjYy1ub3RpZnktYnV0dG9uI2NjYy1ub3RpZnktcmVqZWN0LCAjY2NjICNjY2MtYnV0dG9uLWhvbGRlciBidXR0b24jY2NjLXJlY29tbWVuZGVkLXNldHRpbmdzICB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgcGFkZGluZzogcmVtMig2cHgpIHJlbTIoMjBweCk7XG4gICAgY29sb3I6ICRidG4tbWFpbjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgQGluY2x1ZGUgdXBwZXJjYXNlLXNwYWNlZDtcbiAgICBib3JkZXI6MXB4IHNvbGlkICRidG4tbWFpbiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1sZWZ0OjAgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmlnaHQ6MCAhaW1wb3J0YW50O1xuICAgIFxuICAgIEBpbmNsdWRlIGJ0bi1zaW1wbGUtc3R5bGU7XG4gICAgLy9ib3JkZXItYm90dG9tOjFweCBzb2xpZCBzZXRjb2xvcigyKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6MCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOjA7XG5cbn1cbmJvZHkgI2NjYyAuY2NjLW5vdGlmeS1idXR0b24jY2NjLW5vdGlmeS1yZWplY3R7XG4gICAgXG4gICAgQGluY2x1ZGUgbWFwcHktYnAoc21hbGwpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRlbGVtLXBhZCAhaW1wb3J0YW50O1xuICAgIH1cbn1cbmJ1dHRvbi5jY2Mtbm90aWZ5LWxpbmsgc3BhbiB7XG5cbiAgICBjb2xvcjpzZXRjb2xvcigyKSAhaW1wb3J0YW50O1xufVxuYnV0dG9uLmNjYy1ub3RpZnktbGluayB7XG4gdGV4dC1kZWNvcmF0aW9uOm5vbmU7XG59XG4uY2NjLW5vdGlmeS1idXR0b24gc3BhbiwgYm9keSAjY2NjIC5jY2Mtbm90aWZ5LWJ1dHRvbi5jY2MtYWNjZXB0LWJ1dHRvbiBzcGFuIHtcbi8vcGFkZGluZy1ib3R0b206OHB4O1xuZGlzcGxheTpibG9jayAhaW1wb3J0YW50O1xuLy9ib3JkZXItYm90dG9tOjFweCBzb2xpZCBzZXRjb2xvcigyKSAhaW1wb3J0YW50O1xufVxuI2NjYy1ub3RpZnktZGlzbWlzcyB7XG5kaXNwbGF5Om5vbmUgIWltcG9ydGFudDtcbn1cbiNjY2MsICNjY2MtdGl0bGUge1xuZm9udC1mYW1pbHk6IFwiRm9ydW1cIiwgc2VyaWYgIWltcG9ydGFudDtcbn1cblxuI2NjYy10aXRsZSB7XG4gLy90ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50Oztcbn1cblxuI2NjYyAjY2NjLW5vdGlmeSBwIHtcbmZvbnQtc2l6ZToyMHB4ICFpbXBvcnRhbnQ7XG59XG5cbiNjY2MgI2NjYy1ub3RpZnkge1xuICAgIGRpc3BsYXk6ZmxleCAhaW1wb3J0YW50O1xuICAgIGZsZXgtZGlyZWN0aW9uOmNvbHVtbiAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgICBcbkBpbmNsdWRlIG1hcHB5LWJwKHNtYWxsKSB7XG4gICAgcGFkZGluZzogJGVsZW0tcGFkICFpbXBvcnRhbnQ7XG59XG5cbn1cblxuI2NjYyAjY2NjLWJ1dHRvbi1ob2xkZXIgYnV0dG9uI2NjYy1yZWNvbW1lbmRlZC1zZXR0aW5ncyB7XG4vLyBiYWNrZ3JvdW5kLWNvbG9yOnNldGNvbG9yKDIpICFpbXBvcnRhbnQ7XG4vLyBjb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4jY2NjICNjY2MtYnV0dG9uLWhvbGRlciBidXR0b24jY2NjLXJlY29tbWVuZGVkLXNldHRpbmdzIHNwYW57XG4vLyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4vLyBjb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7XG5cbn1cbiNjY2MgLmNoZWNrYm94LXRvZ2dsZS0tZGFyayAuY2hlY2tib3gtdG9nZ2xlLXRvZ2dsZSB7XG5iYWNrZ3JvdW5kLWNvbG9yOnNldGNvbG9yKDIpICFpbXBvcnRhbnQ7XG59XG4iLCJAdXNlICdhYnN0cmFjdHMvaW5kZXgnIGFzICo7XG5cbi5oYW1idXJnZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMjdweDsgICAgICAvLyB3aGF0ZXZlciB5b3VyIGJ1cmdlciB3aWR0aCBpc1xuICAgIGhlaWdodDogNDNweDsgLy8zOHB4ICAgIC8vIGRpdHRvIGZvciBoZWlnaHRcbiAgICAvLyBtYXJnaW4tdG9wOi03cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIEBpbmNsdWRlIG1hcHB5LWJwKGxhcmdlKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAubGluZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIGJhY2tncm91bmQ6IHNldGNvbG9yKDEpO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZSwgb3BhY2l0eSAwLjNzIGVhc2U7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgIH1cbiAgXG4gICAgLy8gc3RhY2sgdGhlbSBhdCAxLzQsIDEvMiwgMy80IG9mIHRoZSBjb250YWluZXIgaGVpZ2h0XG4gICAgLmxpbmU6bnRoLWNoaWxkKDEpIHsgdG9wOiAyNSU7IH1cbiAgICAubGluZTpudGgtY2hpbGQoMikgeyB0b3A6IDUwJTsgfVxuICAgIC5saW5lOm50aC1jaGlsZCgzKSB7IHRvcDogNzUlOyB9XG4gIH1cbiAgLmhhbWJ1cmdlci0tYWN0aXZlIHtcbiAgICAubGluZTpudGgtY2hpbGQoMikge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgLmxpbmU6bnRoLWNoaWxkKDEpLFxuICAgIC5saW5lOm50aC1jaGlsZCgzKSB7XG4gICAgICB0b3A6IDUwJTsgICAgICAgICAgICAgIC8vIGJyaW5nIGJvdGggb3V0ZXIgbGluZXMgdG8gdGhlIHZlcnRpY2FsIGNlbnRlclxuICAgIH1cbiAgICAubGluZTpudGgtY2hpbGQoMSkge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIH1cbiAgICAubGluZTpudGgtY2hpbGQoMykge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICB9XG4gIH1cbiAgIiwiQHVzZSAnYWJzdHJhY3RzL2luZGV4JyBhcyAqO1xuXG4jbWFpbk5hdi5pcy1zdGlja3kge1xuICAgIFxuICAgIEBpbmNsdWRlIG1hcHB5LWJwKGxhcmdlKSB7XG4gICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7O1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgei1pbmRleDogMTAwMDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xuICAgIH1cbn1cblxuLm5hdmlnYXRpb24ge1xuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIC8vZm9udC1zaXplOiByZW0yKDE2cHgpO1xuICAgICAgICB3aWR0aDogMTAwdnc7XG4gICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2V0Y29sb3IoMyk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgIFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuM3MgZWFzZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKGxhcmdlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICAgIC8vIG1hcmdpbjogJGVsZW0tcGFkLXhzbSAwO1xuICAgICAgICB9XG4gICAgICAgIC5uYXZpZ2F0aW9uLS1vcGVuICYge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwdmg7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDBkdmg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9faW5uZXIge1xuICAgICAgICBwYWRkaW5nOiByZW0yKDEyMHB4KSAkZWxlbS1wYWQtc20gJGVsZW0tcGFkLXNtICRlbGVtLXBhZC1zbTsgLy9BZGp1c3RlZFxuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBAaW5jbHVkZSBjb250YWluZXItaW5uZXItc3R5bGVzO1xuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChsYXJnZSkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgIHBhZGRpbmc6MDtcbiAgICAgICAgfVxuICAgIH0gXG4gICAgJl9faXRlbXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAvLyBtYXJnaW46ICRlbGVtLXBhZC14c20gMDtcbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAobGFyZ2UpIHtcbiAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG4gICAgfSAgICAgXG4gICAgXG4gICAgJl9faXRlbSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiBzZXRjb2xvcigxKTtcbiAgICAgICAgQGluY2x1ZGUgdXBwZXJjYXNlLXNwYWNlZDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChsYXJnZSkge1xuICAgICAgICAgICAgbWFyZ2luOnJlbTIoMjhweCkgMDsgLy9BZGp1c3RlZFxuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKGxhcmdlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC5uYXZpZ2F0aW9uX19saW5rIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogc2V0Y29sb3IoMik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmID4gYSwgJiA+IHNwYW4sICYgPiBidXR0b24ge1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIC41cztcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0yKDE4cHgpOyBcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1tYWluO1xuICAgICAgICAgICAgQGluY2x1ZGUgdXBwZXJjYXNlLXNwYWNlZDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBwYWRkaW5nOnJlbTIoMTBweCkgMDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiRlbGVtLXBhZC14eHNtIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBtYXBweS1icChsYXJnZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6MDsgXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19mb290ZXIge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGVsZW0tcGFkLXNtO1xuICAgICAgICBwYWRkaW5nLXRvcDogJGVsZW0tcGFkO1xuICAgICAgICBtYXJnaW4tdG9wOiAkZWxlbS1wYWQ7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBzZXRjb2xvcig0KTtcbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAobGFyZ2UpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLWxpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6ICRlbGVtLXBhZC14eHNtO1xuICAgICAgICB9XG4gICAgICAgICYtaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogY2FsYygkZWxlbS1wYWQteHhzbSAtIDRweCk7XG4gICAgICAgICAgICBjb2xvcjogc2V0Y29sb3IoMik7XG4gICAgICAgICAgICAubmF2aWdhdGlvbl9fZm9vdGVyLWl0ZW0taWNvbiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi1saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiAkZWxlbS1wYWQteHhzbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIFxufSIsIkB1c2UgJ2Fic3RyYWN0cy9pbmRleCcgYXMgKjtcblxuXG5cbi5tZWdhbWVudSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogc2V0Y29sb3IoMyk7XG4gICAgXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMCAkZWxlbS1wYWQtbHJnO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIFxuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIFxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IFxuICAgIHotaW5kZXg6IDI7XG4gICAgcGFkZGluZzowIDtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLy8gaGVpZ2h0OiAwO1xuICAgIEBpbmNsdWRlIG1hcHB5LWJwKGxhcmdlKSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOjA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNDVzIGVhc2UsIG9wYWNpdHkgLjQ1cyBlYXNlLCB2aXNpYmlsaXR5IDBzIGxpbmVhciAuNDVzO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTExMCUpO1xuICAgICAgICBwYWRkaW5nOiAkZWxlbS1wYWQtbHJnICRlbGVtLXBhZDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLWluLW91dCwgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMC41cztcbiAgICAgICAgdG9wOmF1dG87XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tdG9wOnJlbTIoMjhweCk7XG4gICAgfVxuICAgIFxuICAgIC5tZWdhbWVudS0tYWN0aXZlICZ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjQ1cyBlYXNlLCBvcGFjaXR5IC40NXMgZWFzZSwgdmlzaWJpbGl0eSAwcztcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyAgLyogc2xpZGUgaW50byB2aWV3ICovXG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKGxhcmdlLCAnbWF4Jykge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2aWdhdGlvbl9faXRlbS0taGFzLW1lZ2FtZW51OmhvdmVyICYsXG4gICAgLm5hdmlnYXRpb25fX2l0ZW0tLWhhcy1tZWdhbWVudS5tZWdhbWVudS0taG92ZXItYWN0aXZlICYge1xuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChsYXJnZSkge1xuICAgICAgICAgICAgLy8gYm9yZGVyLXRvcDpyZW0yKDI4cHgpIHNvbGlkICNmZmZmZmY7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLWluLW91dCwgdmlzaWJpbGl0eSAwczsgXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfSBcbiAgICB9XG5cbiAgICAmX19jbG9zZS1idXR0b24ge1xuICAgICAgICAubWVnYW1lbnUtLWFjdGl2ZSAmIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBwYWRkaW5nOiRlbGVtLXBhZC14eHNtO1xuICAgICAgICAvLyB0b3A6MDtcbiAgICAgICAgLy8gbGVmdDpyZW0yKC04cHgpOyBcbiAgICAgICAgLy8gcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBzdmcge1xuICAgICAgICAgICAgLy8gaGVpZ2h0OjI0cHg7XG4gICAgICAgICAgICAvLyB3aWR0aDogMjR4O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKGxhcmdlKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX2lubmVyIHtcbiAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyLWlubmVyLXN0eWxlcztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKGxhcmdlKSB7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBtaW5tYXgocmVtMig2ODBweCksIDFmcik7IC8vQWRqdXN0ZWRcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21lbnUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICYtaXRlbSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbTIoMThweCk7IC8vQWRqdXN0ZWRcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAkbHMtYm9keTtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogc2V0Y29sb3IoMSk7XG4gICAgICAgICAgICAgICAgcGFkZGluZzpyZW0yKDRweCkgMDsgLy9Ob3QgQWRqdXN0ZWRcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHsgXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzZXRjb2xvcigyKTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xlZnQge1xuICAgICAgICBtYXJnaW4tbGVmdDokZWxlbS1wYWQteHNtO1xuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChsYXJnZSkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6MDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3JpZ2h0IHtcbiAgICAgICBtYXJnaW46JGVsZW0tcGFkLXhzbTtcbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAobGFyZ2UpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OjA7XG4gICAgICAgIH1cbiAgICAgICAgLmwtZ3JpZCB7XG4gICAgICAgICAgICBtYXJnaW46MDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19tZW51IHtcblxuICAgIH1cblxuICAgIC5wcm9kdWN0LWNhcmQge1xuICAgICAgICBjb2xvcjogc2V0Y29sb3IoMSk7XG4gICAgfVxufSIsIkB1c2UgJ2Fic3RyYWN0cy9pbmRleCcgYXMgKjtcbi5icmVhZGNydW1icyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogJGVsZW0tcGFkIDAgJGVsZW0tcGFkLXNtIDA7XG4gICAgZm9udC1zaXplOiByZW0yKDE0cHgpOyBcbiAgICBsZXR0ZXItc3BhY2luZzogJGxzLWJvZHk7XG4gICAgQGluY2x1ZGUgbWFwcHktYnAoeHNtYWxsKSB7XG4gICAgICBmb250LXNpemU6IHJlbTIoMTZweCk7XG4gICAgfVxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgY29sb3I6IHNldGNvbG9yKDEpO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgICY6ZW1wdHkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCIvXCI7XG4gICAgICAgIG1hcmdpbjogMCAwLjVlbTtcbiAgICAgICAgY29sb3I6IHNldGNvbG9yKDEpO1xuICAgICAgfVxuXG4gICAgICBcbiAgXG4gICAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICBcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1iYWNrIHtcbiAgICAgIC5hLWljb25fX3N2ZyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgfVxuXG4gICAgICBsaSB7XG4gICAgICAgXG4gICAgICAgIC8vICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAvLyAgICY6OmJlZm9yZSB7XG4gICAgICAgIC8vICAgICAgIGNvbnRlbnQ6IFwiPFwiO1xuICAgICAgICAvLyAgICAgICBtYXJnaW46IDAgMC41ZW07XG4gICAgICAgIC8vICAgICAgIGNvbG9yOiBzZXRjb2xvcigxKTtcbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vIH1cbiAgICAgIH1cbiAgICB9XG4gIH0iLCJAdXNlICdhYnN0cmFjdHMvaW5kZXgnIGFzICo7XG5cbi5mb290ZXIge1xuICAgICZfX3JvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIFxuICAgIH1cbiAgICAmX190b3Age1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzZXRjb2xvcig2KTtcbiAgICAgICAgcGFkZGluZzokZWxlbS1wYWQtbHJnIDA7XG4gICAgICAgICBAaW5jbHVkZSBtYXBweS1icChtZWRpdW0pIHtcbiAgICAgICAgICAgIHBhZGRpbmc6JGVsZW0tcGFkLWxyZyAkZWxlbS1wYWQgJGVsZW0tcGFkLWxyZyAkZWxlbS1wYWQ7XG4gICAgICAgICB9XG4gICAgfVxuICAgICZfX2NvbCB7XG4gICAgICAgIC5mb290ZXJfX3RvcCAmIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICBAaW5jbHVkZSBtYXBweS1icChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19pbm5lciB7XG4gICAgICAgIEBpbmNsdWRlIGNvbnRhaW5lci1pbm5lci1zdHlsZXM7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIC8vIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIDFmcik7XG4gICAgICAgIGdhcDogJGVsZW0tcGFkLXh4c207XG5cbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChtZWRpdW0pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6ICRlbGVtLXBhZC1scmc7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQGluY2x1ZGUgbWFwcHktYnAobWVkaXVtKSB7XG4gICAgICAgIC8vICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAvLyB9XG4gICAgICAgIC5mb290ZXJfX2J0bSAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOjA7XG4gICAgICAgIH1cbiAgICB9IFxuICAgICZfX2hlYWRpbmcge1xuICAgICAgICBtYXJnaW46MDtcbiAgICAgICAgIEBpbmNsdWRlIHVwcGVyY2FzZS1zcGFjZWQoKTtcbiAgICAgICAgcGFkZGluZzokZWxlbS1wYWQteHhzbSAwOyBcbiAgICAgICAgZm9udC1zaXplOiByZW0yKDIwcHgpO1xuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChsYXJnZSkge1xuICAgICAgICAgICAgcGFkZGluZzokZWxlbS1wYWQtc20gMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19pdGVtcyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNldGNvbG9yKDMpO1xuICAgICAgICBwYWRkaW5nOiRlbGVtLXBhZC14c20gMDtcbiAgICAgICAgLmZvb3Rlcl9faGVhZGluZy0tYWN0aXZlICsgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChtZWRpdW0pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBwYWRkaW5nOiRlbGVtLXBhZCAwO1xuICAgICAgICB9XG4gICAgICAgIC8vIEBpbmNsdWRlIG1hcHB5LWJwKG1lZGl1bSkge1xuICAgICAgICAvLyAgICAgcGFkZGluZzowO1xuICAgICAgICAvLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIC8vIH1cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0yKDE3cHgpO1xuICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiBzZXRjb2xvcigxKTtcbiAgICAgICAgICAgIHBhZGRpbmc6cmVtMig1cHgpIDA7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IHNldGNvbG9yKDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmX19zb2NpYWxzIHtcbiAgICAgICAgLmZvb3Rlcl9fYnRtICYge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6ICRlbGVtLXBhZC1zbTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkZWxlbS1wYWQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBtYXBweS1icChsYXJnZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmZvb3Rlcl9fdG9wICYge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICBAaW5jbHVkZSBtYXBweS1icChsYXJnZSkge1xuICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idG0geyAgICAgICBcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgcGFkZGluZzokZWxlbS1wYWQ7XG4gICAgICAgIC5mb290ZXJfX3NvY2lhbHMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGVnYWwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6JGVsZW0tcGFkLXNtO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19idG0tbGlua3Mge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIC8vIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDokZWxlbS1wYWQtc207XG4gICAgICAgIGZvbnQtc2l6ZTogJGZudC1zaXplLXNtYWxsO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgfVxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOnNldGNvbG9yKDEpO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBzZXRjb2xvcigyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19sZWdhbCB7XG4gICAgICAgIFxuICAgIH1cbn1cbiIsIkB1c2UgJ2Fic3RyYWN0cy9pbmRleCcgYXMgKjtcbi5ibG9ja3F1b3RlcyB7XG4gICAgbWFyZ2luOiAkZWxlbS1wYWQtbHJnO1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gICAgYmxvY2txdW90ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtMig1MHB4KTsgXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgICBjaXRlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICB9XG59IiwiQHVzZSAnYWJzdHJhY3RzL2luZGV4JyBhcyAqO1xuXG4uaGVybyB7XG5cbiAgICAmX193cmFwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6ICRtYXgtZnVsbC1ibGVlZDtcbiAgICAgICAgXG4gICAgICAgIC5mLWNhcm91c2VsX192aWV3cG9ydCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICB9XG4gICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgICZfX2lubmVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogJG1heC1mdWxsLWJsZWVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICAmX19pbWcge1xuICAgICAgICBtYXgtd2lkdGg6ICRtYXgtZnVsbC1ibGVlZDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAvLyB3aWR0aDogMTAwJTtcbiAgICAgICAgLy8gaGVpZ2h0OiBjYWxjKDUwdmggLSAxMTBweCk7XG4gICAgICAgIC8vIG1heC1oZWlnaHQ6IGNhbGMoNTB2aCAtIDExMHB4KTsgICAgICAgIFxuICAgICAgICB3aWR0aDogMTAwJTtcblxuXG4gICAgICAgICYtY2FwdGlvbiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYShzZXRjb2xvcig1KSwgMC44KTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzokZWxlbS1wYWQtc207XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgICAgIC8vUHJldmVudCBjYXB0aW9uIGZyb20gc2hvd2luZyBvbiBtb2JpbGUgd2hlbiB0YXBwaW5nIHRoZSBpbWFnIGFzIG5vIHdheSBvZiB1bmhvdmVyaW5nXG4gICAgICAgICAgICAgJjpob3ZlciAmLWNhcHRpb24ge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi0tYWN0aXZlICYtY2FwdGlvbiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgIG9iamVjdC1wb3NpdGlvbjogY2VudGVyOyBcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKHNtYWxsKSB7XG4gICAgICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2xpZGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX190eHQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiRlbGVtLXBhZDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXgtd2lkdGg6ICRoZXJvLXR4dC1tYXgtd2lkdGg7XG4gICAgICAgIGgxLCBoMiB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbTIoMjBweCk7XG4gICAgICAgICAgICBAaW5jbHVkZSB1cHBlcmNhc2Utc3BhY2VkKCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtMigyNnB4KTsgLy9BZGp1c3RlZFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIEBpbmNsdWRlIGNvbnRhaW5lci1pbm5lci1zdHlsZXM7XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKHNtYWxsKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZWxlbS1wYWQtbHJnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi1zdWIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgJl9faW1nIHtcbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJl9faW5uZXIge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyLWlubmVyLXN0eWxlcztcbiAgICAgICAgICAgICAuaGVyby1zdWItLWZ1bGwtd2lkdGggJiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi5oZXJvLS12aWRlbyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogNjd2aDtcbiAgICAuaGVyb19fdmlkZW8ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXI7IFxuICAgIH1cbiAgICAuaGVyb19fb3ZlcmxheSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6MDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLmhlcm9fX2lubmVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjM2MzYzNjM2MzZyZW07XG4gICAgICAgIC8qIGJhY2tncm91bmQ6IHJnYmEoMjQ2LCAyNDIsIDIzNSwgLjUpOyAqL1xuICAgICAgICBjb2xvcjogd2hpdGU7XG5cbiAgICB9XG59IiwiQHVzZSAnYWJzdHJhY3RzL2luZGV4JyBhcyAqO1xuQHVzZSAnYmFzZS91dGlsaXRpZXMnO1xuXG4vKj09PT09PT09PT09PT09PT09PT1cblZBUklBQkxFU1xuPT09PT09PT09PT09PT09PT09PT0qL1xuLy9DaGVja2JveGVzXG4kY2hlY2tib3gtd2lkdGg6MjVweDtcbiRjaGVja2JveC1oZWlnaHQ6ICRjaGVja2JveC13aWR0aDtcbiRjaGVja2JveC10aWNrOiAjZmZmZmZmO1xuJGNoZWNrYm94LXRpY2std2lkdGg6IDVweDtcbiRjaGVja2JveC10aWNrLWhlaWdodDogMTBweDtcbiRjaGVja2JveC1iZzogc2V0Y29sb3IoMyk7XG4kY2hlY2tib3gtdGljazogc2V0Y29sb3IoNik7XG4kY2hlY2tib3gtYWN0aXZlLWJnOiBzZXRjb2xvcigyKTtcblxuLy9SYWRpb3NcbiRyYWRpby13aWR0aDogMjRweDtcbiRyYWRpby1oZWlnaHQ6ICRyYWRpby13aWR0aDtcbiRyYWRpby1kb3Q6IHNldGNvbG9yKDIpOztcbiRyYWRpby1kb3Qtd2lkdGg6IDhweDtcbiRyYWRpby1kb3QtaGVpZ2h0OiAkcmFkaW8tZG90LXdpZHRoO1xuJHJhZGlvLWJvcmRlcjpzZXRjb2xvcigxKTtcbiRyYWRpby1hY3RpdmUtYm9yZGVyOiAkcmFkaW8tYm9yZGVyO1xuJHJhZGlvLWJnOiB0cmFuc3BhcmVudDtcbiRyYWRpby1hY3RpdmUtYmc6IHRyYW5zcGFyZW50O1xuXG5cbmlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0ICAge1xuICAgIGxldHRlci1zcGFjaW5nOiAkbHMtYm9keTtcbiAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBjdXJzb3I6bm90LWFsbG93ZWQ7XG4gICAgfVxufVxuaW5wdXRbdHlwZT1cIm51bWJlclwiXSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZy1yaWdodDogMDsgLyogcmVtb3ZlIHNwYWNlIHJlc2VydmVkIGZvciBzcGlubmVyICovXG4gIFxufVxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIGFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbn1cblxuLy8gaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbi8vIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuLy8gICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbi8vICAgICBtYXJnaW46IDA7XG4vLyB9XG5cblxuLnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJGNvbG9yLXBsYWNlaG9sZGVyO1xuICAgIG9wYWNpdHk6IDE7XG59XG4uZm9ybSB7XG5cbiAgICAmX19yb3cge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZWxlbS1tYXJnaW47XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgLy8gLmZvcm0tLWlubGluZSAmOm5vdCguZm9ybV9fcm93LS1ibG9jaykge1xuICAgICAgICAvLyAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgLy8gfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgICAgICBnYXA6ICRlbGVtLW1hcmdpbjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAoc21hbGwpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBcbiAgICB9XG5cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgcGFkZGluZzogJGVsZW0tcGFkLXNtICRlbGVtLXBhZC1zbSAkZWxlbS1wYWQtc20gMDtcblxuICAgICAgICAuZm9ybS0taW5saW5lICYge1xuICAgICAgICAgICAgcGFkZGluZzogJGVsZW0tcGFkLXNtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm0tLW5vbGFiZWwgJiwgJi0taGlkZSB7XG4gICAgICAgICAgICBAZXh0ZW5kIC51LXZpc3VhbGx5LWhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIG1hcmdpbjogJGVsZW0tcGFkLXNtIDAgMCAwO1xuICAgIH1cblxuICAgIC8qPT09PT09PT09PT09PT09PT09PVxuICAgIElOUFVUXG4gICAgPT09PT09PT09PT09PT09PT09PT0qL1xuICAgICZfX2lucHV0IHtcbiAgICAgICAgcGFkZGluZzogJGVsZW0tcGFkLXNtO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzZXRjb2xvcig1KTtcbiAgICAgICAgYm9yZGVyOjFweCBzb2xpZCAgc2V0Y29sb3IoNSk7XG4gICAgICAgIC5mb3JtLS13aGl0ZSAmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIH1cbiAgICAgICAgJi0td2J0biB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgQGV4dGVuZCAucGxhY2Vob2xkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBcbiAgICB9XG5cbiAgICAvKj09PT09PT09PT09PT09PT09PT1cbiAgICBURVhUIEFSRUFcbiAgICA9PT09PT09PT09PT09PT09PT09PSovXG4gICAgJl9fdGV4dGFyZWEge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogJGVsZW0tcGFkLXNtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzZXRjb2xvcig1KTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBtaW4taGVpZ2h0OiByZW0yKDE2NXB4KTsgLy9BZGp1c3RlZFxuICAgICAgICAuZm9ybS0td2hpdGUgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICB9XG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIEBleHRlbmQgLnBsYWNlaG9sZGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyo9PT09PT09PT09PT09PT09PT09XG4gICAgU0VMRUNUIERST1BET1dOU1xuICAgID09PT09PT09PT09PT09PT09PT09Ki9cbiAgICAmX19zZWxlY3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzZXRjb2xvcig1KTtcbiAgICAgICAvLyBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgXG4gICAgICAgLy8gcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOmF1dG87XG5cbiAgICAgICAgLmZvcm0tLXdoaXRlICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgfVxuICAgICAgICAmLWlucHV0IHtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLXBsYWNlaG9sZGVyO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzokZWxlbS1wYWQtc207XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0yKDMycHgpOyAvL0FkanVzdGVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuXG4gICAgICAgXG5cbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0yKDhweCk7IC8vQWRqdXN0ZWRcbiAgICAgICAgICAgIGNvbG9yOiBzZXRjb2xvcigyKTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKj09PT09PT09PT09PT09PT09PT1cbiAgICBDSEVDS0JPWEVTXG4gICAgPT09PT09PT09PT09PT09PT09PT0qL1xuICAgICZfX2NoZWNrYm94IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuXG4gICAgICAgICYtbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJl9fY2hlY2tib3gtc3R5bGVkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKCRjaGVja2JveC13aWR0aCArICRlbGVtLXBhZC1zbSk7XG4gICAgICAgIFxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAmIH4gJiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkZWxlbS1wYWQtc207XG4gICAgICAgIH1cbiAgICAgICAgJi10aWNrIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjaGVja2JveC1oZWlnaHQ7XG4gICAgICAgICAgICB3aWR0aDogJGNoZWNrYm94LXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNoZWNrYm94LXRpY2s7XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDlweDtcbiAgICAgICAgICAgICAgICB0b3A6IDVweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogJGNoZWNrYm94LXRpY2std2lkdGg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkY2hlY2tib3gtdGljay1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCAkY2hlY2tib3gtdGljaztcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDAgM3B4IDNweCAwO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMDtcblxuICAgICAgICAgICAgJn4uZm9ybV9fY2hlY2tib3gtc3R5bGVkLXRpY2sge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGVja2JveC1iZztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2Vkfi5mb3JtX19jaGVja2JveC1zdHlsZWQtdGljayB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNoZWNrYm94LWFjdGl2ZS1iZztcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAvKj09PT09PT09PT09PT09PT09PT1cbiAgICBSQURJT1xuICAgID09PT09PT09PT09PT09PT09PT09Ki9cbiAgICAmX19yYWRpby1zdHlsZWQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoJHJhZGlvLXdpZHRoICsgJGVsZW0tcGFkLXNtKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGVsZW0tcGFkLXNtO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtZG90IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcmFkaW8taGVpZ2h0O1xuICAgICAgICAgICAgd2lkdGg6ICRyYWRpby13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHJhZGlvLWJvcmRlcjtcblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRyYWRpby1kb3Qtd2lkdGg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkcmFkaW8tZG90LWhlaWdodDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmFkaW8tZG90O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuXG4gICAgICAgICAgICAmOmNoZWNrZWR+LmZvcm1fX3JhZGlvLXN0eWxlZC1kb3Qge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHJhZGlvLWFjdGl2ZS1ib3JkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJhZGlvLWFjdGl2ZS1iZztcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAmX19pbmxpbmUtYnRuIHtcbiAgICAgICAgcGFkZGluZzogMCAkZWxlbS1wYWQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNldGNvbG9yKDUpO1xuICAgICAgICBzdmcge1xuICAgICAgICAgICAgZmlsbDogc2V0Y29sb3IoMik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5mb3JtX190b2dnbGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgZm9udC1zaXplOiByZW0yKDE0cHgpOyBcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCArIGxhYmVsIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6MXB4IHNvbGlkIHNldGNvbG9yKDIpO1xuICAgICAgICAgICAgICAgIC8vIGJhY2tncm91bmQ6IHNldGNvbG9yKDIpOztcbiAgICAgICAgICAgICAgICAvLyBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiA2cHggMTBweDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICAgICAgICBjb2xvcjogc2V0Y29sb3IoMSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICAgICAgfVxufVxuXG5cbi5mb3JtLWFkZHJlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG5cbiAgICAgLmZvcm1fX3JvdyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZW0yKDMwMHB4KSAxZnI7XG5cbiAgICAgICAgJi5mb3JtX19yb3ctLXdpZGUge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICAvL2JhY2tncm91bmQ6I2ZmZmZmZjtcbiAgICB9XG4gICAgLmZvcm1fX2lucHV0IHtcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgIH1cbiAgICAuZm9ybV9fbGFiZWwge1xuICAgICAgICAvLyBwYWRkaW5nOiAkZWxlbS1wYWQtc207XG4gICAgICAgIFxuICAgIH1cbiAgICBcbn1cbi8qPT09PUNPTlRBQ1QgRk9STT09PT0qL1xuLmZvcm0tY29udGFjdCB7XG4gICAgJl9faWNvbiB7XG4gICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZWxlbS1wYWQtbHJnO1xuICAgICAgICBjb2xvcjogc2V0Y29sb3IoMik7XG4gICAgfVxuICAgICZfX3dyYXAge1xuICAgICAgICBwYWRkaW5nOiAkZWxlbS1wYWQ7XG4gICAgICAgIGJvcmRlcjoycHggc29saWQgc2V0Y29sb3IoNSk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAoc21hbGwpIHtcbiAgICAgICAgICAgICBwYWRkaW5nOiAkZWxlbS1wYWQtbHJnICRlbGVtLXBhZC1scmcgJGVsZW0tcGFkICRlbGVtLXBhZC1scmc7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgfVxuXG4gICAgJl9faW5uZXIge1xuICAgICAgICB3aWR0aDogMTAwJTs7XG4gICAgICAgIG1heC13aWR0aDogcmVtMigxMjAwcHgpO1xuICAgIH1cbn1cblxuXG4iLCJAdXNlICdhYnN0cmFjdHMvaW5kZXgnIGFzICo7XG46cm9vdCB7XG4gIC0taHNmLWdsb2JhbF9fZm9udC1mYW1pbHk6ICN7JGZvbnQtbWFpbn07XG4gIC0taHNmLWdsb2JhbF9fZm9udC1zaXplOiAxOHB4O1xuICAtLWhzZi1nbG9iYWxfX2NvbG9yOiAje3NldGNvbG9yKDEpfTtcbiAgLS1oc2YtYmFja2dyb3VuZF9fYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgLy9Sb3dzXG4gIC0taHNmLXJvd19faG9yaXpvbnRhbC1zcGFjaW5nOiAjeyRlbGVtLXBhZH07XG5cblxuICAvL0J1dHRvbnNcbiAgLS1oc2YtYnV0dG9uX19mb250LWZhbWlseTogI3skZm9udC1tYWlufTtcbiAgLS1oc2YtYnV0dG9uX19jb2xvcjogI3tzZXRjb2xvcigyKX07XG4gIC0taHNmLWJ1dHRvbl9fYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC0taHNmLWJ1dHRvbl9fYm9yZGVyLXJhZGl1czogbm9uZTtcblxuXG5cblxuICAvL0lOcHV0c1xuICAtLWhzZi1maWVsZC1pbnB1dF9fYmFja2dyb3VuZC1jb2xvcjogI3tzZXRjb2xvcig1KX07XG4gIC0taHNmLWZpZWxkLWlucHV0X19ib3JkZXItY29sb3I6ICN7c2V0Y29sb3IoNSl9O1xuICAtLWhzZi1maWVsZC1pbnB1dF9fcGFkZGluZzogI3skZWxlbS1wYWQtc219O1xuICAgIC0taHNmLWZpZWxkLWlucHV0X19wbGFjZWhvbGRlci1jb2xvcjogI3tzZXRjb2xvcigxKX07XG5cbiAgLy9DaGVja2JveGVzICBcbiAgICAtLWhzZi1maWVsZC1jaGVja2JveF9fYmFja2dyb3VuZC1jb2xvcjogI3tzZXRjb2xvcig1KX07XG4gICAgLS1oc2YtZmllbGQtY2hlY2tib3hfX2NvbG9yOiAje3NldGNvbG9yKDIpfTtcbn1cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgIC0taHNmLWZpZWxkLWlucHV0X19wYWRkaW5nOiAxMHB4O1xuICAgIC8vICAtLWhzZi1maWVsZC1pbnB1dF9fYm9yZGVyLWNvbG9yOiAje3NldGNvbG9yKDEpfTtcbn1cblxuLmhzZmMtQnV0dG9ue1xuICAgICAgLS1oc2YtZGVmYXVsdC1idXR0b25fX2JvcmRlci1jb2xvcjogI3tzZXRjb2xvcigyKX07XG4gIC0taHNmLWRlZmF1bHQtYnV0dG9uX19ib3JkZXItd2lkdGg6MXB4IDAgMXB4IDA7XG4gIC0taHNmLWRlZmF1bHQtYnV0dG9uX19ib3JkZXItc3R5bGU6IHNvbGlkO1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgcGFkZGluZzogcmVtMig2cHgpIHJlbTIoMjBweCk7XG4gICAgY29sb3I6ICRidG4tbWFpbjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgQGluY2x1ZGUgdXBwZXJjYXNlLXNwYWNlZDtcbiAgICAvLyBtYXJnaW4tbGVmdDphdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OmF1dG8gIWltcG9ydGFudDtcbiAgICAmOmhvdmVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJ0bi1zaW1wbGUtc3R5bGU7XG5cbn1cblxuIiwiLnByb2R1Y3RfX3RlY2gtdGFibGUge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG59IiwiQHVzZSAnYWJzdHJhY3RzL2luZGV4JyBhcyAqO1xuLnByb2ZpbGUtd2lkZ2V0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogc2V0Y29sb3IoMyk7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogdmFyKC0taGVhZGVyLWhlaWdodCk7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDUwMG1zIGVhc2UsIHZpc2liaWxpdHkgNTAwbXMgZWFzZTtcblxuICAgICZfX2lubmVyIHtcbiAgICAgICAgcGFkZGluZzokZWxlbS1wYWQtc207XG4gICAgICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuXG4gICAgJi5pcy1vcGVuIHtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgbWF4LWhlaWdodDogcmVtMigzMjBweCk7IC8vQWRqdXN0ZWRcbiAgICAgICAgLy8gaGVpZ2h0OiBhdXRvO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgICBwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGVsZW0tcGFkLXh4c207XG4gICAgfVxuICAgIFxuICAgIC5mb3JtX19pbnB1dCwgLmZvcm1fX2lubGluZS1idG4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIH1cblxuICAgICZfX3JlZ2lzdGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufSIsIkB1c2UgJ2Fic3RyYWN0cy9pbmRleCcgYXMgKjtcblxuLmJ0biB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgcGFkZGluZzogcmVtMig2cHgpIHJlbTIoMjBweCk7XG4gICAgY29sb3I6ICRidG4tbWFpbjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgQGluY2x1ZGUgdXBwZXJjYXNlLXNwYWNlZDtcbiAgICBib3JkZXI6MXB4IHNvbGlkICRidG4tbWFpbjtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIC8vIGZvbnQtc2l6ZTogcmVtMigxNnB4KTtcbiAgICAvLyBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgIC8vICAgICBmb250LXNpemU6IHJlbTIoMThweCk7XG4gICAgLy8gfVxuICAgIGZvbnQtc2l6ZTogcmVtMigxNnB4KTsgXG4gICAgLmJ0biB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtMigyMHB4KTsgLy9BZGp1c3RlZFxuICAgIH1cbiAgICAmLS1yaWdodCB7XG4gICAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgIH1cbiAgICAmX193cmFwIHtcbiAgICAgICAgcGFkZGluZy10b3A6ICRlbGVtLXBhZC1zbTtcbiAgICB9XG4gICAgLmwtc2l0ZV9fbWFpbiAubC1jb250ZW50ID4gJiwgLmwtc2l0ZV9fbWFpbiAubC1ncmlkX19jb2wgPiAmIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGVsZW0tcGFkLXNtO1xuICAgIH1cbiAgICAmX19ibG9jayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46ICRlbGVtLXBhZC1zbSAwICFpbXBvcnRhbnQ7XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgJi0tcmlnaHQge1xuICAgICAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgIH1cbiAgICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1zbSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OmF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDphdXRvO1xuICAgIH1cbiAgICAmOmhvdmVyLCBhLmNhcmQ6aG92ZXIgJiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidG4tbWFpbi1ob3ZlcjtcbiAgICAgICAgY29sb3I6ICRidG4tbWFpbi1ob3Zlci10eHQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAmLS1hbHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnRuLWFsdDtcbiAgICAgICAgcGFkZGluZzogJGVsZW0tcGFkLXNtO1xuICAgICAgICBjb2xvcjogJGJ0bi1hbHQtdHh0O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIFxuICAgICAgICAmOmhvdmVyLCBhLmNhcmQ6aG92ZXIgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnRuLWFsdC1ob3ZlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkYnRuLWFsdC1ob3Zlci10eHQ7XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLW91dGxpbmV7XG4gICAgICAgIEBpbmNsdWRlIGJ0bi1vdXRsaW5lLXN0eWxlO1xuICAgIH1cblxuICAgICYtLWJ1eSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNldGNvbG9yKDIpO1xuICAgIH1cblxuXG4gICAgJi0tc2ltcGxlIHtcbiAgICAgICAgQGluY2x1ZGUgYnRuLXNpbXBsZS1zdHlsZTtcbiAgICAgICAgLy8gcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgLy8gYm9yZGVyLWxlZnQ6bm9uZTtcbiAgICAgICAgLy8gYm9yZGVyLXJpZ2h0Om5vbmU7XG4gICAgICAgIC8vIGNvbG9yOiBzZXRjb2xvcigyKTtcbiAgICAgICAgLy8gcGFkZGluZzogcmVtMigxMHB4KSByZW0yKDRweCkgcmVtMigxMHB4KSByZW0yKDEwcHgpOyAvL0FsbG93IGZvciBsZXR0ZXIgc3BhY2luZyB0byByaWdodCBvZiBmaW5hbCBjaGFyYWN0ZXJcbiAgICAgICAgLy8gJjpob3ZlciwgYS5jYXJkOmhvdmVyICYge1xuICAgICAgICAvLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIC8vICAgICBjb2xvcjogc2V0Y29sb3IoMik7XG4gICAgICAgIC8vICAgICAmOjphZnRlciwgJjo6YmVmb3JlIHtcbiAgICAgICAgLy8gICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy8gJjo6YWZ0ZXIsICY6OmJlZm9yZXtcbiAgICAgICAgLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIC8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBcbiAgICAgICAgLy8gICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIC8vICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIC8vICAgICBiYWNrZ3JvdW5kOiBzZXRjb2xvcigyKTtcbiAgICAgICAgLy8gICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjNzIGVhc2U7XG4gICAgICAgIC8vIH1cblxuICAgICAgICAvLyAmOjphZnRlciB7XG4gICAgICAgIC8vICAgICB0b3A6IDA7XG4gICAgICAgIC8vICAgICByaWdodDogMDtcbiAgICAgICAgLy8gfVxuICAgICAgICAvLyAmOjpiZWZvcmUge1xuICAgICAgICAvLyAgICAgYm90dG9tOiAwO1xuICAgICAgICAvLyAgICAgbGVmdDogMDtcbiAgICAgICAgLy8gfVxuICAgIH1cbn1cbiAuYnRuLXJlc2V0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA1cHg7XG5cbiAgICBzdmcge1xuICAgICAgICBmaWxsOnNldGNvbG9yKDIpO1xuICAgIH1cbn1cblxuLmJ0bi1iYWNrdG90b3Age1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6ICRlbGVtLXBhZC14c207XG4gICAgQGluY2x1ZGUgdGl0bGVjYXNlLXNwYWNlZCgpO1xuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogc2V0Y29sb3IoMik7XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGNvbG9yOiBzZXRjb2xvcigyKTtcbiAgICB9XG59XG5cbi8qPT09QnV0dG9uIExheW91dD09PSovXG4uYnRuX19ncm91cCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBnYXA6ICRlbGVtLXBhZDtcbiAgICBtYXJnaW4tYm90dG9tOiAkZWxlbS1wYWQ7XG4gICAgJi0tMiB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAoc21hbGwpIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICAgICB9XG4gICAgfVxuICAgICYtLTMge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAoc21hbGwpIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICAgICB9XG4gICAgICAgICBAaW5jbHVkZSBtYXBweS1icChtZWRpdW0pIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgICAgICB9XG4gICAgfVxuICAgICYtLTQge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAoc21hbGwpIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICAgICB9XG4gICAgICAgICBAaW5jbHVkZSBtYXBweS1icChtZWRpdW0pIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gICAgICAgICB9XG4gICAgICAgIFxuICAgIH1cblxuICAgICYtaXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG59IiwiQHVzZSAnYWJzdHJhY3RzL2luZGV4JyBhcyAqO1xuXG4uaGVhZGVyX19zZWFyY2gge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAuNXJlbTtcbiAgICBtYXJnaW4tdG9wOjFweDsgLy9qdXN0IHNoaWZ0IHRoZSBpY29uIGRvd24gc2xpZ2h0bHkgdG8gYWxpZ24gd2l0aCBoYW1idXJnZXJcbiAgICAvLyBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgbWFwcHktYnAobGFyZ2UpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICYtaW5wdXQtd3JhcCB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxufVxuXG4uaGVhZGVyX19zZWFyY2gtaW5wdXR7XG4gICAgcGFkZGluZzogLjRyZW0gLjZyZW07XG4gICAgYm9yZGVyOm5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAmOmZvY3VzLXdpdGhpbiwgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICAgIC8vIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG5cbiAgICAvLyAgQGluY2x1ZGUgbWFwcHktYnAobGFyZ2UpIHtcblxuICAgIC8vICAgICB3aWR0aDogMTAwJTtcbiAgICAvLyAgfVxuICAgICYtd3JhcCB7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgIFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTpyZW0yKC02NXB4KTsgLy9BZGp1c3RlZFxuICAgICAgIHBhZGRpbmc6JGVsZW0tcGFkLXNtO1xuICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIFxuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChsYXJnZSkge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMjAwbXMgZWFzZSwgb3BhY2l0eSAyMDBtcyBlYXNlLCBwYWRkaW5nIDIwMG1zIGVhc2U7XG4gICAgICAgICAgICBwYWRkaW5nOjAgMCAwIHJlbTIoMjhweCk7IC8vQWRqdXN0ZWRcbiAgICAgICAgICAgIGJvdHRvbTphdXRvO1xuICAgICAgICB9XG4gICAgICAgIC5pcy1vcGVuICYge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7ICAgICAgICAgICAvKiBhZGp1c3QgKi9cbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHNldGNvbG9yKDIpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2V0Y29sb3IoMyk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgc2V0Y29sb3IoMik7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE0cmVtOyAgICBcbiAgICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBcblxuICAgICYtaW5uZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgcGFkZGluZy1yaWdodDpyZW0yKDNweCk7XG4gICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDkwMG1zIGVhc2U7XG4gICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgLmlzLW9wZW4gJiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgfVxuICAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAobGFyZ2UpIHtcbiAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgIH1cbiAgICB9XG5cbn1cblxuXG5cbiNzZWFyY2gtdHlwZWFoZWFkIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA5OTk5O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCA0cHggNHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YwZjBmMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2U7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4gICAgfVxuXG4gICAgLnNlYXJjaC10eXBlYWhlYWRfX25hbWUge1xuICAgICAgY29sb3I6ICMyMjI7XG4gICAgfVxuXG4gICAgLnNlYXJjaC10eXBlYWhlYWRfX2NhdGVnb3J5IHtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgIGNvbG9yOiAjODg4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgfVxuICB9XG59XG4vL1NlYXJjaCByZXN1bHRzIHBhZ2Vcbi5zZWFyY2hfX2l0ZW0ge1xuICAgIGgzIHtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6ICRscy1ib2R5O1xuICAgIH1cbn1cbi5zZWFyY2hfX3Jlc3VsdHMge1xuICAgIGgyIHtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6ICRscy1ib2R5O1xuICAgIH1cbn0iLCJAdXNlICdhYnN0cmFjdHMvaW5kZXgnIGFzICo7XG4uZmlsdGVycy1iYXIgeyAgXG4gICAgJl9fZmlsdGVycyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgIGdhcDokZWxlbS1wYWQteHNtO1xuXG4gICAgICAgICYtaXRlbSB7XG4gICAgICAgICAgICAuZmlsdGVycy1iYXJfX2ZpbHRlcnMtLWJsb2cgJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAoc21hbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgICAgICAgICAgZ2FwOiRndXR0ZXI7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJ0bi1yZXNldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0aXRsZWNhc2Utc3BhY2VkKCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6LTIuMDVyZW07XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIC8vICBAaW5jbHVkZSBtYXBweS1icCh4c21hbGwpIHtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCJAdXNlICdhYnN0cmFjdHMvaW5kZXgnIGFzICo7XG5cbi5jYXJkcyB7XG4gICAgLy8gJl9fd3JhcCB7XG4gICAgICAgIFxuICAgIC8vICAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgIC8vICAgICAgICAgcGFkZGluZzowICRlbGVtLXBhZDtcbiAgICAvLyAgICAgfVxuXG4gICAgLy8gICAgICYtLWNvbnRhaW5lZCB7XG4gICAgLy8gICAgICAgICBtYXJnaW4tbGVmdDphdXRvO1xuICAgIC8vICAgICAgICAgbWFyZ2luLXJpZ2h0OmF1dG87XG4gICAgLy8gICAgICAgICBAaW5jbHVkZSBjb250YWluZXItaW5uZXItc3R5bGVzO1xuICAgIC8vICAgICB9XG4gICAgLy8gfVxufVxuXG5hLmNhcmQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbn1cbi5jYXJkIHtcbiAgICAvLyBoZWlnaHQ6IDYwdmg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbi1ib3R0b206ICRlbGVtLXBhZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6MCAkZWxlbS1wYWQtc207XG4gICAgLmwtZ3JpZCAmIHsgICAgXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIC8vIEBpbmNsdWRlIG1hcHB5LWJwKHNtYWxsKSB7XG4gICAgICAgIC8vICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAvLyB9XG4gICAgfVxuICAgIC8vIC5sLWdyaWQgLmwtZ3JpZF9fY29sOmxhc3QtY2hpbGQgJntcbiAgICAvLyAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAvLyB9XG4gICAgLmwtZ3JpZCAubC1ncmlkX19jb2w6bGFzdC1jaGlsZCAme1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgJi0taW1nIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gICAgXG4gICAgJl9faW1nIHsgXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47IFxuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgICAgICAgICAgLy8gbWF4LWhlaWdodDogNjB2aDtcbiAgICAgICAgICAgIHBhZGRpbmc6MDtcbiAgICAgICAgICAgIC8vIGFzcGVjdC1yYXRpbzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICAvLyB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIC8vIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBvcnRyYWl0IHtcbiAgICAgICAgICAgIC8vQWRqdXN0IGZvciBkZXNrdG9wIG9ubHlcbiAgICAgICAgICAgIGltZ3tcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgICAgICAgICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiA3MCAvIDk5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgXG4gICAgJl9fZGV0YWlscyB7XG4gICAgICAgIHBhZGRpbmc6ICRlbGVtLXBhZDtcbiAgICB9XG5cbiAgICAmX19oZWFkZXIge1xuICAgICAgICBmb250LXNpemU6IHJlbTIoMjBweCk7IC8vQWRqdXN0ZWRcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKHNtYWxsKSB7XG4gICAgICAgICAgIGZvbnQtc2l6ZTogcmVtMigyNnB4KTsgLy9BZGp1c3RlZFxuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKG1lZGl1bSkge1xuICAgICAgICAvLyAgICBmb250LXNpemU6IHJlbTIoNDBweCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fdHh0IHtcbiAgICAgICAgcGFkZGluZzokZWxlbS1wYWQgJGVsZW0tcGFkIDAgJGVsZW0tcGFkO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1heC13aWR0aDogJGNhcmQtdHh0LW1heC13aWR0aDtcbiAgICAgICAgJiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAgJiA+ICo6bm90KC5idG4pIHtcbiAgICAgICAgICAgIGNvbG9yOiBzZXRjb2xvcigxKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBmb250LXNpemU6IHJlbTIoMjhweCk7XG4gICAgICAgIGJyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgICAgICAgICAgcGFkZGluZzokZWxlbS1wYWQtbHJnICRlbGVtLXBhZCAwICRlbGVtLXBhZDtcbiAgICAgICAgICAgIC8vIHBhZGRpbmctdG9wOiRlbGVtLXBhZC1zbTtcbiAgICAgICAgICAgIGJyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vQ2FyZCBwb3Agb24gaG92ZXJcbmEuY2FyZC0tcG9wIHtcbiAgICB0cmFuc2l0aW9uOiBzY2FsZSAwLjNzIGVhc2U7XG4gICAgLmNhcmRfX2ltZy0tbGFuZHNjYXBlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgICAgICB9XG4gICAgICAgICYgKyAuY2FyZF9fdHh0IC5jYXJkX19oZWFkZXIge1xuICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgJjpob3ZlciB7XG4gICAgICAgIHNjYWxlOiAxLjAyO1xuICAgICAgICBcbiAgICAgICAgLmNhcmRfX2ltZy0tbGFuZHNjYXBlIHtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHNldGNvbG9yKDUpLCAwLjcpO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmICsgLmNhcmRfX3R4dCAuY2FyZF9faGVhZGVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogc2V0Y29sb3IoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLyo9PT09PT1cbkNBUkQgbGFuZHNjYXBlXG49PT09PT0qL1xuLmNhcmRfX2ltZy0tbGFuZHNjYXBlIHtcbiAgICBhc3BlY3QtcmF0aW86IDIgLyAxO1xuICAgIHBhZGRpbmc6MDtcbiAgICAuY2FyZF9faW1nIHtcbiAgICAgICAgXG4gICAgfVxufVxuXG4vKj09PT09PVxuQ0FSRCBXSURFXG49PT09PT0qL1xuLmNhcmQge1xuXG4gICAgLy8gJjpub3QoOmhhcyh+IC5jYXJkKSkgKyBkaXYge1xuICAgIC8vICAgICBtYXJnaW4tdG9wOiAkZWxlbS1wYWQ7XG4gICAgLy8gfVxuICAgIC5jYXJvdXNlbCAmIHtcbiAgICAgICAgcGFkZGluZzowO1xuICAgICAgICBtYXJnaW4tYm90dG9tOjA7XG4gICAgICAgIC5jYXJkX190eHQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgLmNhcmRfX2hlYWRlciB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTowO1xuICAgICAgICB9ICAgICAgICAgICAgXG4gICAgfVxuICAgICYtLXdpZGUge1xuICAgICAgICBwYWRkaW5nOjA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1heC13aWR0aDogJG1heC1mdWxsLWJsZWVkO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgICAgICAgICAgLy9oZWlnaHQ6IDkwdmg7XG4gICAgICAgIH1cbiAgICAgICAgLmNhcmRfX2ltZyB7XG4gICAgICAgICAgICBwYWRkaW5nOjA7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5jYXJkX19oZWFkZXIge1xuICAgICAgICAgICAgLy8gbWFyZ2luLXRvcDpyZW0yKDMycHgpOyAvL0FkanVzdGVkXG4gICAgICAgIH1cbiAgICAgICAgLmNhcmRfX3R4dCB7XG4gICAgICAgICAgICAvLyBAaW5jbHVkZSBjb250YWluZXItaW5uZXItc3R5bGVzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAkY2FyZC13aWRlLXR4dC1tYXgtd2lkdGg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1zaW1wbGUge1xuICAgICAgICBwYWRkaW5nOjA7XG4gICAgICAgIC5jYXJkX190eHQge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6JGVsZW0tcGFkLXh4c20gMCAwIDA7XG4gICAgICAgIH1cbiAgICAgICAgLmNhcmRfX2hlYWRlciB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbTIoMThweCk7IFxuICAgICAgICAgICAgY29sb3I6IHNldGNvbG9yKDEpO1xuICAgICAgICAgICAgcGFkZGluZzowO1xuICAgICAgICAgICAgQGluY2x1ZGUgdXBwZXJjYXNlLXNwYWNlZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLS10ZXh0IHtcbiAgICAgICAgcGFkZGluZzowO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAuY2FyZF9fdHh0IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogJHRleHQtbWF4LXdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIC8vIC5jYXJvdXNlbCAmIHtcbiAgICAgICAgLy8gICAgIC5jYXJkX190eHQge1xuICAgICAgICAvLyAgICAgICAgcGFkZGluZy10b3A6ICRlbGVtLXBhZDsgXG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH1cbiAgICB9XG4gICAgXG4gICAgJi0taW1nIHtcbiAgICAgICAgcGFkZGluZzowO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC5jYXJkX19pbWcge1xuICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6MDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuNyk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNhcmRfX3R4dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6MDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOjA7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgLmNhcmRfX2hlYWRlciB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLmNhcmQge1xuICAgICYtLW92ZXJsYXkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLmNhcmRfX3R4dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDIwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgXG59XG5cblxuLyo9PT09PT09PT09XG5DQVJEIENPTlRBQ1Rcbj09PT09PT09PT09Ki9cblxuLmNhcmQtY29udGFjdHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzZXRjb2xvcig1KTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgJl9faW5uZXIge1xuICAgICAgICBwYWRkaW5nOiAkZWxlbS1wYWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAoc21hbGwpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRlbGVtLXBhZC1scmcgJGVsZW0tcGFkLXhscmc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fcm93IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTokZWxlbS1tYXJnaW47XG4gICAgfVxuICAgIFAge1xuICAgICAgIG1hcmdpbjowO1xuICAgIH1cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGNvbG9yOiBzZXRjb2xvcigxKSAhaW1wb3J0YW50O1xuICAgICAgICBAaW5jbHVkZSB1cHBlcmNhc2Utc3BhY2VkKCk7XG4gICAgICAgIC8vbWFyZ2luOjA7XG4gICAgfVxuICAgIGEgIHtcbiAgICAgICAgY29sb3I6IHNldGNvbG9yKDEpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IHNldGNvbG9yKDIpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4jZ29vZ2xlbWFwIHtcbiAgICAvL0NhcmQgbG9hZGluZyBpbnNpZGUgb2YgZ29vZ2xlIG1hcFxuICAgIC5jYXJkLWNvbnRhY3RfX2lubmVyIHtcbiAgICAgICAgcGFkZGluZzoxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6bm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAuY2FyZC1jb250YWN0X19yb3cge1xuICAgICAgICBtYXJnaW46MCAhaW1wb3J0YW50O1xuICAgICAgICAmLmNhcmQtY29udGFjdF9fdGl0bGUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfSAgXG4gICAgcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDlweCAhaW1wb3J0YW50O1xuICAgIH1cbn0iLCJAdXNlICdhYnN0cmFjdHMvaW5kZXgnIGFzICo7XG4udmlkZW8tdGh1bWIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogcmVtMig5MDBweCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnZpZGVvLXRodW1iIHZpZGVvIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAvLyBjdXJzb3I6IHBvaW50ZXI7XG59IiwiQHVzZSAnYWJzdHJhY3RzL2luZGV4JyBhcyAqO1xuLmNoZWNrb3V0IHtcbiAgICAmX19zdGVwcyB7XG5cbiAgICB9XG5cbiAgICAmX19kZXRhaWxzIHtcbiAgICAgICAgLmwtZ3JpZCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOjA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fc3RlcCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVtMigxOTBweCkgMWZyOyAvL0FkanVzdGVkXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRlbGVtLXBhZC1scmc7XG5cbiAgICAgICAgJi1zdWJ0aXRsZXtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6MDtcbiAgICAgICAgfVxuICAgICAgICAmLWNvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzokZWxlbS1wYWQgJGVsZW0tcGFkLXNtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi10aXRsZSB7XG4gICAgICAgICAgICAvLyBsZXR0ZXItc3BhY2luZzogJGxzLWJvZHk7XG4gICAgICAgICAgICBtYXJnaW46MDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtcm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRlbGVtLXBhZDtcblxuXG4gICAgICAgIH0gIFxuICAgICAgICAmLWRldGFpbHMge1xuICAgICAgICAgICAgLmwtZ3JpZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDowO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi1zdGVwLW9wdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNldGNvbG9yKDYpO1xuICAgICAgICBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICYtbm9wYWQge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDokZWxlbS1wYWQteHNtO1xuICAgICAgICAgICAgcGFkZGluZzogJGVsZW0tcGFkICRlbGVtLXBhZC14c207XG4gICAgICAgIH1cbiAgICB9XG5cblxufVxuXG4uY2hlY2tvdXQtc3RlcC1vcHRpb24ge1xuICAgIC5jaGVja291dC1zdGVwLW9wdGlvbl9faWNvbi0tY2hlY2tlZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IFxuICAgIH1cbiAgICAuY2hlY2tvdXQtc3RlcC1vcHRpb25fX2ljb24tLXVuY2hlY2tlZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyBcbiAgICB9XG59XG4uY2hlY2tvdXQtc3RlcC1vcHRpb24tLWFjdGl2ZSwgLnUtY29sbGFwc2FibGUtdG9nZ2xlOmNoZWNrZWQge1xuXG4gICAgKy51LWNvbGxhcHNhYmxlLXRvZ2dsZV9fdGl0bGUsIC51LWNvbGxhcHNhYmxlLXRvZ2dsZV9fdGl0bGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzZXRjb2xvcigzKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBzZXRjb2xvcigyKTtcbiAgICAgICAgLmNoZWNrb3V0LXN0ZXAtb3B0aW9uX19pY29uLS1jaGVja2VkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyBcbiAgICAgICAgfVxuICAgICAgICAuY2hlY2tvdXQtc3RlcC1vcHRpb25fX2ljb24tLXVuY2hlY2tlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lOyBcbiAgICAgICAgfVxuICAgICAgICArLmNoZWNrb3V0X19zdGVwLWNvbnRlbnQge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBzZXRjb2xvcigyKTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCJAdXNlICdhYnN0cmFjdHMvaW5kZXgnIGFzICo7XG4ucHJvZHVjdCB7XG5cbiAgICAmLWNhcmQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNvbG9yOiBzZXRjb2xvcigxKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBAaW5jbHVkZSB1cHBlcmNhc2Utc3BhY2VkO1xuICAgICAgICAgICAgJi1jb2xvdXJ3YXkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0aXRsZWNhc2Utc3BhY2VkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubWVnYW1lbnUgJiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0yKDE0cHgpOyAvL0FkanVzdGVkXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJl9faW1nIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJi1saWZlc3R5bGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBpbnNldDogMDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpob3ZlciAmLWxpZmVzdHlsZSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmX19kb3dubG9hZCB7XG4gICAgICAgICAgICBjb2xvcjpzZXRjb2xvcigxKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2UsIGNvbG9yIDAuM3MgZWFzZTtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOnNldGNvbG9yKDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmX19mb290ZXIge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6JGVsZW0tcGFkLXh4c207XG4gICAgICAgIH1cbiAgICAgICAgJl9fcmliYm9uLXdyYXAge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuXG4gICAgICAgICAgICAucHJvZHVjdC1jYXJkX19yaWJib24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogNDAwcHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHVwcGVyY2FzZS1zcGFjZWQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNXB4IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2V0Y29sb3IoNSk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHNldGNvbG9yKDIpO1xuICAgICAgICAgICAgICAgIFxuXG4gICAgICAgICAgICAgICAgLm1lZ2FtZW51ICYge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbTIoMTBweCk7IC8vQWRqdXN0ZWRcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdXBwZXJjYXNlLXNwYWNlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiQHVzZSAnYWJzdHJhY3RzL2luZGV4JyBhcyAqO1xuXG5cblxuLm5ld3NsZXR0ZXItc2lnbnVwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzZXRjb2xvcigzKTtcbiAgICAgICAgcGFkZGluZzp2YXIoLS1zZWN0aW9uLXNwYWNlKSAkZWxlbS1wYWQ7XG4gICAgJl9faW5uZXIge1xuICAgICAgICBAaW5jbHVkZSBjb250YWluZXItaW5uZXItc3R5bGVzO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGdhcDogJGVsZW0tcGFkO1xuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5idG4tYmFja3RvdG9wIHtcbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAoc21hbGwsIFwibWF4XCIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX2J0biB7XG4gICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAoc21hbGwsIFwibWF4XCIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuYnRuIHtcbiAgICAgICAgICAgIGFsaWduLXNlbGY6aW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyAuZm9vdGVyX19pbm5lciB7XG4gICAgLy8gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgLy8gICAgQGluY2x1ZGUgbWFwcHktYnAobWVkaXVtKSB7XG4gICAgLy8gICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAvLyAgICAgIH1cbiAgICAvLyB9XG4gICAgLy8gJl9fd3JhcCB7XG4gICAgLy8gICAgIHdpZHRoOiAxMDAlO1xuICAgIC8vICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC8vICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIC8vICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAvLyAgICAgYmFja2dyb3VuZC1jb2xvcjogc2V0Y29sb3IoMyk7XG4gICAgLy8gICAgIHBhZGRpbmc6ICRlbGVtLXBhZC1scmcgJGVsZW0tcGFkOyAgICAgICAgXG4gICAgLy8gfVxuICAgIC8vICZfX2lubmVyIHtcbiAgICAvLyAgICAgZm9udC1zaXplOiByZW0yKDIycHgpOyAvL0FkanVzdGVkXG4gICAgLy8gICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLy8gICAgIGdhcDogcmVtMigxNnB4KTsgLy9BZGp1c3RlZFxuICAgIC8vICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIC8vICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIC8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8vICAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgIC8vICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cblxuICAgIC8vICZfX2Zvcm0ge1xuICAgIC8vICAgICB3aWR0aDogMTAwJTtcblxuICAgIC8vICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC8vICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIC8vICAgICBwYWRkaW5nOjAgJGVsZW0tcGFkLXh4c207XG4gICAgLy8gfVxuICAgIC8vICZfX2lucHV0IHtcbiAgICAvLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAvLyAgICAgZm9udC1zaXplOiByZW0yKDE2cHgpOyAvL0FkanVzdGVkXG4gICAgLy8gICAgIGJvcmRlcjpub25lO1xuICAgIC8vICAgICBwYWRkaW5nOiRlbGVtLXBhZC1zbTtcbiAgICAvLyAgICAgd2lkdGg6IDEwMCU7XG4gICAgLy8gICAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgIC8vICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgLy8gICAgICAgICBtaW4td2lkdGg6IHJlbTIoMjkwcHgpOyAvL0FkanVzdGVkXG4gICAgLy8gICAgIH1cbiAgICAvLyB9XG4gICAgLy8gJl9fYnRuIHtcbiAgICAvLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAvLyB9XG5cbiAgICAvLyAuYmFja3RvdG9wIHtcbiAgICAvLyAgICAgb3JkZXI6NDtcbiAgICAvLyAgICAgLmJ0bi1iYWNrdG90b3Age1xuICAgIC8vICAgICAgICAgbWFyZ2luOjAgYXV0bztcbiAgICAvLyAgICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKG1lZGl1bSkge1xuICAgIC8vICAgICAgICAgICAgIG1hcmdpbjowO1xuXG4gICAgLy8gICAgICAgICB9XG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgQGluY2x1ZGUgbWFwcHktYnAobWVkaXVtKSB7XG4gICAgLy8gICAgICAgICBvcmRlcjppbml0aWFsO1xuICAgIC8vICAgICB9XG4gICAgLy8gfVxuXG5cbiAgICBcbn1cblxuI25ld3NsZXR0ZXJPdmVybGF5e1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogNTgwcHg7XG4gICAgLS1mLWh0bWwtcGFkZGluZzogMDtcbiAgICAtLWYtY2xvc2UtYnV0dG9uLWNvbG9yOiBzZXRjb2xvcigxKTtcbiAgICAvLyBkaXNwbGF5OiBub25lO1xuICAgIC5uZXdzbGV0dGVyLXdpZGdldCB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG59XG4ubmV3c2xldHRlci13aWRnZXQge1xuICAgIG1hcmdpbjphdXRvO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHNldGNvbG9yKDUpO1xuICAgIG1heC13aWR0aDogcmVtMig1ODBweCk7IC8vQWRqdXN0ZWRcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAkZWxlbS1wYWQ7XG4gICAgXG4gICAgIC5sLWNvbnRlbnQgJntcbiAgICAgICAgbWFyZ2luOiAkZWxlbS1wYWQtbHJnIGF1dG87XG4gICAgIH1cbiAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgICAgICBwYWRkaW5nOiAkZWxlbS1wYWQteGxyZztcbiAgICB9XG4gICAgJl9fdG9wIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgJl9fdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSB1cHBlcmNhc2Utc3BhY2VkKCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXRvcDowO1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogJGxzLWJvZHk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGZpbGw6c2V0Y29sb3IoMik7XG4gICAgICAgICAgICAvLyB3aWR0aDogcmVtMigzMHB4KTtcbiAgICAgICAgICAgIC8vIGhlaWdodDogYXV0bzs7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgfVxufVxuXG5cbi8qPT09PT09PT09PT09PT09PT09PVxuc3R5bGVzIGZvciB0aGUgbmV3c2xldHRlciB3aWRnZXRcbj09PT09PT09PT09PT09PT09PT0qL1xuLm5ld3NsZXR0ZXItd2lkZ2V0LS1odWJzcG90IHtcbiAgICBtYXgtd2lkdGg6IHJlbTIoNzIwcHgpOyAvL0FkanVzdGVkXG4gICAgcGFkZGluZzogICRlbGVtLXBhZCAkZWxlbS1wYWQtc207XG4gICAgZm9ybSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxufSIsIkB1c2UgJ2Fic3RyYWN0cy9pbmRleCcgYXMgKjtcbi50aWxlcyB7XG4gICAgLy8gZGlzcGxheTogZ3JpZDtcbiAgICAvLyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xuXG4gICAgJl9fd3JhcCB7XG4gICAgICAgIEBpbmNsdWRlIGNvbnRhaW5lci1pbm5lci1zdHlsZXM7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6YXV0bztcbiAgICAgICAgZ2FwOiAwO1xuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChtZWRpdW0pIHtcbiAgICAgICAgICAgIGdhcDogJGd1dHRlcjtcbiAgICAgICAgfVxuICAgICAgICAvLyBkaXNwbGF5OiBncmlkO1xuICAgICAgICAvLyBnYXA6ICRndXR0ZXI7XG4gICAgICAgIC8vIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgIG1pbm1heCgwLCAxZnIpICBtaW5tYXgoMCwgMWZyKTtcbiAgICB9XG4gICAgJl9faXRlbSB7XG4gICAgICAgIHBhZGRpbmc6ICRlbGVtLXBhZC1scmc7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNldGNvbG9yKDMpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAobWVkaXVtKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZWxlbS1wYWQ7XG4gICAgICAgICAgICAvL2FzcGVjdC1yYXRpbzogMSAvIDE7ICBcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMSAvIDAuNTsgIFxuICAgICAgICB9XG4gICAgICAgICYtaGVhZGluZyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG4gICAgfVxufSIsIkB1c2UgJ2Fic3RyYWN0cy9pbmRleCcgYXMgKjtcblxuLnByb2R1Y3Qge1xuICAgIFxuICAgIEBpbmNsdWRlIG1hcHB5LWJwKHNtYWxsKSB7XG4gICAgICAgIC8vIG1hcmdpbi10b3A6JGVsZW0tcGFkLWxyZztcbiAgICB9XG59XG4ucHJvZHVjdF9fdG9we1xuICBkaXNwbGF5OmdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICBjb2x1bW4tZ2FwOiAycmVtO1xuICByb3ctZ2FwOiAwOyAgICAgICAgICAgICAgLyoga2V5OiBubyBmb3JjZWQgdmVydGljYWwgZ2FwcyAqL1xuICBhbGlnbi1pdGVtczpzdGFydDtcbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICBcImhlYWRpbmdcIlxuICAgIFwibGVmdFwiXG4gICAgXCJyaWdodFwiO1xuICBcblxuICAgIC8vICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgIC8vICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgLy8gICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgLy8gICAgIFwibGVmdCBoZWFkaW5nXCJcbiAgICAvLyAgICAgXCJsZWZ0IGRldGFpbHNcIlxuICAgIC8vICAgICBcImxlZnQgYWRkaXRpb25hbFwiO1xuICAgIC8vIH1cbiAgICAgQGluY2x1ZGUgbWFwcHktYnAobWVkaXVtKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDUwJSkgMWZyIG1pbm1heCgwLCA2NTBweCk7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgICAgXCJsZWZ0IC4gcmlnaHRcIjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBlbmQ7IFxuICAgIH1cbn1cblxuXG5cbi5wcm9kdWN0X19sZWZ0IHtcbiAgICBncmlkLWFyZWE6IGxlZnQ7IFxufVxuLnByb2R1Y3RfX3JpZ2h0IHtcbiAgICBncmlkLWFyZWE6IHJpZ2h0OyBcbn1cblxuLnByb2R1Y3RfX2hlYWRlciB7XG4gICAgJi0tZGVza3RvcCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKG1lZGl1bSkge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLS1tb2JpbGUge1xuICAgICAgICBncmlkLWFyZWE6IGhlYWRpbmc7XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKG1lZGl1bSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgICAgXG4gICAgICAgIH1cbiAgICB9ICAgICAgXG59XG5cbi5wcm9kdWN0X19kZXNjcmlwdGlvbiB7XG4gICAgXG5cbiAgICAmLS1kZXNrdG9wIHtcbiAgICAgICAgcGFkZGluZy10b3A6JGVsZW0tcGFkLXNtO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChtZWRpdW0pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuICAgICYtLW1vYmlsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKG1lZGl1bSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIFxuICAgICAgICB9XG4gICAgfVxufVxuXG4ucHJvZHVjdCB7XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgLy8gbWFyZ2luLWJvdHRvbTogJGVsZW0tcGFkLWxyZztcbiAgICAgICAgJi0tYnJkIHtcbiAgICAgICAgfVxuICAgIH1cbiAgICBoNCB7XG4gICAgICAgIGNvbG9yOiBzZXRjb2xvcigxKTtcbiAgICAgICAgbWFyZ2luOjAgMCAkZWxlbS1wYWQtc20gMDtcbiAgICB9ICBcbiAgICAmX190b3Age1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGVsZW0tcGFkLWxyZztcbiAgICAgICAgLy8gZGlzcGxheTogZ3JpZDtcbiAgICAgICAgLy8gY29sdW1uLWdhcDogJGVsZW0tcGFkLWxyZztcbiAgICAgICAgLy8gZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cbiAgICAgICAgLy8gQGluY2x1ZGUgbWFwcHktYnAoc21hbGwpIHtcbiAgICAgICAgLy8gICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgLy8gfVxuXG4gICAgICAgIC8vIEBpbmNsdWRlIG1hcHB5LWJwKGxhcmdlKSB7XG4gICAgICAgIC8vICAgICBjb2x1bW4tZ2FwOiAxMCU7XG4gICAgICAgIC8vICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUwJSAxZnI7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICAmX19kZXRhaWxzIHtcbiBcbiAgICB9XG5cbiAgICAmX19zZWN0aW9uIHtcbiAgICAgICBcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzokZWxlbS1wYWQ7XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKHNtYWxsKSB7XG4gICAgICAgICAgICAvLyBwYWRkaW5nOiRlbGVtLXBhZDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChtYXgpIHtcbiAgICAgICAgICAgIC8vIG1hcmdpbi10b3A6ICRlbGVtLXBhZC1scmc7XG4gICAgICAgIH1cbiAgICAgICAgJi1pbm5lciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItc2lkZXModG9wLCAycHgpO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRlbGVtLXBhZDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbnRhaW5lci1pbm5lci1zdHlsZXM7XG4gICAgICAgIH1cbiAgICAgICAgJi0tZ3cge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBwYWRkaW5nLXRvcDokZWxlbS1wYWQtbHJnO1xuICAgICAgICAgICAgLy8gcGFkZGluZy1ib3R0b206JGVsZW0tcGFkLWxyZztcbiAgICAgICAgfVxuICAgICAgICBoMiB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAkbHMtYm9keTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGNvbG9yOiBzZXRjb2xvcigyKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICYtdmFyaWFudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJGVsZW0tcGFkLXh4c207XG4gICAgICAgICAgICBAaW5jbHVkZSB0aXRsZWNhc2Utc3BhY2VkKCk7XG4gICAgICAgICAgICAucHJvZHVjdF9fdGl0bGUgKyAmIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtMigyMHB4KTsgIC8vQWRqdXN0ZWRcbiAgICAgICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKHNtYWxsKSB7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3ByaWNlIHtcbiAgICAgICAgIG1hcmdpbjogJGVsZW0tcGFkLXhzbSAwO1xuICAgICAgICAmLWZpZyB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbTIoMjBweCk7IC8vQWRqdXN0ZWRcbiAgICAgICAgfVxuICAgICAgIFxuICAgIH1cblxuICAgICZfX3N3YXRjaGVzIHtcbiAgICAgICAgLy8gbWFyZ2luOiAkZWxlbS1wYWQteHNtIDA7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDpyZW0yKDhweCk7ICAvL0FkanVzdGVkXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIG1pbm1heChyZW0yKDQwcHgpLCAxZnIpKTsgLy9BZGp1c3RlZFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4OyAvL3NhbWUgYXMgYWN0aXZlIG91dGxpbmUgb2Zmc2V0IGFuZCBib3JkZXJcbiAgICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKHNtYWxsKSB7XG4gICAgICAgICAgICBnYXA6cmVtMigxNnB4KTsgLy9BZGp1c3RlZFxuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KHJlbTIoNDBweCksIDFmcikpOyAvL0FkanVzdGVkXG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAoc21hbGwpIHtcbiAgICAgICAgICAgIGdhcDpyZW0yKDE2cHgpOyAvL0FkanVzdGVkXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgocmVtMig0MHB4KSwgMWZyKSk7IC8vQWRqdXN0ZWRcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChtZWRpdW0pIHtcblxuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNSwgbWlubWF4KHJlbTIoNDBweCksIDFmcikpOyAvL0FkanVzdGVkXG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAobGFyZ2UpIHtcbiAgICAgICAgICAgIGdhcDpyZW0yKDI0cHgpOyAvL0FkanVzdGVkXG4gICAgICAgIH1cbiAgICAgICAgJi1pdGVtIHtcbiAgICAgICAgICAgIC5nYWxsZXJ5LXRodW1ibmFpbHMgJiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzoxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQsICYuaXMtc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAzcHg7XG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCBzZXRjb2xvcigyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZ2FsbGVyeSB7XG5cbiAgICAgICAgLy8gQGluY2x1ZGUgbWFwcHktYnAobWVkaXVtKSB7XG4gICAgICAgIC8vICAgICBncmlkLXJvdzogc3BhbiAyO1xuICAgICAgICAvLyB9XG4gICAgfVxuICAgICZfX2FkZGl0aW9uYWx7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgICAvLyBnYXA6ICRlbGVtLXBhZC1zbTtcbiAgICAgICAgXG4gICAgICAgIC8vIEBpbmNsdWRlIG1hcHB5LWJwKHNtYWxsKSB7XG4gICAgICAgIC8vICAgICBncmlkLWNvbHVtbjogc3BhbiAyO1xuICAgICAgICAvLyB9XG4gICAgICAgIC8vIEBpbmNsdWRlIG1hcHB5LWJwKG1lZGl1bSkge1xuXG4gICAgICAgIC8vICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgLy8gfVxuICAgICAgICAvLyBAaW5jbHVkZSBtYXBweS1icCh4bGFyZ2UpIHtcbiAgICAgICAgLy8gICAgIG1heC13aWR0aDogaW5pdGlhbDtcbiAgICAgICAgLy8gICAgIGdhcDogJGVsZW0tcGFkO1xuICAgICAgICAvLyAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgICAvLyB9XG4gICAgfVxuICAgICZfX3RlY2gtZGV0YWlscyB7XG4gICAgICAgIC8vd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgaDQge1xuICAgICAgICAgICAgY29sb3I6c2V0Y29sb3IoMSk7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICAgICB9XG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTgwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1MHB4OyBcbiAgICAgICAgfVxuXG4gICAgICAgIGRpdi5wcm9kdWN0X190ZWNoLXRhYmxlIHtcbiAgICAgICAgICAgIC8vSWYgd2UncmUgaW5zaWRlIGEgZGl2IHRoZW4gc3R5bGUgZGlmZmVybnRseVxuXG4gICAgICAgICAgICB0ciAqOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDE4MHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDUwcHg7IFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICZfX2ZhYnJpY19jYXJlX2ltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiByZW0yKDIwcHgpOyBcbiAgICAgICAgLy8gbWF4LXdpZHRoOiByZW0yKDE0OHB4KTsgXG4gICAgfVxuICAgICZfX29wdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBcbiAgICAgICAgLy8gbWF4LXdpZHRoOiByZW0yKDUwMHB4KTtcbiAgICAgICAvLyBwYWRkaW5nOiRlbGVtLXBhZC14c20gMCAkZWxlbS1wYWQgMDtcbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAobWF4KSB7XG4gICAgICAgICAgICAvLyBtYXgtd2lkdGg6IGluaXRpYWw7XG4gICAgICAgICAgICAvLyBnYXA6ICRlbGVtLXBhZDtcbiAgICAgICAgICAgIC8vIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgfVxuICAgICAgICAmLXRpdGxlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOm5vbmU7XG4gICAgICAgICAgICBjb2xvcjogc2V0Y29sb3IoMSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGVsZW0tcGFkLXh4c207XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkZWxlbS1wYWQteHhzbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19zZWxlY3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAvLyBwYWRkaW5nOjAgJGVsZW0tcGFkLXh4c207XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleHQtc3RhcnQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRlbGVtLXBhZC14eHNtO1xuICAgICAgICAmLWluZm8ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTNweDsgXG4gICAgICAgIH1cbiAgICAgICAgJi10eXBlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gIEBjb250YWluZXIgKG1pbi13aWR0aDogNjE1cHgpIHtcblxuICAgICAgICAvLyAgICAgJi10eXBlIHtcbiAgICAgICAgLy8gICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAvLyAgICAgfVxuXG4gICAgICAgIC8vIH1cblxuICAgIH1cblxuICAgXG4gICAgJl9fbWV0ZXJhZ2UtcHJpY2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICAmX19mb3JtIHtcbiAgICAgICAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNldGNvbG9yKDYpO1xuICAgICAgICBwYWRkaW5nOiRlbGVtLXBhZDtcbiAgICAgICAgJi1pbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRlbGVtLXBhZC1zbTtcbiAgICAgICAgfVxuICAgICAgICAuZm9ybV9fc2VsZWN0IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogcmVtMigxNDBweCk7IC8vQWRqdXN0ZWRcbiAgICAgICAgfVxuICAgICAgICAmLXF0eSB7XG4gICAgICAgICAgICB3aWR0aDogNjBweDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbjowIDEwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOjEwcHggMDtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICAgICAgJi1jb250cm9sIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOnJlbTIoNHB4KSByZW0yKDhweCk7ICAvL0FkanVzdGVkXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgICAgY29sb3I6IHNldGNvbG9yKDIpO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgJi13cmFwIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLWxpbmtzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBcbiAgICAgICAgLy8gbWFyZ2luLXRvcDokZWxlbS1wYWQtc207XG4gICAgICAgIC8vIHBhZGRpbmctdG9wOiRlbGVtLXBhZDtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGdhcDogJGVsZW0tcGFkLXh4c207XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBAaW5jbHVkZSB1cHBlcmNhc2Utc3BhY2VkKCk7XG4gICAgICAgICAgICBjb2xvcjogc2V0Y29sb3IoMik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuXG4gICAgICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtMig4cHgpOyAvL0FkanVzdGVkXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn0iLCJAdXNlICdhYnN0cmFjdHMvaW5kZXgnIGFzICo7XG5cbi8vR2VuZXJhbCBjYXJvdXNlbCBzdHlsZXNcbi5mLWJ1dHRvbiB7XG4gICAgJjpob3ZlciB7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogc2V0Y29sb3IoMik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNnb2VzV2l0aFByb2R1Y3Qge1xuICAgIC5mLWJ1dHRvbiB7XG4gICAgICAgIHRvcDogY2FsYyh2YXIoLS1pbWctaGVpZ2h0KSAvIDIpICFpbXBvcnRhbnQ7XG4gICAgIH1cbn1cbi5jYXJvdXNlbCB7XG4gICAgbWFyZ2luOiRlbGVtLXBhZCAkZWxlbS1wYWQtbHJnO1xuICAgIC0tcGVyLXBhZ2U6IDE7XG4gICAgLS1mLWNhcm91c2VsLWdhcDogMjRweDtcbiAgICAtLWYtY2Fyb3VzZWwtc2xpZGUtd2lkdGg6IGNhbGMoXG4gICAgICAgICgxMDAlIC0gKCh2YXIoLS1wZXItcGFnZSkgLSAxKSAqIHZhcigtLWYtY2Fyb3VzZWwtZ2FwKSkpXG4gICAgICAgIC8gdmFyKC0tcGVyLXBhZ2UpXG4gICAgKTtcbiAgICAvKkFSUk9XUyovXG4gICAgICAgICAtLWYtYXJyb3ctcG9zOiAtNTBweDtcbiAgICAuZi1idXR0b24ge1xuICAgICAgICB0b3A6IGNhbGModmFyKC0taW1nLWhlaWdodCkgLyAyKSAhaW1wb3J0YW50O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IHNldGNvbG9yKDIpO1xuICAgICAgICB9XG5cbiAgICAgfVxuICAgIEBpbmNsdWRlIG1hcHB5LWJwKHNtYWxsKSB7XG4gICAgICAgIC8vIG1hcmdpbjokZWxlbS1wYWQgJGd1dHRlciAgJGd1dHRlciAkZ3V0dGVyO1xuXG4gICAgICAgIC0tcGVyLXBhZ2U6IDI7XG5cbiAgICB9XG4gICAgQGluY2x1ZGUgbWFwcHktYnAobWVkaXVtKSB7XG4gICAgICAgIC0tcGVyLXBhZ2U6IDM7XG5cbiAgICB9XG4gICAgQGluY2x1ZGUgbWFwcHktYnAobWF4LXdpdGgtZ3V0dGVyKSB7XG4gICAgICAgIC0tcGVyLXBhZ2U6IHZhcigtLW1heC1wZXItcGFnZSwgNCk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OjA7XG4gICAgICAgIG1hcmdpbi1yaWdodDowO1xuICAgIH1cbiAgICAubC1zZWN0aW9uX19pbm5lci0tbm8tcGFkICYge1xuICAgICAgICBtYXJnaW4tbGVmdDokZWxlbS1wYWQtbHJnICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDokZWxlbS1wYWQtbHJnICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJl9fY3RhIHtcbiAgICAgICAgbWFyZ2luLXRvcDowO1xuICAgICAgICBtYXJnaW4tYm90dG9tOjA7XG4gICAgfVxufVxuXG5cbi5jYXJvdXNlbC1jb2x1bW5zIHtcbiAgICBtYXJnaW46JGVsZW0tcGFkICRndXR0ZXIgMCAkZ3V0dGVyO1xuICAgIC0tcGVyLXBhZ2U6IDE7XG4gICAgLS1mLWNhcm91c2VsLWdhcDogMjRweDtcbiAgICAtLWYtY2Fyb3VzZWwtc2xpZGUtd2lkdGg6IGNhbGMoXG4gICAgICAgICgxMDAlIC0gKCh2YXIoLS1wZXItcGFnZSkgLSAxKSAqIHZhcigtLWYtY2Fyb3VzZWwtZ2FwKSkpXG4gICAgICAgIC8gdmFyKC0tcGVyLXBhZ2UpXG4gICAgKTtcbiAgICAvKkFSUk9XUyovXG4gICAgLS1mLWFycm93LXBvczogLTUwcHg7XG4gICAgLy8gQGluY2x1ZGUgbWFwcHktYnAoc21hbGwpIHtcbiAgICAvLyAgICAgLS1wZXItcGFnZTogMjtcblxuICAgIC8vIH1cbiAgICBAaW5jbHVkZSBtYXBweS1icChtZWRpdW0pIHtcbiAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgICAgICBnYXA6ICRndXR0ZXI7XG4gICAgICAgIC5mLWNhcm91c2VsX19zbGlkZSB7IFxuICAgICAgICAgICAgZ3JpZC1hcmVhOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEBpbmNsdWRlIG1hcHB5LWJwKG1heC13aXRoLWd1dHRlcikge1xuICAgIC8vICAgICAtLXBlci1wYWdlOiB2YXIoLS1tYXgtcGVyLXBhZ2UsIDQpO1xuICAgIC8vICAgICBtYXJnaW4tbGVmdDowO1xuICAgIC8vICAgICBtYXJnaW4tcmlnaHQ6MDtcbiAgICAvLyAgICAgLS1mLWFycm93LXBvczogLTUwcHg7XG4gICAgLy8gfVxuICAgIC5sLXNlY3Rpb25fX2lubmVyLS1uby1wYWQgJiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiRlbGVtLXBhZC1scmcgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiRlbGVtLXBhZC1scmcgIWltcG9ydGFudDtcbiAgICAgICAgLS1mLWFycm93LXBvczogLTUwcHggIWltcG9ydGFudDtcbiAgICB9XG59XG5cblxuLypwcm9kdWN0IGNhcm91c2VsKi9cbiNwcm9kdWN0Q2Fyb3VzZWwge1xuICAgICYuZi1jYXJvdXNlbCB7XG4gICAgICAgIC0tcGVyLXBhZ2U6IDU7XG4gICAgICAgIC0tZi1jYXJvdXNlbC1nYXA6IDEwcHg7XG4gICAgICAgIC0tZi1jYXJvdXNlbC1zbGlkZS13aWR0aDogY2FsYyhcbiAgICAgICAgICAgICgxMDAlIC0gKCh2YXIoLS1wZXItcGFnZSkgLSAxKSAqIHZhcigtLWYtY2Fyb3VzZWwtZ2FwKSkpXG4gICAgICAgICAgICAvIHZhcigtLXBlci1wYWdlKVxuICAgICAgICApO1xuXG4gICAgICAgIC8qQVJST1dTKi9cbiAgICAgICAgLS1mLWFycm93LXBvczogLTUwcHg7XG5cbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAobWVkaXVtKSB7XG4gICAgICAgICAgICAtLWYtY2Fyb3VzZWwtZ2FwOiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZ2FsbGVyeS1zbGlkZSB7XG4gICAgYSB7XG4gICAgICAgIGN1cnNvcjogdXJsKCcuLi9pbWcvaWNvbnMvbWFnbmlmeWluZy1nbGFzcy1zb2xpZC1mdWxsLnN2ZycpIDggOCwgem9vbS1pblxuICAgIH1cbn1cbi5wcm9kdWN0LWNhcm91c2Vse1xuICAgICZfX3dyYXAge1xuICAgICAgICBwYWRkaW5nOiRlbGVtLXBhZCAkZWxlbS1wYWQtbHJnO1xuICAgIH1cblxuICAgIC5pcy1wcmV2e1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICAgIC5pcy1uZXh0e1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cbn1cblxuLmdhbGxlcnktdGh1bWJuYWlscyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBAaW5jbHVkZSBtYXBweS1icChtZWRpdW0pIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIC5mLWJ1dHRvbiB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogc2V0Y29sb3IoMik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4uZ2FsbGVyeV9fbWFpbiB7XG4gICAgLS1mLWNhcm91c2VsLWRvdHMtaGVpZ2h0OiA0NXB4O1xuICAgIC5mLWJ1dHRvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHNldGNvbG9yKDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgIH1cbiAgICAuZi1jYXJvdXNlbF9fZG90cyB7XG4gICAgICAgIHBhZGRpbmc6ICRlbGVtLXBhZC14eHNtIDAgJGVsZW0tcGFkIDA7XG4gICAgfVxufVxuLmZhbmN5Ym94X19iYWNrZHJvcCB7XG4gICAgLS1mYW5jeWJveC1iYWNrZHJvcC1iZzogI3tzZXRjb2xvcigzKX0gIWltcG9ydGFudDtcbiAgICAtLWYtZHJhZy1vcGFjaXR5OiAuOTtcbiAgICAvLyBvcGFjaXR5OiAuODtcbn1cblxuXG4jZ29lc1dpdGhQcm9kdWN0IHtcblxuICAgICYuZi1jYXJvdXNlbCB7XG4gICAgICAgIG1hcmdpbjowICRndXR0ZXI7XG4gICAgICAgIC0tcGVyLXBhZ2U6IDE7XG4gICAgICAgIC0tZi1jYXJvdXNlbC1nYXA6IDMwcHg7XG4gICAgICAgIC0tZi1jYXJvdXNlbC1zbGlkZS13aWR0aDogY2FsYyhcbiAgICAgICAgICAgICgxMDAlIC0gKCh2YXIoLS1wZXItcGFnZSkgLSAxKSAqIHZhcigtLWYtY2Fyb3VzZWwtZ2FwKSkpXG4gICAgICAgICAgICAvIHZhcigtLXBlci1wYWdlKVxuICAgICAgICApO1xuXG4gICAgICAgIC8qQVJST1dTKi9cbiAgICAgICAgLS1mLWFycm93LXBvczogLTUwcHg7XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKHhzbWFsbCkge1xuICAgICAgICAgICAgLS1wZXItcGFnZTogMjtcblxuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKHNtYWxsKSB7XG4gICAgICAgICAgICAtLXBlci1wYWdlOiAzO1xuXG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAobWF4LXdpdGgtZ3V0dGVyKSB7XG4gICAgICAgICAgICAtLXBlci1wYWdlOiA0O1xuICAgICAgICAgICAgbWFyZ2luOjA7XG4gICAgICAgICAgICAtLWYtYXJyb3ctcG9zOiAtNTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkB1c2UgJ2Fic3RyYWN0cy9pbmRleCcgYXMgKjtcbi5nYWxsZXJ5IHtcblxuICAgICYtc2xpZGUge1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn0iLCJAdXNlICdhYnN0cmFjdHMvaW5kZXgnIGFzICo7XG4uYmxvZy1jYXJkIHtcbiAgICBjb2xvcjogc2V0Y29sb3IoMSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogc2V0Y29sb3IoNSk7XG4gICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fZGV0YWlscyB7XG4gICAgICAgIHBhZGRpbmc6ICRlbGVtLXBhZCAgJGVsZW0tcGFkLXNtO1xuICAgIH1cbiAgICAmX19tZXRhIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZm9udC1zaXplOiByZW0yKDE2cHgpO1xuICAgICAgICAmLWl0ZW0ge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCBzZXRjb2xvcigyKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJGVsZW0tcGFkLXNtO1xuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7ICAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19kZXNjIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTokZWxlbS1wYWQ7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxufVxuXG4uYXJ0aWNsZSB7XG4gICAgLmNvbnRlbnQtYmxvY2sge1xuICAgICAgICBtYXgtd2lkdGg6ICRjb250YWluZWQtYXJ0aWNsZS13aWR0aDtcbiAgICAgICAgbWFyZ2luOjAgYXV0bztcbiAgICB9XG59IiwiQHVzZSAnYWJzdHJhY3RzL2luZGV4JyBhcyAqO1xuXG5cbi5ldmVudHMge1xuICAgICZfX3dyYXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzZXRjb2xvcig2KTtcbiAgICAgICAgcGFkZGluZzogMCAkZWxlbS1wYWQ7XG4gICAgICAgIG1heC13aWR0aDogcmVtMigxMDAwcHgpOyAvL25vdCBBZGp1c3RlZFxuICAgICAgICBtYXJnaW46MCBhdXRvXG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgICBnYXA6ICRndXR0ZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNmZmZmZmY7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDgwMHB4O1xuICAgICAgICBmb250LXNpemU6IHJlbTIoMjBweCk7XG4gICAgICAgIHBhZGRpbmc6JGVsZW0tcGFkLWxyZyAgJGVsZW0tcGFkLXNtO1xuICAgICAgICBAaW5jbHVkZSBtYXBweS1icChzbWFsbCkge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgcmVtMigxMjVweCk7IC8vQWRqdXN0ZWRcbiAgICAgICAgfVxuXG4gICAgICAgIHAsIGgyIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgICAmLWRhdGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdXBwZXJjYXNlLXNwYWNlZCgpO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0yKDIwcHgpOyAvL0FkanVzdGVkXG4gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgICAmLXRpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtMigyNHB4KTtcbiAgICAgICAgICAgIGNvbG9yOnNldGNvbG9yKDIpO1xuICAgICAgICAgICAgQGluY2x1ZGUgdXBwZXJjYXNlLXNwYWNlZCgpO1xuICAgICAgICB9XG4gICAgICAgICYtdGltZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbTIoMjBweCk7IC8vQWRqdXN0ZWRcbiAgICAgICAgfVxuICAgICAgICAmLWNvbnRlbnQge1xuICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtMigyMHB4KTsgLy9BZGp1c3RlZFxuICAgICAgICB9XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOm5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJi1yaWdodCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAuYnRuIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWFwcHktYnAoc21hbGwpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCJAdXNlICdhYnN0cmFjdHMvaW5kZXgnIGFzICo7XG4vKj09PT09XG5XSURHRVQgU0FNUExFIEZPUk1cbj09PT09PSovXG5cbi5zYW1wbGVzLWZvcm0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHNldGNvbG9yKDUpO1xuICAgIHBhZGRpbmc6ICRlbGVtLXBhZCAkZWxlbS1wYWQ7XG4gICAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplOyBcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgbWFwcHktYnAobWVkaXVtKSB7XG4gICAgICAgIG1heC13aWR0aDogcmVtMig1NjBweCk7IC8vQWRqdXN0ZWRcbiAgICB9XG4gICAgJl9fcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgLnByb2R1Y3RfX3NlbGVjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOjA7XG4gICAgICAgIH1cbiAgICAgICAuZm9ybV9fbGFiZWwge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgLmZvcm1fX3NlbGVjdC1pbnB1dCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiNmZmZmZmZcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyAuYnRuIHtcbiAgICAvLyAgICAgd2lkdGg6IDEwMCU7XG4gICAgLy8gfVxuXG4gICAgQGNvbnRhaW5lciAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgfVxuICAgICAgICAuZm9ybV9fbGFiZWwgeyBcbiAgICAgICAgICAgIHdpZHRoOiAzNSU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLndpZGdldCB7XG4gICYtLTMtYmxvY2tzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJjb250ZW50IGltZzEgaW1nMlwiO1xuICAgIGdhcDogJGd1dHRlcjtcbiAgICByb3ctZ2FwOiAwO1xuICAgIHZpZGVvLCBpbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLndpZGdldF9fY29sIHtcbiAgICAgIHBhZGRpbmc6ICRlbGVtLXBhZDtcblxuICAgICAgJi0tY29udGVudCB7XG4gICAgICAgIGdyaWQtYXJlYTogY29udGVudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2V0Y29sb3IoNSk7XG4gICAgICB9XG5cbiAgICAgICYtLWltZyB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgJjpudGgtb2YtdHlwZSgyKSB7XG4gICAgICAgICAgZ3JpZC1hcmVhOiBpbWcxO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtb2YtdHlwZSgzKSB7XG4gICAgICAgICAgZ3JpZC1hcmVhOiBpbWcyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICBAaW5jbHVkZSBtYXBweS1icChtZWRpdW0sICdtYXgnKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgICAgXG4gICAgICBncmlkLXRlbXBsYXRlLWFyZWFzOlxuICAgICAgICBcImltZzEgaW1nMlwiXG4gICAgICAgIFwiY29udGVudCBjb250ZW50XCI7XG4gICAgfVxuICB9XG5cbiAgJi0tY29udGVudC1taWRkbGUge1xuICAgIEBpbmNsdWRlIG1hcHB5LWJwKG1lZGl1bSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJpbWcxIGNvbnRlbnQgaW1nMlwiO1xuICAgIH1cbiAgfVxufSIsIkB1c2UgJ2Fic3RyYWN0cy9pbmRleCcgYXMgKjtcbkB1c2UgJ2Jhc2UvdXRpbGl0aWVzJztcblxuLmNhbGN1bGF0b3Ige1xuICAgICZfX3VuaXRzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG59XG5cbi5wYW5lbHMge1xuICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgY29sb3I6IHNldGNvbG9yKDIpO1xuICAgIH1cbn1cbi5wYW5lbC1zaGFwZXtcbiAgICAmX193cmFwIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgYm9yZGVyOjFweCBzb2xpZCBzZXRjb2xvcigxKTtcbiAgICAgICAgaGVpZ2h0OiAxNTBweDtcbiAgICAgICAgd2lkdGg6IDE1MHB4O1xuXG4gICAgICAgICYtd2lkdGgge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICAmLWhlaWdodCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgICYtdW5pdCB7XG4gICAgICAgICAgICBwYWRkaW5nOiRlbGVtLXBhZC14eHNtO1xuICAgICAgICB9XG4gICAgfVxuXG59IiwiQHVzZSAnYWJzdHJhY3RzL2luZGV4JyBhcyAqO1xuQHVzZSBcInNhc3M6bWFwXCI7XG4uYWNjb3JkaW9uIHtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHNldGNvbG9yKDMpO1xuICAgICZfX2hlYWRpbmcge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIC8vIGZvbnQtc2l6ZTogcmVtMigxNHB4KTsgLy9BZGp1c3RlZFxuICAgICAgICBjb2xvcjogc2V0Y29sb3IoMik7XG4gICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCBzZXRjb2xvcigzKTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6ICRscy1ib2R5O1xuXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cbiAgICA+bGksID4uYWNjb3JkaW9uX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOjA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcblxuICAgICAgICBcbiAgICAgICAgXG4gICAgfVxuICAgIFxuICAgIGRkIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICZfX3RyaWdnZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAzMHB4O1xuICAgICAgICBjb2xvcjogaHNsKDBkZWcgMCUgMTMlKTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OnJlbTIoMTZweCk7IC8vQWRqdXN0ZWRcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIC8vIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAkZWxlbS1wYWQgcmVtMigyNHB4KSAkZWxlbS1wYWQgJGVsZW0tcGFkOyAvL0FkanVzdGVkXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAkbHMtYm9keTtcbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvL3RyYW5zZm9ybTogcm90YXRlKDkwZGVnKSA7XG4gICAgICAgICAgICAvL2NvbG9yOnNldGNvbG9yKDEpO1xuICAgICAgICB9XG4gICAgICAgIC8vICY6OmFmdGVyIHtcbiAgICAgICAgLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgLy8gICAgIGNvbnRlbnQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzEyJyBoZWlnaHQ9JzgnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J00wIDEuNjA0QzAgMS4xNTcuMjY5Ljc1NS42ODIuNTg0YTEuMTA1IDEuMTA1IDAgMCAxIDEuMjAyLjI0TDYgNC45MzggMTAuMTE2LjgyM2ExLjEwMyAxLjEwMyAwIDEgMSAxLjU2IDEuNTYyTDYuNzggNy4yOGExLjEwMyAxLjEwMyAwIDAgMS0uNzguMzIzIDEuMTAzIDEuMTAzIDAgMCAxLS43OC0uMzIzTC4zMjQgMi4zODVBMS4xMDEgMS4xMDEgMCAwIDEgMCAxLjYwNFonIGZpbGw9JyUyMzEyMTIxMicvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICAgICAgLy8gICAgIHJpZ2h0OiAxcmVtO1xuICAgICAgICAvLyAgICAgdG9wOiAxcmVtO1xuICAgICAgICAvLyAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4ycyBlYXNlLWluLW91dDtcbiAgICAgICAgLy8gfVxuXG4gICAgICAgICZbYXJpYS1leHBhbmRlZD10cnVlXSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzZXRjb2xvcigyKTtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgICAgLy8gYm9yZGVyLXRvcDoycHggc29saWQgc2V0Y29sb3IoMikgIWltcG9ydGFudDtcbiAgICAgICAgICAgIC8vIGJvcmRlci1ib3R0b206MnB4IHNvbGlkIHNldGNvbG9yKDIpICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgIC5hY2NvcmRpb25fX3RyaWdnZXItaWNvbiB7XG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvL2NvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gJjo6YWZ0ZXIge1xuICAgICAgICAgICAgLy8gICAgIHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpO1xuICAgICAgICAgICAgLy8gfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gJjpmb2N1cywgJjpob3ZlciwgJlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgIC8vICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAvLyAgICAgYmFja2dyb3VuZDogc2V0Y29sb3IoMyk7XG4gICAgICAgIC8vIH1cblxuICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IHJnYmEoc2V0Y29sb3IoMiksIDAuMik7XG4gICAgICAgICAgICAvLyBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAuNXMgY3ViaWMtYmV6aWVyKC40MSwuOTcsLjM2LC43OCk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi1pbm5lciB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZWxlbS1wYWQ7XG5cbiAgICAgICAgICAgJiA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICYtLWV4cGFuZGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2V0Y29sb3IoNSk7XG4gICAgfVxuXG5cbiAgICAmLS1hbHQge1xuICAgICAgICA+bGksID4uYWNjb3JkaW9uX19pdGVtIHtcbiAgICAgICAgICAgIC8vIG1hcmdpbi1ib3R0b206ICRlbGVtLXBhZDtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgQGV4dGVuZCAudS1zaGFkb3cgIW9wdGlvbmFsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gLmFjY29yZGlvbl9faGVhZGluZyB7XG4gICAgICAgIC8vICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgLmFjY29yZGlvbl9fdHJpZ2dlciB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAvL3BhZGRpbmc6JGVsZW0tcGFkIDA7XG4gICAgICAgICAgICAvLyBtYXJnaW46MCAkZWxlbS1wYWQ7XG4gICAgICAgICAgICAvLyB3aWR0aDogY2FsYygxMDAlIC0gKCRlbGVtLXBhZCAqIDIpKTtcblxuICAgICAgICAgICAgLy8gJjpob3ZlciB7XG4gICAgICAgICAgICAvLyAgICAgYmFja2dyb3VuZC1jb2xvcjogbm9uZTtcbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgfVxuICAgICAgICAuYWNjb3JkaW9uX19jb250ZW50LWlubmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW46MCAkZWxlbS1wYWQ7XG4gICAgICAgICAgICAvLyBib3JkZXItdG9wOjFweCBzb2xpZCBzZXRjb2xvcigxKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnByb3BlcnR5IHtcbiAgICAuYWNjb3JkaW9uX19jb250ZW50LWlubmVyIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMDs7XG4gICAgfVxuICAgIC5hY2NvcmRpb25fX2NvbnRlbnQtaW5uZXIge1xuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgIH1cbn0iLCJAdXNlICdhYnN0cmFjdHMvaW5kZXgnIGFzICo7XG4uZ2xvc3Nhcnkge1xuXG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHNldGNvbG9yKDQpO1xuICAgICZfX2l0ZW0ge1xuICAgICAgICBwYWRkaW5nOiRlbGVtLXBhZCAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgc2V0Y29sb3IoNCk7XG4gICAgfVxuICAgICZfX3Rlcm0ge1xuICAgICAgICBjb2xvcjpzZXRjb2xvcigyKTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbWFyZ2luLXRvcDowO1xuXG4gICAgfVxuXG4gICAgJl9fZGVmaW5pdGlvbiB7XG4gICAgICAgIHA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOjA7XG4gICAgICAgIH1cbiAgICB9XG59IiwiQHVzZSAnYWJzdHJhY3RzL2luZGV4JyBhcyAqO1xuLmNhcnQge1xuICAgICZfX2hlYWQge1xuICAgICAgICB0aCB7XG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxke1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9faXRlbXMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDAgMXJlbTtcbiAgICAgICAgdGFibGUtbGF5b3V0OiBhdXRvO1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZWxlbS1wYWQ7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2V0Y29sb3IoNik7XG4gICAgICAgIH1cbiAgICAgICAgJi1jYXQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbTIoMTRweCk7IC8vQWRqdXN0ZWRcbiAgICAgICAgfVxuICAgICAgICAuY2FydF9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgJGVsZW0tcGFkLXh4c20gMDtcbiAgICAgICAgfVxuICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0taW1hZ2Uge1xuICAgICAgICB3aWR0aDogN3JlbTtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDBweDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtLWRldGFpbHMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19pdGVtLXByaWNlLFxuICAgICZfX2l0ZW0tc3VidG90YWwge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgICZfX2l0ZW0tcXVhbnRpdHkge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICYtd3JhcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYnRuIHtcbiAgICAmLS1yZW1vdmUge1xuICAgICAgICAvLyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIC8vIG1hcmdpbi10b3A6IDAuNzVyZW07XG4gICAgICAgIC8vIHBhZGRpbmc6IDA7XG4gICAgICAgIC8vIGJvcmRlcjogMDtcbiAgICAgICAgLy8gYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgLy8gY29sb3I6ICNjMDM5MmI7XG4gICAgICAgIC8vIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIC8vIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAvLyAmOmhvdmVyIHtcbiAgICAgICAgLy8gICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAvLyB9XG4gICAgfVxufVxuXG4ucHJvZHVjdDMzMyB7XG4gICAgJl9fZm9ybS1jb250cm9sLXdyYXAge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgfVxuXG4gICAgJl9fZm9ybS1jb250cm9sIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAyLjYyNXJlbTtcbiAgICAgICAgaGVpZ2h0OiAyLjYyNXJlbTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hLWljb25fX3N2ZyB7XG4gICAgICAgICAgICB3aWR0aDogMC44NzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODc1cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZm9ybS1xdHkge1xuICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgIGhlaWdodDogMi42MjVyZW07XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuXG4gICAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4gICAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBtYXBweS1icChzbWFsbCwgbWF4KSB7XG4gICAgLmNhcnQge1xuICAgICAgICAmX19pdGVtcyxcbiAgICAgICAgJl9faXRlbXMgdGJvZHksXG4gICAgICAgICZfX2l0ZW1zIHRyLFxuICAgICAgICAmX19pdGVtcyB0ZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMge1xuICAgICAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2U4ZThlODtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZThlOGU4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlOGU4ZTg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMXJlbTtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMXJlbTtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U4ZThlODtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMXJlbTtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1pbWFnZSB7XG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogNnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tcHJpY2UsXG4gICAgICAgICZfX2l0ZW0tcXVhbnRpdHksXG4gICAgICAgICZfX2l0ZW0tc3VidG90YWwge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cblxuLmNhcnRfX3N1bW1hcnl7XG4gICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgJi13cmFwIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgbWlubWF4KDAsIHJlbTIoNTMwcHgpKTsgLy9BZGp1c3RlZFxuICAgIH1cbiAgICAmLXRhYmxlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIC52YWx1ZSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogODAwOztcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbn1cblxuXG5cblxuLyo9PT09PWNhcnQgZHJhd2VyPT09PT0qL1xuYm9keS5jYXJ0LWRyYXdlci1vcGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmNhcnQtZHJhd2VyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogJHotaW5kZXgtLW9udG9wO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICZfX2hlYWRlciB7XG4gICAgICAgIEBpbmNsdWRlIHVwcGVyY2FzZS1zcGFjZWQoKTtcbiAgICB9XG4gICAgJl9fb3ZlcmxheSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC40NSk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICAgIH1cblxuICAgICZfX3BhbmVsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICB3aWR0aDogbWluKDQyMHB4LCA5MHZ3KTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgICAgIGJveC1zaGFkb3c6IC04cHggMCAyNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBwYWRkaW5nOiAkZWxlbS1wYWQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBzZXRjb2xvcig0KTtcbiAgICB9XG5cbiAgICAvLyAgICZfX3RpdGxlIHtcbiAgICAvLyAgICAgbWFyZ2luOiAwO1xuICAgIC8vICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgLy8gICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgLy8gICB9XG5cbiAgICAmX19jbG9zZSB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjb2xvcjogc2V0Y29sb3IoMik7XG4gICAgfVxuXG4gICAgJl9fYm9keSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6ICRlbGVtLXBhZDtcbiAgICB9XG5cbiAgICAmX19pdGVtcyB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAmX19mb290ZXIge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgc2V0Y29sb3IoNCk7XG4gICAgICAgIHBhZGRpbmc6ICRlbGVtLXBhZDtcbiAgICB9XG5cbiAgICAmX19zdW1tYXJ5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuXG5cbiAgICAmLmlzLW9wZW4ge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcblxuICAgICAgICAuY2FydC1kcmF3ZXJfX292ZXJsYXkge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcnQtZHJhd2VyX19wYW5lbCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB9XG5cbiAgICAuY2FydC1pdGVtIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVtMig2NXB4KSAxZnI7IC8vQWRqdXN0ZWRcbiAgICBnYXA6IDFyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgc2V0Y29sb3IoNCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJl9fbWV0YSB7XG4gICAgICAgIG1hcmdpbjowO1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogcmVtMigxNnB4KTsgLy9BZGp1c3RlZFxuICAgIH1cblxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtMigxOHB4KTtcbiAgICAgICAgQGluY2x1ZGUgdXBwZXJjYXNlLXNwYWNlZCgpO1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiBzZXRjb2xvcigxKTtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBzZXRjb2xvcigyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Zvb3RlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xuICAgIH1cblxuICAgICZfX3F0eSB7XG5cbiAgICB9XG5cblxuXG4gICAgJl9fcmVtb3ZlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjb2xvcjogc2V0Y29sb3IoMik7XG4gICAgfVxufVxuXG5cbi5jYXJ0LWFzaWRlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzZXRjb2xvcig1KTtcbiAgICBwYWRkaW5nOiAkZWxlbS1wYWQ7XG4gICAgJl9faXRlbXMge1xuICAgICAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZmZmZmZmO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTokZWxlbS1wYWQtc207XG4gICAgICAgIG1hcmdpbjowIDAgJGVsZW0tcGFkLXNtIDA7XG4gICAgfVxuICAgICZfX2l0ZW0ge1xuICAgICAgICBwYWRkaW5nOiAkZWxlbS1wYWQteHhzbSAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7O1xuICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgICAmLXRpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtMigxOHB4KTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogJGxzLWJvZHk7XG4gICAgICAgICAgICBtYXJnaW46MDtcbiAgICAgICAgICAgIGNvbG9yOiBzZXRjb2xvcigyKTtcbiAgICAgICAgfVxuICAgICAgICAmLXRvcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgZ2FwOiAkZWxlbS1wYWQteHNtO1xuICAgICAgICB9XG4gICAgICAgICYtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbi5jYXJ0X19lZGl0LWNhcnQge1xuIGRpc3BsYXk6IGJsb2NrO1xuIHRleHQtYWxpZ246IHJpZ2h0O1xufSAgICIsIi8qKlxuICogVXNlIHRoaXMgZmlsZSB0byBhZGQgaW4gdGVtcG9yYXJ5IHN0eWxlcy4gIEZvciBleGFtcGxlIG92ZXJyaWRpbmcgbGVnYWN5IHN0eWxlcy5cbiAqIFRoZXNlIHN0eWxlcyB3aWxsIGJlIGFkZGVkIHdpdGggdGhlIGludGVudGlvbiB0byByZW1vdmUgdGhlbSAgb25jZSB0aW1lIHRvIHJlZmFjdG9yXG4gKlxuICovXG5cblxuIGJvZHksIGh0bWwge1xuICAgLy8gZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7IC8vT3ZlcndyaXRlIGJvb3RzdHJhcCBzdHlsZVxuIH0iXX0= */
