/*!
Theme Name: ExperienceMatter
Theme URI: http://underscores.me/
Author: Daniel Zaremba
Author URI: http://dzaremba.com
Description: Description
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: experiencematter
Tags:

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

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

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal http://necolas.github.com/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Normalize
# Typography
# Elements
# Forms
# Navigation
	## Links
	## Menus
# Accessibility
# Alignments
# Clearings
# Widgets
# Content
    ## Posts and pages
	## Asides
	## Comments
# Infinite scroll
# Media
	## Captions
	## Galleries
--------------------------------------------------------------*/
/* ==========================================================================
   Normalize.scss settings
   ========================================================================== */
/**
 * Includes legacy browser support IE6/7
 *
 * Set to false if you want to drop support for IE6 and IE7
 */
/* Base
   ========================================================================== */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device orientation change,
 *    without disabling user zoom.
 * 3. Corrects text resizing oddly in IE 6/7 when body `font-size` is set using
 *  `em` units.
 */
@import url("//hello.myfonts.net/count/306853");
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
 * Remove default margin.
 */
body {
  margin: 0; }

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block; }

/**
 * 1. Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
 * Prevents modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none; }

/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent; }

/**
 * Improve readability of focused elements when they are also in an
 * active/hover state.
 */
a:active, a:hover {
  outline: 0; }

/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold; }

/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic; }

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/**
 * Addresses styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%; }

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
   ========================================================================== */
/**
 * 1. Remove border when inside `a` element in IE 8/9/10.
 * 2. Improves image quality when scaled in IE 7.
 */
img {
  border: 0; }

/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden; }

/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px; }

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  box-sizing: content-box;
  height: 0; }

/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto; }

/**
 * Address odd `em`-unit font size rendering in all browsers.
 * Correct font family set oddly in IE 6, Safari 4/5, and Chrome.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *  Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 * 4. Improves appearance and consistency in all browsers.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible; }

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none; }

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *  and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *  `input` and others.
 * 4. Removes inner spacing in IE 7 without affecting normal text inputs.
 *  Known issue: inner spacing remains in IE 6.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default; }

/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
  line-height: normal; }

/**
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 *  Known issue: excess padding remains in IE 6.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  box-sizing: content-box;
  /* 2 */ }

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 * 3. Corrects text not wrapping in Firefox 3.
 * 4. Corrects alignment displayed oddly in IE 6/7.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto; }

/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold; }

/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0; }

.panel__hero {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex; }

/*!
Animate.css - http://daneden.me/animate
Licensed under the MIT license - http://opensource.org/licenses/MIT

Copyright (c) 2015 Daniel Eden
*/
@media (min-width: 20em) {
  .animated {
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both; } }

.animated.infinite {
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite; }

.animated.hinge {
  -webkit-animation-duration: 2s;
  animation-duration: 2s; }

.animated.bounceIn,
.animated.bounceOut {
  -webkit-animation-duration: .75s;
  animation-duration: .75s; }

.animated.flipOutX,
.animated.flipOutY {
  -webkit-animation-duration: .75s;
  animation-duration: .75s; }

@-webkit-keyframes bounce {
  from, 20%, 53%, 80%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  40%, 43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -30px, 0);
    transform: translate3d(0, -30px, 0); }
  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -15px, 0);
    transform: translate3d(0, -15px, 0); }
  90% {
    -webkit-transform: translate3d(0, -4px, 0);
    transform: translate3d(0, -4px, 0); } }

@keyframes bounce {
  from, 20%, 53%, 80%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  40%, 43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -30px, 0);
    transform: translate3d(0, -30px, 0); }
  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -15px, 0);
    transform: translate3d(0, -15px, 0); }
  90% {
    -webkit-transform: translate3d(0, -4px, 0);
    transform: translate3d(0, -4px, 0); } }

.bounce {
  -webkit-animation-name: bounce;
  animation-name: bounce;
  -webkit-transform-origin: center bottom;
  transform-origin: center bottom; }

@-webkit-keyframes flash {
  from, 50%, 100% {
    opacity: 1; }
  25%, 75% {
    opacity: 0; } }

@keyframes flash {
  from, 50%, 100% {
    opacity: 1; }
  25%, 75% {
    opacity: 0; } }

.flash {
  -webkit-animation-name: flash;
  animation-name: flash; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes pulse {
  from {
    -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); } }

@keyframes pulse {
  from {
    -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); } }

.pulse {
  -webkit-animation-name: pulse;
  animation-name: pulse; }

@-webkit-keyframes rubberBand {
  from {
    -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 {
  from {
    -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); } }

.rubberBand {
  -webkit-animation-name: rubberBand;
  animation-name: rubberBand; }

@-webkit-keyframes shake {
  from, 100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  20%, 40%, 60%, 80% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); } }

@keyframes shake {
  from, 100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  20%, 40%, 60%, 80% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); } }

.shake {
  -webkit-animation-name: shake;
  animation-name: shake; }

@-webkit-keyframes swing {
  20% {
    -webkit-transform: rotate3d(0, 0, 1, 15deg);
    transform: rotate3d(0, 0, 1, 15deg); }
  40% {
    -webkit-transform: rotate3d(0, 0, 1, -10deg);
    transform: rotate3d(0, 0, 1, -10deg); }
  60% {
    -webkit-transform: rotate3d(0, 0, 1, 5deg);
    transform: rotate3d(0, 0, 1, 5deg); }
  80% {
    -webkit-transform: rotate3d(0, 0, 1, -5deg);
    transform: rotate3d(0, 0, 1, -5deg); }
  100% {
    -webkit-transform: rotate3d(0, 0, 1, 0deg);
    transform: rotate3d(0, 0, 1, 0deg); } }

@keyframes swing {
  20% {
    -webkit-transform: rotate3d(0, 0, 1, 15deg);
    transform: rotate3d(0, 0, 1, 15deg); }
  40% {
    -webkit-transform: rotate3d(0, 0, 1, -10deg);
    transform: rotate3d(0, 0, 1, -10deg); }
  60% {
    -webkit-transform: rotate3d(0, 0, 1, 5deg);
    transform: rotate3d(0, 0, 1, 5deg); }
  80% {
    -webkit-transform: rotate3d(0, 0, 1, -5deg);
    transform: rotate3d(0, 0, 1, -5deg); }
  100% {
    -webkit-transform: rotate3d(0, 0, 1, 0deg);
    transform: rotate3d(0, 0, 1, 0deg); } }

.swing {
  -webkit-transform-origin: top center;
  transform-origin: top center;
  -webkit-animation-name: swing;
  animation-name: swing; }

@-webkit-keyframes tada {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  10%, 20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); }
  30%, 50%, 70%, 90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); }
  40%, 60%, 80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); }
  100% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

@keyframes tada {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  10%, 20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); }
  30%, 50%, 70%, 90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); }
  40%, 60%, 80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); }
  100% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

.tada {
  -webkit-animation-name: tada;
  animation-name: tada; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes wobble {
  from {
    -webkit-transform: none;
    transform: none; }
  15% {
    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); }
  30% {
    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); }
  45% {
    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); }
  60% {
    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); }
  75% {
    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); }
  100% {
    -webkit-transform: none;
    transform: none; } }

@keyframes wobble {
  from {
    -webkit-transform: none;
    transform: none; }
  15% {
    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); }
  30% {
    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); }
  45% {
    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); }
  60% {
    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); }
  75% {
    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); }
  100% {
    -webkit-transform: none;
    transform: none; } }

.wobble {
  -webkit-animation-name: wobble;
  animation-name: wobble; }

@-webkit-keyframes jello {
  from, 11.1%, 100% {
    -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.39062deg) skewY(0.39062deg);
    transform: skewX(0.39062deg) skewY(0.39062deg); }
  88.8% {
    -webkit-transform: skewX(-0.19531deg) skewY(-0.19531deg);
    transform: skewX(-0.19531deg) skewY(-0.19531deg); } }

@keyframes jello {
  from, 11.1%, 100% {
    -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.39062deg) skewY(0.39062deg);
    transform: skewX(0.39062deg) skewY(0.39062deg); }
  88.8% {
    -webkit-transform: skewX(-0.19531deg) skewY(-0.19531deg);
    transform: skewX(-0.19531deg) skewY(-0.19531deg); } }

.jello {
  -webkit-animation-name: jello;
  animation-name: jello;
  -webkit-transform-origin: center;
  transform-origin: center; }

@-webkit-keyframes bounceIn {
  from, 20%, 40%, 60%, 80%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  40% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03); }
  80% {
    -webkit-transform: scale3d(0.97, 0.97, 0.97);
    transform: scale3d(0.97, 0.97, 0.97); }
  100% {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

@keyframes bounceIn {
  from, 20%, 40%, 60%, 80%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  40% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03); }
  80% {
    -webkit-transform: scale3d(0.97, 0.97, 0.97);
    transform: scale3d(0.97, 0.97, 0.97); }
  100% {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

.bounceIn {
  -webkit-animation-name: bounceIn;
  animation-name: bounceIn; }

@-webkit-keyframes bounceInDown {
  from, 60%, 75%, 90%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -3000px, 0);
    transform: translate3d(0, -3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, 25px, 0);
    transform: translate3d(0, 25px, 0); }
  75% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  90% {
    -webkit-transform: translate3d(0, 5px, 0);
    transform: translate3d(0, 5px, 0); }
  100% {
    -webkit-transform: none;
    transform: none; } }

@keyframes bounceInDown {
  from, 60%, 75%, 90%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -3000px, 0);
    transform: translate3d(0, -3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, 25px, 0);
    transform: translate3d(0, 25px, 0); }
  75% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  90% {
    -webkit-transform: translate3d(0, 5px, 0);
    transform: translate3d(0, 5px, 0); }
  100% {
    -webkit-transform: none;
    transform: none; } }

.bounceInDown {
  -webkit-animation-name: bounceInDown;
  animation-name: bounceInDown; }

@-webkit-keyframes bounceInLeft {
  from, 60%, 75%, 90%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px, 0, 0);
    transform: translate3d(-3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px, 0, 0);
    transform: translate3d(25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(5px, 0, 0);
    transform: translate3d(5px, 0, 0); }
  100% {
    -webkit-transform: none;
    transform: none; } }

@keyframes bounceInLeft {
  from, 60%, 75%, 90%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px, 0, 0);
    transform: translate3d(-3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px, 0, 0);
    transform: translate3d(25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(5px, 0, 0);
    transform: translate3d(5px, 0, 0); }
  100% {
    -webkit-transform: none;
    transform: none; } }

.bounceInLeft {
  -webkit-animation-name: bounceInLeft;
  animation-name: bounceInLeft; }

@-webkit-keyframes bounceInRight {
  from, 60%, 75%, 90%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  from {
    opacity: 0;
    -webkit-transform: translate3d(3000px, 0, 0);
    transform: translate3d(3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px, 0, 0);
    transform: translate3d(-25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(-5px, 0, 0);
    transform: translate3d(-5px, 0, 0); }
  100% {
    -webkit-transform: none;
    transform: none; } }

@keyframes bounceInRight {
  from, 60%, 75%, 90%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  from {
    opacity: 0;
    -webkit-transform: translate3d(3000px, 0, 0);
    transform: translate3d(3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px, 0, 0);
    transform: translate3d(-25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(-5px, 0, 0);
    transform: translate3d(-5px, 0, 0); }
  100% {
    -webkit-transform: none;
    transform: none; } }

.bounceInRight {
  -webkit-animation-name: bounceInRight;
  animation-name: bounceInRight; }

@-webkit-keyframes bounceInUp {
  from, 60%, 75%, 90%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 3000px, 0);
    transform: translate3d(0, 3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  75% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  90% {
    -webkit-transform: translate3d(0, -5px, 0);
    transform: translate3d(0, -5px, 0); }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

@keyframes bounceInUp {
  from, 60%, 75%, 90%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 3000px, 0);
    transform: translate3d(0, 3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  75% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  90% {
    -webkit-transform: translate3d(0, -5px, 0);
    transform: translate3d(0, -5px, 0); }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

.bounceInUp {
  -webkit-animation-name: bounceInUp;
  animation-name: bounceInUp; }

@-webkit-keyframes bounceOut {
  20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  50%, 55% {
    opacity: 1;
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  100% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); } }

@keyframes bounceOut {
  20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  50%, 55% {
    opacity: 1;
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  100% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); } }

.bounceOut {
  -webkit-animation-name: bounceOut;
  animation-name: bounceOut; }

@-webkit-keyframes bounceOutDown {
  20% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }

@keyframes bounceOutDown {
  20% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }

.bounceOutDown {
  -webkit-animation-name: bounceOutDown;
  animation-name: bounceOutDown; }

@-webkit-keyframes bounceOutLeft {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(20px, 0, 0);
    transform: translate3d(20px, 0, 0); }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }

@keyframes bounceOutLeft {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(20px, 0, 0);
    transform: translate3d(20px, 0, 0); }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }

.bounceOutLeft {
  -webkit-animation-name: bounceOutLeft;
  animation-name: bounceOutLeft; }

@-webkit-keyframes bounceOutRight {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(-20px, 0, 0);
    transform: translate3d(-20px, 0, 0); }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }

@keyframes bounceOutRight {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(-20px, 0, 0);
    transform: translate3d(-20px, 0, 0); }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }

.bounceOutRight {
  -webkit-animation-name: bounceOutRight;
  animation-name: bounceOutRight; }

@-webkit-keyframes bounceOutUp {
  20% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, 20px, 0);
    transform: translate3d(0, 20px, 0); }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }

@keyframes bounceOutUp {
  20% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, 20px, 0);
    transform: translate3d(0, 20px, 0); }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }

.bounceOutUp {
  -webkit-animation-name: bounceOutUp;
  animation-name: bounceOutUp; }

@-webkit-keyframes fadeIn {
  from {
    opacity: 0; }
  100% {
    opacity: 1; } }

@keyframes fadeIn {
  from {
    opacity: 0; }
  100% {
    opacity: 1; } }

.fadeIn {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn; }

@-webkit-keyframes fadeInDown {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInDown {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInDown {
  -webkit-animation-name: fadeInDown;
  animation-name: fadeInDown; }

@-webkit-keyframes fadeInDownBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInDownBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInDownBig {
  -webkit-animation-name: fadeInDownBig;
  animation-name: fadeInDownBig; }

@-webkit-keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInLeft {
  -webkit-animation-name: fadeInLeft;
  animation-name: fadeInLeft; }

@-webkit-keyframes fadeInLeftBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInLeftBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInLeftBig {
  -webkit-animation-name: fadeInLeftBig;
  animation-name: fadeInLeftBig; }

@-webkit-keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInRight {
  -webkit-animation-name: fadeInRight;
  animation-name: fadeInRight; }

@-webkit-keyframes fadeInRightBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInRightBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInRightBig {
  -webkit-animation-name: fadeInRightBig;
  animation-name: fadeInRightBig; }

@-webkit-keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInUp {
  -webkit-animation-name: fadeInUp;
  animation-name: fadeInUp; }

@-webkit-keyframes fadeInUpBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInUpBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInUpBig {
  -webkit-animation-name: fadeInUpBig;
  animation-name: fadeInUpBig; }

@-webkit-keyframes fadeOut {
  from {
    opacity: 1; }
  100% {
    opacity: 0; } }

@keyframes fadeOut {
  from {
    opacity: 1; }
  100% {
    opacity: 0; } }

.fadeOut {
  -webkit-animation-name: fadeOut;
  animation-name: fadeOut; }

@-webkit-keyframes fadeOutDown {
  from {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }

@keyframes fadeOutDown {
  from {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }

.fadeOutDown {
  -webkit-animation-name: fadeOutDown;
  animation-name: fadeOutDown; }

@-webkit-keyframes fadeOutDownBig {
  from {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }

@keyframes fadeOutDownBig {
  from {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }

.fadeOutDownBig {
  -webkit-animation-name: fadeOutDownBig;
  animation-name: fadeOutDownBig; }

@-webkit-keyframes fadeOutLeft {
  from {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }

@keyframes fadeOutLeft {
  from {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }

.fadeOutLeft {
  -webkit-animation-name: fadeOutLeft;
  animation-name: fadeOutLeft; }

@-webkit-keyframes fadeOutLeftBig {
  from {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }

@keyframes fadeOutLeftBig {
  from {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }

.fadeOutLeftBig {
  -webkit-animation-name: fadeOutLeftBig;
  animation-name: fadeOutLeftBig; }

@-webkit-keyframes fadeOutRight {
  from {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }

@keyframes fadeOutRight {
  from {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }

.fadeOutRight {
  -webkit-animation-name: fadeOutRight;
  animation-name: fadeOutRight; }

@-webkit-keyframes fadeOutRightBig {
  from {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }

@keyframes fadeOutRightBig {
  from {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }

.fadeOutRightBig {
  -webkit-animation-name: fadeOutRightBig;
  animation-name: fadeOutRightBig; }

@-webkit-keyframes fadeOutUp {
  from {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }

@keyframes fadeOutUp {
  from {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }

.fadeOutUp {
  -webkit-animation-name: fadeOutUp;
  animation-name: fadeOutUp; }

@-webkit-keyframes fadeOutUpBig {
  from {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }

@keyframes fadeOutUpBig {
  from {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }

.fadeOutUpBig {
  -webkit-animation-name: fadeOutUpBig;
  animation-name: fadeOutUpBig; }

@-webkit-keyframes flip {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  40% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  50% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  80% {
    -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  100% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; } }

@keyframes flip {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  40% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  50% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  80% {
    -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  100% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; } }

.animated.flip {
  -webkit-backface-visibility: visible;
  backface-visibility: visible;
  -webkit-animation-name: flip;
  animation-name: flip; }

@-webkit-keyframes flipInX {
  from {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg); }
  100% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }

@keyframes flipInX {
  from {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg); }
  100% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }

.flipInX {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipInX;
  animation-name: flipInX; }

@-webkit-keyframes flipInY {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg); }
  100% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }

@keyframes flipInY {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg); }
  100% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }

.flipInY {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipInY;
  animation-name: flipInY; }

@-webkit-keyframes flipOutX {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1; }
  100% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0; } }

@keyframes flipOutX {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1; }
  100% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0; } }

.flipOutX {
  -webkit-animation-name: flipOutX;
  animation-name: flipOutX;
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important; }

@-webkit-keyframes flipOutY {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1; }
  100% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0; } }

@keyframes flipOutY {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1; }
  100% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0; } }

.flipOutY {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipOutY;
  animation-name: flipOutY; }

@-webkit-keyframes lightSpeedIn {
  from {
    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0; }
  60% {
    -webkit-transform: skewX(20deg);
    transform: skewX(20deg);
    opacity: 1; }
  80% {
    -webkit-transform: skewX(-5deg);
    transform: skewX(-5deg);
    opacity: 1; }
  100% {
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

@keyframes lightSpeedIn {
  from {
    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0; }
  60% {
    -webkit-transform: skewX(20deg);
    transform: skewX(20deg);
    opacity: 1; }
  80% {
    -webkit-transform: skewX(-5deg);
    transform: skewX(-5deg);
    opacity: 1; }
  100% {
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

.lightSpeedIn {
  -webkit-animation-name: lightSpeedIn;
  animation-name: lightSpeedIn;
  -webkit-animation-timing-function: ease-out;
  animation-timing-function: ease-out; }

@-webkit-keyframes lightSpeedOut {
  from {
    opacity: 1; }
  100% {
    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0; } }

@keyframes lightSpeedOut {
  from {
    opacity: 1; }
  100% {
    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0; } }

.lightSpeedOut {
  -webkit-animation-name: lightSpeedOut;
  animation-name: lightSpeedOut;
  -webkit-animation-timing-function: ease-in;
  animation-timing-function: ease-in; }

@-webkit-keyframes rotateIn {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, -200deg);
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

@keyframes rotateIn {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, -200deg);
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

.rotateIn {
  -webkit-animation-name: rotateIn;
  animation-name: rotateIn; }

@-webkit-keyframes rotateInDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

@keyframes rotateInDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

.rotateInDownLeft {
  -webkit-animation-name: rotateInDownLeft;
  animation-name: rotateInDownLeft; }

@-webkit-keyframes rotateInDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

@keyframes rotateInDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

.rotateInDownRight {
  -webkit-animation-name: rotateInDownRight;
  animation-name: rotateInDownRight; }

@-webkit-keyframes rotateInUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

@keyframes rotateInUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

.rotateInUpLeft {
  -webkit-animation-name: rotateInUpLeft;
  animation-name: rotateInUpLeft; }

@-webkit-keyframes rotateInUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

@keyframes rotateInUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

.rotateInUpRight {
  -webkit-animation-name: rotateInUpRight;
  animation-name: rotateInUpRight; }

@-webkit-keyframes rotateOut {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    opacity: 1; }
  100% {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, 200deg);
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0; } }

@keyframes rotateOut {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    opacity: 1; }
  100% {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, 200deg);
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0; } }

.rotateOut {
  -webkit-animation-name: rotateOut;
  animation-name: rotateOut; }

@-webkit-keyframes rotateOutDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; } }

@keyframes rotateOutDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; } }

.rotateOutDownLeft {
  -webkit-animation-name: rotateOutDownLeft;
  animation-name: rotateOutDownLeft; }

@-webkit-keyframes rotateOutDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }

@keyframes rotateOutDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }

.rotateOutDownRight {
  -webkit-animation-name: rotateOutDownRight;
  animation-name: rotateOutDownRight; }

@-webkit-keyframes rotateOutUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }

@keyframes rotateOutUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }

.rotateOutUpLeft {
  -webkit-animation-name: rotateOutUpLeft;
  animation-name: rotateOutUpLeft; }

@-webkit-keyframes rotateOutUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 90deg);
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0; } }

@keyframes rotateOutUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 90deg);
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0; } }

.rotateOutUpRight {
  -webkit-animation-name: rotateOutUpRight;
  animation-name: rotateOutUpRight; }

@-webkit-keyframes hinge {
  0% {
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  20%, 60% {
    -webkit-transform: rotate3d(0, 0, 1, 80deg);
    transform: rotate3d(0, 0, 1, 80deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  40%, 80% {
    -webkit-transform: rotate3d(0, 0, 1, 60deg);
    transform: rotate3d(0, 0, 1, 60deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1; }
  100% {
    -webkit-transform: translate3d(0, 700px, 0);
    transform: translate3d(0, 700px, 0);
    opacity: 0; } }

@keyframes hinge {
  0% {
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  20%, 60% {
    -webkit-transform: rotate3d(0, 0, 1, 80deg);
    transform: rotate3d(0, 0, 1, 80deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  40%, 80% {
    -webkit-transform: rotate3d(0, 0, 1, 60deg);
    transform: rotate3d(0, 0, 1, 60deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1; }
  100% {
    -webkit-transform: translate3d(0, 700px, 0);
    transform: translate3d(0, 700px, 0);
    opacity: 0; } }

.hinge {
  -webkit-animation-name: hinge;
  animation-name: hinge; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes rollIn {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes rollIn {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.rollIn {
  -webkit-animation-name: rollIn;
  animation-name: rollIn; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes rollOut {
  from {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } }

@keyframes rollOut {
  from {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } }

.rollOut {
  -webkit-animation-name: rollOut;
  animation-name: rollOut; }

@-webkit-keyframes zoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  50% {
    opacity: 1; } }

@keyframes zoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  50% {
    opacity: 1; } }

.zoomIn {
  -webkit-animation-name: zoomIn;
  animation-name: zoomIn; }

@-webkit-keyframes zoomInDown {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomInDown {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

.zoomInDown {
  -webkit-animation-name: zoomInDown;
  animation-name: zoomInDown; }

@-webkit-keyframes zoomInLeft {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomInLeft {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

.zoomInLeft {
  -webkit-animation-name: zoomInLeft;
  animation-name: zoomInLeft; }

@-webkit-keyframes zoomInRight {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomInRight {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

.zoomInRight {
  -webkit-animation-name: zoomInRight;
  animation-name: zoomInRight; }

@-webkit-keyframes zoomInUp {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomInUp {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

.zoomInUp {
  -webkit-animation-name: zoomInUp;
  animation-name: zoomInUp; }

@-webkit-keyframes zoomOut {
  from {
    opacity: 1; }
  50% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  100% {
    opacity: 0; } }

@keyframes zoomOut {
  from {
    opacity: 1; }
  50% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  100% {
    opacity: 0; } }

.zoomOut {
  -webkit-animation-name: zoomOut;
  animation-name: zoomOut; }

@-webkit-keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  100% {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  100% {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

.zoomOutDown {
  -webkit-animation-name: zoomOutDown;
  animation-name: zoomOutDown; }

@-webkit-keyframes zoomOutLeft {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); }
  100% {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
    transform: scale(0.1) translate3d(-2000px, 0, 0);
    -webkit-transform-origin: left center;
    transform-origin: left center; } }

@keyframes zoomOutLeft {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); }
  100% {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
    transform: scale(0.1) translate3d(-2000px, 0, 0);
    -webkit-transform-origin: left center;
    transform-origin: left center; } }

.zoomOutLeft {
  -webkit-animation-name: zoomOutLeft;
  animation-name: zoomOutLeft; }

@-webkit-keyframes zoomOutRight {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); }
  100% {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
    transform: scale(0.1) translate3d(2000px, 0, 0);
    -webkit-transform-origin: right center;
    transform-origin: right center; } }

@keyframes zoomOutRight {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); }
  100% {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
    transform: scale(0.1) translate3d(2000px, 0, 0);
    -webkit-transform-origin: right center;
    transform-origin: right center; } }

.zoomOutRight {
  -webkit-animation-name: zoomOutRight;
  animation-name: zoomOutRight; }

@-webkit-keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  100% {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  100% {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

.zoomOutUp {
  -webkit-animation-name: zoomOutUp;
  animation-name: zoomOutUp; }

@-webkit-keyframes slideInDown {
  from {
    -webkit-transform: translate3d(0, -200%, 0);
    transform: translate3d(0, -200%, 0);
    visibility: visible; }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

@keyframes slideInDown {
  from {
    -webkit-transform: translate3d(0, -200%, 0);
    transform: translate3d(0, -200%, 0);
    visibility: visible; }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

.slideInDown {
  -webkit-animation-name: slideInDown;
  animation-name: slideInDown; }

@-webkit-keyframes slideInLeft {
  from {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    visibility: visible; }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

@keyframes slideInLeft {
  from {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    visibility: visible; }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

.slideInLeft {
  -webkit-animation-name: slideInLeft;
  animation-name: slideInLeft; }

@-webkit-keyframes slideInRight {
  from {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    visibility: visible; }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

@keyframes slideInRight {
  from {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    visibility: visible; }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

.slideInRight {
  -webkit-animation-name: slideInRight;
  animation-name: slideInRight; }

@-webkit-keyframes slideInUp {
  from {
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
    visibility: visible; }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

@keyframes slideInUp {
  from {
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
    visibility: visible; }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

.slideInUp {
  -webkit-animation-name: slideInUp;
  animation-name: slideInUp; }

@-webkit-keyframes slideOutDown {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  100% {
    visibility: hidden;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }

@keyframes slideOutDown {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  100% {
    visibility: hidden;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }

.slideOutDown {
  -webkit-animation-name: slideOutDown;
  animation-name: slideOutDown; }

@-webkit-keyframes slideOutLeft {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  100% {
    visibility: hidden;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }

@keyframes slideOutLeft {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  100% {
    visibility: hidden;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }

.slideOutLeft {
  -webkit-animation-name: slideOutLeft;
  animation-name: slideOutLeft; }

@-webkit-keyframes slideOutRight {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  100% {
    visibility: hidden;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }

@keyframes slideOutRight {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  100% {
    visibility: hidden;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }

.slideOutRight {
  -webkit-animation-name: slideOutRight;
  animation-name: slideOutRight; }

@-webkit-keyframes slideOutUp {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  100% {
    visibility: hidden;
    -webkit-transform: translate3d(0, -200%, 0);
    transform: translate3d(0, -200%, 0); } }

@keyframes slideOutUp {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  100% {
    visibility: hidden;
    -webkit-transform: translate3d(0, -200%, 0);
    transform: translate3d(0, -200%, 0); } }

.slideOutUp {
  -webkit-animation-name: slideOutUp;
  animation-name: slideOutUp; }

@-webkit-keyframes slideInUpSmall {
  from {
    -webkit-transform: translate3d(0, 20%, 0);
    transform: translate3d(0, 20%, 0);
    visibility: visible; }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

@keyframes slideInUpSmall {
  from {
    -webkit-transform: translate3d(0, 10%, 0);
    transform: translate3d(0, 10%, 0);
    visibility: visible; }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

.slideInUpSmall {
  -webkit-animation-name: slideInUpSmall;
  animation-name: slideInUpSmall; }

/*--------------------------------------------------------------*/
@font-face {
  font-family: 'BrandonTextWeb-Bold';
  src: url("fonts/306853_0_0.eot");
  src: url("fonts/306853_0_0.eot?#iefix") format("embedded-opentype"), url("fonts/306853_0_0.woff2") format("woff2"), url("fonts/306853_0_0.woff") format("woff"), url("fonts/306853_0_0.ttf") format("truetype"); }

@font-face {
  font-family: 'BrandonTextWeb-Light';
  src: url("fonts/306853_1_0.eot");
  src: url("fonts/306853_1_0.eot?#iefix") format("embedded-opentype"), url("fonts/306853_1_0.woff2") format("woff2"), url("fonts/306853_1_0.woff") format("woff"), url("fonts/306853_1_0.ttf") format("truetype"); }

@font-face {
  font-family: 'BrandonTextWeb-Regular';
  src: url("fonts/306853_2_0.eot");
  src: url("fonts/306853_2_0.eot?#iefix") format("embedded-opentype"), url("fonts/306853_2_0.woff2") format("woff2"), url("fonts/306853_2_0.woff") format("woff"), url("fonts/306853_2_0.ttf") format("truetype"); }

@font-face {
  font-family: 'BrandonTextWeb-Medium';
  src: url("fonts/306853_3_0.eot");
  src: url("fonts/306853_3_0.eot?#iefix") format("embedded-opentype"), url("fonts/306853_3_0.woff2") format("woff2"), url("fonts/306853_3_0.woff") format("woff"), url("fonts/306853_3_0.ttf") format("truetype"); }

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

.clear:after,
.entry-content:after,
.comment-content:after,
.site-header:after,
.site-content:after,
.site-footer:after, .panel, .heading {
  clear: both; }


.clear:after,
.entry-content:after,
.comment-content:after,
.site-header:after,
.site-content:after,
.site-footer:after, .row:after, .inner:after, .panel__casestudy--quote:after, .recent-posts:after, .heading:after {
  content: "";
  display: table;
  clear: both; }

body,
button,
input,
select,
textarea {
  color: #000;
  font-family: "BrandonTextWeb-Light", sans-serif;
  line-height: 1.5; }

b,
strong {
  font-family: "BrandonTextWeb-Medium"; }

h1, h2, h3, h4, h5 {
  font-family: "brandon-grotesque";
  clear: both;
  text-transform: uppercase;
  line-height: 1.1; }
  h1:first-child, h2:first-child, h3:first-child, h4:first-child, h5:first-child {
    margin-top: 0; }

h1, .h1 {
  font-size: 32px;
  font-size: 2rem; }

h2, .h2 {
  font-size: 27.2px;
  font-size: 1.7rem; }

h3, .h3 {
  font-size: 24px;
  font-size: 1.5rem; }

h4, .h4 {
  font-size: 17.6px;
  font-size: 1.1rem; }

h5, .h5 {
  font-size: 16px;
  font-size: 1rem; }

h6, .h6 {
  font-size: 14px;
  font-size: 0.875rem; }

@media (min-width: 40em) {
  h1, .h1 {
    font-size: 40px;
    font-size: 2.5rem; }
  h2, .h2 {
    font-size: 34px;
    font-size: 2.125rem; }
  h3, .h3 {
    font-size: 30px;
    font-size: 1.875rem; }
  h4, .h4 {
    font-size: 22px;
    font-size: 1.375rem; } }

p {
  margin: 1em 0; }

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

blockquote {
  margin: 0 1.5em;
  position: relative; }

address {
  margin: 0 0 1.5em; }

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

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

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

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

big {
  font-size: 125%; }

html {
  box-sizing: border-box; }

*,
*:before,
*:after {
  /* 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/ */
  box-sizing: inherit; }

body {
  font-size: 20px;
  font-size: 1.25rem;
  background: #000;
  /* Fallback for when there is no custom background color defined. */
  -webkit-backface-visibility: hidden; }

blockquote, q {
  quotes: "" ""; }
  blockquote:before, blockquote:after, q:before, q:after {
    content: ""; }

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

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

ul {
  list-style: disc; }
  ul.no--bullets {
    list-style: none;
    margin-left: 0;
    padding-left: 0; }
  ul.list--inline li {
    display: inline-block; }

ol {
  list-style: decimal; }

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

dt {
  font-weight: bold; }

dd {
  margin: 0 1.5em 1.5em; }

img {
  height: auto;
  /* Make sure images are scaled correctly. */
  max-width: 100%;
  /* Adhere to container width. */ }

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

.btn {
  transition: all 300ms ease-out;
  font-size: 18px;
  font-size: 1.125rem;
  font-family: "BrandonTextWeb-Medium";
  display: inline-block;
  padding: 6px 14px;
  color: #fff;
  text-decoration: none;
  width: 100%;
  text-align: center; }
  @media (min-width: 40em) {
    .btn {
      width: auto; } }
  .btn--full {
    display: block;
    text-align: center; }
  .brand .btn--theme {
    background-color: #2cc48a; }
  .magenta .btn--theme {
    background-color: #d229b8; }
  .light .btn--theme {
    background-color: #2ab8d5; }
  .btn--ghost {
    border: solid 3px #fff; }
    .btn--ghost:hover {
      background-color: #fff;
      color: #000; }
  .btn--more {
    text-transform: uppercase;
    margin-top: 2.77778%; }

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
textarea {
  color: #666;
  border: 1px solid #ccc;
  border-radius: 3px; }
  input[type="text"]:focus,
  input[type="email"]:focus,
  input[type="url"]:focus,
  input[type="password"]:focus,
  input[type="search"]:focus,
  textarea:focus {
    color: #111; }

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"] {
  padding: 3px;
  width: 100%; }

textarea {
  padding-left: 3px;
  width: 100%; }

/* turn it to select */
.drop-down-cats {
  width: 210px;
  height: 40px;
  margin-left: auto;
  margin-right: auto;
  background: #fff;
  transition: all .3s ease-in-out;
  -webkit-transition: all .3s ease-in-out;
  -moz-transition: all .3s ease-in-out; }

.trigger {
  height: 40px;
  background-image: url(img/down-arrow.png);
  background-repeat: no-repeat;
  background-size: 25px 12px;
  background-position: 180px;
  display: block;
  text-decoration: none;
  color: #000;
  line-height: 40px;
  padding-left: .5em; }

.activetrigger {
  text-decoration: none;
  color: #000;
  width: 100%;
  height: 40px;
  padding-right: 1em;
  display: block;
  background-color: #ccc;
  line-height: 40px;
  padding-left: .5em; }

/* style of the UL */
.dropcontainer ul {
  background: #fff;
  border-bottom: none;
  list-style-type: none;
  padding: 0;
  margin: 0;
  width: 100%;
  position: absolute; }

.dropdownhidden {
  top: 0;
  left: -999em; }

.dropdownvisible {
  top: 0;
  left: 0; }

.dropcontainer ul a {
  padding: 0 .5em;
  display: block;
  width: 100%;
  text-decoration: none;
  color: #666;
  height: 40px; }

.dropcontainer ul a:hover {
  background: #ccc; }

.dropcontainer {
  position: relative;
  z-index: 3; }

/*--------------------------------------------------------------
## Links
--------------------------------------------------------------*/
a:focus {
  outline: thin dotted; }

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

/*--------------------------------------------------------------
## Menus
--------------------------------------------------------------*/
.single-case-study .main-navigation li.menu-item-13 a {
  color: #1fd796; }
  @media (min-width: 64em) {
    .single-case-study .main-navigation li.menu-item-13 a {
      color: #fff;
      border-bottom: 1px solid #1fd796; } }

.main-navigation {
  text-align: center; }
  .main-navigation li {
    margin: 0 1.38889%; }
    .main-navigation li.current-post-ancestor a, .main-navigation li.current-post-parent a, .main-navigation li.current-page-ancestor a {
      color: #1fd796; }
      @media (min-width: 64em) {
        .main-navigation li.current-post-ancestor a, .main-navigation li.current-post-parent a, .main-navigation li.current-page-ancestor a {
          color: #fff;
          border-bottom: 1px solid #1fd796; } }
    .main-navigation li.current-menu-item a {
      color: #1fd796;
      border-bottom: none; }
      @media (min-width: 64em) {
        .main-navigation li.current-menu-item a {
          color: #fff;
          border-bottom: 1px solid #1fd796; } }
  .main-navigation a {
    font-size: 18px;
    font-size: 1.125rem;
    font-family: 'BrandonTextWeb-Regular';
    color: #fff; }
  .main-navigation ul {
    display: none;
    list-style: none;
    margin: 0;
    padding-left: 0; }
    .main-navigation ul ul {
      box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
      float: left;
      position: absolute;
      top: 1.5em;
      left: -999em;
      z-index: 99999; }
      .main-navigation ul ul ul {
        left: -999em;
        top: 0; }
      .main-navigation ul ul li:hover > ul,
      .main-navigation ul ul li.focus > ul {
        left: 100%; }
      .main-navigation ul ul a {
        width: 200px; }
    .main-navigation ul li:hover > ul,
    .main-navigation ul li.focus > ul {
      left: auto; }
  .main-navigation li {
    display: inline-block;
    position: relative; }
  .main-navigation a {
    display: block;
    text-decoration: none; }

.menu-top-menu-container {
  left: 120%;
  width: 100%;
  height: 100%;
  min-height: 100%;
  position: fixed;
  top: 0px;
  padding: 4em 0 4em 0;
  transition: all .3s ease-in-out;
  -webkit-transition: all .3s ease-in-out;
  -moz-transition: all .3s ease-in-out; }
  @media (min-width: 64em) {
    .menu-top-menu-container {
      top: auto;
      padding: 0;
      position: relative;
      min-height: auto;
      height: auto;
      width: auto;
      left: inherit;
      top: inherit; } }

/* Small menu. */
.menu-toggle,
.main-navigation.toggled ul {
  display: inline-block;
  background: #000;
  padding: 4em 0 4em 0; }
  @media (min-width: 64em) {
    .menu-toggle,
    .main-navigation.toggled ul {
      background-color: none;
      padding: 0; } }

.main-navigation.toggled .bar {
  opacity: 0; }

.main-navigation.toggled .bar:first-child {
  opacity: 1;
  transform: rotate(45deg);
  margin-top: 10px; }

.main-navigation.toggled .bar:last-child {
  opacity: 1;
  transform: rotate(-45deg);
  margin-top: -20px; }

.main-navigation.toggled ul {
  display: block;
  text-align: center;
  *zoom: 1; }
  .main-navigation.toggled ul:before, .main-navigation.toggled ul:after {
    content: " ";
    display: table; }
  .main-navigation.toggled ul:after {
    clear: both; }

.main-navigation.toggled li {
  display: block; }

.main-navigation.toggled a {
  font-size: 38px; }

.main-navigation.toggled .menu-top-menu-container {
  background: #000;
  left: 0px; }

.menu-toggle {
  background: none;
  border: none;
  outline: none;
  width: 45px;
  padding-top: 0;
  padding-bottom: 0;
  position: relative;
  z-index: 9999; }
  .menu-toggle .bar {
    display: block;
    background-color: #fff;
    margin: 7px 0;
    height: 4px;
    transition: all .3s ease-in-out;
    -webkit-transition: all .3s ease-in-out;
    -moz-transition: all .3s ease-in-out; }

@media (min-width: 64em) {
  .menu-toggle {
    display: none; }
  .main-navigation ul {
    display: block; } }

.site-main .comment-navigation, .site-main
.posts-navigation, .site-main
.post-navigation {
  margin: 0 0 1.5em;
  overflow: hidden; }

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
  float: left;
  width: 50%; }

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
  float: right;
  text-align: right;
  width: 50%; }

/* blog post active blog nav fix for posts  */
.single-post {
  border-bottom: 1px solid #1fd796; }

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

.alignleft {
  display: inline;
  float: left;
  margin-right: 1.5em; }

.alignright {
  display: inline;
  float: right;
  margin-left: 1.5em; }

.widget {
  margin: 0 0 1.5em;
  /* Make sure select elements fit in widgets. */ }
  .widget select {
    max-width: 100%; }

/* Search widget. */
.widget_search .search-submit {
  display: none; }

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 12;
  padding: 2.77778% 1.66667%;
  transition: background-color 300ms ease-out; }
  @media (min-width: 64em) {
    .site-header {
      padding: 1.38889% 0; } }
  .site-header .main-navigation {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 25%;
    float: right;
    padding-left: 1.38889%;
    padding-right: 1.38889%;
    text-align: right; }
    @media (min-width: 64em) {
      .site-header .main-navigation {
        margin-top: 5px;
        text-align: center;
        -moz-box-sizing: border-box;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        width: 66.66667%;
        float: left;
        padding-left: 1.38889%;
        padding-right: 1.38889%; } }
  .site-header .contact-us {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 50%;
    float: left;
    padding-left: 1.38889%;
    padding-right: 1.38889%;
    text-align: center; }
    @media (min-width: 64em) {
      .site-header .contact-us {
        -moz-box-sizing: border-box;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        width: 16.66667%;
        float: left;
        padding-left: 1.38889%;
        padding-right: 1.38889%;
        text-align: right; } }
  .site-header .site-branding {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 25%;
    float: left;
    padding-left: 1.38889%;
    padding-right: 1.38889%; }
    @media (min-width: 64em) {
      .site-header .site-branding {
        -moz-box-sizing: border-box;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        width: 16.66667%;
        float: left;
        padding-left: 1.38889%;
        padding-right: 1.38889%; } }
  .site-header .btn {
    background-color: #2cc48a; }
  .site-header--not-top {
    background-color: #000; }

.logo {
  background: url("img/logo-mobile.png");
  background-repeat: no-repeat;
  /* Media queries from https://github.com/thoughtbot/bourbon/blob/master/app/assets/stylesheets/css3/_hidpi-media-query.scss */
  width: 37px;
  height: 38px;
  display: inline-block;
  text-align: left;
  text-indent: -999em;
  position: relative; }
  @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (-o-min-device-pixel-ratio: 1.5 / 1), only screen and (min-resolution: 144dpi), only screen and (min-resolution: 1.5dppx) {
    .logo {
      background: url("img/logo-mobile@2x.png");
      background-size: 37px auto; } }
  @media (min-width: 64em) {
    .logo {
      background: url("img/logo.png");
      background-repeat: no-repeat;
      /* Media queries from https://github.com/thoughtbot/bourbon/blob/master/app/assets/stylesheets/css3/_hidpi-media-query.scss */
      width: 157px;
      height: 26px;
      top: 7px; } }
  @media only screen and (min-width: 64em) and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-width: 64em) and (min--moz-device-pixel-ratio: 1.5), only screen and (min-width: 64em) and (-o-min-device-pixel-ratio: 1.5 / 1), only screen and (min-width: 64em) and (min-resolution: 144dpi), only screen and (min-width: 64em) and (min-resolution: 1.5dppx) {
    .logo {
      background: url("img/logo@2x.png");
      background-size: 157px auto; } }

.site-footer {
  background-color: rgba(0, 0, 0, 0.4);
  outline: none; }
  .site-footer .site-info {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 300%;
    float: left;
    padding-left: 10.71429%;
    padding-right: 10.71429%;
    color: #fff; }
  .site-footer a {
    color: #fff; }
  .site-footer .back-top {
    font-family: "BrandonTextWeb-Medium";
    background-color: #000;
    color: #fff;
    display: block;
    padding: 20px 0;
    text-align: center;
    text-decoration: none;
    font-size: .8em; }
    .site-footer .back-top img {
      width: 20px; }
  .site-footer .container {
    background: none;
    color: #fff; }
    @media (min-width: 40em) {
      .site-footer .container {
        height: 800px; } }

.footer-widget {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  float: left;
  padding-left: 1.38889%;
  padding-right: 1.38889%; }
  .footer-widget p, .footer-widget h1, .footer-widget h2, .footer-widget h3, .footer-widget h4 {
    color: #fff; }
  .footer-widget p {
    font-size: .8em;
    line-height: 1.5em; }
  .footer-widget a {
    color: #2cc48a; }
  .footer-widget strong {
    margin-top: 14px;
    font-size: 120%; }
  @media (min-width: 64em) {
    .footer-widget {
      margin: 1.38889% 0;
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 33.33333%;
      float: left;
      padding-left: 1.38889%;
      padding-right: 1.38889%; } }

.footer-widget-top {
  width: 100%;
  margin-bottom: 20px; }
  .footer-widget-top .widget-title {
    margin-bottom: 1.66667%;
    color: #2cc48a; }

.footer-widget.last {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 33.33333%;
  float: right;
  padding-left: 1.38889%;
  padding-right: 1.38889%; }

.exp-twitter {
  background-image: url(img/icon-twitter.png);
  margin-left: 2em; }

.exp-linkedin {
  background-image: url(img/icon-linkedin.png); }

/* social elements */
.exp-twitter, .exp-linkedin {
  font-size: 120%;
  display: inline-block;
  font-weight: 700;
  width: 70px;
  height: 90px;
  background-size: 57px 57px;
  background-position: bottom left;
  background-repeat: no-repeat;
  text-decoration: none; }
  .exp-twitter a, .exp-linkedin a {
    color: #fff; }

@media (min-width: 64em) {
  .social-widget {
    text-align: right; } }

.footer-inner {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  float: left;
  padding-left: 10.71429%;
  padding-right: 10.71429%;
  padding-top: 14.28571%;
  padding-bottom: 14.28571%; }
  @media (min-width: 64em) {
    .footer-inner {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 100%;
      float: left;
      padding-left: 1.38889%;
      padding-right: 1.38889%;
      position: relative;
      -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      transform: translateY(-50%);
      top: 50%; } }

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

.hentry {
  /* margin: 0 0 1.5em; */ }

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

.single .byline,
.group-blog .byline {
  display: inline; }

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

.page.type-page {
  overflow: hidden; }

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

.post_hero_image {
  background-size: cover;
  position: fixed;
  z-index: -1;
  top: 0;
  min-height: 100%;
  min-width: 1024px;
  width: 100%;
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
  opacity: .3;
  height: auto; }
  @media (min-width: 40em) {
    .post_hero_image {
      opacity: .5; } }
  .post_hero_image:before {
    position: fixed;
    z-index: -2;
    width: 100%;
    height: 100%;
    background: #000; }

.post.hentry {
  margin: 0; }

.post .container {
  padding: 0px 0px 0px 0px; }
  @media (min-width: 64em) {
    .post .container {
      padding: 1em 4em 1em 4em; } }

.post .post-feature {
  background: #ffffff;
  margin-top: 140px;
  padding: 3em 2em 2em 2em;
  z-index: 2;
  position: relative; }
  @media (min-width: 64em) {
    .post .post-feature {
      padding: 5em 4em 0em 4em; } }

.post-category {
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  top: -15px;
  text-align: center; }
  .post-category a.cat-tag {
    margin: 0; }

.related-posts-section {
  clear: both;
  background: #ccc;
  padding: 1.66667% 0; }
  @media (min-width: 40em) {
    .related-posts-section {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 100%;
      float: left;
      padding-left: 10.71429%;
      padding-right: 10.71429%; } }
  @media (min-width: 64em) {
    .related-posts-section {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 100%;
      float: left;
      padding-left: 1.38889%;
      padding-right: 1.38889%; } }
  .related-posts-section .container {
    padding: 0; }

.post-header {
  text-align: center;
  z-index: 2; }
  .post-header .entry-meta {
    padding-bottom: 1.3em;
    border-bottom: 1px solid #e3007e; }
    .post-header .entry-meta .byline {
      font-weight: bold;
      color: #e3007e;
      display: block; }
      .post-header .entry-meta .byline a {
        color: #e3007e; }
    .post-header .entry-meta a {
      text-decoration: none;
      color: #000; }

.post {
  overflow: hidden; }

.post-content {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  float: left;
  padding-left: 10.71429%;
  padding-right: 10.71429%; }
  @media (min-width: 64em) {
    .post-content {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 83.33333%;
      float: left;
      padding-left: 1.38889%;
      padding-right: 1.38889%;
      margin-left: 8.33333%; } }

@media (min-width: 64em) {
  .post-sidebar {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 33.33333%;
    float: left;
    padding-left: 1.38889%;
    padding-right: 1.38889%; } }

.post-section, .first-post-section {
  background: #fff;
  width: 100%;
  padding: 0em 2em 2em 2em;
  position: relative; }
  @media (min-width: 64em) {
    .post-section, .first-post-section {
      padding: 60px; } }

.first-post-section {
  padding: 0em 0em 2em 0em; }
  @media (min-width: 40em) {
    .first-post-section {
      padding: 2em 2em 2em 2em; } }
  @media (min-width: 64em) {
    .first-post-section {
      padding: 60px; } }

.post-box-wrapper,
.related-header {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  float: left;
  padding-left: 10.71429%;
  padding-right: 10.71429%; }
  @media (min-width: 40em) {
    .post-box-wrapper,
    .related-header {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 50%;
      float: left;
      padding-left: 1.38889%;
      padding-right: 1.38889%; } }
  @media (min-width: 64em) {
    .post-box-wrapper,
    .related-header {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 33.33333%;
      float: left;
      padding-left: 1.38889%;
      padding-right: 1.38889%; } }

.related-header {
  margin-top: 8.33333%; }

.post-box {
  margin-bottom: 2em;
  vertical-align: top;
  background: #FFF; }
  .post-box h4 {
    margin: -24px 0 0 0; }
  .post-box .post-box-content {
    z-index: 2;
    position: relative; }
  .post-box p {
    font-size: 18px;
    font-size: 1.125rem;
    line-height: 1.3; }
  .post-box .post-box-thumb img {
    transition: all .3s ease-in-out;
    -webkit-transition: all .3s ease-in-out;
    -moz-transition: all .3s ease-in-out;
    width: 100%; }
  .post-box a {
    text-decoration: none;
    transition: all .3s ease-in-out;
    -webkit-transition: all .3s ease-in-out;
    -moz-transition: all .3s ease-in-out; }
  .post-box a:hover .post-box-thumb img {
    transform: scale(1.2); }

.first-post-section .container {
  position: relative;
  z-index: 2; }

.post-box-thumb {
  position: relative;
  overflow: hidden;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

.post-box-thumb:after {
  width: 140%;
  height: 40%;
  transform: rotate(-5deg);
  content: " ";
  position: absolute;
  left: -12%;
  bottom: -12%;
  display: block;
  background: #fff; }

.post-box-content {
  padding: 0 1.35em 0 1.35em; }
  .post-box-content p, .post-box-content h5, .post-box-content h4, .post-box-content h3 {
    color: #000; }

.post-section-area {
  background: #000;
  text-align: center; }
  .post-section-area .container {
    padding-top: 3em;
    padding-bottom: 3em; }
  .post-section-area p, .post-section-area h1, .post-section-area h2, .post-section-area h3, .post-section-area h4, .post-section-area h5, .post-section-area label {
    color: #fff;
    font-weight: normal;
    text-transform: none; }

.post-quote {
  background: #e3007e; }
  .post-quote .container {
    padding: 3em 4em 3em 4em; }
  .post-quote blockquote {
    margin: 0em; }
    .post-quote blockquote p {
      font-size: 1.5em;
      color: #fff; }
    .post-quote blockquote strong {
      margin-top: 20px;
      color: #000;
      display: block;
      font-size: 20px;
      font-size: 1.25rem;
      text-transform: uppercase; }
  .post-quote blockquote:after {
    color: #fff;
    content: "\201C";
    display: block;
    font-size: 10.7em;
    opacity: .15;
    position: absolute;
    left: -.2em;
    top: -.5em; }

.first-post-section:after {
  z-index: 1;
  content: " ";
  display: block;
  background: #fff;
  position: absolute;
  width: 120%;
  height: 240px;
  top: -3%;
  left: -4%;
  transform: rotate(-5deg);
  top: -100px; }

.post-large-image img {
  width: 100%; }

a.cat-tag {
  display: inline-block;
  text-transform: uppercase;
  padding: .2rem .4rem;
  font-size: 75%;
  color: #fff;
  background: #ccc;
  margin: 0em 0 1.35em 1.35em;
  text-decoration: none;
  font-family: "BrandonTextWeb-Medium";
  transition: all .3s ease-in-out;
  -webkit-transition: all .3s ease-in-out;
  -moz-transition: all .3s ease-in-out;
  /*&:first-child {
		margin: 0em 0 1.35em 0em;	 
	}*/ }

a.cat-tag.blog {
  display: none; }

a.cat-tag:hover {
  background: #000 !important; }

.post-row {
  display: block; }
  @media (min-width: 40em) {
    .post-row {
      display: table-row; } }

.archive-post-section {
  position: relative;
  overflow: hidden; }
  @media (min-width: 64em) {
    .archive-post-section {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 100%;
      float: left;
      padding-left: 1.38889%;
      padding-right: 1.38889%; } }
  .archive-post-section .container {
    background: #f2f2f2;
    position: relative;
    z-index: 2;
    display: block;
    min-height: 500px;
    padding-top: 10.71429%; }
    @media (min-width: 40em) {
      .archive-post-section .container {
        padding: 30px 10px; } }
  .archive-post-section .post-box {
    position: relative;
    background: #FFF; }

.post-header-category.container {
  padding: 5em 2em 1em 2em;
  text-align: left;
  position: relative; }
  @media (min-width: 64em) {
    .post-header-category.container {
      padding: 7em 0 1em 0; } }
  .post-header-category.container h1.page-title, .post-header-category.container p {
    color: #fff; }

.archive-post-section:after {
  z-index: 1;
  content: " ";
  display: block;
  background: #fff;
  position: absolute;
  width: 120%;
  height: 240px;
  top: -3%;
  left: -4%;
  transform: rotate(-5deg);
  background: #f2f2f2;
  top: 18em;
  width: 240%;
  height: 400%;
  left: 0%; }

.drop-down-cats {
  width: 210px;
  height: 40px;
  position: relative;
  margin-left: auto;
  margin-right: auto;
  background: #fff;
  transition: all .3s ease-in-out;
  -webkit-transition: all .3s ease-in-out;
  -moz-transition: all .3s ease-in-out;
  background-image: url(img/down-arrow.png);
  background-repeat: no-repeat;
  background-size: 25px 12px;
  background-position: 180px; }
  .drop-down-cats:hover {
    color: #000; }
  .drop-down-cats #dropdown-cat-list {
    margin: 0;
    padding: 0;
    list-style: none; }
    .drop-down-cats #dropdown-cat-list .cat-selection {
      line-height: 40px;
      padding-left: 4px;
      cursor: pointer; }
    .drop-down-cats #dropdown-cat-list a {
      color: #000;
      text-decoration: none;
      padding: 0 0 0 1em;
      line-height: 40px;
      height: 40px;
      cursor: pointer;
      display: block;
      width: 100%; }
    .drop-down-cats #dropdown-cat-list li {
      padding: 0;
      margin: 0;
      list-style: none; }
      .drop-down-cats #dropdown-cat-list li ul {
        z-index: 3;
        margin: 0;
        padding: 0;
        left: 0;
        top: 40px;
        position: absolute;
        display: block;
        overflow: hidden;
        width: 210px; }
        .drop-down-cats #dropdown-cat-list li ul a:hover {
          background: #ccc; }
        .drop-down-cats #dropdown-cat-list li ul li {
          margin: 0;
          background: #fff;
          width: 100%;
          height: 0px;
          transition: all .3s ease-in-out;
          -webkit-transition: all .3s ease-in-out;
          -moz-transition: all .3s ease-in-out; }
    .drop-down-cats #dropdown-cat-list .show-cats li {
      height: 40px; }
  .drop-down-cats select {
    padding-left: 10px;
    background: transparent;
    border: 0;
    line-height: 20px;
    border-radius: 0;
    width: 210px;
    height: 40px;
    -webkit-appearance: none; }
  .drop-down-cats option {
    -webkit-appearance: none;
    border: none;
    padding: 1.2em;
    font-size: 2em;
    background: rgba(255, 255, 255, 0.8); }
  @media (min-width: 40em) {
    .drop-down-cats {
      position: absolute;
      top: 5.2em;
      right: 0; } }
  @media (min-width: 64em) {
    .drop-down-cats {
      top: 7.5em; } }
  .drop-down-cats select:focus {
    outline: none; }

.post-header {
  color: #fff;
  padding: 0em;
  text-align: center; }
  .post-header h1 {
    font-size: 32px;
    font-size: 2rem; }
  @media (min-width: 40em) {
    .post-header h1 {
      font-size: 40px;
      font-size: 2.5rem; } }
  .post-header h1, .post-header h2, .post-header h3, .post-header h4, .post-header p {
    color: #000; }
  .post-header .posted-on {
    color: #000; }

.author-image {
  text-align: center; }
  @media (min-width: 40em) {
    .author-image {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 16.66667%;
      float: left;
      padding-left: 1.38889%;
      padding-right: 1.38889%;
      text-align: left; } }
  .author-image img {
    border-radius: 50%; }

.author-description {
  text-align: center; }
  @media (min-width: 40em) {
    .author-description {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 83.33333%;
      float: left;
      padding-left: 1.38889%;
      padding-right: 1.38889%;
      text-align: left; } }

.post-archive {
  overflow: hidden; }
  .post-archive .post-header.container {
    text-align: left;
    padding: 4em 0 4em 0; }

.author-section {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  float: left;
  padding-left: 10.71429%;
  padding-right: 10.71429%;
  background: #fff;
  clear: both;
  padding-top: 4.16667%;
  padding-bottom: 4.16667%; }
  @media (min-width: 40em) {
    .author-section {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 100%;
      float: left;
      padding-left: 10.71429%;
      padding-right: 10.71429%; } }
  @media (min-width: 64em) {
    .author-section {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 100%;
      float: left;
      padding-left: 1.38889%;
      padding-right: 1.38889%; } }
  .author-section .container {
    padding: 0; }

#mc_embed_signup_scroll {
  text-align: center; }
  #mc_embed_signup_scroll h4 {
    font-size: 1.8em; }

#mc_embed_signup {
  text-align: center; }
  #mc_embed_signup .response {
    color: #fff;
    max-width: 600px;
    margin-top: 20px;
    margin-left: auto;
    margin-right: auto; }

#mc_embed_signup .mc-field-group input {
  height: 50px;
  display: inline-block;
  padding-right: 2em;
  border-radius: 0; }

#mc-embedded-subscribe.button, #mc_embed_signup .button {
  border: 1px solid #fff;
  height: 50px;
  line-height: 25px;
  text-align: center;
  background: #000;
  border-radius: 0px;
  max-width: 200px;
  padding-left: 40px;
  padding-right: 40px;
  color: #fff;
  margin-left: 16px;
  display: inline-block; }

#mce-EMAIL {
  height: 50px;
  line-height: 25px;
  color: #000;
  max-width: 320px; }

.more-posts {
  max-width: 500px;
  *zoom: 1;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  position: relative;
  z-index: 2; }
  .more-posts:before, .more-posts:after {
    content: " ";
    display: table; }
  .more-posts:after {
    clear: both; }

.nav-links a {
  text-decoration: none;
  text-transform: uppercase;
  color: #000;
  border: 1px solid #000;
  padding: .8em 1.2em .8em 1.2em;
  display: inline-block; }

/*--------------------------------------------------------------
## Asides
--------------------------------------------------------------*/
.blog .format-aside .entry-title,
.archive .format-aside .entry-title {
  display: none; }

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

.bypostauthor {
  display: block; }

.container {
  max-width: 980px;
  margin-left: auto;
  margin-right: auto; }
  .container:after {
    content: " ";
    display: block;
    clear: both; }

.row {
  clear: both;
  margin-left: -1.38889%;
  margin-right: -1.38889%; }

.inner {
  margin: -1.38889%; }

.hero-box {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  float: left;
  padding-left: 10.71429%;
  padding-right: 10.71429%;
  padding-top: 14.28571%; }
  @media (min-width: 40em) {
    .hero-box--aside {
      padding-top: 0; } }
  @media (min-width: 64em) {
    .hero-box--aside {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 41.66667%;
      float: right;
      padding-left: 1.38889%;
      padding-right: 1.38889%;
      padding: 0; } }
  .hero-box--aside .entry-content {
    margin: 1.38889% 0; }
    .hero-box--aside .entry-content p {
      margin: 0; }
  .hero-box--aside .panels-menu {
    margin-bottom: 0; }
  .hero-box--aside li {
    margin: 5px 0; }
  .hero-box--aside a {
    color: #2cc48a;
    font-size: 16px;
    font-size: 1rem;
    font-weight: 700;
    text-decoration: none;
    border-bottom: solid 1px; }
  @media (min-width: 40em) {
    .hero-box--full {
      padding-top: 0; } }
  @media (min-width: 64em) {
    .hero-box--full {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 100%;
      float: left;
      padding-left: 1.38889%;
      padding-right: 1.38889%;
      padding: 0; } }

/* Globally hidden elements when Infinite Scroll is supported and in use. */
.infinite-scroll .posts-navigation,
.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; }

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

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

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

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

/*--------------------------------------------------------------
## Galleries
--------------------------------------------------------------*/
.gallery {
  margin-bottom: 1.5em; }

.gallery-item {
  display: inline-block;
  text-align: center;
  vertical-align: top;
  width: 100%; }
  .gallery-columns-2 .gallery-item {
    max-width: 50%; }
  .gallery-columns-3 .gallery-item {
    max-width: 33.33%; }
  .gallery-columns-4 .gallery-item {
    max-width: 25%; }
  .gallery-columns-5 .gallery-item {
    max-width: 20%; }
  .gallery-columns-6 .gallery-item {
    max-width: 16.66%; }
  .gallery-columns-7 .gallery-item {
    max-width: 14.28%; }
  .gallery-columns-8 .gallery-item {
    max-width: 12.5%; }
  .gallery-columns-9 .gallery-item {
    max-width: 11.11%; }

.gallery-caption {
  display: block; }

.panel {
  padding: 8.33333% 0; }
  .panel__content, .panel__icon {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%;
    float: left;
    padding-left: 10.71429%;
    padding-right: 10.71429%;
    margin-bottom: 10.71429%; }
    @media (min-width: 40em) {
      .panel__content, .panel__icon {
        -moz-box-sizing: border-box;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        width: 50%;
        float: left;
        padding-left: 1.38889%;
        padding-right: 1.38889%;
        margin-bottom: 0; } }
  .panel__icon {
    text-align: center; }
    .panel__icon img {
      max-width: 60%; }
  @media (min-width: 40em) {
    .panel__icon img {
      max-width: 75%; } }
  .panel__content--full {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%;
    float: left;
    padding-left: 1.38889%;
    padding-right: 1.38889%; }
  @media (min-width: 40em) {
    .panel--subpage {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 100%;
      float: left;
      padding-left: 10.71429%;
      padding-right: 10.71429%; } }
  .single-case-study .panel__hero {
    text-align: center; }
  .panel__hero h5 {
    margin-bottom: 0; }
  @media (min-width: 40em) {
    .panel__hero {
      -webkit-box-pack: end;
      -ms-flex-pack: end;
      -webkit-justify-content: flex-end;
      -moz-justify-content: flex-end;
      justify-content: flex-end;
      -webkit-align-self: center;
      -moz-align-self: center;
      -ms-flex-item-align: center;
      align-self: center;
      -webkit-align-content: center;
      -moz-align-content: center;
      -ms-flex-line-pack: center;
      align-content: center;
      -webkit-box-align: center;
      -ms-flex-align: center;
      -webkit-align-items: center;
      -moz-align-items: center;
      align-items: center;
      height: 100vh; } }
  .panel__hero--shorter {
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    -webkit-justify-content: center;
    -moz-justify-content: center;
    justify-content: center; }
    @media (min-width: 40em) {
      .panel__hero--shorter {
        height: 75vh; } }
  @media (min-width: 40em) {
    .panel__content--odd {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 50%;
      float: right;
      padding-left: 1.38889%;
      padding-right: 1.38889%; } }
  @media (min-width: 40em) {
    .panel__content--even {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 50%;
      float: left;
      padding-left: 1.38889%;
      padding-right: 1.38889%; } }
  .panel__content h2,
  .panel__content p {
    color: #fff; }
  .panel__clients {
    background-color: #fff;
    text-align: center;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%;
    float: left;
    padding-left: 1.38889%;
    padding-right: 1.38889%; }
    .panel__clients header {
      margin-bottom: 4.16667%; }
    .panel__clients .container {
      font-size: 0; }
    .panel__clients h2 {
      text-align: center; }
    .panel__clients--item {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 33.33333%;
      float: left;
      padding-left: 1.38889%;
      padding-right: 1.38889%;
      float: none;
      display: inline-block;
      vertical-align: middle;
      margin-bottom: 8.33333%; }
      .panel__clients--item a {
        display: block;
        padding-left: 22px;
        padding-right: 22px; }
        @media (min-width: 64em) {
          .panel__clients--item a {
            padding: 0px 0px 0px 0px; } }
      @media (min-width: 40em) {
        .panel__clients--item {
          -moz-box-sizing: border-box;
          -webkit-box-sizing: border-box;
          box-sizing: border-box;
          width: 16.66667%;
          float: left;
          padding-left: 1.38889%;
          padding-right: 1.38889%;
          float: none;
          display: inline-block;
          margin-bottom: 0; } }
  .panel__offers {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%;
    float: left;
    padding-left: 10.71429%;
    padding-right: 10.71429%;
    padding-bottom: 220px;
    position: relative; }
    @media (min-width: 64em) {
      .panel__offers {
        -moz-box-sizing: border-box;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        width: 100%;
        float: left;
        padding-left: 1.38889%;
        padding-right: 1.38889%;
        padding: 8.33333% 0; } }
    .panel__offers header {
      margin-bottom: 4.16667%; }
    .panel__offers footer {
      background-color: #24aa77;
      text-align: center;
      font-weight: bold;
      text-transform: uppercase;
      padding: 1.66667%;
      margin-left: -16.66667%;
      margin-right: -16.66667%;
      font-size: 20px;
      font-size: 1.25rem;
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      margin: 0; }
      .panel__offers footer h4 {
        margin-bottom: 0; }
      .panel__offers footer ul {
        margin: 0;
        padding: 0;
        list-style: none;
        line-height: 1; }
        .panel__offers footer ul li {
          display: block;
          margin: 4.16667% 0; }
          @media (min-width: 40em) {
            .panel__offers footer ul li {
              display: inline-block;
              margin: 0 0.69444%; } }
      .panel__offers footer a {
        color: #fff;
        display: inline-block; }
  .panel__founders {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%;
    float: left;
    padding-left: 10.71429%;
    padding-right: 10.71429%; }
  .panel__founders-items {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 150%;
    float: left;
    padding-left: 10.71429%;
    padding-right: 10.71429%; }
    @media (min-width: 40em) {
      .panel__founders-items {
        -moz-box-sizing: border-box;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        width: 33.33333%;
        float: left;
        padding-left: 1.38889%;
        padding-right: 1.38889%; } }
  .panel__case-studies {
    color: #fff;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    position: relative; }
    .panel__case-studies:before {
      content: "";
      position: absolute;
      left: 0;
      top: 0;
      right: 0;
      bottom: 0; }
      @media (min-width: 40em) {
        .panel__case-studies:before {
          display: none; } }
    .panel__case-studies > div {
      position: relative;
      z-index: 2; }
    .panel__case-studies .column-right {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 50%;
      float: right;
      padding-left: 1.38889%;
      padding-right: 1.38889%; }
    @media (min-width: 64em) {
      .panel__case-studies {
        background-position: right center; } }
    .panel__case-studies h2,
    .panel__case-studies p {
      color: #fff; }
    .panel__case-studies h2 {
      font-size: 40px;
      font-size: 2.5rem;
      margin-bottom: 2em; }
    .panel__case-studies__title {
      color: #902380;
      color: #000;
      margin-bottom: 1em; }
    .panel__case-studies--dark:before {
      background-color: rgba(255, 255, 255, 0.6); }
    .panel__case-studies--dark h2,
    .panel__case-studies--dark p {
      color: #000; }
    .panel__case-studies--dark .btn {
      color: #902380;
      border-color: #902380; }
      .panel__case-studies--dark .btn:hover {
        background-color: #902380;
        color: #fff; }
    .panel__case-studies--light:before {
      background-color: rgba(0, 0, 0, 0.6); }
  .panel__casestudy--snapshots {
    background-color: #e7e7e7;
    text-align: center; }
    .panel__casestudy--snapshots .info {
      font-size: 72px;
      font-size: 4.5rem;
      line-height: 84px; }
    .panel__casestudy--snapshots header {
      margin-bottom: 4.16667%; }
    .panel__casestudy--snapshots article {
      text-align: center;
      padding: 4.16667%; }
      .panel__casestudy--snapshots article p {
        margin-bottom: 0; }
    .panel__casestudy--snapshots .box {
      margin-bottom: 4.16667%; }
    @media (min-width: 40em) {
      .panel__casestudy--snapshots {
        text-align: left; }
        .panel__casestudy--snapshots .box {
          border-right: solid 1px #000;
          margin-bottom: 0; }
          .panel__casestudy--snapshots .box:last-child {
            border-right: none; }
          .panel__casestudy--snapshots .box--half {
            -moz-box-sizing: border-box;
            -webkit-box-sizing: border-box;
            box-sizing: border-box;
            width: 50%;
            float: left;
            padding-left: 1.38889%;
            padding-right: 1.38889%; }
          .panel__casestudy--snapshots .box--third {
            -moz-box-sizing: border-box;
            -webkit-box-sizing: border-box;
            box-sizing: border-box;
            width: 33.33333%;
            float: left;
            padding-left: 1.38889%;
            padding-right: 1.38889%; }
          .panel__casestudy--snapshots .box--fourth {
            -moz-box-sizing: border-box;
            -webkit-box-sizing: border-box;
            box-sizing: border-box;
            width: 25%;
            float: left;
            padding-left: 1.38889%;
            padding-right: 1.38889%; } }
  .panel__casestudy--content {
    background-color: #fff; }
    .panel__casestudy--content ul,
    .panel__casestudy--content ol {
      margin: 1em 0;
      padding-left: 1em; }
    .panel__casestudy--content h2,
    .panel__casestudy--content p {
      color: #000; }
    .panel__casestudy--content .panel__icon {
      text-align: center; }
      @media (min-width: 40em) {
        .panel__casestudy--content .panel__icon {
          -moz-box-sizing: border-box;
          -webkit-box-sizing: border-box;
          box-sizing: border-box;
          width: 25%;
          float: right;
          padding-left: 1.38889%;
          padding-right: 1.38889%; } }
    .panel__casestudy--content .panel__content {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 100%;
      float: left;
      padding-left: 10.71429%;
      padding-right: 10.71429%; }
      @media (min-width: 40em) {
        .panel__casestudy--content .panel__content {
          -moz-box-sizing: border-box;
          -webkit-box-sizing: border-box;
          box-sizing: border-box;
          width: 100%;
          float: left;
          padding-left: 10.71429%;
          padding-right: 10.71429%; } }
      @media (min-width: 64em) {
        .panel__casestudy--content .panel__content {
          -moz-box-sizing: border-box;
          -webkit-box-sizing: border-box;
          box-sizing: border-box;
          width: 66.66667%;
          float: left;
          padding-left: 1.38889%;
          padding-right: 1.38889%; } }
  .panel__casestudy--quote {
    padding: 3.5em 0;
    position: relative; }
    .panel__casestudy--quote:before {
      font-size: 320px;
      font-size: 20rem;
      font-family: "brandon-grotesque";
      content: open-quote;
      position: absolute;
      left: 20px;
      top: 0;
      color: #fff;
      opacity: .2;
      line-height: 1; }
    .panel__casestudy--quote p {
      font-size: 1.5em;
      color: #fff;
      margin-top: 0; }
    .panel__casestudy--quote footer {
      font-size: 20px;
      font-size: 1.25rem;
      color: #000;
      text-transform: uppercase;
      font-weight: 700; }
    .panel__casestudy--quote .quote-wrapper {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 100%;
      float: left;
      padding-left: 10.71429%;
      padding-right: 10.71429%; }
      @media (min-width: 40em) {
        .panel__casestudy--quote .quote-wrapper {
          -moz-box-sizing: border-box;
          -webkit-box-sizing: border-box;
          box-sizing: border-box;
          width: 100%;
          float: left;
          padding-left: 10.71429%;
          padding-right: 10.71429%; } }
      @media (min-width: 64em) {
        .panel__casestudy--quote .quote-wrapper {
          -moz-box-sizing: border-box;
          -webkit-box-sizing: border-box;
          box-sizing: border-box;
          width: 100%;
          float: left;
          padding-left: 1.38889%;
          padding-right: 1.38889%; } }
  .panel__casestudy--relatedwide {
    position: relative;
    background-size: cover;
    display: table;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%;
    float: left;
    padding-left: 10.71429%;
    padding-right: 10.71429%; }
    .panel__casestudy--relatedwide .casestudy-wrapper {
      display: table-cell;
      vertical-align: middle; }
    .panel__casestudy--relatedwide .container {
      position: relative;
      z-index: 2; }
    .panel__casestudy--relatedwide h2 {
      color: #fff; }
    @media (min-width: 64em) {
      .panel__casestudy--relatedwide {
        min-height: 440px;
        -moz-box-sizing: border-box;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        width: 100%;
        float: left;
        padding-left: 1.38889%;
        padding-right: 1.38889%;
        padding-left: 0;
        padding-right: 0; }
        .panel__casestudy--relatedwide h2 {
          margin-top: 0; } }
  .panel__casestudy--related {
    padding: 0; }
    .panel__casestudy--related .panel {
      background-position: center center;
      padding: 8.33333% 0; }
      @media (min-width: 40em) {
        .panel__casestudy--related .panel {
          clear: none;
          min-height: 600px;
          display: table;
          padding: 4.16667%;
          -moz-box-sizing: border-box;
          -webkit-box-sizing: border-box;
          box-sizing: border-box;
          width: 50%;
          float: left; }
          .panel__casestudy--related .panel .container {
            display: table-cell;
            vertical-align: middle;
            padding: 0; }
          .panel__casestudy--related .panel__content {
            -moz-box-sizing: border-box;
            -webkit-box-sizing: border-box;
            box-sizing: border-box;
            width: 83.33333%;
            float: left;
            padding-left: 1.38889%;
            padding-right: 1.38889%;
            display: table-cell; } }
  .panel__casestudy--image {
    padding: 0; }
    .panel__casestudy--image img {
      vertical-align: middle;
      width: 100%; }
  .panel__casestudy--cta {
    padding: 3.5em 0;
    text-align: center;
    color: #fff; }
    .panel__casestudy--cta .btn {
      color: #2cc48a;
      border-color: #2cc48a;
      padding-left: 4.16667%;
      padding-right: 4.16667%; }
      .panel__casestudy--cta .btn:hover {
        color: #fff;
        background-color: #2cc48a; }
    .panel__casestudy--cta .panel__content {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 100%;
      float: left;
      padding-left: 10.71429%;
      padding-right: 10.71429%; }
      @media (min-width: 40em) {
        .panel__casestudy--cta .panel__content {
          -moz-box-sizing: border-box;
          -webkit-box-sizing: border-box;
          box-sizing: border-box;
          width: 100%;
          float: left;
          padding-left: 10.71429%;
          padding-right: 10.71429%; } }
      @media (min-width: 64em) {
        .panel__casestudy--cta .panel__content {
          -moz-box-sizing: border-box;
          -webkit-box-sizing: border-box;
          box-sizing: border-box;
          width: 100%;
          float: left;
          padding-left: 1.38889%;
          padding-right: 1.38889%; } }
  .panel__content h4 {
    margin-bottom: 1.38889%; }
  .panel__content h2 {
    margin: 0; }
  .panel__content p:last-child {
    margin-bottom: 0; }

.recent-posts {
  background-color: #F9F9F9;
  padding: 100px 0; }
  .recent-posts__post {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 33.33333%;
    float: left;
    padding-left: 1.38889%;
    padding-right: 1.38889%; }
    .recent-posts__post a {
      background-color: #fff;
      display: block; }

.heading__case-studies {
  background-color: #902380;
  padding: 50px 0; }
  .heading__case-studies h2 {
    color: #fff; }

.heading h2 {
  margin: 0; }

.panel-wrapper {
  color: #fff; }
  @media (min-width: 40em) {
    .panel-wrapper--dark {
      background-color: rgba(0, 0, 0, 0.5);
      padding: 8.33333%; } }
  .panel-wrapper--light {
    background-color: rgba(255, 255, 255, 0.5); }

.page-services .panel__hero {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  float: left;
  padding-left: 10.71429%;
  padding-right: 10.71429%;
  padding-top: 21.42857%;
  padding-bottom: 14.28571%;
  color: #fff;
  position: relative; }
  @media (min-width: 40em) {
    .page-services .panel__hero {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 100%;
      float: left;
      padding-left: 10.71429%;
      padding-right: 10.71429%; } }
  @media (min-width: 64em) {
    .page-services .panel__hero {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 100%;
      float: left;
      padding-left: 1.38889%;
      padding-right: 1.38889%;
      padding-top: 0;
      padding-bottom: 0; } }
  .page-services .panel__hero:before {
    content: "";
    position: absolute;
    background-color: rgba(0, 0, 0, 0.4);
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1; }
  .page-services .panel__hero h3,
  .page-services .panel__hero p {
    margin: 0; }
  .page-services .panel__hero h3 {
    color: #2cc48a; }
  .page-services .panel__hero h1 {
    margin: 10px 0; }
  .page-services .panel__hero .container {
    position: relative;
    z-index: 2;
    padding-bottom: 0px; }
  .page-services .panel__hero .entry-header .highlights {
    color: #2cc48a;
    font-size: 16px;
    font-size: 1rem; }
    .page-services .panel__hero .entry-header .highlights span {
      color: #fff;
      color: rgba(255, 255, 255, 0.7);
      margin: 0 0.69444%; }

.services-box {
  margin-bottom: 2em;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  float: left;
  padding-left: 1.38889%;
  padding-right: 1.38889%; }
  .services-box article {
    background-color: #fff;
    padding: 20px;
    text-align: center; }
    @media (min-width: 40em) {
      .services-box article {
        min-height: 320px; }
        .services-box article h5 {
          margin: 1.38889% 0;
          height: 44px; } }
    .services-box article p {
      font-size: 18px;
      font-size: 1.125rem;
      margin-bottom: 0; }
  @media (min-width: 40em) {
    .services-box {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 50%;
      float: left;
      padding-left: 1.38889%;
      padding-right: 1.38889%; } }

@media (min-width: 64em) {
  .box--half {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 50%;
    float: left;
    padding-left: 1.38889%;
    padding-right: 1.38889%; }
  .box--third {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 33.33333%;
    float: left;
    padding-left: 1.38889%;
    padding-right: 1.38889%; }
  .box--fourth {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 25%;
    float: left;
    padding-left: 1.38889%;
    padding-right: 1.38889%; } }

@media (min-width: 40em) {
  .page_layouts .standard-section {
    padding: 0 0 0 0; } }

.page_layouts .entry-header {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  float: left;
  padding-left: 10.71429%;
  padding-right: 10.71429%; }
  @media (min-width: 64em) {
    .page_layouts .entry-header {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 100%;
      float: left;
      padding-left: 1.38889%;
      padding-right: 1.38889%; } }

.page_layouts .section-content {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  float: left;
  padding-left: 10.71429%;
  padding-right: 10.71429%; }
  @media (min-width: 64em) {
    .page_layouts .section-content {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      width: 66.66667%;
      float: left;
      padding-left: 1.38889%;
      padding-right: 1.38889%; } }

.section-image {
  position: relative;
  width: 100%; }
  .section-image .image-section {
    width: 100%; }

/* page layout options */
.page_layouts .container .panel-wrapper {
  *zoom: 1;
  padding: 8.33333% 0; }
  .page_layouts .container .panel-wrapper:before, .page_layouts .container .panel-wrapper:after {
    content: " ";
    display: table; }
  .page_layouts .container .panel-wrapper:after {
    clear: both; }

/* who we are */
.founders:not(:last-child) {
  margin-bottom: 8.33333%; }

@media (min-width: 40em) {
  .founders__image {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 25%;
    float: left;
    padding-left: 1.38889%;
    padding-right: 1.38889%; } }

.founders__content h4 {
  margin: 2.77778% 0 1.38889%; }

@media (min-width: 40em) {
  .founders__content {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 75%;
    float: left;
    padding-left: 1.38889%;
    padding-right: 1.38889%; }
    .founders__content h4 {
      margin-top: 0; } }

.page-container {
  background: #fff;
  width: 100%; }

.page-container-top {
  margin-top: 6em;
  background: #fff;
  width: 100%; }

.page-header {
  padding: 6em 0 4em 0; }
  .page-header h1.entry-title {
    color: #fff; }

.wpcf7-submit {
  background: none;
  border: 1px solid #000;
  height: 50px;
  color: #000;
  text-align: center;
  display: block;
  font-size: 18px;
  line-height: 25px;
  padding: 0 20px 0 20px; }

.archive-title {
  color: #fff; }

.opacitate {
  width: 100%;
  height: 100%;
  left: 0px;
  top: 0px;
  opacity: .8;
  position: absolute;
  background: #000; }

.site-content {
  overflow: hidden; }

/* mobile fixes */

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3N0ZGluIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ub3JtYWxpemUtc2Nzcy9fbm9ybWFsaXplLnNjc3MiLCJ2YXJpYWJsZXMtc2l0ZS9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zYXNzLWZsZXgtbWl4aW4vX2ZsZXhib3guc2NzcyIsIl9hbmltYXRlLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3Nhc3MtbXEvX21xLnNjc3MiLCJtb2R1bGVzL19hbGlnbm1lbnRzLnNjc3MiLCJtZWRpYS9fY2FwdGlvbnMuc2NzcyIsIm1peGlucy9fbWl4aW5zLW1hc3Rlci5zY3NzIiwibW9kdWxlcy9fY2xlYXJpbmdzLnNjc3MiLCJzaXRlL19zaXRlLnNjc3MiLCJ0eXBvZ3JhcGh5L190eXBvZ3JhcGh5LnNjc3MiLCJ2YXJpYWJsZXMtc2l0ZS9fY29sb3JzLnNjc3MiLCJ2YXJpYWJsZXMtc2l0ZS9fc2V0dGluZ3Muc2NzcyIsInR5cG9ncmFwaHkvX2hlYWRpbmdzLnNjc3MiLCJ0eXBvZ3JhcGh5L19jb3B5LnNjc3MiLCJlbGVtZW50cy9fZWxlbWVudHMuc2NzcyIsImVsZW1lbnRzL19saXN0cy5zY3NzIiwiZWxlbWVudHMvX3RhYmxlcy5zY3NzIiwiZm9ybXMvX2J1dHRvbnMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fZ3V0dGVycy5zY3NzIiwiZm9ybXMvX2ZpZWxkcy5zY3NzIiwibmF2aWdhdGlvbi9fbmF2aWdhdGlvbi5zY3NzIiwibmF2aWdhdGlvbi9fbGlua3Muc2NzcyIsIm5hdmlnYXRpb24vX21lbnVzLnNjc3MiLCJtb2R1bGVzL19hY2Nlc3NpYmlsaXR5LnNjc3MiLCJzaXRlL3NlY29uZGFyeS9fd2lkZ2V0cy5zY3NzIiwibGF5b3V0L19oZWFkZXIuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3N1cHBvcnQvX3JlbS5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19zcGFuLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zaGFyZWQvX2RpcmVjdGlvbi5zY3NzIiwibGF5b3V0L19mb290ZXIuc2NzcyIsInNpdGUvcHJpbWFyeS9fcG9zdHMtYW5kLXBhZ2VzLnNjc3MiLCJzaXRlL3ByaW1hcnkvX2FzaWRlcy5zY3NzIiwic2l0ZS9wcmltYXJ5L19jb21tZW50cy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19jb250YWluZXIuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3N1cHBvcnQvX2NsZWFyZml4LnNjc3MiLCJtb2R1bGVzL19pbmZpbml0ZS1zY3JvbGwuc2NzcyIsIm1lZGlhL19tZWRpYS5zY3NzIiwibWVkaWEvX2dhbGxlcmllcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW9CRTtBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dFQXNCZ0U7QUM1Q2hFOztnRkFFZ0Y7QUFDaEY7Ozs7R0FJRztBQUlIO2dGQUNnRjtBQUVoRjs7Ozs7O0dBTUc7QUNwQkgsT0FBTyxDQUFDLHVDQUFJO0FEc0JaLElBQUksQ0FBQztFQUNILFdBQVcsRUFBRSxVQUFXO0VBQUUsT0FBTztFQUNqQyxvQkFBb0IsRUFBRSxJQUFLO0VBQUUsT0FBTztFQUNwQyx3QkFBd0IsRUFBRSxJQUFLO0VBQUUsT0FBTyxFQUl6Qzs7QUFFRDs7R0FFRztBQUVILElBQUksQ0FBQztFQUNILE1BQU0sRUFBRSxDQUFFLEdBQ1g7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOzs7OztHQUtHO0FBRUgsT0FBTztBQUNQLEtBQUs7QUFDTCxPQUFPO0FBQ1AsVUFBVTtBQUNWLE1BQU07QUFDTixNQUFNO0FBQ04sTUFBTTtBQUNOLE1B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YSx3QkFBUTtFQUc3QyxHQUFHO0lBQ0QsaUJBQWlCLEVBQUUsc0JBQVcsQ0FBWSx1QkFBUTtJQUNsRCxTQUFTLEVBQUUsc0JBQVcsQ0FBWSx1QkFBUTtFQUc1QyxHQUFHO0lBQ0QsaUJBQWlCLEVBQUUsdUJBQVcsQ0FBYSx3QkFBUTtJQUNuRCxTQUFTLEVBQUUsdUJBQVcsQ0FBYSx3QkFBUTtFQUc3QyxHQUFHO0lBQ0QsaUJBQWlCLEVBQUUsc0JBQVcsQ0FBWSx1QkFBUTtJQUNsRCxTQUFTLEVBQUUsc0JBQVcsQ0FBWSx1QkFBUTtFQUc1QyxHQUFHO0lBQ0QsaUJBQWlCLEVBQUUsc0JBQVcsQ0FBWSx3QkFBUTtJQUNsRCxTQUFTLEVBQUUsc0JBQVcsQ0FBWSx3QkFBUTtFQUc1QyxJQUFJO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSztJQUN4QixTQUFTLEVBQUUsSUFBSzs7QUFJcEIsVUFBVSxDQUFDLE1BQU07RUFDZixJQUFJO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSztJQUN4QixTQUFTLEVBQUUsSUFBSztFQUdsQixHQUFHO0lBQ0QsaUJBQWlCLEVBQUUsdUJBQVcsQ0FBYSx3QkFBUTtJQUNuRCxTQUFTLEVBQUUsdUJBQVcsQ0FBYSx3QkFBUTtFQUc3QyxHQUFHO0lBQ0QsaUJBQWlCLEVBQUUsc0JBQVcsQ0FBWSx1QkFBUTtJQUNsRCxTQUFTLEVBQUUsc0JBQVcsQ0FBWSx1QkFBUTtFQUc1QyxHQUFHO0lBQ0QsaUJBQWlCLEVBQUUsdUJBQVcsQ0FBYSx3QkFBUTtJQUNuRCxTQUFTLEVBQUUsdUJBQVcsQ0FBYSx3QkFBUTtFQUc3QyxHQUFHO0lBQ0QsaUJBQWlCLEVBQUUsc0JBQVcsQ0FBWSx1QkFBUTtJQUNsRCxTQUFTLEVBQUUsc0JBQVcsQ0FBWSx1QkFBUTtFQUc1QyxHQUFHO0lBQ0QsaUJBQWlCLEVBQUUsc0JBQVcsQ0FBWSx3QkFBUTtJQUNsRCxTQUFTLEVBQUUsc0JBQVcsQ0FBWSx3QkFBUTtFQUc1QyxJQUFJO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSztJQUN4QixTQUFTLEVBQUUsSUFBSzs7QUFJcEIs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QUFhLENBQUM7RUFDYixRQUFRLEVBQUUsTUFBTyxHQUNqQjs7QUFDRCxrQkFBa0IiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG5UaGVtZSBOYW1lOiBFeHBlcmllbmNlTWF0dGVyXG5UaGVtZSBVUkk6IGh0dHA6Ly91bmRlcnNjb3Jlcy5tZS9cbkF1dGhvcjogRGFuaWVsIFphcmVtYmFcbkF1dGhvciBVUkk6IGh0dHA6Ly9kemFyZW1iYS5jb21cbkRlc2NyaXB0aW9uOiBEZXNjcmlwdGlvblxuVmVyc2lvbjogMS4wLjBcbkxpY2Vuc2U6IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYyIG9yIGxhdGVyXG5MaWNlbnNlIFVSSTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0yLjAuaHRtbFxuVGV4dCBEb21haW46IGV4cGVyaWVuY2VtYXR0ZXJcblRhZ3M6XG5cblRoaXMgdGhlbWUsIGxpa2UgV29yZFByZXNzLCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMLlxuVXNlIGl0IHRvIG1ha2Ugc29tZXRoaW5nIGNvb2wsIGhhdmUgZnVuLCBhbmQgc2hhcmUgd2hhdCB5b3UndmUgbGVhcm5lZCB3aXRoIG90aGVycy5cblxuRXhwZXJpZW5jZU1hdHRlciBpcyBiYXNlZCBvbiBVbmRlcnNjb3JlcyBodHRwOi8vdW5kZXJzY29yZXMubWUvLCAoQykgMjAxMi0yMDE1IEF1dG9tYXR0aWMsIEluYy5cblVuZGVyc2NvcmVzIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdQTCB2MiBvciBsYXRlci5cblxuTm9ybWFsaXppbmcgc3R5bGVzIGhhdmUgYmVlbiBoZWxwZWQgYWxvbmcgdGhhbmtzIHRvIHRoZSBmaW5lIHdvcmsgb2Zcbk5pY29sYXMgR2FsbGFnaGVyIGFuZCBKb25hdGhhbiBOZWFsIGh0dHA6Ly9uZWNvbGFzLmdpdGh1Yi5jb20vbm9ybWFsaXplLmNzcy9cbiovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbj4+PiBUQUJMRSBPRiBDT05URU5UUzpcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgTm9ybWFsaXplXG4jIFR5cG9ncmFwaHlcbiMgRWxlbWVudHNcbiMgRm9ybXNcbiMgTmF2aWdhdGlvblxuXHQjIyBMaW5rc1xuXHQjIyBNZW51c1xuIyBBY2Nlc3NpYmlsaXR5XG4jIEFsaWdubWVudHNcbiMgQ2xlYXJpbmdzXG4jIFdpZGdldHNcbiMgQ29udGVudFxuICAgICMjIFBvc3RzIGFuZCBwYWdlc1xuXHQjIyBBc2lkZXNcblx0IyMgQ29tbWVudHNcbiMgSW5maW5pdGUgc2Nyb2xsXG4jIE1lZGlhXG5cdCMjIENhcHRpb25zXG5cdCMjIEdhbGxlcmllc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbkBpbXBvcnQgXCIuLi9ib3dlcl9jb21wb25lbnRzL25vcm1hbGl6ZS1zY3NzL19ub3JtYWxpemVcIjtcbkBpbXBvcnQgXCIuLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5XCI7XG5AaW1wb3J0IFwiLi4vYm93ZXJfY29tcG9uZW50cy9zYXNzLW1xL21xXCI7XG5AaW1wb3J0IFwiLi4vYm93ZXJfY29tcG9uZW50cy9zYXNzLWZsZXgtbWl4aW4vX2ZsZXhib3hcIjtcbkBpbXBvcnQgXCJhbmltYXRlXCI7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5AaW1wb3J0IFwidmFyaWFibGVzLXNpdGUvc2V0dGluZ3Muc2Nzc1wiO1xuQGltcG9ydCBcInZhcmlhYmxlcy1zaXRlL3ZhcmlhYmxlcy1zaXRlXCI7XG5AaW1wb3J0IFwibWl4aW5zL21peGlucy1tYXN0ZXJcIjtcblxuLy8gLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIyBOb3JtYWxpemVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8vIEBpbXBvcnQgXCJub3JtYWxpemVcIjtcblxuLy8gLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIyBUeXBvZ3JhcGh5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0IFwidHlwb2dyYXBoeS90eXBvZ3JhcGh5XCI7XG5cbi8vIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICMgRWxlbWVudHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBpbXBvcnQgXCJlbGVtZW50cy9lbGVtZW50c1wiO1xuXG4vLyAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAjIEZvcm1zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0IFwiZm9ybXMvZm9ybXNcIjtcblxuLy8gLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIyBOYXZpZ2F0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0IFwibmF2aWdhdGlvbi9uYXZpZ2F0aW9uXCI7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAjIEFjY2Vzc2liaWxpdHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW1wb3J0IFwibW9kdWxlcy9hY2Nlc3NpYmlsaXR5XCI7XG5cbi8vIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICMgQWxpZ25tZW50c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCBcIm1vZHVsZXMvYWxpZ25tZW50c1wiO1xuXG4vLyAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAjIENsZWFyaW5nc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCBcIm1vZHVsZXMvY2xlYXJpbmdzXCI7XG5cbi8vIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICMgV2lkZ2V0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCBcInNpdGUvc2Vjb25kYXJ5L3dpZGdldHNcIjtcblxuLy8gLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIyBDb250ZW50XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0IFwic2l0ZS9zaXRlXCI7XG5cbi8vIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICMgSW5maW5pdGUgc2Nyb2xsXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0IFwibW9kdWxlcy9pbmZpbml0ZS1zY3JvbGxcIjtcblxuLy8gLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIyBNZWRpYVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCBcIm1lZGlhL21lZGlhXCI7XG5cbi8vIFBhbmVsc1xuLnBhbmVsIHtcblx0cGFkZGluZzogZ3V0dGVyKDIpIDA7XG5cdEBleHRlbmQgJWNsZWFyZml4LWFmdGVyO1xuXHQmX19jb250ZW50LFxuXHQmX19pY29uIHtcblx0XHRAaW5jbHVkZSB3aXRoLWxheW91dCgkc3VzeS1tb2JpbGUpIHtcblx0XHRcdEBpbmNsdWRlIHNwYW4oNCk7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiBndXR0ZXIoNCk7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcblx0XHRcdEBpbmNsdWRlIHNwYW4oNik7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblx0fVxuXHQmX19pY29uIHtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0aW1nIHtcblx0XHRcdG1heC13aWR0aDogNjAlO1xuXHRcdH1cblx0fVxuXHRAaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XG5cdFx0Jl9faWNvbiB7XG5cdFx0XHRpbWcge1xuXHRcdFx0XHRtYXgtd2lkdGg6IDc1JTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0Jl9fY29udGVudCB7XG5cdFx0Ji0tZnVsbCB7XG5cdFx0XHRAaW5jbHVkZSBzcGFuKDEyKTtcblx0XHR9XG5cdH1cblxuXHQvLyBTdWJwYWdlIHBhbmVsXG5cdCYtLXN1YnBhZ2Uge1xuXHRcdEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcblx0XHRcdEBpbmNsdWRlIHdpdGgtbGF5b3V0KCRzdXN5LW1vYmlsZSkge1xuXHRcdFx0XHRAaW5jbHVkZSBzcGFuKDQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIEhlcm8gcGFuZWxcblx0Jl9faGVybyB7XG5cdFx0LnNpbmdsZS1jYXNlLXN0dWR5ICYge1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdH1cblx0XHRoNSB7IG1hcmdpbi1ib3R0b206IDA7IH1cblx0XHRAaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XG5cdFx0XHRAZXh0ZW5kICVmbGV4Ym94O1xuXHRcdFx0QGluY2x1ZGUganVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTtcblx0XHRcdEBpbmNsdWRlIGFsaWduLXNlbGYoY2VudGVyKTtcblx0XHRcdEBpbmNsdWRlIGFsaWduLWNvbnRlbnQoY2VudGVyKTtcblx0XHRcdEBpbmNsdWRlIGFsaWduLWl0ZW1zKGNlbnRlcik7XG5cdFx0XHRoZWlnaHQ6IDEwMHZoO1xuXHRcdH1cblx0XHQvLyAmLS1zaG9ydGVyIHtcblx0XHQvLyBcdEBpbmNsdWRlIGp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXHRcdC8vIFx0aGVpZ2h0OiA4MHZoO1xuXHRcdC8vIH1cblx0XHQmLS1zaG9ydGVyIHtcblx0XHRcdEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcblx0XHRcdFx0aGVpZ2h0OiA3NXZoO1xuXHRcdFx0fVxuXHRcdFx0QGluY2x1ZGUganVzdGlmeS1jb250ZW50KGNlbnRlcik7XG5cdFx0fVxuXHR9XG5cblx0Ly8gUmV2ZXJzZSBncmlkXG5cdCZfX2NvbnRlbnQge1xuXHRcdCYtLW9kZCB7XG5cdFx0XHRAaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XG5cdFx0XHRcdEBpbmNsdWRlIHNwYW4oNiBsYXN0KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0Ji0tZXZlbiB7XG5cdFx0XHRAaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XG5cdFx0XHRcdEBpbmNsdWRlIHNwYW4oNik7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGgyLFxuXHRcdHAge1xuXHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0fVxuXHR9XG5cblx0Ly8gQ2xpZW50cyBwYW5lbFxuXHQmX19jbGllbnRzIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRAaW5jbHVkZSBzcGFuKDEyKTtcblxuXHRcdGhlYWRlciB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiBndXR0ZXIoNCk7XG5cdFx0fVxuXHRcdC5jb250YWluZXIge1xuXHRcdFx0Zm9udC1zaXplOiAwO1xuXHRcdH1cblx0XHRoMiB7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0fVxuXHRcdCYtLWl0ZW0ge1xuXHRcdFx0QGluY2x1ZGUgc3Bhbig0KTtcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdG1hcmdpbi1ib3R0b206IGd1dHRlcigyKTtcblx0XHRcdGEge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jazsgXG5cdFx0XHRcdHBhZGRpbmctbGVmdDogMjJweDtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMjJweDtcblx0XHRcdFx0QGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCkge1xuXHRcdFx0XHRcdHBhZGRpbmc6IDBweCAwcHggMHB4IDBweDtcdFxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRAaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XG5cdFx0XHRcdEBpbmNsdWRlIHNwYW4oMik7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHR9XG5cblx0XHQvLyBTZXJ2aWNlcyBwYWdlIGNsaWVudHMgcGFuZWxcblx0XHQvLyAucGFnZS1zZXJ2aWNlcyAmIHtcblx0XHQvLyBcdGgyIHtcblx0XHQvLyBcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHQvLyBcdH1cblx0XHQvLyB9XG5cdH1cblxuXHQvLyBPZmZlcnMgcGFuZWxcblx0Jl9fb2ZmZXJzIHtcblx0XHRAaW5jbHVkZSB3aXRoLWxheW91dCgkc3VzeS1tb2JpbGUpIHtcblx0XHRcdEBpbmNsdWRlIHNwYW4oNCk7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMjIwcHg7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIG1xKCRmcm9tOiB0YWJsZXQpIHtcblx0XHRcdEBpbmNsdWRlIHNwYW4oMTIpO1xuXHRcdFx0cGFkZGluZzogZ3V0dGVyKDIpIDA7XG5cdFx0fVxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRoZWFkZXIge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogZ3V0dGVyKDQpO1xuXHRcdH1cblx0XHRmb290ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogIzI0YWE3Nztcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdHBhZGRpbmc6IGd1dHRlcigxMCk7XG5cdFx0XHRtYXJnaW4tbGVmdDogLSBndXR0ZXIoMSk7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IC0gZ3V0dGVyKDEpO1xuXHRcdFx0QGluY2x1ZGUgZm9udC1zaXplKDEuMjUpO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0Ym90dG9tOiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHRoNCB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHR9XG5cdFx0XHR1bCB7XG5cdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0XHRcdGxpIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRtYXJnaW46IGd1dHRlcig0KSAwO1xuXHRcdFx0XHRcdEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRcdG1hcmdpbjogMCBndXR0ZXIoMjQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0YSB7XG5cdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC8vIEZvdW5kZXJzIFxuXHQmX19mb3VuZGVycyB7XG5cdFx0QGluY2x1ZGUgd2l0aC1sYXlvdXQoJHN1c3ktbW9iaWxlKSB7XG5cdFx0XHRAaW5jbHVkZSBzcGFuKDQpO1xuXHRcdH1cblx0fVxuXHQmX19mb3VuZGVycy1pdGVtcyB7XG5cdFx0XG5cdFx0QGluY2x1ZGUgd2l0aC1sYXlvdXQoJHN1c3ktbW9iaWxlKSB7XG5cdFx0XHRAaW5jbHVkZSBzcGFuKDYpO1xuXHRcdH1cblx0XHRAaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XG5cdFx0XHRAaW5jbHVkZSBzcGFuKDQpO1xuXHRcdH1cdFxuXHR9XG5cdC8vIENhc2Ugc3R1ZGllcyBsaXN0aW5nXG5cdCZfX2Nhc2Utc3R1ZGllcyB7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0XHRAaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdD4gZGl2IHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHotaW5kZXg6IDI7XG5cdFx0fVxuXHRcdC5jb2x1bW4tcmlnaHQge1xuXHRcdFx0QGluY2x1ZGUgc3Bhbig2IGxhc3QpO1xuXHRcdH1cblx0XHRAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0KSB7XG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBjZW50ZXI7XG5cdFx0fVxuXG5cdFx0aDIsXG5cdFx0cCB7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHR9XG5cdFx0aDIge1xuXHRcdFx0XHRAaW5jbHVkZSBmb250LXNpemUoMi41KTtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMmVtO1xuXHRcdFx0fVxuXHRcdCZfX3RpdGxlIHtcblx0XHRcdGNvbG9yOiBwYWxldHRlKHBhbmVscywgY3gpO1xuXHRcdFx0Y29sb3I6ICMwMDA7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxZW07XG5cdFx0fVxuXG5cdFx0Ly8gVGhlbWVzXG5cdFx0Ji0tZGFyayB7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NTUsMjU1NSwuNik7XG5cdFx0XHR9XG5cdFx0XHRoMixcblx0XHRcdHAge1xuXHRcdFx0XHRjb2xvcjogIzAwMDtcblx0XHRcdH1cblx0XHRcdC5idG4ge1xuXHRcdFx0XHRjb2xvcjogcGFsZXR0ZShwYW5lbHMsIGN4KTtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiBwYWxldHRlKHBhbmVscywgY3gpO1xuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBwYWxldHRlKHBhbmVscywgY3gpO1xuXHRcdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdCYtLWxpZ2h0IHtcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwuNik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gU2luZ2xlIENhc2UgU3R1ZHlcblx0Jl9fY2FzZXN0dWR5IHtcblx0XHQmLS1zbmFwc2hvdHMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2U3ZTdlNztcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdC5pbmZvIHtcblx0XHRcdFx0QGluY2x1ZGUgZm9udC1zaXplKDQuNSk7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiA4NHB4O1xuXHRcdFx0fVxuXHRcdFx0aGVhZGVyIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogZ3V0dGVyKDQpO1xuXHRcdFx0fVxuXHRcdFx0YXJ0aWNsZSB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0cGFkZGluZzogZ3V0dGVyKDQpO1xuXHRcdFx0XHRwIHtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQuYm94IHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogZ3V0dGVyKDQpO1xuXHRcdFx0fVxuXHRcdFx0QGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0XHQuYm94IHtcblx0XHRcdFx0XHRib3JkZXItcmlnaHQ6IHNvbGlkIDFweCAjMDAwO1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0XHRcdGJvcmRlci1yaWdodDogbm9uZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ji0taGFsZiBcdHsgQGluY2x1ZGUgc3Bhbig2KTsgfVxuXHRcdFx0XHRcdCYtLXRoaXJkIFx0eyBAaW5jbHVkZSBzcGFuKDQpOyB9XG5cdFx0XHRcdFx0Ji0tZm91cnRoIFx0eyBAaW5jbHVkZSBzcGFuKDMpOyB9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLS1jb250ZW50IHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0XHR1bCxcblx0XHRcdG9sIHtcblx0XHRcdFx0bWFyZ2luOiAxZW0gMDtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAxZW07XG5cdFx0XHR9XG5cdFx0XHRoMixcblx0XHRcdHAge1xuXHRcdFx0XHRjb2xvcjogIzAwMDtcblx0XHRcdH1cblx0XHRcdC5wYW5lbF9faWNvbiB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0QGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuXHRcdFx0XHRcdEBpbmNsdWRlIHNwYW4oMyBsYXN0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0LnBhbmVsX19jb250ZW50IHtcblx0XHRcdFx0QGluY2x1ZGUgd2l0aC1sYXlvdXQoJHN1c3ktbW9iaWxlKSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgc3Bhbig0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRAaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgd2l0aC1sYXlvdXQoJHN1c3ktbW9iaWxlKSB7XG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBzcGFuKDQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0KSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgc3Bhbig4KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYtLXF1b3RlIHtcblx0XHRcdEBleHRlbmQgJWNsZWFyZml4O1xuXHRcdFx0cGFkZGluZzogMy41ZW0gMDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0QGluY2x1ZGUgZm9udC1zaXplKDIwKTtcblx0XHRcdFx0Zm9udC1mYW1pbHk6ICRoZWFkaW5ncy1mb250LWZhbWlseTtcblx0XHRcdFx0Y29udGVudDogb3Blbi1xdW90ZTtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRsZWZ0OiAyMHB4O1xuXHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRvcGFjaXR5OiAuMjtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0XHR9XG5cdFx0XHRwIHtcblx0XHRcdCBcdGZvbnQtc2l6ZTogMS41ZW07XG5cdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdFx0fVxuXHRcdFx0Zm9vdGVyIHtcblx0XHRcdFx0QGluY2x1ZGUgZm9udC1zaXplKDEuMjUpO1xuXHRcdFx0XHRjb2xvcjogIzAwMDtcblx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRcdH1cblx0XHRcdC5xdW90ZS13cmFwcGVyIHtcblx0XHRcdFx0QGluY2x1ZGUgd2l0aC1sYXlvdXQoJHN1c3ktbW9iaWxlKSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgc3Bhbig0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRAaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgd2l0aC1sYXlvdXQoJHN1c3ktbW9iaWxlKSB7XG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBzcGFuKDQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0KSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgc3BhbigxMik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0Ji0tcmVsYXRlZHdpZGUge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0XHRcdGRpc3BsYXk6IHRhYmxlO1xuXHRcdFx0QGluY2x1ZGUgd2l0aC1sYXlvdXQoJHN1c3ktbW9iaWxlKSB7XG5cdFx0XHRcdEBpbmNsdWRlIHNwYW4oNCk7XG5cdFx0XHR9XG5cdFx0XHQuY2FzZXN0dWR5LXdyYXBwZXIge1xuXHRcdFx0XHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0fVxuXHRcdFx0LmNvbnRhaW5lciB7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0ei1pbmRleDogMjtcdFxuXHRcdFx0XHRcblx0XHRcdH1cblx0XHRcdGgyIHsgY29sb3I6ICNmZmY7IH1cblx0XHQgXHRAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0KSB7XG5cdFx0IFx0XHRtaW4taGVpZ2h0OiA0NDBweDtcblx0XHQgXHRcdEBpbmNsdWRlIHNwYW4oMTIpO1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdFx0XHRcdGgyIHsgbWFyZ2luLXRvcDogMDsgfVxuXHRcdFx0fVxuXHRcdH1cblx0XHQmLS1yZWxhdGVkIHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHQucGFuZWwge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHRcdFx0XHRwYWRkaW5nOiBndXR0ZXIoMikgMDtcblx0XHRcdFx0QGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuXHRcdFx0XHRcdGNsZWFyOiBub25lO1xuXHRcdFx0XHRcdG1pbi1oZWlnaHQ6IDYwMHB4O1xuXHRcdFx0XHRcdGRpc3BsYXk6IHRhYmxlO1xuXHRcdFx0XHRcdHBhZGRpbmc6IGd1dHRlcig0KTtcblx0XHRcdFx0XHRAaW5jbHVkZSB3aXRoLWxheW91dCgkc3VzeS1jb2xsYXBzZSkge1xuXHRcdFx0XHRcdFx0QGluY2x1ZGUgc3Bhbig2KTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQuY29udGFpbmVyIHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdFx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Jl9fY29udGVudCB7XG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBzcGFuKDEwKTtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji0taW1hZ2Uge1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdGltZyB7XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYtLWN0YSB7XG5cdFx0XHRwYWRkaW5nOiAzLjVlbSAwO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHQuYnRuIHtcblx0XHRcdFx0Y29sb3I6IHBhbGV0dGUoYnJhbmQpO1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHBhbGV0dGUoYnJhbmQpO1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IGd1dHRlcig0KTtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogZ3V0dGVyKDQpO1xuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBwYWxldHRlKGJyYW5kKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0LnBhbmVsX19jb250ZW50IHtcblx0XHRcdFx0QGluY2x1ZGUgd2l0aC1sYXlvdXQoJHN1c3ktbW9iaWxlKSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgc3Bhbig0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRAaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgd2l0aC1sYXlvdXQoJHN1c3ktbW9iaWxlKSB7XG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBzcGFuKDQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0KSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgc3BhbigxMik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmX19jb250ZW50IHtcblx0XHRoNCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiBndXR0ZXIoKTtcblx0XHR9XG5cdFx0aDIge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdH1cblx0XHRwIHtcblx0XHRcdC8vIEBpbmNsdWRlIGZvbnQtc2l6ZSgxLjM1KTtcblx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8vIFJlY2VudCBwb3N0c1xuLnJlY2VudC1wb3N0cyB7XG5cdEBleHRlbmQgJWNsZWFyZml4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkc25vdztcblx0cGFkZGluZzogMTAwcHggMDtcblx0Jl9fcG9zdCB7XG5cdFx0QGluY2x1ZGUgc3Bhbig0KTtcblx0XHRhIHsgXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0fVxufVxuXG4vLyBTZWN0aW9uIGhlYWRpbmdzXG4uaGVhZGluZyB7XG5cdEBleHRlbmQgJWNsZWFyZml4LWFmdGVyO1xuXHRAZXh0ZW5kICVjbGVhcmZpeDtcblx0Jl9fY2FzZS1zdHVkaWVzIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBwYWxldHRlKHBhbmVscywgY3gpO1xuXHRcdHBhZGRpbmc6IDUwcHggMDtcblx0XHRoMiB7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHR9XG5cdH1cblx0aDIge1xuXHRcdG1hcmdpbjogMDtcblx0fVxufVxuXG4ucGFuZWwtd3JhcHBlciB7XG5cdC8vIHBhZGRpbmc6IGd1dHRlcig0KTtcblx0Y29sb3I6ICNmZmY7XG5cdCYtLWRhcmsge1xuXHRcdEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsLjUpO1xuXHRcdFx0cGFkZGluZzogZ3V0dGVyKDIpO1xuXHRcdH1cblx0fVxuXHQmLS1saWdodCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuNSk7XG5cdH1cbn1cblxuLy8gU2VydmljZXNcbi5wYWdlLXNlcnZpY2VzIHtcblx0LnBhbmVsIHtcblx0XHQmX19oZXJvIHtcblx0XHRcdEBpbmNsdWRlIHdpdGgtbGF5b3V0KCRzdXN5LW1vYmlsZSkge1xuXHRcdFx0XHRAaW5jbHVkZSBzcGFuKDQpO1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogZ3V0dGVyKDIpO1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogZ3V0dGVyKDMpO1xuXHRcdFx0fVxuXHRcdFx0QGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuXHRcdFx0XHRAaW5jbHVkZSB3aXRoLWxheW91dCgkc3VzeS1tb2JpbGUpIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBzcGFuKDQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0KSB7XG5cdFx0XHRcdEBpbmNsdWRlIHNwYW4oMTIpO1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogMDtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDA7XG5cdFx0XHR9XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLC40KTtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRib3R0b206IDA7XG5cdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0XHR6LWluZGV4OiAxO1xuXHRcdFx0fVxuXHRcdFx0aDMsXG5cdFx0XHRwIHtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0fVxuXHRcdFx0aDMge1xuXHRcdFx0XHRjb2xvcjogcGFsZXR0ZShicmFuZCk7XG5cdFx0XHR9XG5cdFx0XHRoMSB7XG5cdFx0XHRcdG1hcmdpbjogMTBweCAwO1xuXHRcdFx0fVxuXHRcdFx0LmNvbnRhaW5lciB7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0ei1pbmRleDogMjtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDBweDtcblx0XHRcdH1cblxuXHRcdFx0LmVudHJ5LWhlYWRlciB7XG5cdFx0XHRcdC5oaWdobGlnaHRzIHtcblx0XHRcdFx0XHRjb2xvcjogcGFsZXR0ZShicmFuZCk7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZm9udC1zaXplKDEpO1xuXHRcdFx0XHRcdHNwYW4ge1xuXHRcdFx0XHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRcdFx0XHRjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuNyk7XG5cdFx0XHRcdFx0XHRtYXJnaW46IDAgZ3V0dGVyKDI0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbi5zZXJ2aWNlcy1ib3gge1xuXHRhcnRpY2xlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdHBhZGRpbmc6IDIwcHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcblx0XHRcdGg1IHtcblx0XHRcdFx0bWFyZ2luOiBndXR0ZXIoKSAwO1xuXHRcdFx0XHRoZWlnaHQ6IDQ0cHg7XG5cdFx0XHR9XG5cdFx0XHRtaW4taGVpZ2h0OiAzMjBweDtcblx0XHR9XG5cdFx0cCB7XG5cdFx0XHRAaW5jbHVkZSBmb250LXNpemUoMS4xMjUpO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHR9XG5cdH1cblx0bWFyZ2luLWJvdHRvbTogMmVtO1xuXHRAaW5jbHVkZSBzcGFuKDEyKTtcblx0QGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuXHRcdEBpbmNsdWRlIHNwYW4oNik7XG5cdH1cbn1cblxuLy8gQm94IGdyaWRcbi5ib3gge1xuXHRAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0KSB7XG5cdFx0Ji0taGFsZiBcdHsgQGluY2x1ZGUgc3Bhbig2KTsgfVxuXHRcdCYtLXRoaXJkIFx0eyBAaW5jbHVkZSBzcGFuKDQpOyB9XG5cdFx0Ji0tZm91cnRoIFx0eyBAaW5jbHVkZSBzcGFuKDMpOyB9XG5cdH1cbn1cblxuXG4ucGFnZV9sYXlvdXRzIHtcblx0LnN0YW5kYXJkLXNlY3Rpb24ge1xuXHRcdEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcblx0XHRcdHBhZGRpbmc6IDAgMCAwIDA7XG5cdFx0fVxuXHR9XG5cdC5lbnRyeS1oZWFkZXIge1xuXHRcdEBpbmNsdWRlIHdpdGgtbGF5b3V0KCRzdXN5LW1vYmlsZSkge1xuXHRcdFx0QGluY2x1ZGUgc3Bhbig0KTtcblx0XHR9XG5cdFx0QGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCkge1xuXHRcdFx0QGluY2x1ZGUgc3BhbigxMik7XG5cdFx0fVxuXHR9XG5cdC5zZWN0aW9uLWNvbnRlbnQge1xuXHRcdEBpbmNsdWRlIHdpdGgtbGF5b3V0KCRzdXN5LW1vYmlsZSkge1xuXHRcdFx0QGluY2x1ZGUgc3Bhbig0KTtcblx0XHR9XG5cdFx0QGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCkge1xuXHRcdFx0QGluY2x1ZGUgc3Bhbig4KTtcblx0XHR9XG5cdH1cbn1cbi5zZWN0aW9uLWltYWdlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0LmltYWdlLXNlY3Rpb24ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG59XG4vKiBwYWdlIGxheW91dCBvcHRpb25zICovXG4ucGFnZV9sYXlvdXRzIHtcblx0LmNvbnRhaW5lciB7XG5cdFx0LnBhbmVsLXdyYXBwZXIge1xuXHRcdFx0QGluY2x1ZGUgY2xlYXJmaXg7XG5cdFx0XHRwYWRkaW5nOiBzcGFuKDEpIDA7XG5cdFx0fVxuXHR9XG59XG5cbi8qIHdobyB3ZSBhcmUgKi9cblxuQGluY2x1ZGUgbm90LWxhc3QtY2hpbGQoJy5mb3VuZGVycycpIHtcblx0bWFyZ2luLWJvdHRvbTogZ3V0dGVyKDIpO1xufVxuLmZvdW5kZXJzIHtcblx0Jl9faW1hZ2Uge1xuXHRcdEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcblx0XHRcdEBpbmNsdWRlIHNwYW4oMyk7XG5cdFx0fVxuXHR9XG5cdCZfX2NvbnRlbnQge1xuXHRcdGg0IHtcblx0XHRcdG1hcmdpbjogZ3V0dGVyKDYpIDAgZ3V0dGVyKCk7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcblx0XHRcdEBpbmNsdWRlIHNwYW4oOSk7XG5cdFx0XHRoNCB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLnBhZ2UtY29udGFpbmVyIHtcblx0YmFja2dyb3VuZDogI2ZmZjtcblx0d2lkdGg6IDEwMCU7XG59XG4ucGFnZS1jb250YWluZXItdG9wIHtcblx0bWFyZ2luLXRvcDogNmVtO1x0XG5cdFx0YmFja2dyb3VuZDogI2ZmZjtcblx0d2lkdGg6IDEwMCU7XG59XG4ucGFnZS1oZWFkZXIge1xuXHRoMS5lbnRyeS10aXRsZSB7XG5cdFx0Y29sb3I6ICNmZmY7XHRcblx0fVxuXHRwYWRkaW5nOjZlbSAwIDRlbSAwO1xufVxuLndwY2Y3LXN1Ym1pdCB7XG5cdCBAaW5jbHVkZSBidXR0b25pZnk7XG59XG5cbi5hcmNoaXZlLXRpdGxlIHtcblx0Y29sb3I6ICNmZmY7XHRcbn1cbi5vcGFjaXRhdGUge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRsZWZ0OiAwcHg7XG5cdHRvcDogMHB4O1xuXHRvcGFjaXR5OiAuODtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRiYWNrZ3JvdW5kOiAjMDAwO1x0XG59XG4uc2l0ZS1jb250ZW50IHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi8qIG1vYmlsZSBmaXhlcyAqL1xuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIE5vcm1hbGl6ZS5zY3NzIHNldHRpbmdzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBJbmNsdWRlcyBsZWdhY3kgYnJvd3NlciBzdXBwb3J0IElFNi83XG4gKlxuICogU2V0IHRvIGZhbHNlIGlmIHlvdSB3YW50IHRvIGRyb3Agc3VwcG9ydCBmb3IgSUU2IGFuZCBJRTdcbiAqL1xuXG4kbGVnYWN5X2Jyb3dzZXJfc3VwcG9ydDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8qIEJhc2VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsXG4gKiAgICB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb20uXG4gKiAzLiBDb3JyZWN0cyB0ZXh0IHJlc2l6aW5nIG9kZGx5IGluIElFIDYvNyB3aGVuIGJvZHkgYGZvbnQtc2l6ZWAgaXMgc2V0IHVzaW5nXG4gKiAgYGVtYCB1bml0cy5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIEBpZiAkbGVnYWN5X2Jyb3dzZXJfc3VwcG9ydCB7XG4gICAgKmZvbnQtc2l6ZTogMTAwJTsgLyogMyAqL1xuICB9XG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDYvNy84LzkgYW5kIEZpcmVmb3ggMy5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG4gIEBpZiAkbGVnYWN5X2Jyb3dzZXJfc3VwcG9ydCB7XG4gICAgKmRpc3BsYXk6IGlubGluZTtcbiAgICAqem9vbTogMTtcbiAgfVxufVxuXG4vKipcbiAqIFByZXZlbnRzIG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuICogYWN0aXZlL2hvdmVyIHN0YXRlLlxuICovXG5cbmEge1xuICAmOmFjdGl2ZSwgJjpob3ZlciB7XG4gICAgb3V0bGluZTogMDtcbiAgfTtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5AaWYgJGxlZ2FjeV9icm93c2VyX3N1cHBvcnQge1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDFlbSA0MHB4O1xuICB9XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuQGlmICRsZWdhY3lfYnJvd3Nlcl9zdXBwb3J0IHtcbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgbWFyZ2luOiAwLjgzZW0gMDtcbiAgfVxuXG4gIGgzIHtcbiAgICBmb250LXNpemU6IDEuMTdlbTtcbiAgICBtYXJnaW46IDFlbSAwO1xuICB9XG5cbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIG1hcmdpbjogMS4zM2VtIDA7XG4gIH1cblxuICBoNSB7XG4gICAgZm9udC1zaXplOiAwLjgzZW07XG4gICAgbWFyZ2luOiAxLjY3ZW0gMDtcbiAgfVxuXG4gIGg2IHtcbiAgICBmb250LXNpemU6IDAuNjdlbTtcbiAgICBtYXJnaW46IDIuMzNlbSAwO1xuICB9XG59XG5cbi8qKlxuICogQWRkcmVzc2VzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuQGlmICRsZWdhY3lfYnJvd3Nlcl9zdXBwb3J0IHtcblxuICAvKipcbiAgICogQWRkcmVzc2VzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIElFIDYvNy5cbiAgICovXG5cbiAgcCxcbiAgcHJlIHtcbiAgICAqbWFyZ2luOiAxZW0gMDtcbiAgfVxuXG4gIC8qXG4gICAqIEFkZHJlc3NlcyBDU1MgcXVvdGVzIG5vdCBzdXBwb3J0ZWQgaW4gSUUgNi83LlxuICAgKi9cblxuICBxIHtcbiAgICAqcXVvdGVzOiBub25lO1xuICB9XG5cbiAgLypcbiAgICogQWRkcmVzc2VzIGBxdW90ZXNgIHByb3BlcnR5IG5vdCBzdXBwb3J0ZWQgaW4gU2FmYXJpIDQuXG4gICAqL1xuXG4gIHE6YmVmb3JlLFxuICBxOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBjb250ZW50OiBub25lO1xuICB9XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuQGlmICRsZWdhY3lfYnJvd3Nlcl9zdXBwb3J0IHtcblxuICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICBMaXN0c1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qXG4gICAqIEFkZHJlc3NlcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBJRSA2LzcuXG4gICAqL1xuXG4gIGRsLFxuICBtZW51LFxuICBvbCxcbiAgdWwge1xuICAgICptYXJnaW46IDFlbSAwO1xuICB9XG5cbiAgZGQge1xuICAgICptYXJnaW46IDAgMCAwIDQwcHg7XG4gIH1cblxuICAvKlxuICAgKiBBZGRyZXNzZXMgcGFkZGluZ3Mgc2V0IGRpZmZlcmVudGx5IGluIElFIDYvNy5cbiAgICovXG5cbiAgbWVudSxcbiAgb2wsXG4gIHVsIHtcbiAgICAqcGFkZGluZzogMCAwIDAgNDBweDtcbiAgfVxuXG4gIC8qXG4gICAqIENvcnJlY3RzIGxpc3QgaW1hZ2VzIGhhbmRsZWQgaW5jb3JyZWN0bHkgaW4gSUUgNy5cbiAgICovXG5cbiAgbmF2IHVsLFxuICBuYXYgb2wge1xuICAgICpsaXN0LXN0eWxlOiBub25lO1xuICAgICpsaXN0LXN0eWxlLWltYWdlOiBub25lO1xuICB9XG5cbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqIDIuIEltcHJvdmVzIGltYWdlIHF1YWxpdHkgd2hlbiBzY2FsZWQgaW4gSUUgNy5cbiAqL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG4gIEBpZiAkbGVnYWN5X2Jyb3dzZXJfc3VwcG9ydCB7XG4gICAgKi1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7IC8qIDIgKi9cbiAgfVxufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICogQ29ycmVjdCBmb250IGZhbWlseSBzZXQgb2RkbHkgaW4gSUUgNiwgU2FmYXJpIDQvNSwgYW5kIENocm9tZS5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgQGlmICRsZWdhY3lfYnJvd3Nlcl9zdXBwb3J0IHtcbiAgICBfZm9udC1mYW1pbHk6ICdjb3VyaWVyIG5ldycsIG1vbm9zcGFjZTtcbiAgfVxuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqIDQuIEltcHJvdmVzIGFwcGVhcmFuY2UgYW5kIGNvbnNpc3RlbmN5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIG1hcmdpbjogMDsgLyogMyAqL1xuICBAaWYgJGxlZ2FjeV9icm93c2VyX3N1cHBvcnQge1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMyAqL1xuICAgICp2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvKiAzICovXG4gIH1cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKiA0LiBSZW1vdmVzIGlubmVyIHNwYWNpbmcgaW4gSUUgNyB3aXRob3V0IGFmZmVjdGluZyBub3JtYWwgdGV4dCBpbnB1dHMuXG4gKiAgS25vd24gaXNzdWU6IGlubmVyIHNwYWNpbmcgcmVtYWlucyBpbiBJRSA2LlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xuICBAaWYgJGxlZ2FjeV9icm93c2VyX3N1cHBvcnQge1xuICAgICpvdmVyZmxvdzogdmlzaWJsZTsgIC8qIDQgKi9cbiAgfVxufVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKiAgS25vd24gaXNzdWU6IGV4Y2VzcyBwYWRkaW5nIHJlbWFpbnMgaW4gSUUgNi5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbiAgQGlmICRsZWdhY3lfYnJvd3Nlcl9zdXBwb3J0IHtcbiAgICAqaGVpZ2h0OiAxM3B4OyAvKiAzICovXG4gICAgKndpZHRoOiAxM3B4OyAvKiAzICovXG4gIH1cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqIDMuIENvcnJlY3RzIHRleHQgbm90IHdyYXBwaW5nIGluIEZpcmVmb3ggMy5cbiAqIDQuIENvcnJlY3RzIGFsaWdubWVudCBkaXNwbGF5ZWQgb2RkbHkgaW4gSUUgNi83LlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG4gIEBpZiAkbGVnYWN5X2Jyb3dzZXJfc3VwcG9ydCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMyAqL1xuICAgICptYXJnaW4tbGVmdDogLTdweDsgLyogNCAqL1xuICB9XG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59IiwiQGltcG9ydCB1cmwoXCIvL2hlbGxvLm15Zm9udHMubmV0L2NvdW50LzMwNjg1M1wiKTtcblxuICBcbkBmb250LWZhY2Uge2ZvbnQtZmFtaWx5OiAnQnJhbmRvblRleHRXZWItQm9sZCc7c3JjOiB1cmwoJ2ZvbnRzLzMwNjg1M18wXzAuZW90Jyk7c3JjOiB1cmwoJ2ZvbnRzLzMwNjg1M18wXzAuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSx1cmwoJ2ZvbnRzLzMwNjg1M18wXzAud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksdXJsKCdmb250cy8zMDY4NTNfMF8wLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSx1cmwoJ2ZvbnRzLzMwNjg1M18wXzAudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO31cbiBcbiAgXG5AZm9udC1mYWNlIHtmb250LWZhbWlseTogJ0JyYW5kb25UZXh0V2ViLUxpZ2h0JztzcmM6IHVybCgnZm9udHMvMzA2ODUzXzFfMC5lb3QnKTtzcmM6IHVybCgnZm9udHMvMzA2ODUzXzFfMC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnZm9udHMvMzA2ODUzXzFfMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSx1cmwoJ2ZvbnRzLzMwNjg1M18xXzAud29mZicpIGZvcm1hdCgnd29mZicpLHVybCgnZm9udHMvMzA2ODUzXzFfMC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7fVxuIFxuICBcbkBmb250LWZhY2Uge2ZvbnQtZmFtaWx5OiAnQnJhbmRvblRleHRXZWItUmVndWxhcic7c3JjOiB1cmwoJ2ZvbnRzLzMwNjg1M18yXzAuZW90Jyk7c3JjOiB1cmwoJ2ZvbnRzLzMwNjg1M18yXzAuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSx1cmwoJ2ZvbnRzLzMwNjg1M18yXzAud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksdXJsKCdmb250cy8zMDY4NTNfMl8wLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSx1cmwoJ2ZvbnRzLzMwNjg1M18yXzAudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO31cbiBcbiAgXG5AZm9udC1mYWNlIHtmb250LWZhbWlseTogJ0JyYW5kb25UZXh0V2ViLU1lZGl1bSc7c3JjOiB1cmwoJ2ZvbnRzLzMwNjg1M18zXzAuZW90Jyk7c3JjOiB1cmwoJ2ZvbnRzLzMwNjg1M18zXzAuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSx1cmwoJ2ZvbnRzLzMwNjg1M18zXzAud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksdXJsKCdmb250cy8zMDY4NTNfM18wLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSx1cmwoJ2ZvbnRzLzMwNjg1M18zXzAudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO31cblxuJGZvbnRfX21haW46IFwiQnJhbmRvblRleHRXZWItTGlnaHRcIiwgc2Fucy1zZXJpZjtcbiRmb250X19jb2RlOiBNb25hY28sIENvbnNvbGFzLCBcIkFuZGFsZSBNb25vXCIsIFwiRGVqYVZ1IFNhbnMgTW9ub1wiLCBtb25vc3BhY2U7XG4kZm9udF9fcHJlOiBcIkNvdXJpZXIgMTAgUGl0Y2hcIiwgQ291cmllciwgbW9ub3NwYWNlO1xuJGZvbnRfX2xpbmUtaGVpZ2h0LWJvZHk6IDEuNTtcbiRmb250X19saW5lLWhlaWdodC1wcmU6IDEuNjtcblxuJGZvbnQtc2l6ZS1oMTogNTBweDtcbiRmb250LXNpemUtaDI6IDQwcHg7XG4kZm9udC1zaXplLWgzOiAzMHB4O1xuJGZvbnQtc2l6ZS1oNDogMjBweDsiLCIvLyBGbGV4Ym94IE1peGluc1xuLy8gaHR0cDovL3BoaWxpcHdhbHRvbi5naXRodWIuaW8vc29sdmVkLWJ5LWZsZXhib3gvXG4vLyBodHRwczovL2dpdGh1Yi5jb20vcGhpbGlwd2FsdG9uL3NvbHZlZC1ieS1mbGV4Ym94XG4vLyBcbi8vIENvcHlyaWdodCAoYykgMjAxMyBCcmlhbiBGcmFuY29cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG9cbi8vIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0b1xuLy8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULlxuLy8gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTllcbi8vIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsXG4vLyBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRVxuLy8gU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG4vL1xuLy8gVGhpcyBpcyBhIHNldCBvZiBtaXhpbnMgZm9yIHRob3NlIHdobyB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggZmxleGJveFxuLy8gdXNpbmcgdGhlIG5hdGl2ZSBzdXBwb3J0IG9mIGN1cnJlbnQgYnJvd3NlcnMuIEZvciBmdWxsIHN1cHBvcnQgdGFibGVcbi8vIGNoZWNrOiBodHRwOi8vY2FuaXVzZS5jb20vZmxleGJveFxuLy9cbi8vIEJhc2ljYWxseSB0aGlzIHdpbGwgdXNlOlxuLy9cbi8vICogRmFsbGJhY2ssIG9sZCBzeW50YXggKElFMTAsIG1vYmlsZSB3ZWJraXQgYnJvd3NlcnMgLSBubyB3cmFwcGluZylcbi8vICogRmluYWwgc3RhbmRhcmRzIHN5bnRheCAoRkYsIFNhZmFyaSwgQ2hyb21lLCBJRTExLCBPcGVyYSlcbi8vXG4vLyBUaGlzIHdhcyBpbnNwaXJlZCBieTpcbi8vIFxuLy8gKiBodHRwOi8vZGV2Lm9wZXJhLmNvbS9hcnRpY2xlcy92aWV3L2FkdmFuY2VkLWNyb3NzLWJyb3dzZXItZmxleGJveC9cbi8vIFxuLy8gV2l0aCBoZWxwIGZyb206XG4vLyBcbi8vICogaHR0cDovL3czLm9yZy90ci9jc3MzLWZsZXhib3gvXG4vLyAqIGh0dHA6Ly90aGUtZWNob3BsZXgubmV0L2ZsZXh5Ym94ZXMvXG4vLyAqIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9pZS9oaDc3MjA2OSh2PXZzLjg1KS5hc3B4XG4vLyAqIGh0dHA6Ly9jc3MtdHJpY2tzLmNvbS91c2luZy1mbGV4Ym94L1xuLy8gKiBodHRwOi8vZGV2Lm9wZXJhLmNvbS9hcnRpY2xlcy92aWV3L2FkdmFuY2VkLWNyb3NzLWJyb3dzZXItZmxleGJveC9cbi8vICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tdXMvZG9jcy93ZWIvZ3VpZGUvY3NzL2ZsZXhpYmxlX2JveGVzXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IENvbnRhaW5lcnNcbi8vXG4vLyBUaGUgJ2ZsZXgnIHZhbHVlIGNhdXNlcyBhbiBlbGVtZW50IHRvIGdlbmVyYXRlIGEgYmxvY2stbGV2ZWwgZmxleFxuLy8gY29udGFpbmVyIGJveC5cbi8vXG4vLyBUaGUgJ2lubGluZS1mbGV4JyB2YWx1ZSBjYXVzZXMgYW4gZWxlbWVudCB0byBnZW5lcmF0ZSBhIGlubGluZS1sZXZlbFxuLy8gZmxleCBjb250YWluZXIgYm94LiBcbi8vXG4vLyBkaXNwbGF5OiBmbGV4IHwgaW5saW5lLWZsZXhcbi8vXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jZmxleC1jb250YWluZXJzXG4vL1xuLy8gKFBsYWNlaG9sZGVyIHNlbGVjdG9ycyBmb3IgZWFjaCB0eXBlLCBmb3IgdGhvc2Ugd2hvIHJhdGhlciBAZXh0ZW5kKVxuXG5AbWl4aW4gZmxleGJveCB7XG5cdGRpc3BsYXk6IC13ZWJraXQtYm94O1xuXHRkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG5cdGRpc3BsYXk6IC1tb3otZmxleDtcblx0ZGlzcGxheTogLW1zLWZsZXhib3g7XG5cdGRpc3BsYXk6IGZsZXg7XG59XG5cbiVmbGV4Ym94IHsgQGluY2x1ZGUgZmxleGJveDsgfVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIGlubGluZS1mbGV4IHtcblx0ZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xuXHRkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuXHRkaXNwbGF5OiAtbW96LWlubGluZS1mbGV4O1xuXHRkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG5cdGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuXG4laW5saW5lLWZsZXggeyBAaW5jbHVkZSBpbmxpbmUtZmxleDsgfVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRmxleGJveCBEaXJlY3Rpb25cbi8vXG4vLyBUaGUgJ2ZsZXgtZGlyZWN0aW9uJyBwcm9wZXJ0eSBzcGVjaWZpZXMgaG93IGZsZXggaXRlbXMgYXJlIHBsYWNlZCBpblxuLy8gdGhlIGZsZXggY29udGFpbmVyLCBieSBzZXR0aW5nIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGZsZXggY29udGFpbmVyJ3Ncbi8vIG1haW4gYXhpcy4gVGhpcyBkZXRlcm1pbmVzIHRoZSBkaXJlY3Rpb24gdGhhdCBmbGV4IGl0ZW1zIGFyZSBsYWlkIG91dCBpbi4gXG4vL1xuLy8gVmFsdWVzOiByb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlXG4vLyBEZWZhdWx0OiByb3dcbi8vXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jZmxleC1kaXJlY3Rpb24tcHJvcGVydHlcblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XG5cdEBpZiAkdmFsdWUgPT0gcm93LXJldmVyc2Uge1xuXHRcdC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcblx0XHQtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XG5cdH0gQGVsc2UgaWYgJHZhbHVlID09IGNvbHVtbiB7XG5cdFx0LXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG5cdFx0LXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcblx0fSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uLXJldmVyc2Uge1xuXHRcdC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcblx0XHQtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuXHR9IEBlbHNlIHtcblx0XHQtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcblx0XHQtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XG5cdH1cblx0LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuXHQtbW96LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG5cdC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuXHRmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuXHQvLyBTaG9ydGVyIHZlcnNpb246XG5cdEBtaXhpbiBmbGV4LWRpcigkYXJncy4uLikgeyBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkYXJncy4uLik7IH1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZsZXhib3ggV3JhcFxuLy9cbi8vIFRoZSAnZmxleC13cmFwJyBwcm9wZXJ0eSBjb250cm9scyB3aGV0aGVyIHRoZSBmbGV4IGNvbnRhaW5lciBpcyBzaW5nbGUtbGluZVxuLy8gb3IgbXVsdGktbGluZSwgYW5kIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGNyb3NzLWF4aXMsIHdoaWNoIGRldGVybWluZXNcbi8vIHRoZSBkaXJlY3Rpb24gbmV3IGxpbmVzIGFyZSBzdGFja2VkIGluLiBcbi8vXG4vLyBWYWx1ZXM6IG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2Vcbi8vIERlZmF1bHQ6IG5vd3JhcFxuLy9cbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNmbGV4LXdyYXAtcHJvcGVydHlcblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xuXHQvLyBObyBXZWJraXQgQm94IGZhbGxiYWNrLlxuXHQtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuXHQtbW96LWZsZXgtd3JhcDogJHZhbHVlO1xuXHRAaWYgJHZhbHVlID09IG5vd3JhcCB7XG5cdFx0LW1zLWZsZXgtd3JhcDogbm9uZTtcblx0fSBAZWxzZSB7IFxuXHRcdC1tcy1mbGV4LXdyYXA6ICR2YWx1ZTsgXG5cdH1cblx0ZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IEZsb3cgKHNob3J0aGFuZClcbi8vXG4vLyBUaGUgJ2ZsZXgtZmxvdycgcHJvcGVydHkgaXMgYSBzaG9ydGhhbmQgZm9yIHNldHRpbmcgdGhlICdmbGV4LWRpcmVjdGlvbidcbi8vIGFuZCAnZmxleC13cmFwJyBwcm9wZXJ0aWVzLCB3aGljaCB0b2dldGhlciBkZWZpbmUgdGhlIGZsZXggY29udGFpbmVyJ3Ncbi8vIG1haW4gYW5kIGNyb3NzIGF4ZXMuXG4vL1xuLy8gVmFsdWVzOiA8ZmxleC1kaXJlY3Rpb24+IHwgPGZsZXgtd3JhcD4gXG4vLyBEZWZhdWx0OiByb3cgbm93cmFwXG4vL1xuLy8gaHR0cDovL3czLm9yZy90ci9jc3MzLWZsZXhib3gvI2ZsZXgtZmxvdy1wcm9wZXJ0eVxuXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZXM6IChyb3cgbm93cmFwKSkge1xuXHQvLyBObyBXZWJraXQgQm94IGZhbGxiYWNrLlxuXHQtd2Via2l0LWZsZXgtZmxvdzogJHZhbHVlcztcblx0LW1vei1mbGV4LWZsb3c6ICR2YWx1ZXM7XG5cdC1tcy1mbGV4LWZsb3c6ICR2YWx1ZXM7XG5cdGZsZXgtZmxvdzogJHZhbHVlcztcbn1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZsZXhib3ggT3JkZXJcbi8vXG4vLyBUaGUgJ29yZGVyJyBwcm9wZXJ0eSBjb250cm9scyB0aGUgb3JkZXIgaW4gd2hpY2ggZmxleCBpdGVtcyBhcHBlYXIgd2l0aGluXG4vLyB0aGVpciBmbGV4IGNvbnRhaW5lciwgYnkgYXNzaWduaW5nIHRoZW0gdG8gb3JkaW5hbCBncm91cHMuXG4vL1xuLy8gRGVmYXVsdDogMFxuLy9cbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNvcmRlci1wcm9wZXJ0eVxuXG5AbWl4aW4gb3JkZXIoJGludDogMCkge1xuXHQtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAkaW50ICsgMTtcblx0LXdlYmtpdC1vcmRlcjogJGludDtcblx0LW1vei1vcmRlcjogJGludDtcblx0LW1zLWZsZXgtb3JkZXI6ICRpbnQ7XG5cdG9yZGVyOiAkaW50O1xufVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRmxleGJveCBHcm93XG4vL1xuLy8gVGhlICdmbGV4LWdyb3cnIHByb3BlcnR5IHNldHMgdGhlIGZsZXggZ3JvdyBmYWN0b3IuIE5lZ2F0aXZlIG51bWJlcnNcbi8vIGFyZSBpbnZhbGlkLlxuLy9cbi8vIERlZmF1bHQ6IDBcbi8vXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jZmxleC1ncm93LXByb3BlcnR5XG5cbkBtaXhpbiBmbGV4LWdyb3coJGludDogMCkge1xuXHQtd2Via2l0LWJveC1mbGV4OiAkaW50O1xuXHQtd2Via2l0LWZsZXgtZ3JvdzogJGludDtcblx0LW1vei1mbGV4LWdyb3c6ICRpbnQ7XG5cdC1tcy1mbGV4LXBvc2l0aXZlOiAkaW50O1xuXHRmbGV4LWdyb3c6ICRpbnQ7XG59XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IFNocmlua1xuLy9cbi8vIFRoZSAnZmxleC1zaHJpbmsnIHByb3BlcnR5IHNldHMgdGhlIGZsZXggc2hyaW5rIGZhY3Rvci4gTmVnYXRpdmUgbnVtYmVyc1xuLy8gYXJlIGludmFsaWQuXG4vL1xuLy8gRGVmYXVsdDogMVxuLy9cbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNmbGV4LXNocmluay1wcm9wZXJ0eVxuXG5AbWl4aW4gZmxleC1zaHJpbmsoJGludDogMSkge1xuXHQtd2Via2l0LWZsZXgtc2hyaW5rOiAkaW50O1xuXHQtbW96LWZsZXgtc2hyaW5rOiAkaW50O1xuXHQtbXMtZmxleC1uZWdhdGl2ZTogJGludDtcblx0ZmxleC1zaHJpbms6ICRpbnQ7XG59XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IEJhc2lzXG4vL1xuLy8gVGhlICdmbGV4LWJhc2lzJyBwcm9wZXJ0eSBzZXRzIHRoZSBmbGV4IGJhc2lzLiBOZWdhdGl2ZSBsZW5ndGhzIGFyZSBpbnZhbGlkLiBcbi8vXG4vLyBWYWx1ZXM6IExpa2UgXCJ3aWR0aFwiIFxuLy8gRGVmYXVsdDogYXV0b1xuLy9cbi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtZmxleGJveC8jZmxleC1iYXNpcy1wcm9wZXJ0eVxuXG5AbWl4aW4gZmxleC1iYXNpcygkdmFsdWU6IGF1dG8pIHtcblx0LXdlYmtpdC1mbGV4LWJhc2lzOiAkdmFsdWU7XG5cdC1tb3otZmxleC1iYXNpczogJHZhbHVlO1xuXHQtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJHZhbHVlO1xuXHRmbGV4LWJhc2lzOiAkdmFsdWU7XG59XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IFwiRmxleFwiIChzaG9ydGhhbmQpXG4vL1xuLy8gVGhlICdmbGV4JyBwcm9wZXJ0eSBzcGVjaWZpZXMgdGhlIGNvbXBvbmVudHMgb2YgYSBmbGV4aWJsZSBsZW5ndGg6IHRoZVxuLy8gZmxleCBncm93IGZhY3RvciBhbmQgZmxleCBzaHJpbmsgZmFjdG9yLCBhbmQgdGhlIGZsZXggYmFzaXMuIFdoZW4gYW5cbi8vIGVsZW1lbnQgaXMgYSBmbGV4IGl0ZW0sICdmbGV4JyBpcyBjb25zdWx0ZWQgaW5zdGVhZCBvZiB0aGUgbWFpbiBzaXplXG4vLyBwcm9wZXJ0eSB0byBkZXRlcm1pbmUgdGhlIG1haW4gc2l6ZSBvZiB0aGUgZWxlbWVudC4gSWYgYW4gZWxlbWVudCBpc1xuLy8gbm90IGEgZmxleCBpdGVtLCAnZmxleCcgaGFzIG5vIGVmZmVjdC5cbi8vXG4vLyBWYWx1ZXM6IG5vbmUgfCA8ZmxleC1ncm93PiA8ZmxleC1zaHJpbms+IHx8IDxmbGV4LWJhc2lzPlxuLy8gRGVmYXVsdDogU2VlIGluZGl2aWR1YWwgcHJvcGVydGllcyAoMSAxIDApLlxuLy9cbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNmbGV4LXByb3BlcnR5XG5cbkBtaXhpbiBmbGV4KCRmZzogMSwgJGZzOiBudWxsLCAkZmI6IG51bGwpIHtcbiAgICBcblx0Ly8gU2V0IGEgdmFyaWFibGUgdG8gYmUgdXNlZCBieSBib3gtZmxleCBwcm9wZXJ0aWVzXG5cdCRmZy1ib3hmbGV4OiAkZmc7XG5cblx0Ly8gQm94LUZsZXggb25seSBzdXBwb3J0cyBhIGZsZXgtZ3JvdyB2YWx1ZSBzbyBsZXQncyBncmFiIHRoZVxuXHQvLyBmaXJzdCBpdGVtIGluIHRoZSBsaXN0IGFuZCBqdXN0IHJldHVybiB0aGF0LlxuXHRAaWYgdHlwZS1vZigkZmcpID09ICdsaXN0JyB7XG5cdFx0JGZnLWJveGZsZXg6IG50aCgkZmcsIDEpO1xuXHR9XG5cblx0LXdlYmtpdC1ib3gtZmxleDogJGZnLWJveGZsZXg7XG5cdC13ZWJraXQtZmxleDogJGZnICRmcyAkZmI7XG5cdC1tb3otYm94LWZsZXg6ICRmZy1ib3hmbGV4O1xuXHQtbW96LWZsZXg6ICRmZyAkZnMgJGZiO1xuXHQtbXMtZmxleDogJGZnICRmcyAkZmI7XG5cdGZsZXg6ICRmZyAkZnMgJGZiO1xufVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRmxleGJveCBKdXN0aWZ5IENvbnRlbnRcbi8vXG4vLyBUaGUgJ2p1c3RpZnktY29udGVudCcgcHJvcGVydHkgYWxpZ25zIGZsZXggaXRlbXMgYWxvbmcgdGhlIG1haW4gYXhpc1xuLy8gb2YgdGhlIGN1cnJlbnQgbGluZSBvZiB0aGUgZmxleCBjb250YWluZXIuIFRoaXMgaXMgZG9uZSBhZnRlciBhbnkgZmxleGlibGVcbi8vIGxlbmd0aHMgYW5kIGFueSBhdXRvIG1hcmdpbnMgaGF2ZSBiZWVuIHJlc29sdmVkLiBUeXBpY2FsbHkgaXQgaGVscHMgZGlzdHJpYnV0ZVxuLy8gZXh0cmEgZnJlZSBzcGFjZSBsZWZ0b3ZlciB3aGVuIGVpdGhlciBhbGwgdGhlIGZsZXggaXRlbXMgb24gYSBsaW5lIGFyZVxuLy8gaW5mbGV4aWJsZSwgb3IgYXJlIGZsZXhpYmxlIGJ1dCBoYXZlIHJlYWNoZWQgdGhlaXIgbWF4aW11bSBzaXplLiBJdCBhbHNvXG4vLyBleGVydHMgc29tZSBjb250cm9sIG92ZXIgdGhlIGFsaWdubWVudCBvZiBpdGVtcyB3aGVuIHRoZXkgb3ZlcmZsb3cgdGhlIGxpbmUuXG4vL1xuLy8gTm90ZTogJ3NwYWNlLSonIHZhbHVlcyBub3Qgc3VwcG9ydGVkIGluIG9sZGVyIHN5bnRheGVzLlxuLy9cbi8vIFZhbHVlczogZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZFxuLy8gRGVmYXVsdDogZmxleC1zdGFydFxuLy9cbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNqdXN0aWZ5LWNvbnRlbnQtcHJvcGVydHlcblxuQG1peGluIGp1c3RpZnktY29udGVudCgkdmFsdWU6IGZsZXgtc3RhcnQpIHtcblx0QGlmICR2YWx1ZSA9PSBmbGV4LXN0YXJ0IHtcblx0XHQtd2Via2l0LWJveC1wYWNrOiBzdGFydDtcblx0XHQtbXMtZmxleC1wYWNrOiBzdGFydDtcblx0fSBAZWxzZSBpZiAkdmFsdWUgPT0gZmxleC1lbmQge1xuXHRcdC13ZWJraXQtYm94LXBhY2s6IGVuZDtcblx0XHQtbXMtZmxleC1wYWNrOiBlbmQ7XG5cdH0gQGVsc2UgaWYgJHZhbHVlID09IHNwYWNlLWJldHdlZW4ge1xuXHRcdC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7XG5cdFx0LW1zLWZsZXgtcGFjazoganVzdGlmeTtcblx0fSBAZWxzZSBpZiAkdmFsdWUgPT0gc3BhY2UtYXJvdW5kIHtcblx0XHQtbXMtZmxleC1wYWNrOiBkaXN0cmlidXRlO1x0XHRcblx0fSBAZWxzZSB7XG5cdFx0LXdlYmtpdC1ib3gtcGFjazogJHZhbHVlO1xuXHRcdC1tcy1mbGV4LXBhY2s6ICR2YWx1ZTtcblx0fVxuXHQtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuXHQtbW96LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblx0Ly8gU2hvcnRlciB2ZXJzaW9uOlxuXHRAbWl4aW4gZmxleC1qdXN0KCRhcmdzLi4uKSB7IEBpbmNsdWRlIGp1c3RpZnktY29udGVudCgkYXJncy4uLik7IH1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZsZXhib3ggQWxpZ24gSXRlbXNcbi8vXG4vLyBGbGV4IGl0ZW1zIGNhbiBiZSBhbGlnbmVkIGluIHRoZSBjcm9zcyBheGlzIG9mIHRoZSBjdXJyZW50IGxpbmUgb2YgdGhlXG4vLyBmbGV4IGNvbnRhaW5lciwgc2ltaWxhciB0byAnanVzdGlmeS1jb250ZW50JyBidXQgaW4gdGhlIHBlcnBlbmRpY3VsYXJcbi8vIGRpcmVjdGlvbi4gJ2FsaWduLWl0ZW1zJyBzZXRzIHRoZSBkZWZhdWx0IGFsaWdubWVudCBmb3IgYWxsIG9mIHRoZSBmbGV4XG4vLyBjb250YWluZXIncyBpdGVtcywgaW5jbHVkaW5nIGFub255bW91cyBmbGV4IGl0ZW1zLiAnYWxpZ24tc2VsZicgYWxsb3dzXG4vLyB0aGlzIGRlZmF1bHQgYWxpZ25tZW50IHRvIGJlIG92ZXJyaWRkZW4gZm9yIGluZGl2aWR1YWwgZmxleCBpdGVtcy4gKEZvclxuLy8gYW5vbnltb3VzIGZsZXggaXRlbXMsICdhbGlnbi1zZWxmJyBhbHdheXMgbWF0Y2hlcyB0aGUgdmFsdWUgb2YgJ2FsaWduLWl0ZW1zJ1xuLy8gb24gdGhlaXIgYXNzb2NpYXRlZCBmbGV4IGNvbnRhaW5lci4pIFxuLy9cbi8vIFZhbHVlczogZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoXG4vLyBEZWZhdWx0OiBzdHJldGNoXG4vL1xuLy8gaHR0cDovL3czLm9yZy90ci9jc3MzLWZsZXhib3gvI2FsaWduLWl0ZW1zLXByb3BlcnR5XG5cbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcblx0QGlmICR2YWx1ZSA9PSBmbGV4LXN0YXJ0IHtcblx0XHQtd2Via2l0LWJveC1hbGlnbjogc3RhcnQ7XG5cdFx0LW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xuXHR9IEBlbHNlIGlmICR2YWx1ZSA9PSBmbGV4LWVuZCB7XG5cdFx0LXdlYmtpdC1ib3gtYWxpZ246IGVuZDtcblx0XHQtbXMtZmxleC1hbGlnbjogZW5kO1xuXHR9IEBlbHNlIHtcblx0XHQtd2Via2l0LWJveC1hbGlnbjogJHZhbHVlO1xuXHRcdC1tcy1mbGV4LWFsaWduOiAkdmFsdWU7XG5cdH1cblx0LXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuXHQtbW96LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG5cdGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IEFsaWduIFNlbGZcbi8vXG4vLyBWYWx1ZXM6IGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2hcbi8vIERlZmF1bHQ6IGF1dG9cblxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XG5cdC8vIE5vIFdlYmtpdCBCb3ggRmFsbGJhY2suXG5cdC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuXHQtbW96LWFsaWduLXNlbGY6ICR2YWx1ZTtcblx0QGlmICR2YWx1ZSA9PSBmbGV4LXN0YXJ0IHtcblx0XHQtbXMtZmxleC1pdGVtLWFsaWduOiBzdGFydDtcblx0fSBAZWxzZSBpZiAkdmFsdWUgPT0gZmxleC1lbmQge1xuXHRcdC1tcy1mbGV4LWl0ZW0tYWxpZ246IGVuZDtcblx0fSBAZWxzZSB7XG5cdFx0LW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlO1xuXHR9XG5cdGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZsZXhib3ggQWxpZ24gQ29udGVudFxuLy9cbi8vIFRoZSAnYWxpZ24tY29udGVudCcgcHJvcGVydHkgYWxpZ25zIGEgZmxleCBjb250YWluZXIncyBsaW5lcyB3aXRoaW4gdGhlXG4vLyBmbGV4IGNvbnRhaW5lciB3aGVuIHRoZXJlIGlzIGV4dHJhIHNwYWNlIGluIHRoZSBjcm9zcy1heGlzLCBzaW1pbGFyIHRvXG4vLyBob3cgJ2p1c3RpZnktY29udGVudCcgYWxpZ25zIGluZGl2aWR1YWwgaXRlbXMgd2l0aGluIHRoZSBtYWluLWF4aXMuIE5vdGUsXG4vLyB0aGlzIHByb3BlcnR5IGhhcyBubyBlZmZlY3Qgd2hlbiB0aGUgZmxleGJveCBoYXMgb25seSBhIHNpbmdsZSBsaW5lLlxuLy9cbi8vIFZhbHVlczogZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2hcbi8vIERlZmF1bHQ6IHN0cmV0Y2hcbi8vXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jYWxpZ24tY29udGVudC1wcm9wZXJ0eVxuXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcblx0Ly8gTm8gV2Via2l0IEJveCBGYWxsYmFjay5cblx0LXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG5cdC1tb3otYWxpZ24tY29udGVudDogJHZhbHVlO1xuXHRAaWYgJHZhbHVlID09IGZsZXgtc3RhcnQge1xuXHRcdC1tcy1mbGV4LWxpbmUtcGFjazogc3RhcnQ7XG5cdH0gQGVsc2UgaWYgJHZhbHVlID09IGZsZXgtZW5kIHtcblx0XHQtbXMtZmxleC1saW5lLXBhY2s6IGVuZDtcblx0fSBAZWxzZSB7XG5cdFx0LW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWU7XG5cdH1cblx0YWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vKiFcbkFuaW1hdGUuY3NzIC0gaHR0cDovL2RhbmVkZW4ubWUvYW5pbWF0ZVxuTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIC0gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuXG5Db3B5cmlnaHQgKGMpIDIwMTUgRGFuaWVsIEVkZW5cbiovXG5cbi5hbmltYXRlZCB7XG5AaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xufVxufVxuXG4uYW5pbWF0ZWQuaW5maW5pdGUge1xuICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbn1cblxuLmFuaW1hdGVkLmhpbmdlIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDJzO1xuICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xufVxuXG4uYW5pbWF0ZWQuYm91bmNlSW4sXG4uYW5pbWF0ZWQuYm91bmNlT3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IC43NXM7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjc1cztcbn1cblxuLmFuaW1hdGVkLmZsaXBPdXRYLFxuLmFuaW1hdGVkLmZsaXBPdXRZIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IC43NXM7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjc1cztcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZSB7XG4gIGZyb20sIDIwJSwgNTMlLCA4MCUsIDEwMCUge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gIH1cblxuICA0MCUsIDQzJSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMHB4LCAwKTtcbiAgfVxuXG4gIDcwJSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xNXB4LCAwKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsLTRweCwwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsLTRweCwwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZSB7XG4gIGZyb20sIDIwJSwgNTMlLCA4MCUsIDEwMCUge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gIH1cblxuICA0MCUsIDQzJSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMHB4LCAwKTtcbiAgfVxuXG4gIDcwJSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xNXB4LCAwKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsLTRweCwwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsLTRweCwwKTtcbiAgfVxufVxuXG4uYm91bmNlIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmbGFzaCB7XG4gIGZyb20sIDUwJSwgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDI1JSwgNzUlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxhc2gge1xuICBmcm9tLCA1MCUsIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAyNSUsIDc1JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4uZmxhc2gge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGFzaDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsYXNoO1xufVxuXG4vKiBvcmlnaW5hbGx5IGF1dGhvcmVkIGJ5IE5pY2sgUGV0dGl0IC0gaHR0cHM6Ly9naXRodWIuY29tL25pY2twZXR0aXQvZ2xpZGUgKi9cblxuQC13ZWJraXQta2V5ZnJhbWVzIHB1bHNlIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG5cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAxLjA1LCAxLjA1KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgMS4wNSwgMS4wNSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBwdWxzZSB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgMS4wNSwgMS4wNSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIDEuMDUsIDEuMDUpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG5cbi5wdWxzZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHB1bHNlO1xuICBhbmltYXRpb24tbmFtZTogcHVsc2U7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBydWJiZXJCYW5kIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG5cbiAgMzAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjI1LCAwLjc1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4yNSwgMC43NSwgMSk7XG4gIH1cblxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuNzUsIDEuMjUsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjc1LCAxLjI1LCAxKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xNSwgMC44NSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMTUsIDAuODUsIDEpO1xuICB9XG5cbiAgNjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguOTUsIDEuMDUsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOTUsIDEuMDUsIDEpO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAuOTUsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAuOTUsIDEpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcnViYmVyQmFuZCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4yNSwgMC43NSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMjUsIDAuNzUsIDEpO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjc1LCAxLjI1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC43NSwgMS4yNSwgMSk7XG4gIH1cblxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMTUsIDAuODUsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjE1LCAwLjg1LCAxKTtcbiAgfVxuXG4gIDY1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjk1LCAxLjA1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjk1LCAxLjA1LCAxKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgLjk1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgLjk1LCAxKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxufVxuXG4ucnViYmVyQmFuZCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJ1YmJlckJhbmQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBydWJiZXJCYW5kO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2hha2Uge1xuICBmcm9tLCAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIDEwJSwgMzAlLCA1MCUsIDcwJSwgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICB9XG5cbiAgMjAlLCA0MCUsIDYwJSwgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNoYWtlIHtcbiAgZnJvbSwgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAxMCUsIDMwJSwgNTAlLCA3MCUsIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgfVxuXG4gIDIwJSwgNDAlLCA2MCUsIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gIH1cbn1cblxuLnNoYWtlIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2hha2U7XG4gIGFuaW1hdGlvbi1uYW1lOiBzaGFrZTtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHN3aW5nIHtcbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMTVkZWcpO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTEwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0xMGRlZyk7XG4gIH1cblxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDVkZWcpO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTVkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzd2luZyB7XG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDE1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDE1ZGVnKTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0xMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMTBkZWcpO1xuICB9XG5cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA1ZGVnKTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xuICB9XG59XG5cbi5zd2luZyB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc3dpbmc7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZztcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHRhZGEge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cblxuICAxMCUsIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KSByb3RhdGUzZCgwLCAwLCAxLCAtM2RlZyk7XG4gIH1cblxuICAzMCUsIDUwJSwgNzAlLCA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKSByb3RhdGUzZCgwLCAwLCAxLCAzZGVnKTtcbiAgfVxuXG4gIDQwJSwgNjAlLCA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgdGFkYSB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxuXG4gIDEwJSwgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KSByb3RhdGUzZCgwLCAwLCAxLCAtM2RlZyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgfVxuXG4gIDMwJSwgNTAlLCA3MCUsIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSkgcm90YXRlM2QoMCwgMCwgMSwgM2RlZyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICB9XG5cbiAgNDAlLCA2MCUsIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKSByb3RhdGUzZCgwLCAwLCAxLCAtM2RlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuLnRhZGEge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB0YWRhO1xuICBhbmltYXRpb24tbmFtZTogdGFkYTtcbn1cblxuLyogb3JpZ2luYWxseSBhdXRob3JlZCBieSBOaWNrIFBldHRpdCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrcGV0dGl0L2dsaWRlICovXG5cbkAtd2Via2l0LWtleWZyYW1lcyB3b2JibGUge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAxNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtNWRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtNWRlZyk7XG4gIH1cblxuICAzMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAzZGVnKTtcbiAgfVxuXG4gIDQ1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMmRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDJkZWcpO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMWRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHdvYmJsZSB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIDE1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgM2RlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICB9XG5cbiAgNDUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICB9XG5cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAyZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMmRlZyk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTFkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi53b2JibGUge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB3b2JibGU7XG4gIGFuaW1hdGlvbi1uYW1lOiB3b2JibGU7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBqZWxsbyB7XG4gIGZyb20sIDExLjElLCAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAyMi4yJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC0xMi41ZGVnKSBza2V3WSgtMTIuNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtMTIuNWRlZykgc2tld1koLTEyLjVkZWcpO1xuICB9XG5cbiAgMzMuMyUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCg2LjI1ZGVnKSBza2V3WSg2LjI1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDYuMjVkZWcpIHNrZXdZKDYuMjVkZWcpO1xuICB9XG5cbiAgNDQuNCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMy4xMjVkZWcpIHNrZXdZKC0zLjEyNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtMy4xMjVkZWcpIHNrZXdZKC0zLjEyNWRlZyk7XG4gIH1cblxuICA1NS41JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDEuNTYyNWRlZykgc2tld1koMS41NjI1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDEuNTYyNWRlZykgc2tld1koMS41NjI1ZGVnKTtcbiAgfVxuXG4gIDY2LjYlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTAuNzgxMjVkZWcpIHNrZXdZKC0wLjc4MTI1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKC0wLjc4MTI1ZGVnKSBza2V3WSgtMC43ODEyNWRlZyk7XG4gIH1cblxuICA3Ny43JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDAuMzkwNjI1ZGVnKSBza2V3WSgwLjM5MDYyNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgwLjM5MDYyNWRlZykgc2tld1koMC4zOTA2MjVkZWcpO1xuICB9XG5cbiAgODguOCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMC4xOTUzMTI1ZGVnKSBza2V3WSgtMC4xOTUzMTI1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKC0wLjE5NTMxMjVkZWcpIHNrZXdZKC0wLjE5NTMxMjVkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgamVsbG8ge1xuICBmcm9tLCAxMS4xJSwgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgMjIuMiUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMTIuNWRlZykgc2tld1koLTEyLjVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goLTEyLjVkZWcpIHNrZXdZKC0xMi41ZGVnKTtcbiAgfVxuXG4gIDMzLjMlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goNi4yNWRlZykgc2tld1koNi4yNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCg2LjI1ZGVnKSBza2V3WSg2LjI1ZGVnKTtcbiAgfVxuXG4gIDQ0LjQlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTMuMTI1ZGVnKSBza2V3WSgtMy4xMjVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goLTMuMTI1ZGVnKSBza2V3WSgtMy4xMjVkZWcpO1xuICB9XG5cbiAgNTUuNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgxLjU2MjVkZWcpIHNrZXdZKDEuNTYyNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgxLjU2MjVkZWcpIHNrZXdZKDEuNTYyNWRlZyk7XG4gIH1cblxuICA2Ni42JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC0wLjc4MTI1ZGVnKSBza2V3WSgtMC43ODEyNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtMC43ODEyNWRlZykgc2tld1koLTAuNzgxMjVkZWcpO1xuICB9XG5cbiAgNzcuNyUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgwLjM5MDYyNWRlZykgc2tld1koMC4zOTA2MjVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goMC4zOTA2MjVkZWcpIHNrZXdZKDAuMzkwNjI1ZGVnKTtcbiAgfVxuXG4gIDg4LjglIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTAuMTk1MzEyNWRlZykgc2tld1koLTAuMTk1MzEyNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtMC4xOTUzMTI1ZGVnKSBza2V3WSgtMC4xOTUzMTI1ZGVnKTtcbiAgfVxufVxuXG4uamVsbG8ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBqZWxsbztcbiAgYW5pbWF0aW9uLW5hbWU6IGplbGxvO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW4ge1xuICBmcm9tLCAyMCUsIDQwJSwgNjAlLCA4MCUsIDEwMCUge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICB9XG5cbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICB9XG5cbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XG4gIH1cblxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjAzLCAxLjAzLCAxLjAzKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wMywgMS4wMywgMS4wMyk7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC45NywgLjk3LCAuOTcpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOTcsIC45NywgLjk3KTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlSW4ge1xuICBmcm9tLCAyMCUsIDQwJSwgNjAlLCA4MCUsIDEwMCUge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICB9XG5cbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICB9XG5cbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XG4gIH1cblxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjAzLCAxLjAzLCAxLjAzKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wMywgMS4wMywgMS4wMyk7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC45NywgLjk3LCAuOTcpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOTcsIC45NywgLjk3KTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG5cbi5ib3VuY2VJbiB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW47XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJbkRvd24ge1xuICBmcm9tLCA2MCUsIDc1JSwgOTAlLCAxMDAlIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMDAwcHgsIDApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDI1cHgsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VJbkRvd24ge1xuICBmcm9tLCA2MCUsIDc1JSwgOTAlLCAxMDAlIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMDAwcHgsIDApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDI1cHgsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmJvdW5jZUluRG93biB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluRG93bjtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluRG93bjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluTGVmdCB7XG4gIGZyb20sIDYwJSwgNzUlLCA5MCUsIDEwMCUge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICB9XG5cbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMwMDBweCwgMCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDI1cHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjVweCwgMCwgMCk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1cHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNXB4LCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluTGVmdCB7XG4gIGZyb20sIDYwJSwgNzUlLCA5MCUsIDEwMCUge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICB9XG5cbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMwMDBweCwgMCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDI1cHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjVweCwgMCwgMCk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1cHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNXB4LCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uYm91bmNlSW5MZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5MZWZ0O1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5MZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW5SaWdodCB7XG4gIGZyb20sIDYwJSwgNzUlLCA5MCUsIDEwMCUge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICB9XG5cbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMzAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMwMDBweCwgMCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNXB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNXB4LCAwLCAwKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNXB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01cHgsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlSW5SaWdodCB7XG4gIGZyb20sIDYwJSwgNzUlLCA5MCUsIDEwMCUge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICB9XG5cbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMzAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMwMDBweCwgMCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNXB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNXB4LCAwLCAwKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNXB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01cHgsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5ib3VuY2VJblJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5SaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluUmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJblVwIHtcbiAgZnJvbSwgNjAlLCA3NSUsIDkwJSwgMTAwJSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gIH1cblxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMzAwMHB4LCAwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTVweCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluVXAge1xuICBmcm9tLCA2MCUsIDc1JSwgOTAlLCAxMDAlIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDMwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzMDAwcHgsIDApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTVweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNXB4LCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5ib3VuY2VJblVwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5VcDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluVXA7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXQge1xuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KTtcbiAgfVxuXG4gIDUwJSwgNTUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlT3V0IHtcbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSk7XG4gIH1cblxuICA1MCUsIDU1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgfVxufVxuXG4uYm91bmNlT3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0O1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlT3V0RG93biB7XG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gIH1cblxuICA0MCUsIDQ1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VPdXREb3duIHtcbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgfVxuXG4gIDQwJSwgNDUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgfVxufVxuXG4uYm91bmNlT3V0RG93biB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dERvd247XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXREb3duO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlT3V0TGVmdCB7XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMHB4LCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VPdXRMZWZ0IHtcbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwcHgsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuXG4uYm91bmNlT3V0TGVmdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dExlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRMZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlT3V0UmlnaHQge1xuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMHB4LCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlT3V0UmlnaHQge1xuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMHB4LCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICB9XG59XG5cbi5ib3VuY2VPdXRSaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dFJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0UmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXRVcCB7XG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgfVxuXG4gIDQwJSwgNDUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwcHgsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dFVwIHtcbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICB9XG5cbiAgNDAlLCA0NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjBweCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICB9XG59XG5cbi5ib3VuY2VPdXRVcCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dFVwO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0VXA7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5mYWRlSW4ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW47XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW47XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5Eb3duIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5Eb3duIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJbkRvd24ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duO1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluRG93bjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkRvd25CaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5Eb3duQmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5Eb3duQmlnIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluRG93bkJpZztcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd25CaWc7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5MZWZ0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5MZWZ0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJbkxlZnQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5MZWZ0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluTGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkxlZnRCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5MZWZ0QmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5MZWZ0QmlnIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluTGVmdEJpZztcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnRCaWc7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5SaWdodCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5SaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5SaWdodEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5SaWdodEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJblJpZ2h0QmlnIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHRCaWc7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5SaWdodEJpZztcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJblVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluVXAge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJblVwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluVXA7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJblVwQmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblVwQmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uZmFkZUluVXBCaWcge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcEJpZztcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblVwQmlnO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5mYWRlT3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0RG93biB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dERvd24ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dERvd24ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bjtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXREb3duO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dERvd25CaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0RG93bkJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dERvd25CaWcge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bkJpZztcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXREb3duQmlnO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dExlZnQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dExlZnQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0TGVmdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRMZWZ0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dExlZnQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0TGVmdEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dExlZnRCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dExlZnRCaWcge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0TGVmdEJpZztcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRMZWZ0QmlnO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0UmlnaHQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dFJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dFJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dFJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFJpZ2h0QmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dFJpZ2h0QmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0UmlnaHRCaWcge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0UmlnaHRCaWc7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0UmlnaHRCaWc7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0VXAge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dFVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dFVwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dFVwO1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dFVwO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFVwQmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0VXBCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dFVwQmlnIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dFVwQmlnO1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dFVwQmlnO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTM2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTM2MGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgfVxuXG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xOTBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIH1cblxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNzBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTcwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKC45NSwgLjk1LCAuOTUpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlM2QoLjk1LCAuOTUsIC45NSk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTM2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTM2MGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgfVxuXG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xOTBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIH1cblxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNzBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTcwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKC45NSwgLjk1LCAuOTUpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlM2QoLjk1LCAuOTUsIC45NSk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICB9XG59XG5cbi5hbmltYXRlZC5mbGlwIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGlwO1xuICBhbmltYXRpb24tbmFtZTogZmxpcDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBJblgge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCA5MGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgMTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDEwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC01ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtNWRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcEluWCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTIwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAxMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgMTBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC01ZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gIH1cbn1cblxuLmZsaXBJblgge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGlwSW5YO1xuICBhbmltYXRpb24tbmFtZTogZmxpcEluWDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBJblkge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0yMGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgMTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDEwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC01ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtNWRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcEluWSB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDkwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0yMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTIwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAxMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgMTBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC01ZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gIH1cbn1cblxuLmZsaXBJblkge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGlwSW5ZO1xuICBhbmltYXRpb24tbmFtZTogZmxpcEluWTtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBPdXRYIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcE91dFgge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICB9XG5cbiAgMzAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTIwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCA5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmZsaXBPdXRYIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmxpcE91dFg7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WDtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBPdXRZIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNWRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcE91dFkge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICB9XG5cbiAgMzAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE1ZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmZsaXBPdXRZIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmxpcE91dFk7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WTtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGxpZ2h0U3BlZWRJbiB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgtMzBkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goLTMwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goMjBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtNWRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgbGlnaHRTcGVlZEluIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKC0zMGRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgtMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgyMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgyMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC01ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKC01ZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmxpZ2h0U3BlZWRJbiB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRJbjtcbiAgYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRJbjtcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBsaWdodFNwZWVkT3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgzMGRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgzMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGxpZ2h0U3BlZWRPdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKDMwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKDMwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5saWdodFNwZWVkT3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZE91dDtcbiAgYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRPdXQ7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMjAwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0yMDBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVJbiB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTIwMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMjAwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJbiB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluO1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW47XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJbkRvd25MZWZ0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVJbkRvd25MZWZ0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnJvdGF0ZUluRG93bkxlZnQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbkRvd25MZWZ0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duTGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluRG93blJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZUluRG93blJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ucm90YXRlSW5Eb3duUmlnaHQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbkRvd25SaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluRG93blJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW5VcExlZnQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVJblVwTGVmdCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ucm90YXRlSW5VcExlZnQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluVXBMZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW5VcFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlSW5VcFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJblVwUmlnaHQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwUmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVPdXQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMjAwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDIwMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAyMDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMjAwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5yb3RhdGVPdXQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVPdXREb3duTGVmdCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0RG93bkxlZnQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4ucm90YXRlT3V0RG93bkxlZnQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXREb3duTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dERvd25MZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0RG93blJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVPdXREb3duUmlnaHQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4ucm90YXRlT3V0RG93blJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlT3V0RG93blJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0RG93blJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0VXBMZWZ0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dFVwTGVmdCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnJvdGF0ZU91dFVwTGVmdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwTGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dFVwUmlnaHQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVPdXRVcFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5yb3RhdGVPdXRVcFJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlT3V0VXBSaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwUmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBoaW5nZSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIH1cblxuICAyMCUsIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDgwZGVnKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIH1cblxuICA0MCUsIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDYwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDYwZGVnKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA3MDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA3MDBweCwgMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGhpbmdlIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgfVxuXG4gIDIwJSwgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgODBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgODBkZWcpO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgfVxuXG4gIDQwJSwgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNjBkZWcpO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDcwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDcwMHB4LCAwKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5oaW5nZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGhpbmdlO1xuICBhbmltYXRpb24tbmFtZTogaGluZ2U7XG59XG5cbi8qIG9yaWdpbmFsbHkgYXV0aG9yZWQgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZSAqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm9sbEluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xMjBkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb2xsSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTEyMGRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTEyMGRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4ucm9sbEluIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm9sbEluO1xuICBhbmltYXRpb24tbmFtZTogcm9sbEluO1xufVxuXG4vKiBvcmlnaW5hbGx5IGF1dGhvcmVkIGJ5IE5pY2sgUGV0dGl0IC0gaHR0cHM6Ly9naXRodWIuY29tL25pY2twZXR0aXQvZ2xpZGUgKi9cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvbGxPdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMTIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDEyMGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb2xsT3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDEyMGRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAxMjBkZWcpO1xuICB9XG59XG5cbi5yb2xsT3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm9sbE91dDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvbGxPdXQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB6b29tSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHpvb21JbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICB9XG5cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi56b29tSW4ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tSW47XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW47XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB6b29tSW5Eb3duIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAtMTAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgLTEwMDBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIDYwcHgsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHpvb21JbkRvd24ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0xMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAtMTAwMHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbi56b29tSW5Eb3duIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbUluRG93bjtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21JbkRvd247XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB6b29tSW5MZWZ0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgtMTAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoLTEwMDBweCwgMCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHpvb21JbkxlZnQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKC0xMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgtMTAwMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbi56b29tSW5MZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbUluTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21JbkxlZnQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB6b29tSW5SaWdodCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMTAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMTAwMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB6b29tSW5SaWdodCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMTAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMTAwMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gIH1cbn1cblxuLnpvb21JblJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbUluUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW5SaWdodDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21JblVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAxMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAxMDAwcHgsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHpvb21JblVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAxMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAxMDAwcHgsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG4uem9vbUluVXAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tSW5VcDtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21JblVwO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbU91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA1MCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHpvb21PdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnpvb21PdXQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tT3V0O1xuICBhbmltYXRpb24tbmFtZTogem9vbU91dDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21PdXREb3duIHtcbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHpvb21PdXREb3duIHtcbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG4uem9vbU91dERvd24ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tT3V0RG93bjtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21PdXREb3duO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbU91dExlZnQge1xuICA0MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoNDJweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDQycHgsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLjEpIHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoLjEpIHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB6b29tT3V0TGVmdCB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCg0MnB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoNDJweCwgMCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcbiAgfVxufVxuXG4uem9vbU91dExlZnQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tT3V0TGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRMZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbU91dFJpZ2h0IHtcbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKC00MnB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoLTQycHgsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLjEpIHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB6b29tT3V0UmlnaHQge1xuICA0MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoLTQycHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgtNDJweCwgMCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC4xKSB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjtcbiAgfVxufVxuXG4uem9vbU91dFJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbU91dFJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogem9vbU91dFJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbU91dFVwIHtcbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIDYwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHpvb21PdXRVcCB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gIH1cbn1cblxuLnpvb21PdXRVcCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRVcDtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRVcDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlSW5Eb3duIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAlLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZUluRG93biB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwJSwgMCk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5zbGlkZUluRG93biB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5Eb3duO1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJbkRvd247XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZUluTGVmdCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJbkxlZnQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVJbkxlZnQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZUluTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5MZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVJblJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJblJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5zbGlkZUluUmlnaHQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZUluUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluUmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZUluVXAge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZUluVXAge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuXG5cbi5zbGlkZUluVXAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZUluVXA7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluVXA7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZU91dERvd24ge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlT3V0RG93biB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG59XG5cbi5zbGlkZU91dERvd24ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dERvd247XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dERvd247XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZU91dExlZnQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVPdXRMZWZ0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVPdXRMZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2xpZGVPdXRMZWZ0O1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVPdXRMZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVPdXRSaWdodCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVPdXRSaWdodCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICB9XG59XG5cbi5zbGlkZU91dFJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2xpZGVPdXRSaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0UmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZU91dFVwIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAlLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlT3V0VXAge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMCUsIDApO1xuICB9XG59XG5cbi5zbGlkZU91dFVwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2xpZGVPdXRVcDtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0VXA7XG59XG4vLyBleHBlcmllbmNlbWF0dGVyIGFuaW1hdGlvbnNcbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZUluVXBTbWFsbCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAlLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJblVwU21hbGwge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwJSwgMCk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG4uc2xpZGVJblVwU21hbGwge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZUluVXBTbWFsbDtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5VcFNtYWxsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiOyAvLyBGaXhlcyBhbiBpc3N1ZSB3aGVyZSBSdWJ5IGxvY2FsZSBpcyBub3Qgc2V0IHByb3Blcmx5XG4gICAgICAgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9wdWxsLzEwXG5cbi8vLyBCYXNlIGZvbnQgc2l6ZSBvbiB0aGUgYDxib2R5PmAgZWxlbWVudFxuLy8vIEB0eXBlIE51bWJlciAodW5pdClcbiRtcS1iYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcblxuLy8vIFJlc3BvbnNpdmUgbW9kZVxuLy8vXG4vLy8gU2V0IHRvIGBmYWxzZWAgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgQG1lZGlhIHF1ZXJpZXMsXG4vLy8gKElFIDw9IDgsIEZpcmVmb3ggPD0gMywgT3BlcmEgPD0gOSlcbi8vL1xuLy8vIFlvdSBjb3VsZCBjcmVhdGUgYSBzdHlsZXNoZWV0IHNlcnZlZCBleGNsdXNpdmVseSB0byBvbGRlciBicm93c2Vycyxcbi8vLyB3aGVyZSBAbWVkaWEgcXVlcmllcyBhcmUgcmFzdGVyaXplZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAvLyBvbGQtaWUuc2Nzc1xuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XG4vLy8gIEBpbmNsdWRlICdtYWluJzsgLy8gQG1lZGlhIHF1ZXJpZXMgaW4gdGhpcyBmaWxlIHdpbGwgYmUgcmFzdGVyaXplZCB1cCB0byAkbXEtc3RhdGljLWJyZWFrcG9pbnRcbi8vLyAgICAgICAgICAgICAgICAgICAvLyBsYXJnZXIgYnJlYWtwb2ludHMgd2lsbCBiZSBpZ25vcmVkXG4vLy9cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNyZXNwb25zaXZlLW1vZGUtb2ZmIERpc2FibGVkIHJlc3BvbnNpdmUgbW9kZSBkb2N1bWVudGF0aW9uXG4kbXEtcmVzcG9uc2l2ZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgbGlzdFxuLy8vXG4vLy8gTmFtZSB5b3VyIGJyZWFrcG9pbnRzIGluIGEgd2F5IHRoYXQgY3JlYXRlcyBhIHViaXF1aXRvdXMgbGFuZ3VhZ2Vcbi8vLyBhY3Jvc3MgdGVhbSBtZW1iZXJzLiBJdCB3aWxsIGltcHJvdmUgY29tbXVuaWNhdGlvbiBiZXR3ZWVuXG4vLy8gc3Rha2Vob2xkZXJzLCBkZXNpZ25lcnMsIGRldmVsb3BlcnMsIGFuZCB0ZXN0ZXJzLlxuLy8vXG4vLy8gQHR5cGUgTWFwXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNzZWVpbmctdGhlLWN1cnJlbnRseS1hY3RpdmUtYnJlYWtwb2ludCBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtYnJlYWtwb2ludHM6IChcbiAgICBtb2JpbGU6ICAzMjBweCxcbiAgICB0YWJsZXQ6ICA3NDBweCxcbiAgICBkZXNrdG9wOiA5ODBweCxcbiAgICB3aWRlOiAgICAxMzAwcHhcbikgIWRlZmF1bHQ7XG5cbi8vLyBTdGF0aWMgYnJlYWtwb2ludCAoZm9yIGZpeGVkLXdpZHRoIGxheW91dHMpXG4vLy9cbi8vLyBEZWZpbmUgdGhlIGJyZWFrcG9pbnQgZnJvbSAkbXEtYnJlYWtwb2ludHMgdGhhdCBzaG91bGRcbi8vLyBiZSB1c2VkIGFzIHRoZSB0YXJnZXQgd2lkdGggZm9yIHRoZSBmaXhlZC13aWR0aCBsYXlvdXRcbi8vLyAoaS5lLiB3aGVuICRtcS1yZXNwb25zaXZlIGlzIHNldCB0byAnZmFsc2UnKSBpbiBhIG9sZC1pZS5zY3NzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIC8vIHRhYmxldC1vbmx5LnNjc3Ncbi8vLyAgLy9cbi8vLyAgLy8gSWdub3JlIGFsbCBzdHlsZXMgYWJvdmUgdGFibGV0IGJyZWFrcG9pbnQsXG4vLy8gIC8vIGFuZCBmaXggdGhlIHN0eWxlcyAoZS5nLiBsYXlvdXQpIGF0IHRhYmxldCB3aWR0aFxuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XG4vLy8gICRtcS1zdGF0aWMtYnJlYWtwb2ludDogdGFibGV0O1xuLy8vICBAaW5jbHVkZSAnbWFpbic7IC8vIEBtZWRpYSBxdWVyaWVzIGluIHRoaXMgZmlsZSB3aWxsIGJlIHJhc3Rlcml6ZWQgdXAgdG8gdGFibGV0XG4vLy8gICAgICAgICAgICAgICAgICAgLy8gbGFyZ2VyIGJyZWFrcG9pbnRzIHdpbGwgYmUgaWdub3JlZFxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNhZGRpbmctY3VzdG9tLWJyZWFrcG9pbnRzIEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbiRtcS1zdGF0aWMtYnJlYWtwb2ludDogZGVza3RvcCAhZGVmYXVsdDtcblxuLy8vIFNob3cgYnJlYWtwb2ludHMgaW4gdGhlIHRvcCByaWdodCBjb3JuZXJcbi8vL1xuLy8vIElmIHlvdSB3YW50IHRvIGRpc3BsYXkgdGhlIGN1cnJlbnRseSBhY3RpdmUgYnJlYWtwb2ludCBpbiB0aGUgdG9wXG4vLy8gcmlnaHQgY29ybmVyIG9mIHlvdXIgc2l0ZSBkdXJpbmcgZGV2ZWxvcG1lbnQsIGFkZCB0aGUgYnJlYWtwb2ludHNcbi8vLyB0byB0aGlzIGxpc3QsIG9yZGVyZWQgYnkgd2lkdGgsIGUuZy4gKG1vYmlsZSwgdGFibGV0LCBkZXNrdG9wKS5cbi8vL1xuLy8vIEB0eXBlIG1hcFxuJG1xLXNob3ctYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xuXG4vLy8gQ3VzdG9taXplIHRoZSBtZWRpYSB0eXBlIChlLmcuIGBAbWVkaWEgc2NyZWVuYCBvciBgQG1lZGlhIHByaW50YClcbi8vLyBCeSBkZWZhdWx0IHNhc3MtbXEgdXNlcyBhbiBcImFsbFwiIG1lZGlhIHR5cGUgKGBAbWVkaWEgYWxsIGFuZCDigKZgKVxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNjaGFuZ2luZy1tZWRpYS10eXBlIEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbiRtcS1tZWRpYS10eXBlOiBhbGwgIWRlZmF1bHQ7XG5cbi8vLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcHggLSB2YWx1ZSB0byBjb252ZXJ0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlLWZvbnQtc2l6ZSAoJG1xLWJhc2UtZm9udC1zaXplKSAtIGA8Ym9keT5gIGZvbnQgc2l6ZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAkZm9udC1zaXplLWluLWVtczogbXEtcHgyZW0oMTZweCk7XG4vLy8gIHAgeyBmb250LXNpemU6IG1xLXB4MmVtKDE2cHgpOyB9XG4vLy9cbi8vLyBAcmVxdWlyZXMgJG1xLWJhc2UtZm9udC1zaXplXG4vLy8gQHJldHVybnMge051bWJlcn1cbkBmdW5jdGlvbiBtcS1weDJlbSgkcHgsICRiYXNlLWZvbnQtc2l6ZTogJG1xLWJhc2UtZm9udC1zaXplKSB7XG4gICAgQGlmIHVuaXRsZXNzKCRweCkge1xuICAgICAgICBAd2FybiBcIkFzc3VtaW5nICN7JHB4fSB0byBiZSBpbiBwaXhlbHMsIGF0dGVtcHRpbmcgdG8gY29udmVydCBpdCBpbnRvIHBpeGVscy5cIjtcbiAgICAgICAgQHJldHVybiBtcS1weDJlbSgkcHggKyAwcHgpOyAvLyBUaGF0IG1heSBmYWlsLlxuICAgIH0gQGVsc2UgaWYgdW5pdCgkcHgpID09IGVtIHtcbiAgICAgICAgQHJldHVybiAkcHg7XG4gICAgfVxuICAgIEByZXR1cm4gKCRweCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07XG59XG5cbi8vLyBHZXQgYSBicmVha3BvaW50J3Mgd2lkdGhcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnQuIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgJHRhYmxldC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgodGFibGV0KTtcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKGRlc2t0b3ApKSB7fVxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBWYWx1ZSBpbiBwaXhlbHNcbkBmdW5jdGlvbiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEB3YXJuIFwiQnJlYWtwb2ludCAjeyRuYW1lfSB3YXNuJ3QgZm91bmQgaW4gJGJyZWFrcG9pbnRzLlwiO1xuICAgIH1cbn1cblxuLy8vIE1lZGlhIFF1ZXJ5IG1peGluXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRmcm9tIChmYWxzZSkgLSBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkdW50aWwgKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRhbmQgKGZhbHNlKSAtIEFkZGl0aW9uYWwgbWVkaWEgcXVlcnkgcGFyYW1ldGVyc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVkaWEtdHlwZSAoJG1xLW1lZGlhLXR5cGUpIC0gTWVkaWEgdHlwZTogc2NyZWVuLCBwcmludOKAplxuLy8vXG4vLy8gQGlnbm9yZSBVbmRvY3VtZW50ZWQgQVBJLCBmb3IgYWR2YW5jZWQgdXNlIG9ubHk6XG4vLy8gQGlnbm9yZSBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzICgkbXEtYnJlYWtwb2ludHMpXG4vLy8gQGlnbm9yZSBAcGFyYW0ge1N0cmluZ30gJHN0YXRpYy1icmVha3BvaW50ICgkbXEtc3RhdGljLWJyZWFrcG9pbnQpXG4vLy9cbi8vLyBAY29udGVudCBzdHlsaW5nIHJ1bGVzLCB3cmFwcGVkIGludG8gYSBAbWVkaWEgcXVlcnkgd2hlbiAkcmVzcG9uc2l2ZSBpcyB0cnVlXG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtbWVkaWEtdHlwZVxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLXB4MmVtXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGhcbi8vL1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9uLWRlZmF1bHQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAuZWxlbWVudCB7XG4vLy8gICAgQGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuLy8vICAgICAgY29sb3I6IHJlZDtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEoJHVudGlsOiB0YWJsZXQpIHtcbi8vLyAgICAgIGNvbG9yOiBibHVlO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcShtb2JpbGUsIHRhYmxldCkge1xuLy8vICAgICAgY29sb3I6IGdyZWVuO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0LCAkYW5kOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJykge1xuLy8vICAgICAgY29sb3I6IHRlYWw7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKDk1MHB4KSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEodGFibGV0LCAkbWVkaWEtdHlwZTogc2NyZWVuKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgLy8gQWR2YW5jZWQgdXNlOlxuLy8vICAgICRteS1icmVha3BvaW50czogKCBMOiA5MDBweCwgWEw6IDEyMDBweCApO1xuLy8vICAgIEBpbmNsdWRlIG1xKEwsICRicmVha3BvaW50czogJG15LWJyZWFrcG9pbnRzLCAkc3RhdGljLWJyZWFrcG9pbnQ6IEwpIHtcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xuLy8vICAgIH1cbi8vLyAgfVxuQG1peGluIG1xKFxuICAgICRmcm9tOiBmYWxzZSxcbiAgICAkdW50aWw6IGZhbHNlLFxuICAgICRhbmQ6IGZhbHNlLFxuICAgICRtZWRpYS10eXBlOiAkbXEtbWVkaWEtdHlwZSxcbiAgICAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cyxcbiAgICAkcmVzcG9uc2l2ZTogJG1xLXJlc3BvbnNpdmUsXG4gICAgJHN0YXRpYy1icmVha3BvaW50OiAkbXEtc3RhdGljLWJyZWFrcG9pbnRcbikge1xuICAgICRtaW4td2lkdGg6IDA7XG4gICAgJG1heC13aWR0aDogMDtcbiAgICAkbWVkaWEtcXVlcnk6ICcnO1xuXG4gICAgLy8gRnJvbTogdGhpcyBicmVha3BvaW50IChpbmNsdXNpdmUpXG4gICAgQGlmICRmcm9tIHtcbiAgICAgICAgQGlmIHR5cGUtb2YoJGZyb20pID09IG51bWJlciB7XG4gICAgICAgICAgICAkbWluLXdpZHRoOiBtcS1weDJlbSgkZnJvbSk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJG1pbi13aWR0aDogbXEtcHgyZW0obXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJGZyb20sICRicmVha3BvaW50cykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVW50aWw6IHRoYXQgYnJlYWtwb2ludCAoZXhjbHVzaXZlKVxuICAgIEBpZiAkdW50aWwge1xuICAgICAgICBAaWYgdHlwZS1vZigkdW50aWwpID09IG51bWJlciB7XG4gICAgICAgICAgICAkbWF4LXdpZHRoOiBtcS1weDJlbSgkdW50aWwpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRtYXgtd2lkdGg6IG1xLXB4MmVtKG1xLWdldC1icmVha3BvaW50LXdpZHRoKCR1bnRpbCwgJGJyZWFrcG9pbnRzKSkgLSAuMDFlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgc3VwcG9ydCBpcyBkaXNhYmxlZCwgcmFzdGVyaXplIHRoZSBvdXRwdXQgb3V0c2lkZSBAbWVkaWEgYmxvY2tzXG4gICAgLy8gVGhlIGJyb3dzZXIgd2lsbCByZWx5IG9uIHRoZSBjYXNjYWRlIGl0c2VsZi5cbiAgICBAaWYgJHJlc3BvbnNpdmUgPT0gZmFsc2Uge1xuICAgICAgICAkc3RhdGljLWJyZWFrcG9pbnQtd2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRzdGF0aWMtYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcbiAgICAgICAgJHRhcmdldC13aWR0aDogbXEtcHgyZW0oJHN0YXRpYy1icmVha3BvaW50LXdpZHRoKTtcbiAgICAgICAgLy8gT3V0cHV0IG9ubHkgcnVsZXMgdGhhdCBzdGFydCBhdCBvciBzcGFuIG91ciB0YXJnZXQgd2lkdGhcbiAgICAgICAgQGlmICgkYW5kID09IGZhbHNlIGFuZCAoJG1pbi13aWR0aCA8PSAkdGFyZ2V0LXdpZHRoKSBhbmQgKCgkdW50aWwgPT0gZmFsc2UpIG9yICgkbWF4LXdpZHRoID49ICR0YXJnZXQtd2lkdGgpKSkge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIHN1cHBvcnQgaXMgZW5hYmxlZCwgb3V0cHV0IHJ1bGVzIGluc2lkZSBAbWVkaWEgcXVlcmllc1xuICAgIEBlbHNlIHtcbiAgICAgICAgQGlmICRtaW4td2lkdGggIT0gMCB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1pbi13aWR0aDogI3skbWluLXdpZHRofSknOyB9XG4gICAgICAgIEBpZiAkbWF4LXdpZHRoICE9IDAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtYXgtd2lkdGg6ICN7JG1heC13aWR0aH0pJzsgfVxuICAgICAgICBAaWYgJGFuZCAgICAgICAgICAgIHsgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAjeyRhbmR9JzsgfVxuXG4gICAgICAgIC8vIFJlbW92ZSB1bm5lY2Vzc2FyeSBtZWRpYSBxdWVyeSBwcmVmaXggJ2FsbCBhbmQgJ1xuICAgICAgICBAaWYgKCRtZWRpYS10eXBlID09ICdhbGwnIGFuZCAkbWVkaWEtcXVlcnkgIT0gJycpIHtcbiAgICAgICAgICAgICRtZWRpYS10eXBlOiAnJztcbiAgICAgICAgICAgICRtZWRpYS1xdWVyeTogc3RyLXNsaWNlKHVucXVvdGUoJG1lZGlhLXF1ZXJ5KSwgNik7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgI3skbWVkaWEtdHlwZSArICRtZWRpYS1xdWVyeX0ge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vLyBBZGQgYSBicmVha3BvaW50XG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBicmVha3BvaW50XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBicmVha3BvaW50XG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgQGluY2x1ZGUgbXEtYWRkLWJyZWFrcG9pbnQodHZzY3JlZW4sIDE5MjBweCk7XG4vLy8gIEBpbmNsdWRlIG1xKHR2c2NyZWVuKSB7fVxuQG1peGluIG1xLWFkZC1icmVha3BvaW50KCRuYW1lLCAkd2lkdGgpIHtcbiAgICAkbmV3LWJyZWFrcG9pbnQ6ICgkbmFtZTogJHdpZHRoKTtcbiAgICAkbXEtYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkbXEtYnJlYWtwb2ludHMsICRuZXctYnJlYWtwb2ludCkgIWdsb2JhbDtcbn1cblxuLy8vIFNob3cgdGhlIGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3AgcmlnaHQgY29ybmVyIG9mIHRoZSB2aWV3cG9ydFxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjc2VlaW5nLXRoZS1jdXJyZW50bHktYWN0aXZlLWJyZWFrcG9pbnRcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3ctYnJlYWtwb2ludHMgKCRtcS1zaG93LWJyZWFrcG9pbnRzKSAtIExpc3Qgb2YgYnJlYWtwb2ludHMgdG8gc2hvdyBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lclxuLy8vIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgKCRtcS1icmVha3BvaW50cykgLSBCcmVha3BvaW50IG5hbWVzIGFuZCBzaXplc1xuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLXNob3ctYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLy8gU2hvdyBicmVha3BvaW50cyB1c2luZyBnbG9iYWwgc2V0dGluZ3Ncbi8vLyAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cztcbi8vL1xuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGN1c3RvbSBzZXR0aW5nc1xuLy8vICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzKChMLCBYTCksIChTOiAzMDBweCwgTDogODAwcHgsIFhMOiAxMjAwcHgpKTtcbkBtaXhpbiBtcS1zaG93LWJyZWFrcG9pbnRzKCRzaG93LWJyZWFrcG9pbnRzOiAkbXEtc2hvdy1icmVha3BvaW50cywgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcbiAgICBib2R5OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGQ0Y4RTM7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRkJFRUQ1O1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNGQkVFRDU7XG4gICAgICAgIGNvbG9yOiAjQzA5ODUzO1xuICAgICAgICBmb250OiBzbWFsbC1jYXB0aW9uO1xuICAgICAgICBwYWRkaW5nOiAzcHggNnB4O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB6LWluZGV4OiAxMDA7XG5cbiAgICAgICAgLy8gTG9vcCB0aHJvdWdoIHRoZSBicmVha3BvaW50cyB0aGF0IHNob3VsZCBiZSBzaG93blxuICAgICAgICBAZWFjaCAkc2hvdy1icmVha3BvaW50IGluICRzaG93LWJyZWFrcG9pbnRzIHtcbiAgICAgICAgICAgICR3aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1xKCRzaG93LWJyZWFrcG9pbnQsICRicmVha3BvaW50czogJGJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCIjeyRzaG93LWJyZWFrcG9pbnR9IOKJpSAjeyR3aWR0aH0gKCN7bXEtcHgyZW0oJHdpZHRoKX0pXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpZiBsZW5ndGgoJG1xLXNob3ctYnJlYWtwb2ludHMpID4gMCB7XG4gICAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cztcbn1cbiIsIi5hbGlnbmxlZnQge1xuXHRkaXNwbGF5OiBpbmxpbmU7XG5cdGZsb2F0OiBsZWZ0O1xuXHRtYXJnaW4tcmlnaHQ6IDEuNWVtO1xufVxuXG4uYWxpZ25yaWdodCB7XG5cdGRpc3BsYXk6IGlubGluZTtcblx0ZmxvYXQ6IHJpZ2h0O1xuXHRtYXJnaW4tbGVmdDogMS41ZW07XG59XG5cbi5hbGlnbmNlbnRlciB7XG5cdEBleHRlbmQgJWNlbnRlci1ibG9jaztcbn0iLCIud3AtY2FwdGlvbiB7XG5cdG1hcmdpbi1ib3R0b206IDEuNWVtO1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0aW1nW2NsYXNzKj1cIndwLWltYWdlLVwiXSB7XG5cdFx0QGV4dGVuZCAlY2VudGVyLWJsb2NrO1xuXHR9XG5cblx0LndwLWNhcHRpb24tdGV4dCB7XG5cdFx0bWFyZ2luOiAwLjgwNzVlbSAwO1xuXHR9XG59XG5cbi53cC1jYXB0aW9uLXRleHQge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59IiwiLy8gUmVtIG91dHB1dCB3aXRoIHB4IGZhbGxiYWNrXG5AbWl4aW4gZm9udC1zaXplKCRzaXplVmFsdWU6IDEpIHtcblx0Ly8gZm9udC1zaXplOiAoJHNpemVWYWx1ZSAqIDE2KSAqICRzY2FsZSAqIDFweDtcblx0Ly8gZm9udC1zaXplOiAkc2l6ZVZhbHVlICogJHNjYWxlICogMXJlbTtcbiAgICAvLyBAaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogKCRzaXplVmFsdWUgKiAxNikgKiAxcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJHNpemVWYWx1ZSAqIDFyZW07IFxuICAgIC8vIH1cbn1cblxuLy8gQ2VudGVyIGJsb2NrXG4lY2VudGVyLWJsb2NrIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi8vIENsZWFyIGFmdGVyIChub3QgYWxsIGNsZWFyZml4IG5lZWQgdGhpcyBhbHNvKVxuJWNsZWFyZml4LWFmdGVyIHtcblx0Y2xlYXI6IGJvdGg7XG59XG5cbiVjbGVhcmZpeCB7XG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG59XG5cbi8vIFVzYWdlXG4vLyBjb2xvcjogcGFsZXR0ZShicmFuZCk7ID0+ICM1YTJkM2Zcbi8vIGNvbG9yOiBwYWxldHRlKGJyYW5kLCBnb2xkKTsgPT4gI2E4OTk2ZVxuQGZ1bmN0aW9uIHBhbGV0dGUoJHBhbGV0dGUsICR0b25lOiAnYmFzZScpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkcGFsZXR0ZXMsICRwYWxldHRlKSwgJHRvbmUpO1xufVxuXG4vLyBXZSB1c2UgdGhpcyB0byBkbyBjbGVhciBmbG9hdHNcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICAgKnpvb206MTtcbiAgICAmOmJlZm9yZSwgJjphZnRlciB7IGNvbnRlbnQ6IFwiIFwiOyBkaXNwbGF5OiB0YWJsZTsgfVxuICAgICY6YWZ0ZXIgeyBjbGVhcjogYm90aDsgfVxufVxuXG5cbi8vIFdlIHVzZSB0aGlzIHRvIGFkZCB0cmFuc2l0aW9ucyB0byBlbGVtZW50c1xuLy8gJHByb3BlcnR5IC0gRGVmYXVsdDogYWxsLCBPcHRpb25zOiBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXRyYW5zaXRpb25zLyNhbmltYXRhYmxlLXByb3BlcnRpZXNcbi8vICRzcGVlZCAtIERlZmF1bHQ6IDMwMG1zXG4vLyAkZWFzZSAtIERlZmF1bHQ6ZWFzZS1vdXQsIE9wdGlvbnM6IGh0dHA6Ly9jc3MtdHJpY2tzLmNvbS9hbG1hbmFjL3Byb3BlcnRpZXMvdC90cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbi9cbkBtaXhpbiBzaW5nbGUtdHJhbnNpdGlvbigkcHJvcGVydHk6YWxsLCAkc3BlZWQ6MzAwbXMsICRlYXNlOmVhc2Utb3V0KSB7XG4gICAgdHJhbnNpdGlvbjogJHByb3BlcnR5ICRzcGVlZCAkZWFzZTtcbn1cblxuXG4vLyAgUmV0aW5hIEltYWdlIE1peGluICYgTWVkaWEgUXVlcnlcbi8vICBBdXRob3JzOiBcbi8vICBNaWNoYWVsIEFyZXN0YWQgQG1pY2hhZWxhcmVzdGFkXG4vLyAgQ2hyaXMgSG9sZGVyIEBzZWU4Y2hcbkBtaXhpbiByZXRpbmEtYmFja2dyb3VuZCAoJHVybCwgJGZpbGUtdHlwZSwgJHdpZHRoOiBhdXRvLCAkcmVwZWF0OiByZXBlYXQsICRyYXRpbzogMS41LCAkc3VmZml4OiBcIkAyeFwiKSB7XG4gIFx0YmFja2dyb3VuZDogdXJsKCR1cmwgKyBcIi5cIiArICRmaWxlLXR5cGUpO1xuICBcdGJhY2tncm91bmQtcmVwZWF0OiAkcmVwZWF0O1xuICBcbiAgXHQvKiBNZWRpYSBxdWVyaWVzIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3Rob3VnaHRib3QvYm91cmJvbi9ibG9iL21hc3Rlci9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2hpZHBpLW1lZGlhLXF1ZXJ5LnNjc3MgKi9cblx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuXHRvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcblx0b25seSBzY3JlZW4gYW5kICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyRyYXRpb30vMSksXG5cdG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICN7cm91bmQoJHJhdGlvKjk2KX1kcGkpLFxuXHRvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAjeyRyYXRpb31kcHB4KSB7XG5cdFx0XG5cdFx0YmFja2dyb3VuZDogdXJsKCR1cmwgKyAkc3VmZml4ICsgXCIuXCIgKyAkZmlsZS10eXBlKTtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogJHdpZHRoIGF1dG87XG5cdFx0fVxufVxuXG4vLyBMYXN0IGNoaWxkIFxuLy8gXG5AbWl4aW4gbm90LWxhc3QtY2hpbGQoJHNlbGVjdG9yKSB7XG4gICYgI3skc2VsZWN0b3J9Om5vdCg6bGFzdC1jaGlsZCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIFZlcnRpY2FsIENlbnRlciBAbmVsc29uc3dvcmtcbkBtaXhpbiB2ZXJ0aWNhbC1hbGlnbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgdG9wOiA1MCU7XG59XG5AbWl4aW4gdHJhbnNpdGlvbmlmeSB7XG4gdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlLWluLW91dDtcbiAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAuM3MgZWFzZS1pbi1vdXQ7XG4gLW1vei10cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2UtaW4tb3V0O1x0XG59XG5AbWl4aW4gYnV0dG9uaWZ5IHtcbmJhY2tncm91bmQ6IG5vbmU7XG5ib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xuaGVpZ2h0OiA1MHB4O1xuY29sb3I6ICMwMDA7XG50ZXh0LWFsaWduOiBjZW50ZXI7XG5kaXNwbGF5OiBibG9jaztcbmZvbnQtc2l6ZTogMThweDtcbmxpbmUtaGVpZ2h0OiAyNXB4O1xucGFkZGluZzogMCAyMHB4IDAgMjBweDtcbn1cbkBtaXhpbiBtb2JpbGUtcGFkZGluZyB7XG5wYWRkaW5nOiAyZW07XHRcbn0iLCIuY2xlYXI6YmVmb3JlLFxuLmNsZWFyOmFmdGVyLFxuLmVudHJ5LWNvbnRlbnQ6YmVmb3JlLFxuLmVudHJ5LWNvbnRlbnQ6YWZ0ZXIsXG4uY29tbWVudC1jb250ZW50OmJlZm9yZSxcbi5jb21tZW50LWNvbnRlbnQ6YWZ0ZXIsXG4uc2l0ZS1oZWFkZXI6YmVmb3JlLFxuLnNpdGUtaGVhZGVyOmFmdGVyLFxuLnNpdGUtY29udGVudDpiZWZvcmUsXG4uc2l0ZS1jb250ZW50OmFmdGVyLFxuLnNpdGUtZm9vdGVyOmJlZm9yZSxcbi5zaXRlLWZvb3RlcjphZnRlciB7XG5cdEBleHRlbmQgJWNsZWFyZml4O1xufVxuXG4uY2xlYXI6YWZ0ZXIsXG4uZW50cnktY29udGVudDphZnRlcixcbi5jb21tZW50LWNvbnRlbnQ6YWZ0ZXIsXG4uc2l0ZS1oZWFkZXI6YWZ0ZXIsXG4uc2l0ZS1jb250ZW50OmFmdGVyLFxuLnNpdGUtZm9vdGVyOmFmdGVyIHtcblx0QGV4dGVuZCAlY2xlYXJmaXgtYWZ0ZXI7XG59IiwiQGltcG9ydCBcIi4uL2xheW91dC9oZWFkZXJcIjtcbkBpbXBvcnQgXCIuLi9sYXlvdXQvZm9vdGVyXCI7XG5cbi8vIEBpbXBvcnQgXCIuLi9sYXlvdXQvY29udGVudC1zaWRlYmFyXCI7XG4vLyBAaW1wb3J0IFwiLi4vbGF5b3V0L3NpZGViYXItY29udGVudFwiO1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyMgUG9zdHMgYW5kIHBhZ2VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0IFwicHJpbWFyeS9wb3N0cy1hbmQtcGFnZXNcIjtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyMgQXNpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0IFwicHJpbWFyeS9hc2lkZXNcIjtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyMgQ29tbWVudHMgI1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCBcInByaW1hcnkvY29tbWVudHNcIjtcblxuXG4vLyBHcmlkXG4uY29udGFpbmVyIHtcblx0QGluY2x1ZGUgY29udGFpbmVyKCk7XG59XG4ucm93IHtcblx0QGV4dGVuZCAlY2xlYXJmaXg7XG5cdGNsZWFyOiBib3RoO1xuXHRtYXJnaW4tbGVmdDogIC0gZ3V0dGVyKCk7XG5cdG1hcmdpbi1yaWdodDogLSBndXR0ZXIoKTtcbn1cblxuLy8gTmVnYXRpdmUgbWFyZ2lucyBmb3IgYSB3cmFwcGVyIHJvd1xuLmlubmVyIHtcblx0bWFyZ2luOiAwIC0gZ3V0dGVyKCk7XG5cdEBleHRlbmQgJWNsZWFyZml4O1xufVxuXG5cbi5oZXJvLWJveCB7XG5cdEBpbmNsdWRlIHdpdGgtbGF5b3V0KCRzdXN5LW1vYmlsZSkge1xuXHRcdEBpbmNsdWRlIHNwYW4oNCk7XG5cdFx0cGFkZGluZy10b3A6IGd1dHRlcigzKTtcblx0fVxuXHQmLS1hc2lkZSB7XG5cdFx0QGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuXHRcdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIG1xKCRmcm9tOiB0YWJsZXQpIHtcblx0XHRcdEBpbmNsdWRlIHNwYW4oNSBsYXN0KTtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXHRcdC5lbnRyeS1jb250ZW50IHtcblx0XHRcdG1hcmdpbjogZ3V0dGVyKCkgMDtcblx0XHRcdHAge1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5wYW5lbHMtbWVudSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblx0XHRsaSB7XG5cdFx0XHRtYXJnaW46IDVweCAwO1xuXHRcdH1cblx0XHRhIHtcblx0XHRcdGNvbG9yOiBwYWxldHRlKGJyYW5kKTtcblx0XHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSgxKTtcblx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRib3JkZXItYm90dG9tOiBzb2xpZCAxcHg7XG5cdFx0fVxuXHR9XG5cblx0Ji0tZnVsbCB7XG5cdFx0QGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuXHRcdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIG1xKCRmcm9tOiB0YWJsZXQpIHtcblx0XHRcdEBpbmNsdWRlIHNwYW4oMTIpO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cdH1cbn0iLCJib2R5LFxuYnV0dG9uLFxuaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG5cdGNvbG9yOiAkY29sb3JfX3RleHQtbWFpbjtcblx0Zm9udC1mYW1pbHk6ICRmb250X19tYWluO1xuXHRsaW5lLWhlaWdodDogJGZvbnRfX2xpbmUtaGVpZ2h0LWJvZHk7XG59XG5cbmIsXG5zdHJvbmcgeyBmb250LWZhbWlseTogJG1lZGl1bS1mb250LWZhbWlseTsgfVxuXG5AaW1wb3J0IFwiaGVhZGluZ3NcIjtcblxuQGltcG9ydCBcImNvcHlcIjsiLCIkY29sb3JfX2JhY2tncm91bmQtYm9keTogIzAwMDtcbiRjb2xvcl9fYmFja2dyb3VuZC1zY3JlZW46ICNmMWYxZjE7XG4kY29sb3JfX2JhY2tncm91bmQtaHI6ICNjY2M7XG4kY29sb3JfX2JhY2tncm91bmQtYnV0dG9uOiAjZTZlNmU2O1xuJGNvbG9yX19iYWNrZ3JvdW5kLXByZTogI2VlZTtcbiRjb2xvcl9fYmFja2dyb3VuZC1pbnM6ICNmZmY5YzA7XG5cbiRjb2xvcl9fdGV4dC1zY3JlZW46ICMyMTc1OWI7XG4kY29sb3JfX3RleHQtaW5wdXQ6ICM2NjY7XG4kY29sb3JfX3RleHQtaW5wdXQtZm9jdXM6ICMxMTE7XG4kY29sb3JfX2xpbms6IHJveWFsYmx1ZTtcbiRjb2xvcl9fbGluay12aXNpdGVkOiBwdXJwbGU7XG4kY29sb3JfX2xpbmstaG92ZXI6IG1pZG5pZ2h0Ymx1ZTtcbiRjb2xvcl9fdGV4dC1tYWluOiAjMDAwO1xuXG4kY29sb3JfX2JvcmRlci1idXR0b246ICNjY2MgI2NjYyAjYmJiO1xuJGNvbG9yX19ib3JkZXItYnV0dG9uLWhvdmVyOiAjY2NjICNiYmIgI2FhYTtcbiRjb2xvcl9fYm9yZGVyLWJ1dHRvbi1mb2N1czogI2FhYSAjYmJiICNiYmI7XG4kY29sb3JfX2JvcmRlci1pbnB1dDogI2NjYztcbiRjb2xvcl9fYm9yZGVyLWFiYnI6ICM2NjY7XG4iLCIvLyBTZXR0aW5ncyBmaWxlXG5cbi8vIFZhcmlhYmxlc1xuJHdoaXRlICAgICAgIDogI0ZGRkZGRjtcbiRnaG9zdCAgICAgICA6ICNGQUZBRkE7XG4kc25vdyAgICAgICAgOiAjRjlGOUY5O1xuJHZhcG9yICAgICAgIDogI0Y2RjZGNjtcbiR3aGl0ZS1zbW9rZSA6ICNGNUY1RjU7XG4kc2lsdmVyICAgICAgOiAjRUZFRkVGO1xuJHNtb2tlICAgICAgIDogI0VFRUVFRTtcbiRnYWluc2Jvcm8gICA6ICNEREREREQ7XG4kaXJvbiAgICAgICAgOiAjQ0NEMkQ3O1xuJGJhc2UgICAgICAgIDogI0FBQUFBQTtcbiRhbHVtaW51bSAgICA6ICM5OTk5OTk7XG4kanVtYm8gICAgICAgOiAjODg4ODg4O1xuJG1vbnNvb24gICAgIDogIzc3Nzc3NztcbiRzdGVlbCAgICAgICA6ICM2NjY2NjY7XG4kY2hhcmNvYWwgICAgOiAjNTU1NTU1O1xuJHR1YXRhcmEgICAgIDogIzQ0NDQ0NDtcbiRvaWwgICAgICAgICA6ICMzMzMzMzM7XG4kamV0ICAgICAgICAgOiAjMjIyMjIyO1xuJGJsYWNrICAgICAgIDogIzAwMDAwMDtcblxuLy8gTm9yaWZpY2F0aW9uIGNvbG91cnNcbiRzdWNjZXNzICAgICA6ICM4ZWI0MWE7XG4kd2FybmluZyAgICAgOiAjRkZFOTg1O1xuJGVycm9yICAgICAgIDogI2NjMzMzMztcblxuJGJyYW5kICAgICAgIDogI0ZGRTk4NTtcblxuXG4vLyBAIEdsb2JhbCBTZXR0aW5nc1xuJHN1c3k6IChcbiAgICBmbG93OiBsdHIsXG4gICAgbWF0aDogZml4ZWQsXG4gICAgb3V0cHV0OiBmbG9hdCxcbiAgICBjb250YWluZXI6IDk4MHB4LFxuICAgIGNvbnRhaW5lci1wb3NpdGlvbjogY2VudGVyLFxuICAgIGNvbHVtbnM6IDEyLFxuICAgIGd1dHRlcnM6IDAuNSxcbiAgICBndXR0ZXItcG9zaXRpb246IGluc2lkZSxcbiAgICBjb2x1bW4td2lkdGg6IGZhbHNlLFxuICAgIGdsb2JhbC1ib3gtc2l6aW5nOiBjb250ZW50LWJveCxcbiAgICBsYXN0LWZsb3c6IHRvLFxuICAgIGRlYnVnOiAoXG4gICAgICAgIGltYWdlOiBmYWxzZSxcbiAgICAgICAgY29sb3I6IHJnYmEoIzY2ZiwgLjI1KSxcbiAgICAgICAgb3V0cHV0OiBiYWNrZ3JvdW5kLFxuICAgICAgICB0b2dnbGU6IHRvcCByaWdodCxcbiAgICApLFxuICAgIHVzZS1jdXN0b206IChcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdHJ1ZSxcbiAgICAgICAgYmFja2dyb3VuZC1vcHRpb25zOiBmYWxzZSxcbiAgICAgICAgYm94LXNpemluZzogdHJ1ZSxcbiAgICAgICAgcmVtOiB0cnVlLFxuICAgIClcbik7XG5cbi8vIEAgTW9iaWxlIHNldHRpbmdzXG4kc3VzeS1tb2JpbGU6IChcbiAgICBjb2x1bW5zOiA0LFxuICAgIGd1dHRlcnM6IDZcbik7XG5cbi8vIEAgTm8gR3V0dGVyIHNldHRpbmdzXG4kc3VzeS1jb2xsYXBzZTogKFxuICAgIGd1dHRlcnM6IDBcbik7XG5cblxuLy9cbi8vIEBjb2xvdXJzXG4vL1xuLy9cbiRfY29sb3ItYmFzZS1icmFuZDogICAgICMyY2M0OGE7XG4kX2NvbG9yLWJhc2UtZ3JleTogICAgICAjNjY2O1xuJF9jb2xvci1iYXNlLWhpZ2hsaWdodDogI2ZmMDA5NjtcbiRwYWxldHRlczogKFxuICAgIGJyYW5kOiAoXG4gICAgICAgIGJhc2U6ICAgICAgICRfY29sb3ItYmFzZS1icmFuZCxcbiAgICAgICAgaW50ZW5zZTogICAgI2QyMjliOCxcbiAgICAgICAgbGlnaHQ6ICAgICAgIzJhYjhkNSxcbiAgICAgICAgd2FybTogICAgICAgI2ZmOTc0NVxuICAgICksXG4gICAgcGFuZWxzOiAoXG4gICAgICAgIHN0cmF0ZWd5OiAgICAgICAkX2NvbG9yLWJhc2UtYnJhbmQsXG4gICAgICAgIGN4OiAgICAgICAgICAgICAjOTAyMzgwLFxuICAgICAgICBzZXJ2aWNlX2Rlc2lnbjogIzM1YjhkMixcbiAgICAgICAgaW5ub3ZhdGlvbjogICAgICNmZDk1NGRcbiAgICApLFxuICAgIGdyZXk6IChcbiAgICAgICAgYmFzZTogICAgICAgJF9jb2xvci1iYXNlLWdyZXksXG4gICAgICAgIGxpZ2h0OiAgICAgICNkOGQ4ZDgsXG4gICAgICAgIGxpZ2h0ZXI6ICAgICNlOGU4ZTgsXG4gICAgICAgIGRhcms6ICAgICAgICNjMWMxYzFcbiAgICApLFxuICAgIGhpZ2hsaWdodDogKFxuICAgICAgICBiYXNlOiAkX2NvbG9yLWJhc2UtaGlnaGxpZ2h0XG4gICAgKVxuKTtcblxuLy8gRGVmYXVsdCB2YXJzXG4kYm9keS10ZXh0LWNvbG9yOiAgICAgICAgICAgJF9jb2xvci1iYXNlLWdyZXk7XG4kYm9keS10ZXh0LWNvbG9yLWRhcms6ICAgICAgIzIzMjMyMztcblxuJGJvZHktZm9udC1mYW1pbHk6ICAgICAgICAgIFwiQnJhbmRvblRleHRXZWItTGlnaHRcIjtcbiRtZWRpdW0tZm9udC1mYW1pbHk6ICAgICAgICBcIkJyYW5kb25UZXh0V2ViLU1lZGl1bVwiO1xuJGhlYWRpbmdzLWZvbnQtZmFtaWx5OiAgICAgIFwiYnJhbmRvbi1ncm90ZXNxdWVcIjtcblxuJGFuY2hvci1jb2xvcjogICAgICAgICAgICAgICRib2R5LXRleHQtY29sb3I7XG4kdG9wLW5hdi1hbmNob3ItY29sb3I6ICAgICAgJGJvZHktdGV4dC1jb2xvcjtcblxuJGJ0bi1kZWZhdWx0LWJnOiAgICAgICAgICAgICRfY29sb3ItYmFzZS1ncmV5O1xuJGJ0bi1kZWZhdWx0LWNvbG9yOiAgICAgICAgICNmZmY7XG4kYnRuLWRlZmF1bHQtZm9udC1zaXplOiAgICAgMTRweDtcbiRidG4tZGVmYXVsdC1wYWRkaW5nOiAgICAgICAxMnB4IDI0cHg7XG5cblxuJHRleHRmaWVsZC1kZWZhdWx0LXBhZGRpbmc6IDVweCAxNnB4O1xuXG4vLyBTY2FsaW5nIGZhY3RvclxuJHNjYWxlOiAwLjg7XG5cbi8vIFNwZWNpYWwgdGV4dCBzaXppbmdcbiR5b3R0YS1mb250LXNpemU6ICAgICAgICAgICAxNTBweDtcbiR6ZXR0YS1mb250LXNpemU6ICAgICAgICAgICAxMDBweDtcbiR0ZXJhLWZvbnQtc2l6ZTogICAgICAgICAgICA2NXB4O1xuJGdpZ2EtZm9udC1zaXplOiAgICAgICAgICAgIDU1cHg7XG5cblxuXG4vLyBNZWRpYSBRdWVyaWVzXG4kbXEtcmVzcG9uc2l2ZTogdHJ1ZTtcbiRtcS1zdGF0aWMtYnJlYWtwb2ludDogZGVza3RvcDtcbiRtcS1icmVha3BvaW50czogKFxuICAgIG1vYmlsZTogIDQwZW0sXG4gICAgdGFibGV0OiAgNjRlbSxcbiAgICBkZXNrdG9wOiA5MGVtLFxuICAgIHdpZGU6ICAgIDEyMGVtXG4pO1xuXG4iLCJoMSwgaDIsIGgzLCBoNCwgaDUge1xuXHRmb250LWZhbWlseTogJGhlYWRpbmdzLWZvbnQtZmFtaWx5O1xuXHRjbGVhcjogYm90aDtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0bGluZS1oZWlnaHQ6IDEuMTtcblx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxufVxuXG5oMSwgLmgxIHsgQGluY2x1ZGUgZm9udC1zaXplKDIuNSAqICRzY2FsZSk7ICAgfSBcdC8vIDMycHhcbmgyLCAuaDIgeyBAaW5jbHVkZSBmb250LXNpemUoMi4xMjUgKiAkc2NhbGUpOyB9IFx0Ly8gMjdweFxuaDMsIC5oMyB7IEBpbmNsdWRlIGZvbnQtc2l6ZSgxLjg3NSAqICRzY2FsZSk7IH0gXHQvLyAyMnB4XG5oNCwgLmg0IHsgQGluY2x1ZGUgZm9udC1zaXplKDEuMzc1ICogJHNjYWxlKTsgfSBcdC8vIDE4cHhcbmg1LCAuaDUgeyBAaW5jbHVkZSBmb250LXNpemUoMSk7IFx0IFx0XHQgIH0gXHQvLyAxNnB4XG5oNiwgLmg2IHsgQGluY2x1ZGUgZm9udC1zaXplKDAuODc1KTsgXHRcdCB9IFx0XHQvLyAxNHB4XG5cbkBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcblx0aDEsIC5oMSB7IEBpbmNsdWRlIGZvbnQtc2l6ZSgyLjUpOyBcdCB9IFx0Ly8gNDBweFxuXHRoMiwgLmgyIHsgQGluY2x1ZGUgZm9udC1zaXplKDIuMTI1KTsgfSBcdC8vIDM0cHhcblx0aDMsIC5oMyB7IEBpbmNsdWRlIGZvbnQtc2l6ZSgxLjg3NSk7IH0gXHQvLyAyOHB4XG5cdGg0LCAuaDQgeyBAaW5jbHVkZSBmb250LXNpemUoMS4zNzUpOyB9IFx0Ly8gMjJweFxufSIsInAge1xuXHRtYXJnaW46IDFlbSAwO1xufVxuXG5kZm4sIGNpdGUsIGVtLCBpIHtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5ibG9ja3F1b3RlIHtcblx0bWFyZ2luOiAwIDEuNWVtO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cblxuYWRkcmVzcyB7XG5cdG1hcmdpbjogMCAwIDEuNWVtO1xufVxuXG5wcmUge1xuXHRiYWNrZ3JvdW5kOiAkY29sb3JfX2JhY2tncm91bmQtcHJlO1xuXHRmb250LWZhbWlseTogJGZvbnRfX3ByZTtcblx0QGluY2x1ZGUgZm9udC1zaXplKDAuOTM3NSk7XG5cdGxpbmUtaGVpZ2h0OiAkZm9udF9fbGluZS1oZWlnaHQtcHJlO1xuXHRtYXJnaW4tYm90dG9tOiAxLjZlbTtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHRvdmVyZmxvdzogYXV0bztcblx0cGFkZGluZzogMS42ZW07XG59XG5cbmNvZGUsIGtiZCwgdHQsIHZhciB7XG5cdGZvbnQtZmFtaWx5OiAkZm9udF9fY29kZTtcblx0QGluY2x1ZGUgZm9udC1zaXplKDAuOTM3NSk7XG59XG5cbmFiYnIsIGFjcm9ueW0ge1xuXHRib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjb2xvcl9fYm9yZGVyLWFiYnI7XG5cdGN1cnNvcjogaGVscDtcbn1cblxubWFyaywgaW5zIHtcblx0YmFja2dyb3VuZDogJGNvbG9yX19iYWNrZ3JvdW5kLWlucztcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5iaWcge1xuXHRmb250LXNpemU6IDEyNSU7XG59XG5cbiAiLCJodG1sIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7IC8qIEluaGVyaXQgYm94LXNpemluZyB0byBtYWtlIGl0IGVhc2llciB0byBjaGFuZ2UgdGhlIHByb3BlcnR5IGZvciBjb21wb25lbnRzIHRoYXQgbGV2ZXJhZ2Ugb3RoZXIgYmVoYXZpb3I7IHNlZSBodHRwOi8vY3NzLXRyaWNrcy5jb20vaW5oZXJpdGluZy1ib3gtc2l6aW5nLXByb2JhYmx5LXNsaWdodGx5LWJldHRlci1iZXN0LXByYWN0aWNlLyAqL1xuXHRib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG5ib2R5IHtcblx0QGluY2x1ZGUgZm9udC1zaXplKDEuMjUpO1xuXHRiYWNrZ3JvdW5kOiAkY29sb3JfX2JhY2tncm91bmQtYm9keTsgLyogRmFsbGJhY2sgZm9yIHdoZW4gdGhlcmUgaXMgbm8gY3VzdG9tIGJhY2tncm91bmQgY29sb3IgZGVmaW5lZC4gKi9cblx0LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IC8vIEFkZHJlc3NlcyBhIHNtYWxsIGlzc3VlIGluIHdlYmtpdDogaHR0cDovL2JpdC5seS9ORWRvRHFcbn1cblxuYmxvY2txdW90ZSwgcSB7XG5cdHF1b3RlczogXCJcIiBcIlwiO1xuXG5cdCY6YmVmb3JlLFxuXHQmOmFmdGVyIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHR9XG59XG5cbmhyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX19iYWNrZ3JvdW5kLWhyO1xuXHRib3JkZXI6IDA7XG5cdGhlaWdodDogMXB4O1xuXHRtYXJnaW4tYm90dG9tOiAxLjVlbTtcbn1cblxuQGltcG9ydCBcImxpc3RzXCI7XG5cbmltZyB7XG5cdGhlaWdodDogYXV0bzsgXHRcdC8qIE1ha2Ugc3VyZSBpbWFnZXMgYXJlIHNjYWxlZCBjb3JyZWN0bHkuICovXG5cdG1heC13aWR0aDogMTAwJTsgXHQvKiBBZGhlcmUgdG8gY29udGFpbmVyIHdpZHRoLiAqL1xufVxuXG5AaW1wb3J0IFwidGFibGVzXCI7IiwidWwsIG9sIHtcblx0bWFyZ2luOiAwIDAgMS41ZW0gM2VtO1xufVxuXG51bCB7XG5cdGxpc3Qtc3R5bGU6IGRpc2M7XG5cdCYubm8tLWJ1bGxldHMge1xuXHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHR9XG5cdCYubGlzdC0taW5saW5lIHtcblx0XHRsaSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0fVx0XG5cdH1cbn1cblxub2wge1xuXHRsaXN0LXN0eWxlOiBkZWNpbWFsO1xufVxuXG5saSA+IHVsLFxubGkgPiBvbCB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cdG1hcmdpbi1sZWZ0OiAxLjVlbTtcbn1cblxuZHQge1xuXHRmb250LXdlaWdodDogYm9sZDtcbn1cblxuZGQge1xuXHRtYXJnaW46IDAgMS41ZW0gMS41ZW07XG59IiwidGFibGUge1xuXHRtYXJnaW46IDAgMCAxLjVlbTtcblx0d2lkdGg6IDEwMCU7XG59IiwiLmJ0biB7XG5cdEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKCk7XG5cdEBpbmNsdWRlIGZvbnQtc2l6ZSgxLjEyNSk7XG5cdGZvbnQtZmFtaWx5OiAkbWVkaXVtLWZvbnQtZmFtaWx5O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBhZGRpbmc6IDZweCAxNHB4O1xuXHRjb2xvcjogI2ZmZjtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR3aWR0aDogMTAwJTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcblx0XHR3aWR0aDogYXV0bztcblx0fVxuXG5cdC8vIFZhcmlhdGlvbnNcblx0Ji0tZnVsbCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG5cblx0Ly8gVGhlbWVzXG5cdCYtLXRoZW1lIHtcblx0XHQuYnJhbmQgJiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBwYWxldHRlKGJyYW5kKTtcblx0XHR9XG5cdFx0Lm1hZ2VudGEgJiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBwYWxldHRlKGJyYW5kLCBpbnRlbnNlKTtcblx0XHR9XG5cdFx0LmxpZ2h0ICYge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcGFsZXR0ZShicmFuZCwgbGlnaHQpO1xuXHRcdH1cblx0fVxuXG5cdC8vIEdob3N0XG5cdCYtLWdob3N0IHtcblx0XHRib3JkZXI6IHNvbGlkIDNweCAjZmZmO1xuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRcdGNvbG9yOiAjMDAwO1xuXHRcdH1cblx0fVxuXG5cdC8vIE1vcmVcblx0Ji0tbW9yZSB7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRtYXJnaW4tdG9wOiBndXR0ZXIoNik7XG5cdH1cbn1cblxuLy8gYnV0dG9uLFxuLy8gaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbi8vIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbi8vIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuLy8gXHRib3JkZXI6IDFweCBzb2xpZDtcbi8vIFx0Ym9yZGVyLWNvbG9yOiAkY29sb3JfX2JvcmRlci1idXR0b247XG4vLyBcdGJvcmRlci1yYWRpdXM6IDNweDtcbi8vIFx0YmFja2dyb3VuZDogJGNvbG9yX19iYWNrZ3JvdW5kLWJ1dHRvbjtcbi8vIFx0Ym94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSksIGluc2V0IDAgMTVweCAxN3B4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSwgaW5zZXQgMCAtNXB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbi8vIFx0Y29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpO1xuLy8gXHRAaW5jbHVkZSBmb250LXNpemUoMC43NSk7XG4vLyBcdGxpbmUtaGVpZ2h0OiAxO1xuLy8gXHRwYWRkaW5nOiAuNmVtIDFlbSAuNGVtO1xuLy8gXHR0ZXh0LXNoYWRvdzogMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG5cbi8vIFx0Jjpob3ZlciB7XG4vLyBcdFx0Ym9yZGVyLWNvbG9yOiAkY29sb3JfX2JvcmRlci1idXR0b24taG92ZXI7XG4vLyBcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCksIGluc2V0IDAgMTVweCAxN3B4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSwgaW5zZXQgMCAtNXB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjAyKTtcbi8vIFx0fVxuXG4vLyBcdCY6YWN0aXZlLFxuLy8gXHQmOmZvY3VzIHtcbi8vIFx0XHRib3JkZXItY29sb3I6ICRjb2xvcl9fYm9yZGVyLWJ1dHRvbi1mb2N1cztcbi8vIFx0XHRib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSksIGluc2V0IDAgMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuLy8gXHR9XG4vLyB9IiwiLy8gR3V0dGVyIFN5bnRheFxuLy8gPT09PT09PT09PT09PVxuXG5cbi8vIEd1dHRlcnNcbi8vIC0tLS0tLS1cbi8vIFNldCBndXR0ZXJzIG9uIGFuIGVsZW1lbnQuXG4vLyAtIFskc3Bhbl0gICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBndXR0ZXJzKFxuICAkc3BhbjogJHN1c3lcbikge1xuICAkaW5zcGVjdCAgOiAkc3BhbjtcbiAgJHNwYW4gICAgIDogcGFyc2UtZ3V0dGVycygkc3Bhbik7XG4gICRfZ3V0dGVycyA6IGdldC1ndXR0ZXJzKCRzcGFuKTtcblxuICAkX291dHB1dDogKFxuICAgIGJlZm9yZTogbWFwLWdldCgkX2d1dHRlcnMsIGJlZm9yZSksXG4gICAgYWZ0ZXI6IG1hcC1nZXQoJF9ndXR0ZXJzLCBhZnRlciksXG4gICAgZmxvdzogc3VzeS1nZXQoZmxvdywgJHNwYW4pLFxuICApO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChndXR0ZXJzLCAkaW5zcGVjdCk7XG5cbiAgQGlmIGlzLWluc2lkZSgkc3Bhbikge1xuICAgIEBpbmNsdWRlIHBhZGRpbmctb3V0cHV0KCRfb3V0cHV0Li4uKTtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgbWFyZ2luLW91dHB1dCgkX291dHB1dC4uLik7XG4gIH1cbn1cblxuQG1peGluIGd1dHRlcihcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgQGluY2x1ZGUgZ3V0dGVycygkc3Bhbik7XG59XG5cblxuLy8gR3V0dGVyXG4vLyAtLS0tLS1cbi8vIFJldHVybiB0aGUgd2lkdGggb2YgYSBndXR0ZXIuXG4vLyAtIFskc3Bhbl0gICA6IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBndXR0ZXIoXG4gICRzcGFuOiAkc3VzeVxuKSB7XG4gICRzcGFuOiBwYXJzZS1ndXR0ZXJzKCRzcGFuKTtcblxuICAkX2d1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcbiAgJF9ndXR0ZXJzOiBtYXAtZ2V0KCRfZ3V0dGVycywgYmVmb3JlKSBvciBtYXAtZ2V0KCRfZ3V0dGVycywgYWZ0ZXIpO1xuXG4gIEByZXR1cm4gJF9ndXR0ZXJzO1xufVxuXG5AZnVuY3Rpb24gZ3V0dGVycyhcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgQHJldHVybiBndXR0ZXIoJHNwYW4pO1xufVxuXG5cbi8vIEdldCBHdXR0ZXIgV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBndXR0ZXIgd2lkdGguXG4vLyAtIFskY29udGV4dF06IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGdldC1ndXR0ZXItd2lkdGgoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRjb250ZXh0ICA6IHBhcnNlLWd1dHRlcnMoJGNvbnRleHQpO1xuXG4gICRfZ3V0dGVycyA6IHN1c3ktZ2V0KGd1dHRlcnMsICRjb250ZXh0KTtcbiAgJF9ndXR0ZXIgIDogc3VzeS1nZXQoZ3V0dGVyLW92ZXJyaWRlLCAkY29udGV4dCk7XG5cbiAgQGlmICRfZ3V0dGVycyBhbmQgKCRfZ3V0dGVycyA+IDApIGFuZCBub3QoJF9ndXR0ZXIpIHtcbiAgICAkX2NvbHVtbi13aWR0aDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkY29udGV4dCk7XG4gICAgJF9tYXRoOiBndXR0ZXItbWF0aCgkY29udGV4dCk7XG4gICAgQGlmICRfbWF0aCA9PSBzdGF0aWMge1xuICAgICAgJF9ndXR0ZXI6ICRfZ3V0dGVycyAqIHZhbGlkLWNvbHVtbi1tYXRoKCRfbWF0aCwgJF9jb2x1bW4td2lkdGgpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJF9jb2x1bW5zIDogc3VzeS1nZXQoY29sdW1ucywgJGNvbnRleHQpO1xuICAgICAgJF9zcHJlYWQgIDogaWYoaXMtc3BsaXQoJGNvbnRleHQpLCB3aWRlLCBzdXN5LWdldChzcHJlYWQsICRjb250ZXh0KSk7XG4gICAgICAkX2d1dHRlciAgOiBwZXJjZW50YWdlKCRfZ3V0dGVycyAvIHN1c3ktc3VtKCRfY29sdW1ucywgJF9ndXR0ZXJzLCAkX3NwcmVhZCkpO1xuICAgIH1cbiAgfVxuXG4gICRfZ3V0dGVyOiBpZigkX2d1dHRlciA9PSAnbm8tZ3V0dGVycycgb3IgJF9ndXR0ZXIgPT0gJ25vLWd1dHRlcicsIG51bGwsICRfZ3V0dGVyKTtcblxuICBAcmV0dXJuICRfZ3V0dGVyO1xufVxuXG5cbi8vIEdldCBHdXR0ZXJzXG4vLyAtLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGJlZm9yZSBhbmQgYWZ0ZXIgZ3V0dGVyIHZhbHVlcy5cbi8vIC0gWyRjb250ZXh0XTogPGNvbnRleHQ+XG5AZnVuY3Rpb24gZ2V0LWd1dHRlcnMoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRjb250ZXh0ICAgICAgICAgICAgOiBwYXJzZS1ndXR0ZXJzKCRjb250ZXh0KTtcblxuICAkX2d1dHRlci1wb3NpdGlvbiAgIDogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCk7XG4gICRfZ3V0dGVyICAgICAgICAgICAgOiBnZXQtZ3V0dGVyLXdpZHRoKCRjb250ZXh0KTtcblxuICAkX3JldHVybiAgICAgICAgICAgIDogKGJlZm9yZTogbnVsbCwgYWZ0ZXI6IG51bGwpO1xuXG4gIEBpZiBpcy1zcGxpdCgkY29udGV4dCkgYW5kICRfZ3V0dGVyIHtcbiAgICAkX2d1dHRlcjogJF9ndXR0ZXIgLyAyO1xuICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIChiZWZvcmU6ICRfZ3V0dGVyLCBhZnRlcjogJF9ndXR0ZXIpKTtcbiAgfSBAZWxzZSB7XG4gICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKCRfZ3V0dGVyLXBvc2l0aW9uOiAkX2d1dHRlcikpO1xuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cblxuXG4vLyBJcyBJbnNpZGVcbi8vIC0tLS0tLS0tLVxuLy8gUmV0dXJucyB0cnVlIGlmIGd1dHRlcnMgYXJlIGluc2lkZS5cbi8vICRjb250ZXh0OiA8Y29udGV4dD5cbkBmdW5jdGlvbiBpcy1pbnNpZGUoXG4gICRjb250ZXh0XG4pIHtcbiAgJF9pbnNpZGU6IGluc2lkZSBpbnNpZGUtc3RhdGljO1xuICAkX2d1dHRlci1wb3NpdGlvbjogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCk7XG5cbiAgQHJldHVybiBpZihpbmRleCgkX2luc2lkZSwgJF9ndXR0ZXItcG9zaXRpb24pLCB0cnVlLCBmYWxzZSk7XG59XG5cblxuLy8gSXMgU3BsaXRcbi8vIC0tLS0tLS0tXG4vLyBSZXR1cm5zIHRydWUgaWYgZ3V0dGVycyBhcmUgc3BsaXQuXG4vLyAkY29udGV4dDogPGNvbnRleHQ+XG5AZnVuY3Rpb24gaXMtc3BsaXQoXG4gICRjb250ZXh0XG4pIHtcbiAgJF9zcGxpdDogc3BsaXQgaW5zaWRlIGluc2lkZS1zdGF0aWM7XG4gICRfZ3V0dGVyLXBvc2l0aW9uOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRjb250ZXh0KTtcblxuICBAcmV0dXJuIGlmKGluZGV4KCRfc3BsaXQsICRfZ3V0dGVyLXBvc2l0aW9uKSwgdHJ1ZSwgZmFsc2UpO1xufVxuXG5cbi8vIEd1dHRlciBNYXRoXG4vLyAtLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSBtYXRoIHRvIHVzZSBmb3IgZ3V0dGVyIGNhbGN1bGF0aW9uc1xuLy8gJGNvbnRleHQ6IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGd1dHRlci1tYXRoKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkX3JldHVybiAgOiBzdXN5LWdldChtYXRoLCAkY29udGV4dCk7XG4gICRfcmV0dXJuICA6IGlmKHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJGNvbnRleHQpID09IGluc2lkZS1zdGF0aWMsIHN0YXRpYywgJF9yZXR1cm4pO1xuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG4iLCJpbnB1dFt0eXBlPVwidGV4dFwiXSxcbmlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbmlucHV0W3R5cGU9XCJ1cmxcIl0sXG5pbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxudGV4dGFyZWEge1xuXHRjb2xvcjogJGNvbG9yX190ZXh0LWlucHV0O1xuXHRib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfX2JvcmRlci1pbnB1dDtcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXG5cdCY6Zm9jdXMge1xuXHRcdGNvbG9yOiAkY29sb3JfX3RleHQtaW5wdXQtZm9jdXM7XG5cdH1cbn1cblxuaW5wdXRbdHlwZT1cInRleHRcIl0sXG5pbnB1dFt0eXBlPVwiZW1haWxcIl0sXG5pbnB1dFt0eXBlPVwidXJsXCJdLFxuaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG5cdHBhZGRpbmc6IDNweDtcblx0d2lkdGg6IDEwMCU7XG59XG5cbnRleHRhcmVhIHtcblx0cGFkZGluZy1sZWZ0OiAzcHg7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4vKiB0dXJuIGl0IHRvIHNlbGVjdCAqL1xuLmRyb3AtZG93bi1jYXRzIHtcblx0d2lkdGg6IDIxMHB4O1xuXHRoZWlnaHQ6IDQwcHg7XG5cdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdGJhY2tncm91bmQ6ICNmZmY7XG4gICBAaW5jbHVkZSB0cmFuc2l0aW9uaWZ5O1xuICAgXHRcbn1cblxuXG4udHJpZ2dlcntcblx0XHRcdGhlaWdodDogNDBweDtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChpbWcvZG93bi1hcnJvdy5wbmcpO1xuICBcdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgXHRcdFx0YmFja2dyb3VuZC1zaXplOiAyNXB4IDEycHg7XG4gICBcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxODBweDtcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRjb2xvcjogIzAwMDtcblx0XHRcdGxpbmUtaGVpZ2h0OiA0MHB4O1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAuNWVtO1xuXHRcdH1cblx0XHQgXG5cdFx0LmFjdGl2ZXRyaWdnZXJ7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRjb2xvcjogIzAwMDtcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRoZWlnaHQ6IDQwcHg7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OjFlbTtcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7XG5cdFx0XHRsaW5lLWhlaWdodDogNDBweDtcblx0XHRcdHBhZGRpbmctbGVmdDogLjVlbTtcblx0XHR9XG5cdFx0Lyogc3R5bGUgb2YgdGhlIFVMICovXG5cdFx0LmRyb3Bjb250YWluZXIgdWx7XG5cdFx0XHRiYWNrZ3JvdW5kOiNmZmY7XG5cdFx0XHQgXG5cdFx0XHRib3JkZXItYm90dG9tOm5vbmU7XG5cdFx0XHRsaXN0LXN0eWxlLXR5cGU6bm9uZTtcblx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdG1hcmdpbjowO1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdH1cblx0XHQuZHJvcGRvd25oaWRkZW57XG5cdFx0XHR0b3A6MDtcblx0XHRcdGxlZnQ6LTk5OWVtO1xuXHRcdH1cblx0XHQuZHJvcGRvd252aXNpYmxle1xuXHRcdFx0dG9wOjA7XG5cdFx0XHRsZWZ0OjA7XG5cdFx0fVxuXHRcdC5kcm9wY29udGFpbmVyIHVsIGF7XG5cdFx0XHRwYWRkaW5nOjAgLjVlbTtcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjpub25lO1xuXHRcdFx0Y29sb3I6IzY2Njtcblx0XHRcdGhlaWdodDogNDBweDtcblx0XHR9XG5cdFx0LmRyb3Bjb250YWluZXIgdWwgYTpob3Zlcntcblx0XHRcdGJhY2tncm91bmQ6I2NjYztcblx0XHR9XG5cdFx0LmRyb3Bjb250YWluZXJ7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdHotaW5kZXg6IDM7XG5cdFx0fSIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0IFwibGlua3NcIjtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyMgTWVudXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBpbXBvcnQgXCJtZW51c1wiOyIsImEge1xuXHQvLyBjb2xvcjogJGNvbG9yX19saW5rO1xuXG5cdCY6dmlzaXRlZCB7XG5cdFx0Ly8gY29sb3I6ICRjb2xvcl9fbGluay12aXNpdGVkO1xuXHR9XG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHQvLyBjb2xvcjogJGNvbG9yX19saW5rLWhvdmVyO1xuXHR9XG5cdCY6Zm9jdXMge1xuXHRcdG91dGxpbmU6IHRoaW4gZG90dGVkO1xuXHR9XG5cdCY6aG92ZXIsXG5cdCY6YWN0aXZlIHtcblx0XHRvdXRsaW5lOiAwO1xuXHR9XG59IiwiLnNpbmdsZS1jYXNlLXN0dWR5IHtcblx0Lm1haW4tbmF2aWdhdGlvbiAge1xuXHRcdGxpIHtcblx0XHRcdCYubWVudS1pdGVtLTEzIHtcblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0Y29sb3I6ICMxZmQ3OTY7XG5cdFx0XHRcdFx0QGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCkge1xuXHRcdFx0XHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgIzFmZDc5Njtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbi5tYWluLW5hdmlnYXRpb24ge1xuXHQvLyBjbGVhcjogYm90aDtcblx0Ly8gZGlzcGxheTogYmxvY2s7XG5cdC8vIGZsb2F0OiBsZWZ0O1xuXHQvLyB3aWR0aDogMTAwJTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdGxpIHtcblx0XHRtYXJnaW46IDAgZ3V0dGVyKCk7XG5cdFx0Ji5jdXJyZW50LXBvc3QtYW5jZXN0b3IsICYuY3VycmVudC1wb3N0LXBhcmVudCwgJi5jdXJyZW50LXBhZ2UtYW5jZXN0b3Ige1xuXHRcdFx0YSB7XG5cdFx0XHRcdGNvbG9yOiAjMWZkNzk2O1xuXHRcdFx0XHRAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0KSB7XG5cdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgIzFmZDc5Njtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQmLmN1cnJlbnQtbWVudS1pdGVtIHtcblx0XHRcdGEge1xuXHRcdFx0XHRjb2xvcjogIzFmZDc5Njtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0XHRcdFx0QGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCkge1xuXHRcdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMWZkNzk2O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdGEge1xuXHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSgxLjEyNSk7XG5cdFx0Zm9udC1mYW1pbHk6ICdCcmFuZG9uVGV4dFdlYi1SZWd1bGFyJztcblx0XHRjb2xvcjogI2ZmZjtcblx0fVxuXG5cdHVsIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmctbGVmdDogMDtcblxuXHRcdHVsIHtcblx0XHRcdGJveC1zaGFkb3c6IDAgM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuMik7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMS41ZW07XG5cdFx0XHRsZWZ0OiAtOTk5ZW07XG5cdFx0XHR6LWluZGV4OiA5OTk5OTtcblxuXHRcdFx0dWwge1xuXHRcdFx0XHRsZWZ0OiAtOTk5ZW07XG5cdFx0XHRcdHRvcDogMDtcblx0XHRcdH1cblxuXHRcdFx0bGkge1xuXHRcdFx0XHQmOmhvdmVyID4gdWwsXG5cdFx0XHRcdCYuZm9jdXMgPiB1bCB7XG5cdFx0XHRcdFx0bGVmdDogMTAwJTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRhIHtcblx0XHRcdFx0d2lkdGg6IDIwMHB4O1xuXHRcdFx0fVxuXG5cdFx0XHQ6aG92ZXIgPiBhLFxuXHRcdFx0LmZvY3VzID4gYSB7XG5cdFx0XHR9XG5cblx0XHRcdGE6aG92ZXIsXG5cdFx0XHRhLmZvY3VzIHtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRsaTpob3ZlciA+IHVsLFxuXHRcdGxpLmZvY3VzID4gdWwge1xuXHRcdFx0bGVmdDogYXV0bztcblx0XHR9XG5cdH1cblx0bGkge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQmOmhvdmVyID4gYSxcblx0XHQmLmZvY3VzID4gYSB7XG5cdFx0fVxuXHR9XG5cdGEge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0fVxuXG5cdC5jdXJyZW50X3BhZ2VfaXRlbSA+IGEsXG5cdC5jdXJyZW50LW1lbnUtaXRlbSA+IGEsXG5cdC5jdXJyZW50X3BhZ2VfYW5jZXN0b3IgPiBhIHtcblx0fVxufVxuLm1lbnUtdG9wLW1lbnUtY29udGFpbmVyIHtcblx0bGVmdDogMTIwJTtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0bWluLWhlaWdodDogMTAwJTtcblx0cG9zaXRpb246IGZpeGVkO1xuXHR0b3A6IDBweDtcblx0cGFkZGluZzogNGVtIDAgNGVtIDA7XG5cdEBpbmNsdWRlIHRyYW5zaXRpb25pZnk7XG5cdEBpbmNsdWRlIG1xKCRmcm9tOiB0YWJsZXQpIHtcblx0XHR0b3A6IGF1dG87XG5cdFx0cGFkZGluZzogMDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bWluLWhlaWdodDogYXV0bztcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0bGVmdDogaW5oZXJpdDtcblx0XHR0b3A6IGluaGVyaXQ7XHRcblx0fVxufVxuXG4vKiBTbWFsbCBtZW51LiAqL1xuLm1lbnUtdG9nZ2xlLFxuLm1haW4tbmF2aWdhdGlvbi50b2dnbGVkIHVsIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGJhY2tncm91bmQ6ICMwMDA7XG5cdFx0cGFkZGluZzogNGVtIDAgNGVtIDA7XHRcblx0QGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCkge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IG5vbmU7XG5cdFx0cGFkZGluZzogMDtcblx0fVxufVxuLm1haW4tbmF2aWdhdGlvbi50b2dnbGVkIHtcblx0LmJhciB7IG9wYWNpdHk6IDA7IH07XG5cdC5iYXI6Zmlyc3QtY2hpbGQge1xuXHRcdG9wYWNpdHk6IDE7XHRcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cdFx0bWFyZ2luLXRvcDogMTBweDtcblx0fVxuXHQuYmFyOmxhc3QtY2hpbGQge1xuXHRcdG9wYWNpdHk6IDE7XHRcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuXHRcdG1hcmdpbi10b3A6IC0yMHB4O1x0XG5cdH1cblx0XG5cdHVsIHtcblx0XHRkaXNwbGF5OiBibG9jaztcdFxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRAaW5jbHVkZSBjbGVhcmZpeDtcblx0XHRcdFxuXHR9XG5cdGxpIHtcblx0XHRkaXNwbGF5OiBibG9jaztcdFxuXHR9XG5cdGEge1xuXHRcdGZvbnQtc2l6ZTogMzhweDtcdFxuXHR9XG5cdFxuXHRcblx0Lm1lbnUtdG9wLW1lbnUtY29udGFpbmVyIHtcblx0XHRcblx0XHRcblx0XG5cdFx0XG5cdFx0YmFja2dyb3VuZDogIzAwMDtcblx0XHRsZWZ0OiAwcHg7XG5cdH1cbn1cbi5tZW51LXRvZ2dsZSB7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdGJvcmRlcjogbm9uZTtcblx0b3V0bGluZTogbm9uZTtcblx0d2lkdGg6IDQ1cHg7XG5cdHBhZGRpbmctdG9wOiAwO1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcblx0XG5cdC5iYXIge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0bWFyZ2luOiA3cHggMDtcblx0XHRoZWlnaHQ6IDRweDtcblx0IFx0QGluY2x1ZGUgdHJhbnNpdGlvbmlmeTtcblx0fVxuXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogOTk5OTtcblxufVxuXG5AaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0KSB7XG5cdC5tZW51LXRvZ2dsZSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXHQubWFpbi1uYXZpZ2F0aW9uIHVsIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG4uY29tbWVudC1uYXZpZ2F0aW9uLFxuLnBvc3RzLW5hdmlnYXRpb24sXG4ucG9zdC1uYXZpZ2F0aW9uIHtcblxuXHQuc2l0ZS1tYWluICYge1xuXHRcdG1hcmdpbjogMCAwIDEuNWVtO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdH1cblxuXHQmIC5uYXYtcHJldmlvdXMge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdHdpZHRoOiA1MCU7XG5cdH1cblxuXHQmIC5uYXYtbmV4dCB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdHdpZHRoOiA1MCU7XG5cdH1cbn1cbi8qIGJsb2cgcG9zdCBhY3RpdmUgYmxvZyBuYXYgZml4IGZvciBwb3N0cyAgKi9cbi5zaW5nbGUtcG9zdCB7XG5ib3JkZXItYm90dG9tOiAxcHggc29saWQgIzFmZDc5Njtcbn0iLCIvKiBUZXh0IG1lYW50IG9ubHkgZm9yIHNjcmVlbiByZWFkZXJzLiAqL1xuLnNjcmVlbi1yZWFkZXItdGV4dCB7XG5cdGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogMXB4O1xuXHR3aWR0aDogMXB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdCY6aG92ZXIsXG5cdCY6YWN0aXZlLFxuXHQmOmZvY3VzIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfX2JhY2tncm91bmQtc2NyZWVuO1xuXHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRib3gtc2hhZG93OiAwIDAgMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNik7XG5cdFx0Y2xpcDogYXV0byAhaW1wb3J0YW50O1xuXHRcdGNvbG9yOiAkY29sb3JfX3RleHQtc2NyZWVuO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSgwLjg3NSk7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdGxlZnQ6IDVweDtcblx0XHRsaW5lLWhlaWdodDogbm9ybWFsO1xuXHRcdHBhZGRpbmc6IDE1cHggMjNweCAxNHB4O1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHR0b3A6IDVweDtcblx0XHR3aWR0aDogYXV0bztcblx0XHR6LWluZGV4OiAxMDAwMDA7IC8qIEFib3ZlIFdQIHRvb2xiYXIuICovXG5cdH1cbn0iLCIud2lkZ2V0IHtcblx0bWFyZ2luOiAwIDAgMS41ZW07XG5cblx0LyogTWFrZSBzdXJlIHNlbGVjdCBlbGVtZW50cyBmaXQgaW4gd2lkZ2V0cy4gKi9cblx0c2VsZWN0IHtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cbn1cblxuLyogU2VhcmNoIHdpZGdldC4gKi9cbi53aWRnZXRfc2VhcmNoIC5zZWFyY2gtc3VibWl0IHtcblx0ZGlzcGxheTogbm9uZTtcbn0iLCIuc2l0ZS1oZWFkZXIge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdHotaW5kZXg6IDEyO1xuXHRwYWRkaW5nOiBndXR0ZXIoNikgZ3V0dGVyKDEwKTtcblx0QGV4dGVuZCAlY2xlYXJmaXg7XG5cdEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpO1xuXHRAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0KSB7XG5cdFx0cGFkZGluZzogZ3V0dGVyKCkgMDtcblx0fVxuXHQubWFpbi1uYXZpZ2F0aW9uIHtcblx0XHRAaW5jbHVkZSBzcGFuKDMgbGFzdCk7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0QGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCkge1xuXHRcdFx0bWFyZ2luLXRvcDogNXB4O1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0QGluY2x1ZGUgc3Bhbig4KTtcblx0XHR9XG5cdH1cblxuXHQuY29udGFjdC11cyB7XG5cdFx0QGluY2x1ZGUgc3Bhbig2KTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0QGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCkge1xuXHRcdFx0QGluY2x1ZGUgc3BhbigyKTtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdH1cblx0fVxuXHQuc2l0ZS1icmFuZGluZyB7XG5cdFx0QGluY2x1ZGUgc3BhbigzKTtcblx0XHRAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0KSB7XG5cdFx0XHRAaW5jbHVkZSBzcGFuKDIpO1xuXHRcdH1cblx0fVxuXG5cdC5idG4ge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHBhbGV0dGUoYnJhbmQpO1xuXHR9XG5cblx0Ly8gUGluIC8gVW5waW5cblx0Ji0tdG9wIHtcblx0XHRcblx0fVxuXHQmLS1ub3QtdG9wIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuXHR9XG59XG5cbi8vIExvZ29cbi5sb2dvIHtcblx0QGluY2x1ZGUgcmV0aW5hLWJhY2tncm91bmQoJ2ltZy9sb2dvLW1vYmlsZScsIHBuZywgMzdweCwgbm8tcmVwZWF0KTtcblx0d2lkdGg6IDM3cHg7XG5cdGhlaWdodDogMzhweDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR0ZXh0LWluZGVudDogLTk5OWVtO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdEBpbmNsdWRlIG1xKCRmcm9tOiB0YWJsZXQpIHtcblx0XHRAaW5jbHVkZSByZXRpbmEtYmFja2dyb3VuZCgnaW1nL2xvZ28nLCBwbmcsIDE1N3B4LCBuby1yZXBlYXQpO1xuXHRcdHdpZHRoOiAxNTdweDtcblx0XHRoZWlnaHQ6IDI2cHg7XG5cdFx0dG9wOiA3cHg7XG5cdH1cbn1cblxuIiwiLy8gcmVtIFN1cHBvcnRcbi8vID09PT09PT09PT09XG5cbi8vIHJlbVxuLy8gLS0tXG4vLyBDaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3VwcG9ydCBtaXhpbiwgb3Igb3V0cHV0IGRpcmVjdGx5LlxuLy8gLSAkcHJvcCAgOiA8Y3NzIHByb3BlcnR5PlxuLy8gLSAkdmFsICAgOiA8Y3NzIHZhbHVlPlxuQG1peGluIHN1c3ktcmVtKFxuICAkcHJvcCxcbiAgJHZhbFxuKSB7XG4gICRfcmVxczogKFxuICAgIHZhcmlhYmxlOiByaHl0aG0tdW5pdCByZW0td2l0aC1weC1mYWxsYmFjayxcbiAgICBtaXhpbjogcmVtLFxuICApO1xuICBAaWYgc3VzeS1zdXBwb3J0KHJlbSwgJF9yZXFzLCAkd2FybjogZmFsc2UpIGFuZCAkcmh5dGhtLXVuaXQgPT0gcmVtIHtcbiAgICBAaW5jbHVkZSByZW0oJHByb3AsICR2YWwpO1xuICB9IEBlbHNlIHtcbiAgICAjeyRwcm9wfTogJHZhbDtcbiAgfVxufVxuIiwiLy8gU3BhbiBTeW50YXhcbi8vID09PT09PT09PT09XG5cbi8vIFNwYW4gW21peGluXVxuLy8gLS0tLS0tLS0tLS0tXG4vLyBTZXQgYSBzcGFubmluZyBlbGVtZW50IHVzaW5nIHNob3J0aGFuZCBzeW50YXguXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgJGluc3BlY3Q6ICRzcGFuO1xuICAkc3BhbjogcGFyc2Utc3Bhbigkc3Bhbik7XG4gICRvdXRwdXQ6IHNwYW4tbWF0aCgkc3Bhbik7XG4gICRuZXN0aW5nOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRjbGVhcjogc3VzeS1nZXQoY2xlYXIsICRzcGFuKTtcblxuICAkYm94OiBzdXN5LWdldChib3gtc2l6aW5nLCAkc3Bhbik7XG4gICRjb250ZW50LWJveDogaWYoc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpICE9ICdib3JkZXItYm94JywgdHJ1ZSwgZmFsc2UpO1xuICAkYm94OiAkYm94IG9yIGlmKGlzLWluc2lkZSgkc3BhbikgYW5kICRjb250ZW50LWJveCwgYm9yZGVyLWJveCwgbnVsbCk7XG5cbiAgQGlmICRjbGVhciA9PSBicmVhayB7XG4gICAgQGluY2x1ZGUgYnJlYWs7XG4gIH0gQGVsc2UgaWYgJGNsZWFyID09IG5vYnJlYWsge1xuICAgIEBpbmNsdWRlIG5vYnJlYWs7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3Qoc3BhbiwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRib3gpKTtcbiAgQGluY2x1ZGUgZmxvYXQtc3Bhbi1vdXRwdXQoJG91dHB1dC4uLik7XG5cbiAgQGlmIHZhbGlkLWNvbHVtbnMoJG5lc3RpbmcsIHNpbGVudCkge1xuICAgIEBpbmNsdWRlIG5lc3RlZCgkc3BhbikgeyBAY29udGVudDsgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBTcGFuIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSB3aWR0aCBvZiBhIHNwYW4uXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQGZ1bmN0aW9uIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgQHJldHVybiBnZXQtc3Bhbi13aWR0aCgkc3Bhbik7XG59XG5cbi8vIFNwYW4gTWF0aFxuLy8gLS0tLS0tLS0tXG4vLyBHZXQgYWxsIHRoZSBzcGFuIHJlc3VsdHMuXG4vLyAtICRzcGFuOiA8bWFwPlxuQGZ1bmN0aW9uIHNwYW4tbWF0aChcbiAgJHNwYW5cbikge1xuICAkbmVzdCAgICAgICAgICAgICA6IGlmKHN1c3ktZ2V0KHJvbGUsICRzcGFuKSA9PSBuZXN0LCB0cnVlLCBmYWxzZSk7XG4gICRzcGxpdC1uZXN0ICAgICAgIDogaWYoaXMtc3BsaXQoJHNwYW4pIGFuZCAkbmVzdCwgdHJ1ZSwgZmFsc2UpO1xuICAkZWRnZSAgICAgICAgICAgICA6IGdldC1lZGdlKCRzcGFuKTtcbiAgJGxvY2F0aW9uICAgICAgICAgOiBnZXQtbG9jYXRpb24oJHNwYW4pO1xuXG4gICRmbG9hdCAgICAgICAgICAgIDogZnJvbTtcbiAgJHBhZGRpbmctYmVmb3JlICAgOiBudWxsO1xuICAkcGFkZGluZy1hZnRlciAgICA6IG51bGw7XG4gICRtYXJnaW4tYmVmb3JlICAgIDogbnVsbDtcbiAgJG1hcmdpbi1hZnRlciAgICAgOiBudWxsO1xuXG4gIC8vIGNhbGN1bGF0ZSB3aWR0aHNcbiAgJHNwcmVhZDogaW5kZXgobWFwLXZhbHVlcygkc3BhbiksIHNwcmVhZCk7XG4gICRzcGFuOiBpZigkc3BsaXQtbmVzdCBhbmQgbm90KCRzcHJlYWQpLCBtYXAtbWVyZ2UoJHNwYW4sIChzcHJlYWQ6IHdpZGUpKSwgJHNwYW4pO1xuICAkd2lkdGg6IGdldC1zcGFuLXdpZHRoKCRzcGFuKTtcbiAgJGd1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcblxuICAvLyBhcHBseSBndXR0ZXJzXG4gIEBpZiBpcy1pbnNpZGUoJHNwYW4pIHtcbiAgICBAaWYgbm90KHN1c3ktZ2V0KHJvbGUsICRzcGFuKSkge1xuICAgICAgJHBhZGRpbmctYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJHBhZGRpbmctYWZ0ZXI6IG1hcC1nZXQoJGd1dHRlcnMsIGFmdGVyKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBub3QoJHNwbGl0LW5lc3QpIHtcbiAgICAgICRtYXJnaW4tYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJG1hcmdpbi1hZnRlcjogbWFwLWdldCgkZ3V0dGVycywgYWZ0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHNwZWNpYWwgbWFyZ2luIGhhbmRsaW5nXG4gIEBpZiBzdXN5LWdldChvdXRwdXQsICRzcGFuKSA9PSBpc29sYXRlIGFuZCAkbG9jYXRpb24ge1xuICAgICRtYXJnaW4tYmVmb3JlOiBnZXQtaXNvbGF0aW9uKCRzcGFuKTtcbiAgICAkbWFyZ2luLWFmdGVyOiAtMTAwJTtcbiAgfSBAZWxzZSBpZiAkZWRnZSB7XG4gICAgJGlzLXNwbGl0OiBpcy1zcGxpdCgkc3Bhbik7XG4gICAgJHBvczogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkc3Bhbik7XG5cbiAgICBAaWYgJGVkZ2UgPT0gbGFzdCB7XG4gICAgICAkZmxvYXQ6IHN1c3ktZ2V0KGxhc3QtZmxvdywgJHNwYW4pO1xuICAgIH1cblxuICAgIEBpZiBub3QoJGlzLXNwbGl0KSB7XG4gICAgICBAaWYgJGVkZ2UgPT0gZnVsbCBvciAoJGVkZ2UgPT0gZmlyc3QgYW5kICRwb3MgPT0gYmVmb3JlKSB7XG4gICAgICAgICRtYXJnaW4tYmVmb3JlOiAwO1xuICAgICAgfVxuICAgICAgQGlmICRlZGdlID09IGZ1bGwgb3IgKCRlZGdlID09IGxhc3QgYW5kICRwb3MgPT0gYWZ0ZXIpIHtcbiAgICAgICAgJG1hcmdpbi1hZnRlcjogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIEByZXR1cm4gKFxuICAgIHdpZHRoICAgICAgICAgICA6ICR3aWR0aCxcbiAgICBmbG9hdCAgICAgICAgICAgOiAkZmxvYXQsXG4gICAgbWFyZ2luLWJlZm9yZSAgIDogJG1hcmdpbi1iZWZvcmUsXG4gICAgbWFyZ2luLWFmdGVyICAgIDogJG1hcmdpbi1hZnRlcixcbiAgICBwYWRkaW5nLWJlZm9yZSAgOiAkcGFkZGluZy1iZWZvcmUsXG4gICAgcGFkZGluZy1hZnRlciAgIDogJHBhZGRpbmctYWZ0ZXIsXG4gICAgZmxvdyAgICAgICAgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pLFxuICApO1xufVxuXG4vLyBHZXQgU3BhbiBXaWR0aFxuLy8gLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBzcGFuIHdpZHRoLlxuLy8gLSAkc3BhbjogPG1hcD5cbkBmdW5jdGlvbiBnZXQtc3Bhbi13aWR0aChcbiAgJHNwYW5cbikge1xuICAkc3BhbiAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcblxuICAkbiAgICAgICAgOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRsb2NhdGlvbiA6IGdldC1sb2NhdGlvbigkc3Bhbik7XG4gICRjb2x1bW5zICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKTtcbiAgJGd1dHRlcnMgIDogc3VzeS1nZXQoZ3V0dGVycywgJHNwYW4pO1xuICAkc3ByZWFkICAgOiBzdXN5LWdldChzcHJlYWQsICRzcGFuKTtcblxuICAkY29udGV4dCAgOiBudWxsO1xuICAkc3Bhbi1zdW0gOiBudWxsO1xuICAkd2lkdGggICAgOiBudWxsO1xuXG4gIEBpZiAkbiA9PSAnZnVsbCcge1xuICAgICRwb3M6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pO1xuICAgICRyb2xlOiBzdXN5LWdldChyb2xlLCAkc3Bhbik7XG4gICAgJG46IGlmKCRwb3MgPT0gc3BsaXQgYW5kICRyb2xlICE9IG5lc3QsIHN1c3ktY291bnQoJGNvbHVtbnMpLCAxMDAlKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRuKSAhPSBudW1iZXIge1xuICAgIEB3YXJuIFwiKCN7dHlwZS1vZigkbil9KSAjeyRufSBpcyBub3QgYSB2YWxpZCBzcGFuLlwiO1xuICB9IEBlbHNlIGlmIHVuaXRsZXNzKCRuKSB7XG4gICAgJGNvbnRleHQ6IHN1c3ktc3VtKCRjb2x1bW5zLCAkZ3V0dGVycywgaWYoaXMtc3BsaXQoJHNwYW4pLCB3aWRlLCBuYXJyb3cpKTtcbiAgICAkc3ByZWFkOiBpZihpcy1pbnNpZGUoJHNwYW4pLCAkc3ByZWFkIG9yIHdpZGUsICRzcHJlYWQpO1xuICAgICRzcGFuLXN1bTogc3VzeSgkbiwgJGxvY2F0aW9uLCAkY29sdW1ucywgJGd1dHRlcnMsICRzcHJlYWQpO1xuXG4gICAgJF9tYXRoOiBzdXN5LWdldChtYXRoLCAkc3Bhbik7XG4gICAgJF9jb2x1bW4td2lkdGg6IHN1c3ktZ2V0KGNvbHVtbi13aWR0aCwgJHNwYW4pO1xuICAgIEBpZiAkX21hdGggPT0gc3RhdGljIHtcbiAgICAgICR3aWR0aDogJHNwYW4tc3VtICogdmFsaWQtY29sdW1uLW1hdGgoJF9tYXRoLCAkX2NvbHVtbi13aWR0aCk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJHNwYW4tc3VtIC8gJGNvbnRleHQpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJHdpZHRoOiAkbjtcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoO1xufVxuIiwiLy8gRGlyZWN0aW9uIEhlbHBlcnNcbi8vID09PT09PT09PT09PT09PT09XG5cbi8vIFN1c3kgRmxvdyBEZWZhdWx0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtIFBSSVZBVEVcbkBpbmNsdWRlIHN1c3ktZGVmYXVsdHMoKFxuICBmbG93OiBsdHIsXG4pKTtcblxuLy8gR2V0IERpcmVjdGlvblxuLy8gLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSAnZnJvbScgb3IgJ3RvJyBkaXJlY3Rpb24gb2YgYSBsdHIgb3IgcnRsIGZsb3cuXG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG4vLyAtIFska2V5XSAgIDogZnJvbSB8IHRvXG5AZnVuY3Rpb24gZ2V0LWRpcmVjdGlvbihcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpLFxuICAka2V5OiBmcm9tXG4pIHtcbiAgJHJldHVybjogaWYoJGZsb3cgPT0gcnRsLCAoZnJvbTogcmlnaHQsIHRvOiBsZWZ0KSwgKGZyb206IGxlZnQsIHRvOiByaWdodCkpO1xuICBAcmV0dXJuIG1hcC1nZXQoJHJldHVybiwgJGtleSk7XG59XG5cbi8vIFRvXG4vLyAtLVxuLy8gUmV0dXJuIHRoZSAndG8nIGRpcmVjdGlvbiBvZiBhIGZsb3dcbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBmdW5jdGlvbiB0byhcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgQHJldHVybiBnZXQtZGlyZWN0aW9uKCRmbG93LCB0byk7XG59XG5cbi8vIEZyb21cbi8vIC0tLS1cbi8vIFJldHVybiB0aGUgJ2Zyb20nIGRpcmVjdGlvbiBvZiBhIGZsb3dcbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBmdW5jdGlvbiBmcm9tKFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICBAcmV0dXJuIGdldC1kaXJlY3Rpb24oJGZsb3csIGZyb20pO1xufVxuIiwiLnNpdGUtZm9vdGVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwuNCk7XG5cdG91dGxpbmU6IG5vbmU7XG5cdC5zaXRlLWluZm8ge1xuXHRcdEBpbmNsdWRlIHdpdGgtbGF5b3V0KCRzdXN5LW1vYmlsZSkge1xuXHRcdFx0QGluY2x1ZGUgc3BhbigxMik7XG5cdFx0fVxuXHRcdGNvbG9yOiAjZmZmO1xuXHR9XG5cdGEge1xuXHRcdGNvbG9yOiAjZmZmO1xuXHR9XG5cdC5iYWNrLXRvcCB7XG5cdFx0Zm9udC1mYW1pbHk6ICRtZWRpdW0tZm9udC1mYW1pbHk7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzAwMDtcblx0XHRjb2xvcjogI2ZmZjtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwYWRkaW5nOiAyMHB4IDA7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRmb250LXNpemU6IC44ZW07XG5cdFx0aW1nIHtcblx0XHRcdHdpZHRoOiAyMHB4O1x0XG5cdFx0fVxuXHR9XG5cblx0LmNvbnRhaW5lciB7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRjb2xvcjogI2ZmZjtcblx0XHRAaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XG5cdFx0XHRoZWlnaHQ6IDgwMHB4O1xuXHRcdH1cblx0fVxufVxuLmZvb3Rlci13aWRnZXQge1xuXHRAaW5jbHVkZSBzcGFuKDEyKTtcblx0cCwgaDEsIGgyLCBoMywgaDQge1xuXHRcdGNvbG9yOiAjZmZmO1x0XG5cdH1cblx0cCB7XG5cdFx0Zm9udC1zaXplOiAuOGVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjVlbTtcdFxuXHR9XG5cdGEgeyBjb2xvcjogJF9jb2xvci1iYXNlLWJyYW5kOyB9XG5cdHN0cm9uZyB7XG5cdFx0bWFyZ2luLXRvcDogMTRweDtcblx0XHRmb250LXNpemU6IDEyMCU7XHRcblx0fVxuXHRAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0KSB7XG5cdFx0bWFyZ2luOiBndXR0ZXIoKSAwO1xuXHRcdEBpbmNsdWRlIHNwYW4oNCk7XHRcblx0fVxuXHRcbn1cbi5mb290ZXItd2lkZ2V0LXRvcCB7XG5cdHdpZHRoOiBzcGFuKDEyKTtcblx0LndpZGdldC10aXRsZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogZ3V0dGVyKDEwKTtcblx0XHRjb2xvcjogJF9jb2xvci1iYXNlLWJyYW5kO1xuXHR9XG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG4uZm9vdGVyLXdpZGdldC5sYXN0IHtcblx0QGluY2x1ZGUgc3Bhbig0IGxhc3QpO1xufVxuLmV4cC10d2l0dGVyIHtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKGltZy9pY29uLXR3aXR0ZXIucG5nKTtcblx0bWFyZ2luLWxlZnQ6IDJlbTtcbn1cbi5leHAtbGlua2VkaW4ge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1nL2ljb24tbGlua2VkaW4ucG5nKTtcblx0XG59XG4vKiBzb2NpYWwgZWxlbWVudHMgKi9cbi5leHAtdHdpdHRlciwgLmV4cC1saW5rZWRpbiB7XG5cdGEge1xuXHRcdGNvbG9yOiAjZmZmO1xuXHR9XG5cdGZvbnQtc2l6ZTogMTIwJTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRmb250LXdlaWdodDogNzAwO1x0XG5cdHdpZHRoOiA3MHB4O1xuXHRoZWlnaHQ6IDkwcHg7XG5cdGJhY2tncm91bmQtc2l6ZTogNTdweCA1N3B4O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gbGVmdDtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5AaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0KSB7XG5cdC5zb2NpYWwtd2lkZ2V0IHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxufVxuXG4uZm9vdGVyLWlubmVyIHtcblx0QGluY2x1ZGUgd2l0aC1sYXlvdXQoJHN1c3ktbW9iaWxlKSB7XG5cdFx0QGluY2x1ZGUgc3Bhbig0KTtcblx0XHRwYWRkaW5nLXRvcDogZ3V0dGVyKDMpO1xuXHRcdHBhZGRpbmctYm90dG9tOiBndXR0ZXIoMyk7XG5cdH1cblx0QGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCkge1xuXHRcdEBpbmNsdWRlIHNwYW4oMTIpO1xuXHRcdEBpbmNsdWRlIHZlcnRpY2FsLWFsaWduKCk7XG5cdH1cbn0iLCIvLyBQYWdlIGNvbG9ycyAvXG5cblxuLnN0aWNreSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uaGVudHJ5IHtcblx0LyogbWFyZ2luOiAwIDAgMS41ZW07ICovXG59XG5cbi5ieWxpbmUsXG4udXBkYXRlZDpub3QoLnB1Ymxpc2hlZCl7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zaW5nbGUgLmJ5bGluZSxcbi5ncm91cC1ibG9nIC5ieWxpbmUge1xuXHRkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5wYWdlLWNvbnRlbnQsXG4uZW50cnktY29udGVudCxcbi5lbnRyeS1zdW1tYXJ5IHtcblx0bWFyZ2luOiAxLjVlbSAwIDA7XG59XG4ucGFnZS50eXBlLXBhZ2Uge1xuXHRvdmVyZmxvdzogaGlkZGVuO1x0XG59XG4ucGFnZS1saW5rcyB7XG5cdGNsZWFyOiBib3RoO1xuXHRtYXJnaW46IDAgMCAxLjVlbTtcbn1cblxuXG4vLy8vIFBvc3RzXG4ucG9zdF9oZXJvX2ltYWdlIHtcblx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0cG9zaXRpb246IGZpeGVkO1xuXHR6LWluZGV4OiAtMTtcblx0dG9wOiAwO1xuIFx0bWluLWhlaWdodDogMTAwJTtcbiAgbWluLXdpZHRoOiAxMDI0cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgb3BhY2l0eTogLjM7XG4gIGhlaWdodDogYXV0bztcbiAgQGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuXHRvcGFjaXR5OiAuNTsgIFxuICB9XG4gICY6YmVmb3JlIHtcblx0IHBvc2l0aW9uOiBmaXhlZDtcblx0ei1pbmRleDogLTI7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7IFxuXHRiYWNrZ3JvdW5kOiAjMDAwO1xuICB9XG5cdFxufVxuLnBvc3QuaGVudHJ5IHtcblx0bWFyZ2luOiAwO1xufVxuQG1peGluIGFuZ2xlLWJveCB7XG5cdHotaW5kZXg6IDE7XG5cdGNvbnRlbnQ6IFwiIFwiO1xuXHRkaXNwbGF5OiBibG9jaztcblx0YmFja2dyb3VuZDogI2ZmZjtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogMTIwJTtcblx0aGVpZ2h0OiAyNDBweDtcblx0dG9wOiAtMyU7XG5cdGxlZnQ6IC00JTtcblx0dHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpO1xufVxuLnBvc3QgLmNvbnRhaW5lciB7XG5cdHBhZGRpbmc6IDBweCAwcHggMHB4IDBweDtcdFxuXHRAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0KSB7XG5cdFx0cGFkZGluZzogMWVtIDRlbSAxZW0gNGVtO1x0XG5cdH1cbn1cbi5wb3N0IC5wb3N0LWZlYXR1cmUge1xuXHRiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuXHRtYXJnaW4tdG9wOiAxNDBweDtcblx0cGFkZGluZzogM2VtIDJlbSAyZW0gMmVtO1xuXHRAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0KSB7XG5cdFx0cGFkZGluZzogNWVtIDRlbSAwZW0gNGVtO1xuXHR9XG5cdHotaW5kZXg6IDI7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5wb3N0LWNhdGVnb3J5IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHRyaWdodDogMDtcblx0bWFyZ2luOiBhdXRvO1xuXHR0b3A6IC0xNXB4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGEuY2F0LXRhZyB7XG5cdCBcdG1hcmdpbjogMDtcbiAgXHR9XG59XG5cbi5yZWxhdGVkLXBvc3RzLXNlY3Rpb24ge1xuXHRjbGVhcjogYm90aDtcblx0QGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuXHRcdEBpbmNsdWRlIHdpdGgtbGF5b3V0KCRzdXN5LW1vYmlsZSkge1xuXHRcdFx0QGluY2x1ZGUgc3Bhbig0KTtcblx0XHR9XG5cdH1cblx0QGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCkge1xuXHRcdEBpbmNsdWRlIHNwYW4oMTIpO1xuXHR9XG5cdGJhY2tncm91bmQ6ICNjY2M7XG5cdHBhZGRpbmc6IGd1dHRlcigxMCkgMDtcblx0LmNvbnRhaW5lciB7XG5cdFx0cGFkZGluZzogMDtcblx0fVxufVxuLnBvc3QtaGVhZGVyIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR6LWluZGV4OiAyO1x0XG4gICAuZW50cnktbWV0YSB7XG5cdFx0cGFkZGluZy1ib3R0b206IDEuM2VtO1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTMwMDdlO1xuXHRcdC5ieWxpbmUge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRjb2xvcjogI2UzMDA3ZTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0YSB7XG5cdFx0XHRcdGNvbG9yOiAjZTMwMDdlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRhIHtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdGNvbG9yOiAjMDAwO1x0XG5cdFx0fVxuXHR9XG59XG5cbi5wb3N0IHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcdFxufVxuLnBvc3QtY29udGVudCB7XG5cdEBpbmNsdWRlIHdpdGgtbGF5b3V0KCRzdXN5LW1vYmlsZSkge1xuXHRcdEBpbmNsdWRlIHNwYW4oNCk7XG5cdH1cblx0QGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCkge1xuXHRcdEBpbmNsdWRlIHNwYW4oMTApO1xuXHRcdG1hcmdpbi1sZWZ0OiBzcGFuKDEpO1xuXHR9XG59XG4ucG9zdC1zaWRlYmFyIHtcblx0QGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCkge1xuXHRAaW5jbHVkZSBzcGFuKDQpO1x0XG5cdH1cbn1cbi5wb3N0LXNlY3Rpb24sIC5maXJzdC1wb3N0LXNlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHR3aWR0aDogMTAwJTtcblx0cGFkZGluZzogMGVtIDJlbSAyZW0gMmVtO1xuXHRAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0KSB7XG5cdHBhZGRpbmc6IDYwcHg7XHRcblx0fVxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHRcbn1cbi5maXJzdC1wb3N0LXNlY3Rpb24ge1xuXHRwYWRkaW5nOiAwZW0gMGVtIDJlbSAwZW07XG5cdEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcblx0cGFkZGluZzogMmVtIDJlbSAyZW0gMmVtO1x0XG5cdH1cblx0QGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCkge1xuXHRwYWRkaW5nOiA2MHB4O1x0XG5cdH1cbn1cbi8vIHBvc3QgYm94IGZvcm1hdGluZyBcbi5wb3N0LWJveC13cmFwcGVyLFxuLnJlbGF0ZWQtaGVhZGVyIHtcblx0QGluY2x1ZGUgd2l0aC1sYXlvdXQoJHN1c3ktbW9iaWxlKSB7XG5cdFx0QGluY2x1ZGUgc3Bhbig0KTtcblx0fVxuXG5cdEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcblx0XHRAaW5jbHVkZSBzcGFuKDYpO1xuXHR9XG5cblx0QGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCkge1xuXHRcdEBpbmNsdWRlIHNwYW4oNCk7XG5cdH1cbn1cblxuLnJlbGF0ZWQtaGVhZGVyIHtcblx0bWFyZ2luLXRvcDogZ3V0dGVyKDIpO1xufVxuXG4ucG9zdC1ib3gge1xuXHRtYXJnaW4tYm90dG9tOiAyZW07XG5cdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdGJhY2tncm91bmQ6ICNGRkY7XG4gIFx0aDQgeyBtYXJnaW46IC0yNHB4IDAgMCAwOyBcdH1cbiAgLnBvc3QtYm94LWNvbnRlbnQge1xuXHQgIHotaW5kZXg6IDI7XG5cdCAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gIHAge1xuXHRAaW5jbHVkZSBmb250LXNpemUoMS4xMjUpO1xuXHRsaW5lLWhlaWdodDogMS4zO1xuICB9XG4gIC5wb3N0LWJveC10aHVtYiBpbWd7XG5cdCBAaW5jbHVkZSB0cmFuc2l0aW9uaWZ5O1xuXHQgd2lkdGg6IDEwMCU7XG4gIH1cbiAgYSB7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTsgIFxuXHRAaW5jbHVkZSB0cmFuc2l0aW9uaWZ5O1xuICB9XG4gIGE6aG92ZXIge1xuXHQgIC5wb3N0LWJveC10aHVtYiBpbWcge1xuXHRcdCAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xuXHQgIH1cbiAgfVxufVxuXG4uZmlyc3QtcG9zdC1zZWN0aW9uIHtcblx0LmNvbnRhaW5lciB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR6LWluZGV4OiAyO1x0XG5cdH1cbn1cblxuLnBvc3QtYm94LXRodW1iIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHQtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgIFx0YmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnBvc3QtYm94LXRodW1iOmFmdGVyIHtcblx0d2lkdGg6IDE0MCU7XG5cdGhlaWdodDogNDAlO1xuXHR0cmFuc2Zvcm06IHJvdGF0ZSgtNWRlZyk7XG5cdGNvbnRlbnQ6IFwiIFwiO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IC0xMiU7XG5cdGJvdHRvbTogLTEyJTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGJhY2tncm91bmQ6ICNmZmY7XG59XG4ucG9zdC1ib3gtY29udGVudCB7XG5cdHBhZGRpbmc6IDAgMS4zNWVtIDAgMS4zNWVtO1x0XG5cdHAsIGg1LCBoNCwgaDMge1xuXHRcdGNvbG9yOiAjMDAwO1x0XG5cdH1cbn1cbiBcbi5wb3N0LXNlY3Rpb24tYWR2ZXJ0IHtcblx0XG59XG4ucG9zdC1zZWN0aW9uLWFyZWEge1xuXHRiYWNrZ3JvdW5kOiAjMDAwO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdC5jb250YWluZXIge1xuXHRcdHBhZGRpbmctdG9wOiAzZW07XHRcblx0XHRwYWRkaW5nLWJvdHRvbTogM2VtO1xuXHR9XG5cdHAsIGgxLCBoMiwgaDMsIGg0LCBoNSwgbGFiZWwge1xuXHRcdGNvbG9yOiAjZmZmO1x0XG5cdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0fVxufVxuLnBvc3QtcXVvdGUge1xuXHRiYWNrZ3JvdW5kOiAjZTMwMDdlO1xuXHRcdC5jb250YWluZXIge1xuXHRcdFx0cGFkZGluZzogM2VtIDRlbSAzZW0gNGVtO1x0XG5cdFx0fVxuXHRcdGJsb2NrcXVvdGUge1xuXHRcdFx0bWFyZ2luOiAwZW07XG5cdFx0XHRwIHtcblx0XHRcdFx0Zm9udC1zaXplOiAxLjVlbTtcblx0XHRcdFx0Y29sb3I6ICNmZmY7XHRcblx0XHRcdH1cblx0XHRcdHN0cm9uZyB7XG5cdFx0XHRcdCBtYXJnaW4tdG9wOiAyMHB4O1xuXHRcdFx0XHRjb2xvcjogIzAwMDtcdFxuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0QGluY2x1ZGUgZm9udC1zaXplKDEuMjUpO1xuXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHRibG9ja3F1b3RlOmFmdGVyIHtcblx0XHRjb2xvcjogI2ZmZjtcblx0XHRjb250ZW50OiBcIlxcMjAxQ1wiO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGZvbnQtc2l6ZTogMTAuN2VtO1xuXHRcdG9wYWNpdHk6IC4xNTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogLS4yZW07XG5cdFx0dG9wOiAtLjVlbTtcblx0XHR9XG59XG4gXG4uZmlyc3QtcG9zdC1zZWN0aW9uOmFmdGVyIHtcblx0QGluY2x1ZGUgYW5nbGUtYm94O1xuXHR0b3A6IC0xMDBweDtcbn1cbi5wb3N0LWxhcmdlLWltYWdlIGltZyB7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG5hLmNhdC10YWcge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IFxuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRwYWRkaW5nOiAuMnJlbSAuNHJlbTtcblx0Zm9udC1zaXplOiA3NSU7XG5cdGNvbG9yOiAjZmZmO1xuXHRiYWNrZ3JvdW5kOiAjY2NjO1xuXHRtYXJnaW46IDBlbSAwIDEuMzVlbSAxLjM1ZW07XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcdFxuXHRmb250LWZhbWlseTogJG1lZGl1bS1mb250LWZhbWlseTtcblx0QGluY2x1ZGUgdHJhbnNpdGlvbmlmeTtcblx0LyomOmZpcnN0LWNoaWxkIHtcblx0XHRtYXJnaW46IDBlbSAwIDEuMzVlbSAwZW07XHQgXG5cdH0qL1xufVxuIFxuYS5jYXQtdGFnLmJsb2cge1xuXHRkaXNwbGF5OiBub25lO1x0XG59XG5cbmEuY2F0LXRhZzpob3ZlciB7XG5cdGJhY2tncm91bmQ6ICMwMDAgIWltcG9ydGFudDtcbn1cbiBcbi5wb3N0LXJvdyB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHQgQGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuXHRcdGRpc3BsYXk6IHRhYmxlLXJvdztcdFxuXHQgfVxufVxuXG4uYXJjaGl2ZS1wb3N0LXNlY3Rpb24ge1xuXHRAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0KSB7XG5cdFx0QGluY2x1ZGUgc3BhbigxMik7XG5cdH1cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHQuY29udGFpbmVyIHsgXG5cdFx0YmFja2dyb3VuZDogI2YyZjJmMjtcdFxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR6LWluZGV4OiAyO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1pbi1oZWlnaHQ6IDUwMHB4O1xuXHRcdEBpbmNsdWRlIHdpdGgtbGF5b3V0KCRzdXN5LW1vYmlsZSkge1xuXHRcdFx0cGFkZGluZy10b3A6IGd1dHRlcig0KTtcblx0XHR9XG5cdFx0QGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuXHRcdFx0cGFkZGluZzogMzBweCAxMHB4O1xuXHRcdH1cblx0fVxuXHRcblx0LnBvc3QtYm94IHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0YmFja2dyb3VuZDogI0ZGRjtcblx0fVxufVxuXG4ucG9zdC1oZWFkZXItY2F0ZWdvcnkuY29udGFpbmVyIHtcblx0cGFkZGluZzogNWVtIDJlbSAxZW0gMmVtO1x0XG5cdEBpbmNsdWRlIG1xKCRmcm9tOiB0YWJsZXQpIHtcblx0cGFkZGluZzogN2VtIDAgMWVtIDA7XHRcblx0fVxuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGgxLnBhZ2UtdGl0bGUsIHAge1xuXHRcdGNvbG9yOiAjZmZmO1xuXHR9XG59XG5cblxuLmFyY2hpdmUtcG9zdC1zZWN0aW9uOmFmdGVyIHtcblx0QGluY2x1ZGUgYW5nbGUtYm94O1xuXHRiYWNrZ3JvdW5kOiAjZjJmMmYyO1xuXHR0b3A6IDE4ZW07XG5cdHdpZHRoOiAyNDAlO1xuXHRoZWlnaHQ6IDQwMCU7XG5cdGxlZnQ6IDAlO1xufVxuLmRyb3AtZG93bi1jYXRzIHtcblx0d2lkdGg6IDIxMHB4O1xuXHRoZWlnaHQ6IDQwcHg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdG1hcmdpbi1yaWdodDogYXV0bztcblx0YmFja2dyb3VuZDogI2ZmZjtcbiAgIEBpbmNsdWRlIHRyYW5zaXRpb25pZnk7XG4gICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1nL2Rvd24tYXJyb3cucG5nKTtcbiAgXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgIFx0XHRcdGJhY2tncm91bmQtc2l6ZTogMjVweCAxMnB4O1xuICAgXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMTgwcHg7XG4gICAmOmhvdmVyICB7XG5cdCBjb2xvcjogIzAwMDsgIFxuICAgfVxuI2Ryb3Bkb3duLWNhdC1saXN0IHtcblx0LmNhdC1zZWxlY3Rpb24ge1xuXHRcdGxpbmUtaGVpZ2h0OiA0MHB4O1xuXHRcdHBhZGRpbmctbGVmdDogNHB4O1x0XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHR9XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0YSB7IGNvbG9yOiAjMDAwOyBcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRwYWRkaW5nOiAwIDAgMCAxZW07XG5cdGxpbmUtaGVpZ2h0OiA0MHB4O1xuXHRoZWlnaHQ6IDQwcHg7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOjEwMCU7XG5cdH1cblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bGkgeyBcblx0cGFkZGluZzogMDtcblx0bWFyZ2luOiAwO1xuXHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdHVse1xuXHRcdHotaW5kZXg6IDM7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bGVmdDogMDtcblx0XHR0b3A6IDQwcHg7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuIFx0XHRkaXNwbGF5OiBibG9jaztcbiAgXHRcdG92ZXJmbG93OiBoaWRkZW47XG4gIFx0XHR3aWR0aDogMjEwcHg7XG5cdFx0YTpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAjY2NjO1x0XG5cdFx0fVxuXHRcdFx0bGkge1x0XG5cdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0YmFja2dyb3VuZDogI2ZmZjtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdGhlaWdodDogMHB4O1xuXHRcdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uaWZ5O1x0XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5zaG93LWNhdHMge1xuXHRcdGxpIHsgaGVpZ2h0OiA0MHB4OyB9XG5cdH1cbn1cbiAgIFxuXHRzZWxlY3Qge1xuXHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgXG4gICBib3JkZXI6IDA7XG4gICBsaW5lLWhlaWdodDogMjBweDtcbiAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICBcdHdpZHRoOiAyMTBweDtcblx0aGVpZ2h0OiA0MHB4O1xuICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgfVxuICAgb3B0aW9uIHtcblx0IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0IGJvcmRlcjogbm9uZTtcblx0IHBhZGRpbmc6IDEuMmVtO1xuXHQgZm9udC1zaXplOiAyZW07XG5cdCBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LC44KTsgIFxuICAgfVxuICAgQGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogNS4yZW07XG5cdHJpZ2h0OiAwO1xuICAgfVxuICAgQGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCkge1xuXHQgXHR0b3A6IDcuNWVtOyAgXG4gICB9XG4gIHNlbGVjdDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcblx0fVxufVxuXG4ucG9zdC1oZWFkZXIge1xuXHRjb2xvcjogI2ZmZjtcdFxuXHRwYWRkaW5nOiAwZW07XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0aDEge1xuXHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSgyLjUgKiAkc2NhbGUpO1xuXHR9XG5cdEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcblx0XHRoMSB7XG5cdFx0XHRAaW5jbHVkZSBmb250LXNpemUoMi41KTtcdFxuXHRcdH1cblx0fVxuXHRoMSxoMixoMyxoNCxwIHtcblx0XHRcdGNvbG9yOiAjMDAwO1x0XG5cdFx0fVxuXHQucG9zdGVkLW9uIHtcblx0XHRjb2xvcjogIzAwMDtcdFxuXHR9XG59XG4uYXV0aG9yLWltYWdlIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRAaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XG5cdFx0QGluY2x1ZGUgc3BhbigyKTsgXG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxuXHRpbWcgeyBib3JkZXItcmFkaXVzOiA1MCU7IH1cbn1cbi5hdXRob3ItZGVzY3JpcHRpb24ge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcblx0XHRAaW5jbHVkZSBzcGFuKDEwKTsgXG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxufVxuLnBvc3QtYXJjaGl2ZSB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdC5wb3N0LWhlYWRlci5jb250YWluZXIge1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0cGFkZGluZzogNGVtIDAgNGVtIDA7XHRcblx0fVxufSAgXG4uYXV0aG9yLXNlY3Rpb24ge1xuXHRAaW5jbHVkZSB3aXRoLWxheW91dCgkc3VzeS1tb2JpbGUpIHtcblx0XHRAaW5jbHVkZSBzcGFuKDQpO1xuXHR9XG5cdEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcblx0XHRAaW5jbHVkZSB3aXRoLWxheW91dCgkc3VzeS1tb2JpbGUpIHtcblx0XHRcdEBpbmNsdWRlIHNwYW4oNCk7XG5cdFx0fVx0XG5cdH1cblx0QGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCkge1xuXHRcdEBpbmNsdWRlIHNwYW4oMTIpO1xuXHR9XG5cdGJhY2tncm91bmQ6ICNmZmY7XG5cdGNsZWFyOiBib3RoO1xuXHRwYWRkaW5nLXRvcDogZ3V0dGVyKDQpO1xuXHRwYWRkaW5nLWJvdHRvbTogZ3V0dGVyKDQpO1xuXHQuY29udGFpbmVyIHtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG59XG4jbWNfZW1iZWRfc2lnbnVwX3Njcm9sbCB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0aDQge1xuXHRcdGZvbnQtc2l6ZTogMS44ZW07XHRcblx0fVxufVxuXG4jbWNfZW1iZWRfc2lnbnVwIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHQucmVzcG9uc2Uge1xuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdG1heC13aWR0aDogNjAwcHg7XG5cdFx0bWFyZ2luLXRvcDogMjBweDtcblx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XHRcblx0fVxufVxuI21jX2VtYmVkX3NpZ251cCAubWMtZmllbGQtZ3JvdXAgaW5wdXQge1xuXHRoZWlnaHQ6IDUwcHg7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcdFxuXHRwYWRkaW5nLXJpZ2h0OiAyZW07XG5cdGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbiNtYy1lbWJlZGRlZC1zdWJzY3JpYmUuYnV0dG9uLCAjbWNfZW1iZWRfc2lnbnVwIC5idXR0b24sIHtcblx0Ym9yZGVyOiAxcHggc29saWQgI2ZmZjtcblx0aGVpZ2h0OiA1MHB4O1xuXHRsaW5lLWhlaWdodDogMjVweDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kOiAjMDAwO1xuXHRib3JkZXItcmFkaXVzOiAwcHg7XG5cdG1heC13aWR0aDogMjAwcHg7XG5cdHBhZGRpbmctbGVmdDogNDBweDtcblx0cGFkZGluZy1yaWdodDogNDBweDtcblx0Y29sb3I6ICNmZmY7XG5cdG1hcmdpbi1sZWZ0OiAxNnB4O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbiBcbiNtY2UtRU1BSUwge1xuXHRoZWlnaHQ6IDUwcHg7XG5cdGxpbmUtaGVpZ2h0OiAyNXB4O1xuXHRjb2xvcjogIzAwMDtcblx0bWF4LXdpZHRoOiAzMjBweDtcbn1cbi5tb3JlLXBvc3RzIHtcblx0bWF4LXdpZHRoOiA1MDBweDtcblx0QGluY2x1ZGUgY2xlYXJmaXg7XG5cdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAyO1xufSBcbi5uYXYtbGlua3MgYSB7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0Y29sb3I6ICMwMDA7XG5cdGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XG5cdHBhZGRpbmc6IC44ZW0gMS4yZW0gLjhlbSAxLjJlbTsgXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcdFxufSAgXG4iLCIuYmxvZyAuZm9ybWF0LWFzaWRlIC5lbnRyeS10aXRsZSxcbi5hcmNoaXZlIC5mb3JtYXQtYXNpZGUgLmVudHJ5LXRpdGxlIHtcblx0ZGlzcGxheTogbm9uZTtcbn0iLCIuY29tbWVudC1jb250ZW50IGEge1xuXHR3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG4uYnlwb3N0YXV0aG9yIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG4iLCIvLyBDb250YWluZXIgU3ludGF4XG4vLyA9PT09PT09PT09PT09PT09XG5cbi8vIENvbnRhaW5lciBbbWl4aW5dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2V0IGEgY29udGFpbmVyIGVsZW1lbnRcbi8vIC0gWyRsYXlvdXRdICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBjb250YWluZXIoXG4gICRsYXlvdXQ6ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgICAgOiAkbGF5b3V0O1xuICAkbGF5b3V0ICAgICA6IHBhcnNlLWdyaWQoJGxheW91dCk7XG5cbiAgJF93aWR0aCAgICAgOiBnZXQtY29udGFpbmVyLXdpZHRoKCRsYXlvdXQpO1xuICAkX2p1c3RpZnkgICA6IHBhcnNlLWNvbnRhaW5lci1wb3NpdGlvbihzdXN5LWdldChjb250YWluZXItcG9zaXRpb24sICRsYXlvdXQpKTtcbiAgJF9wcm9wZXJ0eSAgOiBpZihzdXN5LWdldChtYXRoLCAkbGF5b3V0KSA9PSBzdGF0aWMsIHdpZHRoLCBtYXgtd2lkdGgpO1xuXG4gICRfYm94ICAgICAgIDogc3VzeS1nZXQoYm94LXNpemluZywgJGxheW91dCk7XG5cbiAgQGlmICRfYm94IHtcbiAgICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRfYm94KSk7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoY29udGFpbmVyLCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIGZsb2F0LWNvbnRhaW5lcigkX3dpZHRoLCAkX2p1c3RpZnksICRfcHJvcGVydHkpO1xuICBAaW5jbHVkZSBzaG93LWdyaWQoJGxheW91dCk7XG59XG5cbi8vIENvbnRhaW5lciBbZnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGNvbnRhaW5lciB3aWR0aFxuLy8gLSBbJGxheW91dF0gIDogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGNvbnRhaW5lcihcbiAgJGxheW91dDogJHN1c3lcbikge1xuICAkbGF5b3V0OiBwYXJzZS1ncmlkKCRsYXlvdXQpO1xuICBAcmV0dXJuIGdldC1jb250YWluZXItd2lkdGgoJGxheW91dCk7XG59XG5cbi8vIEdldCBDb250YWluZXIgV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENhbGN1bGF0ZSB0aGUgY29udGFpbmVyIHdpZHRoXG4vLyAtIFskbGF5b3V0XTogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGdldC1jb250YWluZXItd2lkdGgoXG4gICRsYXlvdXQ6ICRzdXN5XG4pIHtcbiAgJGxheW91dCAgICAgICAgIDogcGFyc2UtZ3JpZCgkbGF5b3V0KTtcbiAgJF93aWR0aCAgICAgICAgIDogc3VzeS1nZXQoY29udGFpbmVyLCAkbGF5b3V0KTtcbiAgJF9jb2x1bW4td2lkdGggIDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkbGF5b3V0KTtcbiAgJF9tYXRoICAgICAgICAgIDogc3VzeS1nZXQobWF0aCwgJGxheW91dCk7XG5cbiAgQGlmIG5vdCgkX3dpZHRoKSBvciAkX3dpZHRoID09IGF1dG8ge1xuICAgIEBpZiB2YWxpZC1jb2x1bW4tbWF0aCgkX21hdGgsICRfY29sdW1uLXdpZHRoKSB7XG4gICAgICAkX2NvbHVtbnMgICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRsYXlvdXQpO1xuICAgICAgJF9ndXR0ZXJzICAgOiBzdXN5LWdldChndXR0ZXJzLCAkbGF5b3V0KTtcbiAgICAgICRfc3ByZWFkICAgIDogaWYoaXMtc3BsaXQoJGxheW91dCksIHdpZGUsIG5hcnJvdyk7XG4gICAgICAkX3dpZHRoICAgICA6IHN1c3ktc3VtKCRfY29sdW1ucywgJF9ndXR0ZXJzLCAkX3NwcmVhZCkgKiAkX2NvbHVtbi13aWR0aDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRfd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkX3dpZHRoO1xufVxuXG4vLyBQYXJzZSBDb250YWluZXIgUG9zaXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUGFyc2UgdGhlICRjb250YWluZXItcG9zaXRpb24gaW50byBtYXJnaW4gdmFsdWVzLlxuLy8gLSBbJGp1c3RpZnldICAgOiBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgfCA8bGVuZ3RoPiBbPGxlbmd0aD5dXG5AZnVuY3Rpb24gcGFyc2UtY29udGFpbmVyLXBvc2l0aW9uKFxuICAkanVzdGlmeTogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgY29udGFpbmVyLXBvc2l0aW9uKVxuKSB7XG4gICRfcmV0dXJuOiBpZigkanVzdGlmeSA9PSBsZWZ0LCAwLCBhdXRvKSBpZigkanVzdGlmeSA9PSByaWdodCwgMCwgYXV0byk7XG5cbiAgQGlmIG5vdChpbmRleChsZWZ0IHJpZ2h0IGNlbnRlciwgJGp1c3RpZnkpKSB7XG4gICAgJF9yZXR1cm46IG50aCgkanVzdGlmeSwgMSk7XG4gICAgJF9yZXR1cm46ICRfcmV0dXJuIGlmKGxlbmd0aCgkanVzdGlmeSkgPiAxLCBudGgoJGp1c3RpZnksIDIpLCAkX3JldHVybik7XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuIiwiLy8gU3VzeSBGYWxsYmFjayBDbGVhcmZpeFxuLy8gPT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIENsZWFyZml4XG4vLyAtLS0tLS0tLVxuLy8gQ2hlY2sgZm9yIGFuIGV4aXN0aW5nIHN1cHBvcnQgbWl4aW4sIG9yIHByb3ZpZGUgYSBzaW1wbGUgZmFsbGJhY2suXG5AbWl4aW4gc3VzeS1jbGVhcmZpeCB7XG4gIEBpZiBzdXN5LXN1cHBvcnQoY2xlYXJmaXgsIChtaXhpbjogY2xlYXJmaXgpKSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH0gQGVsc2Uge1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgfVxufVxuIiwiLyogR2xvYmFsbHkgaGlkZGVuIGVsZW1lbnRzIHdoZW4gSW5maW5pdGUgU2Nyb2xsIGlzIHN1cHBvcnRlZCBhbmQgaW4gdXNlLiAqL1xuLmluZmluaXRlLXNjcm9sbCAucG9zdHMtbmF2aWdhdGlvbiwgLyogT2xkZXIgLyBOZXdlciBQb3N0cyBOYXZpZ2F0aW9uIChhbHdheXMgaGlkZGVuKSAqL1xuLmluZmluaXRlLXNjcm9sbC5uZXZlcmVuZGluZyAuc2l0ZS1mb290ZXIgeyAvKiBUaGVtZSBGb290ZXIgKHdoZW4gc2V0IHRvIHNjcm9sbGluZykgKi9cblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLyogV2hlbiBJbmZpbml0ZSBTY3JvbGwgaGFzIHJlYWNoZWQgaXRzIGVuZCB3ZSBuZWVkIHRvIHJlLWRpc3BsYXkgZWxlbWVudHMgdGhhdCB3ZXJlIGhpZGRlbiAodmlhIC5uZXZlcmVuZGluZykgYmVmb3JlLiAqL1xuLmluZmluaXR5LWVuZC5uZXZlcmVuZGluZyAuc2l0ZS1mb290ZXIge1xuXHRkaXNwbGF5OiBibG9jaztcbn0iLCIucGFnZS1jb250ZW50IC53cC1zbWlsZXksXG4uZW50cnktY29udGVudCAud3Atc21pbGV5LFxuLmNvbW1lbnQtY29udGVudCAud3Atc21pbGV5IHtcblx0Ym9yZGVyOiBub25lO1xuXHRtYXJnaW4tYm90dG9tOiAwO1xuXHRtYXJnaW4tdG9wOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKiBNYWtlIHN1cmUgZW1iZWRzIGFuZCBpZnJhbWVzIGZpdCB0aGVpciBjb250YWluZXJzLiAqL1xuZW1iZWQsXG5pZnJhbWUsXG5vYmplY3Qge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIENhcHRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0IFwiY2FwdGlvbnNcIjtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyMgR2FsbGVyaWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0IFwiZ2FsbGVyaWVzXCI7IiwiLmdhbGxlcnkge1xuXHRtYXJnaW4tYm90dG9tOiAxLjVlbTtcbn1cblxuLmdhbGxlcnktaXRlbSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHR3aWR0aDogMTAwJTtcblxuXHQuZ2FsbGVyeS1jb2x1bW5zLTIgJiB7XG5cdFx0bWF4LXdpZHRoOiA1MCU7XG5cdH1cblxuXHQuZ2FsbGVyeS1jb2x1bW5zLTMgJiB7XG5cdFx0bWF4LXdpZHRoOiAzMy4zMyU7XG5cdH1cblxuXHQuZ2FsbGVyeS1jb2x1bW5zLTQgJiB7XG5cdFx0bWF4LXdpZHRoOiAyNSU7XG5cdH1cblxuXHQuZ2FsbGVyeS1jb2x1bW5zLTUgJiB7XG5cdFx0bWF4LXdpZHRoOiAyMCU7XG5cdH1cblxuXHQuZ2FsbGVyeS1jb2x1bW5zLTYgJiB7XG5cdFx0bWF4LXdpZHRoOiAxNi42NiU7XG5cdH1cblxuXHQuZ2FsbGVyeS1jb2x1bW5zLTcgJiB7XG5cdFx0bWF4LXdpZHRoOiAxNC4yOCU7XG5cdH1cblxuXHQuZ2FsbGVyeS1jb2x1bW5zLTggJiB7XG5cdFx0bWF4LXdpZHRoOiAxMi41JTtcblx0fVxuXG5cdC5nYWxsZXJ5LWNvbHVtbnMtOSAmIHtcblx0XHRtYXgtd2lkdGg6IDExLjExJTtcblx0fVxufVxuXG4uZ2FsbGVyeS1jYXB0aW9uIHtcblx0ZGlzcGxheTogYmxvY2s7XG59Il0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */
