/*!
Theme Name: BAT Bistro
Theme URI: http://underscores.me/
Author: Nimrod Musungu
Author URI: https://nimrod.emerginghost.co.ke
Description: Professional and responsive theme for restaurant businesses
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: bat_bistro
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.

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

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

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

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

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

/* Reset & Base Styles */
:root {
  --primary-color: #7b3832;
  --primary-accent: #c76b50;
  --secondary-color: #f84830;
  --text-color: #333;
  --light-bg: #fdf8f5;
  --dark-bg: #feeeec;
  --heading-font: "Montserrat", sans-serif;
  --text-font: "Inter", sans-serif;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--text-font);
  background-color: var(--light-bg);
  color: var(--text-color);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--heading-font);
  font-weight: 500;
}

a {
  color: var(--text-color);
}

.afri-btn {
  width: 100%;
  padding: 8px 16px;
  border-radius: 5px;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

.afri-btn-primary {
  background-color: var(--primary-accent);
  color: #fff;
  border: none;
  cursor: pointer;
}

.afri-btn-secondary {
  background-color: var(--secondary-color);
  color: #fff;
  border: none;
}

.afri-btn-outline {
  background-color: #fff;
  color: var(--primary-accent) !important;
  border: 1px solid var(--primary-accent);
}

.afri-btn-outline:hover {
  background-color: var(--primary-accent);
  color: #fff !important;
}

.section-title {
  font-size: clamp(1.5rem, 4vw, 2.25rem);
  font-weight: 600;
  line-height: 2.5rem;
  color: var(--primary-color);
  margin-bottom: 1rem;
}

.container {
  max-width: 70%;
  margin: 0 auto;
  padding: 0 1.25rem;
}

.learn-more {
  color: var(--primary-color);
  font-size: 0, 85rem;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.learn-more:hover {
  color: var(--primary-accent);
  text-decoration: underline;
}

@media screen and (min-width: 1161px) and (max-width: 1407px) {
  .container {
    max-width: 80%;
  }
}
/* Box sizing
--------------------------------------------- */
/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
  box-sizing: inherit;
}

html {
  box-sizing: border-box;
}

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

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

p {
  margin-bottom: 1.5em;
}

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

blockquote {
  margin: 0 1.5em;
}

address {
  margin: 0 0 1.5em;
}

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

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

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

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

big {
  font-size: 125%;
}

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

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

ul {
  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: #4169e1;
}
a:visited {
  color: #800080;
}
a:hover, a:focus, a:active {
  color: #191970;
}
a:focus {
  outline: thin dotted;
}
a:hover, a:active {
  outline: 0;
}

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

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

select {
  border: 1px solid #ccc;
}

textarea {
  width: 100%;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/
/* Navigation
--------------------------------------------- */
.main-navigation {
  display: block;
  width: fit-content;
}
.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 li:not(:last-child) {
  margin-right: 20px;
}
.main-navigation a {
  display: block;
  text-decoration: none;
}
/* Small menu. */
.menu-toggle,
.main-navigation.toggled ul {
  display: block;
}

@media screen and (min-width: 37.5em) {
  .menu-toggle {
    display: none;
  }
  .main-navigation ul {
    display: flex;
  }
}
.site-main .comment-navigation,
.site-main .posts-navigation,
.site-main .post-navigation {
  margin: 0 0 1.5em;
}
.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
  display: flex;
}
.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
  flex: 1 0 50%;
}
.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
  text-align: end;
  flex: 1 0 50%;
}

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

.post,
.page {
  margin: 0 0 1.5em;
}

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

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

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

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

.bypostauthor {
  display: block;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.gallery-caption {
  display: block;
}

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

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

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

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

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

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

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

/* Header Logo & Nav
--------------------------------------------- */
.logo a {
  display: flex;
  align-items: center;
  font-size: 1.5rem;
  text-decoration: none;
  color: var(--primary-color);
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
}

.logo-mark {
  margin-right: 10px;
  width: 38px;
  height: 38px;
  background-color: var(--primary-color);
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M50,5 C25,5 5,25 5,50 C5,75 25,95 50,95 C75,95 95,75 95,50 C95,25 75,5 50,5 Z M50,85 C30,85 15,70 15,50 C15,30 30,15 50,15 C70,15 85,30 85,50 C85,70 70,85 50,85 Z M50,25 C35,25 25,35 25,50 C25,65 35,75 50,75 C65,75 75,65 75,50 C75,35 65,25 50,25 Z M50,65 C40,65 35,60 35,50 C35,40 40,35 50,35 C60,35 65,40 65,50 C65,60 60,65 50,65 Z'/%3E%3C/svg%3E") center/contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M50,5 C25,5 5,25 5,50 C5,75 25,95 50,95 C75,95 95,75 95,50 C95,25 75,5 50,5 Z M50,85 C30,85 15,70 15,50 C15,30 30,15 50,15 C70,15 85,30 85,50 C85,70 70,85 50,85 Z M50,25 C35,25 25,35 25,50 C25,65 35,75 50,75 C65,75 75,65 75,50 C75,35 65,25 50,25 Z M50,65 C40,65 35,60 35,50 C35,40 40,35 50,35 C60,35 65,40 65,50 C65,60 60,65 50,65 Z'/%3E%3C/svg%3E") center/contain no-repeat;
}

nav ul li a {
  text-decoration: none;
  color: var(--text-color);
  font-weight: 500;
  transition: color 0.3s;
}

nav ul li a:visited {
  text-decoration: none;
  color: var(--text-color);
}

nav ul li a:hover {
  color: var(--primary-color);
}

/**
 * Add this to your theme's style.css file or create a separate CSS file and enqueue it
 */
/* Header and Navigation Container */
.site-header {
  background-color: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 999;
  padding: 0.5rem 0;
}

.nav-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 0;
  position: relative;
}

/* Site Branding */
.site-branding {
  display: flex;
  align-items: center;
}

.site-branding a {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: var(--primary-color);
}

.site-title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 600;
}

/* Main Navigation - Desktop */
.main-navigation {
  display: block;
}

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

.main-navigation li {
  position: relative;
  margin: 0;
  padding: 0;
}

.main-navigation a {
  display: block;
  text-decoration: none;
  padding: 10px 15px;
  color: #333;
  font-family: "Inter", sans-serif;
  font-weight: 500;
  font-size: 16px;
  transition: all 0.3s ease;
}

.main-navigation a:hover,
.main-navigation li:hover > a {
  color: var(--primary-color);
}

/* Dropdown Menus */
.main-navigation ul ul {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 99999;
  background-color: #fff;
  min-width: 200px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
  flex-direction: column;
  border-radius: 4px;
  overflow: hidden;
}

.main-navigation ul ul li {
  width: 100%;
}

.main-navigation ul ul a {
  padding: 12px 15px;
  font-size: 14px;
  border-bottom: 1px solid #f0f0f0;
}

.main-navigation ul ul a:hover {
  background-color: #f9f9f9;
}

.main-navigation ul ul ul {
  left: 100%;
  top: 0;
}

/* Show the dropdown on hover */
.main-navigation li.hover > ul,
.main-navigation li:hover > ul,
.main-navigation li.focus > ul {
  display: block;
}

/* Arrow for items with children */
.dropdown-icon {
  margin-left: 5px;
  font-size: 10px;
  transition: transform 0.3s ease;
}

.menu-item-has-children:hover > a .dropdown-icon {
  transform: rotate(180deg);
}

/* Mobile Navigation */
.mobile-navigation {
  display: none;
}

.menu-toggle {
  display: none;
  background: transparent;
  border: none;
  padding: 10px;
  font-size: 16px;
  color: #333;
  cursor: pointer;
  align-items: center;
  justify-content: center;
}

.menu-toggle:focus {
  outline: none;
}

.menu-toggle-icon {
  font-size: 24px;
}

.mobile-menu-container {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background-color: #fff;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
  z-index: 999;
  padding: 20px;
}

.mobile-navigation.toggled .mobile-menu-container {
  display: block;
}

/* Mobile Navigation Styling */
.mobile-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.mobile-navigation li {
  position: relative;
  margin: 0;
  padding: 0;
}

.mobile-navigation a {
  display: block;
  text-decoration: none;
  padding: 12px 0;
  color: #333;
  font-size: 16px;
  border-bottom: 1px solid #f0f0f0;
}

.mobile-navigation ul ul {
  display: none;
  padding-left: 20px;
}

/* Mobile dropdown toggle button */
.mobile-navigation .dropdown-toggle {
  position: absolute;
  right: 0;
  top: 5px;
  padding: 10px;
  background: transparent;
  border: none;
  font-size: 14px;
  color: #333;
  cursor: pointer;
}

.mobile-navigation .dropdown-toggle:focus {
  outline: none;
}

.mobile-navigation .dropdown-toggle i {
  transition: transform 0.3s ease;
}

.mobile-navigation .dropdown-toggle[aria-expanded=true] i {
  transform: rotate(180deg);
}

/* Hide mobile elements on desktop */
.mobile-only {
  display: none;
}

/* Screen reader text */
.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;
  width: 1px;
  word-wrap: normal !important;
}

/* Responsive styles */
@media screen and (max-width: 1160px) {
  /* Hide desktop navigation */
  .container {
    max-width: 90%;
    margin: 0 auto;
  }
  .main-navigation {
    display: none;
  }
  /* Show mobile navigation */
  .mobile-navigation {
    display: block;
  }
  .menu-toggle {
    display: flex;
  }
  /* Mobile-only elements */
  .mobile-only {
    display: block;
  }
  /* Handle body when menu is open */
  body.mobile-menu-open {
    overflow: hidden;
  }
}
/* Footer
--------------------------------------------- */
/* Footer */
footer {
  padding: 4rem 0 2rem;
  position: relative;
  background-color: var(--light-bg);
}

.footer-content {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.footer-logo {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 1rem;
  color: var(--primary-color);
}

.footer-about {
  color: var(--text-color);
  margin-bottom: 1rem;
  font-family: "Inter", sans-serif;
}

.social-links {
  display: flex;
  gap: 1rem;
}

.social-icon {
  width: 35px;
  height: 35px;
  border-radius: 50%;
  background-color: var(--primary-accent);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.3s ease;
  text-decoration: none;
}

.social-icon:hover {
  background-color: var(--primary-color);
}

.footer-links h3 {
  margin-bottom: 1rem;
  color: var(--primary-color);
  font-size: 1.2rem;
  font-weight: 600;
}

.footer-links ul {
  list-style: none;
  list-style: none;
  font-family: "Inter", sans-serif;
}

.footer-links ul li {
  margin-bottom: 0.5rem;
}

.footer-links ul li a {
  color: var(--text-color);
  text-decoration: none;
  transition: color 0.3s ease;
}

.footer-links ul li a:hover {
  color: var(--primary-color);
}

.footer-contact h3 {
  margin-bottom: 1.5rem;
  color: var(--primary-color);
}

.footer-contact p {
  margin-bottom: 0.5rem;
  color: var(--text-color);
}

.copyright {
  margin-top: 3rem;
  text-align: center;
  font-family: "Inter", sans-serif;
  color: var(--text-color);
  font-size: 1rem;
}

.back-to-top {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  width: 40px;
  height: 40px;
  background-color: var(--secondary-color);
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0.8;
  transition: opacity 0.3s ease;
}

.back-to-top:hover {
  opacity: 1;
}

@media (min-width: 768px) {
  .footer-content {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 3rem;
  }
}
/* Hero
--------------------------------------------- */
/* Hero Section */
.hero {
  height: 100vh;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  color: #fff;
  text-align: center;
  position: relative;
  top: -24px;
  left: 0;
  width: 100%;
  position: relative;
}

.bg-slider {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: -1;
}

.bg-slide {
  height: 100vh;
  background-size: cover;
  background-position: center;
}

.hero::before {
  position: absolute;
  content: "";
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.35);
}

.hero .container {
  z-index: 99;
}

/* HERO SECTION */
.hero {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  height: 100vh;
  overflow: hidden;
  position: relative;
  background-size: cover;
  background-position: center;
}

.hero-content {
  position: absolute;
  left: 20%;
  color: #fff;
  text-align: left;
  max-width: 48rem;
}

.hero-content h1 {
  font-size: clamp(2rem, 4vw, 3.75rem);
  margin-bottom: 1rem;
  line-height: 1;
  font-weight: 600;
}

.hero-content p {
  font-size: 1.25rem;
  margin-bottom: 2rem;
  max-width: 36rem;
}

.hero-content .btn {
  background-color: var(--secondary-color);
  color: #fff;
  padding: 0.75rem 2rem;
  text-decoration: none;
  border-radius: 30px;
  font-weight: 600;
}

@media (max-width: 768px) {
  .hero {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(3, 1fr);
  }
  .hero-content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    text-align: center;
    width: 100%;
  }
  .buttons {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    padding: 0px 1.5rem;
  }
  .our-story {
    grid-template-columns: 1fr;
    padding: 4rem 5%;
  }
  .story-image {
    height: 300px;
  }
}
/* Services
--------------------------------------------- */
/* Services Section */
.services {
  padding: 100px 0;
  background-color: #f9f9f9;
}

.section-header {
  text-align: center;
  margin-bottom: 50px;
}

.section-header h2 {
  position: relative;
  padding-bottom: 15px;
}

.section-header h2::after {
  content: "";
  position: absolute;
  width: 80px;
  height: 3px;
  background-color: #d4af37;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

.service-cards {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px;
}

.service-card {
  flex: 1 1 calc(50% - 30px);
  min-width: 300px;
  position: relative;
  overflow: hidden;
  height: 400px;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1);
}

.service-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.service-card:hover img {
  transform: scale(1.05);
}

.service-content {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 30px;
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));
  color: #fff;
  transform: translateY(0);
  transition: transform 0.3s ease;
}

.service-card:hover .service-content {
  transform: translateY(-10px);
}

.service-content h3 {
  margin-bottom: 10px;
  font-size: 1.8rem;
}

.service-content p {
  margin-bottom: 15px;
  font-size: 0.95rem;
}

.service-content a:hover {
  color: #d4af37;
}

/* Fleet
--------------------------------------------- */
/* Fleet Section */
.fleet {
  padding: 100px 0;
  background-color: #fff;
}

.fleet-tabs {
  display: flex;
  justify-content: center;
  margin-bottom: 40px;
  border-bottom: 1px solid #eee;
}

.tab-btn {
  padding: 15px 30px;
  font-size: 1.1rem;
  background: none;
  border: none;
  border-bottom: 3px solid transparent;
  cursor: pointer;
  font-weight: 500;
  transition: all 0.3s ease;
}

.tab-btn.active {
  border-bottom-color: #d4af37;
  color: #1c1c1c;
}

.tab-content {
  display: none;
}

.tab-content.active {
  display: block;
}

.fleet-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 30px;
}

.fleet-item {
  border: 1px solid #eee;
  overflow: hidden;
  transition: all 0.3s ease;
}

.fleet-item:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}

.fleet-image {
  height: 200px;
  overflow: hidden;
}

.fleet-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.fleet-item:hover .fleet-image img {
  transform: scale(1.1);
}

.fleet-details {
  padding: 20px;
}

.fleet-details h4 {
  font-size: 1.4rem;
  margin-bottom: 10px;
}

.fleet-details p {
  color: #666;
  font-size: 0.9rem;
  margin-bottom: 15px;
}

.fleet-meta {
  display: flex;
  justify-content: space-between;
  font-size: 0.85rem;
  color: #888;
}

/* Testimonials
--------------------------------------------- */
/* Testimonials */
.testimonials {
  padding: 100px 0;
  background-attachment: fixed;
  background-position: center;
  background-size: center/cover;
  background-repeat: no-repeat;
  color: #fff;
  text-align: center;
  position: relative;
}

.testimonials::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.8);
}

.section-header {
  z-index: 99;
}

.testimonial-slider {
  max-width: 800px;
  margin: 0 auto;
  position: relative;
}

.testimonial {
  padding: 0 60px;
}

.testimonial-text {
  font-size: 1.2rem;
  font-style: italic;
  margin-bottom: 30px;
}

.testimonial-author {
  font-weight: 600;
  letter-spacing: 1px;
}

.testimonial-company {
  font-size: 0.9rem;
  color: #d4af37;
}

/* CTA
--------------------------------------------- */
/* CTA Section */
.cta {
  padding: 100px 0;
  background-color: #f9f9f9;
  text-align: center;
}

.cta-content {
  max-width: 700px;
  margin: 0 auto;
}

.cta h2 {
  margin-bottom: 20px;
}

.cta p {
  margin-bottom: 30px;
  font-size: 1.1rem;
}

.cta-form input {
  flex: 1;
  padding: 15px;
  border: none;
  font-size: 1rem;
}

.wpcf7-form-control.wpcf7-submit.has-spinner.cta-form {
  padding: 15px 25px;
  background-color: #1c1c1c;
  color: #fff;
  border: none;
  font-size: 1rem;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.wpcf7-form-control.wpcf7-submit.has-spinner.cta-form:hover {
  background-color: #333;
}

.wpcf7-not-valid-tip {
  color: #dc3232;
  font-size: 1em;
  font-weight: normal;
  display: block;
  position: absolute;
}

.wpcf7-form.init {
  display: flex;
  align-items: center;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

@media (max-width: 600px) {
  .wpcf7-form.init {
    display: block;
  }
}
/* Remove Contact Form 7 default spacing */
.wpcf7 form.wpcf7-form p {
  margin: 0;
}

.wpcf7 .ajax-loader {
  position: absolute;
}

div.wpcf7-response-output {
  margin-top: 10px;
  font-size: 14px;
  text-align: center;
}

/* Content With Image
--------------------------------------------- */
/* Our Story */
.our-story {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  padding-top: 6rem;
  padding-bottom: 6rem;
  align-items: center;
}

.our-story a {
  color: var(--primary-color);
  text-decoration: none;
}

.our-story a:hover {
  color: var(--primary-color);
  text-decoration: underline;
}

.story-text h2 {
  font-size: clamp(1.8rem, 4vw, 2.5rem);
  color: var(--primary-color);
  margin-bottom: 1rem;
}

.story-text p {
  font-size: 1rem;
  line-height: 1.8;
  margin-bottom: 1.5rem;
  color: #444;
}

.story-image {
  width: 100%;
  height: 600px;
  background-size: cover;
  background-position: center;
  border-radius: 5px;
  object-fit: cover;
}

@media (max-width: 768px) {
  .our-story {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
  .story-image {
    width: 100%;
    height: 367px;
    aspect-ratio: auto;
    border-radius: 5px;
    object-fit: contain;
  }
}
/* Featured Products
--------------------------------------------- */
/* FEATURED PRODUCTS */
.featured-products {
  padding: 6rem 10%;
  background-color: #fff;
  text-align: center;
}

.featured-products h2 {
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  margin-bottom: 1rem;
}

.featured-products p {
  max-width: 700px;
  margin: 0 auto 3rem;
  font-size: 1rem;
  color: #444;
  line-height: 1.6;
}

.product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem;
  margin-bottom: 3rem;
}

.product-card {
  background-color: #fdf8f5;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  text-align: left;
}

.product-card img {
  width: 100%;
  height: 250px;
  object-fit: cover;
}

.product-info {
  padding: 1.5rem;
}

.product-info h3 {
  font-size: 1.25rem;
  margin-bottom: 0.5rem;
}

.product-info p {
  font-size: 0.95rem;
  color: #666;
  margin-bottom: 1rem;
}

.price-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.product-info .price {
  font-weight: 600;
  color: var(--primary-accent);
  margin-bottom: 1rem;
}

.product-info a {
  color: var(--text-color);
  text-decoration: none;
  font-weight: 500;
  font-size: 0.85rem;
}

.product-info a:hover {
  text-decoration: underline;
}

@media (max-width: 768px) {
  .featured-products {
    padding: 2rem 10%;
    background-color: #fff;
    text-align: center;
  }
}
/* CTA Banner
--------------------------------------------- */
/* African Pattern Banner */
.pattern-banner {
  padding: 3rem 0;
  color: white;
  text-align: center;
  position: relative;
  background-image: url("https://static.vecteezy.com/system/resources/previews/029/315/690/large_2x/african-zulu-traditional-accessories-made-of-beads-simplified-and-concise-photo.jpg");
  background: contain, center;
  background-attachment: fixed;
}

.pattern-banner::before {
  position: absolute;
  content: "";
  top: 0px;
  left: 0px;
  width: 100%;
  height: 10px;
  background-image: url("https://cbx-prod.b-cdn.net/COLOURBOX59160464.jpg?width=800&height=800&quality=70");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* .pattern-banner::after {
    position: absolute;
    content: "";
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.65);
    z-index: -1;
  } */
.pattern-banner h2 {
  font-size: 2rem;
  margin-bottom: 1rem;
  color: #fff;
  z-index: 99;
}

.pattern-banner p {
  font-size: 1.2rem;
  margin-bottom: 2rem;
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
}

.pattern-banner a {
  text-decoration: none;
  background-color: var(--secondary-color);
  color: #fff;
  padding: 8px 16px;
  border-radius: 20px;
  z-index: 99;
}

/* Workshops
--------------------------------------------- */
/* Workshops Section */
.workshops {
  padding: 5rem 0;
  background-color: var(--light-bg);
}

.workshops-container {
  max-width: 850px;
  margin: 0 auto;
}

.workshops-header {
  text-align: center;
  margin-bottom: 3rem;
}

.workshops-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  margin-bottom: 4rem;
}

.workshop-card {
  background-color: white;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
}

.workshop-image {
  height: 250px;
  background-size: cover;
  background-position: center;
}

.workshop-info {
  padding: 1.5rem;
}

.workshops a:visited {
  color: #fff;
}

.workshop-info h3 {
  font-size: 1.2rem;
  margin-bottom: 1rem;
  color: var(--primary-color);
  font-weight: 600;
}

.workshop-details {
  margin-bottom: 1.5rem;
}

.detail-group {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.5rem;
}

.detail-label {
  color: #666;
  font-size: 0.9rem;
}

.detail-value {
  font-weight: 500;
}

@media (max-width: 768px) {
  .workshops-grid {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 2.5rem;
  }
}
/* Missions
--------------------------------------------- */
/* Mission Section */
.missions {
  margin-bottom: 50px;
}

.mission-container {
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
}

.mission-pillars {
  display: flex;
  justify-content: space-between;
  margin-top: 40px;
  flex-wrap: wrap;
}

.pillar {
  flex-basis: 30%;
  padding: 15px;
  text-align: center;
  margin-bottom: 20px;
}

.pillar-number {
  display: inline-block;
  width: 4rem;
  height: 4rem;
  line-height: 30px;
  border-radius: 50%;
  background-color: var(--light-bg);
  color: var(--primary-color);
  font-weight: 600;
  margin: 0 auto;
  margin-bottom: 15px;
  font-size: 24px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.pillar h3 {
  font-size: 16px;
  margin-bottom: 10px;
  font-weight: 600;
}

.pillar p {
  font-size: 13px;
}

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

/* Responsive Styles */
@media (max-width: 992px) {
  .pillar {
    flex-basis: 48%;
  }
}
@media (max-width: 768px) {
  .pillar {
    flex-basis: 100%;
  }
}
/* Team
--------------------------------------------- */
/* Team Section */
.team-section {
  margin-bottom: 100px;
}

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

.team-members {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 30px;
}

.team-member {
  flex-basis: calc(25% - 20px);
  min-width: 200px;
  margin-bottom: 30px;
}

.member-img {
  width: 20rem;
  height: 20rem;
  border-radius: 50%;
  object-fit: cover;
  margin: 0 auto 15px;
}

.member-name {
  font-weight: 700;
  margin-bottom: 5px;
  font-size: 20px;
}

.member-title {
  color: #d35400;
  font-size: 16px;
  margin-bottom: 10px;
}

@media (max-width: 992px) {
  .team-member {
    flex-basis: calc(50% - 20px);
  }
}
/* Process
--------------------------------------------- */
/* Process Section */
.process-section {
  background-color: var(--light-bg);
  margin-bottom: 100px;
  padding: 2rem 0;
}

.process-container {
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
}

.process-header {
  margin-bottom: 5rem;
}

.process-step {
  display: flex;
  align-items: center;
  margin-bottom: 3rem;
  gap: 2rem;
}

.process-step:nth-child(even) {
  flex-direction: row-reverse;
}

.step-img {
  flex: 1;
}

.step-content {
  flex: 1;
  text-align: left;
}

.step-content h3 {
  color: var(--primary-color);
  font-weight: 600;
}

.step-number {
  font-weight: 700;
  color: var(--primary-color);
}

/* Products
--------------------------------------------- */
.woocommerce.columns-4 {
  max-width: 75%;
  margin: 100px auto;
}

.woocommerce .single-product {
  max-width: 75%;
  margin: 50px auto;
  position: relative;
  top: 100px;
}

.woocommerce ul.products {
  margin: 0 0 1em;
  list-style: none outside;
  clear: both;
}

.woocommerce a {
  color: var(--primary-color);
}

.wc-block-components-main.wc-block-cart__main.wp-block-woocommerce-cart-items-block a {
  color: var(--primary-color);
  text-decoration: none;
}

.wc-block-components-main.wc-block-cart__main.wp-block-woocommerce-cart-items-block a:hover {
  color: var(--secondary-color);
}

.wc-block-components-sidebar.wc-block-cart__sidebar.wp-block-woocommerce-cart-totals-block a {
  color: var(--primary-color);
}

.single_add_to_cart_button.button.alt {
  background-color: var(--secondary-color) !important;
}

.woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product p.price,
.woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product span.price {
  color: var(--primary-color);
}

.woocommerce ul.products li.product .woocommerce-loop-category__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h3 {
  padding: 0.5em 0;
  margin: 0;
  font-size: clamp(0.75rem, 4vw, 1.25rem);
  font-weight: 500;
  line-height: 1.75rem;
  color: var(--primary-color);
}

.woocommerce ul.products li.product .price {
  display: block;
  font-weight: 500;
  margin-bottom: 0.5em;
  font-size: 1rem;
  font-family: "Inter", sans-serif;
  color: var(--secondary-color);
}

.wp-block-woocommerce-cart.alignwide {
  max-width: 1200px;
  margin: 6rem auto;
}

.wc-block-components-sidebar-layout.wc-block-checkout.is-large {
  max-width: 70%;
  position: relative;
  top: 100px;
  margin-bottom: 138px;
}

.menu.nav-menu li a {
  position: relative;
}

.menu.nav-menu > li:last-child > a::before {
  position: absolute;
  content: "0";
  top: 0;
  right: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  color: #fff;
  background-color: var(--secondary-color);
  display: flex;
  align-items: center;
  flex-basis: 1;
  padding: 0.5rem;
  font-size: 10px;
}

.woocommerce-order {
  max-width: 70%;
  margin: 0 auto;
  margin-top: 120px;
}

.wc-block-grid.wp-block-product-new.wp-block-woocommerce-product-new.wc-block-product-new.has-4-columns ul li a {
  text-decoration: none;
  color: var(--primary-color);
  font-size: 16px;
}

.wp-block-button.wc-block-grid__product-add-to-cart a {
  color: #fff !important;
  background-color: var(--primary-color);
}

.wp-block-button.wc-block-grid__product-add-to-cart a:hover {
  color: #fff !important;
  background-color: var(--secondary-color);
}

@media (max-width: 1024px) {
  .woocommerce.columns-4 {
    max-width: 90%;
    margin: 50px auto;
  }
}
@media (max-width: 550px) {
  .woocommerce ul.products[class*=columns-] li.product,
  .woocommerce-page ul.products[class*=columns-] li.product {
    width: 100%;
  }
}
/* Steps and Highlights
--------------------------------------------- */
.process-highlights-row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.form-section {
  background-color: #fff;
  border-radius: 12px;
  padding: 30px;
  padding-bottom: 10px;
  flex: 1 1 350px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.process {
  margin-bottom: 100px;
  background-color: var(--light-bg);
  padding: 2rem 0;
}

.process h2,
.form-section h2 {
  color: var(--primary-color);
  font-size: 24px;
  margin-bottom: 24px;
}

.step {
  display: flex;
  justify-content: space-between;
  margin-bottom: 20px;
  font-family: "Inter", sans-serif;
}

.step p {
  font-size: 1rem;
  margin-bottom: 0;
}

.step p > span {
  font-size: 18px;
  font-weight: 600;
}

.step-number {
  background: var(--dark-bg);
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 2.5rem;
  height: 2.5rem;
  text-align: center;
  font-weight: 600;
  margin-right: 10px;
  flex-shrink: 0;
}

.perfect-for {
  font-family: "Inter", sans-serif;
  background-color: #ffe6e1;
  padding: 24px;
  border-radius: 8px;
  margin-top: 20px;
}

.perfect-for h4 {
  font-size: 18px;
  color: var(--primary-color);
  margin-bottom: 1rem;
  font-weight: 600;
}

.perfect-for ul {
  margin-left: 20px;
}

.perfect-for ul li {
  margin-bottom: 8px;
}

form {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.process-highlights-row .wpforms-field-label {
  font-family: "Inter", sans-serif;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #2a2522 !important;
  margin-bottom: 8px !important;
  width: fit-content;
}

.process-highlights-row .wpforms-container .wpforms-field,
.wp-core-ui div.wpforms-container .wpforms-field {
  padding: 0;
  margin-bottom: 24px;
}

.process-highlights-row .wpforms-field.wpforms-field-checkbox {
  padding: 1rem;
  margin-bottom: 0 !important;
  border: 1px solid #dedede;
  border-radius: 5px;
}

.process-highlights-row div.wpforms-container-full .wpforms-field.wpforms-field-checkbox ul li input + label {
  font-family: "Inter", sans-serif !important;
  font-size: 14px !important;
  color: #2a2522 !important;
  margin-bottom: 0 !important;
}

.process-highlights-row div.wpforms-container-full .wpforms-field-description {
  font-family: "Inter", sans-serif !important;
  font-size: 12px !important;
  color: #9f9f9f !important;
  margin-bottom: 0 !important;
  position: relative;
  left: 31px;
}

.process-highlights-row input[type=text],
input[type=email],
input[type=date],
input[type=tel],
textarea {
  padding: 8px 12px !important;
  border-radius: 5px !important;
  border: 1px solid #ddd;
  font-size: 14px !important;
  width: 100% !important;
  background-color: var(--light-bg) !important;
  height: auto !important;
}

.process-highlights-row textarea {
  height: 150px !important;
  min-height: 100px;
  resize: vertical;
}

.form-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.form-row > div {
  flex: 1 1 48%;
}

.checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
}

.process-highlights-row .wpforms-submit {
  font-family: "Inter", sans-serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  background-color: var(--primary-color) !important;
  transition: background 0.3s ease;
  cursor: pointer;
}

button:hover {
  background-color: var(--primary-accent);
}

.process-highlights-row .wpforms-submit-container {
  margin-top: 0 !important;
}

@media (max-width: 768px) {
  .process-highlights-row {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }
  .form-row > div {
    flex: 1 1 100%;
  }
}
@media (max-width: 600px) {
  .process-highlights-row .wpforms-container .wpforms-one-half,
  .wpforms-container .wpforms-three-sixths,
  .wpforms-container .wpforms-two-fourths {
    width: 100% !important;
    margin-left: 0 !important;
  }
  .process-highlights-row .wpforms-field.wpforms-field-checkbox {
    border: none !important;
  }
}
/* Contact Info
--------------------------------------------- */
.contact-section {
  margin-bottom: 100px;
}
.contact-section .contact-information-wrapper {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.contact-section .contact-information-wrapper .contact-information {
  width: 49%;
  float: left;
}
.contact-section .contact-information-wrapper .contact-information .contact-title {
  font-family: "Montserrat", sans-serif;
  font-size: 1.6rem;
  color: var(--primary-color);
  font-weight: 600;
  margin-bottom: 2rem;
}
.contact-section .contact-information-wrapper .contact-information .contact-group {
  margin-bottom: 1.8rem;
  display: flex;
  gap: 20px;
}
.contact-section .contact-information-wrapper .contact-information .contact-group .contact-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: var(--dark-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1rem;
}
.contact-section .contact-information-wrapper .contact-information .contact-group .contact-details h3 {
  font-family: "Inter", sans-serif;
  font-size: 1.15rem;
  color: #2a2a2a;
  margin-bottom: 4px;
  font-weight: 500;
}
.contact-section .contact-information-wrapper .contact-information .contact-group .contact-details p {
  font-family: "Inter", sans-serif;
  font-size: 1rem;
  color: #2a2a2a;
  margin-bottom: 0;
}
.contact-section .contact-information-wrapper .contact-form-section {
  width: 49%;
  float: right;
  flex-basis: 1;
}
.contact-section .contact-information-wrapper .contact-form-section h3 {
  color: var(--primary-color);
  font-size: 1.4rem;
  font-weight: 500;
}
.contact-section .contact-information-wrapper .contact-form-section .wpforms-validate.wpforms-form.wpforms-ajax-form {
  max-width: 500px;
  box-sizing: border-box;
  box-shadow: 2px 4px -2px rgba(0, 0, 0, 0.2) !important;
}
.contact-section .contact-information-wrapper .contact-form-section .wpforms-validate.wpforms-form.wpforms-ajax-form .wpforms-field {
  padding: 7px 0 !important;
}
.contact-section .contact-information-wrapper .contact-form-section .wpforms-validate.wpforms-form.wpforms-ajax-form .wpforms-field-label {
  font-family: "Inter", sans-serif;
  font-size: 14px;
  color: #2a2a2a;
  font-weight: 500;
  margin-bottom: 8px;
  padding-top: 0;
}
.contact-section .contact-information-wrapper .contact-form-section .wpforms-validate.wpforms-form.wpforms-ajax-form input {
  padding: 8px 12px;
  max-width: 100%;
}
.contact-section .contact-information-wrapper .contact-form-section .wpforms-validate.wpforms-form.wpforms-ajax-form .wpforms-submit {
  background-color: var(--primary-color) !important;
}
.contact-section .contact-information-wrapper .contact-form-section .wpforms-validate.wpforms-form.wpforms-ajax-form .wpforms-submit:hover {
  background-color: var(--secondary-color);
}

@media (max-width: 768px) {
  .contact-information-wrapper {
    display: flex;
    flex-direction: column;
    gap: 50px;
  }
  .contact-information-wrapper .contact-form-section {
    width: 100% !important;
  }
  .contact-information-wrapper .contact-information {
    width: 100% !important;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLnNjc3MiLCJnZW5lcmljL19ub3JtYWxpemUuc2NzcyIsImdlbmVyaWMvX2JveC1zaXppbmcuc2NzcyIsImJhc2UvX2Jhc2Uuc2NzcyIsImJhc2UvdHlwb2dyYXBoeS9fdHlwb2dyYXBoeS5zY3NzIiwiYWJzdHJhY3RzL3ZhcmlhYmxlcy9fY29sb3JzLnNjc3MiLCJhYnN0cmFjdHMvdmFyaWFibGVzL190eXBvZ3JhcGh5LnNjc3MiLCJiYXNlL3R5cG9ncmFwaHkvX2hlYWRpbmdzLnNjc3MiLCJiYXNlL3R5cG9ncmFwaHkvX2NvcHkuc2NzcyIsImJhc2UvZWxlbWVudHMvX2JvZHkuc2NzcyIsImJhc2UvZWxlbWVudHMvX2hyLnNjc3MiLCJiYXNlL2VsZW1lbnRzL19saXN0cy5zY3NzIiwiYmFzZS9lbGVtZW50cy9fbWVkaWEuc2NzcyIsImJhc2UvZWxlbWVudHMvX3RhYmxlcy5zY3NzIiwiYmFzZS9lbGVtZW50cy9fbGlua3Muc2NzcyIsImJhc2UvZWxlbWVudHMvX2J1dHRvbnMuc2NzcyIsImJhc2UvZWxlbWVudHMvX2ZpZWxkcy5zY3NzIiwiY29tcG9uZW50cy9fY29tcG9uZW50cy5zY3NzIiwiY29tcG9uZW50cy9uYXZpZ2F0aW9uL19uYXZpZ2F0aW9uLnNjc3MiLCJjb21wb25lbnRzL2NvbnRlbnQvX3Bvc3RzLWFuZC1wYWdlcy5zY3NzIiwiY29tcG9uZW50cy9jb21tZW50cy9fY29tbWVudHMuc2NzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9fd2lkZ2V0cy5zY3NzIiwiY29tcG9uZW50cy9tZWRpYS9fbWVkaWEuc2NzcyIsImNvbXBvbmVudHMvbWVkaWEvX2NhcHRpb25zLnNjc3MiLCJhYnN0cmFjdHMvbWl4aW5zL19taXhpbnMuc2NzcyIsImNvbXBvbmVudHMvbWVkaWEvX2dhbGxlcmllcy5zY3NzIiwicGx1Z2lucy9qZXRwYWNrL19pbmZpbml0ZS1zY3JvbGwuc2NzcyIsInV0aWxpdGllcy9fYWNjZXNzaWJpbGl0eS5zY3NzIiwidXRpbGl0aWVzL19hbGlnbm1lbnRzLnNjc3MiLCJsYXlvdXRzL19oZWFkZXIuc2NzcyIsImxheW91dHMvX2Zvb3Rlci5zY3NzIiwiY29tcG9uZW50cy9ibG9ja3MvX2hlcm8uc2NzcyIsImNvbXBvbmVudHMvYmxvY2tzL19zZXJ2aWNlcy5zY3NzIiwiY29tcG9uZW50cy9ibG9ja3MvX2ZsZWV0LnNjc3MiLCJjb21wb25lbnRzL2Jsb2Nrcy9fdGVzdGltb25pYWxzLnNjc3MiLCJjb21wb25lbnRzL2Jsb2Nrcy9fY3RhLnNjc3MiLCJjb21wb25lbnRzL2Jsb2Nrcy9fY29udGVudF93aXRoX2ltYWdlLnNjc3MiLCJjb21wb25lbnRzL2Jsb2Nrcy9fZmVhdHVyZWRfcHJvZHVjdHMuc2NzcyIsImNvbXBvbmVudHMvYmxvY2tzL19jdGFfYmFubmVyLnNjc3MiLCJjb21wb25lbnRzL2Jsb2Nrcy9fd29ya3Nob3BzLnNjc3MiLCJjb21wb25lbnRzL2Jsb2Nrcy9fbWlzc2lvbnMuc2NzcyIsImNvbXBvbmVudHMvYmxvY2tzL190ZWFtLnNjc3MiLCJjb21wb25lbnRzL2Jsb2Nrcy9fcHJvY2Vzcy5zY3NzIiwiY29tcG9uZW50cy9ibG9ja3MvX3Byb2R1Y3RzLnNjc3MiLCJjb21wb25lbnRzL2Jsb2Nrcy9fc3RlcHNfYW5kX2hpZ2hsaWdodHMuc2NzcyIsImNvbXBvbmVudHMvYmxvY2tzL19jb250YWN0X2luZm8uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBd0JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBK0JBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUMzREE7QUFFQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1FO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtJQUNFOzs7QUQ3RUo7QUFBQTtBRS9EQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0VBR0M7OztBQUdEO0VBQ0M7OztBRjBERDtBQUFBO0FBQUE7QUduRUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1FLE9DT2lCO0VETmpCLGFFTlc7RUZPWDtFQUNBLGFFSnVCOzs7QUNMekI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBTUM7OztBQ05EO0VBQ0M7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0VBSUM7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0MsWUhoQnVCO0VHaUJ2QixhRmpCVztFRWtCWCxhRmhCdUI7RUVpQnZCO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtBQUFBO0FBQUE7QUFBQTtFQUlDLGFGOUJZOzs7QUVpQ2I7QUFBQTtFQUVDO0VBQ0E7OztBQUdEO0FBQUE7RUFFQyxZSHZDdUI7RUd3Q3ZCOzs7QUFHRDtFQUNDOzs7QUw3Q0Q7QUFBQTtBTUpBO0VBQ0UsWUpEdUI7OztBS0F6QjtFQUNDLGtCTENzQjtFS0F0QjtFQUNBO0VBQ0E7OztBQ0NEO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7RUFFRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUN4QkY7QUFDQTtBQUFBO0FBQUE7RUFHQzs7O0FBR0Q7RUFDQztFQUNBOzs7QUFHRDtFQUNDOzs7QUNiRDtFQUNDO0VBQ0E7OztBVlVEO0FBQUE7QVdaQTtFQUNDLE9UU2E7O0FTUGI7RUFDQyxPVE9vQjs7QVNKckI7RUFHQyxPVEVrQjs7QVNDbkI7RUFDQzs7QUFHRDtFQUVDOzs7QVhIRjtBQUFBO0FZaEJBO0FBQUE7QUFBQTtBQUFBO0VBSUM7RUFDQSxjVlVzQjtFVVR0QjtFQUNBLFlWSjBCO0VVSzFCO0VBQ0E7RUFDQTs7QUFFQTtBQUFBO0FBQUE7QUFBQTtFQUNDLGNWRzJCOztBVUE1QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUVDLGNWRDJCOzs7QVdqQjdCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBZ0JDLE9YUm1CO0VXU25CO0VBQ0E7RUFDQTs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUNDLE9YYndCOzs7QVdpQjFCO0VBQ0M7OztBQUdEO0VBQ0M7OztBaEJ5Q0Q7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FpQjlFQTtBQUFBO0FDQUE7RUFDRTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBOztBQUlBO0VBRUU7RUFDQTs7QUFJSjtFQUNFOztBQVlKO0FBQUE7RUFFRTs7QUFJSjtFQUNFOztBQU1BO0VBQ0U7O0FBSUo7RUFDRTtFQUNBOztBQVVKO0FBQ0E7QUFBQTtFQUVFOzs7QUFHRjtFQUNFO0lBQ0U7O0VBR0Y7SUFDRTs7O0FBT0Y7QUFBQTtBQUFBO0VBQ0U7O0FBR0Y7QUFBQTtBQUFBO0VBQ0U7O0FBR0Y7QUFBQTtBQUFBO0VBQ0U7O0FBR0Y7QUFBQTtBQUFBO0VBQ0U7RUFDQTs7O0FEdkdKO0FBQUE7QUVKQTtFQUNDOzs7QUFHRDtBQUFBO0VBRUM7OztBQUdEO0VBQ0M7OztBQUdEO0FBQUE7QUFBQTtFQUdDOzs7QUFHRDtFQUNDO0VBQ0E7OztBRmJEO0FBQUE7QUdSQTtFQUNDOzs7QUFHRDtFQUNDOzs7QUhPRDtBQUFBO0FJWkE7RUFDQzs7QUFHQTtFQUNDOzs7QUpXRjtBQUFBO0FLaEJBO0FBQUE7QUFBQTtFQUdDO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtBQUNBO0VBQ0M7OztBTFNEO0FBQUE7QU1wQkE7RUFDQztFQUNBOztBQUVBO0VDRkE7RUFDQTtFQUNBOztBREtBO0VBQ0M7OztBQUlGO0VBQ0M7OztBTlNEO0FBQUE7QVF4QkE7RUFDQztFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7RUFDQTtFQUNBOzs7QUFNQTtFQUNDOzs7QUFERDtFQUNDOzs7QUFERDtFQUNDOzs7QUFERDtFQUNDOzs7QUFERDtFQUNDOzs7QUFERDtFQUNDOzs7QUFERDtFQUNDOzs7QUFERDtFQUNDOzs7QUFJRjtFQUNDOzs7QXpCOEREO0FBQUE7QUFBQTtBQUlBO0FBQUE7QTBCdkZBO0FBQ0E7QUFBQTtFQUVDOzs7QUFHRDtBQUNBO0VBQ0M7OztBMUJtRkQ7QUFBQTtBQUFBO0FBSUE7QUFBQTtBMkIvRkE7QUFDQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0Msa0J0QmJ5QjtFc0JjekI7RUFDQTtFQUNBO0VBQ0E7RUFDQSxPdEJabUI7RXNCYW5CO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0FBQ0E7RUFDQzs7O0EzQitERDtBQUFBO0E0Qm5HQTtBQUVDO0VBQ0E7QUFFQTtFQUNBO0VBQ0E7OztBQUdEO0FBRUM7RUFDQTtBQUVBO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQztFSm5CQTtFQUNBO0VBQ0E7RUlxQkE7OztBNUI4RUQ7QUFBQTtBNkJsRkE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7OztBQXlCRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQWVGO0FBQUE7QUFBQTtBQUlBO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQ0E7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7OztBQUdGO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtBQUNBO0FBQUE7QUFBQTtFQUdFOzs7QUFHRjtBQUNBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUNBO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0FBQ0E7RUFDRTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUNBO0FBQ0U7RUFDQTtJQUNFO0lBQ0E7O0VBRUY7SUFDRTs7QUFHRjtFQUNBO0lBQ0U7O0VBR0Y7SUFDRTs7QUFHRjtFQUNBO0lBQ0U7O0FBR0Y7RUFDQTtJQUNFOzs7QTdCNVBKO0FBQUE7QThCM0dBO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7OztBQWVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtJQUNFO0lBQ0E7SUFDQTs7O0E5Qm5CSjtBQUFBO0ErQi9HQTtBQUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUVBO0VBRUE7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBUUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7SUFDRTtJQUNBOztFQUdGO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBR0Y7SUFDRTtJQUNBO0lBQ0E7SUFDQTs7RUFHRjtJQUNFO0lBQ0E7O0VBR0Y7SUFDRTs7O0EvQlBKO0FBQUE7QWdDbkhBO0FBQ0E7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QWhDc0NGO0FBQUE7QWlDdkhBO0FBQ0E7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FqQ2tDRjtBQUFBO0FrQzNIQTtBQUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FsQzhFRjtBQUFBO0FtQy9IQTtBQUNBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBVUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7SUFDRTs7O0FBSUo7QUFDQTtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FuQ2dERjtBQUFBO0FvQ25JQTtBQUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7RUFHRjtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7OztBcEMrRUo7QUFBQTtBcUN2SUE7QUFDQTtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtJQUNFO0lBQ0E7SUFDQTs7O0FyQ3dESjtBQUFBO0FzQzNJQTtBQUNBO0VBQ0U7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0F0Q3NGRjtBQUFBO0F1Qy9JQTtBQUNBO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7SUFDRTtJQUNBO0lBQ0E7SUFDQTs7O0F2Q3VFSjtBQUFBO0F3Q25KQTtBQUNBO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUNBO0VBQ0U7SUFDRTs7O0FBSUo7RUFDRTtJQUNFOzs7QXhDc0ZKO0FBQUE7QXlDdkpBO0FBQ0E7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7SUFDRTs7O0F6QzhHSjtBQUFBO0EwQzNKQTtBQUNBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0ExQ21IRjtBQUFBO0EyQzFKQTtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQVNGO0VBQ0U7RUFFQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0VBR0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7SUFDRTtJQUNBOzs7QUFJSjtFQUNFO0FBQUE7SUFFRTs7O0EzQ2tCSjtBQUFBO0E0Q25LQTtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7SUFDRTtJQUNBO0lBQ0E7O0VBR0Y7SUFDRTs7O0FBSUo7RUFDRTtBQUFBO0FBQUE7SUFHRTtJQUNBOztFQUdGO0lBQ0U7OztBNUNsQ0o7QUFBQTtBNkN2S0E7RUFDRTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQU1SO0VBQ0U7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUVBO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBOztBQUdGO0VBQ0U7O0FBRUE7RUFDRTs7O0FBUVo7RUFDRTtJQUNFO0lBQ0E7SUFDQTs7RUFFQTtJQUNFOztFQUdGO0lBQ0UiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyohXHJcblRoZW1lIE5hbWU6IEJBVCBCaXN0cm9cclxuVGhlbWUgVVJJOiBodHRwOi8vdW5kZXJzY29yZXMubWUvXHJcbkF1dGhvcjogTmltcm9kIE11c3VuZ3VcclxuQXV0aG9yIFVSSTogaHR0cHM6Ly9uaW1yb2QuZW1lcmdpbmdob3N0LmNvLmtlXHJcbkRlc2NyaXB0aW9uOiBQcm9mZXNzaW9uYWwgYW5kIHJlc3BvbnNpdmUgdGhlbWUgZm9yIHJlc3RhdXJhbnQgYnVzaW5lc3Nlc1xyXG5WZXJzaW9uOiAxLjAuMFxyXG5UZXN0ZWQgdXAgdG86IDUuNFxyXG5SZXF1aXJlcyBQSFA6IDUuNlxyXG5MaWNlbnNlOiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MiBvciBsYXRlclxyXG5MaWNlbnNlIFVSSTogTElDRU5TRVxyXG5UZXh0IERvbWFpbjogYmF0X2Jpc3Ryb1xyXG5UYWdzOiBjdXN0b20tYmFja2dyb3VuZCwgY3VzdG9tLWxvZ28sIGN1c3RvbS1tZW51LCBmZWF0dXJlZC1pbWFnZXMsIHRocmVhZGVkLWNvbW1lbnRzLCB0cmFuc2xhdGlvbi1yZWFkeVxyXG5cclxuVGhpcyB0aGVtZSwgbGlrZSBXb3JkUHJlc3MsIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEwuXHJcblVzZSBpdCB0byBtYWtlIHNvbWV0aGluZyBjb29sLCBoYXZlIGZ1biwgYW5kIHNoYXJlIHdoYXQgeW91J3ZlIGxlYXJuZWQuXHJcblxyXG5CQVQgQmlzdHJvIGlzIGJhc2VkIG9uIFVuZGVyc2NvcmVzIGh0dHBzOi8vdW5kZXJzY29yZXMubWUvLCAoQykgMjAxMi0yMDIwIEF1dG9tYXR0aWMsIEluYy5cclxuVW5kZXJzY29yZXMgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR1BMIHYyIG9yIGxhdGVyLlxyXG5cclxuTm9ybWFsaXppbmcgc3R5bGVzIGhhdmUgYmVlbiBoZWxwZWQgYWxvbmcgdGhhbmtzIHRvIHRoZSBmaW5lIHdvcmsgb2ZcclxuTmljb2xhcyBHYWxsYWdoZXIgYW5kIEpvbmF0aGFuIE5lYWwgaHR0cHM6Ly9uZWNvbGFzLmdpdGh1Yi5pby9ub3JtYWxpemUuY3NzL1xyXG4qL1xyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4+Pj4gVEFCTEUgT0YgQ09OVEVOVFM6XHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuIyBHZW5lcmljXHJcblx0LSBOb3JtYWxpemVcclxuXHQtIEJveCBzaXppbmdcclxuIyBCYXNlXHJcblx0LSBUeXBvZ3JhcGh5XHJcblx0LSBFbGVtZW50c1xyXG5cdC0gTGlua3NcclxuXHQtIEZvcm1zXHJcbiMjIExheW91dHNcclxuIyBDb21wb25lbnRzXHJcblx0LSBOYXZpZ2F0aW9uXHJcblx0LSBQb3N0cyBhbmQgcGFnZXNcclxuXHQtIENvbW1lbnRzXHJcblx0LSBXaWRnZXRzXHJcblx0LSBNZWRpYVxyXG5cdC0gQ2FwdGlvbnNcclxuXHQtIEdhbGxlcmllc1xyXG4jIHBsdWdpbnNcclxuXHQtIEpldHBhY2sgaW5maW5pdGUgc2Nyb2xsXHJcbiMgVXRpbGl0aWVzXHJcblx0LSBBY2Nlc3NpYmlsaXR5XHJcblx0LSBBbGlnbm1lbnRzXHJcblxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4vLyBJbXBvcnQgdmFyaWFibGVzIGFuZCBtaXhpbnMuXHJcbkBpbXBvcnQgXCJhYnN0cmFjdHMvYWJzdHJhY3RzXCI7XHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiMgR2VuZXJpY1xyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4vKiBOb3JtYWxpemVcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbkBpbXBvcnQgXCJnZW5lcmljL25vcm1hbGl6ZVwiO1xyXG5cclxuLyogQm94IHNpemluZ1xyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuQGltcG9ydCBcImdlbmVyaWMvYm94LXNpemluZ1wiO1xyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4jIEJhc2VcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5AaW1wb3J0IFwiYmFzZS9iYXNlXCI7XHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiMgTGF5b3V0c1xyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8vIEBpbXBvcnQgXCJsYXlvdXRzL2NvbnRlbnQtc2lkZWJhclwiOyAvLyBVbmNvbW1lbnQgdGhpcyBsaW5lIGZvciBhIHNpZGViYXIgb24gcmlnaHQgc2lkZSBvZiB5b3VyIGNvbnRlbnQuXHJcbi8vIEBpbXBvcnQgXCJsYXlvdXRzL3NpZGViYXItY29udGVudFwiOyAvLyBVbmNvbW1lbnQgdGhpcyBsaW5lIGZvciBhIHNpZGViYXIgb24gbGVmdCBzaWRlIG9mIHlvdXIgY29udGVudC5cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuIyBDb21wb25lbnRzXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuQGltcG9ydCBcImNvbXBvbmVudHMvY29tcG9uZW50c1wiO1xyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4jIFBsdWdpbnNcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuLyogSmV0cGFjayBpbmZpbml0ZSBzY3JvbGxcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbkBpbXBvcnQgXCJwbHVnaW5zL2pldHBhY2svaW5maW5pdGUtc2Nyb2xsXCI7XHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiMgVXRpbGl0aWVzXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbi8qIEFjY2Vzc2liaWxpdHlcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbkBpbXBvcnQgXCJ1dGlsaXRpZXMvYWNjZXNzaWJpbGl0eVwiO1xyXG5cclxuLyogQWxpZ25tZW50c1xyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuQGltcG9ydCBcInV0aWxpdGllcy9hbGlnbm1lbnRzXCI7XHJcblxyXG4vKiBIZWFkZXIgTG9nbyAmIE5hdlxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuQGltcG9ydCBcImxheW91dHMvaGVhZGVyXCI7XHJcblxyXG4vKiBGb290ZXJcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbkBpbXBvcnQgXCJsYXlvdXRzL2Zvb3RlclwiO1xyXG5cclxuLyogSGVyb1xyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuQGltcG9ydCBcImNvbXBvbmVudHMvYmxvY2tzL2hlcm9cIjtcclxuXHJcbi8qIFNlcnZpY2VzXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy9ibG9ja3Mvc2VydmljZXNcIjtcclxuXHJcbi8qIEZsZWV0XHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy9ibG9ja3MvZmxlZXRcIjtcclxuXHJcbi8qIFRlc3RpbW9uaWFsc1xyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuQGltcG9ydCBcImNvbXBvbmVudHMvYmxvY2tzL3Rlc3RpbW9uaWFsc1wiO1xyXG5cclxuLyogQ1RBXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy9ibG9ja3MvY3RhXCI7XHJcblxyXG4vKiBDb250ZW50IFdpdGggSW1hZ2VcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2Jsb2Nrcy9jb250ZW50X3dpdGhfaW1hZ2VcIjtcclxuXHJcbi8qIEZlYXR1cmVkIFByb2R1Y3RzXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy9ibG9ja3MvZmVhdHVyZWRfcHJvZHVjdHNcIjtcclxuXHJcbi8qIENUQSBCYW5uZXJcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2Jsb2Nrcy9jdGFfYmFubmVyXCI7XHJcblxyXG4vKiBXb3Jrc2hvcHNcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2Jsb2Nrcy93b3Jrc2hvcHNcIjtcclxuXHJcbi8qIE1pc3Npb25zXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy9ibG9ja3MvbWlzc2lvbnNcIjtcclxuXHJcbi8qIFRlYW1cclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2Jsb2Nrcy90ZWFtXCI7XHJcblxyXG4vKiBQcm9jZXNzXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy9ibG9ja3MvcHJvY2Vzc1wiO1xyXG5cclxuLyogUHJvZHVjdHNcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2Jsb2Nrcy9wcm9kdWN0c1wiO1xyXG5cclxuLyogU3RlcHMgYW5kIEhpZ2hsaWdodHNcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2Jsb2Nrcy9zdGVwc19hbmRfaGlnaGxpZ2h0c1wiO1xyXG5cclxuLyogQ29udGFjdCBJbmZvXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy9ibG9ja3MvY29udGFjdF9pbmZvXCI7XHJcbiIsIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cclxuXHJcbi8qIERvY3VtZW50XHJcblx0ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cclxuICovXHJcblxyXG5odG1sIHtcclxuICBsaW5lLWhlaWdodDogMS4xNTtcclxuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XHJcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XHJcbn1cclxuXHJcbi8qIFNlY3Rpb25zXHJcblx0ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbmJvZHkge1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxyXG4gKi9cclxuXHJcbm1haW4ge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4vKiBSZXNldCAmIEJhc2UgU3R5bGVzICovXHJcbjpyb290IHtcclxuICAtLXByaW1hcnktY29sb3I6ICM3YjM4MzI7XHJcbiAgLS1wcmltYXJ5LWFjY2VudDogI2M3NmI1MDtcclxuICAtLXNlY29uZGFyeS1jb2xvcjogI2Y4NDgzMDtcclxuICAtLXRleHQtY29sb3I6ICMzMzM7XHJcbiAgLS1saWdodC1iZzogI2ZkZjhmNTtcclxuICAtLWRhcmstYmc6ICNmZWVlZWM7XHJcbiAgLS1oZWFkaW5nLWZvbnQ6IFwiTW9udHNlcnJhdFwiLCBzYW5zLXNlcmlmO1xyXG4gIC0tdGV4dC1mb250OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XHJcbn1cclxuXHJcbioge1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbn1cclxuXHJcbmh0bWwge1xyXG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xyXG59XHJcblxyXG5ib2R5IHtcclxuICBmb250LWZhbWlseTogdmFyKC0tdGV4dC1mb250KTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodC1iZyk7XHJcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xyXG59XHJcblxyXG5oMSxcclxuaDIsXHJcbmgzLFxyXG5oNCxcclxuaDUsXHJcbmg2IHtcclxuICBmb250LWZhbWlseTogdmFyKC0taGVhZGluZy1mb250KTtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG59XHJcblxyXG5hIHtcclxuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XHJcbn1cclxuXHJcbi5hZnJpLWJ0biB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcGFkZGluZzogOHB4IDE2cHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4uYWZyaS1idG4tcHJpbWFyeSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1hY2NlbnQpO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5hZnJpLWJ0bi1zZWNvbmRhcnkge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcik7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgYm9yZGVyOiBub25lO1xyXG59XHJcblxyXG4uYWZyaS1idG4tb3V0bGluZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBjb2xvcjogdmFyKC0tcHJpbWFyeS1hY2NlbnQpICFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcHJpbWFyeS1hY2NlbnQpO1xyXG59XHJcblxyXG4uYWZyaS1idG4tb3V0bGluZTpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1hY2NlbnQpO1xyXG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5zZWN0aW9uLXRpdGxlIHtcclxuICBmb250LXNpemU6IGNsYW1wKDEuNXJlbSwgNHZ3LCAyLjI1cmVtKTtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGxpbmUtaGVpZ2h0OiAyLjVyZW07XHJcbiAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xyXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbn1cclxuXHJcbi5jb250YWluZXIge1xyXG4gIG1heC13aWR0aDogNzAlO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIHBhZGRpbmc6IDAgMS4yNXJlbTtcclxufVxyXG5cclxuLmxlYXJuLW1vcmUge1xyXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcclxuICBmb250LXNpemU6IDAsIDg1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbn1cclxuXHJcbi5sZWFybi1tb3JlOmhvdmVyIHtcclxuICBjb2xvcjogdmFyKC0tcHJpbWFyeS1hY2NlbnQpO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG59XHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMTYxcHgpIGFuZCAobWF4LXdpZHRoOiAxNDA3cHgpIHtcclxuICAuY29udGFpbmVyIHtcclxuICAgIG1heC13aWR0aDogODAlO1xyXG4gIH1cclxufVxyXG4iLCIvKiBJbmhlcml0IGJveC1zaXppbmcgdG8gbW9yZSBlYXNpbHkgY2hhbmdlIGl0J3MgdmFsdWUgb24gYSBjb21wb25lbnQgbGV2ZWwuXHJcbkBsaW5rIGh0dHA6Ly9jc3MtdHJpY2tzLmNvbS9pbmhlcml0aW5nLWJveC1zaXppbmctcHJvYmFibHktc2xpZ2h0bHktYmV0dGVyLWJlc3QtcHJhY3RpY2UvICovXHJcbiosXHJcbio6OmJlZm9yZSxcclxuKjo6YWZ0ZXIge1xyXG5cdGJveC1zaXppbmc6IGluaGVyaXQ7XHJcbn1cclxuXHJcbmh0bWwge1xyXG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbn1cclxuIiwiLyogVHlwb2dyYXBoeVxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuQGltcG9ydCBcInR5cG9ncmFwaHkvdHlwb2dyYXBoeVwiO1xyXG5cclxuLyogRWxlbWVudHNcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbkBpbXBvcnQgXCJlbGVtZW50cy9ib2R5XCI7XHJcbkBpbXBvcnQgXCJlbGVtZW50cy9oclwiO1xyXG5AaW1wb3J0IFwiZWxlbWVudHMvbGlzdHNcIjtcclxuQGltcG9ydCBcImVsZW1lbnRzL21lZGlhXCI7XHJcbkBpbXBvcnQgXCJlbGVtZW50cy90YWJsZXNcIjtcclxuXHJcbi8qIExpbmtzXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5AaW1wb3J0IFwiZWxlbWVudHMvbGlua3NcIjtcclxuXHJcbi8qIEZvcm1zXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5AaW1wb3J0IFwiZWxlbWVudHMvYnV0dG9uc1wiO1xyXG5AaW1wb3J0IFwiZWxlbWVudHMvZmllbGRzXCI7XHJcbiIsImJvZHksXHJcbmJ1dHRvbixcclxuaW5wdXQsXHJcbnNlbGVjdCxcclxub3B0Z3JvdXAsXHJcbnRleHRhcmVhIHtcclxuICBjb2xvcjogJGNvbG9yX190ZXh0LW1haW47XHJcbiAgZm9udC1mYW1pbHk6ICRmb250X19tYWluO1xyXG4gIGZvbnQtc2l6ZTogMXJlbTtcclxuICBsaW5lLWhlaWdodDogJGZvbnRfX2xpbmUtaGVpZ2h0LWJvZHk7XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJoZWFkaW5nc1wiO1xyXG5AaW1wb3J0IFwiY29weVwiO1xyXG4iLCIkY29sb3JfX2JhY2tncm91bmQtYm9keTogI2ZmZjtcclxuJGNvbG9yX19iYWNrZ3JvdW5kLXNjcmVlbjogI2YxZjFmMTtcclxuJGNvbG9yX19iYWNrZ3JvdW5kLWhyOiAjY2NjO1xyXG4kY29sb3JfX2JhY2tncm91bmQtYnV0dG9uOiAjZTZlNmU2O1xyXG4kY29sb3JfX2JhY2tncm91bmQtcHJlOiAjZWVlO1xyXG4kY29sb3JfX2JhY2tncm91bmQtaW5zOiAjZmZmOWMwO1xyXG5cclxuJGNvbG9yX190ZXh0LXNjcmVlbjogIzIxNzU5YjtcclxuJGNvbG9yX190ZXh0LWlucHV0OiAjNjY2O1xyXG4kY29sb3JfX3RleHQtaW5wdXQtZm9jdXM6ICMxMTE7XHJcbiRjb2xvcl9fbGluazogIzQxNjllMTsgLy9yb3lhbGJsdWVcclxuJGNvbG9yX19saW5rLXZpc2l0ZWQ6ICM4MDAwODA7IC8vcHVycGxlXHJcbiRjb2xvcl9fbGluay1ob3ZlcjogIzE5MTk3MDsgLy9taWRuaWdodGJsdWVcclxuJGNvbG9yX190ZXh0LW1haW46ICM0MDQwNDA7XHJcblxyXG4kY29sb3JfX2JvcmRlci1idXR0b246ICNjY2MgI2NjYyAjYmJiO1xyXG4kY29sb3JfX2JvcmRlci1idXR0b24taG92ZXI6ICNjY2MgI2JiYiAjYWFhO1xyXG4kY29sb3JfX2JvcmRlci1idXR0b24tZm9jdXM6ICNhYWEgI2JiYiAjYmJiO1xyXG4kY29sb3JfX2JvcmRlci1pbnB1dDogI2NjYztcclxuJGNvbG9yX19ib3JkZXItYWJicjogIzY2NjtcclxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgdmFsdWUta2V5d29yZC1jYXNlXHJcbiRmb250X19tYWluOiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBPeHlnZW4tU2FucywgVWJ1bnR1LCBDYW50YXJlbGwsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcclxuLy8gc3R5bGVsaW50LWVuYWJsZSB2YWx1ZS1rZXl3b3JkLWNhc2VcclxuJGZvbnRfX2NvZGU6IG1vbmFjbywgY29uc29sYXMsIFwiQW5kYWxlIE1vbm9cIiwgXCJEZWphVnUgU2FucyBNb25vXCIsIG1vbm9zcGFjZTtcclxuJGZvbnRfX3ByZTogXCJDb3VyaWVyIDEwIFBpdGNoXCIsIGNvdXJpZXIsIG1vbm9zcGFjZTtcclxuJGZvbnRfX2xpbmUtaGVpZ2h0LWJvZHk6IDEuNTtcclxuJGZvbnRfX2xpbmUtaGVpZ2h0LXByZTogMS42O1xyXG4iLCJoMSxcclxuaDIsXHJcbmgzLFxyXG5oNCxcclxuaDUsXHJcbmg2IHtcclxuXHRjbGVhcjogYm90aDtcclxufVxyXG4iLCJwIHtcclxuXHRtYXJnaW4tYm90dG9tOiAxLjVlbTtcclxufVxyXG5cclxuZGZuLFxyXG5jaXRlLFxyXG5lbSxcclxuaSB7XHJcblx0Zm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG5ibG9ja3F1b3RlIHtcclxuXHRtYXJnaW46IDAgMS41ZW07XHJcbn1cclxuXHJcbmFkZHJlc3Mge1xyXG5cdG1hcmdpbjogMCAwIDEuNWVtO1xyXG59XHJcblxyXG5wcmUge1xyXG5cdGJhY2tncm91bmQ6ICRjb2xvcl9fYmFja2dyb3VuZC1wcmU7XHJcblx0Zm9udC1mYW1pbHk6ICRmb250X19wcmU7XHJcblx0bGluZS1oZWlnaHQ6ICRmb250X19saW5lLWhlaWdodC1wcmU7XHJcblx0bWFyZ2luLWJvdHRvbTogMS42ZW07XHJcblx0bWF4LXdpZHRoOiAxMDAlO1xyXG5cdG92ZXJmbG93OiBhdXRvO1xyXG5cdHBhZGRpbmc6IDEuNmVtO1xyXG59XHJcblxyXG5jb2RlLFxyXG5rYmQsXHJcbnR0LFxyXG52YXIge1xyXG5cdGZvbnQtZmFtaWx5OiAkZm9udF9fY29kZTtcclxufVxyXG5cclxuYWJicixcclxuYWNyb255bSB7XHJcblx0Ym9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkY29sb3JfX2JvcmRlci1hYmJyO1xyXG5cdGN1cnNvcjogaGVscDtcclxufVxyXG5cclxubWFyayxcclxuaW5zIHtcclxuXHRiYWNrZ3JvdW5kOiAkY29sb3JfX2JhY2tncm91bmQtaW5zO1xyXG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxufVxyXG5cclxuYmlnIHtcclxuXHRmb250LXNpemU6IDEyNSU7XHJcbn1cclxuIiwiYm9keSB7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yX19iYWNrZ3JvdW5kLWJvZHk7IC8vIEZhbGxiYWNrIGZvciB3aGVuIHRoZXJlIGlzIG5vIGN1c3RvbSBiYWNrZ3JvdW5kIGNvbG9yIGRlZmluZWQuXHJcbn1cclxuIiwiaHIge1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9fYmFja2dyb3VuZC1ocjtcclxuXHRib3JkZXI6IDA7XHJcblx0aGVpZ2h0OiAxcHg7XHJcblx0bWFyZ2luLWJvdHRvbTogMS41ZW07XHJcbn1cclxuIiwiLy8gdWwsXHJcbi8vIG9sIHtcclxuLy8gXHRtYXJnaW46IDAgMCAxLjVlbSAzZW07XHJcbi8vIH1cclxuXHJcbnVsIHtcclxuICBsaXN0LXN0eWxlOiBkaXNjO1xyXG59XHJcblxyXG5vbCB7XHJcbiAgbGlzdC1zdHlsZTogZGVjaW1hbDtcclxufVxyXG5cclxubGkgPiB1bCxcclxubGkgPiBvbCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxuICBtYXJnaW4tbGVmdDogMS41ZW07XHJcbn1cclxuXHJcbmR0IHtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG59XHJcblxyXG5kZCB7XHJcbiAgbWFyZ2luOiAwIDEuNWVtIDEuNWVtO1xyXG59XHJcbiIsIi8qIE1ha2Ugc3VyZSBlbWJlZHMgYW5kIGlmcmFtZXMgZml0IHRoZWlyIGNvbnRhaW5lcnMuICovXHJcbmVtYmVkLFxyXG5pZnJhbWUsXHJcbm9iamVjdCB7XHJcblx0bWF4LXdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG5pbWcge1xyXG5cdGhlaWdodDogYXV0bzsgLy8gTWFrZSBzdXJlIGltYWdlcyBhcmUgc2NhbGVkIGNvcnJlY3RseS5cclxuXHRtYXgtd2lkdGg6IDEwMCU7IC8vIEFkaGVyZSB0byBjb250YWluZXIgd2lkdGguXHJcbn1cclxuXHJcbmZpZ3VyZSB7XHJcblx0bWFyZ2luOiAxZW0gMDsgLy8gRXh0cmEgd2lkZSBpbWFnZXMgd2l0aGluIGZpZ3VyZSB0YWdzIGRvbid0IG92ZXJmbG93IHRoZSBjb250ZW50IGFyZWEuXHJcbn1cclxuIiwidGFibGUge1xyXG5cdG1hcmdpbjogMCAwIDEuNWVtO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG59XHJcbiIsImEge1xyXG5cdGNvbG9yOiAkY29sb3JfX2xpbms7XHJcblxyXG5cdCY6dmlzaXRlZCB7XHJcblx0XHRjb2xvcjogJGNvbG9yX19saW5rLXZpc2l0ZWQ7XHJcblx0fVxyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0Y29sb3I6ICRjb2xvcl9fbGluay1ob3ZlcjtcclxuXHR9XHJcblxyXG5cdCY6Zm9jdXMge1xyXG5cdFx0b3V0bGluZTogdGhpbiBkb3R0ZWQ7XHJcblx0fVxyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdG91dGxpbmU6IDA7XHJcblx0fVxyXG59XHJcbiIsImJ1dHRvbixcclxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcclxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxyXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcclxuXHRib3JkZXI6IDFweCBzb2xpZDtcclxuXHRib3JkZXItY29sb3I6ICRjb2xvcl9fYm9yZGVyLWJ1dHRvbjtcclxuXHRib3JkZXItcmFkaXVzOiAzcHg7XHJcblx0YmFja2dyb3VuZDogJGNvbG9yX19iYWNrZ3JvdW5kLWJ1dHRvbjtcclxuXHRjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xyXG5cdGxpbmUtaGVpZ2h0OiAxO1xyXG5cdHBhZGRpbmc6IDAuNmVtIDFlbSAwLjRlbTtcclxuXHJcblx0Jjpob3ZlciB7XHJcblx0XHRib3JkZXItY29sb3I6ICRjb2xvcl9fYm9yZGVyLWJ1dHRvbi1ob3ZlcjtcclxuXHR9XHJcblxyXG5cdCY6YWN0aXZlLFxyXG5cdCY6Zm9jdXMge1xyXG5cdFx0Ym9yZGVyLWNvbG9yOiAkY29sb3JfX2JvcmRlci1idXR0b24tZm9jdXM7XHJcblx0fVxyXG59XHJcbiIsImlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxyXG5pbnB1dFt0eXBlPVwiZW1haWxcIl0sXHJcbmlucHV0W3R5cGU9XCJ1cmxcIl0sXHJcbmlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcclxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcclxuaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcclxuaW5wdXRbdHlwZT1cInRlbFwiXSxcclxuaW5wdXRbdHlwZT1cInJhbmdlXCJdLFxyXG5pbnB1dFt0eXBlPVwiZGF0ZVwiXSxcclxuaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxyXG5pbnB1dFt0eXBlPVwid2Vla1wiXSxcclxuaW5wdXRbdHlwZT1cInRpbWVcIl0sXHJcbmlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcclxuaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxyXG5pbnB1dFt0eXBlPVwiY29sb3JcIl0sXHJcbnRleHRhcmVhIHtcclxuXHRjb2xvcjogJGNvbG9yX190ZXh0LWlucHV0O1xyXG5cdGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9fYm9yZGVyLWlucHV0O1xyXG5cdGJvcmRlci1yYWRpdXM6IDNweDtcclxuXHRwYWRkaW5nOiAzcHg7XHJcblxyXG5cdCY6Zm9jdXMge1xyXG5cdFx0Y29sb3I6ICRjb2xvcl9fdGV4dC1pbnB1dC1mb2N1cztcclxuXHR9XHJcbn1cclxuXHJcbnNlbGVjdCB7XHJcblx0Ym9yZGVyOiAxcHggc29saWQgJGNvbG9yX19ib3JkZXItaW5wdXQ7XHJcbn1cclxuXHJcbnRleHRhcmVhIHtcclxuXHR3aWR0aDogMTAwJTtcclxufVxyXG4iLCIvKiBOYXZpZ2F0aW9uXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5AaW1wb3J0IFwibmF2aWdhdGlvbi9uYXZpZ2F0aW9uXCI7XHJcblxyXG4vKiBQb3N0cyBhbmQgcGFnZXNcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbkBpbXBvcnQgXCJjb250ZW50L3Bvc3RzLWFuZC1wYWdlc1wiO1xyXG5cclxuLyogQ29tbWVudHNcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbkBpbXBvcnQgXCJjb21tZW50cy9jb21tZW50c1wiO1xyXG5cclxuLyogV2lkZ2V0c1xyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuQGltcG9ydCBcIndpZGdldHMvd2lkZ2V0c1wiO1xyXG5cclxuLyogTWVkaWFcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbkBpbXBvcnQgXCJtZWRpYS9tZWRpYVwiO1xyXG5cclxuLyogQ2FwdGlvbnNcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbkBpbXBvcnQgXCJtZWRpYS9jYXB0aW9uc1wiO1xyXG5cclxuLyogR2FsbGVyaWVzXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5AaW1wb3J0IFwibWVkaWEvZ2FsbGVyaWVzXCI7XHJcbiIsIi5tYWluLW5hdmlnYXRpb24ge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHdpZHRoOiBmaXQtY29udGVudDtcclxuXHJcbiAgdWwge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcblxyXG4gICAgdWwge1xyXG4gICAgICBib3gtc2hhZG93OiAwIDNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDEwMCU7XHJcbiAgICAgIGxlZnQ6IC05OTllbTtcclxuICAgICAgei1pbmRleDogOTk5OTk7XHJcblxyXG4gICAgICB1bCB7XHJcbiAgICAgICAgbGVmdDogLTk5OWVtO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGkge1xyXG4gICAgICAgICY6aG92ZXIgPiB1bCxcclxuICAgICAgICAmLmZvY3VzID4gdWwge1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgYSB7XHJcbiAgICAgICAgd2lkdGg6IDIwMHB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICA6aG92ZXIgPiBhLFxyXG4gICAgICAuZm9jdXMgPiBhIHtcclxuICAgICAgfVxyXG5cclxuICAgICAgYTpob3ZlcixcclxuICAgICAgYS5mb2N1cyB7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsaTpob3ZlciA+IHVsLFxyXG4gICAgbGkuZm9jdXMgPiB1bCB7XHJcbiAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsaSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgJjpob3ZlciA+IGEsXHJcbiAgICAmLmZvY3VzID4gYSB7XHJcbiAgICB9XHJcblxyXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB9XHJcblxyXG4gIC5jdXJyZW50X3BhZ2VfaXRlbSA+IGEsXHJcbiAgLmN1cnJlbnQtbWVudS1pdGVtID4gYSxcclxuICAuY3VycmVudF9wYWdlX2FuY2VzdG9yID4gYSxcclxuICAuY3VycmVudC1tZW51LWFuY2VzdG9yID4gYSB7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBTbWFsbCBtZW51LiAqL1xyXG4ubWVudS10b2dnbGUsXHJcbi5tYWluLW5hdmlnYXRpb24udG9nZ2xlZCB1bCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM3LjVlbSkge1xyXG4gIC5tZW51LXRvZ2dsZSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgLm1haW4tbmF2aWdhdGlvbiB1bCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH1cclxufVxyXG5cclxuLmNvbW1lbnQtbmF2aWdhdGlvbixcclxuLnBvc3RzLW5hdmlnYXRpb24sXHJcbi5wb3N0LW5hdmlnYXRpb24ge1xyXG4gIC5zaXRlLW1haW4gJiB7XHJcbiAgICBtYXJnaW46IDAgMCAxLjVlbTtcclxuICB9XHJcblxyXG4gIC5uYXYtbGlua3Mge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICB9XHJcblxyXG4gIC5uYXYtcHJldmlvdXMge1xyXG4gICAgZmxleDogMSAwIDUwJTtcclxuICB9XHJcblxyXG4gIC5uYXYtbmV4dCB7XHJcbiAgICB0ZXh0LWFsaWduOiBlbmQ7XHJcbiAgICBmbGV4OiAxIDAgNTAlO1xyXG4gIH1cclxufVxyXG4iLCIuc3RpY2t5IHtcclxuXHRkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLnBvc3QsXHJcbi5wYWdlIHtcclxuXHRtYXJnaW46IDAgMCAxLjVlbTtcclxufVxyXG5cclxuLnVwZGF0ZWQ6bm90KC5wdWJsaXNoZWQpIHtcclxuXHRkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4ucGFnZS1jb250ZW50LFxyXG4uZW50cnktY29udGVudCxcclxuLmVudHJ5LXN1bW1hcnkge1xyXG5cdG1hcmdpbjogMS41ZW0gMCAwO1xyXG59XHJcblxyXG4ucGFnZS1saW5rcyB7XHJcblx0Y2xlYXI6IGJvdGg7XHJcblx0bWFyZ2luOiAwIDAgMS41ZW07XHJcbn1cclxuIiwiLmNvbW1lbnQtY29udGVudCBhIHtcclxuXHR3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbn1cclxuXHJcbi5ieXBvc3RhdXRob3Ige1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcbiIsIi53aWRnZXQge1xyXG5cdG1hcmdpbjogMCAwIDEuNWVtO1xyXG5cclxuXHQvLyBNYWtlIHN1cmUgc2VsZWN0IGVsZW1lbnRzIGZpdCBpbiB3aWRnZXRzLlxyXG5cdHNlbGVjdCB7XHJcblx0XHRtYXgtd2lkdGg6IDEwMCU7XHJcblx0fVxyXG59XHJcbiIsIi5wYWdlLWNvbnRlbnQgLndwLXNtaWxleSxcclxuLmVudHJ5LWNvbnRlbnQgLndwLXNtaWxleSxcclxuLmNvbW1lbnQtY29udGVudCAud3Atc21pbGV5IHtcclxuXHRib3JkZXI6IG5vbmU7XHJcblx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRtYXJnaW4tdG9wOiAwO1xyXG5cdHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi8qIE1ha2Ugc3VyZSBsb2dvIGxpbmsgd3JhcHMgYXJvdW5kIGxvZ28gaW1hZ2UuICovXHJcbi5jdXN0b20tbG9nby1saW5rIHtcclxuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuIiwiLndwLWNhcHRpb24ge1xyXG5cdG1hcmdpbi1ib3R0b206IDEuNWVtO1xyXG5cdG1heC13aWR0aDogMTAwJTtcclxuXHJcblx0aW1nW2NsYXNzKj1cIndwLWltYWdlLVwiXSB7XHJcblxyXG5cdFx0QGluY2x1ZGUgY2VudGVyLWJsb2NrO1xyXG5cdH1cclxuXHJcblx0LndwLWNhcHRpb24tdGV4dCB7XHJcblx0XHRtYXJnaW46IDAuODA3NWVtIDA7XHJcblx0fVxyXG59XHJcblxyXG4ud3AtY2FwdGlvbi10ZXh0IHtcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuIiwiLy8gQ2VudGVyIGJsb2NrXHJcbkBtaXhpbiBjZW50ZXItYmxvY2sge1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG5cdG1hcmdpbi1yaWdodDogYXV0bztcclxufVxyXG5cclxuLy8gQ29sdW1uIHdpZHRoIHdpdGggbWFyZ2luXHJcbkBtaXhpbiBjb2x1bW4td2lkdGgoJG51bWJlckNvbHVtbnM6IDMpIHtcclxuXHR3aWR0aDogbWFwLWdldCgkY29sdW1ucywgJG51bWJlckNvbHVtbnMpIC0gKCAoICRjb2x1bW5zX19tYXJnaW4gKiAoICRudW1iZXJDb2x1bW5zIC0gMSApICkgLyAkbnVtYmVyQ29sdW1ucyApO1xyXG59XHJcbiIsIi5nYWxsZXJ5IHtcclxuXHRtYXJnaW4tYm90dG9tOiAxLjVlbTtcclxuXHRkaXNwbGF5OiBncmlkO1xyXG5cdGdyaWQtZ2FwOiAxLjVlbTtcclxufVxyXG5cclxuLmdhbGxlcnktaXRlbSB7XHJcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHR3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLy8gTG9vcHMgdG8gZW51bWVyYXRlIHRoZSBjbGFzc2VzIGZvciBnYWxsZXJ5IGNvbHVtbnMuXHJcbkBmb3IgJGkgZnJvbSAyIHRocm91Z2ggOSB7XHJcblxyXG5cdC5nYWxsZXJ5LWNvbHVtbnMtI3skaX0ge1xyXG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoJGksIDFmcik7XHJcblx0fVxyXG59XHJcblxyXG4uZ2FsbGVyeS1jYXB0aW9uIHtcclxuXHRkaXNwbGF5OiBibG9jaztcclxufVxyXG4iLCIvKiBIaWRlIHRoZSBQb3N0cyBOYXZpZ2F0aW9uIGFuZCB0aGUgRm9vdGVyIHdoZW4gSW5maW5pdGUgU2Nyb2xsIGlzIGluIHVzZS4gKi9cclxuLmluZmluaXRlLXNjcm9sbCAucG9zdHMtbmF2aWdhdGlvbixcclxuLmluZmluaXRlLXNjcm9sbC5uZXZlcmVuZGluZyAuc2l0ZS1mb290ZXIge1xyXG5cdGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi8qIFJlLWRpc3BsYXkgdGhlIFRoZW1lIEZvb3RlciB3aGVuIEluZmluaXRlIFNjcm9sbCBoYXMgcmVhY2hlZCBpdHMgZW5kLiAqL1xyXG4uaW5maW5pdHktZW5kLm5ldmVyZW5kaW5nIC5zaXRlLWZvb3RlciB7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcbn1cclxuIiwiLyogVGV4dCBtZWFudCBvbmx5IGZvciBzY3JlZW4gcmVhZGVycy4gKi9cclxuLnNjcmVlbi1yZWFkZXItdGV4dCB7XHJcblx0Ym9yZGVyOiAwO1xyXG5cdGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcclxuXHRjbGlwLXBhdGg6IGluc2V0KDUwJSk7XHJcblx0aGVpZ2h0OiAxcHg7XHJcblx0bWFyZ2luOiAtMXB4O1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblx0cGFkZGluZzogMDtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcclxuXHR3aWR0aDogMXB4O1xyXG5cdHdvcmQtd3JhcDogbm9ybWFsICFpbXBvcnRhbnQ7IC8vIE1hbnkgc2NyZWVuIHJlYWRlciBhbmQgYnJvd3NlciBjb21iaW5hdGlvbnMgYW5ub3VuY2UgYnJva2VuIHdvcmRzIGFzIHRoZXkgd291bGQgYXBwZWFyIHZpc3VhbGx5LlxyXG5cclxuXHQmOmZvY3VzIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9fYmFja2dyb3VuZC1zY3JlZW47XHJcblx0XHRib3JkZXItcmFkaXVzOiAzcHg7XHJcblx0XHRib3gtc2hhZG93OiAwIDAgMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNik7XHJcblx0XHRjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XHJcblx0XHRjbGlwLXBhdGg6IG5vbmU7XHJcblx0XHRjb2xvcjogJGNvbG9yX190ZXh0LXNjcmVlbjtcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0Zm9udC1zaXplOiAwLjg3NXJlbTtcclxuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0XHRoZWlnaHQ6IGF1dG87XHJcblx0XHRsZWZ0OiA1cHg7XHJcblx0XHRsaW5lLWhlaWdodDogbm9ybWFsO1xyXG5cdFx0cGFkZGluZzogMTVweCAyM3B4IDE0cHg7XHJcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblx0XHR0b3A6IDVweDtcclxuXHRcdHdpZHRoOiBhdXRvO1xyXG5cdFx0ei1pbmRleDogMTAwMDAwOyAvLyBBYm92ZSBXUCB0b29sYmFyLlxyXG5cdH1cclxufVxyXG5cclxuLyogRG8gbm90IHNob3cgdGhlIG91dGxpbmUgb24gdGhlIHNraXAgbGluayB0YXJnZXQuICovXHJcbiNwcmltYXJ5W3RhYmluZGV4PVwiLTFcIl06Zm9jdXMge1xyXG5cdG91dGxpbmU6IDA7XHJcbn1cclxuIiwiLmFsaWdubGVmdCB7XHJcblxyXG5cdC8qcnRsOmlnbm9yZSovXHJcblx0ZmxvYXQ6IGxlZnQ7XHJcblxyXG5cdC8qcnRsOmlnbm9yZSovXHJcblx0bWFyZ2luLXJpZ2h0OiAxLjVlbTtcclxuXHRtYXJnaW4tYm90dG9tOiAxLjVlbTtcclxufVxyXG5cclxuLmFsaWducmlnaHQge1xyXG5cclxuXHQvKnJ0bDppZ25vcmUqL1xyXG5cdGZsb2F0OiByaWdodDtcclxuXHJcblx0LypydGw6aWdub3JlKi9cclxuXHRtYXJnaW4tbGVmdDogMS41ZW07XHJcblx0bWFyZ2luLWJvdHRvbTogMS41ZW07XHJcbn1cclxuXHJcbi5hbGlnbmNlbnRlciB7XHJcblx0Y2xlYXI6IGJvdGg7XHJcblxyXG5cdEBpbmNsdWRlIGNlbnRlci1ibG9jaztcclxuXHJcblx0bWFyZ2luLWJvdHRvbTogMS41ZW07XHJcbn1cclxuIiwiLy8gaGVhZGVyIHtcclxuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuLy8gICBwYWRkaW5nOiAxcmVtO1xyXG4vLyAgIHBvc2l0aW9uOiBzdGlja3k7XHJcbi8vICAgdG9wOiAwO1xyXG4vLyAgIHotaW5kZXg6IDEwMDtcclxuLy8gICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RlZGVkZTtcclxuLy8gfVxyXG5cclxuLy8gLm5hdi1jb250YWluZXIge1xyXG4vLyAgIGRpc3BsYXk6IGZsZXg7XHJcbi8vICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4vLyAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbi8vIH1cclxuXHJcbi8vIC5sb2dvIHtcclxuLy8gICBmb250LXdlaWdodDogNTAwO1xyXG4vLyAgIGRpc3BsYXk6IGZsZXg7XHJcbi8vICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuLy8gfVxyXG5cclxuLmxvZ28gYSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XHJcbiAgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLCBzYW5zLXNlcmlmO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbi5sb2dvLW1hcmsge1xyXG4gIG1hcmdpbi1yaWdodDogMTBweDtcclxuICB3aWR0aDogMzhweDtcclxuICBoZWlnaHQ6IDM4cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XHJcbiAgbWFzazogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxMDAgMTAwJyUzRSUzQ3BhdGggZD0nTTUwLDUgQzI1LDUgNSwyNSA1LDUwIEM1LDc1IDI1LDk1IDUwLDk1IEM3NSw5NSA5NSw3NSA5NSw1MCBDOTUsMjUgNzUsNSA1MCw1IFogTTUwLDg1IEMzMCw4NSAxNSw3MCAxNSw1MCBDMTUsMzAgMzAsMTUgNTAsMTUgQzcwLDE1IDg1LDMwIDg1LDUwIEM4NSw3MCA3MCw4NSA1MCw4NSBaIE01MCwyNSBDMzUsMjUgMjUsMzUgMjUsNTAgQzI1LDY1IDM1LDc1IDUwLDc1IEM2NSw3NSA3NSw2NSA3NSw1MCBDNzUsMzUgNjUsMjUgNTAsMjUgWiBNNTAsNjUgQzQwLDY1IDM1LDYwIDM1LDUwIEMzNSw0MCA0MCwzNSA1MCwzNSBDNjAsMzUgNjUsNDAgNjUsNTAgQzY1LDYwIDYwLDY1IDUwLDY1IFonLyUzRSUzQy9zdmclM0VcIilcclxuICAgIGNlbnRlci9jb250YWluIG5vLXJlcGVhdDtcclxuICAtd2Via2l0LW1hc2s6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTAwIDEwMCclM0UlM0NwYXRoIGQ9J001MCw1IEMyNSw1IDUsMjUgNSw1MCBDNSw3NSAyNSw5NSA1MCw5NSBDNzUsOTUgOTUsNzUgOTUsNTAgQzk1LDI1IDc1LDUgNTAsNSBaIE01MCw4NSBDMzAsODUgMTUsNzAgMTUsNTAgQzE1LDMwIDMwLDE1IDUwLDE1IEM3MCwxNSA4NSwzMCA4NSw1MCBDODUsNzAgNzAsODUgNTAsODUgWiBNNTAsMjUgQzM1LDI1IDI1LDM1IDI1LDUwIEMyNSw2NSAzNSw3NSA1MCw3NSBDNjUsNzUgNzUsNjUgNzUsNTAgQzc1LDM1IDY1LDI1IDUwLDI1IFogTTUwLDY1IEM0MCw2NSAzNSw2MCAzNSw1MCBDMzUsNDAgNDAsMzUgNTAsMzUgQzYwLDM1IDY1LDQwIDY1LDUwIEM2NSw2MCA2MCw2NSA1MCw2NSBaJy8lM0UlM0Mvc3ZnJTNFXCIpXHJcbiAgICBjZW50ZXIvY29udGFpbiBuby1yZXBlYXQ7XHJcbn1cclxuXHJcbi8vIC5uYXYtY29udGFpbmVyIGEge1xyXG4vLyB9XHJcblxyXG4vLyAubmF2LWNvbnRhaW5lciBhLmljb24ge1xyXG4vLyAgIGRpc3BsYXk6IG5vbmU7XHJcbi8vIH1cclxuXHJcbi8vIC5tb2JpbGUtbmF2aWdhdGlvbiB7XHJcbi8vICAgZGlzcGxheTogbm9uZTtcclxuLy8gfVxyXG5cclxuLy8gbmF2IHVsIHtcclxuLy8gICBkaXNwbGF5OiBmbGV4O1xyXG4vLyAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbi8vICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuLy8gfVxyXG5cclxuLy8gbmF2IHVsIGxpIHtcclxuLy8gICBtYXJnaW4tbGVmdDogMnJlbTtcclxuLy8gfVxyXG5cclxubmF2IHVsIGxpIGEge1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzO1xyXG59XHJcblxyXG5uYXYgdWwgbGkgYTp2aXNpdGVkIHtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xyXG59XHJcblxyXG5uYXYgdWwgbGkgYTpob3ZlciB7XHJcbiAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xyXG59XHJcblxyXG4vLyBAbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcclxuLy8gICAubWFpbi1uYXZpZ2F0aW9uIHVsIHtcclxuLy8gICAgIGRpc3BsYXk6IG5vbmU7XHJcbi8vICAgfVxyXG5cclxuLy8gICAubmF2LWNvbnRhaW5lciBhLmljb24ge1xyXG4vLyAgICAgZGlzcGxheTogYmxvY2s7XHJcbi8vICAgICBmb250LXNpemU6IDEuMnJlbTtcclxuLy8gICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcclxuLy8gICB9XHJcbi8vIH1cclxuXHJcbi8qKlxyXG4gKiBBZGQgdGhpcyB0byB5b3VyIHRoZW1lJ3Mgc3R5bGUuY3NzIGZpbGUgb3IgY3JlYXRlIGEgc2VwYXJhdGUgQ1NTIGZpbGUgYW5kIGVucXVldWUgaXRcclxuICovXHJcblxyXG4vKiBIZWFkZXIgYW5kIE5hdmlnYXRpb24gQ29udGFpbmVyICovXHJcbi5zaXRlLWhlYWRlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgei1pbmRleDogOTk5O1xyXG4gIHBhZGRpbmc6IDAuNXJlbSAwO1xyXG59XHJcblxyXG4ubmF2LWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBwYWRkaW5nOiA4cHggMDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi8qIFNpdGUgQnJhbmRpbmcgKi9cclxuLnNpdGUtYnJhbmRpbmcge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLnNpdGUtYnJhbmRpbmcgYSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XHJcbn1cclxuXHJcbi5zaXRlLXRpdGxlIHtcclxuICBtYXJnaW46IDA7XHJcbiAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuLyogTWFpbiBOYXZpZ2F0aW9uIC0gRGVza3RvcCAqL1xyXG4ubWFpbi1uYXZpZ2F0aW9uIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLm1haW4tbmF2aWdhdGlvbiB1bCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4ubWFpbi1uYXZpZ2F0aW9uIGxpIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi5tYWluLW5hdmlnYXRpb24gYSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIHBhZGRpbmc6IDEwcHggMTVweDtcclxuICBjb2xvcjogIzMzMztcclxuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgZm9udC1zaXplOiAxNnB4O1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbn1cclxuXHJcbi5tYWluLW5hdmlnYXRpb24gYTpob3ZlcixcclxuLm1haW4tbmF2aWdhdGlvbiBsaTpob3ZlciA+IGEge1xyXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcclxufVxyXG5cclxuLyogRHJvcGRvd24gTWVudXMgKi9cclxuLm1haW4tbmF2aWdhdGlvbiB1bCB1bCB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAxMDAlO1xyXG4gIGxlZnQ6IDA7XHJcbiAgei1pbmRleDogOTk5OTk7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBtaW4td2lkdGg6IDIwMHB4O1xyXG4gIGJveC1zaGFkb3c6IDAgM3B4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5tYWluLW5hdmlnYXRpb24gdWwgdWwgbGkge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ubWFpbi1uYXZpZ2F0aW9uIHVsIHVsIGEge1xyXG4gIHBhZGRpbmc6IDEycHggMTVweDtcclxuICBmb250LXNpemU6IDE0cHg7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMGYwZjA7XHJcbn1cclxuXHJcbi5tYWluLW5hdmlnYXRpb24gdWwgdWwgYTpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcclxufVxyXG5cclxuLm1haW4tbmF2aWdhdGlvbiB1bCB1bCB1bCB7XHJcbiAgbGVmdDogMTAwJTtcclxuICB0b3A6IDA7XHJcbn1cclxuXHJcbi8qIFNob3cgdGhlIGRyb3Bkb3duIG9uIGhvdmVyICovXHJcbi5tYWluLW5hdmlnYXRpb24gbGkuaG92ZXIgPiB1bCxcclxuLm1haW4tbmF2aWdhdGlvbiBsaTpob3ZlciA+IHVsLFxyXG4ubWFpbi1uYXZpZ2F0aW9uIGxpLmZvY3VzID4gdWwge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4vKiBBcnJvdyBmb3IgaXRlbXMgd2l0aCBjaGlsZHJlbiAqL1xyXG4uZHJvcGRvd24taWNvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweDtcclxuICBmb250LXNpemU6IDEwcHg7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcclxufVxyXG5cclxuLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW46aG92ZXIgPiBhIC5kcm9wZG93bi1pY29uIHtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG59XHJcblxyXG4vKiBNb2JpbGUgTmF2aWdhdGlvbiAqL1xyXG4ubW9iaWxlLW5hdmlnYXRpb24ge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5tZW51LXRvZ2dsZSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgcGFkZGluZzogMTBweDtcclxuICBmb250LXNpemU6IDE2cHg7XHJcbiAgY29sb3I6ICMzMzM7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbi5tZW51LXRvZ2dsZTpmb2N1cyB7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxuLm1lbnUtdG9nZ2xlLWljb24ge1xyXG4gIGZvbnQtc2l6ZTogMjRweDtcclxufVxyXG5cclxuLm1vYmlsZS1tZW51LWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAxMDAlO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBib3gtc2hhZG93OiAwIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICB6LWluZGV4OiA5OTk7XHJcbiAgcGFkZGluZzogMjBweDtcclxufVxyXG5cclxuLm1vYmlsZS1uYXZpZ2F0aW9uLnRvZ2dsZWQgLm1vYmlsZS1tZW51LWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi8qIE1vYmlsZSBOYXZpZ2F0aW9uIFN0eWxpbmcgKi9cclxuLm1vYmlsZS1uYXZpZ2F0aW9uIHVsIHtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4ubW9iaWxlLW5hdmlnYXRpb24gbGkge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLm1vYmlsZS1uYXZpZ2F0aW9uIGEge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBwYWRkaW5nOiAxMnB4IDA7XHJcbiAgY29sb3I6ICMzMzM7XHJcbiAgZm9udC1zaXplOiAxNnB4O1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjBmMGYwO1xyXG59XHJcblxyXG4ubW9iaWxlLW5hdmlnYXRpb24gdWwgdWwge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG59XHJcblxyXG4vKiBNb2JpbGUgZHJvcGRvd24gdG9nZ2xlIGJ1dHRvbiAqL1xyXG4ubW9iaWxlLW5hdmlnYXRpb24gLmRyb3Bkb3duLXRvZ2dsZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHRvcDogNXB4O1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBjb2xvcjogIzMzMztcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5tb2JpbGUtbmF2aWdhdGlvbiAuZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcclxuICBvdXRsaW5lOiBub25lO1xyXG59XHJcblxyXG4ubW9iaWxlLW5hdmlnYXRpb24gLmRyb3Bkb3duLXRvZ2dsZSBpIHtcclxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xyXG59XHJcblxyXG4ubW9iaWxlLW5hdmlnYXRpb24gLmRyb3Bkb3duLXRvZ2dsZVthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSBpIHtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG59XHJcblxyXG4vKiBIaWRlIG1vYmlsZSBlbGVtZW50cyBvbiBkZXNrdG9wICovXHJcbi5tb2JpbGUtb25seSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLyogU2NyZWVuIHJlYWRlciB0ZXh0ICovXHJcbi5zY3JlZW4tcmVhZGVyLXRleHQge1xyXG4gIGJvcmRlcjogMDtcclxuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XHJcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xyXG4gIGhlaWdodDogMXB4O1xyXG4gIG1hcmdpbjogLTFweDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxcHg7XHJcbiAgd29yZC13cmFwOiBub3JtYWwgIWltcG9ydGFudDtcclxufVxyXG5cclxuLyogUmVzcG9uc2l2ZSBzdHlsZXMgKi9cclxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE2MHB4KSB7XHJcbiAgLyogSGlkZSBkZXNrdG9wIG5hdmlnYXRpb24gKi9cclxuICAuY29udGFpbmVyIHtcclxuICAgIG1heC13aWR0aDogOTAlO1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgfVxyXG4gIC5tYWluLW5hdmlnYXRpb24ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIC8qIFNob3cgbW9iaWxlIG5hdmlnYXRpb24gKi9cclxuICAubW9iaWxlLW5hdmlnYXRpb24ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG5cclxuICAubWVudS10b2dnbGUge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICB9XHJcblxyXG4gIC8qIE1vYmlsZS1vbmx5IGVsZW1lbnRzICovXHJcbiAgLm1vYmlsZS1vbmx5IHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuXHJcbiAgLyogSGFuZGxlIGJvZHkgd2hlbiBtZW51IGlzIG9wZW4gKi9cclxuICBib2R5Lm1vYmlsZS1tZW51LW9wZW4ge1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB9XHJcbn1cclxuIiwiLyogRm9vdGVyICovXHJcbmZvb3RlciB7XHJcbiAgcGFkZGluZzogNHJlbSAwIDJyZW07XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0LWJnKTtcclxufVxyXG5cclxuLy8gZm9vdGVyOjpiZWZvcmUge1xyXG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8gICBjb250ZW50OiBcIlwiO1xyXG4vLyAgIHRvcDogMHB4O1xyXG4vLyAgIGxlZnQ6IDBweDtcclxuLy8gICB3aWR0aDogMTAwJTtcclxuLy8gICBoZWlnaHQ6IDEwcHg7XHJcbi8vICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaHR0cHM6Ly9jYngtcHJvZC5iLWNkbi5uZXQvQ09MT1VSQk9YNTkxNjA0NjQuanBnP3dpZHRoPTgwMCZoZWlnaHQ9ODAwJnF1YWxpdHk9NzBcIik7XHJcbi8vICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuLy8gICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbi8vIH1cclxuXHJcbi5mb290ZXItY29udGVudCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGdhcDogMnJlbTtcclxufVxyXG5cclxuLmZvb3Rlci1sb2dvIHtcclxuICBmb250LXNpemU6IDEuMjVyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcclxufVxyXG5cclxuLmZvb3Rlci1hYm91dCB7XHJcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xyXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcclxufVxyXG5cclxuLnNvY2lhbC1saW5rcyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBnYXA6IDFyZW07XHJcbn1cclxuXHJcbi5zb2NpYWwtaWNvbiB7XHJcbiAgd2lkdGg6IDM1cHg7XHJcbiAgaGVpZ2h0OiAzNXB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWFjY2VudCk7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxufVxyXG5cclxuLnNvY2lhbC1pY29uOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcclxufVxyXG5cclxuLmZvb3Rlci1saW5rcyBoMyB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XHJcbiAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuLmZvb3Rlci1saW5rcyB1bCB7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XHJcbn1cclxuXHJcbi5mb290ZXItbGlua3MgdWwgbGkge1xyXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxufVxyXG5cclxuLmZvb3Rlci1saW5rcyB1bCBsaSBhIHtcclxuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZTtcclxufVxyXG5cclxuLmZvb3Rlci1saW5rcyB1bCBsaSBhOmhvdmVyIHtcclxuICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XHJcbn1cclxuXHJcbi5mb290ZXItY29udGFjdCBoMyB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xyXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcclxufVxyXG5cclxuLmZvb3Rlci1jb250YWN0IHAge1xyXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XHJcbn1cclxuXHJcbi5jb3B5cmlnaHQge1xyXG4gIG1hcmdpbi10b3A6IDNyZW07XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XHJcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xyXG4gIGZvbnQtc2l6ZTogMXJlbTtcclxufVxyXG5cclxuLmJhY2stdG8tdG9wIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgYm90dG9tOiAycmVtO1xyXG4gIHJpZ2h0OiAycmVtO1xyXG4gIHdpZHRoOiA0MHB4O1xyXG4gIGhlaWdodDogNDBweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IpO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBvcGFjaXR5OiAwLjg7XHJcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XHJcbn1cclxuXHJcbi5iYWNrLXRvLXRvcDpob3ZlciB7XHJcbiAgb3BhY2l0eTogMTtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgLmZvb3Rlci1jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XHJcbiAgICBnYXA6IDNyZW07XHJcbiAgfVxyXG59XHJcbiIsIi8qIEhlcm8gU2VjdGlvbiAqL1xyXG4uaGVybyB7XHJcbiAgaGVpZ2h0OiAxMDB2aDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB0b3A6IC0yNHB4O1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4uYmctc2xpZGVyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDB2aDtcclxuICB6LWluZGV4OiAtMTtcclxufVxyXG5cclxuLmJnLXNsaWRlIHtcclxuICBoZWlnaHQ6IDEwMHZoO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG59XHJcblxyXG4uaGVybzo6YmVmb3JlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgY29udGVudDogXCJcIjtcclxuICBsZWZ0OiAwO1xyXG4gIHRvcDogMDtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM1KTtcclxufVxyXG5cclxuLmhlcm8gLmNvbnRhaW5lciB7XHJcbiAgei1pbmRleDogOTk7XHJcbn1cclxuXHJcbi8qIEhFUk8gU0VDVElPTiAqL1xyXG4uaGVybyB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xyXG4gIGhlaWdodDogMTAwdmg7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5oZXJvLWNvbnRlbnQge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAvLyB0b3A6IDUwJTtcclxuICBsZWZ0OiAyMCU7XHJcbiAgLy8gdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxuICBtYXgtd2lkdGg6IDQ4cmVtO1xyXG59XHJcblxyXG4uaGVyby1jb250ZW50IGgxIHtcclxuICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDR2dywgMy43NXJlbSk7XHJcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG4uaGVyby1jb250ZW50IHAge1xyXG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAycmVtO1xyXG4gIG1heC13aWR0aDogMzZyZW07XHJcbn1cclxuXHJcbi8vIC5idXR0b25zIHtcclxuLy8gICBkaXNwbGF5OiBmbGV4O1xyXG4vLyAgIGdhcDogMS41cmVtO1xyXG4vLyB9XHJcblxyXG4uaGVyby1jb250ZW50IC5idG4ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcik7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgcGFkZGluZzogMC43NXJlbSAycmVtO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBib3JkZXItcmFkaXVzOiAzMHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gIC5oZXJvIHtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQoMywgMWZyKTtcclxuICB9XHJcblxyXG4gIC5oZXJvLWNvbnRlbnQge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAuYnV0dG9ucyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGdhcDogMS41cmVtO1xyXG4gICAgcGFkZGluZzogMHB4IDEuNXJlbTtcclxuICB9XHJcblxyXG4gIC5vdXItc3Rvcnkge1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XHJcbiAgICBwYWRkaW5nOiA0cmVtIDUlO1xyXG4gIH1cclxuXHJcbiAgLnN0b3J5LWltYWdlIHtcclxuICAgIGhlaWdodDogMzAwcHg7XHJcbiAgfVxyXG59XHJcbiIsIi8qIFNlcnZpY2VzIFNlY3Rpb24gKi9cclxuLnNlcnZpY2VzIHtcclxuICBwYWRkaW5nOiAxMDBweCAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XHJcbn1cclxuXHJcbi5zZWN0aW9uLWhlYWRlciB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbn1cclxuXHJcbi5zZWN0aW9uLWhlYWRlciBoMiB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHBhZGRpbmctYm90dG9tOiAxNXB4O1xyXG59XHJcblxyXG4uc2VjdGlvbi1oZWFkZXIgaDI6OmFmdGVyIHtcclxuICBjb250ZW50OiBcIlwiO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB3aWR0aDogODBweDtcclxuICBoZWlnaHQ6IDNweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDRhZjM3O1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiA1MCU7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG59XHJcblxyXG4uc2VydmljZS1jYXJkcyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgZ2FwOiAzMHB4O1xyXG59XHJcblxyXG4uc2VydmljZS1jYXJkIHtcclxuICBmbGV4OiAxIDEgY2FsYyg1MCUgLSAzMHB4KTtcclxuICBtaW4td2lkdGg6IDMwMHB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGhlaWdodDogNDAwcHg7XHJcbiAgYm94LXNoYWRvdzogMCA1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbn1cclxuXHJcbi5zZXJ2aWNlLWNhcmQgaW1nIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTtcclxufVxyXG5cclxuLnNlcnZpY2UtY2FyZDpob3ZlciBpbWcge1xyXG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XHJcbn1cclxuXHJcbi5zZXJ2aWNlLWNvbnRlbnQge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBwYWRkaW5nOiAzMHB4O1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAwLjgpKTtcclxuICBjb2xvcjogI2ZmZjtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcclxufVxyXG5cclxuLnNlcnZpY2UtY2FyZDpob3ZlciAuc2VydmljZS1jb250ZW50IHtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpO1xyXG59XHJcblxyXG4uc2VydmljZS1jb250ZW50IGgzIHtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gIGZvbnQtc2l6ZTogMS44cmVtO1xyXG59XHJcblxyXG4uc2VydmljZS1jb250ZW50IHAge1xyXG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xyXG59XHJcblxyXG4uc2VydmljZS1jb250ZW50IGE6aG92ZXIge1xyXG4gIGNvbG9yOiAjZDRhZjM3O1xyXG59XHJcbiIsIi8qIEZsZWV0IFNlY3Rpb24gKi9cclxuLmZsZWV0IHtcclxuICBwYWRkaW5nOiAxMDBweCAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbi5mbGVldC10YWJzIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XHJcbn1cclxuXHJcbi50YWItYnRuIHtcclxuICBwYWRkaW5nOiAxNXB4IDMwcHg7XHJcbiAgZm9udC1zaXplOiAxLjFyZW07XHJcbiAgYmFja2dyb3VuZDogbm9uZTtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbn1cclxuXHJcbi50YWItYnRuLmFjdGl2ZSB7XHJcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2Q0YWYzNztcclxuICBjb2xvcjogIzFjMWMxYztcclxufVxyXG5cclxuLnRhYi1jb250ZW50IHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4udGFiLWNvbnRlbnQuYWN0aXZlIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLmZsZWV0LWdyaWQge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMzAwcHgsIDFmcikpO1xyXG4gIGdhcDogMzBweDtcclxufVxyXG5cclxuLmZsZWV0LWl0ZW0ge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG59XHJcblxyXG4uZmxlZXQtaXRlbTpob3ZlciB7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpO1xyXG4gIGJveC1zaGFkb3c6IDAgMTBweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxufVxyXG5cclxuLmZsZWV0LWltYWdlIHtcclxuICBoZWlnaHQ6IDIwMHB4O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5mbGVldC1pbWFnZSBpbWcge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xyXG59XHJcblxyXG4uZmxlZXQtaXRlbTpob3ZlciAuZmxlZXQtaW1hZ2UgaW1nIHtcclxuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XHJcbn1cclxuXHJcbi5mbGVldC1kZXRhaWxzIHtcclxuICBwYWRkaW5nOiAyMHB4O1xyXG59XHJcblxyXG4uZmxlZXQtZGV0YWlscyBoNCB7XHJcbiAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuLmZsZWV0LWRldGFpbHMgcCB7XHJcbiAgY29sb3I6ICM2NjY7XHJcbiAgZm9udC1zaXplOiAwLjlyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxufVxyXG5cclxuLmZsZWV0LW1ldGEge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcclxuICBjb2xvcjogIzg4ODtcclxufVxyXG4iLCIvKiBUZXN0aW1vbmlhbHMgKi9cclxuLnRlc3RpbW9uaWFscyB7XHJcbiAgcGFkZGluZzogMTAwcHggMDtcclxuICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLXNpemU6IGNlbnRlci9jb3ZlcjtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi50ZXN0aW1vbmlhbHM6OmJlZm9yZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIGNvbnRlbnQ6IFwiXCI7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcclxufVxyXG5cclxuLnNlY3Rpb24taGVhZGVyIHtcclxuICB6LWluZGV4OiA5OTtcclxufVxyXG5cclxuLnRlc3RpbW9uaWFsLXNsaWRlciB7XHJcbiAgbWF4LXdpZHRoOiA4MDBweDtcclxuICBtYXJnaW46IDAgYXV0bztcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi50ZXN0aW1vbmlhbCB7XHJcbiAgcGFkZGluZzogMCA2MHB4O1xyXG59XHJcblxyXG4udGVzdGltb25pYWwtdGV4dCB7XHJcbiAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbn1cclxuXHJcbi50ZXN0aW1vbmlhbC1hdXRob3Ige1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcclxufVxyXG5cclxuLnRlc3RpbW9uaWFsLWNvbXBhbnkge1xyXG4gIGZvbnQtc2l6ZTogMC45cmVtO1xyXG4gIGNvbG9yOiAjZDRhZjM3O1xyXG59XHJcbiIsIi8qIENUQSBTZWN0aW9uICovXHJcbi5jdGEge1xyXG4gIHBhZGRpbmc6IDEwMHB4IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5jdGEtY29udGVudCB7XHJcbiAgbWF4LXdpZHRoOiA3MDBweDtcclxuICBtYXJnaW46IDAgYXV0bztcclxufVxyXG5cclxuLmN0YSBoMiB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLmN0YSBwIHtcclxuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xyXG59XHJcblxyXG4vLyAuY3RhLWZvcm0ge1xyXG4vLyAgIGRpc3BsYXk6IGZsZXg7XHJcbi8vICAgbWF4LXdpZHRoOiA1MDBweDtcclxuLy8gICBtYXJnaW46IDAgYXV0bztcclxuLy8gICBib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuLy8gfVxyXG5cclxuLmN0YS1mb3JtIGlucHV0IHtcclxuICBmbGV4OiAxO1xyXG4gIHBhZGRpbmc6IDE1cHg7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIGZvbnQtc2l6ZTogMXJlbTtcclxufVxyXG5cclxuLndwY2Y3LWZvcm0tY29udHJvbC53cGNmNy1zdWJtaXQuaGFzLXNwaW5uZXIuY3RhLWZvcm0ge1xyXG4gIHBhZGRpbmc6IDE1cHggMjVweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWMxYzFjO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBmb250LXNpemU6IDFyZW07XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlO1xyXG59XHJcblxyXG4ud3BjZjctZm9ybS1jb250cm9sLndwY2Y3LXN1Ym1pdC5oYXMtc3Bpbm5lci5jdGEtZm9ybTpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcclxufVxyXG5cclxuLndwY2Y3LW5vdC12YWxpZC10aXAge1xyXG4gIGNvbG9yOiAjZGMzMjMyO1xyXG4gIGZvbnQtc2l6ZTogMWVtO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG59XHJcblxyXG4ud3BjZjctZm9ybS5pbml0IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xyXG4gIC53cGNmNy1mb3JtLmluaXQge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBSZW1vdmUgQ29udGFjdCBGb3JtIDcgZGVmYXVsdCBzcGFjaW5nICovXHJcbi53cGNmNyBmb3JtLndwY2Y3LWZvcm0gcCB7XHJcbiAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ud3BjZjcgLmFqYXgtbG9hZGVyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbn1cclxuXHJcbmRpdi53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG4iLCIvKiBPdXIgU3RvcnkgKi9cclxuLm91ci1zdG9yeSB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XHJcbiAgZ2FwOiA0cmVtO1xyXG4gIHBhZGRpbmctdG9wOiA2cmVtO1xyXG4gIHBhZGRpbmctYm90dG9tOiA2cmVtO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5vdXItc3RvcnkgYSB7XHJcbiAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxufVxyXG5cclxuLm91ci1zdG9yeSBhOmhvdmVyIHtcclxuICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbn1cclxuXHJcbi5zdG9yeS10ZXh0IGgyIHtcclxuICBmb250LXNpemU6IGNsYW1wKDEuOHJlbSwgNHZ3LCAyLjVyZW0pO1xyXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcclxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG59XHJcblxyXG4uc3RvcnktdGV4dCBwIHtcclxuICBmb250LXNpemU6IDFyZW07XHJcbiAgbGluZS1oZWlnaHQ6IDEuODtcclxuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XHJcbiAgY29sb3I6ICM0NDQ7XHJcbn1cclxuXHJcbi5zdG9yeS1pbWFnZSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiA2MDBweDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgb2JqZWN0LWZpdDogY292ZXI7XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gIC5vdXItc3Rvcnkge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xyXG4gICAgZ2FwOiAxLjVyZW07XHJcbiAgICBwYWRkaW5nLXRvcDogNHJlbTtcclxuICAgIHBhZGRpbmctYm90dG9tOiA0cmVtO1xyXG4gIH1cclxuXHJcbiAgLnN0b3J5LWltYWdlIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAzNjdweDtcclxuICAgIGFzcGVjdC1yYXRpbzogYXV0bztcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XHJcbiAgfVxyXG59XHJcbiIsIi8qIEZFQVRVUkVEIFBST0RVQ1RTICovXHJcbi5mZWF0dXJlZC1wcm9kdWN0cyB7XHJcbiAgcGFkZGluZzogNnJlbSAxMCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5mZWF0dXJlZC1wcm9kdWN0cyBoMiB7XHJcbiAgZm9udC1zaXplOiBjbGFtcCgxLjVyZW0sIDR2dywgMi41cmVtKTtcclxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG59XHJcblxyXG4uZmVhdHVyZWQtcHJvZHVjdHMgcCB7XHJcbiAgbWF4LXdpZHRoOiA3MDBweDtcclxuICBtYXJnaW46IDAgYXV0byAzcmVtO1xyXG4gIGZvbnQtc2l6ZTogMXJlbTtcclxuICBjb2xvcjogIzQ0NDtcclxuICBsaW5lLWhlaWdodDogMS42O1xyXG59XHJcblxyXG4ucHJvZHVjdC1ncmlkIHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjgwcHgsIDFmcikpO1xyXG4gIGdhcDogMnJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xyXG59XHJcblxyXG4ucHJvZHVjdC1jYXJkIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmOGY1O1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG59XHJcblxyXG4ucHJvZHVjdC1jYXJkIGltZyB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAyNTBweDtcclxuICBvYmplY3QtZml0OiBjb3ZlcjtcclxufVxyXG5cclxuLnByb2R1Y3QtaW5mbyB7XHJcbiAgcGFkZGluZzogMS41cmVtO1xyXG59XHJcblxyXG4ucHJvZHVjdC1pbmZvIGgzIHtcclxuICBmb250LXNpemU6IDEuMjVyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xyXG59XHJcblxyXG4ucHJvZHVjdC1pbmZvIHAge1xyXG4gIGZvbnQtc2l6ZTogMC45NXJlbTtcclxuICBjb2xvcjogIzY2NjtcclxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG59XHJcblxyXG4ucHJpY2UtbGluayB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLnByb2R1Y3QtaW5mbyAucHJpY2Uge1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgY29sb3I6IHZhcigtLXByaW1hcnktYWNjZW50KTtcclxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG59XHJcblxyXG4ucHJvZHVjdC1pbmZvIGEge1xyXG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBmb250LXNpemU6IDAuODVyZW07XHJcbn1cclxuXHJcbi5wcm9kdWN0LWluZm8gYTpob3ZlciB7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gIC5mZWF0dXJlZC1wcm9kdWN0cyB7XHJcbiAgICBwYWRkaW5nOiAycmVtIDEwJTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG59XHJcbiIsIi8qIEFmcmljYW4gUGF0dGVybiBCYW5uZXIgKi9cclxuLnBhdHRlcm4tYmFubmVyIHtcclxuICBwYWRkaW5nOiAzcmVtIDA7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAvLyBtYXJnaW4tYm90dG9tOiAxMDBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaHR0cHM6Ly9zdGF0aWMudmVjdGVlenkuY29tL3N5c3RlbS9yZXNvdXJjZXMvcHJldmlld3MvMDI5LzMxNS82OTAvbGFyZ2VfMngvYWZyaWNhbi16dWx1LXRyYWRpdGlvbmFsLWFjY2Vzc29yaWVzLW1hZGUtb2YtYmVhZHMtc2ltcGxpZmllZC1hbmQtY29uY2lzZS1waG90by5qcGdcIik7XHJcbiAgYmFja2dyb3VuZDogY29udGFpbiwgY2VudGVyO1xyXG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XHJcbn1cclxuXHJcbi5wYXR0ZXJuLWJhbm5lcjo6YmVmb3JlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgY29udGVudDogXCJcIjtcclxuICB0b3A6IDBweDtcclxuICBsZWZ0OiAwcHg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImh0dHBzOi8vY2J4LXByb2QuYi1jZG4ubmV0L0NPTE9VUkJPWDU5MTYwNDY0LmpwZz93aWR0aD04MDAmaGVpZ2h0PTgwMCZxdWFsaXR5PTcwXCIpO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbn1cclxuXHJcbi8qIC5wYXR0ZXJuLWJhbm5lcjo6YWZ0ZXIge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHRvcDogMHB4O1xyXG4gICAgbGVmdDogMHB4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNjUpO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgfSAqL1xyXG5cclxuLnBhdHRlcm4tYmFubmVyIGgyIHtcclxuICBmb250LXNpemU6IDJyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICBjb2xvcjogI2ZmZjtcclxuICB6LWluZGV4OiA5OTtcclxufVxyXG5cclxuLnBhdHRlcm4tYmFubmVyIHAge1xyXG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gIG1hcmdpbi1ib3R0b206IDJyZW07XHJcbiAgbWF4LXdpZHRoOiA3MDBweDtcclxuICBtYXJnaW4tbGVmdDogYXV0bztcclxuICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbn1cclxuXHJcbi5wYXR0ZXJuLWJhbm5lciBhIHtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yKTtcclxuICBjb2xvcjogI2ZmZjtcclxuICBwYWRkaW5nOiA4cHggMTZweDtcclxuICBib3JkZXItcmFkaXVzOiAyMHB4O1xyXG4gIHotaW5kZXg6IDk5O1xyXG59XHJcbiIsIi8qIFdvcmtzaG9wcyBTZWN0aW9uICovXHJcbi53b3Jrc2hvcHMge1xyXG4gIHBhZGRpbmc6IDVyZW0gMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodC1iZyk7XHJcbn1cclxuXHJcbi53b3Jrc2hvcHMtY29udGFpbmVyIHtcclxuICBtYXgtd2lkdGg6IDg1MHB4O1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcblxyXG4ud29ya3Nob3BzLWhlYWRlciB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG1hcmdpbi1ib3R0b206IDNyZW07XHJcbn1cclxuXHJcbi53b3Jrc2hvcHMtZ3JpZCB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XHJcbiAgZ2FwOiAycmVtO1xyXG4gIG1hcmdpbi1ib3R0b206IDRyZW07XHJcbn1cclxuXHJcbi53b3Jrc2hvcC1jYXJkIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBib3gtc2hhZG93OiAwIDNweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxufVxyXG5cclxuLndvcmtzaG9wLWltYWdlIHtcclxuICBoZWlnaHQ6IDI1MHB4O1xyXG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG59XHJcblxyXG4ud29ya3Nob3AtaW5mbyB7XHJcbiAgcGFkZGluZzogMS41cmVtO1xyXG59XHJcblxyXG4ud29ya3Nob3BzIGE6dmlzaXRlZCB7XHJcbiAgY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbi53b3Jrc2hvcC1pbmZvIGgzIHtcclxuICBmb250LXNpemU6IDEuMnJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG4ud29ya3Nob3AtZGV0YWlscyB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xyXG59XHJcblxyXG4uZGV0YWlsLWdyb3VwIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxufVxyXG5cclxuLmRldGFpbC1sYWJlbCB7XHJcbiAgY29sb3I6ICM2NjY7XHJcbiAgZm9udC1zaXplOiAwLjlyZW07XHJcbn1cclxuXHJcbi5kZXRhaWwtdmFsdWUge1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gIC53b3Jrc2hvcHMtZ3JpZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGdhcDogMXJlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcclxuICB9XHJcbn1cclxuIiwiLyogTWlzc2lvbiBTZWN0aW9uICovXHJcbi5taXNzaW9ucyB7XHJcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcclxufVxyXG5cclxuLm1pc3Npb24tY29udGFpbmVyIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgbWF4LXdpZHRoOiA4MDBweDtcclxuICBtYXJnaW46IDAgYXV0bztcclxufVxyXG5cclxuLm1pc3Npb24tcGlsbGFycyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgbWFyZ2luLXRvcDogNDBweDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbn1cclxuXHJcbi5waWxsYXIge1xyXG4gIGZsZXgtYmFzaXM6IDMwJTtcclxuICBwYWRkaW5nOiAxNXB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGlsbGFyLW51bWJlciB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiA0cmVtO1xyXG4gIGhlaWdodDogNHJlbTtcclxuICBsaW5lLWhlaWdodDogMzBweDtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHQtYmcpO1xyXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgZm9udC1zaXplOiAyNHB4O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLnBpbGxhciBoMyB7XHJcbiAgZm9udC1zaXplOiAxNnB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuLnBpbGxhciBwIHtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbn1cclxuXHJcbi5jZW50ZXJlZC10aXRsZSB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4vKiBSZXNwb25zaXZlIFN0eWxlcyAqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAucGlsbGFyIHtcclxuICAgIGZsZXgtYmFzaXM6IDQ4JTtcclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gIC5waWxsYXIge1xyXG4gICAgZmxleC1iYXNpczogMTAwJTtcclxuICB9XHJcbn1cclxuIiwiLyogVGVhbSBTZWN0aW9uICovXHJcbi50ZWFtLXNlY3Rpb24ge1xyXG4gIG1hcmdpbi1ib3R0b206IDEwMHB4O1xyXG59XHJcblxyXG4udGVhbS1jb250YWluZXIge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLnRlYW0tbWVtYmVycyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGdhcDogMjBweDtcclxuICBtYXJnaW4tdG9wOiAzMHB4O1xyXG59XHJcblxyXG4udGVhbS1tZW1iZXIge1xyXG4gIGZsZXgtYmFzaXM6IGNhbGMoMjUlIC0gMjBweCk7XHJcbiAgbWluLXdpZHRoOiAyMDBweDtcclxuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG59XHJcblxyXG4ubWVtYmVyLWltZyB7XHJcbiAgd2lkdGg6IDIwcmVtO1xyXG4gIGhlaWdodDogMjByZW07XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gIG1hcmdpbjogMCBhdXRvIDE1cHg7XHJcbn1cclxuXHJcbi5tZW1iZXItbmFtZSB7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbiAgZm9udC1zaXplOiAyMHB4O1xyXG59XHJcblxyXG4ubWVtYmVyLXRpdGxlIHtcclxuICBjb2xvcjogI2QzNTQwMDtcclxuICBmb250LXNpemU6IDE2cHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MnB4KSB7XHJcbiAgLnRlYW0tbWVtYmVyIHtcclxuICAgIGZsZXgtYmFzaXM6IGNhbGMoNTAlIC0gMjBweCk7XHJcbiAgfVxyXG59XHJcbiIsIi8qIFByb2Nlc3MgU2VjdGlvbiAqL1xyXG4ucHJvY2Vzcy1zZWN0aW9uIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodC1iZyk7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTAwcHg7XHJcbiAgcGFkZGluZzogMnJlbSAwO1xyXG59XHJcblxyXG4ucHJvY2Vzcy1jb250YWluZXIge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBtYXgtd2lkdGg6IDgwMHB4O1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcblxyXG4ucHJvY2Vzcy1oZWFkZXIge1xyXG4gIG1hcmdpbi1ib3R0b206IDVyZW07XHJcbn1cclxuXHJcbi5wcm9jZXNzLXN0ZXAge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xyXG4gIGdhcDogMnJlbTtcclxufVxyXG5cclxuLnByb2Nlc3Mtc3RlcDpudGgtY2hpbGQoZXZlbikge1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcclxufVxyXG5cclxuLnN0ZXAtaW1nIHtcclxuICBmbGV4OiAxO1xyXG59XHJcblxyXG4uc3RlcC1jb250ZW50IHtcclxuICBmbGV4OiAxO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuXHJcbi5zdGVwLWNvbnRlbnQgaDMge1xyXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG4uc3RlcC1udW1iZXIge1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xyXG59XHJcbiIsIi8vIGJvZHkud29vY29tbWVyY2Uge1xyXG4vLyAgIG1heC13aWR0aDogOTAlO1xyXG4vLyAgIG1hcmdpbjogNHJlbSBhdXRvO1xyXG4vLyB9XHJcblxyXG4ud29vY29tbWVyY2UuY29sdW1ucy00IHtcclxuICBtYXgtd2lkdGg6IDc1JTtcclxuICBtYXJnaW46IDEwMHB4IGF1dG87XHJcbn1cclxuXHJcbi53b29jb21tZXJjZSAuc2luZ2xlLXByb2R1Y3Qge1xyXG4gIG1heC13aWR0aDogNzUlO1xyXG4gIG1hcmdpbjogNTBweCBhdXRvO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB0b3A6IDEwMHB4O1xyXG59XHJcblxyXG4vLyAucHJvZHVjdHMuY29sdW1ucy00IHtcclxuLy8gICBkaXNwbGF5OiBncmlkO1xyXG4vLyAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTVyZW0sIDFmcikpO1xyXG4vLyAgIGdhcDogMjBweDtcclxuLy8gfVxyXG5cclxuLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIHtcclxuICBtYXJnaW46IDAgMCAxZW07XHJcbiAgLy8gcGFkZGluZzogMHB4IDU1cHg7XHJcbiAgbGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlO1xyXG4gIGNsZWFyOiBib3RoO1xyXG59XHJcblxyXG4ud29vY29tbWVyY2UgYSB7XHJcbiAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xyXG59XHJcblxyXG4ud2MtYmxvY2stY29tcG9uZW50cy1tYWluLndjLWJsb2NrLWNhcnRfX21haW4ud3AtYmxvY2std29vY29tbWVyY2UtY2FydC1pdGVtcy1ibG9jayBhIHtcclxuICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG4ud2MtYmxvY2stY29tcG9uZW50cy1tYWluLndjLWJsb2NrLWNhcnRfX21haW4ud3AtYmxvY2std29vY29tbWVyY2UtY2FydC1pdGVtcy1ibG9jayBhOmhvdmVyIHtcclxuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yKTtcclxufVxyXG5cclxuLndjLWJsb2NrLWNvbXBvbmVudHMtc2lkZWJhci53Yy1ibG9jay1jYXJ0X19zaWRlYmFyLndwLWJsb2NrLXdvb2NvbW1lcmNlLWNhcnQtdG90YWxzLWJsb2NrIGEge1xyXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcclxufVxyXG5cclxuLnNpbmdsZV9hZGRfdG9fY2FydF9idXR0b24uYnV0dG9uLmFsdCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ud29vY29tbWVyY2U6d2hlcmUoYm9keTpub3QoLndvb2NvbW1lcmNlLXVzZXMtYmxvY2stdGhlbWUpKSBkaXYucHJvZHVjdCBwLnByaWNlLFxyXG4ud29vY29tbWVyY2U6d2hlcmUoYm9keTpub3QoLndvb2NvbW1lcmNlLXVzZXMtYmxvY2stdGhlbWUpKSBkaXYucHJvZHVjdCBzcGFuLnByaWNlIHtcclxuICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XHJcbn1cclxuXHJcbi53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IC53b29jb21tZXJjZS1sb29wLWNhdGVnb3J5X190aXRsZSxcclxuLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdF9fdGl0bGUsXHJcbi53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGgzIHtcclxuICBwYWRkaW5nOiAwLjVlbSAwO1xyXG4gIG1hcmdpbjogMDtcclxuICBmb250LXNpemU6IGNsYW1wKDAuNzVyZW0sIDR2dywgMS4yNXJlbSk7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBsaW5lLWhlaWdodDogMS43NXJlbTtcclxuICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XHJcbn1cclxuXHJcbi53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IC5wcmljZSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcclxuICBmb250LXNpemU6IDFyZW07XHJcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcclxuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yKTtcclxufVxyXG5cclxuLy8gQ0FSVFxyXG4ud3AtYmxvY2std29vY29tbWVyY2UtY2FydC5hbGlnbndpZGUge1xyXG4gIG1heC13aWR0aDogMTIwMHB4O1xyXG4gIG1hcmdpbjogNnJlbSBhdXRvO1xyXG59XHJcblxyXG4vLyBDSEVDS09VVFxyXG4ud2MtYmxvY2stY29tcG9uZW50cy1zaWRlYmFyLWxheW91dC53Yy1ibG9jay1jaGVja291dC5pcy1sYXJnZSB7XHJcbiAgbWF4LXdpZHRoOiA3MCU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHRvcDogMTAwcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTM4cHg7XHJcbn1cclxuXHJcbi5tZW51Lm5hdi1tZW51IGxpIGEge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLm1lbnUubmF2LW1lbnUgPiBsaTpsYXN0LWNoaWxkID4gYTo6YmVmb3JlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgY29udGVudDogXCIwXCI7XHJcbiAgdG9wOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHdpZHRoOiAyMHB4O1xyXG4gIGhlaWdodDogMjBweDtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yKTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZmxleC1iYXNpczogMTtcclxuICBwYWRkaW5nOiAwLjVyZW07XHJcbiAgZm9udC1zaXplOiAxMHB4O1xyXG59XHJcblxyXG4vLyBPUkRFUiBQQUdFXHJcbi53b29jb21tZXJjZS1vcmRlciB7XHJcbiAgbWF4LXdpZHRoOiA3MCU7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbiAgbWFyZ2luLXRvcDogMTIwcHg7XHJcbn1cclxuXHJcbi8vIEVNUFRZIENBUlRcclxuLndjLWJsb2NrLWdyaWQud3AtYmxvY2stcHJvZHVjdC1uZXcud3AtYmxvY2std29vY29tbWVyY2UtcHJvZHVjdC1uZXcud2MtYmxvY2stcHJvZHVjdC1uZXcuaGFzLTQtY29sdW1ucyB1bCBsaSBhIHtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xyXG4gIGZvbnQtc2l6ZTogMTZweDtcclxufVxyXG5cclxuLndwLWJsb2NrLWJ1dHRvbi53Yy1ibG9jay1ncmlkX19wcm9kdWN0LWFkZC10by1jYXJ0IGEge1xyXG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XHJcbn1cclxuXHJcbi53cC1ibG9jay1idXR0b24ud2MtYmxvY2stZ3JpZF9fcHJvZHVjdC1hZGQtdG8tY2FydCBhOmhvdmVyIHtcclxuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcik7XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcclxuICAud29vY29tbWVyY2UuY29sdW1ucy00IHtcclxuICAgIG1heC13aWR0aDogOTAlO1xyXG4gICAgbWFyZ2luOiA1MHB4IGF1dG87XHJcbiAgfVxyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNTUwcHgpIHtcclxuICAud29vY29tbWVyY2UgdWwucHJvZHVjdHNbY2xhc3MqPVwiY29sdW1ucy1cIl0gbGkucHJvZHVjdCxcclxuICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0c1tjbGFzcyo9XCJjb2x1bW5zLVwiXSBsaS5wcm9kdWN0IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG4iLCIucHJvY2Vzcy1oaWdobGlnaHRzLXJvdyB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xyXG4gIGdhcDogMjBweDtcclxufVxyXG5cclxuLmZvcm0tc2VjdGlvbiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gIHBhZGRpbmc6IDMwcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XHJcbiAgZmxleDogMSAxIDM1MHB4O1xyXG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcclxufVxyXG5cclxuLnByb2Nlc3Mge1xyXG4gIG1hcmdpbi1ib3R0b206IDEwMHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0LWJnKTtcclxuICBwYWRkaW5nOiAycmVtIDA7XHJcbn1cclxuXHJcbi5wcm9jZXNzIGgyLFxyXG4uZm9ybS1zZWN0aW9uIGgyIHtcclxuICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XHJcbiAgZm9udC1zaXplOiAyNHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XHJcbn1cclxuXHJcbi5zdGVwIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XHJcbn1cclxuXHJcbi5zdGVwIHAge1xyXG4gIGZvbnQtc2l6ZTogMXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG4uc3RlcCBwID4gc3BhbiB7XHJcbiAgZm9udC1zaXplOiAxOHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbi5zdGVwLW51bWJlciB7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tZGFyay1iZyk7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB3aWR0aDogMi41cmVtO1xyXG4gIGhlaWdodDogMi41cmVtO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIG1hcmdpbi1yaWdodDogMTBweDtcclxuICBmbGV4LXNocmluazogMDtcclxufVxyXG5cclxuLnBlcmZlY3QtZm9yIHtcclxuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmU2ZTE7XHJcbiAgcGFkZGluZzogMjRweDtcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgbWFyZ2luLXRvcDogMjBweDtcclxufVxyXG5cclxuLnBlcmZlY3QtZm9yIGg0IHtcclxuICBmb250LXNpemU6IDE4cHg7XHJcbiAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xyXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuLnBlcmZlY3QtZm9yIHVsIHtcclxuICBtYXJnaW4tbGVmdDogMjBweDtcclxufVxyXG5cclxuLnBlcmZlY3QtZm9yIHVsIGxpIHtcclxuICBtYXJnaW4tYm90dG9tOiA4cHg7XHJcbn1cclxuXHJcbmZvcm0ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBnYXA6IDE1cHg7XHJcbn1cclxuXHJcbi5wcm9jZXNzLWhpZ2hsaWdodHMtcm93IC53cGZvcm1zLWZpZWxkLWxhYmVsIHtcclxuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDtcclxuICBjb2xvcjogIzJhMjUyMiAhaW1wb3J0YW50O1xyXG4gIG1hcmdpbi1ib3R0b206IDhweCAhaW1wb3J0YW50O1xyXG4gIHdpZHRoOiBmaXQtY29udGVudDtcclxufVxyXG5cclxuLnByb2Nlc3MtaGlnaGxpZ2h0cy1yb3cgLndwZm9ybXMtY29udGFpbmVyIC53cGZvcm1zLWZpZWxkLFxyXG4ud3AtY29yZS11aSBkaXYud3Bmb3Jtcy1jb250YWluZXIgLndwZm9ybXMtZmllbGQge1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcclxufVxyXG5cclxuLnByb2Nlc3MtaGlnaGxpZ2h0cy1yb3cgLndwZm9ybXMtZmllbGQud3Bmb3Jtcy1maWVsZC1jaGVja2JveCB7XHJcbiAgcGFkZGluZzogMXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2RlZGVkZTtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuXHJcbi5wcm9jZXNzLWhpZ2hsaWdodHMtcm93IGRpdi53cGZvcm1zLWNvbnRhaW5lci1mdWxsIC53cGZvcm1zLWZpZWxkLndwZm9ybXMtZmllbGQtY2hlY2tib3ggdWwgbGkgaW5wdXQgKyBsYWJlbCB7XHJcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xyXG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiAjMmEyNTIyICFpbXBvcnRhbnQ7XHJcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucHJvY2Vzcy1oaWdobGlnaHRzLXJvdyBkaXYud3Bmb3Jtcy1jb250YWluZXItZnVsbCAud3Bmb3Jtcy1maWVsZC1kZXNjcmlwdGlvbiB7XHJcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xyXG4gIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiAjOWY5ZjlmICFpbXBvcnRhbnQ7XHJcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBsZWZ0OiAzMXB4O1xyXG59XHJcblxyXG4ucHJvY2Vzcy1oaWdobGlnaHRzLXJvdyBpbnB1dFt0eXBlPVwidGV4dFwiXSxcclxuaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxyXG5pbnB1dFt0eXBlPVwiZGF0ZVwiXSxcclxuaW5wdXRbdHlwZT1cInRlbFwiXSxcclxudGV4dGFyZWEge1xyXG4gIHBhZGRpbmc6IDhweCAxMnB4ICFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4ICFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcclxuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcclxuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0LWJnKSAhaW1wb3J0YW50O1xyXG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucHJvY2Vzcy1oaWdobGlnaHRzLXJvdyB0ZXh0YXJlYSB7XHJcbiAgaGVpZ2h0OiAxNTBweCAhaW1wb3J0YW50O1xyXG4gIG1pbi1oZWlnaHQ6IDEwMHB4O1xyXG4gIHJlc2l6ZTogdmVydGljYWw7XHJcbn1cclxuXHJcbi5mb3JtLXJvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBnYXA6IDEwcHg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG59XHJcblxyXG4uZm9ybS1yb3cgPiBkaXYge1xyXG4gIGZsZXg6IDEgMSA0OCU7XHJcbn1cclxuXHJcbi5jaGVja2JveCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICBnYXA6IDEwcHg7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG59XHJcblxyXG4ucHJvY2Vzcy1oaWdobGlnaHRzLXJvdyAud3Bmb3Jtcy1zdWJtaXQge1xyXG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcclxuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcclxuICBmb250LXdlaWdodDogNDAwICFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcikgIWltcG9ydGFudDtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3MgZWFzZTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbmJ1dHRvbjpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1hY2NlbnQpO1xyXG59XHJcblxyXG4ucHJvY2Vzcy1oaWdobGlnaHRzLXJvdyAud3Bmb3Jtcy1zdWJtaXQtY29udGFpbmVyIHtcclxuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gIC5wcm9jZXNzLWhpZ2hsaWdodHMtcm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZ2FwOiAyMHB4O1xyXG4gIH1cclxuXHJcbiAgLmZvcm0tcm93ID4gZGl2IHtcclxuICAgIGZsZXg6IDEgMSAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XHJcbiAgLnByb2Nlc3MtaGlnaGxpZ2h0cy1yb3cgLndwZm9ybXMtY29udGFpbmVyIC53cGZvcm1zLW9uZS1oYWxmLFxyXG4gIC53cGZvcm1zLWNvbnRhaW5lciAud3Bmb3Jtcy10aHJlZS1zaXh0aHMsXHJcbiAgLndwZm9ybXMtY29udGFpbmVyIC53cGZvcm1zLXR3by1mb3VydGhzIHtcclxuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLnByb2Nlc3MtaGlnaGxpZ2h0cy1yb3cgLndwZm9ybXMtZmllbGQud3Bmb3Jtcy1maWVsZC1jaGVja2JveCB7XHJcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuIiwiLmNvbnRhY3Qtc2VjdGlvbiB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTAwcHg7XHJcblxyXG4gIC5jb250YWN0LWluZm9ybWF0aW9uLXdyYXBwZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHJcbiAgICAuY29udGFjdC1pbmZvcm1hdGlvbiB7XHJcbiAgICAgIHdpZHRoOiA0OSU7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG5cclxuICAgICAgLmNvbnRhY3QtdGl0bGUge1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgc2Fucy1zZXJpZjtcclxuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcclxuICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuY29udGFjdC1ncm91cCB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS44cmVtO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZ2FwOiAyMHB4O1xyXG5cclxuICAgICAgICAuY29udGFjdC1pY29uIHtcclxuICAgICAgICAgIHdpZHRoOiA0OHB4O1xyXG4gICAgICAgICAgaGVpZ2h0OiA0OHB4O1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFyay1iZyk7XHJcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAgICAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuY29udGFjdC1kZXRhaWxzIHtcclxuICAgICAgICAgIGgzIHtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjE1cmVtO1xyXG4gICAgICAgICAgICBjb2xvcjogIzJhMmEyYTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICAgICAgICAgIGNvbG9yOiAjMmEyYTJhO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jb250YWN0LWZvcm0tc2VjdGlvbiB7XHJcbiAgICAgIHdpZHRoOiA0OSU7XHJcbiAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgZmxleC1iYXNpczogMTtcclxuXHJcbiAgICAgIGgzIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLndwZm9ybXMtdmFsaWRhdGUud3Bmb3Jtcy1mb3JtLndwZm9ybXMtYWpheC1mb3JtIHtcclxuICAgICAgICBtYXgtd2lkdGg6IDUwMHB4O1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMnB4IDRweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgICAud3Bmb3Jtcy1maWVsZCB7XHJcbiAgICAgICAgICBwYWRkaW5nOiA3cHggMCAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLndwZm9ybXMtZmllbGQtbGFiZWwge1xyXG4gICAgICAgICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgIGNvbG9yOiAjMmEyYTJhO1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcclxuICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaW5wdXQge1xyXG4gICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7XHJcbiAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAud3Bmb3Jtcy1zdWJtaXQge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcikgIWltcG9ydGFudDtcclxuXHJcbiAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gIC5jb250YWN0LWluZm9ybWF0aW9uLXdyYXBwZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBnYXA6IDUwcHg7XHJcblxyXG4gICAgLmNvbnRhY3QtZm9ybS1zZWN0aW9uIHtcclxuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAuY29udGFjdC1pbmZvcm1hdGlvbiB7XHJcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */
