/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Imports
	# Custom properties
	# Reset
	# Typography
	# Elements
	# Links
# Accessibility
# Layout
# Forms
# Header
	# Main navigation menu
# Content navigation
# Footer
# Infinite scroll
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Imports
--------------------------------------------------------------*/

/**
 * Custom Properties
 * aka CSS variables.
 *
 * @link: https://developer.mozilla.org/en-US/docs/Web/CSS/--*
 **/

:root {
	--pad: 2vw;
	--pad-neg: calc( var( --pad ) * -1 );
	--pad2: calc( var( --pad ) * 2 );

	--global-font-color: #000000;
	/* --global-font-family: "Crimson Text", serif; */
	--font-serif: 'Times New Roman', EBGaramond, Times, serif;
	--font-sans: Arial, Helvetica, sans-serif;
	--font-mono: 'NotCourier', Courier, 'Courier New', monospace;

	--global-font-size: 20;
	--global-font-line-height: 1.4;
	/* --highlight-font-family: "Roboto Condensed", "Helvetica Neue", "Arial Narrow", sans-serif; */
	--content-width: 70vw;
	--dropdown-symbol-width: 0.7em;
	--menubar-width: 45px;

	/* Custom editor colors */
	--color-theme-primary: #e36d60;
	--color-theme-secondary: #41848f;
	--color-theme-yellow: #ffff00;
	--color-theme-blue: rgb(32, 145, 252);

	--color-theme-black: #000000;
	--color-theme-grey: #95a5a6;
	--color-theme-white: #ffffff;

	--color-link: #000;
	--color-link-visited: #000;/*#333;*/
	--color-link-active: #000;/*#00a0d2;*/

	--color-quote-border: #000;
	--color-quote-citation: #6c7781;

	/* Custom editor font sizes */

	/* default font-sizes, used for mobile */
	--font-size-small: 0.8rem;
	--font-size-regular: 1rem;
	--font-size-big: 1.5rem;
	--font-size-large: 2.2rem;
	--font-size-larger: 2.8rem;

	--font-size-intro: 1.8rem;

	--line-height-header: 1.1;

	--shadow-size: 1em;
	--shadow-size-negative: -1em;
	--box-shadow-color: rgba(0, 0, 0, 0.3);
	--box-shadow: 0 0 var(--shadow-size) var(--box-shadow-color);
	--box-shadow-top-inset: inset 0 var(--shadow-size) var(--shadow-size) var(--box-shadow-color);
	--box-shadow-bottom-inset: inset 0 var(--shadow-size-negative) var(--shadow-size) var(--box-shadow-color);
	--box-shadow-bottom: 0 var(--shadow-size) var(--shadow-size) var(--box-shadow-color);
	--box-shadow-top: 0 var(--shadow-size-negative) var(--shadow-size) var(--box-shadow-color);
	--box-shadow-left: var(--shadow-size-negative) 0 var(--shadow-size) var(--box-shadow-color);
	--box-shadow-right: var(--shadow-size) 0 var(--shadow-size) var(--box-shadow-color);

	--z-menu: 1000;
	--z-header: 100;
	--z-interface: 10;

	--bounce: cubic-bezier(1, .005, .47, 1.375);
	--bounce2: cubic-bezier(.2,-1.5,.8,2.2);
}

@media screen and (min-width: 37.5em) {

	:root {

		/* responsive font-sizes for desktop */
		--font-size-small: calc(20 / var(--global-font-size) * 1.5vw);
		--font-size-regular: calc(28 / var(--global-font-size) * 1.5vw);
		--font-size-big: calc(36 / var(--global-font-size) * 1.5vw);
		--font-size-large: calc(60 / var(--global-font-size) * 1.5vw);
		--font-size-larger: calc(72 / var(--global-font-size) * 1.5vw);

		--font-size-intro: calc(48 / var(--global-font-size) * 1.5vw);
	}
}

/*
CSS normalization based in part on normalize.css by
Nicolas Gallagher and Jonathan Neal http://necolas.github.io/normalize.css/
*/

/*--------------------------------------------------------------
# Normalize
--------------------------------------------------------------*/

/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
	line-height: 1.15; /* 1 */
	-webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
	margin: 0;
}

link {
	display: none;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
	font-size: 2em;
	margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
	-webkit-box-sizing: content-box;
	        box-sizing: content-box; /* 1 */
	height: 0; /* 1 */
	overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
	font-family: monospace; /* 1 */
	font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
	background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
	border-bottom: none; /* 1 */
	text-decoration: underline; /* 2 */
	-webkit-text-decoration: underline dotted;
	        text-decoration: underline dotted; /* 2 */  /* phpcs:ignore */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
	font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
	font-family: monospace; /* 1 */
	font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
	font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */

img {
	border-style: none;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
	font-family: inherit; /* 1 */
	font-size: 100%; /* 1 */
	line-height: 1.15; /* 1 */
	margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input {
	overflow: visible; /* 1 */
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select {
	text-transform: none; /* 1 */
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
	padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
	-webkit-box-sizing: border-box;
	        box-sizing: border-box; /* 1 */
	color: inherit; /* 2 */
	display: table; /* 1 */
	max-width: 100%; /* 1 */
	padding: 0; /* 3 */
	white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
	vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
	overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */

[type="checkbox"],
[type="radio"] {
	-webkit-box-sizing: border-box;
	        box-sizing: border-box; /* 1 */
	padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
	-webkit-appearance: textfield; /* 1 */
	outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

/* stylelint-disable */

::-webkit-file-upload-button {
	-webkit-appearance: button; /* 1 */
	font: inherit; /* 2 */
}

/* stylelint-enable */

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
	display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
	display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */

template {
	display: none;
}

/**
 * Add the correct display in IE 10.
 */

[hidden] {
	display: none;
}

/**
 * Hide lazy load placeholders when browser does not have JS enabled.
 * Should override everything, therefore !important.
 */

.no-js .lazy {
	display: none !important;
}

@font-face {
	font-family: 'NotCourier';
	font-style: normal;
	font-weight: normal;
	src: local('NotCourier'), url('../fonts/notcouriersans/NotCourierSans.woff') format('woff');
}

/* @font-face {
	font-family: 'Freeserif';
	font-style: normal;
	font-weight: normal;
	src: local('Freeserif'), url('../fonts/freeserif/FreeSerif.ttf') format('truetype'), url('../fonts/freeserif/FreeSerif.otf') format('opentype');
} */

/* embed EB_Garamond from ../fonts/EB_Garamond/EBGaramond-Italic-VariableFont_wght.ttf and EBGaramond-VariableFont_wght.ttf */

@font-face {
	font-family: 'EBGaramond';
	font-style: normal;
	font-weight: normal;
	src: local('EBGaramond'), url('../fonts/EB_Garamond/EBGaramond-VariableFont_wght.ttf') format('truetype');
}

@font-face {
	font-family: 'EBGaramond';
	font-style: italic;
	font-weight: normal;
	src: local('EBGaramond'), url('../fonts/EB_Garamond/EBGaramond-Italic-VariableFont_wght.ttf') format('truetype');
}

.sans {
	font-family: Arial, Helvetica, sans-serif;
	font-family: var(--font-sans);
}

.serif {
	font-family: 'Times New Roman', EBGaramond, Times, serif;
	font-family: var(--font-serif);
}

.mono {
	font-family: 'NotCourier', Courier, 'Courier New', monospace;
	font-family: var(--font-mono);
}

/*--------------------------------------------------------------
# Typography
--------------------------------------------------------------*/

/* stylelint-disable */

html{
	font-size: 24px; /* base font size */
}

body,
button,
input,
select,
optgroup,
textarea {
	color: #000000;
	color: var(--global-font-color);
	font-family: Arial, Helvetica, sans-serif;
	font-family: var(--font-sans);
	line-height: 1.4;
	line-height: var(--global-font-line-height);
	font-size: 1rem;
	font-size: 1rem;
	font-size: var( --font-size-regular );
	font-weight: normal !important;
}

b, strong {
	font-weight: normal !important;
}

@media screen and (min-width: 37.5em) {
	body,
	button,
	input,
	select,
	optgroup,
	textarea {
		/* font-size: var(--font-size-regular); */
		/* font-size: 1.8vw; */
		font-size: 1rem;
		font-size: var(--font-size-regular);
	}
}

/* stylelint-enable */

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--highlight-font-family);
	/* font-stretch: condensed; */
	clear: both;
	font-weight: normal; 
	line-height: 1.1; 
	line-height: var( --line-height-header );
}

h1,
h2 {
	font-size: 2.2rem;
	font-size: var( --font-size-large );
}

.entry-header h1.entry-title,
.page-header .page-title {
	font-size: 2.2rem;
	font-size: var(--font-size-large);
	font-family: 'Times New Roman', EBGaramond, Times, serif;
	font-family: var( --font-serif );
	margin-top: 0;
/* 	margin-bottom: 1em; */
    max-width: 70vw;
    max-width: var( --content-width );
}

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

blockquote,
q {
	quotes: "" "";
}

blockquote {
	border-left: 4px solid #000;
	border-left: 4px solid var(--color-quote-border);
	margin: 0;
}

.entry-content > blockquote {
	padding-left: 1em;
	margin-left: 1.5rem;
}

@media screen and (min-width: 48em) {

	.entry-content > blockquote {
		margin-left: auto;
	}
}

blockquote cite {
	color: #6c7781;
	color: var(--color-quote-citation);
	font-size: 13px;
	margin-top: 1em;
	position: relative;
	font-style: normal;
}

address {
	margin: 0 0 1.5em;
}

/* stylelint-disable */

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

/* stylelint-enable */

code,
kbd,
tt,
var {
	font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
	font-size: 0.8rem;
}

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

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

big {
	font-size: 125%;
}

/*--------------------------------------------------------------
# Elements
--------------------------------------------------------------*/

/* stylelint-disable */

html {
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
}

/* stylelint-enable */

/**
 * Inherit box-sizing to make it easier to change the property for
 * components that leverage other behavior; see
 * http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */

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

/* stylelint-disable */

body {
	background: var( --theme-color-white );
	/* Fallback for when there is no custom background color defined. */
}

/* stylelint-enable */

/* stylelint-disable */

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

/* stylelint-enable */

ul,
ol {
	margin: 0 0 1.5em 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;
}

/* stylelint-disable */

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

/* stylelint-enable */

/* Extra wide images within figure tags don't overflow the content area. */

figure {
	margin: 0.5em 0;
}

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

date {
	line-height: 1.1;
	line-height: var( --line-height-header );
}

figcaption {
	font-family: 'NotCourier', Courier, 'Courier New', monospace;
	font-family: var( --font-mono );
	max-width: 50rem;
	margin: 0 auto;
	font-size: 0.8rem !important;
	font-size: var( --font-size-small ) !important;
	padding-bottom: 2vw;
	padding-bottom: var( --pad );
}

em {
	/* font-style: normal; */
}

strong {
	font-style: normal;
}

p.has-indented-attribute {
	padding-left: 2em;
}

/*--------------------------------------------------------------
# Links
--------------------------------------------------------------*/

/* stylelint-disable */

a {
	color: black;
	text-decoration: none;
}

button, 
a{
	color: black;
	border-bottom: 1px solid #000000;
	border-bottom: 1px solid var( --color-theme-black );
	text-decoration: none;	
}

button > *, a > * {
		border-bottom: none;
	}

button:hover,
	button:focus,
	button:active,
	a:hover,
	a:focus,
	a:active {
		/* color: var(--color-link-active); */
		border-bottom: 2px solid #000000;
		border-bottom: 2px solid var( --color-theme-black );
	}

button:focus, a:focus {
		outline: thin dotted	
	}

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

.tribe-events-content a, .page-content a, .entry-content a, .entry-summary a {
		font-family: 'Times New Roman', EBGaramond, Times, serif;
		font-family: var( --font-serif );
		font-style: italic;
		font-size: 1.1em;
	}

.block-link {
	display: inline;
}

.block-link:before {
		content: "";
		display: block;
	}

/* stylelint-enable */

h1 a,
a h1 {
	/* box-shadow: inset 0 -0.2rem 0 #000, inset 0 -0.4rem 0 #fff; */
	/* text-shadow: -2px 2px 0px black, 2px 2px 0px black, 2px -2px 0px black, -2px -2px 0px black; */
	/* text-decoration: none; */
	/* transition: box-shadow 0.3s ease; */
}

h1 a:hover,
h1 a:focus,
h1 a:active,
a h1:hover,
a h1:focus,
a h1:active {
	/* color: var(--color-link-active); */
	/* box-shadow: inset 0 -0.1rem 0 #000, inset 0 -0.4rem 0 #fff; */
}

.fancy a {
	/* display: inline-block; */
	border: none;
	-webkit-transition: border .2s cubic-bezier(.2,-1.5,.8,2.2), color .4s cubic-bezier(.2,-1.5,.8,2.2);
	transition: border .2s cubic-bezier(.2,-1.5,.8,2.2), color .4s cubic-bezier(.2,-1.5,.8,2.2);
	-webkit-transition: border .2s var(--bounce2), color .4s var(--bounce2);
	transition: border .2s var(--bounce2), color .4s var(--bounce2);
	text-decoration: none;
	font-size: 1.2em;
	border-bottom: 1px solid #000000;
	border-bottom: 1px solid var( --color-theme-black );
	color: black;
}

.fancy a:hover {
		color: #000000 !important;
		color: var(--color-theme-black) !important;
		border-bottom: 3px solid #000000;
		border-bottom: 3px solid var( --color-theme-black );
		border-color: #000000 !important;
		border-color: var( --color-theme-black ) !important;
		/* font-size: 1.15em; */
		/* animation: rubberBand 1s 1; */
	}

.inverted .fancy a:hover {
		color: #ffff00 !important;
		color: var(--color-theme-yellow) !important;
		border-bottom: 3px solid #ffff00;
		border-bottom: 3px solid var( --color-theme-yellow );
		border-color: #ffff00 !important;
		border-color: var( --color-theme-yellow ) !important;
		/* font-size: 1.15em; */
		/* animation: rubberBand 1s 1; */
	}

.inverted a {
	color: #ffffff;
	color: var( --color-theme-white );
	border-color: #ffffff;
	border-color: var( --color-theme-white );
}

.inverted a:hover {
	color: #ffff00;
	color: var( --color-theme-yellow );
	border-color: #ffff00;
	border-color: var( --color-theme-yellow );
	text-decoration: none;
}

.col-2,
.col-3 {
	display: block;
}

.col-2.nb > *, .col-3.nb > * {
		border: none !important;
	}

.col-2 > *,
.col-3 > * {
	padding: 2vw;
	padding: var(--pad);
}

.col-2 > *:empty, .col-3 > *:empty {
		padding: 0;
	}

.col-2 > *:nth-child (even) {
	border-left: none;
}

.mw-c {
	max-width: none;
}

a.cln {
	border-bottom: none;
}

a.cln:hover {
		border-bottom: none;
	}

@media screen and (min-width: 37.5em) {

	.mw-c {
		max-width: 70vw;
	}

	.col-2,
	.col-3 {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
	}

	.col-2 > *,
	.col-3 > * {
		grid-column: span 2;
	}

	.col-2 > *:nth-child(odd),
	.col-3 > *:nth-child(odd) {
		border-right: 1px solid #000000;
		border-right: 1px solid var(--color-theme-black);
	}
}

/* adjust col-3 for wider screens */

@media screen and (min-width: 60em) {

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

	.col-3 > * {
		border-right: 1px solid #000000;
		border-right: 1px solid var(--color-theme-black);
		grid-column: span 2;
	}

	/* one dangling article. center it and add border */
	.col-3 > *:nth-last-child(1):nth-child(3n+1) {
		grid-column: 3 / span 2;
		border-left: 1px solid #000000;
		border-left: 1px solid var(--color-theme-black);
	}

	/* two dangling articles. center + border */
	.col-3 > *:nth-last-child(2):nth-child(3n+1) {
		grid-column: 2/span 2;
	}

	.col-3 > *:nth-last-child(1):nth-child(3n+2) {
		/* border-right: 1px solid var(--color-theme-black); */
	}

	.col-3 > *:nth-child(3n) {
		border-right: none;
	}
}

.inverted.col-2 > *:nth-child(2) {
	border-left: 1px solid #ffff00;
	border-left: 1px solid var(--color-theme-yellow);
}

/*--------------------------------------------------------------
# Imports Partials
--------------------------------------------------------------*/

/* Marquee styles */

.marquee {
	--gap: 1rem;
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	overflow: hidden;
	-webkit-user-select: none;
	   -moz-user-select: none;
	    -ms-user-select: none;
	        user-select: none;
	grid-gap: var(--gap);
	gap: var(--gap);
	border-bottom: 1px solid black;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	background-color: white;
	background-color: var(--marquee-bg, white);
	-webkit-box-shadow: 0 -1em 1em rgba(0, 0, 0, 0.3);
	        box-shadow: 0 -1em 1em rgba(0, 0, 0, 0.3);
	-webkit-box-shadow: var(--box-shadow-top);
	        box-shadow: var(--box-shadow-top);
}

.marquee__content {
	-ms-flex-negative: 0;
	    flex-shrink: 0;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack: distribute;
	    justify-content: space-around;
	grid-gap: var(--gap);
	gap: var(--gap);
	min-width: 100%;
	-webkit-animation: scroll 10s linear infinite;
	        animation: scroll 10s linear infinite;
	-webkit-animation: scroll var(--marquee-duration, 10s) linear infinite;
	        animation: scroll var(--marquee-duration, 10s) linear infinite;
	list-style: none;
	margin: 0;
}

.marquee__content	p {
	margin: 0;
}

@-webkit-keyframes scroll {
	from {
		-webkit-transform: translateX(0);
		        transform: translateX(0);
	}

	to {
		-webkit-transform: translateX(calc(-100% - var(--gap)));
		        transform: translateX(calc(-100% - var(--gap)));
	}
}

@keyframes scroll {
	from {
		-webkit-transform: translateX(0);
		        transform: translateX(0);
	}

	to {
		-webkit-transform: translateX(calc(-100% - var(--gap)));
		        transform: translateX(calc(-100% - var(--gap)));
	}
}

/* Pause animation when reduced-motion is set */

@media (prefers-reduced-motion: reduce) {
	.marquee__content {
		-webkit-animation-play-state: paused !important;
		        animation-play-state: paused !important;
	}
}

/* Reverse animation */

.marquee--reverse .marquee__content {
	animation-direction: reverse;
}

/* Pause on hover */

.marquee--hover-pause:hover .marquee__content {
	-webkit-animation-play-state: paused;
	        animation-play-state: paused;
}

/* Attempt to size parent based on content. Keep in mind that the parent width is equal to both content containers that stretch to fill the parent. */

.marquee--fit-content {
	max-width: -webkit-fit-content;
	max-width: -moz-fit-content;
	max-width: fit-content;
}

/* A fit-content sizing fix: Absolute position the duplicate container. This will set the size of the parent wrapper to a single child container. Shout out to Olavi's article that had this solution 👏 @link: https://olavihaapala.fi/2021/02/23/modern-marquee.html  */

.marquee--pos-absolute .marquee__content:last-child {
	position: absolute;
	top: 0;
	left: 0;
}

/* Enable position absolute animation on the duplicate content (last-child) */

.enable-animation .marquee--pos-absolute .marquee__content:last-child {
	-webkit-animation-name: scroll-abs;
	        animation-name: scroll-abs;
}

@-webkit-keyframes scroll-abs {
	from {
		-webkit-transform: translateX(calc(100% + var(--gap)));
		        transform: translateX(calc(100% + var(--gap)));
	}

	to {
		-webkit-transform: translateX(0);
		        transform: translateX(0);
	}
}

@keyframes scroll-abs {
	from {
		-webkit-transform: translateX(calc(100% + var(--gap)));
		        transform: translateX(calc(100% + var(--gap)));
	}

	to {
		-webkit-transform: translateX(0);
		        transform: translateX(0);
	}
}

.site-header {
	padding: 0;
	margin: 0 45px 0 0;
	margin: 0 var(--menubar-width) 0 0;
	overflow: hidden;
	-webkit-transition: background-color 0.3s ease;
	transition: background-color 0.3s ease;
	position: relative;
	z-index: 100;
	z-index: var(--z-header);
}

.site-header .newsletter-signup svg circle {
			-webkit-transition: fill 0.3s ease;
			transition: fill 0.3s ease;
		}

.site-header .newsletter-signup:hover svg circle {
			fill: #ffffff !important;
			fill: var(--color-theme-white) !important;
		}

.site-header .header-image svg .fill {
		-webkit-transition: fill 0.6s ease;
		transition: fill 0.6s ease;
	}

.site-header:hover {
		background-color: #ffff00;
		background-color: var(--color-theme-yellow);
	}

.site-header:hover .header-image svg .fill {
			fill: #ffff00;
			fill: var(--color-theme-yellow);
		}

.full-width {
	margin: 0 0 0 calc(2vw * -1);
	margin: 0 0 0 calc(var(--pad) * -1);
}

.header-image {
	height: 5em;
	overflow: hidden;
	padding-right: 3em;
	position: relative;
}

.header-image svg {
		position: absolute;
		bottom: 0;
		max-width: 85vw;
	}

@media screen and (min-width: 37.5em) {

.header-image {
		height: 8em
}

		.header-image svg {
			max-width: 90vw;
			bottom: -0.5rem;
		}
	}

a.home-link {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	overflow: hidden;
}

.newsletter-signup {
	position: absolute;
	top: 0;
	z-index: 1;
	right: 2vw;
	right: var(--pad);
}

@media screen and (min-width: 37.5em) {

.newsletter-signup {
		right: 45px;
		right: var(--menubar-width)
}
	}

.signup-link {
	position: absolute;
	width: 25vw;
	top: -12vw;
	right: 0;
}

@media screen and (min-width: 37.5em) {

	.signup-link {
		width: 15vw;
		top: -7.5vw;
	}
}

/* shadow on the header for pages that dont have an element that drop the shadow there */

.page-template .site-main, .page-template-default .site-main {
		position: relative;
	}

.page-template .site-main::before, .page-template-default .site-main::before {
			content: "";
			display: block;
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100px;
			-webkit-box-shadow: 0 -1em 1em rgba(0, 0, 0, 0.3);
			        box-shadow: 0 -1em 1em rgba(0, 0, 0, 0.3);
			-webkit-box-shadow: var(--box-shadow-top);
			        box-shadow: var(--box-shadow-top);
			z-index: 100;
			z-index: var(--z-header);
			pointer-events: none;
		}

.socials {
	padding: 0;
	margin: 0;
	list-style: none;
	position: absolute;
	top: 10px;
	left: 2vw;
	left: var(--pad);
}

.socials a {
		border-bottom: 0;
	}

.socials li {
		display: inline;
	}

.socials li svg {
			width: 2vw;
			min-width: 30px;
			max-width: 60px;
			height: 2vw;
			min-height: 30px;
			max-height: 60px;
			-webkit-transition: fill 0.3s ease;
			transition: fill 0.3s ease;
		}

.socials li:hover svg {
			fill: white;
		}

/* @import "partials/_dossier.css"; */

.flickity-slider .slide {
        position: relative;
        width: 100%;
        padding-bottom: 50%;
        height: 0;
        overflow: hidden;
        min-height: 400px;
    }

.flickity-slider .slide-content-wrapper {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }

.flickity-slider .slide-content-wrapper h3 {
            margin: 0;
            padding-left: 2vw;
            padding-left: var( --pad );
            /* font-family: var( --font-serif ); */
        }

.flickity-slider .slide-content {
        position: absolute;
        top: 4.5rem;
        left: 0;
        right: 0;
        bottom: 0;
    }

.flickity-slider .video-oembed,
    .flickity-slider .slide-bg {
        position: absolute;
        top: 0;
        left: 0;
        right: calc( 25% - 2vw / 2 );
        right: calc( 25% - var( --pad ) / 2 );
        bottom: 0;
    }

.flickity-slider .has-video {
        cursor: pointer;
    }

.flickity-slider .video-oembed:before,
        .flickity-slider .video-oembed:after {
            content: '';
            display: block;
            position: absolute;
            top: 50%;
            left: 50%;
            -webkit-transform: translate( -50%, -50% );
                    transform: translate( -50%, -50% );
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
        }

.flickity-slider .video-oembed:before {
            --button-size: 4vw;
            --half-size: calc( var( --button-size ) / 2 );
            width: var( --button-size );
            height: var( --button-size );
            border-style: solid;
            border-width: var( --half-size ) 0px var( --half-size ) var( --button-size );
            border-color: transparent transparent transparent white;
            -webkit-transition: all 0.3s cubic-bezier(.2,-1.5,.8,2.2);
            transition: all 0.3s cubic-bezier(.2,-1.5,.8,2.2);
            -webkit-transition: all 0.3s var( --bounce2 );
            transition: all 0.3s var( --bounce2 );
        }

.flickity-slider .video-oembed:after {
            --button-size: 8vw;
            --half-size: calc( var( --button-size ) / 2 );
            width: var( --button-size );
            height: var( --button-size );
            /* border: solid 1px white; */
            border-radius: 50%;
            -webkit-transform: translate( -55%, -50% );
                    transform: translate( -55%, -50% );
            background-color: rgba( 255, 255, 255, 0.5 );
            -webkit-transition: all 0.6s cubic-bezier(.2,-1.5,.8,2.2);
            transition: all 0.6s cubic-bezier(.2,-1.5,.8,2.2);
            -webkit-transition: all 0.6s var( --bounce2 );
            transition: all 0.6s var( --bounce2 );
        }

.flickity-slider .video-oembed iframe {
            width: 100%;
            height: 100%;
            display: none;
        }

.flickity-slider .video-oembed:hover:after {
                --button-size: 0px;
                background-color: rgba( 255, 255, 255, .7 );
            }

.flickity-slider .video-oembed:hover:before {
                --button-size: 60px;
            }

.flickity-slider .video-oembed.hide-play-button:before,
            .flickity-slider .video-oembed.hide-play-button:after {
                display: none;
            }

.flickity-slider .slide-bg {
        background-size: cover;
        background-position: center center;
    }

.flickity-slider .slide-descr {
        background-color: #ffffff;
        background-color: var( --color-theme-white );
        position: absolute;
        right: 0;
        top: 0;
        bottom: 0;
        width: 100%;
        padding: 0 2vw;
        padding: 0 var( --pad );
        -webkit-transition: -webkit-transform 0.5s ease;
        transition: -webkit-transform 0.5s ease;
        transition: transform 0.5s ease;
        transition: transform 0.5s ease, -webkit-transform 0.5s ease;
        -webkit-transform: translateX( 75% );
                transform: translateX( 75% );
        overflow-y: scroll;
        -webkit-box-shadow: -10px 0 10px rgba(0, 0, 0, 0.3);
                box-shadow: -10px 0 10px rgba(0, 0, 0, 0.3);
        -webkit-box-shadow: -10px 0 10px var( --box-shadow-color );
                box-shadow: -10px 0 10px var( --box-shadow-color );
        z-index: 10;
    }

.flickity-slider .slide .slide-descr.hover {
        -webkit-transform: translateX( 0 );
                transform: translateX( 0 );
    }

.carousel-wrapper {
    position: relative;
}

.carousel-wrapper .next-speaker {
        position: relative;
        z-index: 10;
        z-index: var( --z-interface );
        cursor: e-resize;
        padding-left: 2vw;
        padding-left: var( --pad );
    }

.carousel-wrapper .carousel-counter {
        position: absolute;
        right: 2vw;
        right: var( --pad );
    }

@media screen and (min-width: 37.5em) {

        .flickity-slider .slide-descr {
            width: 50%;
/*             width: calc(50% - (var(--pad)/2)); */
            -webkit-transform: translateX( 50% );
                    transform: translateX( 50% );
        }
    
        .flickity-slider .slide-descr.hover {
            -webkit-transform: translateX( 0 );
                    transform: translateX( 0 );
        }

    .carousel-wrapper {
        position: relative;
    }
    
        .carousel-wrapper .next-speaker {
            position: absolute;
            right: 2vw;
            right: var( --pad );
            z-index: 10;
            z-index: var( --z-interface );
            cursor: e-resize;
            padding-left: 0;
        }
    
        .carousel-wrapper .carousel-counter {
            display: inline;
            position: absolute;
            left: 50%;
            right: auto;
            -webkit-transform: translateX(-50%);
                    transform: translateX(-50%);
            z-index: 10;
            z-index: var( --z-interface );
        }
}

.icon {
}

.icon:after {
	display: inline-block;
	content: '';
	background-repeat: no-repeat;
	background-position: center center;
}

.icon-after:after {
	margin-left: 0.5rem;
}

.icon:before {
	display: inline-block;
	content: '';
	background-repeat: no-repeat;
	background-position: center center;
}

.icon-before::before {
	margin-right: 0.5rem;
}

.icon-hide-text {
	
}

.icon-arrow-e.icon-before:before,
.icon-arrow-e.icon-after:after {
	background-image: url( '../svg/arrow-e.svg' );
	background-size: 24px 16px;
	width: 24px;
	height: 16px;
}

.icon-arrow-w.icon-before:before,
.icon-arrow-w.icon-after:after {
	background-image: url( '../svg/arrow-w.svg' );
	background-size: 24px 16px;
	width: 24px;
	height: 16px;
}

.pulse {
	-webkit-animation-name: pulse;
	animation-name: pulse;
	-webkit-animation-duration: 1s;
	animation-duration: 1s;
	-webkit-animation-fill-mode: both;
	animation-fill-mode: both;
}

@-webkit-keyframes pulse {
	0% {
		-webkit-transform: scale3d(1, 1, 1);
		transform: scale3d(1, 1, 1);
	}
	50% {
		-webkit-transform: scale3d(1.05, 1.05, 1.05);
		transform: scale3d(1.05, 1.05, 1.05);
	}
	100% {
		-webkit-transform: scale3d(1, 1, 1);
		transform: scale3d(1, 1, 1);
	}
}

@-webkit-keyframes fade-in {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

@-webkit-keyframes fade-out {
	0% {
		opacity: 1;
	}
	100% {
		opacity: 0;
	}
}

@keyframes pulse {
	0% {
		-webkit-transform: scale3d(1, 1, 1);
		transform: scale3d(1, 1, 1);
	}
	50% {
		-webkit-transform: scale3d(1.05, 1.05, 1.05);
		transform: scale3d(1.2, 1.2, 1.2);
	}
	100% {
		-webkit-transform: scale3d(1, 1, 1);
		transform: scale3d(1, 1, 1);
	}
}

@-webkit-keyframes rubberBand {
	0% {
		-webkit-transform: scale3d(1, 1, 1);
		transform: scale3d(1, 1, 1);
	}
	30% {
		-webkit-transform: scale3d(1.25, 0.75, 1);
		transform: scale3d(1.25, 0.75, 1);
	}
	40% {
		-webkit-transform: scale3d(0.75, 1.25, 1);
		transform: scale3d(0.75, 1.25, 1);
	}
	50% {
		-webkit-transform: scale3d(1.15, 0.85, 1);
		transform: scale3d(1.15, 0.85, 1);
	}
	65% {
		-webkit-transform: scale3d(0.95, 1.05, 1);
		transform: scale3d(0.95, 1.05, 1);
	}
	75% {
		-webkit-transform: scale3d(1.05, 0.95, 1);
		transform: scale3d(1.05, 0.95, 1);
	}
	100% {
		-webkit-transform: scale3d(1, 1, 1);
		transform: scale3d(1, 1, 1);
	}
}

@keyframes rubberBand {
	0% {
		-webkit-transform: scale3d(1, 1, 1);
		transform: scale3d(1, 1, 1);
	}
	30% {
		-webkit-transform: scale3d(1.25, 0.75, 1);
		transform: scale3d(1.25, 0.75, 1);
	}
	40% {
		-webkit-transform: scale3d(0.75, 1.25, 1);
		transform: scale3d(0.75, 1.25, 1);
	}
	50% {
		-webkit-transform: scale3d(1.15, 0.85, 1);
		transform: scale3d(1.15, 0.85, 1);
	}
	65% {
		-webkit-transform: scale3d(0.95, 1.05, 1);
		transform: scale3d(0.95, 1.05, 1);
	}
	75% {
		-webkit-transform: scale3d(1.05, 0.95, 1);
		transform: scale3d(1.05, 0.95, 1);
	}
	100% {
		-webkit-transform: scale3d(1, 1, 1);
		transform: scale3d(1, 1, 1);
	}
}

@-webkit-keyframes wobble-hor-bottom {
	0%,
	100% {
			  -webkit-transform: translateX(0%);
			          transform: translateX(0%);
			  -webkit-transform-origin: 50% 50%;
			          transform-origin: 50% 50%;
	}
	15% {
			  -webkit-transform: translateX(-30px) rotate(-6deg);
			          transform: translateX(-30px) rotate(-6deg);
	}
	30% {
			  -webkit-transform: translateX(15px) rotate(6deg);
			          transform: translateX(15px) rotate(6deg);
	}
	45% {
			  -webkit-transform: translateX(-15px) rotate(-3.6deg);
			          transform: translateX(-15px) rotate(-3.6deg);
	}
	60% {
			  -webkit-transform: translateX(9px) rotate(2.4deg);
			          transform: translateX(9px) rotate(2.4deg);
	}
	75% {
			  -webkit-transform: translateX(-6px) rotate(-1.2deg);
			          transform: translateX(-6px) rotate(-1.2deg);
	}
  }

@keyframes wobble-hor-bottom {
	0%,
	100% {
			  -webkit-transform: translateX(0%);
			          transform: translateX(0%);
			  -webkit-transform-origin: 50% 50%;
			          transform-origin: 50% 50%;
	}
	15% {
			  -webkit-transform: translateX(-30px) rotate(-6deg);
			          transform: translateX(-30px) rotate(-6deg);
	}
	30% {
			  -webkit-transform: translateX(15px) rotate(6deg);
			          transform: translateX(15px) rotate(6deg);
	}
	45% {
			  -webkit-transform: translateX(-15px) rotate(-3.6deg);
			          transform: translateX(-15px) rotate(-3.6deg);
	}
	60% {
			  -webkit-transform: translateX(9px) rotate(2.4deg);
			          transform: translateX(9px) rotate(2.4deg);
	}
	75% {
			  -webkit-transform: translateX(-6px) rotate(-1.2deg);
			          transform: translateX(-6px) rotate(-1.2deg);
	}
  }

@-webkit-keyframes slide-in-blurred-top {
	0% {
			  -webkit-transform: translateY(-1000px) scaleY(2.5) scaleX(0.2);
			          transform: translateY(-1000px) scaleY(2.5) scaleX(0.2);
			  -webkit-transform-origin: 50% 0%;
			          transform-origin: 50% 0%;
			  -webkit-filter: blur(40px);
			          filter: blur(40px);
				opacity: 0;
	}
	100% {
			  -webkit-transform: translateY(0) scaleY(1) scaleX(1);
			          transform: translateY(0) scaleY(1) scaleX(1);
			  -webkit-transform-origin: 50% 50%;
			          transform-origin: 50% 50%;
			  -webkit-filter: blur(0);
			          filter: blur(0);
				opacity: 1;
	}
  }

@keyframes slide-in-blurred-top {
	0% {
			  -webkit-transform: translateY(-1000px) scaleY(2.5) scaleX(0.2);
			          transform: translateY(-1000px) scaleY(2.5) scaleX(0.2);
			  -webkit-transform-origin: 50% 0%;
			          transform-origin: 50% 0%;
			  -webkit-filter: blur(40px);
			          filter: blur(40px);
				opacity: 0;
	}
	100% {
			  -webkit-transform: translateY(0) scaleY(1) scaleX(1);
			          transform: translateY(0) scaleY(1) scaleX(1);
			  -webkit-transform-origin: 50% 50%;
			          transform-origin: 50% 50%;
			  -webkit-filter: blur(0);
			          filter: blur(0);
				opacity: 1;
	}
  }

@-webkit-keyframes jello2 {
	from, 11.1%, to {
	  -webkit-transform: none;
	          transform: none;
	}
  
	22.2% {
	  -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
	          transform: skewX(-12.5deg) skewY(-12.5deg);
	}
  
	33.3% {
	  -webkit-transform: skewX(6.25deg) skewY(6.25deg);
	          transform: skewX(6.25deg) skewY(6.25deg);
	}
  
	44.4% {
	  -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
	          transform: skewX(-3.125deg) skewY(-3.125deg);
	}
  
	55.5% {
	  -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
	          transform: skewX(1.5625deg) skewY(1.5625deg);
	}
  
	66.6% {
	  -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
	          transform: skewX(-0.78125deg) skewY(-0.78125deg);
	}
  
	77.7% {
	  -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
	          transform: skewX(0.390625deg) skewY(0.390625deg);
	}
  
	88.8% {
	  -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
	          transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
	}
  }

@keyframes jello2 {
	from, 11.1%, to {
	  -webkit-transform: none;
	          transform: none;
	}
  
	22.2% {
	  -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
	          transform: skewX(-12.5deg) skewY(-12.5deg);
	}
  
	33.3% {
	  -webkit-transform: skewX(6.25deg) skewY(6.25deg);
	          transform: skewX(6.25deg) skewY(6.25deg);
	}
  
	44.4% {
	  -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
	          transform: skewX(-3.125deg) skewY(-3.125deg);
	}
  
	55.5% {
	  -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
	          transform: skewX(1.5625deg) skewY(1.5625deg);
	}
  
	66.6% {
	  -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
	          transform: skewX(-0.78125deg) skewY(-0.78125deg);
	}
  
	77.7% {
	  -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
	          transform: skewX(0.390625deg) skewY(0.390625deg);
	}
  
	88.8% {
	  -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
	          transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
	}
  }

/*
"Say 'Nevermore,'" said Shadow.
"Fuck you," said the raven.”
*/

.sh-t {
	-webkit-box-shadow: inset 0 1em 1em rgba(0, 0, 0, 0.3);
	        box-shadow: inset 0 1em 1em rgba(0, 0, 0, 0.3);
	-webkit-box-shadow: var(--box-shadow-top-inset);
	        box-shadow: var(--box-shadow-top-inset);
}

.sh-to {
	-webkit-box-shadow: 0 -1em 1em rgba(0, 0, 0, 0.3);
	        box-shadow: 0 -1em 1em rgba(0, 0, 0, 0.3);
	-webkit-box-shadow: var(--box-shadow-top);
	        box-shadow: var(--box-shadow-top);
}

.sh-b {
	-webkit-box-shadow: inset 0 -1em 1em rgba(0, 0, 0, 0.3);
	        box-shadow: inset 0 -1em 1em rgba(0, 0, 0, 0.3);
	-webkit-box-shadow: var(--box-shadow-bottom-inset);
	        box-shadow: var(--box-shadow-bottom-inset);
}

.sh-bo {
	-webkit-box-shadow: 0 1em 1em rgba(0, 0, 0, 0.3);
	        box-shadow: 0 1em 1em rgba(0, 0, 0, 0.3);
	-webkit-box-shadow: var(--box-shadow-bottom);
	        box-shadow: var(--box-shadow-bottom);
}

.sh-tb {
	-webkit-box-shadow: inset 0 1em 1em rgba(0, 0, 0, 0.3), inset 0 -1em 1em rgba(0, 0, 0, 0.3);
	        box-shadow: inset 0 1em 1em rgba(0, 0, 0, 0.3), inset 0 -1em 1em rgba(0, 0, 0, 0.3);
	-webkit-box-shadow: var(--box-shadow-top-inset), var(--box-shadow-bottom-inset);
	        box-shadow: var(--box-shadow-top-inset), var(--box-shadow-bottom-inset);
}

.sh-tbo {
	-webkit-box-shadow: 0 -1em 1em rgba(0, 0, 0, 0.3), 0 1em 1em rgba(0, 0, 0, 0.3);
	        box-shadow: 0 -1em 1em rgba(0, 0, 0, 0.3), 0 1em 1em rgba(0, 0, 0, 0.3);
	-webkit-box-shadow: var(--box-shadow-top), var(--box-shadow-bottom);
	        box-shadow: var(--box-shadow-top), var(--box-shadow-bottom);
}

/* .shadow-t {
	box-shadow: var(--box-shadow-top);
}

.shadow-b {
	box-shadow: var(--box-shadow-bottom);
}

.shadow-ti {
	box-shadow: var(--box-shadow-top-inset);
}

.shadow-bi {
	box-shadow: var(--box-shadow-bottom-inset);
}

.shadow-t-b {
	box-shadow: var(--box-shadow-top), var(--box-shadow-bottom);
}

.shadow-t-bi {
	box-shadow: var(--box-shadow-top), var(--box-shadow-bottom-inset);
}

.shadow-ti-b {
	box-shadow: var(--box-shadow-top-inset), var(--box-shadow-bottom);
}

.shadow-ti-bi {
	box-shadow: var(--box-shadow-top-inset), var(--box-shadow-bottom-inset);
} */

/*--------------------------------------------------------------
# Accessibility
--------------------------------------------------------------*/

/**
 * Text meant only for screen readers.
 * Re: word-wrap: Many screen reader and browser combinations announce broken
 * words as they would appear visually.
 */

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	position: absolute !important;
	height: 1px;
	width: 1px;
	overflow: hidden;
	word-wrap: normal !important;
	margin: 0;
	padding: 0;
}

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

/* Do not show the outline on the skip link target. */

#primary[tabindex="-1"]:focus {
	outline: 0;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/

.site {
	margin: 0;
	max-width: 100%;
}

.site-main {
	margin-right: 45px;
	margin-right: var(--menubar-width);
	background-color: #ffffff;
	background-color: var(--color-theme-white);
}

@media screen and (min-width: 37.5em) {
	.home .site-main {
		padding-left: 0;
	}
}

@media screen and (min-width: 60em) {
	.has-sidebar .site {
		-webkit-box-pack: center;
		    -ms-flex-pack: center;
		        justify-content: center;
	}

	.site-header {
		grid-column: span 2;
	}

	.site-main {
		grid-column: 1;
		min-width: 0;
	}

	.primary-sidebar {
		grid-column: 2;
		min-width: 0;
	}
}

.sticky {
	position: sticky;
	top: -1px;
}

/*--------------------------------------------------------------
# Forms
--------------------------------------------------------------*/

textarea {
	width: 100%;
}

button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	border: none;
	border-radius: 0;
	background: none;
	font-size: inherit;
	line-height: 1;
	padding: 0;
	cursor: pointer;
	border-bottom-width: 1px;
}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/

.header-image {
	margin: 0 auto;
}

.header-image img {
	display: block;
	margin: 0 auto;
}

.custom-logo-link {
	display: inline-block;
	margin: 0 auto 1em;
}

.site-branding {
	text-align: center;
	padding: 60px 0 1.75em;
}

.site-title {
	margin: 0 1em;
	font-family: var(--highlight-font-family);
	font-stretch: condensed;
	font-size: 38px;
	line-height: 1.2;
	color: #333332;
}

.site-title a {
	text-decoration: none;
	color: inherit;
}

.site-description {
	margin: 0.4375em 0 0;
	font-family: var(--highlight-font-family);
	font-stretch: condensed;
	font-size: 17px;
	line-height: 1.4;
	word-wrap: break-word;
	color: #757575;
}

/*--------------------------------------------------------------
## Basic navigation menus - handles submenu and small screen toggle
--------------------------------------------------------------*/

.nav--toggle-small .menu-toggle {
	display: block;
	margin: 1.2em auto;
	padding: 0.6em 1.2em 0.5em;
	font-family: var(--highlight-font-family);
	font-stretch: condensed;
	font-size: 80%;
	text-transform: uppercase;
	border: 2px solid #000;
	border-radius: 0;
	background: transparent;
}

.nav--toggle-small .menu {
	display: none;
}

.nav--toggle-sub .dropdown,
.nav--toggle-sub .dropdown-toggle {
	display: none;
}

@media screen and (max-width: 37.5em) {
	.nav--toggle-small.nav--toggled-on .menu {
		display: block;
	}
}

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

	.nav--toggle-small .menu {
		display: block;
	}

	.nav--toggle-sub ul ul {
		display: none;
		position: absolute;
		top: 100%;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		    -ms-flex-direction: column;
		        flex-direction: column;
		background: #fff;
		margin-left: 0;
		-webkit-box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
		        box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
		z-index: 1;
	}

	.nav--toggle-sub .dropdown,
	.nav--toggle-sub .dropdown-toggle {
		display: block;
		background: transparent;
		position: absolute;
		right: 0;
		top: 50%;
		width: 0.7em;
		width: var(--dropdown-symbol-width);
		height: 0.7em;
		height: var(--dropdown-symbol-width);
		font-size: inherit;
		line-height: inherit;
		margin: 0;
		padding: 0;
		border: none;
		border-radius: 0;
		-webkit-transform: translateY(-50%);
		        transform: translateY(-50%);
		overflow: visible;
	}

	.nav--toggle-sub .dropdown-symbol {
		display: block;
		background: transparent;
		position: absolute;
		right: 20%;
		top: 35%;
		width: 60%;
		height: 60%;
		border: solid #000;
		border-width: 0 2px 2px 0;
		-webkit-transform: translateY(-50%) rotate(45deg);
		        transform: translateY(-50%) rotate(45deg);
	}

	.nav--toggle-sub ul ul .dropdown,
	.nav--toggle-sub ul ul .dropdown-toggle {
		top: 40%;
		right: 0.2em;
	}

	.nav--toggle-sub ul ul .dropdown-symbol {
		-webkit-transform: rotate(-45deg);
		        transform: rotate(-45deg);
	}

	.nav--toggle-sub .dropdown-toggle:hover,
	.nav--toggle-sub .menu-item--has-toggle:hover .dropdown-toggle {
		pointer-events: none;
	}

	/* Need menu-item-has-children for non-JS */
	.nav--toggle-sub li.menu-item-has-children,
	.nav--toggle-sub li.menu-item--has-toggle {
		position: relative;
		padding-right: 0.7em;
		padding-right: var(--dropdown-symbol-width);
	}

	/*
	 * If the dropdown toggle is active with JS, then
	 * we'll take care of showing the submenu with JS.
	 */
	.nav--toggle-sub li:hover > ul,
	.nav--toggle-sub li.menu-item--toggled-on > ul,
	.nav--toggle-sub li:not(.menu-item--has-toggle):focus > ul {
		display: block;
	}

	/*
	 * "focus-within" is an alternative to focus class for
	 * supporting browsers (all but IE/Edge) for no-JS context
	 * (e.g. AMP) See https://caniuse.com/#feat=css-focus-within
	 *
	 * This selector needs to stay separated, otherwise submenus
	 * will not be displayed with IE/Edge.
	 */
	.nav--toggle-sub li:not(.menu-item--has-toggle)[focus-within] > ul {
		display: block;
	}
	.nav--toggle-sub li:not(.menu-item--has-toggle):focus-within > ul {
		display: block;
	}
}

/*--------------------------------------------------------------
## Main navigation menu
--------------------------------------------------------------*/

.main-navigation {
	clear: both;
	display: block;
	margin: 0 auto 2em;
	padding: 0 1em;
	max-width: 70vw;
	max-width: var(--content-width);
	font-family: var(--highlight-font-family);
	font-stretch: condensed;
}

.main-navigation a {
	display: block;
	width: 100%;
	padding: 0.5em 1em 0.5em 0;
	text-decoration: none;
	color: #000;
}

.main-navigation a:hover,
.main-navigation a:focus {
	text-decoration: underline;
}

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

.main-navigation ul ul li {
	padding-left: 1em;
}

@media screen and (min-width: 37.5em) {
	.main-navigation ul li a {
		padding: 0.4em 0.5em;
	}

	.main-navigation ul li {
		margin: 0 0 0 0.5em;
	}

	.main-navigation ul li:first-child {
		margin-left: 0;
	}

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

	/* stylelint-disable */
	.main-navigation ul ul li {
		padding-left: 0;
		margin-left: 0;
	}
	/* stylelint-enable */

	.main-navigation ul ul li a {
		width: 218px;
		background: none;
	}

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

	.main-navigation .menu {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		    flex-wrap: wrap;
		-webkit-box-pack: center;
		    -ms-flex-pack: center;
		        justify-content: center;
	}
}

/*--------------------------------------------------------------
# Content navigation
--------------------------------------------------------------*/

@media screen and (min-width: 48em) {
	.site-main .comment-navigation,
	.site-main .posts-navigation,
	.site-main .post-navigation,
	.site-main .pagination {
		padding-left: 0;
		padding-right: 0;
	}
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
	display: inline;
}

.comment-navigation .nav-previous:not(:last-child)::after, .posts-navigation .nav-previous:not(:last-child)::after, .post-navigation .nav-previous:not(:last-child)::after {
		content: " / ";
	}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
	display: inline;
}

.post-navigation-sub span {
	color: #000000;
	color: var(--global-font-color);
	text-decoration: none;
	display: inline-block;
}

.site-main .pagination {
	margin-bottom: 1.5em;
}

.pagination .nav-links {
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
}

.pagination .page-numbers {
	display: inline-block;
	margin-bottom: 0.5em;
	margin-right: 1em;
	border: 1px solid #000;
	border: 1px solid var(--color-link);
	min-width: 1.75em;
	line-height: 1.75;
	text-align: center;
	text-decoration: none;
}

.pagination a:visited {
	color: #000;
	color: var(--color-link);
}

.pagination a:hover,
.pagination a:focus,
.pagination a:active {
	border-color: #00a0d2;
}

.pagination .prev,
.pagination .next {
	min-width: auto;
	border-color: transparent;
	text-decoration: underline;
}

.pagination .prev:hover,
.pagination .prev:focus,
.pagination .prev:active,
.pagination .next:hover,
.pagination .next:focus,
.pagination .next:active {
	border-color: transparent;
}

.pagination .dots {
	min-width: auto;
	border: none;
}

.pagination .current {
	border-color: #000000;
	border-color: var(--global-font-color);
}

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/

.site-footer {

	font-family: var(--highlight-font-family);
	font-stretch: condensed;
	height: 100vh;
}

@media screen and (min-width: 37.5em) {

.site-footer {
		margin: 0 45px 0 0;
		margin: 0 var(--menubar-width) 0 0
}
	}

.site-footer > canvas {
		width: 100%;
		height: 100%;

		z-index: -1;
		position: fixed;
		top: 0;
	}

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

.page article, .single article {
		padding-bottom: calc( 2vw * 2 );
		padding-bottom: var(--pad2);
	}

/*--------------------------------------------------------------
# Infinite scroll
--------------------------------------------------------------*/

/* Globally hidden elements when Infinite Scroll is supported and in use. */

.infinite-scroll .posts-navigation,
.infinite-scroll .pagination,
.infinite-scroll.neverending .site-footer {
	/* Theme Footer (when set to scrolling) */
	display: none;
}

/* When Infinite Scroll has reached its end we need to re-display elements that
were hidden (via .neverending) before. */

.infinity-end.neverending .site-footer {
	display: block;
}

.clr::after {
	content: "";
	display: table;
	clear: both;
}

.outer {
	padding: 0 2vw;
	padding: 0 var(--pad);
}

.inverted {
	background-color: #000000;
	background-color: var(--color-theme-black);
	color: #ffffff;
	color: var(--color-theme-white);
}

.ptb {
	padding-top: 2vw;
	padding-top: var(--pad);
	padding-bottom: 2vw;
	padding-bottom: var(--pad);
}

.max {
	margin-left: calc(2vw * -1);
	margin-left: calc(var(--pad) * -1);
}

@media screen and (max-width: 37.5em) {
	.dossier-intro {
		display: block;
	}
}

.welcome-text {
	text-align: center;
	overflow: hidden;
	line-height: 1;
	margin: 0 auto;
}

/* width: 66%; */

@media screen and (min-width: 37.5em) {

.welcome-text {
		/* font-size: var(--font-size-intro); */
		width: 80%
}
	}

.welcome-text p {
		margin: 0;
		font-size: 1.2em;
	}

.welcome-text .welcome-inner {
	}

.alignfull {
	overflow: hidden;
}

.alignfull .wp-block-embed__wrapper {
		margin: 0;
	}

.disabled {
	color: #000000;
	color: var(--color-theme-black);
}

.footnote_plugin_tooltip_text {
	top: 0.5em !important;
}

.footnote_plugin_text,
.footnote_plugin_index,
.footnote_container_prepare,
.footnote_container_prepare p {
	font-family: 'NotCourier', Courier, 'Courier New', monospace;
	font-family: var(--font-mono);
	font-size: 0.8rem;
	font-size: var(--font-size-small);
	border-bottom: none !important;
}

.image-size > * {
	top: 0px;
	width: 100%;
	width: calc(100vw - 45px);
	width: calc(100vw - var(--menubar-width));
}

.post-navigation-bar {
	text-align: center;
	border-bottom: 1px solid black;
	z-index: 100;
	z-index: var(--z-header);
}

.post-navigation-bar.col-2 > div {
		padding: 10px 2vw;
		padding: 10px var(--pad);
	}

.post-navigation-bar button {
		background: none;
		border-bottom: 1px solid #000000;
		border-bottom: 1px solid var(--color-theme-black);
		border-radius: 0;
		padding: 0;
		display: inline;
		font-size: 1rem;
		font-size: var(--font-size-regular);
	}

.post-navigation-bar button:hover {
			border-bottom-width: 2px;
		}

.post-navigation-bar.top {
	-webkit-box-shadow: 0 -1em 1em rgba(0, 0, 0, 0.3);
	        box-shadow: 0 -1em 1em rgba(0, 0, 0, 0.3);
	-webkit-box-shadow: var(--box-shadow-top);
	        box-shadow: var(--box-shadow-top);
	margin-bottom: 2vw;
	margin-bottom: var(--pad);
}

.post-navigation-bar.bottom {
	border-top: 1px solid black;
	border-bottom: none;
}

.vdm-close-wrapper {
	background-color: transparent !important;
}

.vdm-close-wrapper a {
		border-bottom: none;
	}

.vdm-ticket-frame-wrapper.open {
	width: calc(50vw + 45px / 2) !important;
	width: calc(50vw + var(--menubar-width) / 2) !important;
}

.page-template-dossiers-page h3 {
		margin-top: 0;
		padding-top: 2vw;
		padding-top: var(--pad);
	}

.page-template-dossiers-page main.site-main {
		padding-left: 0;
	}

/* fix for voordemensen plugin getting covered by the sidebar */

.tingle-enabled .primary-sidebar {
	display: none;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9nbG9iYWwuY3NzIiwic3JjL19jdXN0b20tcHJvcGVydGllcy5jc3MiLCJzcmMvX3Jlc2V0LmNzcyIsInNyYy9fdHlwb2dyYXBoeS5jc3MiLCJzcmMvX2VsZW1lbnRzLmNzcyIsInNyYy9fbGlua3MuY3NzIiwic3JjL19jb2x1bW5zLmNzcyIsInNyYy9wYXJ0aWFscy9fbWFycXVlZS5jc3MiLCJzcmMvcGFydGlhbHMvX2hlYWRlci5jc3MiLCJzcmMvcGFydGlhbHMvX2ZsaWNraXR5LWN1c3RvbS5jc3MiLCJzcmMvcGFydGlhbHMvX2ljb25zLmNzcyIsInNyYy9wYXJ0aWFscy9fYW5pbWF0aW9ucy5jc3MiLCJzcmMvcGFydGlhbHMvX3NoYWRvd3MuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztnRUFpQmdFOztBQUVoRTs7Z0VBRWdFOztBQ3JCaEU7Ozs7O0lBS0k7O0FBRUo7Q0FDQyxXQUFXO0NBQ1gscUNBQXFDO0NBQ3JDLGlDQUFpQzs7Q0FFakMsNkJBQTZCO0NBQzdCLGtEQUFrRDtDQUNsRCwwREFBMEQ7Q0FDMUQsMENBQTBDO0NBQzFDLDZEQUE2RDs7Q0FFN0QsdUJBQXVCO0NBQ3ZCLCtCQUErQjtDQUMvQixnR0FBZ0c7Q0FDaEcsc0JBQXNCO0NBQ3RCLCtCQUErQjtDQUMvQixzQkFBc0I7O0NBRXRCLDBCQUEwQjtDQUMxQiwrQkFBK0I7Q0FDL0IsaUNBQWlDO0NBQ2pDLDhCQUE4QjtDQUM5QixzQ0FBc0M7O0NBRXRDLDZCQUE2QjtDQUM3Qiw0QkFBNEI7Q0FDNUIsNkJBQTZCOztDQUU3QixtQkFBbUI7Q0FDbkIsMkJBQTJCLFNBQVM7Q0FDcEMsMEJBQTBCLFlBQVk7O0NBRXRDLDJCQUEyQjtDQUMzQixnQ0FBZ0M7O0NBRWhDLDhCQUE4Qjs7Q0FFOUIseUNBQXlDO0NBQ3pDLDBCQUEwQjtDQUMxQiwwQkFBMEI7Q0FDMUIsd0JBQXdCO0NBQ3hCLDBCQUEwQjtDQUMxQiwyQkFBMkI7O0NBRTNCLDBCQUEw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LGdFQUFnRTs7QUFFaEU7Q0FDQyxjQUFjO0NBQ2QiLCJmaWxlIjoiZ2xvYmFsLm1pbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4+Pj4gVEFCTEUgT0YgQ09OVEVOVFM6XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEltcG9ydHNcblx0IyBDdXN0b20gcHJvcGVydGllc1xuXHQjIFJlc2V0XG5cdCMgVHlwb2dyYXBoeVxuXHQjIEVsZW1lbnRzXG5cdCMgTGlua3NcbiMgQWNjZXNzaWJpbGl0eVxuIyBMYXlvdXRcbiMgRm9ybXNcbiMgSGVhZGVyXG5cdCMgTWFpbiBuYXZpZ2F0aW9uIG1lbnVcbiMgQ29udGVudCBuYXZpZ2F0aW9uXG4jIEZvb3RlclxuIyBJbmZpbml0ZSBzY3JvbGxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBJbXBvcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0IFwiX2N1c3RvbS1wcm9wZXJ0aWVzLmNzc1wiO1xuQGltcG9ydCBcIl9yZXNldC5jc3NcIjtcbkBpbXBvcnQgXCJfdHlwb2dyYXBoeS5jc3NcIjtcbkBpbXBvcnQgXCJfZWxlbWVudHMuY3NzXCI7XG5AaW1wb3J0IFwiX2xpbmtzLmNzc1wiO1xuQGltcG9ydCBcIl9jb2x1bW5zLmNzc1wiO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEltcG9ydHMgUGFydGlhbHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBpbXBvcnQgXCJwYXJ0aWFscy9fbWFycXVlZS5jc3NcIjtcbkBpbXBvcnQgXCJwYXJ0aWFscy9faGVhZGVyLmNzc1wiO1xuLyogQGltcG9ydCBcInBhcnRpYWxzL19kb3NzaWVyLmNzc1wiOyAqL1xuQGltcG9ydCBcInBhcnRpYWxzL19mbGlja2l0eS1jdXN0b20uY3NzXCI7XG5AaW1wb3J0IFwicGFydGlhbHMvX2ljb25zLmNzc1wiO1xuQGltcG9ydCBcInBhcnRpYWxzL19hbmltYXRpb25zLmNzc1wiO1xuQGltcG9ydCBcInBhcnRpYWxzL19zaGFkb3dzLmNzc1wiO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEFjY2Vzc2liaWxpdHlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqXG4gKiBUZXh0IG1lYW50IG9ubHkgZm9yIHNjcmVlbiByZWFkZXJzLlxuICogUmU6IHdvcmQtd3JhcDogTWFueSBzY3JlZW4gcmVhZGVyIGFuZCBicm93c2VyIGNvbWJpbmF0aW9ucyBhbm5vdW5jZSBicm9rZW5cbiAqIHdvcmRzIGFzIHRoZXkgd291bGQgYXBwZWFyIHZpc3VhbGx5LlxuICovXG4uc2NyZWVuLXJlYWRlci10ZXh0IHtcblx0Y2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuXHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcblx0aGVpZ2h0OiAxcHg7XG5cdHdpZHRoOiAxcHg7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHdvcmQtd3JhcDogbm9ybWFsICFpbXBvcnRhbnQ7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcbn1cblxuLnNjcmVlbi1yZWFkZXItdGV4dDpmb2N1cyB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG5cdGJvcmRlci1yYWRpdXM6IDNweDtcblx0Ym94LXNoYWRvdzogMCAwIDJweCAycHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuXHRjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiAjMjE3NTliO1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC1zaXplOiAwLjg3NXJlbTtcblx0aGVpZ2h0OiBhdXRvO1xuXHRsZWZ0OiA1cHg7XG5cdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdHBhZGRpbmc6IDE1cHggMjNweCAxNHB4O1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdHRvcDogNXB4O1xuXHR3aWR0aDogYXV0bztcblx0ei1pbmRleDogMTAwMDAwOyAvKiBBYm92ZSBXUCB0b29sYmFyLiAqL1xufVxuXG4vKiBEbyBub3Qgc2hvdyB0aGUgb3V0bGluZSBvbiB0aGUgc2tpcCBsaW5rIHRhcmdldC4gKi9cbiNwcmltYXJ5W3RhYmluZGV4PVwiLTFcIl06Zm9jdXMge1xuXHRvdXRsaW5lOiAwO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIExheW91dHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5zaXRlIHtcblx0bWFyZ2luOiAwO1xuXHRtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5zaXRlLW1haW4ge1xuXHRtYXJnaW4tcmlnaHQ6IHZhcigtLW1lbnViYXItd2lkdGgpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci10aGVtZS13aGl0ZSk7XG59XG5cbkBtZWRpYSAoLS13aWRlLW1lbnUtcXVlcnkpIHtcblx0LmhvbWUgLnNpdGUtbWFpbiB7XG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHR9XG59XG5cbkBtZWRpYSAoLS1zaWRlYmFyLXF1ZXJ5KSB7XG5cdC5oYXMtc2lkZWJhciAuc2l0ZSB7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdH1cblxuXHQuc2l0ZS1oZWFkZXIge1xuXHRcdGdyaWQtY29sdW1uOiBzcGFuIDI7XG5cdH1cblxuXHQuc2l0ZS1tYWluIHtcblx0XHRncmlkLWNvbHVtbjogMTtcblx0XHRtaW4td2lkdGg6IDA7XG5cdH1cblxuXHQucHJpbWFyeS1zaWRlYmFyIHtcblx0XHRncmlkLWNvbHVtbjogMjtcblx0XHRtaW4td2lkdGg6IDA7XG5cdH1cbn1cblxuLnN0aWNreSB7XG5cdHBvc2l0aW9uOiBzdGlja3k7XG5cdHRvcDogLTFweDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBGb3Jtc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG50ZXh0YXJlYSB7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG5idXR0b24sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG5cdGJvcmRlcjogbm9uZTtcblx0Ym9yZGVyLXJhZGl1czogMDtcblx0YmFja2dyb3VuZDogbm9uZTtcblx0Zm9udC1zaXplOiBpbmhlcml0O1xuXHRsaW5lLWhlaWdodDogMTtcblx0cGFkZGluZzogMDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgSGVhZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5oZWFkZXItaW1hZ2Uge1xuXHRtYXJnaW46IDAgYXV0bztcbn1cblxuLmhlYWRlci1pbWFnZSBpbWcge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luOiAwIGF1dG87XG59XG5cbi5jdXN0b20tbG9nby1saW5rIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtYXJnaW46IDAgYXV0byAxZW07XG59XG5cbi5zaXRlLWJyYW5kaW5nIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRwYWRkaW5nOiA2MHB4IDAgMS43NWVtO1xufVxuXG4uc2l0ZS10aXRsZSB7XG5cdG1hcmdpbjogMCAxZW07XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1oaWdobGlnaHQtZm9udC1mYW1pbHkpO1xuXHRmb250LXN0cmV0Y2g6IGNvbmRlbnNlZDtcblx0Zm9udC1zaXplOiAzOHB4O1xuXHRsaW5lLWhlaWdodDogMS4yO1xuXHRjb2xvcjogIzMzMzMzMjtcbn1cblxuLnNpdGUtdGl0bGUgYSB7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0Y29sb3I6IGluaGVyaXQ7XG59XG5cbi5zaXRlLWRlc2NyaXB0aW9uIHtcblx0bWFyZ2luOiAwLjQzNzVlbSAwIDA7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1oaWdobGlnaHQtZm9udC1mYW1pbHkpO1xuXHRmb250LXN0cmV0Y2g6IGNvbmRlbnNlZDtcblx0Zm9udC1zaXplOiAxN3B4O1xuXHRsaW5lLWhlaWdodDogMS40O1xuXHR3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG5cdGNvbG9yOiAjNzU3NTc1O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyBCYXNpYyBuYXZpZ2F0aW9uIG1lbnVzIC0gaGFuZGxlcyBzdWJtZW51IGFuZCBzbWFsbCBzY3JlZW4gdG9nZ2xlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4ubmF2LS10b2dnbGUtc21hbGwgLm1lbnUtdG9nZ2xlIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbjogMS4yZW0gYXV0bztcblx0cGFkZGluZzogMC42ZW0gMS4yZW0gMC41ZW07XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1oaWdobGlnaHQtZm9udC1mYW1pbHkpO1xuXHRmb250LXN0cmV0Y2g6IGNvbmRlbnNlZDtcblx0Zm9udC1zaXplOiA4MCU7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdGJvcmRlcjogMnB4IHNvbGlkICMwMDA7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4ubmF2LS10b2dnbGUtc21hbGwgLm1lbnUge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4ubmF2LS10b2dnbGUtc3ViIC5kcm9wZG93bixcbi5uYXYtLXRvZ2dsZS1zdWIgLmRyb3Bkb3duLXRvZ2dsZSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSAoLS1uYXJyb3ctbWVudS1xdWVyeSkge1xuXHQubmF2LS10b2dnbGUtc21hbGwubmF2LS10b2dnbGVkLW9uIC5tZW51IHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG5AbWVkaWEgKC0td2lkZS1tZW51LXF1ZXJ5KSB7XG5cdC5uYXYtLXRvZ2dsZS1zbWFsbCAubWVudS10b2dnbGUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQubmF2LS10b2dnbGUtc21hbGwgLm1lbnUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0Lm5hdi0tdG9nZ2xlLXN1YiB1bCB1bCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAxMDAlO1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0YmFja2dyb3VuZDogI2ZmZjtcblx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRib3gtc2hhZG93OiAwIDNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuXHRcdHotaW5kZXg6IDE7XG5cdH1cblxuXHQubmF2LS10b2dnbGUtc3ViIC5kcm9wZG93bixcblx0Lm5hdi0tdG9nZ2xlLXN1YiAuZHJvcGRvd24tdG9nZ2xlIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0dG9wOiA1MCU7XG5cdFx0d2lkdGg6IHZhcigtLWRyb3Bkb3duLXN5bWJvbC13aWR0aCk7XG5cdFx0aGVpZ2h0OiB2YXIoLS1kcm9wZG93bi1zeW1ib2wtd2lkdGgpO1xuXHRcdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0XHRsaW5lLWhlaWdodDogaW5oZXJpdDtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0b3ZlcmZsb3c6IHZpc2libGU7XG5cdH1cblxuXHQubmF2LS10b2dnbGUtc3ViIC5kcm9wZG93bi1zeW1ib2wge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogMjAlO1xuXHRcdHRvcDogMzUlO1xuXHRcdHdpZHRoOiA2MCU7XG5cdFx0aGVpZ2h0OiA2MCU7XG5cdFx0Ym9yZGVyOiBzb2xpZCAjMDAwO1xuXHRcdGJvcmRlci13aWR0aDogMCAycHggMnB4IDA7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG5cdH1cblxuXHQubmF2LS10b2dnbGUtc3ViIHVsIHVsIC5kcm9wZG93bixcblx0Lm5hdi0tdG9nZ2xlLXN1YiB1bCB1bCAuZHJvcGRvd24tdG9nZ2xlIHtcblx0XHR0b3A6IDQwJTtcblx0XHRyaWdodDogMC4yZW07XG5cdH1cblxuXHQubmF2LS10b2dnbGUtc3ViIHVsIHVsIC5kcm9wZG93bi1zeW1ib2wge1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG5cdH1cblxuXHQubmF2LS10b2dnbGUtc3ViIC5kcm9wZG93bi10b2dnbGU6aG92ZXIsXG5cdC5uYXYtLXRvZ2dsZS1zdWIgLm1lbnUtaXRlbS0taGFzLXRvZ2dsZTpob3ZlciAuZHJvcGRvd24tdG9nZ2xlIHtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0fVxuXG5cdC8qIE5lZWQgbWVudS1pdGVtLWhhcy1jaGlsZHJlbiBmb3Igbm9uLUpTICovXG5cdC5uYXYtLXRvZ2dsZS1zdWIgbGkubWVudS1pdGVtLWhhcy1jaGlsZHJlbixcblx0Lm5hdi0tdG9nZ2xlLXN1YiBsaS5tZW51LWl0ZW0tLWhhcy10b2dnbGUge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1kcm9wZG93bi1zeW1ib2wtd2lkdGgpO1xuXHR9XG5cblx0Lypcblx0ICogSWYgdGhlIGRyb3Bkb3duIHRvZ2dsZSBpcyBhY3RpdmUgd2l0aCBKUywgdGhlblxuXHQgKiB3ZSdsbCB0YWtlIGNhcmUgb2Ygc2hvd2luZyB0aGUgc3VibWVudSB3aXRoIEpTLlxuXHQgKi9cblx0Lm5hdi0tdG9nZ2xlLXN1YiBsaTpob3ZlciA+IHVsLFxuXHQubmF2LS10b2dnbGUtc3ViIGxpLm1lbnUtaXRlbS0tdG9nZ2xlZC1vbiA+IHVsLFxuXHQubmF2LS10b2dnbGUtc3ViIGxpOm5vdCgubWVudS1pdGVtLS1oYXMtdG9nZ2xlKTpmb2N1cyA+IHVsIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdC8qXG5cdCAqIFwiZm9jdXMtd2l0aGluXCIgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gZm9jdXMgY2xhc3MgZm9yXG5cdCAqIHN1cHBvcnRpbmcgYnJvd3NlcnMgKGFsbCBidXQgSUUvRWRnZSkgZm9yIG5vLUpTIGNvbnRleHRcblx0ICogKGUuZy4gQU1QKSBTZWUgaHR0cHM6Ly9jYW5pdXNlLmNvbS8jZmVhdD1jc3MtZm9jdXMtd2l0aGluXG5cdCAqXG5cdCAqIFRoaXMgc2VsZWN0b3IgbmVlZHMgdG8gc3RheSBzZXBhcmF0ZWQsIG90aGVyd2lzZSBzdWJtZW51c1xuXHQgKiB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQgd2l0aCBJRS9FZGdlLlxuXHQgKi9cblx0Lm5hdi0tdG9nZ2xlLXN1YiBsaTpub3QoLm1lbnUtaXRlbS0taGFzLXRvZ2dsZSk6Zm9jdXMtd2l0aGluID4gdWwge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIE1haW4gbmF2aWdhdGlvbiBtZW51XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4ubWFpbi1uYXZpZ2F0aW9uIHtcblx0Y2xlYXI6IGJvdGg7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW46IDAgYXV0byAyZW07XG5cdHBhZGRpbmc6IDAgMWVtO1xuXHRtYXgtd2lkdGg6IHZhcigtLWNvbnRlbnQtd2lkdGgpO1xuXHRmb250LWZhbWlseTogdmFyKC0taGlnaGxpZ2h0LWZvbnQtZmFtaWx5KTtcblx0Zm9udC1zdHJldGNoOiBjb25kZW5zZWQ7XG59XG5cbi5tYWluLW5hdmlnYXRpb24gYSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogMTAwJTtcblx0cGFkZGluZzogMC41ZW0gMWVtIDAuNWVtIDA7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0Y29sb3I6ICMwMDA7XG59XG5cbi5tYWluLW5hdmlnYXRpb24gYTpob3Zlcixcbi5tYWluLW5hdmlnYXRpb24gYTpmb2N1cyB7XG5cdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4ubWFpbi1uYXZpZ2F0aW9uIHVsIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcbn1cblxuLm1haW4tbmF2aWdhdGlvbiB1bCB1bCBsaSB7XG5cdHBhZGRpbmctbGVmdDogMWVtO1xufVxuXG5AbWVkaWEgKC0td2lkZS1tZW51LXF1ZXJ5KSB7XG5cdC5tYWluLW5hdmlnYXRpb24gdWwgbGkgYSB7XG5cdFx0cGFkZGluZzogMC40ZW0gMC41ZW07XG5cdH1cblxuXHQubWFpbi1uYXZpZ2F0aW9uIHVsIGxpIHtcblx0XHRtYXJnaW46IDAgMCAwIDAuNWVtO1xuXHR9XG5cblx0Lm1haW4tbmF2aWdhdGlvbiB1bCBsaTpmaXJzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHQubWFpbi1uYXZpZ2F0aW9uIHVsIHVsIGEge1xuXHRcdHdpZHRoOiAyMDBweDtcblx0fVxuXG5cdC8qIHN0eWxlbGludC1kaXNhYmxlICovXG5cdC5tYWluLW5hdmlnYXRpb24gdWwgdWwgbGkge1xuXHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRtYXJnaW4tbGVmdDogMDtcblx0fVxuXHQvKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cblx0Lm1haW4tbmF2aWdhdGlvbiB1bCB1bCBsaSBhIHtcblx0XHR3aWR0aDogMjE4cHg7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0fVxuXG5cdC5tYWluLW5hdmlnYXRpb24gdWwgdWwgdWwge1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAxMDAlO1xuXHRcdG1pbi1oZWlnaHQ6IDEwMCU7XG5cdH1cblxuXHQubWFpbi1uYXZpZ2F0aW9uIC5tZW51IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0fVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIENvbnRlbnQgbmF2aWdhdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5AbWVkaWEgKC0tY29udGVudC1xdWVyeSkge1xuXHQuc2l0ZS1tYWluIC5jb21tZW50LW5hdmlnYXRpb24sXG5cdC5zaXRlLW1haW4gLnBvc3RzLW5hdmlnYXRpb24sXG5cdC5zaXRlLW1haW4gLnBvc3QtbmF2aWdhdGlvbixcblx0LnNpdGUtbWFpbiAucGFnaW5hdGlvbiB7XG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdH1cbn1cblxuLmNvbW1lbnQtbmF2aWdhdGlvbiAubmF2LXByZXZpb3VzLFxuLnBvc3RzLW5hdmlnYXRpb24gLm5hdi1wcmV2aW91cyxcbi5wb3N0LW5hdmlnYXRpb24gLm5hdi1wcmV2aW91cyB7XG5cdGRpc3BsYXk6IGlubGluZTtcblxuXHQmOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHtcblx0XHRjb250ZW50OiBcIiAvIFwiO1xuXHR9XG59XG5cbi5jb21tZW50LW5hdmlnYXRpb24gLm5hdi1uZXh0LFxuLnBvc3RzLW5hdmlnYXRpb24gLm5hdi1uZXh0LFxuLnBvc3QtbmF2aWdhdGlvbiAubmF2LW5leHQge1xuXHRkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5wb3N0LW5hdmlnYXRpb24tc3ViIHNwYW4ge1xuXHRjb2xvcjogdmFyKC0tZ2xvYmFsLWZvbnQtY29sb3IpO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLnNpdGUtbWFpbiAucGFnaW5hdGlvbiB7XG5cdG1hcmdpbi1ib3R0b206IDEuNWVtO1xufVxuXG4ucGFnaW5hdGlvbiAubmF2LWxpbmtzIHtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnBhZ2luYXRpb24gLnBhZ2UtbnVtYmVycyB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0bWFyZ2luLWJvdHRvbTogMC41ZW07XG5cdG1hcmdpbi1yaWdodDogMWVtO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1saW5rKTtcblx0bWluLXdpZHRoOiAxLjc1ZW07XG5cdGxpbmUtaGVpZ2h0OiAxLjc1O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnBhZ2luYXRpb24gYTp2aXNpdGVkIHtcblx0Y29sb3I6IHZhcigtLWNvbG9yLWxpbmspO1xufVxuXG4ucGFnaW5hdGlvbiBhOmhvdmVyLFxuLnBhZ2luYXRpb24gYTpmb2N1cyxcbi5wYWdpbmF0aW9uIGE6YWN0aXZlIHtcblx0Ym9yZGVyLWNvbG9yOiAjMDBhMGQyO1xufVxuXG4ucGFnaW5hdGlvbiAucHJldixcbi5wYWdpbmF0aW9uIC5uZXh0IHtcblx0bWluLXdpZHRoOiBhdXRvO1xuXHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnBhZ2luYXRpb24gLnByZXY6aG92ZXIsXG4ucGFnaW5hdGlvbiAucHJldjpmb2N1cyxcbi5wYWdpbmF0aW9uIC5wcmV2OmFjdGl2ZSxcbi5wYWdpbmF0aW9uIC5uZXh0OmhvdmVyLFxuLnBhZ2luYXRpb24gLm5leHQ6Zm9jdXMsXG4ucGFnaW5hdGlvbiAubmV4dDphY3RpdmUge1xuXHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ucGFnaW5hdGlvbiAuZG90cyB7XG5cdG1pbi13aWR0aDogYXV0bztcblx0Ym9yZGVyOiBub25lO1xufVxuXG4ucGFnaW5hdGlvbiAuY3VycmVudCB7XG5cdGJvcmRlci1jb2xvcjogdmFyKC0tZ2xvYmFsLWZvbnQtY29sb3IpO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEZvb3RlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnNpdGUtZm9vdGVyIHtcblx0QG1lZGlhICgtLXdpZGUtbWVudS1xdWVyeSkge1xuXHRcdG1hcmdpbjogMCB2YXIoLS1tZW51YmFyLXdpZHRoKSAwIDA7XG5cdH1cblxuXHRmb250LWZhbWlseTogdmFyKC0taGlnaGxpZ2h0LWZvbnQtZmFtaWx5KTtcblx0Zm9udC1zdHJldGNoOiBjb25kZW5zZWQ7XG5cdGhlaWdodDogMTAwdmg7XG5cblx0JiA+IGNhbnZhcyB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXG5cdFx0ei1pbmRleDogLTE7XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogMDtcblx0fVxufVxuXG4uc2l0ZS1pbmZvIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ucGFnZSxcbi5zaW5nbGUge1xuXHQmIGFydGljbGUge1xuXHRcdHBhZGRpbmctYm90dG9tOiB2YXIoLS1wYWQyKTtcblx0fVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEluZmluaXRlIHNjcm9sbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBHbG9iYWxseSBoaWRkZW4gZWxlbWVudHMgd2hlbiBJbmZpbml0ZSBTY3JvbGwgaXMgc3VwcG9ydGVkIGFuZCBpbiB1c2UuICovXG4uaW5maW5pdGUtc2Nyb2xsIC5wb3N0cy1uYXZpZ2F0aW9uLFxuLmluZmluaXRlLXNjcm9sbCAucGFnaW5hdGlvbixcbi5pbmZpbml0ZS1zY3JvbGwubmV2ZXJlbmRpbmcgLnNpdGUtZm9vdGVyIHtcblx0LyogVGhlbWUgRm9vdGVyICh3aGVuIHNldCB0byBzY3JvbGxpbmcpICovXG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIFdoZW4gSW5maW5pdGUgU2Nyb2xsIGhhcyByZWFjaGVkIGl0cyBlbmQgd2UgbmVlZCB0byByZS1kaXNwbGF5IGVsZW1lbnRzIHRoYXRcbndlcmUgaGlkZGVuICh2aWEgLm5ldmVyZW5kaW5nKSBiZWZvcmUuICovXG4uaW5maW5pdHktZW5kLm5ldmVyZW5kaW5nIC5zaXRlLWZvb3RlciB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uY2xyOjphZnRlciB7XG5cdGNvbnRlbnQ6IFwiXCI7XG5cdGRpc3BsYXk6IHRhYmxlO1xuXHRjbGVhcjogYm90aDtcbn1cblxuLm91dGVyIHtcblx0cGFkZGluZzogMCB2YXIoLS1wYWQpO1xufVxuXG4uaW52ZXJ0ZWQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci10aGVtZS1ibGFjayk7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci10aGVtZS13aGl0ZSk7XG59XG5cbi5wdGIge1xuXHRwYWRkaW5nLXRvcDogdmFyKC0tcGFkKTtcblx0cGFkZGluZy1ib3R0b206IHZhcigtLXBhZCk7XG59XG5cbi5tYXgge1xuXHRtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1wYWQpICogLTEpO1xufVxuXG5AbWVkaWEgKC0tbmFycm93LW1lbnUtcXVlcnkpIHtcblx0LmRvc3NpZXItaW50cm8ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi53ZWxjb21lLXRleHQge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGxpbmUtaGVpZ2h0OiAxO1xuXHRtYXJnaW46IDAgYXV0bztcblx0Lyogd2lkdGg6IDY2JTsgKi9cblxuXHRAbWVkaWEgKC0td2lkZS1tZW51LXF1ZXJ5KSB7XG5cdFx0LyogZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtaW50cm8pOyAqL1xuXHRcdHdpZHRoOiA4MCU7XG5cdH1cblxuXHQmIHAge1xuXHRcdG1hcmdpbjogMDtcblx0XHRmb250LXNpemU6IDEuMmVtO1xuXHR9XG5cblx0LndlbGNvbWUtaW5uZXIge1xuXHR9XG59XG5cbi5hbGlnbmZ1bGwge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdCYgLndwLWJsb2NrLWVtYmVkX193cmFwcGVyIHtcblx0XHRtYXJnaW46IDA7XG5cdH1cbn1cblxuLmRpc2FibGVkIHtcblx0Y29sb3I6IHZhcigtLWNvbG9yLXRoZW1lLWJsYWNrKTtcbn1cblxuLmZvb3Rub3RlX3BsdWdpbl90b29sdGlwX3RleHQge1xuXHR0b3A6IDAuNWVtICFpbXBvcnRhbnQ7XG59XG5cbi5mb290bm90ZV9wbHVnaW5fdGV4dCxcbi5mb290bm90ZV9wbHVnaW5faW5kZXgsXG4uZm9vdG5vdGVfY29udGFpbmVyX3ByZXBhcmUsXG4uZm9vdG5vdGVfY29udGFpbmVyX3ByZXBhcmUgcCB7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbWFsbCk7XG5cdGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmltYWdlLXNpemUgPiAqIHtcblx0dG9wOiAwcHg7XG5cdHdpZHRoOiAxMDAlO1xuXHR3aWR0aDogY2FsYygxMDB2dyAtIHZhcigtLW1lbnViYXItd2lkdGgpKTtcbn1cblxuLnBvc3QtbmF2aWdhdGlvbi1iYXIge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjaztcblx0ei1pbmRleDogdmFyKC0tei1oZWFkZXIpO1xuXG5cdCYuY29sLTIgPiBkaXYge1xuXHRcdHBhZGRpbmc6IDEwcHggdmFyKC0tcGFkKTtcblx0fVxuXG5cdCYgYnV0dG9uIHtcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci10aGVtZS1ibGFjayk7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1yZWd1bGFyKTtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xuXHRcdH1cblx0fVxufVxuXG4ucG9zdC1uYXZpZ2F0aW9uLWJhci50b3Age1xuXHRib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93LXRvcCk7XG5cdG1hcmdpbi1ib3R0b206IHZhcigtLXBhZCk7XG59XG5cbi5wb3N0LW5hdmlnYXRpb24tYmFyLmJvdHRvbSB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjaztcblx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLnZkbS1jbG9zZS13cmFwcGVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblxuXHQmIGEge1xuXHRcdGJvcmRlci1ib3R0b206IG5vbmU7XG5cdH1cbn1cblxuLnZkbS10aWNrZXQtZnJhbWUtd3JhcHBlci5vcGVuIHtcblx0d2lkdGg6IGNhbGMoNTB2dyArIHZhcigtLW1lbnViYXItd2lkdGgpIC8gMikgIWltcG9ydGFudDtcbn1cblxuLnBhZ2UtdGVtcGxhdGUtZG9zc2llcnMtcGFnZSB7XG5cdCYgaDMge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0cGFkZGluZy10b3A6IHZhcigtLXBhZCk7XG5cdH1cblxuXHQmIG1haW4uc2l0ZS1tYWluIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdH1cbn1cblxuLyogZml4IGZvciB2b29yZGVtZW5zZW4gcGx1Z2luIGdldHRpbmcgY292ZXJlZCBieSB0aGUgc2lkZWJhciAqL1xuXG4udGluZ2xlLWVuYWJsZWQgLnByaW1hcnktc2lkZWJhciB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKipcbiAqIEN1c3RvbSBQcm9wZXJ0aWVzXG4gKiBha2EgQ1NTIHZhcmlhYmxlcy5cbiAqXG4gKiBAbGluazogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTLy0tKlxuICoqL1xuXG46cm9vdCB7XG5cdC0tcGFkOiAydnc7XG5cdC0tcGFkLW5lZzogY2FsYyggdmFyKCAtLXBhZCApICogLTEgKTtcblx0LS1wYWQyOiBjYWxjKCB2YXIoIC0tcGFkICkgKiAyICk7XG5cblx0LS1nbG9iYWwtZm9udC1jb2xvcjogIzAwMDAwMDtcblx0LyogLS1nbG9iYWwtZm9udC1mYW1pbHk6IFwiQ3JpbXNvbiBUZXh0XCIsIHNlcmlmOyAqL1xuXHQtLWZvbnQtc2VyaWY6ICdUaW1lcyBOZXcgUm9tYW4nLCBFQkdhcmFtb25kLCBUaW1lcywgc2VyaWY7XG5cdC0tZm9udC1zYW5zOiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuXHQtLWZvbnQtbW9ubzogJ05vdENvdXJpZXInLCBDb3VyaWVyLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7XG5cblx0LS1nbG9iYWwtZm9udC1zaXplOiAyMDtcblx0LS1nbG9iYWwtZm9udC1saW5lLWhlaWdodDogMS40O1xuXHQvKiAtLWhpZ2hsaWdodC1mb250LWZhbWlseTogXCJSb2JvdG8gQ29uZGVuc2VkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJBcmlhbCBOYXJyb3dcIiwgc2Fucy1zZXJpZjsgKi9cblx0LS1jb250ZW50LXdpZHRoOiA3MHZ3O1xuXHQtLWRyb3Bkb3duLXN5bWJvbC13aWR0aDogMC43ZW07XG5cdC0tbWVudWJhci13aWR0aDogNDVweDtcblxuXHQvKiBDdXN0b20gZWRpdG9yIGNvbG9ycyAqL1xuXHQtLWNvbG9yLXRoZW1lLXByaW1hcnk6ICNlMzZkNjA7XG5cdC0tY29sb3ItdGhlbWUtc2Vjb25kYXJ5OiAjNDE4NDhmO1xuXHQtLWNvbG9yLXRoZW1lLXllbGxvdzogI2ZmZmYwMDtcblx0LS1jb2xvci10aGVtZS1ibHVlOiByZ2IoMzIsIDE0NSwgMjUyKTtcblxuXHQtLWNvbG9yLXRoZW1lLWJsYWNrOiAjMDAwMDAwO1xuXHQtLWNvbG9yLXRoZW1lLWdyZXk6ICM5NWE1YTY7XG5cdC0tY29sb3ItdGhlbWUtd2hpdGU6ICNmZmZmZmY7XG5cblx0LS1jb2xvci1saW5rOiAjMDAwO1xuXHQtLWNvbG9yLWxpbmstdmlzaXRlZDogIzAwMDsvKiMzMzM7Ki9cblx0LS1jb2xvci1saW5rLWFjdGl2ZTogIzAwMDsvKiMwMGEwZDI7Ki9cblxuXHQtLWNvbG9yLXF1b3RlLWJvcmRlcjogIzAwMDtcblx0LS1jb2xvci1xdW90ZS1jaXRhdGlvbjogIzZjNzc4MTtcblxuXHQvKiBDdXN0b20gZWRpdG9yIGZvbnQgc2l6ZXMgKi9cblxuXHQvKiBkZWZhdWx0IGZvbnQtc2l6ZXMsIHVzZWQgZm9yIG1vYmlsZSAqL1xuXHQtLWZvbnQtc2l6ZS1zbWFsbDogMC44cmVtO1xuXHQtLWZvbnQtc2l6ZS1yZWd1bGFyOiAxcmVtO1xuXHQtLWZvbnQtc2l6ZS1iaWc6IDEuNXJlbTtcblx0LS1mb250LXNpemUtbGFyZ2U6IDIuMnJlbTtcblx0LS1mb250LXNpemUtbGFyZ2VyOiAyLjhyZW07XG5cblx0LS1mb250LXNpemUtaW50cm86IDEuOHJlbTtcblxuXHQtLWxpbmUtaGVpZ2h0LWhlYWRlcjogMS4xO1xuXG5cdC0tc2hhZG93LXNpemU6IDFlbTtcblx0LS1zaGFkb3ctc2l6ZS1uZWdhdGl2ZTogLTFlbTtcblx0LS1ib3gtc2hhZG93LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG5cdC0tYm94LXNoYWRvdzogMCAwIHZhcigtLXNoYWRvdy1zaXplKSB2YXIoLS1ib3gtc2hhZG93LWNvbG9yKTtcblx0LS1ib3gtc2hhZG93LXRvcC1pbnNldDogaW5zZXQgMCB2YXIoLS1zaGFkb3ctc2l6ZSkgdmFyKC0tc2hhZG93LXNpemUpIHZhcigtLWJveC1zaGFkb3ctY29sb3IpO1xuXHQtLWJveC1zaGFkb3ctYm90dG9tLWluc2V0OiBpbnNldCAwIHZhcigtLXNoYWRvdy1zaXplLW5lZ2F0aXZlKSB2YXIoLS1zaGFkb3ctc2l6ZSkgdmFyKC0tYm94LXNoYWRvdy1jb2xvcik7XG5cdC0tYm94LXNoYWRvdy1ib3R0b206IDAgdmFyKC0tc2hhZG93LXNpemUpIHZhcigtLXNoYWRvdy1zaXplKSB2YXIoLS1ib3gtc2hhZG93LWNvbG9yKTtcblx0LS1ib3gtc2hhZG93LXRvcDogMCB2YXIoLS1zaGFkb3ctc2l6ZS1uZWdhdGl2ZSkgdmFyKC0tc2hhZG93LXNpemUpIHZhcigtLWJveC1zaGFkb3ctY29sb3IpO1xuXHQtLWJveC1zaGFkb3ctbGVmdDogdmFyKC0tc2hhZG93LXNpemUtbmVnYXRpdmUpIDAgdmFyKC0tc2hhZG93LXNpemUpIHZhcigtLWJveC1zaGFkb3ctY29sb3IpO1xuXHQtLWJveC1zaGFkb3ctcmlnaHQ6IHZhcigtLXNoYWRvdy1zaXplKSAwIHZhcigtLXNoYWRvdy1zaXplKSB2YXIoLS1ib3gtc2hhZG93LWNvbG9yKTtcblxuXHQtLXotbWVudTogMTAwMDtcblx0LS16LWhlYWRlcjogMTAwO1xuXHQtLXotaW50ZXJmYWNlOiAxMDtcblxuXHQtLWJvdW5jZTogY3ViaWMtYmV6aWVyKDEsIC4wMDUsIC40NywgMS4zNzUpO1xuXHQtLWJvdW5jZTI6IGN1YmljLWJlemllciguMiwtMS41LC44LDIuMik7XG59XG5cbkBtZWRpYSAoLS13aWRlLW1lbnUtcXVlcnkpIHtcblxuXHQ6cm9vdCB7XG5cblx0XHQvKiByZXNwb25zaXZlIGZvbnQtc2l6ZXMgZm9yIGRlc2t0b3AgKi9cblx0XHQtLWZvbnQtc2l6ZS1zbWFsbDogY2FsYygyMCAvIHZhcigtLWdsb2JhbC1mb250LXNpemUpICogMS41dncpO1xuXHRcdC0tZm9udC1zaXplLXJlZ3VsYXI6IGNhbGMoMjggLyB2YXIoLS1nbG9iYWwtZm9udC1zaXplKSAqIDEuNXZ3KTtcblx0XHQtLWZvbnQtc2l6ZS1iaWc6IGNhbGMoMzYgLyB2YXIoLS1nbG9iYWwtZm9udC1zaXplKSAqIDEuNXZ3KTtcblx0XHQtLWZvbnQtc2l6ZS1sYXJnZTogY2FsYyg2MCAvIHZhcigtLWdsb2JhbC1mb250LXNpemUpICogMS41dncpO1xuXHRcdC0tZm9udC1zaXplLWxhcmdlcjogY2FsYyg3MiAvIHZhcigtLWdsb2JhbC1mb250LXNpemUpICogMS41dncpO1xuXG5cdFx0LS1mb250LXNpemUtaW50cm86IGNhbGMoNDggLyB2YXIoLS1nbG9iYWwtZm9udC1zaXplKSAqIDEuNXZ3KTtcblx0fVxufVxuXG5cbiAgIiwiLypcbkNTUyBub3JtYWxpemF0aW9uIGJhc2VkIGluIHBhcnQgb24gbm9ybWFsaXplLmNzcyBieVxuTmljb2xhcyBHYWxsYWdoZXIgYW5kIEpvbmF0aGFuIE5lYWwgaHR0cDovL25lY29sYXMuZ2l0aHViLmlvL25vcm1hbGl6ZS5jc3MvXG4qL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIE5vcm1hbGl6ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiEgbm9ybWFsaXplLmNzcyB2OC4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5cbmh0bWwge1xuXHRsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuXHQtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmJvZHkge1xuXHRtYXJnaW46IDA7XG59XG5cbmxpbmsge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cblxuaDEge1xuXHRmb250LXNpemU6IDJlbTtcblx0bWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuXHRoZWlnaHQ6IDA7IC8qIDEgKi9cblx0b3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IC8qIDEgKi9cblx0Zm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG5cdGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cblx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cblx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovICAvKiBwaHBjczppZ25vcmUgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbmIsXG5zdHJvbmcge1xuXHRmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnNhbXAge1xuXHRmb250LWZhbWlseTogbW9ub3NwYWNlOyAvKiAxICovXG5cdGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuXHRmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuXHRmb250LXNpemU6IDc1JTtcblx0bGluZS1oZWlnaHQ6IDA7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuXHRib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG5cdHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuaW1nIHtcblx0Ym9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuXHRmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuXHRmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cblx0bGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cblx0bWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHtcblx0b3ZlcmZsb3c6IHZpc2libGU7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTsgLyogMSAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcblx0Ym9yZGVyLXN0eWxlOiBub25lO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG5cdG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuZmllbGRzZXQge1xuXHRwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cblx0Y29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cblx0ZGlzcGxheTogdGFibGU7IC8qIDEgKi9cblx0bWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG5cdHBhZGRpbmc6IDA7IC8qIDMgKi9cblx0d2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cblxudGV4dGFyZWEge1xuXHRvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cblx0cGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcblx0aGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuXHRvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG5cdGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5cbmRldGFpbHMge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdW1tYXJ5IHtcblx0ZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBNaXNjXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAqL1xuXG50ZW1wbGF0ZSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cblxuW2hpZGRlbl0ge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEhpZGUgbGF6eSBsb2FkIHBsYWNlaG9sZGVycyB3aGVuIGJyb3dzZXIgZG9lcyBub3QgaGF2ZSBKUyBlbmFibGVkLlxuICogU2hvdWxkIG92ZXJyaWRlIGV2ZXJ5dGhpbmcsIHRoZXJlZm9yZSAhaW1wb3J0YW50LlxuICovXG4ubm8tanMgLmxhenkge1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4iLCJAaW1wb3J0IFwiX2N1c3RvbS1wcm9wZXJ0aWVzLmNzc1wiO1xuXG5AZm9udC1mYWNlIHtcblx0Zm9udC1mYW1pbHk6ICdOb3RDb3VyaWVyJztcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRzcmM6IGxvY2FsKCdOb3RDb3VyaWVyJyksIHVybCgnLi4vZm9udHMvbm90Y291cmllcnNhbnMvTm90Q291cmllclNhbnMud29mZicpIGZvcm1hdCgnd29mZicpO1xufVxuXG4vKiBAZm9udC1mYWNlIHtcblx0Zm9udC1mYW1pbHk6ICdGcmVlc2VyaWYnO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdHNyYzogbG9jYWwoJ0ZyZWVzZXJpZicpLCB1cmwoJy4uL2ZvbnRzL2ZyZWVzZXJpZi9GcmVlU2VyaWYudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJy4uL2ZvbnRzL2ZyZWVzZXJpZi9GcmVlU2VyaWYub3RmJykgZm9ybWF0KCdvcGVudHlwZScpO1xufSAqL1xuXG4vKiBlbWJlZCBFQl9HYXJhbW9uZCBmcm9tIC4uL2ZvbnRzL0VCX0dhcmFtb25kL0VCR2FyYW1vbmQtSXRhbGljLVZhcmlhYmxlRm9udF93Z2h0LnR0ZiBhbmQgRUJHYXJhbW9uZC1WYXJpYWJsZUZvbnRfd2dodC50dGYgKi9cbkBmb250LWZhY2Uge1xuXHRmb250LWZhbWlseTogJ0VCR2FyYW1vbmQnO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdHNyYzogbG9jYWwoJ0VCR2FyYW1vbmQnKSwgdXJsKCcuLi9mb250cy9FQl9HYXJhbW9uZC9FQkdhcmFtb25kLVZhcmlhYmxlRm9udF93Z2h0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbn1cblxuQGZvbnQtZmFjZSB7XG5cdGZvbnQtZmFtaWx5OiAnRUJHYXJhbW9uZCc7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0c3JjOiBsb2NhbCgnRUJHYXJhbW9uZCcpLCB1cmwoJy4uL2ZvbnRzL0VCX0dhcmFtb25kL0VCR2FyYW1vbmQtSXRhbGljLVZhcmlhYmxlRm9udF93Z2h0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbn1cblxuLnNhbnMge1xuXHRmb250LWZhbWlseTogdmFyKC0tZm9udC1zYW5zKTtcbn1cblxuLnNlcmlmIHtcblx0Zm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc2VyaWYpO1xufVxuXG4ubW9ubyB7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgVHlwb2dyYXBoeVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cblxuaHRtbHtcblx0Zm9udC1zaXplOiAyNHB4OyAvKiBiYXNlIGZvbnQgc2l6ZSAqL1xufVxuXG5ib2R5LFxuYnV0dG9uLFxuaW5wdXQsXG5zZWxlY3QsXG5vcHRncm91cCxcbnRleHRhcmVhIHtcblx0Y29sb3I6IHZhcigtLWdsb2JhbC1mb250LWNvbG9yKTtcblx0Zm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc2Fucyk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1nbG9iYWwtZm9udC1saW5lLWhlaWdodCk7XG5cdGZvbnQtc2l6ZTogMXJlbTtcblx0Zm9udC1zaXplOiB2YXIoIC0tZm9udC1zaXplLXJlZ3VsYXIgKTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG5iLCBzdHJvbmcge1xuXHRmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG59XG5cblxuQG1lZGlhICgtLXdpZGUtbWVudS1xdWVyeSkge1xuXHRib2R5LFxuXHRidXR0b24sXG5cdGlucHV0LFxuXHRzZWxlY3QsXG5cdG9wdGdyb3VwLFxuXHR0ZXh0YXJlYSB7XG5cdFx0LyogZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtcmVndWxhcik7ICovXG5cdFx0LyogZm9udC1zaXplOiAxLjh2dzsgKi9cblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1yZWd1bGFyKTtcblx0fVxufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1oaWdobGlnaHQtZm9udC1mYW1pbHkpO1xuXHQvKiBmb250LXN0cmV0Y2g6IGNvbmRlbnNlZDsgKi9cblx0Y2xlYXI6IGJvdGg7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7IFxuXHRsaW5lLWhlaWdodDogdmFyKCAtLWxpbmUtaGVpZ2h0LWhlYWRlciApO1xufVxuXG5oMSxcbmgyIHtcblx0Zm9udC1zaXplOiB2YXIoIC0tZm9udC1zaXplLWxhcmdlICk7XG59XG5cbi5lbnRyeS1oZWFkZXIgaDEuZW50cnktdGl0bGUsXG4ucGFnZS1oZWFkZXIgLnBhZ2UtdGl0bGUge1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sYXJnZSk7XG5cdGZvbnQtZmFtaWx5OiB2YXIoIC0tZm9udC1zZXJpZiApO1xuXHRtYXJnaW4tdG9wOiAwO1xuLyogXHRtYXJnaW4tYm90dG9tOiAxZW07ICovXG4gICAgbWF4LXdpZHRoOiB2YXIoIC0tY29udGVudC13aWR0aCApO1xufVxuXG5kZm4sXG5jaXRlLFxuZW0sXG5pIHtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5ibG9ja3F1b3RlLFxucSB7XG5cdHF1b3RlczogXCJcIiBcIlwiO1xufVxuXG5ibG9ja3F1b3RlIHtcblx0Ym9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS1jb2xvci1xdW90ZS1ib3JkZXIpO1xuXHRtYXJnaW46IDA7XG59XG5cbi5lbnRyeS1jb250ZW50ID4gYmxvY2txdW90ZSB7XG5cdHBhZGRpbmctbGVmdDogMWVtO1xuXHRtYXJnaW4tbGVmdDogMS41cmVtO1xufVxuXG5AbWVkaWEgKC0tY29udGVudC1xdWVyeSkge1xuXG5cdC5lbnRyeS1jb250ZW50ID4gYmxvY2txdW90ZSB7XG5cdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdH1cbn1cblxuYmxvY2txdW90ZSBjaXRlIHtcblx0Y29sb3I6IHZhcigtLWNvbG9yLXF1b3RlLWNpdGF0aW9uKTtcblx0Zm9udC1zaXplOiAxM3B4O1xuXHRtYXJnaW4tdG9wOiAxZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5hZGRyZXNzIHtcblx0bWFyZ2luOiAwIDAgMS41ZW07XG59XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG5wcmUge1xuXHQvKiBiYWNrZ3JvdW5kOiAjZWVlO1xuXHRmb250LWZhbWlseTogXCJDb3VyaWVyIDEwIFBpdGNoXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcblx0Zm9udC1zaXplOiAwLjkzNzVyZW07XG5cdGxpbmUtaGVpZ2h0OiAxLjY7XG5cdG1hcmdpbi1ib3R0b206IDEuNWVtO1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdG92ZXJmbG93OiBhdXRvO1xuXHRwYWRkaW5nOiAxLjVlbTsgKi9cbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuY29kZSxcbmtiZCxcbnR0LFxudmFyIHtcblx0Zm9udC1mYW1pbHk6IE1vbmFjbywgQ29uc29sYXMsIFwiQW5kYWxlIE1vbm9cIiwgXCJEZWphVnUgU2FucyBNb25vXCIsIG1vbm9zcGFjZTtcblx0Zm9udC1zaXplOiAwLjhyZW07XG59XG5cbmFiYnIsXG5hY3JvbnltIHtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjNjY2O1xuXHRjdXJzb3I6IGhlbHA7XG59XG5cbm1hcmssXG5pbnMge1xuXHRiYWNrZ3JvdW5kOiAjZmZmOWMwO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbmJpZyB7XG5cdGZvbnQtc2l6ZTogMTI1JTtcbn1cblxuIiwiQGltcG9ydCBcIl9jdXN0b20tcHJvcGVydGllcy5jc3NcIjtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbmh0bWwge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuXG4vKipcbiAqIEluaGVyaXQgYm94LXNpemluZyB0byBtYWtlIGl0IGVhc2llciB0byBjaGFuZ2UgdGhlIHByb3BlcnR5IGZvclxuICogY29tcG9uZW50cyB0aGF0IGxldmVyYWdlIG90aGVyIGJlaGF2aW9yOyBzZWVcbiAqIGh0dHA6Ly9jc3MtdHJpY2tzLmNvbS9pbmhlcml0aW5nLWJveC1zaXppbmctcHJvYmFibHktc2xpZ2h0bHktYmV0dGVyLWJlc3QtcHJhY3RpY2UvXG4gKi9cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG5cdGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG5ib2R5IHtcblx0YmFja2dyb3VuZDogdmFyKCAtLXRoZW1lLWNvbG9yLXdoaXRlICk7XG5cdC8qIEZhbGxiYWNrIGZvciB3aGVuIHRoZXJlIGlzIG5vIGN1c3RvbSBiYWNrZ3JvdW5kIGNvbG9yIGRlZmluZWQuICovXG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG5ociB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG5cdGJvcmRlcjogMDtcblx0aGVpZ2h0OiAxcHg7XG5cdG1hcmdpbi1ib3R0b206IDEuNWVtO1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuXG51bCxcbm9sIHtcblx0bWFyZ2luOiAwIDAgMS41ZW0gMS41ZW07XG59XG5cbnVsIHtcblx0bGlzdC1zdHlsZTogZGlzYztcbn1cblxub2wge1xuXHRsaXN0LXN0eWxlOiBkZWNpbWFsO1xufVxuXG5saSA+IHVsLFxubGkgPiBvbCB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cdG1hcmdpbi1sZWZ0OiAxLjVlbTtcbn1cblxuZHQge1xuXHRmb250LXdlaWdodDogNzAwO1xufVxuXG5kZCB7XG5cdG1hcmdpbjogMCAxLjVlbSAxLjVlbTtcbn1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbmltZyB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRoZWlnaHQ6IGF1dG87XG5cdG1heC13aWR0aDogMTAwJTtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuLyogRXh0cmEgd2lkZSBpbWFnZXMgd2l0aGluIGZpZ3VyZSB0YWdzIGRvbid0IG92ZXJmbG93IHRoZSBjb250ZW50IGFyZWEuICovXG5maWd1cmUge1xuXHRtYXJnaW46IDAuNWVtIDA7XG59XG5cbnRhYmxlIHtcblx0bWFyZ2luOiAwIDAgMS41ZW07XG5cdHdpZHRoOiAxMDAlO1xufVxuXG5cbmRhdGUge1xuXHRsaW5lLWhlaWdodDogdmFyKCAtLWxpbmUtaGVpZ2h0LWhlYWRlciApO1xufVxuXG5maWdjYXB0aW9uIHtcblx0Zm9udC1mYW1pbHk6IHZhciggLS1mb250LW1vbm8gKTtcblx0bWF4LXdpZHRoOiA1MHJlbTtcblx0bWFyZ2luOiAwIGF1dG87XG5cdGZvbnQtc2l6ZTogdmFyKCAtLWZvbnQtc2l6ZS1zbWFsbCApICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctYm90dG9tOiB2YXIoIC0tcGFkICk7XG59XG5cbmVtIHtcblx0LyogZm9udC1zdHlsZTogbm9ybWFsOyAqL1xufVxuXG5zdHJvbmcge1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbnAuaGFzLWluZGVudGVkLWF0dHJpYnV0ZSB7XG5cdHBhZGRpbmctbGVmdDogMmVtO1xufSIsIkBpbXBvcnQgXCJfY3VzdG9tLXByb3BlcnRpZXMuY3NzXCI7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG5cbmEge1xuXHRjb2xvcjogYmxhY2s7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuYnV0dG9uLCBcbmF7XG5cdGNvbG9yOiBibGFjaztcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhciggLS1jb2xvci10aGVtZS1ibGFjayApO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFxuXHQmID4gKiB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHQvKiBjb2xvcjogdmFyKC0tY29sb3ItbGluay1hY3RpdmUpOyAqL1xuXHRcdGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoIC0tY29sb3ItdGhlbWUtYmxhY2sgKTtcblx0fVxuXHRcblx0Jjpmb2N1cyB7XG5cdFx0b3V0bGluZTogdGhpbiBkb3R0ZWRcdFxuXHR9XG5cdFxuXHQmOmhvdmVyLFxuXHQmXHQ6YWN0aXZlIHtcblx0XHRvdXRsaW5lOiAwO1xuXHR9XHRcbn1cblxuLnRyaWJlLWV2ZW50cy1jb250ZW50LFxuLnBhZ2UtY29udGVudCxcbi5lbnRyeS1jb250ZW50LFxuLmVudHJ5LXN1bW1hcnkge1xuXHQmIGEge1xuXHRcdGZvbnQtZmFtaWx5OiB2YXIoIC0tZm9udC1zZXJpZiApO1xuXHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0XHRmb250LXNpemU6IDEuMWVtO1xuXHR9XG59XG5cbi5ibG9jay1saW5rIHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbmgxIGEsXG5hIGgxIHtcblx0LyogYm94LXNoYWRvdzogaW5zZXQgMCAtMC4ycmVtIDAgIzAwMCwgaW5zZXQgMCAtMC40cmVtIDAgI2ZmZjsgKi9cblx0LyogdGV4dC1zaGFkb3c6IC0ycHggMnB4IDBweCBibGFjaywgMnB4IDJweCAwcHggYmxhY2ssIDJweCAtMnB4IDBweCBibGFjaywgLTJweCAtMnB4IDBweCBibGFjazsgKi9cblx0LyogdGV4dC1kZWNvcmF0aW9uOiBub25lOyAqL1xuXHQvKiB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3MgZWFzZTsgKi9cbn1cblxuaDEgYTpob3ZlcixcbmgxIGE6Zm9jdXMsXG5oMSBhOmFjdGl2ZSxcbmEgaDE6aG92ZXIsXG5hIGgxOmZvY3VzLFxuYSBoMTphY3RpdmUge1xuXHQvKiBjb2xvcjogdmFyKC0tY29sb3ItbGluay1hY3RpdmUpOyAqL1xuXHQvKiBib3gtc2hhZG93OiBpbnNldCAwIC0wLjFyZW0gMCAjMDAwLCBpbnNldCAwIC0wLjRyZW0gMCAjZmZmOyAqL1xufVxuXG4uZmFuY3kgYSB7XG5cdC8qIGRpc3BsYXk6IGlubGluZS1ibG9jazsgKi9cblx0Ym9yZGVyOiBub25lO1xuXHR0cmFuc2l0aW9uOiBib3JkZXIgLjJzIHZhcigtLWJvdW5jZTIpLCBjb2xvciAuNHMgdmFyKC0tYm91bmNlMik7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0Zm9udC1zaXplOiAxLjJlbTtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhciggLS1jb2xvci10aGVtZS1ibGFjayApO1xuXHRjb2xvcjogYmxhY2s7XG5cblx0Jjpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLXRoZW1lLWJsYWNrKSAhaW1wb3J0YW50O1xuXHRcdGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB2YXIoIC0tY29sb3ItdGhlbWUtYmxhY2sgKTtcblx0XHRib3JkZXItY29sb3I6IHZhciggLS1jb2xvci10aGVtZS1ibGFjayApICFpbXBvcnRhbnQ7XG5cdFx0LyogZm9udC1zaXplOiAxLjE1ZW07ICovXG5cdFx0LyogYW5pbWF0aW9uOiBydWJiZXJCYW5kIDFzIDE7ICovXG5cdH1cbn1cblxuLmludmVydGVkIC5mYW5jeSBhe1xuXHQmOmhvdmVyIHtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItdGhlbWUteWVsbG93KSAhaW1wb3J0YW50O1xuXHRcdGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB2YXIoIC0tY29sb3ItdGhlbWUteWVsbG93ICk7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoIC0tY29sb3ItdGhlbWUteWVsbG93ICkgIWltcG9ydGFudDtcblx0XHQvKiBmb250LXNpemU6IDEuMTVlbTsgKi9cblx0XHQvKiBhbmltYXRpb246IHJ1YmJlckJhbmQgMXMgMTsgKi9cblx0fVxufVxuXG4uaW52ZXJ0ZWQgYSB7XG5cdGNvbG9yOiB2YXIoIC0tY29sb3ItdGhlbWUtd2hpdGUgKTtcblx0Ym9yZGVyLWNvbG9yOiB2YXIoIC0tY29sb3ItdGhlbWUtd2hpdGUgKTtcbn1cblxuLmludmVydGVkIGE6aG92ZXIge1xuXHRjb2xvcjogdmFyKCAtLWNvbG9yLXRoZW1lLXllbGxvdyApO1xuXHRib3JkZXItY29sb3I6IHZhciggLS1jb2xvci10aGVtZS15ZWxsb3cgKTtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuIiwiXG5cbi5jb2wtMixcbi5jb2wtMyB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXG5cdCYubmIgPiAqIHtcblx0XHRib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcblx0fVxufVxuXG4uY29sLTIgPiAqLFxuLmNvbC0zID4gKiB7XG5cdHBhZGRpbmc6IHZhcigtLXBhZCk7XG5cblx0JjplbXB0eSB7XG5cdFx0cGFkZGluZzogMDtcblx0fVxufVxuXG4uY29sLTIgPiAqOm50aC1jaGlsZCAoZXZlbikge1xuXHRib3JkZXItbGVmdDogbm9uZTtcbn1cblxuLm13LWMge1xuXHRtYXgtd2lkdGg6IG5vbmU7XG59XG5cbmEuY2xuIHtcblx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblxuXHQmOmhvdmVyIHtcblx0XHRib3JkZXItYm90dG9tOiBub25lO1xuXHR9XG59XG5cblxuQG1lZGlhICgtLXdpZGUtbWVudS1xdWVyeSkge1xuXG5cdC5tdy1jIHtcblx0XHRtYXgtd2lkdGg6IDcwdnc7XG5cdH1cblxuXHQuY29sLTIsXG5cdC5jb2wtMyB7XG5cdFx0ZGlzcGxheTogZ3JpZDtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuXHR9XG5cblx0LmNvbC0yID4gKixcblx0LmNvbC0zID4gKiB7XG5cdFx0Z3JpZC1jb2x1bW46IHNwYW4gMjtcblx0fVxuXG5cdC5jb2wtMiA+ICo6bnRoLWNoaWxkKG9kZCksXG5cdC5jb2wtMyA+ICo6bnRoLWNoaWxkKG9kZCkge1xuXHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXRoZW1lLWJsYWNrKTtcblx0fVxufVxuXG4vKiBhZGp1c3QgY29sLTMgZm9yIHdpZGVyIHNjcmVlbnMgKi9cbkBtZWRpYSAoLS1zaWRlYmFyLXF1ZXJ5KSB7XG5cblx0LmNvbC0zIHtcblx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDYsIDFmcik7XG5cdH1cblxuXHQuY29sLTMgPiAqIHtcblx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jb2xvci10aGVtZS1ibGFjayk7XG5cdFx0Z3JpZC1jb2x1bW46IHNwYW4gMjtcblx0fVxuXG5cdC8qIG9uZSBkYW5nbGluZyBhcnRpY2xlLiBjZW50ZXIgaXQgYW5kIGFkZCBib3JkZXIgKi9cblx0LmNvbC0zID4gKjpudGgtbGFzdC1jaGlsZCgxKTpudGgtY2hpbGQoM24rMSkge1xuXHRcdGdyaWQtY29sdW1uOiAzIC8gc3BhbiAyO1xuXHRcdGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tY29sb3ItdGhlbWUtYmxhY2spO1xuXHR9XG5cblx0LyogdHdvIGRhbmdsaW5nIGFydGljbGVzLiBjZW50ZXIgKyBib3JkZXIgKi9cblx0LmNvbC0zID4gKjpudGgtbGFzdC1jaGlsZCgyKTpudGgtY2hpbGQoM24rMSkge1xuXHRcdGdyaWQtY29sdW1uOiAyL3NwYW4gMjtcblx0fVxuXG5cdC5jb2wtMyA+ICo6bnRoLWxhc3QtY2hpbGQoMSk6bnRoLWNoaWxkKDNuKzIpIHtcblx0XHQvKiBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jb2xvci10aGVtZS1ibGFjayk7ICovXG5cdH1cblxuXHQuY29sLTMgPiAqOm50aC1jaGlsZCgzbikge1xuXHRcdGJvcmRlci1yaWdodDogbm9uZTtcblx0fVxufVxuXG4uaW52ZXJ0ZWQuY29sLTIgPiAqOm50aC1jaGlsZCgyKSB7XG5cdGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tY29sb3ItdGhlbWUteWVsbG93KTtcbn1cbiIsIi8qIE1hcnF1ZWUgc3R5bGVzICovXG4ubWFycXVlZSB7XG5cdC0tZ2FwOiAxcmVtO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHRnYXA6IHZhcigtLWdhcCk7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjaztcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWFycXVlZS1iZywgd2hpdGUpO1xuXHRib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93LXRvcCk7XG59XG5cbi5tYXJxdWVlX19jb250ZW50IHtcblx0ZmxleC1zaHJpbms6IDA7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXHRnYXA6IHZhcigtLWdhcCk7XG5cdG1pbi13aWR0aDogMTAwJTtcblx0YW5pbWF0aW9uOiBzY3JvbGwgdmFyKC0tbWFycXVlZS1kdXJhdGlvbiwgMTBzKSBsaW5lYXIgaW5maW5pdGU7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdG1hcmdpbjogMDtcbn1cblxuLm1hcnF1ZWVfX2NvbnRlbnRcdHAge1xuXHRtYXJnaW46IDA7XG59XG5cbkBrZXlmcmFtZXMgc2Nyb2xsIHtcblx0ZnJvbSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuXHR9XG5cblx0dG8ge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC0xMDAlIC0gdmFyKC0tZ2FwKSkpO1xuXHR9XG59XG5cbi8qIFBhdXNlIGFuaW1hdGlvbiB3aGVuIHJlZHVjZWQtbW90aW9uIGlzIHNldCAqL1xuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0Lm1hcnF1ZWVfX2NvbnRlbnQge1xuXHRcdGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQgIWltcG9ydGFudDtcblx0fVxufVxuXG4vKiBSZXZlcnNlIGFuaW1hdGlvbiAqL1xuLm1hcnF1ZWUtLXJldmVyc2UgLm1hcnF1ZWVfX2NvbnRlbnQge1xuXHRhbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlO1xufVxuXG4vKiBQYXVzZSBvbiBob3ZlciAqL1xuLm1hcnF1ZWUtLWhvdmVyLXBhdXNlOmhvdmVyIC5tYXJxdWVlX19jb250ZW50IHtcblx0YW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbn1cblxuLyogQXR0ZW1wdCB0byBzaXplIHBhcmVudCBiYXNlZCBvbiBjb250ZW50LiBLZWVwIGluIG1pbmQgdGhhdCB0aGUgcGFyZW50IHdpZHRoIGlzIGVxdWFsIHRvIGJvdGggY29udGVudCBjb250YWluZXJzIHRoYXQgc3RyZXRjaCB0byBmaWxsIHRoZSBwYXJlbnQuICovXG4ubWFycXVlZS0tZml0LWNvbnRlbnQge1xuXHRtYXgtd2lkdGg6IGZpdC1jb250ZW50O1xufVxuXG4vKiBBIGZpdC1jb250ZW50IHNpemluZyBmaXg6IEFic29sdXRlIHBvc2l0aW9uIHRoZSBkdXBsaWNhdGUgY29udGFpbmVyLiBUaGlzIHdpbGwgc2V0IHRoZSBzaXplIG9mIHRoZSBwYXJlbnQgd3JhcHBlciB0byBhIHNpbmdsZSBjaGlsZCBjb250YWluZXIuIFNob3V0IG91dCB0byBPbGF2aSdzIGFydGljbGUgdGhhdCBoYWQgdGhpcyBzb2x1dGlvbiDwn5GPIEBsaW5rOiBodHRwczovL29sYXZpaGFhcGFsYS5maS8yMDIxLzAyLzIzL21vZGVybi1tYXJxdWVlLmh0bWwgICovXG4ubWFycXVlZS0tcG9zLWFic29sdXRlIC5tYXJxdWVlX19jb250ZW50Omxhc3QtY2hpbGQge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcbn1cblxuLyogRW5hYmxlIHBvc2l0aW9uIGFic29sdXRlIGFuaW1hdGlvbiBvbiB0aGUgZHVwbGljYXRlIGNvbnRlbnQgKGxhc3QtY2hpbGQpICovXG4uZW5hYmxlLWFuaW1hdGlvbiAubWFycXVlZS0tcG9zLWFic29sdXRlIC5tYXJxdWVlX19jb250ZW50Omxhc3QtY2hpbGQge1xuXHRhbmltYXRpb24tbmFtZTogc2Nyb2xsLWFicztcbn1cblxuQGtleWZyYW1lcyBzY3JvbGwtYWJzIHtcblx0ZnJvbSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMTAwJSArIHZhcigtLWdhcCkpKTtcblx0fVxuXG5cdHRvIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG5cdH1cbn1cbiIsIi5zaXRlLWhlYWRlciB7XG5cdHBhZGRpbmc6IDA7XG5cdG1hcmdpbjogMCB2YXIoLS1tZW51YmFyLXdpZHRoKSAwIDA7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IHZhcigtLXotaGVhZGVyKTtcblxuXG5cdCYgLm5ld3NsZXR0ZXItc2lnbnVwIHtcblxuXHRcdCYgc3ZnIGNpcmNsZSB7XG5cdFx0XHR0cmFuc2l0aW9uOiBmaWxsIDAuM3MgZWFzZTtcblx0XHR9XG5cblx0XHQmOmhvdmVyIHN2ZyBjaXJjbGUge1xuXHRcdFx0ZmlsbDogdmFyKC0tY29sb3ItdGhlbWUtd2hpdGUpICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0JiAuaGVhZGVyLWltYWdlIHN2ZyAuZmlsbCB7XG5cdFx0dHJhbnNpdGlvbjogZmlsbCAwLjZzIGVhc2U7XG5cdH1cblxuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci10aGVtZS15ZWxsb3cpO1xuXG5cdFx0JiAuaGVhZGVyLWltYWdlIHN2ZyAuZmlsbCB7XG5cdFx0XHRmaWxsOiB2YXIoLS1jb2xvci10aGVtZS15ZWxsb3cpO1xuXHRcdH1cblx0fVxufVxuXG4uZnVsbC13aWR0aCB7XG5cdG1hcmdpbjogMCAwIDAgY2FsYyh2YXIoLS1wYWQpICogLTEpO1xufVxuXG4uaGVhZGVyLWltYWdlIHtcblx0aGVpZ2h0OiA1ZW07XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHBhZGRpbmctcmlnaHQ6IDNlbTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCYgc3ZnIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdG1heC13aWR0aDogODV2dztcblx0fVxuXG5cdEBtZWRpYSAoLS13aWRlLW1lbnUtcXVlcnkpIHtcblx0XHRoZWlnaHQ6IDhlbTtcblxuXHRcdCYgc3ZnIHtcblx0XHRcdG1heC13aWR0aDogOTB2dztcblx0XHRcdGJvdHRvbTogLTAuNXJlbTtcblx0XHR9XG5cdH1cbn1cblxuYS5ob21lLWxpbmsge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5uZXdzbGV0dGVyLXNpZ251cCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHR6LWluZGV4OiAxO1xuXHRyaWdodDogdmFyKC0tcGFkKTtcblxuXHRAbWVkaWEgKC0td2lkZS1tZW51LXF1ZXJ5KSB7XG5cdFx0cmlnaHQ6IHZhcigtLW1lbnViYXItd2lkdGgpO1xuXHR9XG59XG5cbi5zaWdudXAtbGluayB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDI1dnc7XG5cdHRvcDogLTEydnc7XG5cdHJpZ2h0OiAwO1xufVxuXG5AbWVkaWEgKC0td2lkZS1tZW51LXF1ZXJ5KSB7XG5cblx0LnNpZ251cC1saW5rIHtcblx0XHR3aWR0aDogMTV2dztcblx0XHR0b3A6IC03LjV2dztcblx0fVxufVxuXG4vKiBzaGFkb3cgb24gdGhlIGhlYWRlciBmb3IgcGFnZXMgdGhhdCBkb250IGhhdmUgYW4gZWxlbWVudCB0aGF0IGRyb3AgdGhlIHNoYWRvdyB0aGVyZSAqL1xuLnBhZ2UtdGVtcGxhdGUsXG4ucGFnZS10ZW1wbGF0ZS1kZWZhdWx0IHtcblxuXHQmIC5zaXRlLW1haW4ge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRoZWlnaHQ6IDEwMHB4O1xuXHRcdFx0Ym94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdy10b3ApO1xuXHRcdFx0ei1pbmRleDogdmFyKC0tei1oZWFkZXIpO1xuXHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG5cbi5zb2NpYWxzIHtcblx0cGFkZGluZzogMDtcblx0bWFyZ2luOiAwO1xuXHRsaXN0LXN0eWxlOiBub25lO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMTBweDtcblx0bGVmdDogdmFyKC0tcGFkKTtcblxuXHQmIGEge1xuXHRcdGJvcmRlci1ib3R0b206IDA7XG5cdH1cblxuXHQmIGxpIHtcblx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cblx0XHQmIHN2ZyB7XG5cdFx0XHR3aWR0aDogMnZ3O1xuXHRcdFx0bWluLXdpZHRoOiAzMHB4O1xuXHRcdFx0bWF4LXdpZHRoOiA2MHB4O1xuXHRcdFx0aGVpZ2h0OiAydnc7XG5cdFx0XHRtaW4taGVpZ2h0OiAzMHB4O1xuXHRcdFx0bWF4LWhlaWdodDogNjBweDtcblx0XHRcdHRyYW5zaXRpb246IGZpbGwgMC4zcyBlYXNlO1xuXHRcdH1cblxuXHRcdCY6aG92ZXIgc3ZnIHtcblx0XHRcdGZpbGw6IHdoaXRlO1xuXHRcdH1cblx0fVxufSIsIi5mbGlja2l0eS1zbGlkZXIge1xuXG4gICAgJiAuc2xpZGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTAlO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xuICAgIH1cblxuICAgICYgLnNsaWRlLWNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBcbiAgICAgICAgJiBoMyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhciggLS1wYWQgKTtcbiAgICAgICAgICAgIC8qIGZvbnQtZmFtaWx5OiB2YXIoIC0tZm9udC1zZXJpZiApOyAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJiAuc2xpZGUtY29udGVudCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA0LjVyZW07XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgfVxuXG4gICAgJiAudmlkZW8tb2VtYmVkLFxuICAgICYgLnNsaWRlLWJnIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiBjYWxjKCAyNSUgLSB2YXIoIC0tcGFkICkgLyAyICk7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmIC5oYXMtdmlkZW8ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJiAudmlkZW8tb2VtYmVkIHtcblxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSggLTUwJSwgLTUwJSApO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAtLWJ1dHRvbi1zaXplOiA0dnc7XG4gICAgICAgICAgICAtLWhhbGYtc2l6ZTogY2FsYyggdmFyKCAtLWJ1dHRvbi1zaXplICkgLyAyICk7XG4gICAgICAgICAgICB3aWR0aDogdmFyKCAtLWJ1dHRvbi1zaXplICk7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhciggLS1idXR0b24tc2l6ZSApO1xuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogdmFyKCAtLWhhbGYtc2l6ZSApIDBweCB2YXIoIC0taGFsZi1zaXplICkgdmFyKCAtLWJ1dHRvbi1zaXplICk7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHdoaXRlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgdmFyKCAtLWJvdW5jZTIgKTtcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIC0tYnV0dG9uLXNpemU6IDh2dztcbiAgICAgICAgICAgIC0taGFsZi1zaXplOiBjYWxjKCB2YXIoIC0tYnV0dG9uLXNpemUgKSAvIDIgKTtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoIC0tYnV0dG9uLXNpemUgKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKCAtLWJ1dHRvbi1zaXplICk7XG4gICAgICAgICAgICAvKiBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTsgKi9cbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKCAtNTUlLCAtNTAlICk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCAyNTUsIDI1NSwgMjU1LCAwLjUgKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjZzIHZhciggLS1ib3VuY2UyICk7XG4gICAgICAgIH1cblxuICAgICAgICAmIGlmcmFtZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgLS1idXR0b24tc2l6ZTogMHB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoIDI1NSwgMjU1LCAyNTUsIC43ICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAtLWJ1dHRvbi1zaXplOiA2MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5oaWRlLXBsYXktYnV0dG9uIHtcbiAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgJiAuc2xpZGUtYmcge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIH1cblxuICAgICYgLnNsaWRlLWRlc2NyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKCAtLWNvbG9yLXRoZW1lLXdoaXRlICk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMCB2YXIoIC0tcGFkICk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCggNzUlICk7XG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgICAgYm94LXNoYWRvdzogLTEwcHggMCAxMHB4IHZhciggLS1ib3gtc2hhZG93LWNvbG9yICk7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgIH1cblxuICAgICYgLnNsaWRlIC5zbGlkZS1kZXNjci5ob3ZlciB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCggMCApO1xuICAgIH1cbn1cblxuXG4uY2Fyb3VzZWwtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJiAubmV4dC1zcGVha2VyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiB2YXIoIC0tei1pbnRlcmZhY2UgKTtcbiAgICAgICAgY3Vyc29yOiBlLXJlc2l6ZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoIC0tcGFkICk7XG4gICAgfVxuXG4gICAgJiAuY2Fyb3VzZWwtY291bnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IHZhciggLS1wYWQgKTtcbiAgICB9XG59XG5cbkBtZWRpYSAoLS13aWRlLW1lbnUtcXVlcnkpIHtcbiAgICAuZmxpY2tpdHktc2xpZGVyIHtcblxuICAgICAgICAmIC5zbGlkZS1kZXNjciB7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuLyogICAgICAgICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gKHZhcigtLXBhZCkvMikpOyAqL1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCA1MCUgKTtcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAmIC5zbGlkZS1kZXNjci5ob3ZlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoIDAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJvdXNlbC13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIFxuICAgICAgICAmIC5uZXh0LXNwZWFrZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IHZhciggLS1wYWQgKTtcbiAgICAgICAgICAgIHotaW5kZXg6IHZhciggLS16LWludGVyZmFjZSApO1xuICAgICAgICAgICAgY3Vyc29yOiBlLXJlc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAmIC5jYXJvdXNlbC1jb3VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgei1pbmRleDogdmFyKCAtLXotaW50ZXJmYWNlICk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiIsIi5pY29uIHtcbn1cblxuLmljb246YWZ0ZXIge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGNvbnRlbnQ6ICcnO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xufVxuXG4uaWNvbi1hZnRlcjphZnRlciB7XG5cdG1hcmdpbi1sZWZ0OiAwLjVyZW07XG59XG5cbi5pY29uOmJlZm9yZSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Y29udGVudDogJyc7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG59XG5cbi5pY29uLWJlZm9yZTo6YmVmb3JlIHtcblx0bWFyZ2luLXJpZ2h0OiAwLjVyZW07XG59XG5cbi5pY29uLWhpZGUtdGV4dCB7XG5cdFxufVxuXG4uaWNvbi1hcnJvdy1lLmljb24tYmVmb3JlOmJlZm9yZSxcbi5pY29uLWFycm93LWUuaWNvbi1hZnRlcjphZnRlciB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCggJy4uL3N2Zy9hcnJvdy1lLnN2ZycgKTtcblx0YmFja2dyb3VuZC1zaXplOiAyNHB4IDE2cHg7XG5cdHdpZHRoOiAyNHB4O1xuXHRoZWlnaHQ6IDE2cHg7XG59XG5cbi5pY29uLWFycm93LXcuaWNvbi1iZWZvcmU6YmVmb3JlLFxuLmljb24tYXJyb3ctdy5pY29uLWFmdGVyOmFmdGVyIHtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCAnLi4vc3ZnL2Fycm93LXcuc3ZnJyApO1xuXHRiYWNrZ3JvdW5kLXNpemU6IDI0cHggMTZweDtcblx0d2lkdGg6IDI0cHg7XG5cdGhlaWdodDogMTZweDtcbn0iLCIucHVsc2Uge1xuXHQtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBwdWxzZTtcblx0YW5pbWF0aW9uLW5hbWU6IHB1bHNlO1xuXHQtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG5cdGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG5cdC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcblx0YW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHB1bHNlIHtcblx0MCUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcblx0fVxuXHQ1MCUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIDEuMDUsIDEuMDUpO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAxLjA1LCAxLjA1KTtcblx0fVxuXHQxMDAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcblx0XHR0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG5cdH1cbn1cblxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZS1pbiB7XG5cdDAlIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGUtb3V0IHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxufVxuXG5cblxuQGtleWZyYW1lcyBwdWxzZSB7XG5cdDAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcblx0XHR0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG5cdH1cblx0NTAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAxLjA1LCAxLjA1KTtcblx0XHR0cmFuc2Zvcm06IHNjYWxlM2QoMS4yLCAxLjIsIDEuMik7XG5cdH1cblx0MTAwJSB7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG5cdFx0dHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuXHR9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBydWJiZXJCYW5kIHtcblx0MCUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcblx0fVxuXHQzMCUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMjUsIDAuNzUsIDEpO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUzZCgxLjI1LCAwLjc1LCAxKTtcblx0fVxuXHQ0MCUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuNzUsIDEuMjUsIDEpO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUzZCgwLjc1LCAxLjI1LCAxKTtcblx0fVxuXHQ1MCUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMTUsIDAuODUsIDEpO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUzZCgxLjE1LCAwLjg1LCAxKTtcblx0fVxuXHQ2NSUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuOTUsIDEuMDUsIDEpO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUzZCgwLjk1LCAxLjA1LCAxKTtcblx0fVxuXHQ3NSUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIDAuOTUsIDEpO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAwLjk1LCAxKTtcblx0fVxuXHQxMDAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcblx0XHR0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBydWJiZXJCYW5kIHtcblx0MCUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcblx0fVxuXHQzMCUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMjUsIDAuNzUsIDEpO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUzZCgxLjI1LCAwLjc1LCAxKTtcblx0fVxuXHQ0MCUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuNzUsIDEuMjUsIDEpO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUzZCgwLjc1LCAxLjI1LCAxKTtcblx0fVxuXHQ1MCUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMTUsIDAuODUsIDEpO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUzZCgxLjE1LCAwLjg1LCAxKTtcblx0fVxuXHQ2NSUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuOTUsIDEuMDUsIDEpO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUzZCgwLjk1LCAxLjA1LCAxKTtcblx0fVxuXHQ3NSUge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIDAuOTUsIDEpO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAwLjk1LCAxKTtcblx0fVxuXHQxMDAlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcblx0XHR0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG5cdH1cbn1cblxuXG5Aa2V5ZnJhbWVzIHdvYmJsZS1ob3ItYm90dG9tIHtcblx0MCUsXG5cdDEwMCUge1xuXHRcdFx0ICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuXHRcdFx0ICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuXHR9XG5cdDE1JSB7XG5cdFx0XHQgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzBweCkgcm90YXRlKC02ZGVnKTtcblx0fVxuXHQzMCUge1xuXHRcdFx0ICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTVweCkgcm90YXRlKDZkZWcpO1xuXHR9XG5cdDQ1JSB7XG5cdFx0XHQgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTVweCkgcm90YXRlKC0zLjZkZWcpO1xuXHR9XG5cdDYwJSB7XG5cdFx0XHQgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg5cHgpIHJvdGF0ZSgyLjRkZWcpO1xuXHR9XG5cdDc1JSB7XG5cdFx0XHQgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNnB4KSByb3RhdGUoLTEuMmRlZyk7XG5cdH1cbiAgfVxuXG5cbiAgQGtleWZyYW1lcyBzbGlkZS1pbi1ibHVycmVkLXRvcCB7XG5cdDAlIHtcblx0XHRcdCAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAwcHgpIHNjYWxlWSgyLjUpIHNjYWxlWCgwLjIpO1xuXHRcdFx0ICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7XG5cdFx0XHQgIGZpbHRlcjogYmx1cig0MHB4KTtcblx0XHRcdFx0b3BhY2l0eTogMDtcblx0fVxuXHQxMDAlIHtcblx0XHRcdCAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlWSgxKSBzY2FsZVgoMSk7XG5cdFx0XHQgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG5cdFx0XHQgIGZpbHRlcjogYmx1cigwKTtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0fVxuICB9XG5cblxuICBAa2V5ZnJhbWVzIGplbGxvMiB7XG5cdGZyb20sIDExLjElLCB0byB7XG5cdCAgdHJhbnNmb3JtOiBub25lO1xuXHR9XG4gIFxuXHQyMi4yJSB7XG5cdCAgdHJhbnNmb3JtOiBza2V3WCgtMTIuNWRlZykgc2tld1koLTEyLjVkZWcpO1xuXHR9XG4gIFxuXHQzMy4zJSB7XG5cdCAgdHJhbnNmb3JtOiBza2V3WCg2LjI1ZGVnKSBza2V3WSg2LjI1ZGVnKTtcblx0fVxuICBcblx0NDQuNCUge1xuXHQgIHRyYW5zZm9ybTogc2tld1goLTMuMTI1ZGVnKSBza2V3WSgtMy4xMjVkZWcpO1xuXHR9XG4gIFxuXHQ1NS41JSB7XG5cdCAgdHJhbnNmb3JtOiBza2V3WCgxLjU2MjVkZWcpIHNrZXdZKDEuNTYyNWRlZyk7XG5cdH1cbiAgXG5cdDY2LjYlIHtcblx0ICB0cmFuc2Zvcm06IHNrZXdYKC0wLjc4MTI1ZGVnKSBza2V3WSgtMC43ODEyNWRlZyk7XG5cdH1cbiAgXG5cdDc3LjclIHtcblx0ICB0cmFuc2Zvcm06IHNrZXdYKDAuMzkwNjI1ZGVnKSBza2V3WSgwLjM5MDYyNWRlZyk7XG5cdH1cbiAgXG5cdDg4LjglIHtcblx0ICB0cmFuc2Zvcm06IHNrZXdYKC0wLjE5NTMxMjVkZWcpIHNrZXdZKC0wLjE5NTMxMjVkZWcpO1xuXHR9XG4gIH1cbiAgXG4gICIsIi8qXG5cIlNheSAnTmV2ZXJtb3JlLCdcIiBzYWlkIFNoYWRvdy5cblwiRnVjayB5b3UsXCIgc2FpZCB0aGUgcmF2ZW4u4oCdXG4qL1xuXG5cbi5zaC10IHtcblx0Ym94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdy10b3AtaW5zZXQpO1xufVxuXG4uc2gtdG8ge1xuXHRib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93LXRvcCk7XG59XG5cbi5zaC1iIHtcblx0Ym94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdy1ib3R0b20taW5zZXQpO1xufVxuXG4uc2gtYm8ge1xuXHRib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93LWJvdHRvbSk7XG59XG5cbi5zaC10YiB7XG5cdGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3ctdG9wLWluc2V0KSwgdmFyKC0tYm94LXNoYWRvdy1ib3R0b20taW5zZXQpO1xufVxuXG4uc2gtdGJvIHtcblx0Ym94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdy10b3ApLCB2YXIoLS1ib3gtc2hhZG93LWJvdHRvbSk7XG59XG5cbi8qIC5zaGFkb3ctdCB7XG5cdGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3ctdG9wKTtcbn1cblxuLnNoYWRvdy1iIHtcblx0Ym94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdy1ib3R0b20pO1xufVxuXG4uc2hhZG93LXRpIHtcblx0Ym94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdy10b3AtaW5zZXQpO1xufVxuXG4uc2hhZG93LWJpIHtcblx0Ym94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdy1ib3R0b20taW5zZXQpO1xufVxuXG4uc2hhZG93LXQtYiB7XG5cdGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3ctdG9wKSwgdmFyKC0tYm94LXNoYWRvdy1ib3R0b20pO1xufVxuXG4uc2hhZG93LXQtYmkge1xuXHRib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93LXRvcCksIHZhcigtLWJveC1zaGFkb3ctYm90dG9tLWluc2V0KTtcbn1cblxuLnNoYWRvdy10aS1iIHtcblx0Ym94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdy10b3AtaW5zZXQpLCB2YXIoLS1ib3gtc2hhZG93LWJvdHRvbSk7XG59XG5cbi5zaGFkb3ctdGktYmkge1xuXHRib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93LXRvcC1pbnNldCksIHZhcigtLWJveC1zaGFkb3ctYm90dG9tLWluc2V0KTtcbn0gKi9cbiJdfQ== */