/*!
Theme Name: mujeres
Theme URI: http://underscores.me/
Author: Lightstream
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: mujeres
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

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

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

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

--------------------------------------------------------------*/
/* RFS
--------------------------------------------- */
/* Custom Colors
------------------------------------------*/
/* Custom Fonts
------------------------------------------*/
.btn {
  font-family: "Montserrat", sans-serif;
  color: #fff;
  background-color: #C25300;
  border: 1px solid #C25300;
  border-radius: 0;
  padding: 0.4em 0.25em;
  font-size: 14px;
  font-weight: bold;
  width: 175px;
  max-height: 55px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  text-transform: uppercase;
  border-radius: 35px;
}
.btn:link, .btn:visited {
  color: #fff;
}
.btn:hover, .btn:focus {
  color: #C25300;
  background-color: #fff;
}

.btn__wrapper {
  margin: 2em auto 0;
}

a.inline {
  font-weight: bold;
  text-decoration: none;
  color: #212326 !important;
}
a.inline:link {
  color: #212326 !important;
}
a.inline:visited {
  text-decoration: underline;
  color: #C25300;
}
a.inline:hover, a.inline:focus {
  color: #C25300 !important;
}

a.inline-orange {
  font-weight: bold;
  text-decoration: none;
  color: #C25300 !important;
}
a.inline-orange:link {
  color: #C25300 !important;
}
a.inline-orange:visited {
  text-decoration: underline;
  color: #212326;
}
a.inline-orange:hover, a.inline-orange:focus {
  color: #212326 !important;
}

.learn-more a {
  color: #C25300;
  font-weight: bold;
  text-decoration: none;
  text-transform: uppercase;
}
.learn-more a:link {
  color: #C25300;
}
.learn-more a:hover, .learn-more a:focus, .learn-more a:visited {
  color: #C25300;
  text-decoration: underline;
}

.article a {
  color: #C25300;
  font-weight: bold;
  text-decoration: none;
}
.article a:link {
  color: #C25300;
}
.article a:hover, .article a:focus, .article a:visited {
  text-decoration: underline;
}

.article-link {
  color: #212326 !important;
}
.article-link:link {
  text-decoration: none;
}
.article-link:hover, .article-link:focus {
  text-decoration: underline;
}

.read-more {
  height: 70px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.read-more a {
  color: #C25300;
  font-weight: bold;
  text-decoration: none;
  background: url("https://spatialbusiness.com/wp-content/uploads/2022/07/arrow-orange.svg") no-repeat 50% 0%;
  height: 70px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.read-more a.active {
  background: url("https://spatialbusiness.com/wp-content/uploads/2022/07/arrow-orange.svg") no-repeat 50% 100%;
  transition: 0.5s;
}
.read-more a:link {
  color: #C25300;
}
.read-more a:hover, .read-more a:focus, .read-more a:visited {
  color: #C25300;
}

.read-more-link:hover, .read-more-link:focus, .read-more-link:visited {
  text-decoration: underline;
  color: #C25300;
}

.read-more-2 {
  color: #005A96;
  font-weight: bold;
  text-decoration: none;
  background: url("https://spatialbusiness.com/wp-content/uploads/2022/07/arrow-read-more.svg") no-repeat 0 0;
  padding-left: 1.5em;
}
.read-more-2:link {
  color: #005A96;
}
.read-more-2:hover, .read-more-2:focus, .read-more-2:visited {
  text-decoration: underline;
  color: #005A96;
}

.read-more-modal {
  color: #005A96;
  font-weight: bold;
  text-decoration: none;
}
.read-more-modal:link {
  color: #005A96;
}
.read-more-modal:hover, .read-more-modal:focus, .read-more-modal:visited {
  text-decoration: underline;
  color: #005A96;
}

@media (min-width: 768px) {
  .btn {
    font-size: 16px;
  }

  .btn__wrapper {
    margin-top: 1.5em;
  }
}
@media (min-width: 992px) {
  .btn {
    font-size: 20px;
  }
}
@media (min-width: 1200px) {
  .btn {
    font-size: 23px;
    font-size: 1.4375em;
    width: 300px;
    height: 55px;
    padding: 0;
  }

  .btn__wrapper {
    margin-top: 2.5em;
    margin-left: 0;
  }
}
/* Bootstrap Override
-------------------------------*/
.container-xl {
  max-width: 1350px;
  margin: 0 auto;
}

.container-lg {
  max-width: 1280px;
}

.container-md {
  max-width: 1080px;
}

@media (max-width: 767px) {
  .col-12 {
    padding: 0 2em;
  }
}
/* Sections
-------------------------------*/
section {
  padding: 4em 0;
}
section.hero {
  padding-top: 0;
}

@media (min-width: 768px) {
  section {
    padding: 4em 0;
  }
}
@media (min-width: 992px) {
  section {
    padding: 4em 0;
  }
}
@media (min-width: 1200px) {
  section {
    padding: 6em 0;
  }
}
/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/
/* Normalize
--------------------------------------------- */
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
	 ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
}

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

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

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
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;
  height: 0;
  overflow: visible;
}

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

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

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

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

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

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

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

html {
  box-sizing: border-box;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/
/* Typography
--------------------------------------------- */
body,
button,
input,
select,
optgroup,
textarea {
  color: #212326;
  font-family: "Montserrat", sans-serif;
  font-size: 1rem;
  line-height: 1.5;
}

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

h1 {
  font-weight: 600;
  margin-bottom: 0.5em;
  line-height: 1.1333333333;
  color: #005A96;
  letter-spacing: -0.009em;
}

h2 {
  font-weight: bold;
  font-size: 22px;
  font-size: 1.375em;
  color: #197EB4;
  margin-bottom: 1.25em;
  line-height: 1.1777777778;
}

h3 {
  margin-bottom: 0.75em;
  font-weight: 600;
  font-size: 1rem;
}

p, span, li {
  font-size: 0.75rem;
  line-height: 1.5625;
}
p:last-of-type, span:last-of-type, li:last-of-type {
  margin-bottom: 0;
}

p, li {
  margin-bottom: 1.5em;
}

@media (min-width: 768px) {
  h2 {
    font-size: calc(1.2625rem + 0.15vw);
    margin-bottom: 0.5em;
    margin-top: 0;
  }
}
@media (min-width: 768px) and (min-width: 1200px) {
  h2 {
    font-size: 1.375rem;
  }
}
@media (min-width: 768px) {
  h3 {
    font-size: 1.125rem;
  }
}
@media (min-width: 768px) {
  p, span, li {
    font-size: 0.875rem;
  }
}
@media (min-width: 992px) {
  h1 {
    font-size: calc(1.4375rem + 2.25vw);
  }
}
@media (min-width: 992px) and (min-width: 1200px) {
  h1 {
    font-size: 3.125rem;
  }
}
@media (min-width: 992px) {
  h2 {
    font-size: calc(1.35rem + 1.2vw);
    margin-bottom: 1em;
  }
}
@media (min-width: 992px) and (min-width: 1200px) {
  h2 {
    font-size: 2.25rem;
  }
}
@media (min-width: 992px) {
  h3 {
    font-size: 1.25rem;
  }
}
@media (min-width: 992px) {
  p, span, li {
    font-size: 1rem;
  }
}
@media (min-width: 1200px) {
  h1 {
    font-size: calc(1.525rem + 3.3vw);
    margin-top: 0;
  }
}
@media (min-width: 1200px) and (min-width: 1200px) {
  h1 {
    font-size: 4rem;
  }
}
@media (min-width: 1200px) {
  h2 {
    font-size: calc(1.40625rem + 1.875vw);
    margin-bottom: 0.75em;
  }
}
@media (min-width: 1200px) and (min-width: 1200px) {
  h2 {
    font-size: 2.8125rem;
  }
}
@media (min-width: 1200px) {
  h3 {
    font-size: calc(1.26875rem + 0.225vw);
  }
}
@media (min-width: 1200px) and (min-width: 1200px) {
  h3 {
    font-size: 1.4375rem;
  }
}
dfn,
cite,
em,
i {
  font-style: italic;
}

blockquote {
  margin: 0 1.5em;
}

address {
  margin: 0 0 1.5em;
}

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

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

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

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

big {
  font-size: 125%;
}

sup {
  font-size: 65%;
}

/* Elements
--------------------------------------------- */
body {
  background: #fff;
  font-size: 16px;
}

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

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

ul {
  list-style: disc;
}

ol {
  list-style: decimal;
}

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

dt {
  font-weight: 700;
}

dd {
  margin: 0 1.5em 1.5em;
}

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

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

figure {
  margin: 1em 0;
}

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

/* Links
--------------------------------------------- */
a {
  color: #C25300;
}
a:visited {
  color: #800080;
}
a:hover, a:focus, a:active {
  color: #191970;
}
a:focus {
  outline: thin dotted;
}
a:hover, a:active {
  outline: 0;
}

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

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

select {
  border: 1px solid #ccc;
}

textarea {
  width: 100%;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/
/* Navigation
--------------------------------------------- */
.main-navigation {
  display: block;
  width: 100%;
}
.main-navigation ul {
  display: none;
  list-style: none;
  margin: 0;
  padding-left: 0;
}
.main-navigation ul ul {
  box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
  float: left;
  position: absolute;
  top: 100%;
  left: -999em;
  z-index: 99999;
}
.main-navigation ul ul ul {
  left: -999em;
  top: 0;
}
.main-navigation ul ul li:hover > ul, .main-navigation ul ul li.focus > ul {
  display: block;
  left: auto;
}
.main-navigation ul ul a {
  width: 200px;
}
.main-navigation ul li:hover > ul,
.main-navigation ul li.focus > ul {
  left: auto;
}
.main-navigation li {
  position: relative;
}
.main-navigation a {
  display: block;
  text-decoration: none;
}
/* Small menu. */
.menu-toggle,
.main-navigation.toggled ul {
  display: block;
}

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

  .main-navigation ul {
    display: flex;
  }
}
.site-main .comment-navigation,
.site-main .posts-navigation,
.site-main .post-navigation {
  margin: 0 0 1.5em;
}
.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
  display: flex;
}
.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
  flex: 1 0 50%;
}
.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
  text-align: end;
  flex: 1 0 50%;
}

/* Posts and pages
--------------------------------------------- */
/* Homepage
--------------------------------------------- */
/* # Modal
------------------------------*/
.modal {
  z-index: 100000;
  position: relative;
}

.modal-content {
  border-radius: 25px;
  box-shadow: 0px 3px 10px 5px rgba(100, 100, 100, 0.2);
  border: none;
}

#popupModal .modal-text {
  margin-top: 2em;
}

.modal-title {
  margin-bottom: 1em;
}

.modal__info {
  font-weight: bold;
  font-size: 0.71875rem;
}
.modal__info:first-of-type {
  margin-bottom: 0;
}

.modal-header {
  border: none;
}

.btn-close {
  background-image: url("https://spatialbusiness.com/wp-content/uploads/2022/07/modal-close.svg");
  font-size: 24px;
}

@media (min-width: 992px) {
  .modal-dialog {
    max-width: 768px;
  }
}
@media (min-width: 1200px) {
  .modal-title {
    font-size: calc(1.265625rem + 0.1875vw);
  }
}
@media (min-width: 1200px) and (min-width: 1200px) {
  .modal-title {
    font-size: 1.40625rem;
  }
}
@media (min-width: 1200px) {
  .modal-header {
    padding-right: 2em;
    padding-top: 2em;
  }
}
@media (min-width: 1200px) {
  .modal-dialog {
    max-width: 1080px;
  }
}
@media (min-width: 1200px) {
  .modal-body {
    padding: 2em 4em;
  }
}
@media (min-width: 1200px) {
  #popupModal .modal-text {
    margin-top: 4em;
  }
}
@media (min-width: 1920px) {
  .modal-dialog {
    max-width: 1390px;
  }

  #popupModal .modal-dialog .modal-dialog, #popupModal .modal-dialog .modal-content {
    min-height: 973px;
  }

  .modal-body {
    padding: 2em 10em;
  }
}
/* # Functionality
------------------------------*/
/* Slide In */
.slideUp.animate {
  opacity: 0;
  transform: translateY(200px);
  transition: 0.5s ease opacity 0.1s, 0.75s ease transform 0.15s;
}

.slideUp.animated {
  display: block;
  opacity: 1;
  transform: translateY(0);
}

.slideUp.delay250 {
  transition-delay: 300ms;
}

.slideUp.delay500 {
  transition-delay: 600ms;
}

.slideUp.delay750 {
  transition-delay: 900ms;
}

.slideUp.delay1000 {
  transition-delay: 1200ms;
}

.slideUp.delay1250 {
  transition-delay: 1500ms;
}

.slideUp.delay1500 {
  transition-delay: 1800ms;
}

.slideUp.delay1750 {
  transition-delay: 2100ms;
}

.slideUp.delay2000 {
  transition-delay: 2400ms;
}

.slideUp.delay2250 {
  transition-delay: 2700ms;
}

.slideUp.delay2500 {
  transition-delay: 3000ms;
}

.slideUp.delay2750 {
  transition-delay: 3300ms;
}

/* Content
------------------------------------------*/
@media (max-width: 767px) {
  .home.content {
    padding-top: 0;
  }

  .home.content-2 {
    padding-top: 0;
  }

  .home .content-img {
    padding: 0;
    margin-bottom: 2em;
  }
}
@media (min-width: 768px) {
  .home.content {
    padding-bottom: 2em;
  }
  .home.content .content-img {
    padding-right: 0;
  }
  .home.content .content-text {
    max-width: 565px;
    align-self: center;
  }

  .home.content-2 {
    padding-top: 2em;
  }
  .home.content-2 .content-img {
    padding-left: 0;
  }
  .home.content-2 .content-text {
    max-width: 565px;
    align-self: center;
  }
}
@media (min-width: 1200px) {
  .home.content {
    margin: 6em 0;
    background-image: url("https://spatialbusiness.com/wp-content/uploads/2022/07/body-bg-1.png");
    background-size: cover;
    background-position-x: 54%;
    background-repeat: no-repeat;
  }

  .home.content-2 {
    margin: 3em 0 6em;
    background-image: url("https://spatialbusiness.com/wp-content/uploads/2022/07/body-bg-2-1.png");
    background-size: cover;
    background-position-x: 64%;
    background-repeat: no-repeat;
  }
  .home.content-2 .flex {
    justify-content: space-around;
  }
  .home.content-2 .content-text {
    height: 615px;
  }
}
@media (min-width: 1440px) {
  .home.content {
    background-size: cover;
    height: 615px;
    padding: 0;
  }

  .home.content-2 {
    background-size: cover;
    height: 615px;
    padding: 0;
  }

  .home.content-text {
    height: 615px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
}
@media (min-width: 1920px) {
  .home.content-2 .content-text {
    margin-left: 36em;
  }
}
/* Flow Chart
------------------------------------------*/
.flow {
  background-image: url("https://spatialbusiness.com/wp-content/uploads/2022/06/blue-bg.png");
}
.flow h2 {
  color: #fff;
}
.flow .description {
  margin-bottom: 3em;
  color: #fff;
}
.flow .spatial {
  font-weight: 600;
  font-style: italic;
}
.flow__wrapper {
  margin-bottom: 1em;
}
.flow__start {
  margin-bottom: 1em;
  max-width: 275px;
  position: relative;
  z-index: 1000;
}
.flow__start p {
  font-weight: bold;
  background-color: #fff;
  border-radius: 15px;
  text-align: left;
  text-transform: uppercase;
  color: #005A96;
  font-size: 0.75rem;
  font-weight: bold;
  display: flex;
  width: 100%;
  height: 65px;
  line-height: 1.125;
  padding: 0.5em 1em;
}
.flow__start p span {
  align-self: center;
  flex-basis: 95%;
  font-size: 0.75rem;
}
.flow__start p span:last-of-type {
  flex-basis: 5%;
}
.flow__item {
  padding: 0.5em 1em;
  border: 1px solid #fff;
  border-radius: 15px;
  margin-bottom: 1em;
  max-width: 275px;
  height: 65px;
  align-items: center;
}
.flow__item p {
  color: #fff;
  font-weight: 500;
  font-size: 0.75rem;
  line-height: 1.125;
}
.flow .flow__arrow {
  margin-bottom: 1em;
  text-align: center;
}
.flow .title {
  margin-bottom: 0;
  font-weight: 500;
}
.flow .chapter {
  text-transform: uppercase;
  font-weight: bold;
}

@media (max-width: 767px) {
  .flow .title {
    margin-top: 1em;
  }
}
@media (min-width: 768px) {
  .flow .flex {
    display: flex;
    justify-content: space-between;
  }
  .flow__wrapper {
    flex-basis: 30%;
  }
  .flow__start p {
    text-align: center;
    justify-content: center;
    padding: 1em 0;
  }
  .flow__item {
    line-height: 1.125;
    padding: 0 5px;
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    align-self: center;
  }
  .flow__item p {
    text-align: center;
  }
  .flow__arrow img {
    margin-top: 1.25em;
    transform: rotate(270deg);
  }
}
@media (min-width: 992px) {
  .flow__start {
    margin-bottom: 1.5em;
  }
  .flow__start p span {
    font-size: 1rem;
  }
  .flow__wrapper {
    flex-basis: 28%;
  }
  .flow__arrow img {
    width: 30px;
  }
  .flow__item {
    margin-bottom: 1.5em;
  }
  .flow__item p {
    font-size: 1rem;
  }
  .flow .description {
    margin-bottom: 4em;
  }
}
@media (min-width: 1200px) {
  .flow__wrapper {
    flex-basis: 33%;
  }
  .flow__arrow {
    margin-right: 0.5em;
  }
  .flow .flex {
    max-width: 940px;
  }
}
/* Secondary
--------------------------------------------- */
/* Animation
------------------------------------------*/
.animate {
  opacity: 0;
  transform: translateX(-200px);
  transition: 0.5s ease opacity 0.1s, 0.75s ease transform 0.15s;
}

.animated {
  opacity: 1;
  transform: translateX(0);
}

.reverse.animate {
  opacity: 0;
  transform: translateX(200px);
  transition: 0.5s ease opacity 0.1s, 0.75s ease transform 0.15s;
}

.reverse.animated {
  opacity: 1;
  transform: translateX(0);
}

/* About the Book
------------------------------------------*/
/* Content */
.page__about.content, .page__about-2.content {
  padding-top: 1em;
}
.page__about.content .book-list-description, .page__about-2.content .book-list-description {
  max-width: 520px;
}
.page__about.content .book-list, .page__about-2.content .book-list {
  padding: 0;
  margin: 0;
}
.page__about.content .book-list li, .page__about-2.content .book-list li {
  min-height: 30px;
  padding-left: 3.75em;
  margin-bottom: 1.5em;
  list-style-type: none;
  background: url("https://spatialbusiness.com/wp-content/uploads/2022/07/checkmark.svg") no-repeat 0% 0%;
}
.page__about.content .book-list li:last-of-type, .page__about-2.content .book-list li:last-of-type {
  margin-bottom: 0;
}

.page__about.flow h2 {
  text-align: left;
}
.page__about.flow .description {
  text-align: left;
}

@media (max-width: 767px) {
  .page__about.content {
    padding-top: 0;
  }
  .page__about.content .content-img {
    padding: 0;
    margin-bottom: 2em;
  }
}
@media (min-width: 768px) {
  .page__about .hero__text {
    padding-right: 0;
  }

  .page__about.content .flex {
    justify-content: space-around;
  }
  .page__about.content .content-img {
    padding-left: 0;
  }
  .page__about.content .content-text {
    align-self: center;
    max-width: 510px;
  }

  .page__about.flow h2 {
    text-align: center;
  }
  .page__about.flow .description {
    text-align: center;
  }
}
@media (min-width: 1200px) {
  .page__about.content {
    margin: 6em 0;
    padding-bottom: 2em;
    background-image: url("https://spatialbusiness.com/wp-content/uploads/2023/03/body-about-bg.png");
    background-size: cover;
    background-position-x: 50%;
    padding: 0;
    height: 700px;
  }
  .page__about.content .content-text {
    height: 700px;
  }

  .page__about-2.content {
    background-image: url("https://spatialbusiness.com/wp-content/uploads/2023/03/body-6.png");
    margin: 84px 0;
    padding-bottom: 2em;
    background-size: cover;
    background-position-x: 38%;
    padding: 84px 0;
  }
  .page__about-2.content .content-img {
    align-self: center;
  }
}
@media (min-width: 1440px) {
  .page__about.content .content-text {
    margin-left: 36em;
  }

  .content-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: auto;
  }
}
@media (min-width: 1920px) {
  .page__about.content {
    background-position-x: 10%;
  }
}
/* Flow */
.page__about.flow {
  text-align: center;
}
.page__about.flow .flow__item {
  min-height: 65px;
}
.page__about.flow .flow__start p {
  text-align: center;
  min-height: 65px;
}

/* Authors */
.authors {
  text-align: center;
}
.authors .author {
  margin-bottom: 2em;
  position: relative;
}
.authors .author img {
  margin-bottom: 2em;
}
.authors .author img.active {
  opacity: 1 !important;
}
.authors .author img.inactive {
  opacity: 0.25;
}
.authors .author .author-close__wrapper {
  display: flex;
  justify-content: space-between;
}
.authors .author .author-close {
  padding: 0;
}
.authors .author__info {
  background-color: #F3F3F5;
  padding: 2em 1.5em;
  border-radius: 25px;
  box-shadow: 0px 3px 10px 5px rgba(100, 100, 100, 0.2);
  position: absolute;
  left: 1em;
  text-align: left;
  opacity: 0;
  display: none;
  width: 280px;
  margin: 0 auto;
  z-index: 100;
}
.authors .author__info.active {
  opacity: 1;
  display: block;
  transition: 0.5s;
}

@media (min-width: 375px) {
  .authors .author__info {
    left: 3em;
  }
}
@media (min-width: 425px) {
  .authors .author__info {
    left: 5em;
  }
}
@media (max-width: 767px) {
  .authors .author__info {
    top: 15em;
  }
}
@media (min-width: 768px) {
  .authors {
    position: relative;
  }
  .authors .author {
    max-width: 306px;
    flex-basis: 33%;
    position: initial;
  }
  .authors .author__info {
    width: 600px;
    top: 20em;
    left: 10% !important;
    /* position the left edge of the element at the middle of the parent */
  }
  .authors .flex {
    display: flex;
    justify-content: space-between;
  }
}
@media (min-width: 992px) {
  .authors .author__info {
    width: 850px;
  }
}
@media (min-width: 1200px) {
  .authors .author__info {
    padding: 2.5em 3em;
    width: 1080px;
    top: 26em;
    left: 20% !important;
  }
}
/* ESRI Partnership
------------------------------------------*/
.page__esri .hero__text p {
  max-width: 530px;
}
.page__esri .logo__wrapper {
  margin-top: 2em;
}
.page__esri.content h3 {
  margin: 2em 0 1.5em;
  font-weight: bold;
  color: #197EB4;
  text-transform: uppercase;
}
.page__esri.content .book-list {
  padding: 0;
  margin: 0;
}
.page__esri.content .book-list li {
  font-weight: bold;
  padding-left: 2em;
  margin-bottom: 1em;
  list-style-type: none;
  background: url("https://spatialbusiness.com/wp-content/uploads/2022/07/arrow-list.svg") no-repeat 0% 0%;
}
.page__esri.content .book-list li a {
  color: #212326;
  text-decoration: none;
}
.page__esri.content .book-list li a:link {
  color: #212326;
}
.page__esri.content .book-list li a:hover, .page__esri.content .book-list li a:focus {
  color: #C25300;
}
.page__esri.content .book-list li:last-of-type {
  margin-bottom: 0;
}

@media (max-width: 767px) {
  .page__esri.content {
    padding-top: 0;
  }
  .page__esri.content .content-img {
    padding: 0;
    margin-bottom: 2em;
  }
}
@media (min-width: 768px) {
  .page__esri {
    margin: 6em 0;
    background-image: url("https://spatialbusiness.com/wp-content/uploads/2022/07/body-bg-4.png");
    background-size: cover;
    background-position-x: 45%;
  }

  .page__esri.content {
    padding-bottom: 2em;
  }
  .page__esri.content .content-img {
    padding-left: 0;
  }
  .page__esri.content .content-text {
    align-self: center;
    max-width: 510px;
  }
  .page__esri.content .book-list {
    columns: 2;
  }
}
@media (min-width: 1440px) {
  .page__esri {
    background-image: url("https://spatialbusiness.com/wp-content/uploads/2022/07/body-bg-4.png");
    background-size: cover;
    background-position-x: 55%;
  }
  .page__esri.hero {
    min-height: 840px;
  }
  .page__esri .logo__wrapper {
    margin-top: 3.5em;
  }
  .page__esri.content {
    padding: 0;
    margin: 6em 0;
    height: 615px;
  }
  .page__esri.content h3 {
    margin: 1em 0;
  }
  .page__esri .content-text {
    height: 615px;
    margin-left: 36em;
  }
}
/* Quote */
.page__esri.quote {
  background-image: url("https://spatialbusiness.com/wp-content/uploads/2022/06/blue-bg.png");
}
.page__esri.quote .quote-1 {
  margin-bottom: 5em;
}
.page__esri.quote .quote__text {
  line-height: 1.2380952381;
  color: #fff;
  font-family: "Playfair Display", serif;
  font-size: calc(1.25625rem + 0.075vw);
  margin-top: 1em;
}
@media (min-width: 1200px) {
  .page__esri.quote .quote__text {
    font-size: 1.3125rem;
  }
}
.page__esri.quote .attribute__wrapper {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 470px;
  margin-top: 2em;
}
.page__esri.quote .attribute__wrapper-2 {
  max-width: 285px;
}
.page__esri.quote .attribute {
  margin-left: 1.5em;
  color: #fff;
  font-weight: bold;
  line-height: 1.4782608696;
  font-size: 0.71875rem;
}

@media (min-width: 768px) {
  .page__esri.quote .quote-1 .quote__text {
    max-width: 750px;
  }
  .page__esri.quote .quote__text {
    line-height: 1.5625;
    font-size: calc(1.275rem + 0.3vw);
  }
}
@media (min-width: 768px) and (min-width: 1200px) {
  .page__esri.quote .quote__text {
    font-size: 1.5rem;
  }
}
@media (min-width: 768px) {
  .page__esri.quote .attribute__wrapper {
    margin-top: 4em;
  }
}
@media (min-width: 768px) {
  .page__esri.quote .attribute {
    margin-left: 0;
    margin-top: 0;
  }
}
@media (min-width: 992px) {
  .page__esri.quote .quote__text {
    font-size: calc(1.3rem + 0.6vw);
  }
}
@media (min-width: 992px) and (min-width: 1200px) {
  .page__esri.quote .quote__text {
    font-size: 1.75rem;
  }
}
@media (min-width: 1200px) {
  .page__esri.quote .quote__text {
    font-size: calc(1.325rem + 0.9vw);
  }
}
@media (min-width: 1200px) and (min-width: 1200px) {
  .page__esri.quote .quote__text {
    font-size: 2rem;
  }
}
/* Why Redlands
------------------------------------------*/
.page__redlands hr {
  opacity: 1;
  background-color: #212326;
  margin-bottom: -1em;
}
.page__redlands .accordion-item {
  border: none;
}
.page__redlands .accordion-button {
  padding: 0;
  display: flex;
  align-items: flex-start;
}
.page__redlands .accordion-button::after {
  color: #C25300;
  background: url("https://spatialbusiness.com/wp-content/uploads/2022/07/arrow-dropdown.svg") no-repeat 50% 100%;
  background-position-y: 50%;
}
.page__redlands .accordion-button:not(.collapsed) {
  color: #212326;
  background-color: #fff;
  box-shadow: none;
}
.page__redlands .accordion-button:not(.collapsed)::after {
  background-position-y: 40%;
  transform: rotate(0deg);
  background: url("https://spatialbusiness.com/wp-content/uploads/2022/07/arrow-dropdown-orange.svg") no-repeat 50% 50%;
  transition: 0.5s;
}
.page__redlands .accordion-button:not(.collapsed):hover::after {
  transform: rotate(180deg);
}
.page__redlands .accordion-title {
  font-weight: bold;
  margin-bottom: 0.25em;
}
.page__redlands .accordion-subtitle {
  color: #C25300;
  font-weight: bold;
}
.page__redlands .accordion-body {
  padding: 0;
  padding-bottom: 1em;
}
.page__redlands .dropdown {
  border: none;
}
.page__redlands .dropdown__item {
  border-top: 1px solid #212326;
}
.page__redlands .dropdown__item:first-of-type {
  margin-top: 2em;
}
.page__redlands .dropdown__item:last-of-type {
  border-bottom: 1px solid #212326;
}
.page__redlands .hero__text p {
  max-width: 530px;
}
.page__redlands .logo__wrapper {
  margin-top: 2em;
}
.page__redlands.content {
  padding: 0;
}
.page__redlands.content h3 {
  margin: 1em 0 0.5em;
  font-weight: bold;
  color: #197EB4;
  text-transform: uppercase;
}
.page__redlands.content .book-list {
  padding: 0;
  margin: 0;
}
.page__redlands.content .book-list li {
  font-weight: bold;
  padding-left: 2em;
  margin-bottom: 1em;
  list-style-type: none;
  background: url("https://spatialbusiness.com/wp-content/uploads/2022/07/arrow-list.svg") no-repeat 0% 0%;
}
.page__redlands.content .book-list li:last-of-type {
  margin-bottom: 0;
}

@media (max-width: 767px) {
  .page__redlands.content .content-img {
    padding: 0;
    margin-bottom: 2em;
  }
}
@media (min-width: 768px) {
  .page__redlands.content {
    margin: 6em 0 0;
    background-image: url("https://spatialbusiness.com/wp-content/uploads/2022/07/body-5-bg.png");
    background-size: cover;
    background-repeat: no-repeat;
    background-position-x: 40%;
  }
  .page__redlands.content .content-img {
    padding-left: 0;
  }
  .page__redlands.content .content-text {
    align-self: center;
    max-width: 570px;
  }
}
@media (min-width: 992px) {
  .page__redlands .accordion-body {
    padding-bottom: 2em;
  }
  .page__redlands .logo__wrapper {
    margin-top: 3.5em;
  }
  .page__redlands.content h3 {
    margin: 1em 0;
  }
}
/* Articles */
.page__redlands.articles .article {
  margin-bottom: 4em;
}
.page__redlands.articles .article:last-of-type {
  margin-bottom: 0;
}
.page__redlands.articles h3 {
  margin-top: 2em;
  margin-bottom: 1.5em;
  font-weight: 600;
}
.page__redlands.articles .date {
  text-transform: uppercase;
  font-weight: bold;
  font-size: 0.71875rem;
}

@media (min-width: 768px) {
  .page__redlands.articles .article {
    margin-bottom: 0;
  }
  .page__redlands.articles h3 {
    min-height: 87px;
  }
}
@media (min-width: 992px) {
  .page__redlands.articles h3 {
    min-height: 50px;
  }
}
@media (min-width: 1200px) {
  .page__redlands.articles h3 {
    min-height: 56px;
  }
}
/* Contact
------------------------------------------*/
.page__contact.hero__text p {
  max-width: 460px;
}
.page__contact.hero .btn__wrapper {
  margin-top: 0.5em;
}
.page__contact.hero .btn__wrapper:first-of-type {
  margin-top: 2em;
}
.page__contact.hero .btn {
  width: 260px;
}

@media (min-width: 1200px) {
  .page__contact.hero {
    margin-bottom: 14em;
  }
  .page__contact.hero .btn__wrapper {
    margin-top: 1em;
  }
  .page__contact.hero .btn__wrapper:first-of-type {
    margin-top: 5em;
  }
  .page__contact.hero .btn {
    width: 440px;
  }
}
/* Form Modal */
#contactModal .gform_footer {
  justify-content: flex-end;
}

.gform_body input {
  border: 1px solid #212326;
}
.gform_body textarea {
  border: 1px solid #212326;
}

.gform_footer input {
  background-color: #C25300;
  color: #fff;
  text-transform: uppercase;
  border-radius: 35px;
  border: 1px solid #C25300;
  font-weight: bold;
  font-family: "Montserrat", sans-serif;
  width: 175px;
  height: 35px;
  padding: 0;
}
.gform_footer input:link, .gform_footer input:visited {
  color: #C25300;
}
.gform_footer input:hover, .gform_footer input:focus {
  color: #C25300;
  background-color: #fff;
}

@media (min-width: 1200px) {
  .gform_footer input {
    width: 200px;
    font-size: calc(1.265625rem + 0.1875vw);
    height: 55px;
    padding: 0;
  }
}
@media (min-width: 1200px) and (min-width: 1200px) {
  .gform_footer input {
    font-size: 1.40625rem;
  }
}
/* Comments
--------------------------------------------- */
.comment-content a {
  word-wrap: break-word;
}

.bypostauthor {
  display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
  margin: 0 0 1.5em;
}
.widget select {
  max-width: 100%;
}

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

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

/* Captions
--------------------------------------------- */
.wp-caption {
  margin-bottom: 1.5em;
  max-width: 100%;
}
.wp-caption img[class*=wp-image-] {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.wp-caption .wp-caption-text {
  margin: 0.8075em 0;
}

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

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

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

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

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

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

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

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

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

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

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

.gallery-caption {
  display: block;
}

/* Sections
--------------------------------------------- */
/* Header
--------------------------------------------- */
header {
  padding: 1em 0;
  margin-bottom: 2.5em;
  background-image: url("https://spatialbusiness.com/wp-content/uploads/2022/06/header-bg.png");
  background-size: cover;
  box-shadow: 0px 10px 20px 7px rgba(150, 150, 150, 0.3), 0 3px 20px 0 rgba(150, 150, 150, 0.19);
}
header.active {
  background-image: none;
  background-color: #fff;
}
header .menu {
  margin-left: 1em;
  padding-left: 0;
}
header .menu li {
  list-style-image: url("https://spatialbusiness.com/wp-content/uploads/2022/06/arrow-mobile.svg");
}
header .menu li.active {
  list-style-image: url("https://spatialbusiness.com/wp-content/uploads/2022/06/arrow-orange-mobile.svg");
  transition: 0.5s;
  margin-left: 1em;
}
header .menu a {
  color: #212326;
  text-decoration: none;
  font-weight: bold;
  font-size: 1rem;
  padding-left: 1em;
}
header .menu a:visited {
  text-decoration: underline;
}
header .menu a:hover, header .menu a:focus {
  color: #C25300;
}

@media (min-width: 768px) {
  header {
    padding: 2em 0 0.5em;
  }
  header .home-icon__wrapper {
    align-self: center;
  }
  header .home-icon img {
    margin-top: -1em;
  }
  header .menu {
    display: flex;
    justify-content: space-between;
    list-style-type: none;
    padding-left: 0;
    margin-bottom: 0;
    max-width: 660px;
    float: right;
  }
  header .menu__wrapper {
    align-self: center;
  }
  header .menu li {
    height: 70px;
    list-style-image: none;
    background: url("https://spatialbusiness.com/wp-content/uploads/2022/06/arrow.svg") no-repeat 50% 0%;
    margin-left: 1em;
  }
  header .menu li:first-of-type {
    margin-left: 0;
  }
  header .menu li.active, header .menu li.current-menu-item {
    list-style-image: none;
    background: url("https://spatialbusiness.com/wp-content/uploads/2022/07/arrow-orange.svg") no-repeat 50% 100%;
    transition: 0.5s;
  }
  header .menu li.active a, header .menu li.current-menu-item a {
    color: #C25300;
  }
  header .menu a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 70px;
    padding-left: 0.5em;
  }
  header .flex {
    display: flex !important;
  }
}
@media (min-width: 1200px) {
  header {
    padding: 4em 0 2.5em;
  }
}
/* Mobile Nav
----------------------------- */
.mobile-container {
  margin: auto;
  color: white;
  border-radius: 10px;
}

.topnav {
  padding: 0.25em 0 0;
  overflow: hidden;
  position: relative;
}
.topnav svg {
  max-width: 140px;
}

.topnav #navItems {
  display: none;
  margin-top: 2em;
}

.topnav a {
  color: white;
  padding: 6px 0;
  text-decoration: none;
  text-transform: uppercase;
  font-size: 14px;
  font-size: 0.875em;
  font-weight: bold;
  display: block;
  margin-bottom: 0;
}

.topnav a.mobileNav {
  font-size: 27px;
  color: #212326;
  display: block;
  position: absolute;
  right: 0;
  top: 0.25em;
  padding: 0;
}

/* Hero
--------------------------------------------- */
.hero__text {
  max-width: 682px;
}
.hero .esri-logo, .hero .redlands-logo {
  width: 325px;
}

.page__about .hero__text p {
  max-width: 530px;
}

@media (min-width: 768px) {
  .hero {
    background-size: cover;
    background-position-x: center;
  }
}
@media (min-width: 1200px) {
  .hero {
    padding: 6em 0;
  }
  .hero__text {
    margin-top: 6em;
  }
}
@media (min-width: 1920px) {
  .hero {
    background-size: contain;
    background-repeat: no-repeat;
    background-position-y: 50%;
  }
}
/* Footer
--------------------------------------------- */
footer {
  background-color: #F3F3F5;
  padding-bottom: 2em;
}
footer .footer-2 {
  margin-top: 4em;
}
footer .btn {
  margin: 0 auto;
  width: 264px;
  background-color: #00244A;
  border-color: #00244A;
}
footer .btn + .btn {
  margin-top: 1em;
}
footer .btn:link, footer .btn:visited {
  color: #fff;
}
footer .btn:hover, footer .btn:focus {
  color: #00244A;
  background-color: #fff;
}
footer .btn__wrapper {
  margin: 0 0 4em;
}
footer .social {
  margin: 1.5em 0;
  display: flex;
  justify-content: space-between;
  max-width: 207px;
}
footer .social-1 svg {
  fill: #212326;
}
footer .social-1 svg:hover, footer .social-1 svg:focus {
  fill: #C25300 !important;
}
footer .social-2 svg {
  fill: #212326;
}
footer .social-2 svg:hover, footer .social-2 svg:focus {
  fill: #197EB4 !important;
}
footer .footer-links p {
  margin-bottom: 0.5em;
}
footer .footer-links a {
  color: #212326;
  font-weight: bold;
  text-decoration: none;
  font-size: 14px;
}
footer .footer-links a:visited {
  text-decoration: underline;
}
footer .footer-links a:hover, footer .footer-links a:focus {
  text-decoration: underline;
}
footer .copyright {
  margin-top: 3em;
  font-size: 0.6875rem;
}

@media (min-width: 425px) {
  footer .footer-1 {
    margin: 0 auto;
    max-width: 320px;
  }
  footer .footer-2 {
    margin: 4em auto 0;
    max-width: 320px;
  }
  footer .copyright {
    max-width: 250px;
    margin: 3em auto 0;
  }
}
@media (min-width: 768px) {
  footer {
    padding: 4em 0 2em;
    margin-top: 4em;
  }
  footer .logo__wrapper {
    height: 50px;
  }
  footer .footer-2 {
    margin-top: 0;
  }
  footer .footer-3 img {
    margin-top: -10em;
  }
  footer .footer-links p {
    margin-bottom: 0;
  }
  footer .copyright {
    font-size: 0.75rem;
    margin: 3em 0 0;
    max-width: 100%;
  }
  footer .btn__wrapper {
    margin-top: -8em;
  }
}
@media (min-width: 992px) {
  footer {
    margin-top: 8em;
  }
  footer .footer-3 img {
    margin-top: -12em;
  }
  footer .copyright {
    font-size: 0.875rem;
  }
  footer .btn__wrapper {
    margin-top: -14em;
  }
}
@media (min-width: 1200px) {
  footer {
    padding-top: 98px;
  }
  footer .footer-3 img {
    margin-top: -15.5em;
  }
  footer .copyright {
    font-size: 1rem;
  }
  footer .btn__wrapper {
    margin-top: -16em;
  }
  footer .btn {
    width: 420px;
  }
}
/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/
/* Jetpack infinite scroll
--------------------------------------------- */
/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
  display: none;
}

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

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/
/* Accessibility
--------------------------------------------- */
/* Text meant only for screen readers. */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}
.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  clip-path: none;
  color: #21759b;
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

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

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

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

.aligncenter {
  clear: both;
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.5em;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLnNjc3MiLCJhYnN0cmFjdHMvdmFyaWFibGVzL19jb2xvcnMuc2NzcyIsImFic3RyYWN0cy92YXJpYWJsZXMvX3R5cG9ncmFwaHkuc2NzcyIsImFic3RyYWN0cy92YXJpYWJsZXMvX3N0cnVjdHVyZS5zY3NzIiwiZ2VuZXJpYy9fbm9ybWFsaXplLnNjc3MiLCJnZW5lcmljL19ib3gtc2l6aW5nLnNjc3MiLCJiYXNlL19iYXNlLnNjc3MiLCJiYXNlL3R5cG9ncmFwaHkvX3R5cG9ncmFwaHkuc2NzcyIsImJhc2UvdHlwb2dyYXBoeS9faGVhZGluZ3Muc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZnMvc2Nzcy5zY3NzIiwiYmFzZS90eXBvZ3JhcGh5L19jb3B5LnNjc3MiLCJiYXNlL2VsZW1lbnRzL19ib2R5LnNjc3MiLCJiYXNlL2VsZW1lbnRzL19oci5zY3NzIiwiYmFzZS9lbGVtZW50cy9fbGlzdHMuc2NzcyIsImJhc2UvZWxlbWVudHMvX21lZGlhLnNjc3MiLCJiYXNlL2VsZW1lbnRzL190YWJsZXMuc2NzcyIsImJhc2UvZWxlbWVudHMvX2xpbmtzLnNjc3MiLCJiYXNlL2VsZW1lbnRzL19idXR0b25zLnNjc3MiLCJiYXNlL2VsZW1lbnRzL19maWVsZHMuc2NzcyIsImNvbXBvbmVudHMvX2NvbXBvbmVudHMuc2NzcyIsImNvbXBvbmVudHMvbmF2aWdhdGlvbi9fbmF2aWdhdGlvbi5zY3NzIiwiY29tcG9uZW50cy9jb250ZW50L19jb250ZW50LnNjc3MiLCJjb21wb25lbnRzL2NvbnRlbnQvX2hvbWVwYWdlLnNjc3MiLCJjb21wb25lbnRzL2NvbnRlbnQvX3NlY29uZGFyeS5zY3NzIiwiY29tcG9uZW50cy9jb21tZW50cy9fY29tbWVudHMuc2NzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9fd2lkZ2V0cy5zY3NzIiwiY29tcG9uZW50cy9tZWRpYS9fbWVkaWEuc2NzcyIsImNvbXBvbmVudHMvbWVkaWEvX2NhcHRpb25zLnNjc3MiLCJhYnN0cmFjdHMvbWl4aW5zL19taXhpbnMuc2NzcyIsImNvbXBvbmVudHMvbWVkaWEvX2dhbGxlcmllcy5zY3NzIiwiY29tcG9uZW50cy9zZWN0aW9ucy9fc2VjdGlvbnMuc2NzcyIsImNvbXBvbmVudHMvc2VjdGlvbnMvX2hlYWRlci5zY3NzIiwiY29tcG9uZW50cy9zZWN0aW9ucy9faGVyby5zY3NzIiwiY29tcG9uZW50cy9zZWN0aW9ucy9fZm9vdGVyLnNjc3MiLCJwbHVnaW5zL2pldHBhY2svX2luZmluaXRlLXNjcm9sbC5zY3NzIiwidXRpbGl0aWVzL19hY2Nlc3NpYmlsaXR5LnNjc3MiLCJ1dGlsaXRpZXMvX2FsaWdubWVudHMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBd0JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBNEJBO0FBQUE7QUMvQkE7QUFBQTtBQ2JBO0FBQUE7QUFRQTtFQUNJLGFBTlM7RUFPVDtFQUNBLGtCRGVTO0VDZFQ7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJLE9ETEs7RUNNTDs7O0FBSVI7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0EsT0RuQ1E7O0FDc0NaO0VBQ0k7OztBQUlSO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTtFQUNBLE9EakRXOztBQ29EZjtFQUNJOzs7QUFNSjtFQUNJLE9EbkRNO0VDb0ROO0VBQ0E7RUFDQTs7QUFFQTtFQUNJLE9EekRFOztBQzRETjtFQUNJLE9EN0RFO0VDOERGOzs7QUFPUjtFQUNJLE9EdEVNO0VDdUVOO0VBQ0E7O0FBRUE7RUFDSSxPRDNFRTs7QUM4RU47RUFDSTs7O0FBS1o7RUFDSTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSSxPRHZHTTtFQ3dHTjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBR0o7RUFDSSxPRHRIRTs7QUN5SE47RUFDSSxPRDFIRTs7O0FDaUlWO0VBQ0k7RUFDQSxPRGpKUTs7O0FDcUpoQjtFQUNJLE9EdklZO0VDd0laO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0ksT0Q5SVE7O0FDaUpaO0VBQ0k7RUFDQSxPRG5KUTs7O0FDdUpoQjtFQUNJLE9EeEpZO0VDeUpaO0VBQ0E7O0FBRUE7RUFDSSxPRDdKUTs7QUNnS1o7RUFDSTtFQUNBLE9EbEtROzs7QUNzS2hCO0VBRUk7SUFDSTs7O0VBR0o7SUFDSTs7O0FBSVI7RUFFSTtJQUNJOzs7QUFJUjtFQUVJO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7O0VBR0o7SUFDSTtJQUNBOzs7QUN4T1I7QUFBQTtBQUdBO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFFSTtJQUNJOzs7QUFJUjtBQUFBO0FBR0E7RUFDSTs7QUFFQTtFQUNJOzs7QUFJUjtFQUVJO0lBQ0k7OztBQUlSO0VBRUk7SUFDSTs7O0FBSVI7RUFFSTtJQUNJOzs7QUhNUjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FJaEVBO0FBRUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDQztFQUNBOzs7QUFHRDtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBSUE7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNDO0VBQ0E7OztBQUdEO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0M7RUFDQTtFQUNBOzs7QUFHRDtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0M7RUFDQTs7O0FBR0Q7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0M7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDQztFQUNBO0VBQ0E7OztBQUdEO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFQzs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7RUFHQztFQUNBOzs7QUFHRDtBQUFBO0FBQUE7QUFJQTtFQUNDOzs7QUFHRDtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7RUFFQztFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0M7OztBQUdEO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLQztFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0VBRUM7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtFQUVDOzs7QUFHRDtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtFQUlDOzs7QUFHRDtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtFQUlDO0VBQ0E7OztBQUdEO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0VBSUM7OztBQUdEO0FBQUE7QUFBQTtBQUlBO0VBQ0M7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtBQUFBO0FBQUE7QUFJQTtFQUNDOzs7QUFHRDtBQUFBO0FBQUE7QUFJQTtFQUNDOzs7QUFHRDtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7RUFFQztFQUNBOzs7QUFHRDtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUM7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDQztFQUNB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cElOLFdBTEk7O0VhOElGO0lBQ0k7OztBQUtaO0VBSVE7SUFDSTs7RUFHSjtJQUNJOztFQUdKO0lBQ0k7OztBRDdiWjtBQUFBO0FFSkE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7QUFHQTtBQUVBO0VBQ0k7O0FBRUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7OztBQVFaO0VBQ0k7O0FBR0o7RUFDSTs7O0FBSVI7RUFFSTtJQUNJOztFQUVBO0lBQ0k7SUFDQTs7O0FBS1o7RUFFSTtJQUNJOzs7RUFLQTtJQUNJOztFQUdKO0lBQ0k7O0VBR0o7SUFDSTtJQUNBOzs7RUFNSjtJQUNJOztFQUdKO0lBQ0k7OztBQUtaO0VBRUk7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7RUFFQTtJQUNJOzs7RUFJUjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7RUFHQTtJQUNJOzs7QUFLWjtFQUtRO0lBQ0k7OztFQUlSO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7OztBQUlSO0VBRUk7SUFDSTs7O0FBSVI7QUFFQTtFQUNJOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOzs7QUFJUjtBQUVBO0VBQ0k7O0FBRUk7RUFDSTtFQUNBOztBQUVKO0VBQ0k7O0FBRUE7RUFDSTs7QUFHSjtFQUNJOztBQUlSO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOztBQUlSO0VBQ0ksa0J0QmxMVTtFc0JtTFY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNEO0VBQ0M7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7O0FBS1o7RUFJUTtJQUNJOzs7QUFLWjtFQUlRO0lBQ0k7OztBQUtaO0VBTVk7SUFDSTs7O0FBTWhCO0VBRUk7SUFDSTs7RUFFQTtJQUNJO0lBQ0E7SUFDQTs7RUFHSjtJQUNHO0lBQ0E7SUFD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QUdEO0FBQ0E7RUFDQzs7O0FsQ3dGRDtBQUFBO0FBQUE7QUFJQTtBQUFBO0FtQ3BHQTtBQUNBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDQyxrQmxDYnlCO0VrQ2N6QjtFQUNBO0VBQ0E7RUFDQTtFQUNBLE9sQ1ptQjtFa0NhbkI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7QUFDQTtFQUNDOzs7QW5Db0VEO0FBQUE7QW9DeEdBO0FBRUM7RUFDQTtBQUVBO0VBQ0E7RUFDQTs7O0FBR0Q7QUFFQztFQUNBO0FBRUE7RUFDQTtFQUNBOzs7QUFHRDtFQUNDO0VSbkJBO0VBQ0E7RUFDQTtFUXFCQSIsImZpbGUiOiJzdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcblRoZW1lIE5hbWU6IG11amVyZXNcblRoZW1lIFVSSTogaHR0cDovL3VuZGVyc2NvcmVzLm1lL1xuQXV0aG9yOiBMaWdodHN0cmVhbVxuQXV0aG9yIFVSSTogaHR0cDovL3VuZGVyc2NvcmVzLm1lL1xuRGVzY3JpcHRpb246IERlc2NyaXB0aW9uXG5WZXJzaW9uOiAxLjAuMFxuVGVzdGVkIHVwIHRvOiA1LjRcblJlcXVpcmVzIFBIUDogNS42XG5MaWNlbnNlOiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MiBvciBsYXRlclxuTGljZW5zZSBVUkk6IExJQ0VOU0VcblRleHQgRG9tYWluOiBtdWplcmVzXG5UYWdzOiBjdXN0b20tYmFja2dyb3VuZCwgY3VzdG9tLWxvZ28sIGN1c3RvbS1tZW51LCBmZWF0dXJlZC1pbWFnZXMsIHRocmVhZGVkLWNvbW1lbnRzLCB0cmFuc2xhdGlvbi1yZWFkeVxuXG5UaGlzIHRoZW1lLCBsaWtlIFdvcmRQcmVzcywgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTC5cblVzZSBpdCB0byBtYWtlIHNvbWV0aGluZyBjb29sLCBoYXZlIGZ1biwgYW5kIHNoYXJlIHdoYXQgeW91J3ZlIGxlYXJuZWQuXG5cbm11amVyZXMgaXMgYmFzZWQgb24gVW5kZXJzY29yZXMgaHR0cHM6Ly91bmRlcnNjb3Jlcy5tZS8sIChDKSAyMDEyLTIwMjAgQXV0b21hdHRpYywgSW5jLlxuVW5kZXJzY29yZXMgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR1BMIHYyIG9yIGxhdGVyLlxuXG5Ob3JtYWxpemluZyBzdHlsZXMgaGF2ZSBiZWVuIGhlbHBlZCBhbG9uZyB0aGFua3MgdG8gdGhlIGZpbmUgd29yayBvZlxuTmljb2xhcyBHYWxsYWdoZXIgYW5kIEpvbmF0aGFuIE5lYWwgaHR0cHM6Ly9uZWNvbGFzLmdpdGh1Yi5pby9ub3JtYWxpemUuY3NzL1xuKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuPj4+IFRBQkxFIE9GIENPTlRFTlRTOlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBHZW5lcmljXG5cdC0gTm9ybWFsaXplXG5cdC0gQm94IHNpemluZ1xuIyBCYXNlXG5cdC0gVHlwb2dyYXBoeVxuXHQtIEVsZW1lbnRzXG5cdC0gTGlua3Ncblx0LSBGb3Jtc1xuIyMgTGF5b3V0c1xuIyBDb21wb25lbnRzXG5cdC0gTmF2aWdhdGlvblxuXHQtIFBvc3RzIGFuZCBwYWdlc1xuXHQtIENvbW1lbnRzXG5cdC0gV2lkZ2V0c1xuXHQtIE1lZGlhXG5cdC0gQ2FwdGlvbnNcblx0LSBHYWxsZXJpZXNcbiMgcGx1Z2luc1xuXHQtIEpldHBhY2sgaW5maW5pdGUgc2Nyb2xsXG4jIFV0aWxpdGllc1xuXHQtIEFjY2Vzc2liaWxpdHlcblx0LSBBbGlnbm1lbnRzXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogUkZTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGltcG9ydCBcIi4uLy4uL25vZGVfbW9kdWxlcy9yZnMvc2Nzc1wiO1xuXG4vLyBJbXBvcnQgdmFyaWFibGVzIGFuZCBtaXhpbnMuXG5AaW1wb3J0IFwiYWJzdHJhY3RzL2Fic3RyYWN0c1wiO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEdlbmVyaWNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogTm9ybWFsaXplXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBpbXBvcnQgXCJnZW5lcmljL25vcm1hbGl6ZVwiO1xuXG4vKiBCb3ggc2l6aW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBpbXBvcnQgXCJnZW5lcmljL2JveC1zaXppbmdcIjtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBCYXNlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0IFwiYmFzZS9iYXNlXCI7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgTGF5b3V0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLy8gQGltcG9ydCBcImxheW91dHMvY29udGVudC1zaWRlYmFyXCI7IC8vIFVuY29tbWVudCB0aGlzIGxpbmUgZm9yIGEgc2lkZWJhciBvbiByaWdodCBzaWRlIG9mIHlvdXIgY29udGVudC5cbi8vIEBpbXBvcnQgXCJsYXlvdXRzL3NpZGViYXItY29udGVudFwiOyAvLyBVbmNvbW1lbnQgdGhpcyBsaW5lIGZvciBhIHNpZGViYXIgb24gbGVmdCBzaWRlIG9mIHlvdXIgY29udGVudC5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBDb21wb25lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0IFwiY29tcG9uZW50cy9jb21wb25lbnRzXCI7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgUGx1Z2luc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBKZXRwYWNrIGluZmluaXRlIHNjcm9sbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AaW1wb3J0IFwicGx1Z2lucy9qZXRwYWNrL2luZmluaXRlLXNjcm9sbFwiO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFV0aWxpdGllc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBBY2Nlc3NpYmlsaXR5XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBpbXBvcnQgXCJ1dGlsaXRpZXMvYWNjZXNzaWJpbGl0eVwiO1xuXG4vKiBBbGlnbm1lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBpbXBvcnQgXCJ1dGlsaXRpZXMvYWxpZ25tZW50c1wiO1xuIiwiJGNvbG9yX19iYWNrZ3JvdW5kLWJvZHk6ICNmZmY7XG4kY29sb3JfX2JhY2tncm91bmQtc2NyZWVuOiAjZjFmMWYxO1xuJGNvbG9yX19iYWNrZ3JvdW5kLWhyOiAjY2NjO1xuJGNvbG9yX19iYWNrZ3JvdW5kLWJ1dHRvbjogI2U2ZTZlNjtcbiRjb2xvcl9fYmFja2dyb3VuZC1wcmU6ICNlZWU7XG4kY29sb3JfX2JhY2tncm91bmQtaW5zOiAjZmZmOWMwO1xuXG4kY29sb3JfX3RleHQtc2NyZWVuOiAjMjE3NTliO1xuJGNvbG9yX190ZXh0LWlucHV0OiAjNjY2O1xuJGNvbG9yX190ZXh0LWlucHV0LWZvY3VzOiAjMTExO1xuJGNvbG9yX19saW5rOiAjNDE2OWUxOyAvL3JveWFsYmx1ZVxuJGNvbG9yX19saW5rLXZpc2l0ZWQ6ICM4MDAwODA7IC8vcHVycGxlXG4kY29sb3JfX2xpbmstaG92ZXI6ICMxOTE5NzA7IC8vbWlkbmlnaHRibHVlXG4kY29sb3JfX3RleHQtbWFpbjogIzQwNDA0MDtcblxuJGNvbG9yX19ib3JkZXItYnV0dG9uOiAjY2NjICNjY2MgI2JiYjtcbiRjb2xvcl9fYm9yZGVyLWJ1dHRvbi1ob3ZlcjogI2NjYyAjYmJiICNhYWE7XG4kY29sb3JfX2JvcmRlci1idXR0b24tZm9jdXM6ICNhYWEgI2JiYiAjYmJiO1xuJGNvbG9yX19ib3JkZXItaW5wdXQ6ICNjY2M7XG4kY29sb3JfX2JvcmRlci1hYmJyOiAjNjY2O1xuXG4vKiBDdXN0b20gQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4kY29sb3JfX29yYW5nZTogI0MyNTMwMDtcbiRjb2xvcl9feWVsbG93OiAjRkFBNTIyO1xuJGNvbG9yX19ncmF5OiAjRUJFQkVCO1xuJGNvbG9yX19ibHVlOiAjMDA1QTk2O1xuXG4kY29sb3JfX3RleHQtbWFpbjogIzIxMjMyNjtcbiRjb2xvcl9fdGV4dC1saWdodDogIzZFNkU2RTtcblxuJGNvbG9yX19oZWFkbGluZTogIzAwNUE5NjtcbiRjb2xvcl9faGVhZGxpbmUtMiA6IzE5N0VCNDtcbiRjb2xvcl9fYnRuOiAjQzI1MzAwO1xuJGNvbG9yX19idG4tMjogIzAwMjQ0QTtcbiRjb2xvcl9fZm9vdGVyOiAjRjNGM0Y1O1xuJGNvbG9yX19pbmZvLWJveDogI0YzRjNGNTtcbiRjb2xvcl9fbGluazogI0MyNTMwMDtcbiRjb2xvcl9fbGluay0yOiAjMDA1QTk2O1xuJGNvbG9yX19zb2NpYWwtMTogI0MyNTMwMDtcbiRjb2xvcl9fc29jaWFsLTI6ICMxOTdFQjQ7XG5cbiRjb2xvcl9fZHJvcGRvd24tYmc6ICNGN0Y3Rjc7IiwiLy8gc3R5bGVsaW50LWRpc2FibGUgdmFsdWUta2V5d29yZC1jYXNlXG4kZm9udF9fbWFpbjogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4vLyBzdHlsZWxpbnQtZW5hYmxlIHZhbHVlLWtleXdvcmQtY2FzZVxuJGZvbnRfX2NvZGU6IG1vbmFjbywgY29uc29sYXMsIFwiQW5kYWxlIE1vbm9cIiwgXCJEZWphVnUgU2FucyBNb25vXCIsIG1vbm9zcGFjZTtcbiRmb250X19wcmU6IFwiQ291cmllciAxMCBQaXRjaFwiLCBjb3VyaWVyLCBtb25vc3BhY2U7XG4kZm9udF9fbGluZS1oZWlnaHQtYm9keTogMS41O1xuJGZvbnRfX2xpbmUtaGVpZ2h0LXByZTogMS42O1xuXG4vKiBDdXN0b20gRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiRmb250X19tYWluOiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7XG4kZm9udF9fcmFsZXdheTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmO1xuXG4kZm9udF9fcGxheWZhaXI6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7XG5cbi5idG4ge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udF9fbWFpbjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfX2J0bjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfX2J0bjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHBhZGRpbmc6IC40ZW0gLjI1ZW07XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHdpZHRoOiAxNzVweDtcbiAgICBtYXgtaGVpZ2h0OiA1NXB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBib3JkZXItcmFkaXVzOiAzNXB4O1xuXG4gICAgJjpsaW5rLCAmOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG5cbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9fYnRuO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIH1cbn1cblxuLmJ0bl9fd3JhcHBlciB7XG4gICAgbWFyZ2luOiAyZW0gYXV0byAwO1xufVxuXG5hLmlubGluZSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAkY29sb3JfX3RleHQtbWFpbiAhaW1wb3J0YW50O1xuXG4gICAgJjpsaW5rIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9fdGV4dC1tYWluICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjp2aXNpdGVkIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfX29yYW5nZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9fb3JhbmdlICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG5hLmlubGluZS1vcmFuZ2Uge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogJGNvbG9yX19vcmFuZ2UgIWltcG9ydGFudDtcblxuICAgICY6bGluayB7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfX29yYW5nZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6dmlzaXRlZCB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICBjb2xvcjogJGNvbG9yX190ZXh0LW1haW47XG4gICAgfVxuXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfX3RleHQtbWFpbiAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLmxlYXJuLW1vcmUge1xuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfX2xpbms7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgJjpsaW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfX2xpbms7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLCAmOmZvY3VzLCAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9fbGluaztcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYXJ0aWNsZSB7XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9fbGluaztcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9fbGluaztcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsICY6Zm9jdXMsICY6dmlzaXRlZCB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmFydGljbGUtbGluayB7XG4gICAgY29sb3I6ICRjb2xvcl9fdGV4dC1tYWluICFpbXBvcnRhbnQ7XG5cbiAgICAmOmxpbmsge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbn1cblxuLnJlYWQtbW9yZSB7XG4gICAgaGVpZ2h0OiA3MHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIGEge1xuICAgICAgICBjb2xvcjogJGNvbG9yX19saW5rO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJ2h0dHBzOi8vc3BhdGlhbGJ1c2luZXNzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyMi8wNy9hcnJvdy1vcmFuZ2Uuc3ZnJykgbm8tcmVwZWF0IDUwJSAwJTtcbiAgICAgICAgaGVpZ2h0OiA3MHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJ2h0dHBzOi8vc3BhdGlhbGJ1c2luZXNzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyMi8wNy9hcnJvdy1vcmFuZ2Uuc3ZnJykgbm8tcmVwZWF0IDUwJSAxMDAlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogLjVzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsaW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfX2xpbms7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLCAmOmZvY3VzLCAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9fbGluaztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnJlYWQtbW9yZS1saW5rIHtcblxuICAgICY6aG92ZXIsICY6Zm9jdXMsICY6dmlzaXRlZCB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICBjb2xvcjogJGNvbG9yX19vcmFuZ2U7XG4gICAgfVxufVxuXG4ucmVhZC1tb3JlLTIge1xuICAgIGNvbG9yOiAkY29sb3JfX2xpbmstMjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdXJsKCdodHRwczovL3NwYXRpYWxidXNpbmVzcy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjIvMDcvYXJyb3ctcmVhZC1tb3JlLnN2ZycpIG5vLXJlcGVhdCAwIDA7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVlbTtcblxuICAgICY6bGluayB7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfX2xpbmstMjtcbiAgICB9XG5cbiAgICAmOmhvdmVyLCAmOmZvY3VzLCAmOnZpc2l0ZWQge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9fbGluay0yO1xuICAgIH1cbn1cblxuLnJlYWQtbW9yZS1tb2RhbCB7XG4gICAgY29sb3I6ICRjb2xvcl9fbGluay0yO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6bGluayB7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfX2xpbmstMjtcbiAgICB9XG5cbiAgICAmOmhvdmVyLCAmOmZvY3VzLCAmOnZpc2l0ZWQge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9fbGluay0yO1xuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG5cbiAgICAuYnRuIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cblxuICAgIC5idG5fX3dyYXBwZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAxLjVlbTtcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuXG4gICAgLmJ0biB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcblxuICAgIC5idG4ge1xuICAgICAgICBmb250LXNpemU6IDIzcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40Mzc1ZW07IFxuICAgICAgICB3aWR0aDogMzAwcHg7XG4gICAgICAgIGhlaWdodDogNTVweDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAuYnRuX193cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMi41ZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbn1cblxuIiwiJHNpemVfX3NpdGUtbWFpbjogMTAwJTtcbiRzaXplX19zaXRlLXNpZGViYXI6IDI1JTtcblxuLyogQm9vdHN0cmFwIE92ZXJyaWRlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmNvbnRhaW5lci14bCB7XG4gICAgbWF4LXdpZHRoOiAxMzUwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5jb250YWluZXItbGcge1xuICAgIG1heC13aWR0aDogMTI4MHB4O1xufVxuXG4uY29udGFpbmVyLW1kIHtcbiAgICBtYXgtd2lkdGg6IDEwODBweDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG5cbiAgICAuY29sLTEyIHtcbiAgICAgICAgcGFkZGluZzogMCAyZW07XG4gICAgfVxufVxuXG4vKiBTZWN0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbnNlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDRlbSAwO1xuXG4gICAgJi5oZXJvIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcblxuICAgIHNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nOiA0ZW0gMDtcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuXG4gICAgc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDRlbSAwO1xuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuXG4gICAgc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDZlbSAwO1xuICAgIH1cbn0iLCIvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qIERvY3VtZW50XG5cdCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5cbmh0bWwge1xuXHRsaW5lLWhlaWdodDogMS4xNTtcblx0LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xufVxuXG4vKiBTZWN0aW9uc1xuXHQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG5cdG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG5cdGZvbnQtc2l6ZTogMmVtO1xuXHRtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG5cdCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuXG5ociB7XG5cdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHRoZWlnaHQ6IDA7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcblx0Zm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuXHRmb250LXNpemU6IDFlbTtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3Ncblx0ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG5cdGJvcmRlci1ib3R0b206IG5vbmU7XG5cdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcblx0Zm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuXHRmb250LXNpemU6IDFlbTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG5cdGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG5cdGZvbnQtc2l6ZTogNzUlO1xuXHRsaW5lLWhlaWdodDogMDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG5cdGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcblx0dG9wOiAtMC41ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcblx0ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5pbWcge1xuXHRib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qIEZvcm1zXG5cdCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG5cdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRmb250LXNpemU6IDEwMCU7XG5cdGxpbmUtaGVpZ2h0OiAxLjE1O1xuXHRtYXJnaW46IDA7XG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuXHRib3JkZXItc3R5bGU6IG5vbmU7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcblx0b3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5maWVsZHNldCB7XG5cdHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICpcdFx0YGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxubGVnZW5kIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0Y29sb3I6IGluaGVyaXQ7XG5cdGRpc3BsYXk6IHRhYmxlO1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdHBhZGRpbmc6IDA7XG5cdHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xuXG50ZXh0YXJlYSB7XG5cdG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0cGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG5cdGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG5cdG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcblx0Zm9udDogaW5oZXJpdDtcbn1cblxuLyogSW50ZXJhY3RpdmVcblx0ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5cbmRldGFpbHMge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdW1tYXJ5IHtcblx0ZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBNaXNjXG5cdCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAqL1xuXG50ZW1wbGF0ZSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cblxuW2hpZGRlbl0ge1xuXHRkaXNwbGF5OiBub25lO1xufVxuIiwiLyogSW5oZXJpdCBib3gtc2l6aW5nIHRvIG1vcmUgZWFzaWx5IGNoYW5nZSBpdCdzIHZhbHVlIG9uIGEgY29tcG9uZW50IGxldmVsLlxuQGxpbmsgaHR0cDovL2Nzcy10cmlja3MuY29tL2luaGVyaXRpbmctYm94LXNpemluZy1wcm9iYWJseS1zbGlnaHRseS1iZXR0ZXItYmVzdC1wcmFjdGljZS8gKi9cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG5cdGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG5cbmh0bWwge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuIiwiLyogVHlwb2dyYXBoeVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AaW1wb3J0IFwidHlwb2dyYXBoeS90eXBvZ3JhcGh5XCI7XG5cbi8qIEVsZW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBpbXBvcnQgXCJlbGVtZW50cy9ib2R5XCI7XG5AaW1wb3J0IFwiZWxlbWVudHMvaHJcIjtcbkBpbXBvcnQgXCJlbGVtZW50cy9saXN0c1wiO1xuQGltcG9ydCBcImVsZW1lbnRzL21lZGlhXCI7XG5AaW1wb3J0IFwiZWxlbWVudHMvdGFibGVzXCI7XG5cbi8qIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBpbXBvcnQgXCJlbGVtZW50cy9saW5rc1wiO1xuXG4vKiBGb3Jtc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AaW1wb3J0IFwiZWxlbWVudHMvYnV0dG9uc1wiO1xuQGltcG9ydCBcImVsZW1lbnRzL2ZpZWxkc1wiO1xuIiwiYm9keSxcbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxub3B0Z3JvdXAsXG50ZXh0YXJlYSB7XG5cdGNvbG9yOiAkY29sb3JfX3RleHQtbWFpbjtcblx0Zm9udC1mYW1pbHk6ICRmb250X19tYWluO1xuXHRmb250LXNpemU6IDFyZW07XG5cdGxpbmUtaGVpZ2h0OiAkZm9udF9fbGluZS1oZWlnaHQtYm9keTtcbn1cblxuQGltcG9ydCBcImhlYWRpbmdzXCI7XG5AaW1wb3J0IFwiY29weVwiO1xuIiwiaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcblx0Y2xlYXI6IGJvdGg7XG59XG5cbmgxIHtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0bWFyZ2luLWJvdHRvbTogLjVlbTtcblx0bGluZS1oZWlnaHQ6IGNhbGMoNjgvNjApO1xuXHRjb2xvcjogJGNvbG9yX19oZWFkbGluZTtcblx0bGV0dGVyLXNwYWNpbmc6IC0wLjAwOWVtO1xufVxuXG5oMiB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRmb250LXNpemU6IDIycHg7XG5cdGZvbnQtc2l6ZTogMS4zNzVlbTtcblx0Y29sb3I6ICRjb2xvcl9faGVhZGxpbmUtMjtcblx0bWFyZ2luLWJvdHRvbTogMS4yNWVtO1xuXHRsaW5lLWhlaWdodDogY2FsYyg1My80NSk7XG59XG5cbmgzIHtcblx0bWFyZ2luLWJvdHRvbTogMC43NWVtO1xuXHRmb250LXdlaWdodDogNjAwO1xuXHRAaW5jbHVkZSBmb250LXNpemUoMTZweCk7XG59XG5cbnAsIHNwYW4sIGxpIHtcblx0QGluY2x1ZGUgZm9udC1zaXplKDEycHgpO1xuXHRsaW5lLWhlaWdodDogY2FsYygyNS8xNik7XG5cblx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cblxucCwgbGkge1xuXHRtYXJnaW4tYm90dG9tOiAxLjVlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG5cblx0aDIge1xuXHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSgyMnB4KTtcblx0XHRtYXJnaW4tYm90dG9tOiAuNWVtO1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cblxuXHRoMyB7XG5cdFx0QGluY2x1ZGUgZm9udC1zaXplKDE4cHgpO1xuXHR9XG5cblx0cCwgc3BhbiwgbGkge1xuXHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSgxNHB4KTtcblx0fVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcblxuXHRoMSB7XG5cdFx0QGluY2x1ZGUgZm9udC1zaXplKDUwcHgpO1xuXHR9XG5cblx0aDIge1xuXHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSgzNnB4KTtcblx0XHRtYXJnaW4tYm90dG9tOiAxZW07XG5cdH1cblxuXHRoMyB7XG5cdFx0QGluY2x1ZGUgZm9udC1zaXplKDIwcHgpO1xuXHR9XG5cblx0cCwgc3BhbiwgbGkge1xuXHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSgxNnB4KTtcblx0fVxufVxuXG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcblxuXHRoMSB7XG5cdFx0QGluY2x1ZGUgZm9udC1zaXplKDY0cHgpO1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cblxuXHRoMiB7XG5cdFx0QGluY2x1ZGUgZm9udC1zaXplKDQ1cHgpO1xuXHRcdG1hcmdpbi1ib3R0b206IDAuNzVlbTtcblx0fVxuXG5cdGgzIHtcblx0XHRAaW5jbHVkZSBmb250LXNpemUoMjNweCk7XG5cdH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIHByb3BlcnR5LWJsYWNrbGlzdCwgc2Nzcy9kb2xsYXItdmFyaWFibGUtZGVmYXVsdFxuXG4vLyBTQ1NTIFJGUyBtaXhpblxuLy9cbi8vIEF1dG9tYXRlZCByZXNwb25zaXZlIHZhbHVlcyBmb3IgZm9udCBzaXplcywgcGFkZGluZ3MsIG1hcmdpbnMgYW5kIG11Y2ggbW9yZVxuLy9cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvcmZzL2Jsb2IvbWFpbi9MSUNFTlNFKVxuXG4vLyBDb25maWd1cmF0aW9uXG5cbi8vIEJhc2UgdmFsdWVcbiRyZnMtYmFzZS12YWx1ZTogMS4yNXJlbSAhZGVmYXVsdDtcbiRyZnMtdW5pdDogcmVtICFkZWZhdWx0O1xuXG5AaWYgJHJmcy11bml0ICE9IHJlbSBhbmQgJHJmcy11bml0ICE9IHB4IHtcbiAgQGVycm9yIFwiYCN7JHJmcy11bml0fWAgaXMgbm90IGEgdmFsaWQgdW5pdCBmb3IgJHJmcy11bml0LiBVc2UgYHB4YCBvciBgcmVtYC5cIjtcbn1cblxuLy8gQnJlYWtwb2ludCBhdCB3aGVyZSB2YWx1ZXMgc3RhcnQgZGVjcmVhc2luZyBpZiBzY3JlZW4gd2lkdGggaXMgc21hbGxlclxuJHJmcy1icmVha3BvaW50OiAxMjAwcHggIWRlZmF1bHQ7XG4kcmZzLWJyZWFrcG9pbnQtdW5pdDogcHggIWRlZmF1bHQ7XG5cbkBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdCAhPSBweCBhbmQgJHJmcy1icmVha3BvaW50LXVuaXQgIT0gZW0gYW5kICRyZnMtYnJlYWtwb2ludC11bml0ICE9IHJlbSB7XG4gIEBlcnJvciBcImAjeyRyZnMtYnJlYWtwb2ludC11bml0fWAgaXMgbm90IGEgdmFsaWQgdW5pdCBmb3IgJHJmcy1icmVha3BvaW50LXVuaXQuIFVzZSBgcHhgLCBgZW1gIG9yIGByZW1gLlwiO1xufVxuXG4vLyBSZXNpemUgdmFsdWVzIGJhc2VkIG9uIHNjcmVlbiBoZWlnaHQgYW5kIHdpZHRoXG4kcmZzLXR3by1kaW1lbnNpb25hbDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIEZhY3RvciBvZiBkZWNyZWFzZVxuJHJmcy1mYWN0b3I6IDEwICFkZWZhdWx0O1xuXG5AaWYgdHlwZS1vZigkcmZzLWZhY3RvcikgIT0gbnVtYmVyIG9yICRyZnMtZmFjdG9yIDw9IDEge1xuICBAZXJyb3IgXCJgI3skcmZzLWZhY3Rvcn1gIGlzIG5vdCBhIHZhbGlkICAkcmZzLWZhY3RvciwgaXQgbXVzdCBiZSBncmVhdGVyIHRoYW4gMS5cIjtcbn1cblxuLy8gTW9kZS4gUG9zc2liaWxpdGllczogXCJtaW4tbWVkaWEtcXVlcnlcIiwgXCJtYXgtbWVkaWEtcXVlcnlcIlxuJHJmcy1tb2RlOiBtaW4tbWVkaWEtcXVlcnkgIWRlZmF1bHQ7XG5cbi8vIEdlbmVyYXRlIGVuYWJsZSBvciBkaXNhYmxlIGNsYXNzZXMuIFBvc3NpYmlsaXRpZXM6IGZhbHNlLCBcImVuYWJsZVwiIG9yIFwiZGlzYWJsZVwiXG4kcmZzLWNsYXNzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gMSByZW0gPSAkcmZzLXJlbS12YWx1ZSBweFxuJHJmcy1yZW0tdmFsdWU6IDE2ICFkZWZhdWx0O1xuXG4vLyBTYWZhcmkgaWZyYW1lIHJlc2l6ZSBidWc6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL3Jmcy9pc3N1ZXMvMTRcbiRyZnMtc2FmYXJpLWlmcmFtZS1yZXNpemUtYnVnLWZpeDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIERpc2FibGUgUkZTIGJ5IHNldHRpbmcgJGVuYWJsZS1yZnMgdG8gZmFsc2VcbiRlbmFibGUtcmZzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBDYWNoZSAkcmZzLWJhc2UtdmFsdWUgdW5pdFxuJHJmcy1iYXNlLXZhbHVlLXVuaXQ6IHVuaXQoJHJmcy1iYXNlLXZhbHVlKTtcblxuQGZ1bmN0aW9uIGRpdmlkZSgkZGl2aWRlbmQsICRkaXZpc29yLCAkcHJlY2lzaW9uOiAxMCkge1xuICAkc2lnbjogaWYoJGRpdmlkZW5kID4gMCBhbmQgJGRpdmlzb3IgPiAwIG9yICRkaXZpZGVuZCA8IDAgYW5kICRkaXZpc29yIDwgMCwgMSwgLTEpO1xuICAkZGl2aWRlbmQ6IGFicygkZGl2aWRlbmQpO1xuICAkZGl2aXNvcjogYWJzKCRkaXZpc29yKTtcbiAgQGlmICRkaXZpZGVuZCA9PSAwIHtcbiAgICBAcmV0dXJuIDA7XG4gIH1cbiAgQGlmICRkaXZpc29yID09IDAge1xuICAgIEBlcnJvciBcIkNhbm5vdCBkaXZpZGUgYnkgMFwiO1xuICB9XG4gICRyZW1haW5kZXI6ICRkaXZpZGVuZDtcbiAgJHJlc3VsdDogMDtcbiAgJGZhY3RvcjogMTA7XG4gIEB3aGlsZSAoJHJlbWFpbmRlciA+IDAgYW5kICRwcmVjaXNpb24gPj0gMCkge1xuICAgICRxdW90aWVudDogMDtcbiAgICBAd2hpbGUgKCRyZW1haW5kZXIgPj0gJGRpdmlzb3IpIHtcbiAgICAgICRyZW1haW5kZXI6ICRyZW1haW5kZXIgLSAkZGl2aXNvcjtcbiAgICAgICRxdW90aWVudDogJHF1b3RpZW50ICsgMTtcbiAgICB9XG4gICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgJHF1b3RpZW50O1xuICAgICRmYWN0b3I6ICRmYWN0b3IgKiAuMTtcbiAgICAkcmVtYWluZGVyOiAkcmVtYWluZGVyICogMTA7XG4gICAgJHByZWNpc2lvbjogJHByZWNpc2lvbiAtIDE7XG4gICAgQGlmICgkcHJlY2lzaW9uIDwgMCBhbmQgJHJlbWFpbmRlciA+PSAkZGl2aXNvciAqIDUpIHtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyAxO1xuICAgIH1cbiAgfVxuICAkcmVzdWx0OiAkcmVzdWx0ICogJGZhY3RvciAqICRzaWduO1xuICAkZGl2aWRlbmQtdW5pdDogdW5pdCgkZGl2aWRlbmQpO1xuICAkZGl2aXNvci11bml0OiB1bml0KCRkaXZpc29yKTtcbiAgJHVuaXQtbWFwOiAoXG4gICAgXCJweFwiOiAxcHgsXG4gICAgXCJyZW1cIjogMXJlbSxcbiAgICBcImVtXCI6IDFlbSxcbiAgICBcIiVcIjogMSVcbiAgKTtcbiAgQGlmICgkZGl2aWRlbmQtdW5pdCAhPSAkZGl2aXNvci11bml0IGFuZCBtYXAtaGFzLWtleSgkdW5pdC1tYXAsICRkaXZpZGVuZC11bml0KSkge1xuICAgICRyZXN1bHQ6ICRyZXN1bHQgKiBtYXAtZ2V0KCR1bml0LW1hcCwgJGRpdmlkZW5kLXVuaXQpO1xuICB9XG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8gUmVtb3ZlIHB4LXVuaXQgZnJvbSAkcmZzLWJhc2UtdmFsdWUgZm9yIGNhbGN1bGF0aW9uc1xuQGlmICRyZnMtYmFzZS12YWx1ZS11bml0ID09IHB4IHtcbiAgJHJmcy1iYXNlLXZhbHVlOiBkaXZpZGUoJHJmcy1iYXNlLXZhbHVlLCAkcmZzLWJhc2UtdmFsdWUgKiAwICsgMSk7XG59XG5AZWxzZSBpZiAkcmZzLWJhc2UtdmFsdWUtdW5pdCA9PSByZW0ge1xuICAkcmZzLWJhc2UtdmFsdWU6IGRpdmlkZSgkcmZzLWJhc2UtdmFsdWUsIGRpdmlkZSgkcmZzLWJhc2UtdmFsdWUgKiAwICsgMSwgJHJmcy1yZW0tdmFsdWUpKTtcbn1cblxuLy8gQ2FjaGUgJHJmcy1icmVha3BvaW50IHVuaXQgdG8gcHJldmVudCBtdWx0aXBsZSBjYWxsc1xuJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGU6IHVuaXQoJHJmcy1icmVha3BvaW50KTtcblxuLy8gUmVtb3ZlIHVuaXQgZnJvbSAkcmZzLWJyZWFrcG9pbnQgZm9yIGNhbGN1bGF0aW9uc1xuQGlmICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IHB4IHtcbiAgJHJmcy1icmVha3BvaW50OiBkaXZpZGUoJHJmcy1icmVha3BvaW50LCAkcmZzLWJyZWFrcG9pbnQgKiAwICsgMSk7XG59XG5AZWxzZSBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSByZW0gb3IgJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGUgPT0gXCJlbVwiIHtcbiAgJHJmcy1icmVha3BvaW50OiBkaXZpZGUoJHJmcy1icmVha3BvaW50LCBkaXZpZGUoJHJmcy1icmVha3BvaW50ICogMCArIDEsICRyZnMtcmVtLXZhbHVlKSk7XG59XG5cbi8vIENhbGN1bGF0ZSB0aGUgbWVkaWEgcXVlcnkgdmFsdWVcbiRyZnMtbXEtdmFsdWU6IGlmKCRyZnMtYnJlYWtwb2ludC11bml0ID09IHB4LCAjeyRyZnMtYnJlYWtwb2ludH1weCwgI3tkaXZpZGUoJHJmcy1icmVha3BvaW50LCAkcmZzLXJlbS12YWx1ZSl9I3skcmZzLWJyZWFrcG9pbnQtdW5pdH0pO1xuJHJmcy1tcS1wcm9wZXJ0eS13aWR0aDogaWYoJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSwgbWF4LXdpZHRoLCBtaW4td2lkdGgpO1xuJHJmcy1tcS1wcm9wZXJ0eS1oZWlnaHQ6IGlmKCRyZnMtbW9kZSA9PSBtYXgtbWVkaWEtcXVlcnksIG1heC1oZWlnaHQsIG1pbi1oZWlnaHQpO1xuXG4vLyBJbnRlcm5hbCBtaXhpbiB1c2VkIHRvIGRldGVybWluZSB3aGljaCBtZWRpYSBxdWVyeSBuZWVkcyB0byBiZSB1c2VkXG5AbWl4aW4gX3Jmcy1tZWRpYS1xdWVyeSB7XG4gIEBpZiAkcmZzLXR3by1kaW1lbnNpb25hbCB7XG4gICAgQGlmICRyZnMtbW9kZSA9PSBtYXgtbWVkaWEtcXVlcnkge1xuICAgICAgQG1lZGlhICgjeyRyZnMtbXEtcHJvcGVydHktd2lkdGh9OiAjeyRyZnMtbXEtdmFsdWV9KSwgKCN7JHJmcy1tcS1wcm9wZXJ0eS1oZWlnaHR9OiAjeyRyZnMtbXEtdmFsdWV9KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAbWVkaWEgKCN7JHJmcy1tcS1wcm9wZXJ0eS13aWR0aH06ICN7JHJmcy1tcS12YWx1ZX0pIGFuZCAoI3skcmZzLW1xLXByb3BlcnR5LWhlaWdodH06ICN7JHJmcy1tcS12YWx1ZX0pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAbWVkaWEgKCN7JHJmcy1tcS1wcm9wZXJ0eS13aWR0aH06ICN7JHJmcy1tcS12YWx1ZX0pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBJbnRlcm5hbCBtaXhpbiB0aGF0IGFkZHMgZGlzYWJsZSBjbGFzc2VzIHRvIHRoZSBzZWxlY3RvciBpZiBuZWVkZWQuXG5AbWl4aW4gX3Jmcy1ydWxlIHtcbiAgQGlmICRyZnMtY2xhc3MgPT0gZGlzYWJsZSBhbmQgJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSB7XG4gICAgLy8gQWRkaW5nIGFuIGV4dHJhIGNsYXNzIGluY3JlYXNlcyBzcGVjaWZpY2l0eSwgd2hpY2ggcHJldmVudHMgdGhlIG1lZGlhIHF1ZXJ5IHRvIG92ZXJyaWRlIHRoZSBwcm9wZXJ0eVxuICAgICYsXG4gICAgLmRpc2FibGUtcmZzICYsXG4gICAgJi5kaXNhYmxlLXJmcyB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHJmcy1jbGFzcyA9PSBlbmFibGUgYW5kICRyZnMtbW9kZSA9PSBtaW4tbWVkaWEtcXVlcnkge1xuICAgIC5lbmFibGUtcmZzICYsXG4gICAgJi5lbmFibGUtcmZzIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gSW50ZXJuYWwgbWl4aW4gdGhhdCBhZGRzIGVuYWJsZSBjbGFzc2VzIHRvIHRoZSBzZWxlY3RvciBpZiBuZWVkZWQuXG5AbWl4aW4gX3Jmcy1tZWRpYS1xdWVyeS1ydWxlIHtcblxuICBAaWYgJHJmcy1jbGFzcyA9PSBlbmFibGUge1xuICAgIEBpZiAkcmZzLW1vZGUgPT0gbWluLW1lZGlhLXF1ZXJ5IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIF9yZnMtbWVkaWEtcXVlcnkge1xuICAgICAgLmVuYWJsZS1yZnMgJixcbiAgICAgICYuZW5hYmxlLXJmcyB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmICRyZnMtY2xhc3MgPT0gZGlzYWJsZSBhbmQgJHJmcy1tb2RlID09IG1pbi1tZWRpYS1xdWVyeSB7XG4gICAgICAuZGlzYWJsZS1yZnMgJixcbiAgICAgICYuZGlzYWJsZS1yZnMge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgX3Jmcy1tZWRpYS1xdWVyeSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgZm9ybWF0dGVkIG5vbi1yZXNwb25zaXZlIHZhbHVlXG5AZnVuY3Rpb24gcmZzLXZhbHVlKCR2YWx1ZXMpIHtcbiAgLy8gQ29udmVydCB0byBsaXN0XG4gICR2YWx1ZXM6IGlmKHR5cGUtb2YoJHZhbHVlcykgIT0gbGlzdCwgKCR2YWx1ZXMsKSwgJHZhbHVlcyk7XG5cbiAgJHZhbDogJyc7XG5cbiAgLy8gTG9vcCBvdmVyIGVhY2ggdmFsdWUgYW5kIGNhbGN1bGF0ZSB2YWx1ZVxuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgQGlmICR2YWx1ZSA9PSAwIHtcbiAgICAgICR2YWw6ICR2YWwgKyAnIDAnO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBDYWNoZSAkdmFsdWUgdW5pdFxuICAgICAgJHVuaXQ6IGlmKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiLCB1bml0KCR2YWx1ZSksIGZhbHNlKTtcblxuICAgICAgQGlmICR1bml0ID09IHB4IHtcbiAgICAgICAgLy8gQ29udmVydCB0byByZW0gaWYgbmVlZGVkXG4gICAgICAgICR2YWw6ICR2YWwgKyAnICcgKyBpZigkcmZzLXVuaXQgPT0gcmVtLCAje2RpdmlkZSgkdmFsdWUsICR2YWx1ZSAqIDAgKyAkcmZzLXJlbS12YWx1ZSl9cmVtLCAkdmFsdWUpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHVuaXQgPT0gcmVtIHtcbiAgICAgICAgLy8gQ29udmVydCB0byBweCBpZiBuZWVkZWRcbiAgICAgICAgJHZhbDogJHZhbCArICcgJyArIGlmKCRyZnMtdW5pdCA9PSBweCwgI3tkaXZpZGUoJHZhbHVlLCAkdmFsdWUgKiAwICsgMSkgKiAkcmZzLXJlbS12YWx1ZX1weCwgJHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgLy8gSWYgJHZhbHVlIGlzbid0IGEgbnVtYmVyIChsaWtlIGluaGVyaXQpIG9yICR2YWx1ZSBoYXMgYSB1bml0IChub3QgcHggb3IgcmVtLCBsaWtlIDEuNWVtKSBvciAkIGlzIDAsIGp1c3QgcHJpbnQgdGhlIHZhbHVlXG4gICAgICAgICR2YWw6ICR2YWwgKyAnICcgKyAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlIGZpcnN0IHNwYWNlXG4gIEByZXR1cm4gdW5xdW90ZShzdHItc2xpY2UoJHZhbCwgMikpO1xufVxuXG4vLyBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSByZXNwb25zaXZlIHZhbHVlIGNhbGN1bGF0ZWQgYnkgUkZTXG5AZnVuY3Rpb24gcmZzLWZsdWlkLXZhbHVlKCR2YWx1ZXMpIHtcbiAgLy8gQ29udmVydCB0byBsaXN0XG4gICR2YWx1ZXM6IGlmKHR5cGUtb2YoJHZhbHVlcykgIT0gbGlzdCwgKCR2YWx1ZXMsKSwgJHZhbHVlcyk7XG5cbiAgJHZhbDogJyc7XG5cbiAgLy8gTG9vcCBvdmVyIGVhY2ggdmFsdWUgYW5kIGNhbGN1bGF0ZSB2YWx1ZVxuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgQGlmICR2YWx1ZSA9PSAwIHtcbiAgICAgICR2YWw6ICR2YWwgKyAnIDAnO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIC8vIENhY2hlICR2YWx1ZSB1bml0XG4gICAgICAkdW5pdDogaWYodHlwZS1vZigkdmFsdWUpID09IFwibnVtYmVyXCIsIHVuaXQoJHZhbHVlKSwgZmFsc2UpO1xuXG4gICAgICAvLyBJZiAkdmFsdWUgaXNuJ3QgYSBudW1iZXIgKGxpa2UgaW5oZXJpdCkgb3IgJHZhbHVlIGhhcyBhIHVuaXQgKG5vdCBweCBvciByZW0sIGxpa2UgMS41ZW0pIG9yICQgaXMgMCwganVzdCBwcmludCB0aGUgdmFsdWVcbiAgICAgIEBpZiBub3QgJHVuaXQgb3IgJHVuaXQgIT0gcHggYW5kICR1bml0ICE9IHJlbSB7XG4gICAgICAgICR2YWw6ICR2YWwgKyAnICcgKyAkdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgLy8gUmVtb3ZlIHVuaXQgZnJvbSAkdmFsdWUgZm9yIGNhbGN1bGF0aW9uc1xuICAgICAgICAkdmFsdWU6IGRpdmlkZSgkdmFsdWUsICR2YWx1ZSAqIDAgKyBpZigkdW5pdCA9PSBweCwgMSwgZGl2aWRlKDEsICRyZnMtcmVtLXZhbHVlKSkpO1xuXG4gICAgICAgIC8vIE9ubHkgYWRkIHRoZSBtZWRpYSBxdWVyeSBpZiB0aGUgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIHRoZSBtaW5pbXVtIHZhbHVlXG4gICAgICAgIEBpZiBhYnMoJHZhbHVlKSA8PSAkcmZzLWJhc2UtdmFsdWUgb3Igbm90ICRlbmFibGUtcmZzIHtcbiAgICAgICAgICAkdmFsOiAkdmFsICsgJyAnICsgIGlmKCRyZnMtdW5pdCA9PSByZW0sICN7ZGl2aWRlKCR2YWx1ZSwgJHJmcy1yZW0tdmFsdWUpfXJlbSwgI3skdmFsdWV9cHgpO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG1pbmltdW0gdmFsdWVcbiAgICAgICAgICAkdmFsdWUtbWluOiAkcmZzLWJhc2UtdmFsdWUgKyBkaXZpZGUoYWJzKCR2YWx1ZSkgLSAkcmZzLWJhc2UtdmFsdWUsICRyZnMtZmFjdG9yKTtcblxuICAgICAgICAgIC8vIENhbGN1bGF0ZSBkaWZmZXJlbmNlIGJldHdlZW4gJHZhbHVlIGFuZCB0aGUgbWluaW11bSB2YWx1ZVxuICAgICAgICAgICR2YWx1ZS1kaWZmOiBhYnMoJHZhbHVlKSAtICR2YWx1ZS1taW47XG5cbiAgICAgICAgICAvLyBCYXNlIHZhbHVlIGZvcm1hdHRpbmdcbiAgICAgICAgICAkbWluLXdpZHRoOiBpZigkcmZzLXVuaXQgPT0gcmVtLCAje2RpdmlkZSgkdmFsdWUtbWluLCAkcmZzLXJlbS12YWx1ZSl9cmVtLCAjeyR2YWx1ZS1taW59cHgpO1xuXG4gICAgICAgICAgLy8gVXNlIG5lZ2F0aXZlIHZhbHVlIGlmIG5lZWRlZFxuICAgICAgICAgICRtaW4td2lkdGg6IGlmKCR2YWx1ZSA8IDAsIC0kbWluLXdpZHRoLCAkbWluLXdpZHRoKTtcblxuICAgICAgICAgIC8vIFVzZSBgdm1pbmAgaWYgdHdvLWRpbWVuc2lvbmFsIGlzIGVuYWJsZWRcbiAgICAgICAgICAkdmFyaWFibGUtdW5pdDogaWYoJHJmcy10d28tZGltZW5zaW9uYWwsIHZtaW4sIHZ3KTtcblxuICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgdmFyaWFibGUgd2lkdGggYmV0d2VlbiAwIGFuZCAkcmZzLWJyZWFrcG9pbnRcbiAgICAgICAgICAkdmFyaWFibGUtd2lkdGg6ICN7ZGl2aWRlKCR2YWx1ZS1kaWZmICogMTAwLCAkcmZzLWJyZWFrcG9pbnQpfSN7JHZhcmlhYmxlLXVuaXR9O1xuXG4gICAgICAgICAgLy8gUmV0dXJuIHRoZSBjYWxjdWxhdGVkIHZhbHVlXG4gICAgICAgICAgJHZhbDogJHZhbCArICcgY2FsYygnICsgJG1pbi13aWR0aCArIGlmKCR2YWx1ZSA8IDAsICcgLSAnLCAnICsgJykgKyAkdmFyaWFibGUtd2lkdGggKyAnKSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgZmlyc3Qgc3BhY2VcbiAgQHJldHVybiB1bnF1b3RlKHN0ci1zbGljZSgkdmFsLCAyKSk7XG59XG5cbi8vIFJGUyBtaXhpblxuQG1peGluIHJmcygkdmFsdWVzLCAkcHJvcGVydHk6IGZvbnQtc2l6ZSkge1xuICBAaWYgJHZhbHVlcyAhPSBudWxsIHtcbiAgICAkdmFsOiByZnMtdmFsdWUoJHZhbHVlcyk7XG4gICAgJGZsdWlkVmFsOiByZnMtZmx1aWQtdmFsdWUoJHZhbHVlcyk7XG5cbiAgICAvLyBEbyBub3QgcHJpbnQgdGhlIG1lZGlhIHF1ZXJ5IGlmIHJlc3BvbnNpdmUgJiBub24tcmVzcG9uc2l2ZSB2YWx1ZXMgYXJlIHRoZSBzYW1lXG4gICAgQGlmICR2YWwgPT0gJGZsdWlkVmFsIHtcbiAgICAgICN7JHByb3BlcnR5fTogJHZhbDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgX3Jmcy1ydWxlIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiBpZigkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5LCAkdmFsLCAkZmx1aWRWYWwpO1xuXG4gICAgICAgIC8vIEluY2x1ZGUgc2FmYXJpIGlmcmFtZSByZXNpemUgZml4IGlmIG5lZWRlZFxuICAgICAgICBtaW4td2lkdGg6IGlmKCRyZnMtc2FmYXJpLWlmcmFtZS1yZXNpemUtYnVnLWZpeCwgKDAgKiAxdncpLCBudWxsKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgX3Jmcy1tZWRpYS1xdWVyeS1ydWxlIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiBpZigkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5LCAkZmx1aWRWYWwsICR2YWwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBTaG9ydGhhbmQgaGVscGVyIG1peGluc1xuQG1peGluIGZvbnQtc2l6ZSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSk7XG59XG5cbkBtaXhpbiBwYWRkaW5nKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBwYWRkaW5nKTtcbn1cblxuQG1peGluIHBhZGRpbmctdG9wKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBwYWRkaW5nLXRvcCk7XG59XG5cbkBtaXhpbiBwYWRkaW5nLXJpZ2h0KCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBwYWRkaW5nLXJpZ2h0KTtcbn1cblxuQG1peGluIHBhZGRpbmctYm90dG9tKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBwYWRkaW5nLWJvdHRvbSk7XG59XG5cbkBtaXhpbiBwYWRkaW5nLWxlZnQoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmctbGVmdCk7XG59XG5cbkBtaXhpbiBtYXJnaW4oJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIG1hcmdpbik7XG59XG5cbkBtaXhpbiBtYXJnaW4tdG9wKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBtYXJnaW4tdG9wKTtcbn1cblxuQG1peGluIG1hcmdpbi1yaWdodCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgbWFyZ2luLXJpZ2h0KTtcbn1cblxuQG1peGluIG1hcmdpbi1ib3R0b20oJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIG1hcmdpbi1ib3R0b20pO1xufVxuXG5AbWl4aW4gbWFyZ2luLWxlZnQoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIG1hcmdpbi1sZWZ0KTtcbn1cbiIsImRmbixcbmNpdGUsXG5lbSxcbmkge1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbmJsb2NrcXVvdGUge1xuXHRtYXJnaW46IDAgMS41ZW07XG59XG5cbmFkZHJlc3Mge1xuXHRtYXJnaW46IDAgMCAxLjVlbTtcbn1cblxucHJlIHtcblx0YmFja2dyb3VuZDogJGNvbG9yX19iYWNrZ3JvdW5kLXByZTtcblx0Zm9udC1mYW1pbHk6ICRmb250X19wcmU7XG5cdGxpbmUtaGVpZ2h0OiAkZm9udF9fbGluZS1oZWlnaHQtcHJlO1xuXHRtYXJnaW4tYm90dG9tOiAxLjZlbTtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHRvdmVyZmxvdzogYXV0bztcblx0cGFkZGluZzogMS42ZW07XG59XG5cbmNvZGUsXG5rYmQsXG50dCxcbnZhciB7XG5cdGZvbnQtZmFtaWx5OiAkZm9udF9fY29kZTtcbn1cblxuYWJicixcbmFjcm9ueW0ge1xuXHRib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjb2xvcl9fYm9yZGVyLWFiYnI7XG5cdGN1cnNvcjogaGVscDtcbn1cblxubWFyayxcbmlucyB7XG5cdGJhY2tncm91bmQ6ICRjb2xvcl9fYmFja2dyb3VuZC1pbnM7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuYmlnIHtcblx0Zm9udC1zaXplOiAxMjUlO1xufVxuXG5zdXAge1xuXHRmb250LXNpemU6IDY1JTtcbn0iLCJib2R5IHtcblx0YmFja2dyb3VuZDogJGNvbG9yX19iYWNrZ3JvdW5kLWJvZHk7IC8vIEZhbGxiYWNrIGZvciB3aGVuIHRoZXJlIGlzIG5vIGN1c3RvbSBiYWNrZ3JvdW5kIGNvbG9yIGRlZmluZWQuXG5cdGZvbnQtc2l6ZTogMTZweDtcbn1cbiIsImhyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX19iYWNrZ3JvdW5kLWhyO1xuXHRib3JkZXI6IDA7XG5cdGhlaWdodDogMXB4O1xuXHRtYXJnaW4tYm90dG9tOiAxLjVlbTtcbn1cbiIsInVsLFxub2wge1xuXHRtYXJnaW46IDAgMCAxLjVlbSAzZW07XG59XG5cbnVsIHtcblx0bGlzdC1zdHlsZTogZGlzYztcbn1cblxub2wge1xuXHRsaXN0LXN0eWxlOiBkZWNpbWFsO1xufVxuXG5saSA+IHVsLFxubGkgPiBvbCB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cdG1hcmdpbi1sZWZ0OiAxLjVlbTtcbn1cblxuZHQge1xuXHRmb250LXdlaWdodDogNzAwO1xufVxuXG5kZCB7XG5cdG1hcmdpbjogMCAxLjVlbSAxLjVlbTtcbn1cbiIsIi8qIE1ha2Ugc3VyZSBlbWJlZHMgYW5kIGlmcmFtZXMgZml0IHRoZWlyIGNvbnRhaW5lcnMuICovXG5lbWJlZCxcbmlmcmFtZSxcbm9iamVjdCB7XG5cdG1heC13aWR0aDogMTAwJTtcbn1cblxuaW1nIHtcblx0aGVpZ2h0OiBhdXRvOyAvLyBNYWtlIHN1cmUgaW1hZ2VzIGFyZSBzY2FsZWQgY29ycmVjdGx5LlxuXHRtYXgtd2lkdGg6IDEwMCU7IC8vIEFkaGVyZSB0byBjb250YWluZXIgd2lkdGguXG59XG5cbmZpZ3VyZSB7XG5cdG1hcmdpbjogMWVtIDA7IC8vIEV4dHJhIHdpZGUgaW1hZ2VzIHdpdGhpbiBmaWd1cmUgdGFncyBkb24ndCBvdmVyZmxvdyB0aGUgY29udGVudCBhcmVhLlxufVxuIiwidGFibGUge1xuXHRtYXJnaW46IDAgMCAxLjVlbTtcblx0d2lkdGg6IDEwMCU7XG59XG4iLCJhIHtcblx0Y29sb3I6ICRjb2xvcl9fbGluaztcblxuXHQmOnZpc2l0ZWQge1xuXHRcdGNvbG9yOiAkY29sb3JfX2xpbmstdmlzaXRlZDtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRjb2xvcjogJGNvbG9yX19saW5rLWhvdmVyO1xuXHR9XG5cblx0Jjpmb2N1cyB7XG5cdFx0b3V0bGluZTogdGhpbiBkb3R0ZWQ7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmFjdGl2ZSB7XG5cdFx0b3V0bGluZTogMDtcblx0fVxufVxuIiwiYnV0dG9uLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuXHRib3JkZXI6IDFweCBzb2xpZDtcblx0Ym9yZGVyLWNvbG9yOiAkY29sb3JfX2JvcmRlci1idXR0b247XG5cdGJvcmRlci1yYWRpdXM6IDNweDtcblx0YmFja2dyb3VuZDogJGNvbG9yX19iYWNrZ3JvdW5kLWJ1dHRvbjtcblx0Y29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcblx0bGluZS1oZWlnaHQ6IDE7XG5cdHBhZGRpbmc6IDAuNmVtIDFlbSAwLjRlbTtcblxuXHQmOmhvdmVyIHtcblx0XHRib3JkZXItY29sb3I6ICRjb2xvcl9fYm9yZGVyLWJ1dHRvbi1ob3Zlcjtcblx0fVxuXG5cdCY6YWN0aXZlLFxuXHQmOmZvY3VzIHtcblx0XHRib3JkZXItY29sb3I6ICRjb2xvcl9fYm9yZGVyLWJ1dHRvbi1mb2N1cztcblx0fVxufVxuIiwiaW5wdXRbdHlwZT1cInRleHRcIl0sXG5pbnB1dFt0eXBlPVwiZW1haWxcIl0sXG5pbnB1dFt0eXBlPVwidXJsXCJdLFxuaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbmlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG5pbnB1dFt0eXBlPVwidGVsXCJdLFxuaW5wdXRbdHlwZT1cInJhbmdlXCJdLFxuaW5wdXRbdHlwZT1cImRhdGVcIl0sXG5pbnB1dFt0eXBlPVwibW9udGhcIl0sXG5pbnB1dFt0eXBlPVwid2Vla1wiXSxcbmlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuaW5wdXRbdHlwZT1cImNvbG9yXCJdLFxudGV4dGFyZWEge1xuXHRjb2xvcjogJGNvbG9yX190ZXh0LWlucHV0O1xuXHRib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfX2JvcmRlci1pbnB1dDtcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRwYWRkaW5nOiAzcHg7XG5cblx0Jjpmb2N1cyB7XG5cdFx0Y29sb3I6ICRjb2xvcl9fdGV4dC1pbnB1dC1mb2N1cztcblx0fVxufVxuXG5zZWxlY3Qge1xuXHRib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfX2JvcmRlci1pbnB1dDtcbn1cblxudGV4dGFyZWEge1xuXHR3aWR0aDogMTAwJTtcbn1cbiIsIi8qIE5hdmlnYXRpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQGltcG9ydCBcIm5hdmlnYXRpb24vbmF2aWdhdGlvblwiO1xuXG4vKiBQb3N0cyBhbmQgcGFnZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQGltcG9ydCBcImNvbnRlbnQvY29udGVudFwiO1xuXG4vKiBDb21tZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AaW1wb3J0IFwiY29tbWVudHMvY29tbWVudHNcIjtcblxuLyogV2lkZ2V0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AaW1wb3J0IFwid2lkZ2V0cy93aWRnZXRzXCI7XG5cbi8qIE1lZGlhXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBpbXBvcnQgXCJtZWRpYS9tZWRpYVwiO1xuXG4vKiBDYXB0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AaW1wb3J0IFwibWVkaWEvY2FwdGlvbnNcIjtcblxuLyogR2FsbGVyaWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBpbXBvcnQgXCJtZWRpYS9nYWxsZXJpZXNcIjtcblxuLyogU2VjdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQGltcG9ydCBcInNlY3Rpb25zL3NlY3Rpb25zXCI7XG5cbiIsIi5tYWluLW5hdmlnYXRpb24ge1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDEwMCU7XG5cblx0dWwge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xuXG5cdFx0dWwge1xuXHRcdFx0Ym94LXNoYWRvdzogMCAzcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4yKTtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAxMDAlO1xuXHRcdFx0bGVmdDogLTk5OWVtO1xuXHRcdFx0ei1pbmRleDogOTk5OTk7XG5cblx0XHRcdHVsIHtcblx0XHRcdFx0bGVmdDogLTk5OWVtO1xuXHRcdFx0XHR0b3A6IDA7XG5cdFx0XHR9XG5cblx0XHRcdGxpIHtcblxuXHRcdFx0XHQmOmhvdmVyID4gdWwsXG5cdFx0XHRcdCYuZm9jdXMgPiB1bCB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0bGVmdDogYXV0bztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRhIHtcblx0XHRcdFx0d2lkdGg6IDIwMHB4O1xuXHRcdFx0fVxuXG5cdFx0XHQ6aG92ZXIgPiBhLFxuXHRcdFx0LmZvY3VzID4gYSB7XG5cdFx0XHR9XG5cblx0XHRcdGE6aG92ZXIsXG5cdFx0XHRhLmZvY3VzIHtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRsaTpob3ZlciA+IHVsLFxuXHRcdGxpLmZvY3VzID4gdWwge1xuXHRcdFx0bGVmdDogYXV0bztcblx0XHR9XG5cdH1cblxuXHRsaSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0Jjpob3ZlciA+IGEsXG5cdFx0Ji5mb2N1cyA+IGEge1xuXHRcdH1cblx0fVxuXG5cdGEge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0fVxuXG5cdC5jdXJyZW50X3BhZ2VfaXRlbSA+IGEsXG5cdC5jdXJyZW50LW1lbnUtaXRlbSA+IGEsXG5cdC5jdXJyZW50X3BhZ2VfYW5jZXN0b3IgPiBhLFxuXHQuY3VycmVudC1tZW51LWFuY2VzdG9yID4gYSB7XG5cdH1cbn1cblxuLyogU21hbGwgbWVudS4gKi9cbi5tZW51LXRvZ2dsZSxcbi5tYWluLW5hdmlnYXRpb24udG9nZ2xlZCB1bCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzNy41ZW0pIHtcblxuXHQubWVudS10b2dnbGUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQubWFpbi1uYXZpZ2F0aW9uIHVsIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHR9XG59XG5cbi5jb21tZW50LW5hdmlnYXRpb24sXG4ucG9zdHMtbmF2aWdhdGlvbixcbi5wb3N0LW5hdmlnYXRpb24ge1xuXG5cdC5zaXRlLW1haW4gJiB7XG5cdFx0bWFyZ2luOiAwIDAgMS41ZW07XG5cdH1cblxuXHQubmF2LWxpbmtzIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHR9XG5cblx0Lm5hdi1wcmV2aW91cyB7XG5cdFx0ZmxleDogMSAwIDUwJTtcblx0fVxuXG5cdC5uYXYtbmV4dCB7XG5cdFx0dGV4dC1hbGlnbjogZW5kO1xuXHRcdGZsZXg6IDEgMCA1MCU7XG5cdH1cbn1cbiIsIi8qIEhvbWVwYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBpbXBvcnQgXCJob21lcGFnZVwiO1xuXG4vKiBTZWNvbmRhcnlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQGltcG9ydCBcInNlY29uZGFyeVwiOyIsIi8qICMgTW9kYWxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5tb2RhbCB7XG4gICAgei1pbmRleDogMTAwMDAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1vZGFsLWNvbnRlbnQge1xuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gICAgYm94LXNoYWRvdzogMHB4IDNweCAxMHB4IDVweCByZ2IoMTAwIDEwMCAxMDAgLyAyMCUpO1xuICAgIGJvcmRlcjogbm9uZTtcbn1cblxuI3BvcHVwTW9kYWwgLm1vZGFsLXRleHQge1xuICAgIG1hcmdpbi10b3A6IDJlbTtcbn1cblxuLm1vZGFsLXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG5cbi5tb2RhbF9faW5mbyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDExLjVweCk7XG5cbiAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLm1vZGFsLWhlYWRlciB7XG4gICAgYm9yZGVyOiBub25lO1xufVxuXG4uYnRuLWNsb3NlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3BhdGlhbGJ1c2luZXNzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyMi8wNy9tb2RhbC1jbG9zZS5zdmcnKTtcbiAgICBmb250LXNpemU6IDI0cHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuXG4gICAgLm1vZGFsLWRpYWxvZyB7XG4gICAgICAgIG1heC13aWR0aDogNzY4cHg7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG5cbiAgICAubW9kYWwtdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMjIuNXB4KTtcbiAgICB9XG5cbiAgICAubW9kYWwtaGVhZGVyIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMmVtO1xuICAgICAgICBwYWRkaW5nLXRvcDogMmVtO1xuICAgIH1cblxuICAgIC5tb2RhbC1kaWFsb2cge1xuICAgICAgICBtYXgtd2lkdGg6IDEwODBweDtcbiAgICB9XG5cbiAgICAubW9kYWwtYm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDJlbSA0ZW07XG4gICAgfVxuXG4gICAgI3BvcHVwTW9kYWwgLm1vZGFsLXRleHQge1xuICAgICAgICBtYXJnaW4tdG9wOiA0ZW07XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTkyMHB4KSB7XG5cbiAgICAubW9kYWwtZGlhbG9nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMzkwcHg7XG4gICAgfVxuXG4gICAgI3BvcHVwTW9kYWwgLm1vZGFsLWRpYWxvZyB7XG4gICAgICAgIC5tb2RhbC1kaWFsb2csIC5tb2RhbC1jb250ZW50IHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDk3M3B4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1vZGFsLWJvZHkge1xuICAgICAgICBwYWRkaW5nOiAyZW0gMTBlbTtcbiAgICB9XG59XG5cbi8qICMgRnVuY3Rpb25hbGl0eVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogU2xpZGUgSW4gKi9cblxuLnNsaWRlVXAuYW5pbWF0ZSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAwcHgpO1xuICAgIHRyYW5zaXRpb246IC41cyBlYXNlIG9wYWNpdHkgMC4xcywgLjc1cyBlYXNlIHRyYW5zZm9ybSAwLjE1cztcbn1cblxuLnNsaWRlVXAuYW5pbWF0ZWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4uc2xpZGVVcC5kZWxheTI1MCB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMzAwbXM7XG59XG5cbi5zbGlkZVVwLmRlbGF5NTAwIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiA2MDBtcztcbn1cblxuLnNsaWRlVXAuZGVsYXk3NTAge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDkwMG1zO1xufVxuXG4uc2xpZGVVcC5kZWxheTEwMDAge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDEyMDBtcztcbn1cblxuLnNsaWRlVXAuZGVsYXkxMjUwIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAxNTAwbXM7XG59XG5cbi5zbGlkZVVwLmRlbGF5MTUwMCB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMTgwMG1zO1xufVxuXG4uc2xpZGVVcC5kZWxheTE3NTAge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDIxMDBtcztcbn1cblxuLnNsaWRlVXAuZGVsYXkyMDAwIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAyNDAwbXM7XG59XG5cbi5zbGlkZVVwLmRlbGF5MjI1MCB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMjcwMG1zO1xufVxuXG4uc2xpZGVVcC5kZWxheTI1MDAge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDMwMDBtcztcbn1cblxuLnNsaWRlVXAuZGVsYXkyNzUwIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAzMzAwbXM7XG59XG5cblxuLyogQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG5cbiAgICAuaG9tZS5jb250ZW50IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuICAgIFxuICAgIC5ob21lLmNvbnRlbnQtMiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cblxuICAgIC5ob21lIC5jb250ZW50LWltZyB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuXG4gICAgLmhvbWUuY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyZW07XG4gICAgXG4gICAgICAgIC5jb250ZW50LWltZyB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRlbnQtdGV4dCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDU2NXB4O1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmhvbWUuY29udGVudC0yIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJlbTtcbiAgICBcbiAgICAgICAgLmNvbnRlbnQtaW1nIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50LXRleHQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA1NjVweDtcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuXG4gICAgLmhvbWUuY29udGVudCB7XG4gICAgICAgIG1hcmdpbjogNmVtIDA7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9zcGF0aWFsYnVzaW5lc3MuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzA3L2JvZHktYmctMS5wbmcnKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiA1NCU7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgfVxuXG4gICAgLmhvbWUuY29udGVudC0yIHtcbiAgICAgICAgbWFyZ2luOiAzZW0gMCA2ZW07XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9zcGF0aWFsYnVzaW5lc3MuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzA3L2JvZHktYmctMi0xLnBuZycpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IDY0JTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblxuICAgICAgICAuZmxleCB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50LXRleHQge1xuICAgICAgICAgICAgaGVpZ2h0OiA2MTVweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE0NDBweCkge1xuXG4gICAgLmhvbWUuY29udGVudCB7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIGhlaWdodDogNjE1cHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLmhvbWUuY29udGVudC0yIHtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgaGVpZ2h0OiA2MTVweDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAuaG9tZS5jb250ZW50LXRleHQge1xuICAgICAgICBoZWlnaHQ6IDYxNXB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxOTIwcHgpIHtcblxuICAgIC5ob21lLmNvbnRlbnQtMiB7XG5cbiAgICAgICAgLmNvbnRlbnQtdGV4dCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMzZlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogRmxvdyBDaGFydFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZsb3cge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9zcGF0aWFsYnVzaW5lc3MuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzA2L2JsdWUtYmcucG5nJyk7XG5cbiAgICBoMiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cblxuICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDNlbTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuXG4gICAgLnNwYXRpYWwge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgfVxuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICB9XG5cbiAgICAmX19zdGFydCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICAgICAgbWF4LXdpZHRoOiAyNzVweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAxMDAwO1xuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9fYmx1ZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxMnB4KTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiA2NXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IGNhbGMoMTgvMTYpO1xuICAgICAgICAgICAgcGFkZGluZzogLjVlbSAxZW07XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiA5NSU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDEycHgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzcGFuOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogNSU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgcGFkZGluZzogLjVlbSAxZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICAgICAgbWF4LXdpZHRoOiAyNzVweDtcbiAgICAgICAgaGVpZ2h0OiA2NXB4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDEycHgpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IGNhbGMoMTgvMTYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZsb3dfX2Fycm93IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnRpdGxlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG5cbiAgICAuY2hhcHRlciB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG5cbiAgICAuZmxvdyB7XG5cbiAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG5cbiAgICAuZmxvdyB7XG5cbiAgICAgICAgLmZsZXgge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3dyYXBwZXIge1xuICAgICAgICAgICAgZmxleC1iYXNpczogMzAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhcnQge1xuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMWVtIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtICB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogY2FsYygxOC8xNik7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyBpbWcge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMS4yNWVtO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG5cbiAgICAuZmxvdyB7XG5cbiAgICAgICAgJl9fc3RhcnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG5cbiAgICAgICAgICAgIHAgc3BhbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE2cHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fd3JhcHBlciB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAyOCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTZweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNGVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG5cbiAgICAuZmxvdyB7XG5cbiAgICAgICAgJl9fd3JhcHBlciB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC41ZW07XG4gICAgICAgIH1cblxuICAgICAgICAuZmxleCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDk0MHB4O1xuICAgICAgICB9XG4gICAgfVxufSIsIi8qIEFuaW1hdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmFuaW1hdGUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDBweCk7XG4gICAgdHJhbnNpdGlvbjogLjVzIGVhc2Ugb3BhY2l0eSAwLjFzLCAuNzVzIGVhc2UgdHJhbnNmb3JtIDAuMTVzO1xufVxuXG4uYW5pbWF0ZWQge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuXG4ucmV2ZXJzZS5hbmltYXRlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMDBweCk7XG4gICAgdHJhbnNpdGlvbjogLjVzIGVhc2Ugb3BhY2l0eSAwLjFzLCAuNzVzIGVhc2UgdHJhbnNmb3JtIDAuMTVzO1xufVxuXG4ucmV2ZXJzZS5hbmltYXRlZCB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG59XG5cbi8qIEFib3V0IHRoZSBCb29rXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBDb250ZW50ICovXG5cbi5wYWdlX19hYm91dC5jb250ZW50LCAucGFnZV9fYWJvdXQtMi5jb250ZW50IHtcbiAgICBwYWRkaW5nLXRvcDogMWVtO1xuXG4gICAgLmJvb2stbGlzdC1kZXNjcmlwdGlvbiB7XG4gICAgICAgIG1heC13aWR0aDogNTIwcHg7XG4gICAgfVxuXG4gICAgLmJvb2stbGlzdCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICBcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMzBweDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMy43NWVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJ2h0dHBzOi8vc3BhdGlhbGJ1c2luZXNzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyMi8wNy9jaGVja21hcmsuc3ZnJykgbm8tcmVwZWF0IDAlIDAlO1xuXG4gICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnBhZ2VfX2Fib3V0LmZsb3cge1xuXG4gICAgaDIge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcblxuICAgIC5wYWdlX19hYm91dC5jb250ZW50IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG5cbiAgICAgICAgLmNvbnRlbnQtaW1nIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuXG4gICAgLnBhZ2VfX2Fib3V0IC5oZXJvX190ZXh0IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG5cbiAgICAucGFnZV9fYWJvdXQuY29udGVudCB7XG5cbiAgICAgICAgLmZsZXgge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgICAgIH1cbiAgICBcbiAgICAgICAgLmNvbnRlbnQtaW1nIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50LXRleHQge1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA1MTBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wYWdlX19hYm91dC5mbG93IHtcblxuICAgICAgICBoMiB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICBcbiAgICAgICAgLmRlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuXG4gICAgLnBhZ2VfX2Fib3V0LmNvbnRlbnQge1xuICAgICAgICBtYXJnaW46IDZlbSAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3BhdGlhbGJ1c2luZXNzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wMy9ib2R5LWFib3V0LWJnLnBuZycpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IDUwJTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgaGVpZ2h0OiA3MDBweDtcblxuICAgICAgICAuY29udGVudC10ZXh0IHtcbiAgICAgICAgICAgIGhlaWdodDogNzAwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGFnZV9fYWJvdXQtMi5jb250ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3NwYXRpYWxidXNpbmVzcy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjMvMDMvYm9keS02LnBuZycpO1xuICAgICAgICBtYXJnaW46IDg0cHggMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiAzOCU7XG4gICAgICAgIHBhZGRpbmc6IDg0cHggMDtcblxuXG4gICAgICAgIC5jb250ZW50LWltZyB7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxNDQwcHgpIHtcblxuICAgIC5wYWdlX19hYm91dC5jb250ZW50IHtcbiAgICAgIFxuXG4gICAgICAgIC5jb250ZW50LXRleHQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDM2ZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29udGVudC10ZXh0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGhlaWdodDogYXV0b1xuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE5MjBweCkge1xuXG4gICAgLnBhZ2VfX2Fib3V0LmNvbnRlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IDEwJTtcbiAgICB9XG59XG5cbi8qIEZsb3cgKi9cblxuLnBhZ2VfX2Fib3V0LmZsb3cge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5mbG93X19pdGVtIHtcbiAgICAgICAgbWluLWhlaWdodDogNjVweDtcbiAgICB9XG5cbiAgICAuZmxvd19fc3RhcnQgcCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogNjVweDtcbiAgICB9XG59XG5cbi8qIEF1dGhvcnMgKi9cblxuLmF1dGhvcnMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAuYXV0aG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMmVtO1xuXG4gICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmluYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAuMjU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYXV0aG9yLWNsb3NlX193cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAuYXV0aG9yLWNsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYXV0aG9yX19pbmZvIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX19pbmZvLWJveDtcbiAgICAgICAgcGFkZGluZzogMmVtIDEuNWVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICAgICAgICBib3gtc2hhZG93OiAwcHggM3B4IDEwcHggNXB4IHJnYigxMDAgMTAwIDEwMCAvIDIwJSk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMWVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgIHdpZHRoOiAyODBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHotaW5kZXg6IDEwMDtcblxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAuNXM7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzNzVweCkge1xuXG4gICAgLmF1dGhvcnMge1xuXG4gICAgICAgIC5hdXRob3JfX2luZm8ge1xuICAgICAgICAgICAgbGVmdDogM2VtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDI1cHgpIHtcblxuICAgIC5hdXRob3JzIHtcblxuICAgICAgICAuYXV0aG9yX19pbmZvIHtcbiAgICAgICAgICAgIGxlZnQ6IDVlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG5cbiAgICAuYXV0aG9ycyB7XG5cbiAgICAgICAgLmF1dGhvciB7XG5cbiAgICAgICAgICAgICZfX2luZm8ge1xuICAgICAgICAgICAgICAgIHRvcDogMTVlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG5cbiAgICAuYXV0aG9ycyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAuYXV0aG9yIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzA2cHg7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAzMyU7XG4gICAgICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hdXRob3JfX2luZm8ge1xuICAgICAgICAgICB3aWR0aDogNjAwcHg7XG4gICAgICAgICAgIHRvcDogMjBlbTtcbiAgICAgICAgICAgIGxlZnQ6IDEwJSAhaW1wb3J0YW50OyAvKiBwb3NpdGlvbiB0aGUgbGVmdCBlZGdlIG9mIHRoZSBlbGVtZW50IGF0IHRoZSBtaWRkbGUgb2YgdGhlIHBhcmVudCAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLmZsZXgge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG5cbiAgICAuYXV0aG9ycyB7XG5cbiAgICAgICAgLmF1dGhvcl9faW5mbyB7XG4gICAgICAgICAgICB3aWR0aDogODUwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcblxuICAgIC5hdXRob3JzIHtcblxuICAgICAgICAuYXV0aG9yX19pbmZvIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDIuNWVtIDNlbTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDgwcHg7XG4gICAgICAgICAgICB0b3A6IDI2ZW07XG4gICAgICAgICAgICBsZWZ0OiAyMCUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogRVNSSSBQYXJ0bmVyc2hpcFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnBhZ2VfX2Vzcmkge1xuXG4gICAgLmhlcm9fX3RleHQgcCB7XG4gICAgICAgIG1heC13aWR0aDogNTMwcHg7XG4gICAgfVxuXG4gICAgLmxvZ29fX3dyYXBwZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAyZW07XG4gICAgfVxuXG4gICAgJi5jb250ZW50IHtcbiAgICAgICAgXG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMmVtIDAgMS41ZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfX2hlYWRsaW5lLTI7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJvb2stbGlzdCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBcbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnaHR0cHM6Ly9zcGF0aWFsYnVzaW5lc3MuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzA3L2Fycm93LWxpc3Quc3ZnJykgbm8tcmVwZWF0IDAlIDAlO1xuXG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfX3RleHQtbWFpbjtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICAgICAgICAgICY6bGluayB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX190ZXh0LW1haW47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfX29yYW5nZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuXG4gICAgLnBhZ2VfX2VzcmkuY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgICAgIC5jb250ZW50LWltZyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcblxuICAgIC5wYWdlX19lc3JpIHtcbiAgICAgICAgbWFyZ2luOiA2ZW0gMDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3NwYXRpYWxidXNpbmVzcy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjIvMDcvYm9keS1iZy00LnBuZycpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IDQ1JTtcbiAgICB9XG5cbiAgICAucGFnZV9fZXNyaS5jb250ZW50IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJlbTtcbiAgICBcbiAgICAgICAgLmNvbnRlbnQtaW1nIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50LXRleHQge1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA1MTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ib29rLWxpc3Qge1xuICAgICAgICAgICAgY29sdW1uczogMjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE0NDBweCkge1xuXG4gICAgLnBhZ2VfX2Vzcmkge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3BhdGlhbGJ1c2luZXNzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyMi8wNy9ib2R5LWJnLTQucG5nJyk7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb24teDogNTUlO1xuXG4gICAgICAgICYuaGVybyB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4NDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5sb2dvX193cmFwcGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDMuNWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDZlbSAwO1xuICAgICAgICAgICAgaGVpZ2h0OiA2MTVweDtcblxuICAgICAgICAgICAgaDMge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMWVtIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGVudC10ZXh0IHtcbiAgICAgICAgICAgIGhlaWdodDogNjE1cHg7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMzZlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogUXVvdGUgKi9cblxuLnBhZ2VfX2VzcmkucXVvdGUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9zcGF0aWFsYnVzaW5lc3MuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzA2L2JsdWUtYmcucG5nJyk7XG5cbiAgICAucXVvdGUtMSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVlbTtcbiAgICB9XG5cbiAgICAucXVvdGVfX3RleHQge1xuICAgICAgICBsaW5lLWhlaWdodDogY2FsYygyNi8yMSk7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnRfX3BsYXlmYWlyO1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMjFweCk7XG4gICAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICB9XG5cbiAgICAuYXR0cmlidXRlX193cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDQ3MHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAyZW07XG5cbiAgICAgICAgJi0yIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjg1cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYXR0cmlidXRlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEuNWVtO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBjYWxjKDE3LzExLjUpO1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTEuNXB4KTtcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuXG4gICAgLnBhZ2VfX2VzcmkucXVvdGUge1xuXG4gICAgICAgIC5xdW90ZS0xIHtcblxuICAgICAgICAgICAgLnF1b3RlX190ZXh0IHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDc1MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnF1b3RlX190ZXh0IHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBjYWxjKDUwLzMyKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyNHB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hdHRyaWJ1dGVfX3dyYXBwZXIge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmF0dHJpYnV0ZSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuXG4gICAgLnBhZ2VfX2VzcmkucXVvdGUge1xuXG4gICAgICAgIC5xdW90ZV9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMjhweCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcblxuICAgIC5wYWdlX19lc3JpLnF1b3RlIHtcblxuICAgICAgICAucXVvdGVfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDMycHgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBXaHkgUmVkbGFuZHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5wYWdlX19yZWRsYW5kcyB7XG5cbiAgICBociB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9fdGV4dC1tYWluO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMWVtO1xuICAgIH1cblxuICAgIC5hY2NvcmRpb24taXRlbSB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG5cbiAgICAuYWNjb3JkaW9uLWJ1dHRvbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfX29yYW5nZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnaHR0cHM6Ly9zcGF0aWFsYnVzaW5lc3MuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzA3L2Fycm93LWRyb3Bkb3duLnN2ZycpIG5vLXJlcGVhdCA1MCUgMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogNTAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLmNvbGxhcHNlZCkge1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9fdGV4dC1tYWluO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDQwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJ2h0dHBzOi8vc3BhdGlhbGJ1c2luZXNzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyMi8wNy9hcnJvdy1kcm9wZG93bi1vcmFuZ2Uuc3ZnJykgbm8tcmVwZWF0IDUwJSA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogLjVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hY2NvcmRpb24tdGl0bGUge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLjI1ZW07XG4gICAgfVxuXG4gICAgLmFjY29yZGlvbi1zdWJ0aXRsZSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfX29yYW5nZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuXG4gICAgLmFjY29yZGlvbi1ib2R5IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDFlbTtcbiAgICB9XG5cbiAgICAuZHJvcGRvd24ge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yX190ZXh0LW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbTpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9fdGV4dC1tYWluO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmhlcm9fX3RleHQgcCB7XG4gICAgICAgIG1heC13aWR0aDogNTMwcHg7XG4gICAgfVxuXG4gICAgLmxvZ29fX3dyYXBwZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAyZW07XG4gICAgfVxuXG4gICAgJi5jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgXG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMWVtIDAgMC41ZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfX2hlYWRsaW5lLTI7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJvb2stbGlzdCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBcbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnaHR0cHM6Ly9zcGF0aWFsYnVzaW5lc3MuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzA3L2Fycm93LWxpc3Quc3ZnJykgbm8tcmVwZWF0IDAlIDAlO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG5cbiAgICAucGFnZV9fcmVkbGFuZHMuY29udGVudCB7XG5cbiAgICAgICAgLmNvbnRlbnQtaW1nIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuXG4gICAgLnBhZ2VfX3JlZGxhbmRzLmNvbnRlbnQge1xuICAgICAgICBtYXJnaW46IDZlbSAwIDA7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9zcGF0aWFsYnVzaW5lc3MuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzA3L2JvZHktNS1iZy5wbmcnKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiA0MCU7XG4gICAgXG4gICAgICAgIC5jb250ZW50LWltZyB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGVudC10ZXh0IHtcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICAgIG1heC13aWR0aDogNTcwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuXG4gICAgLnBhZ2VfX3JlZGxhbmRzIHtcblxuICAgICAgICAuYWNjb3JkaW9uLWJvZHkge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5sb2dvX193cmFwcGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDMuNWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5jb250ZW50IHtcbiAgICAgICAgICAgXG5cbiAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDFlbSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBBcnRpY2xlcyAqL1xuXG4ucGFnZV9fcmVkbGFuZHMuYXJ0aWNsZXMge1xuXG4gICAgLmFydGljbGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0ZW07XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGgzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG5cbiAgICAuZGF0ZSB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTEuNXB4KTtcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuXG4gICAgLnBhZ2VfX3JlZGxhbmRzLmFydGljbGVzIHtcblxuICAgICAgICAuYXJ0aWNsZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaDMge1xuICAgICAgICAgICAgbWluLWhlaWdodDogODdweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG5cbiAgICAucGFnZV9fcmVkbGFuZHMuYXJ0aWNsZXMge1xuXG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcblxuICAgIC5wYWdlX19yZWRsYW5kcy5hcnRpY2xlcyB7XG5cbiAgICAgICAgaDMge1xuICAgICAgICAgICAgbWluLWhlaWdodDogNTZweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogQ29udGFjdFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnBhZ2VfX2NvbnRhY3QuaGVybyB7XG4gICAgXG4gICAgJl9fdGV4dCBwIHtcbiAgICAgICAgbWF4LXdpZHRoOiA0NjBweDtcbiAgICB9XG5cbiAgICAuYnRuX193cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLjVlbTtcblxuICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJ0biB7XG4gICAgICAgIHdpZHRoOiAyNjBweDtcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcblxuICAgIC5wYWdlX19jb250YWN0Lmhlcm8ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNGVtO1xuXG4gICAgICAgIC5idG5fX3dyYXBwZXIge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDVlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5idG4ge1xuICAgICAgICAgICAgd2lkdGg6IDQ0MHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBGb3JtIE1vZGFsICovXG5cbiNjb250YWN0TW9kYWwgLmdmb3JtX2Zvb3RlciB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLmdmb3JtX2JvZHkge1xuXG4gICAgaW5wdXQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfX3RleHQtbWFpbjtcbiAgICB9XG5cbiAgICB0ZXh0YXJlYSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9fdGV4dC1tYWluO1xuICAgIH1cbn1cblxuLmdmb3JtX2Zvb3RlciB7XG5cbiAgICBpbnB1dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9fb3JhbmdlO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzVweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX19vcmFuZ2U7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnRfX21haW47XG4gICAgICAgIHdpZHRoOiAxNzVweDtcbiAgICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICY6bGluaywgJjp2aXNpdGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfX29yYW5nZTs7XG4gICAgICAgIH1cbiAgICBcbiAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yX19idG47XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG5cbiAgICAuZ2Zvcm1fZm9vdGVyIHtcblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMjIuNXB4KTtcbiAgICAgICAgICAgIGhlaWdodDogNTVweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmNvbW1lbnQtY29udGVudCBhIHtcblx0d29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4uYnlwb3N0YXV0aG9yIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG4iLCIud2lkZ2V0IHtcblx0bWFyZ2luOiAwIDAgMS41ZW07XG5cblx0Ly8gTWFrZSBzdXJlIHNlbGVjdCBlbGVtZW50cyBmaXQgaW4gd2lkZ2V0cy5cblx0c2VsZWN0IHtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cbn1cbiIsIi5wYWdlLWNvbnRlbnQgLndwLXNtaWxleSxcbi5lbnRyeS1jb250ZW50IC53cC1zbWlsZXksXG4uY29tbWVudC1jb250ZW50IC53cC1zbWlsZXkge1xuXHRib3JkZXI6IG5vbmU7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cdG1hcmdpbi10b3A6IDA7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi8qIE1ha2Ugc3VyZSBsb2dvIGxpbmsgd3JhcHMgYXJvdW5kIGxvZ28gaW1hZ2UuICovXG4uY3VzdG9tLWxvZ28tbGluayB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiIsIi53cC1jYXB0aW9uIHtcblx0bWFyZ2luLWJvdHRvbTogMS41ZW07XG5cdG1heC13aWR0aDogMTAwJTtcblxuXHRpbWdbY2xhc3MqPVwid3AtaW1hZ2UtXCJdIHtcblxuXHRcdEBpbmNsdWRlIGNlbnRlci1ibG9jaztcblx0fVxuXG5cdC53cC1jYXB0aW9uLXRleHQge1xuXHRcdG1hcmdpbjogMC44MDc1ZW0gMDtcblx0fVxufVxuXG4ud3AtY2FwdGlvbi10ZXh0IHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuIiwiLy8gQ2VudGVyIGJsb2NrXG5AbWl4aW4gY2VudGVyLWJsb2NrIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi8vIENvbHVtbiB3aWR0aCB3aXRoIG1hcmdpblxuQG1peGluIGNvbHVtbi13aWR0aCgkbnVtYmVyQ29sdW1uczogMykge1xuXHR3aWR0aDogbWFwLWdldCgkY29sdW1ucywgJG51bWJlckNvbHVtbnMpIC0gKCAoICRjb2x1bW5zX19tYXJnaW4gKiAoICRudW1iZXJDb2x1bW5zIC0gMSApICkgLyAkbnVtYmVyQ29sdW1ucyApO1xufVxuIiwiLmdhbGxlcnkge1xuXHRtYXJnaW4tYm90dG9tOiAxLjVlbTtcblx0ZGlzcGxheTogZ3JpZDtcblx0Z3JpZC1nYXA6IDEuNWVtO1xufVxuXG4uZ2FsbGVyeS1pdGVtIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4vLyBMb29wcyB0byBlbnVtZXJhdGUgdGhlIGNsYXNzZXMgZm9yIGdhbGxlcnkgY29sdW1ucy5cbkBmb3IgJGkgZnJvbSAyIHRocm91Z2ggOSB7XG5cblx0LmdhbGxlcnktY29sdW1ucy0jeyRpfSB7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoJGksIDFmcik7XG5cdH1cbn1cblxuLmdhbGxlcnktY2FwdGlvbiB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuIiwiLyogSGVhZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBpbXBvcnQgXCJoZWFkZXJcIjtcblxuLyogSGVyb1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AaW1wb3J0IFwiaGVyb1wiO1xuXG4vKiBGb290ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQGltcG9ydCBcImZvb3RlclwiOyIsImhlYWRlciB7XG4gICAgcGFkZGluZzogMWVtIDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMi41ZW07XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3NwYXRpYWxidXNpbmVzcy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjIvMDYvaGVhZGVyLWJnLnBuZycpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYm94LXNoYWRvdzogMHB4IDEwcHggMjBweCA3cHggcmdiKDE1MCAxNTAgMTUwIC8gMzAlKSwgMCAzcHggMjBweCAwIHJnYigxNTAgMTUwIDE1MCAvIDE5JSk7XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgfVxuXG4gICAgLm1lbnUge1xuICAgICAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLm1lbnUgbGkge1xuICAgICAgICBsaXN0LXN0eWxlLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3BhdGlhbGJ1c2luZXNzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyMi8wNi9hcnJvdy1tb2JpbGUuc3ZnJyk7XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgbGlzdC1zdHlsZS1pbWFnZTogdXJsKCdodHRwczovL3NwYXRpYWxidXNpbmVzcy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjIvMDYvYXJyb3ctb3JhbmdlLW1vYmlsZS5zdmcnKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IC41cztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWVudSBhIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9fdGV4dC1tYWluO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTZweCk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMWVtO1xuXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9fb3JhbmdlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcblxuICAgIGhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDJlbSAwIC41ZW07XG5cbiAgICAgICAgLmhvbWUtaWNvbl9fd3JhcHBlciB7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuaG9tZS1pY29uIGltZyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1lbnUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDY2MHB4O1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuXG4gICAgICAgICAgICAmX193cmFwcGVyIHtcbiAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWVudSBsaSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDcwcHg7XG4gICAgICAgICAgICBsaXN0LXN0eWxlLWltYWdlOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCdodHRwczovL3NwYXRpYWxidXNpbmVzcy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjIvMDYvYXJyb3cuc3ZnJykgbm8tcmVwZWF0IDUwJSAwJTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgXG4gICAgICAgICAgICAmLmFjdGl2ZSwgJi5jdXJyZW50LW1lbnUtaXRlbSB7XG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZS1pbWFnZTogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJ2h0dHBzOi8vc3BhdGlhbGJ1c2luZXNzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyMi8wNy9hcnJvdy1vcmFuZ2Uuc3ZnJykgbm8tcmVwZWF0IDUwJSAxMDAlO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IC41cztcblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX19vcmFuZ2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm1lbnUgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiA3MHB4O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAuNWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZsZXgge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG5cbiAgICBoZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiA0ZW0gMCAyLjVlbTtcbiAgICB9XG59XG5cblxuLyogTW9iaWxlIE5hdlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm1vYmlsZS1jb250YWluZXIge1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgfVxuICBcbiAgLnRvcG5hdiB7XG4gICAgcGFkZGluZzogLjI1ZW0gMCAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxNDBweDtcbiAgICB9XG4gIH1cbiAgXG4gIC50b3BuYXYgI25hdkl0ZW1zIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1hcmdpbi10b3A6IDJlbTtcbiAgfVxuICBcbiAgLnRvcG5hdiBhIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBwYWRkaW5nOiA2cHggMDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIFxuICAudG9wbmF2IGEubW9iaWxlTmF2IHtcbiAgICAgIGZvbnQtc2l6ZTogMjdweDtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9fdGV4dC1tYWluO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAuMjVlbTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgfSIsIi5oZXJvIHtcblxuICAgICZfX3RleHQge1xuICAgICAgICBtYXgtd2lkdGg6IDY4MnB4O1xuICAgIH1cblxuICAgIC5lc3JpLWxvZ28sIC5yZWRsYW5kcy1sb2dvIHtcbiAgICAgICAgd2lkdGg6IDMyNXB4O1xuICAgIH1cbn1cblxuLnBhZ2VfX2Fib3V0IC5oZXJvX190ZXh0IHAge1xuICAgIG1heC13aWR0aDogNTMwcHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIFxuICAgIC5oZXJvIHtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiBjZW50ZXI7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG5cbiAgICAuaGVybyB7XG4gICAgICAgIHBhZGRpbmc6IDZlbSAwO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTkyMHB4KSB7XG5cbiAgICAuaGVybyB7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiA1MCU7XG4gICAgfVxufSIsImZvb3RlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX19mb290ZXI7XG4gICAgcGFkZGluZy1ib3R0b206IDJlbTtcblxuICAgIC5mb290ZXItMiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDRlbTtcbiAgICB9XG5cbiAgICAuYnRuIHtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHdpZHRoOiAyNjRweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX19idG4tMjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3JfX2J0bi0yO1xuXG4gICAgICAgICYgKyAuYnRuIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGluaywgJjp2aXNpdGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9fYnRuLTI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJ0bl9fd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbjogMCAwIDRlbTtcbiAgICB9XG5cblxuICAgIC5zb2NpYWwge1xuICAgICAgICBtYXJnaW46IDEuNWVtIDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgbWF4LXdpZHRoOiAyMDdweDtcblxuICAgICAgICAmLTEge1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRjb2xvcl9fdGV4dC1tYWluO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRjb2xvcl9fc29jaWFsLTEgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLTIge1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRjb2xvcl9fdGV4dC1tYWluO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRjb2xvcl9fc29jaWFsLTIgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9vdGVyLWxpbmtzIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuNWVtO1xuICAgIH1cblxuICAgIC5mb290ZXItbGlua3MgYSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfX3RleHQtbWFpbjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIC5jb3B5cmlnaHQge1xuICAgICAgICBtYXJnaW4tdG9wOiAzZW07XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxMXB4KTtcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0MjVweCkge1xuXG4gICAgZm9vdGVyIHtcblxuICAgICAgICAuZm9vdGVyLTEge1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvb3Rlci0yIHtcbiAgICAgICAgICAgIG1hcmdpbjogNGVtIGF1dG8gMDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuY29weXJpZ2h0IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjUwcHg7XG4gICAgICAgICAgICBtYXJnaW46IDNlbSBhdXRvIDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuXG4gICAgZm9vdGVyIHtcbiAgICAgICAgcGFkZGluZzogNGVtIDAgMmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiA0ZW07XG4gICAgICAgIFxuICAgICAgICAubG9nb19fd3JhcHBlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9vdGVyLTIge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb290ZXItMyB7XG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xMGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmZvb3Rlci1saW5rcyBwIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuY29weXJpZ2h0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxMnB4KTtcbiAgICAgICAgICAgIG1hcmdpbjogM2VtIDAgMDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idG5fX3dyYXBwZXIge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLThlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG5cbiAgICBmb290ZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiA4ZW07XG5cbiAgICAgICAgLmZvb3Rlci0zIHtcblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMTJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmNvcHlyaWdodCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTRweCk7XG4gICAgICAgIH1cblxuICAgICAgICAuYnRuX193cmFwcGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xNGVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG5cbiAgICBmb290ZXIge1xuICAgICAgICBwYWRkaW5nLXRvcDogOThweDtcblxuICAgICAgICAuZm9vdGVyLTMge1xuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xNS41ZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5jb3B5cmlnaHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE2cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJ0bl9fd3JhcHBlciB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMTZlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idG4ge1xuICAgICAgICAgICAgd2lkdGg6IDQyMHB4O1xuICAgICAgICB9XG4gICAgfVxufSIsIi8qIEhpZGUgdGhlIFBvc3RzIE5hdmlnYXRpb24gYW5kIHRoZSBGb290ZXIgd2hlbiBJbmZpbml0ZSBTY3JvbGwgaXMgaW4gdXNlLiAqL1xuLmluZmluaXRlLXNjcm9sbCAucG9zdHMtbmF2aWdhdGlvbixcbi5pbmZpbml0ZS1zY3JvbGwubmV2ZXJlbmRpbmcgLnNpdGUtZm9vdGVyIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLyogUmUtZGlzcGxheSB0aGUgVGhlbWUgRm9vdGVyIHdoZW4gSW5maW5pdGUgU2Nyb2xsIGhhcyByZWFjaGVkIGl0cyBlbmQuICovXG4uaW5maW5pdHktZW5kLm5ldmVyZW5kaW5nIC5zaXRlLWZvb3RlciB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuIiwiLyogVGV4dCBtZWFudCBvbmx5IGZvciBzY3JlZW4gcmVhZGVycy4gKi9cbi5zY3JlZW4tcmVhZGVyLXRleHQge1xuXHRib3JkZXI6IDA7XG5cdGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcblx0Y2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuXHRoZWlnaHQ6IDFweDtcblx0bWFyZ2luOiAtMXB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRwYWRkaW5nOiAwO1xuXHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcblx0d2lkdGg6IDFweDtcblx0d29yZC13cmFwOiBub3JtYWwgIWltcG9ydGFudDsgLy8gTWFueSBzY3JlZW4gcmVhZGVyIGFuZCBicm93c2VyIGNvbWJpbmF0aW9ucyBhbm5vdW5jZSBicm9rZW4gd29yZHMgYXMgdGhleSB3b3VsZCBhcHBlYXIgdmlzdWFsbHkuXG5cblx0Jjpmb2N1cyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX19iYWNrZ3JvdW5kLXNjcmVlbjtcblx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDJweCAycHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuXHRcdGNsaXA6IGF1dG8gIWltcG9ydGFudDtcblx0XHRjbGlwLXBhdGg6IG5vbmU7XG5cdFx0Y29sb3I6ICRjb2xvcl9fdGV4dC1zY3JlZW47XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Zm9udC1zaXplOiAwLjg3NXJlbTtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdGhlaWdodDogYXV0bztcblx0XHRsZWZ0OiA1cHg7XG5cdFx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0XHRwYWRkaW5nOiAxNXB4IDIzcHggMTRweDtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0dG9wOiA1cHg7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0ei1pbmRleDogMTAwMDAwOyAvLyBBYm92ZSBXUCB0b29sYmFyLlxuXHR9XG59XG5cbi8qIERvIG5vdCBzaG93IHRoZSBvdXRsaW5lIG9uIHRoZSBza2lwIGxpbmsgdGFyZ2V0LiAqL1xuI3ByaW1hcnlbdGFiaW5kZXg9XCItMVwiXTpmb2N1cyB7XG5cdG91dGxpbmU6IDA7XG59XG4iLCIuYWxpZ25sZWZ0IHtcblxuXHQvKnJ0bDppZ25vcmUqL1xuXHRmbG9hdDogbGVmdDtcblxuXHQvKnJ0bDppZ25vcmUqL1xuXHRtYXJnaW4tcmlnaHQ6IDEuNWVtO1xuXHRtYXJnaW4tYm90dG9tOiAxLjVlbTtcbn1cblxuLmFsaWducmlnaHQge1xuXG5cdC8qcnRsOmlnbm9yZSovXG5cdGZsb2F0OiByaWdodDtcblxuXHQvKnJ0bDppZ25vcmUqL1xuXHRtYXJnaW4tbGVmdDogMS41ZW07XG5cdG1hcmdpbi1ib3R0b206IDEuNWVtO1xufVxuXG4uYWxpZ25jZW50ZXIge1xuXHRjbGVhcjogYm90aDtcblxuXHRAaW5jbHVkZSBjZW50ZXItYmxvY2s7XG5cblx0bWFyZ2luLWJvdHRvbTogMS41ZW07XG59XG4iXX0= */
