@charset "UTF-8";
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after {
  content: "";
  content: none; }

q:before, q:after {
  content: "";
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

/**
* 1. Set default font family to sans-serif.
* 2. Prevent iOS and IE text size adjust after device orientation
*    change, without disabling
*    user zoom.
*/
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 8/9.
* 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
*/
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
* Prevent 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.
   */
[hidden] {
  display: none; }

/**
* Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
*/
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.666667em 0; }

/**
   * Address 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
   ========================================================================== */
/**
   * Remove border when inside `a` element in IE 8/9/10.
   */
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.
*/
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.
*/
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.
*/
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; }

/**
   * It's recommended that you don't attempt to style these elements.
   * Firefox's implementation doesn't respect box-sizing, padding, or width.
   *
   * 1. Address box sizing set to `content-box` in IE 8/9/10.
   * 2. Remove excess padding in IE 8/9/10.
   */
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'] {
  box-sizing: content-box; }

/**
* 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.
*/
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; }

.old-browsers {
  z-index: 9999;
  position: relative;
  background: #fff;
  width: 100%;
  height: 100%;
  color: black;
  font-family: sans-serif;
  font-size: 20px;
  text-align: center;
  padding: 0;
  margin: 0; }
  .old-browsers h2 {
    padding: 20px 0 20px 0; }
  .old-browsers p, .old-browsers ul {
    margin: 0 auto; }
  .old-browsers p {
    max-width: 700px;
    padding-bottom: 50px;
    line-height: 1.4em; }
  .old-browsers ul li {
    display: inline-block;
    padding: 0 25px; }
    .old-browsers ul li img {
      width: 115px; }
    .old-browsers ul li p {
      padding-top: 15px;
      color: #249AE1; }

body {
  margin: 0;
  padding: 0; }

/*  Syntax Quick Reference
  --------------------------
  column($ratios: 1, $offset: 0, $cycle: 0, $uncycle: 0, $gutter: $jeet-gutter)
  span($ratio: 1, $offset: 0)
  shift($ratios: 0, $col_or_span: column, $gutter: $jeet-gutter)
  unshift()
  edit()
  center($max_width: 1410px, $pad: 0)
  stack($pad: 0, $align: false)
  unstack()
  align($direction: both)
  cf()
*/
/**
 * Grid settings.
 * All values are defaults and can therefore be easily overidden.
 */
/**
 * List functions courtesy of the wonderful folks at Team Sass.
 * Check out their awesome grid: Singularity.
 */
/**
 * Get  percentage from a given ratio.
 * @param {number} [$ratio=1] - The column ratio of the element.
 * @returns {number} - The percentage value.
 */
/**
 * Work out the column widths based on the ratio and gutter sizes.
 * @param {number} [$ratios=1] - The column ratio of the element.
 * @param {number} [$gutter=$jeet-gutter] - The gutter for the column.
 * @returns {list} $width $gutter - A list containing the with and gutter for the element.
 */
/**
 * Get the set layout direction for the project.
 * @returns {string} $direction - The layout direction.
 */
/**
 * Replace a specified list value with a new value (uses built in set-nth() if available)
 * @param {list} $list - The list of values you want to alter.
 * @param {number} $index - The index of the list item you want to replace.
 * @param {*} $value - The value you want to replace $index with.
 * @returns {list} $list - The list with the value replaced or removed.
 * @warn if an invalid index is supplied.
 */
/**
 * Reverse a list (progressively enhanced for Sass 3.3)
 * @param {list} $list - The list of values you want to reverse.
 * @returns {list} $result - The reversed list.
 */
/**
 * Get the opposite direction to a given value.
 * @param {string} $dir - The direction you want the opposite of.
 * @returns {string} - The opposite direction to $dir.
 * @warn if an incorrect string is provided.
 */
/**
 * Style an element as a column with a gutter.
 * @param {number} [$ratios=1] - A width relative to its container as a fraction.
 * @param {number} [$offset=0] - A offset specified as a fraction (see $ratios).
 * @param {number} [$cycle=0] - Easily create an nth column grid where $cycle equals the number of columns.
 * @param {number} [$uncycle=0] - Undo a previous cycle value to allow for a new one.
 * @param {number} [$gutter=$jeet-gutter] - Specify the gutter width as a percentage of the containers width.
 */
/**
 * An alias for the column mixin.
 * @param [$args...] - All arguments get passed through to column().
 */
/**
 * Get the width of a column and nothing else.
 * @param {number} [$ratios=1] - A width relative to its container as a fraction.
 * @param {number} [$gutter=$jeet-gutter] - Specify the gutter width as a percentage of the containers width.
 */
/**
 * Get the gutter size of a column and nothing else.
 * @param {number} [ratios=1] - A width relative to its container as a fraction.
 * @param {number} [gutter=jeet.gutter] - Specify the gutter width as a percentage of the containers width.
 */
/**
 * An alias for the column-width function.
 * @param [$args...] - All arguments get passed through to column().
 */
/**
 * An alias for the column-gutter function.
 * @param [$args...] - All arguments get passed through to column().
 */
/**
 * Style an element as a column without any gutters for a seamless row.
 * @param {number} [$ratios=1] - A width relative to its container as a fraction.
 * @param {number} [$offset=0] - A offset specified as a fraction (see $ratios).
 * @param {number} [cycle=0] - Easily create an nth column grid where cycle equals the number of columns.
 * @param {number} [uncycle=0] - Undo a previous cycle value to allow for a new one.
 */
/**
 * Reorder columns without altering the HTML.
 * @param {number} [$ratios=0] - Specify how far along you want the element to move.
 * @param {string} [$col-or-span=column] - Specify whether the element has a gutter or not.
 * @param {number} [$gutter=$jeet-gutter] - Specify the gutter width as a percentage of the containers width.
 */
/**
 * Reset an element that has had shift() applied to it.
 */
/**
 * View the grid and its layers for easy debugging.
 * @param {string} [$color=black] - The background tint applied.
 * @param {boolean} [$important=false] - Whether to apply the style as !important.
 */
/**
 *  Alias for edit().
 */
/**
 * Horizontally center an element.
 * @param {number} [$max-width=1410px] - The max width the element can be.
 * @param {number} [$pad=0] - Specify the element's left and right padding.
 */
/**
 * Uncenter an element.
 */
/**
 * Stack an element so that nothing is either side of it.
 * @param {number} [$pad=0] - Specify the element's left and right padding.
 * @param {boolean/string} [$align=false] - Specify the text align for the element.
 */
/**
 * Unstack an element.
 */
/**
 * Center an element on either or both axes.
 * @requires A parent container with relative positioning.
 * @param {string} [$direction=both] - Specify which axes to center the element on.
 */
/**
 * Apply a clearfix to an element.
 */
@font-face {
  font-family: 'Graphik Thin Web';
  src: url("fonts/Graphik-Thin-Web.eot");
  src: url("fonts/Graphik-Thin-Web.eot?#iefix") format("embedded-opentype"), url("fonts/Graphik-Thin-Web.woff") format("woff"), url("fonts/Graphik-Thin-Web.ttf") format("truetype"), url("fonts/Graphik-Thin-Web.svg#Graphik Web") format("svg");
  font-weight: 100;
  font-style: normal;
  font-stretch: normal; }

@font-face {
  font-family: 'Graphik Web';
  src: url("fonts/Graphik-Regular-Web.eot");
  src: url("fonts/Graphik-Regular-Web.eot?#iefix") format("embedded-opentype"), url("fonts/Graphik-Regular-Web.woff") format("woff"), url("fonts/Graphik-Regular-Web.ttf") format("truetype"), url("fonts/Graphik-Regular-Web.svg#Graphik Web") format("svg");
  font-weight: 400;
  font-style: normal;
  font-stretch: normal; }

@font-face {
  font-family: 'Graphik Italic Web';
  src: url("fonts/Graphik-RegularItalic-Web.eot");
  src: url("fonts/Graphik-RegularItalic-Web.eot?#iefix") format("embedded-opentype"), url("fonts/Graphik-RegularItalic-Web.woff") format("woff"), url("fonts/Graphik-RegularItalic-Web.ttf") format("truetype"), url("fonts/Graphik-RegularItalic-Web.svg#Graphik Web") format("svg");
  font-weight: 400;
  font-style: italic;
  font-stretch: normal; }

@font-face {
  font-family: 'Graphik Medium Web';
  src: url("fonts/Graphik-Medium-Web.eot");
  src: url("fonts/Graphik-Medium-Web.eot?#iefix") format("embedded-opentype"), url("fonts/Graphik-Medium-Web.woff") format("woff"), url("fonts/Graphik-Medium-Web.ttf") format("truetype"), url("fonts/Graphik-Medium-Web.svg#Graphik Web") format("svg");
  font-weight: 500;
  font-style: normal;
  font-stretch: normal; }

@-webkit-keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    -webkit-transform: translateY(0);
            transform: translateY(0); }
  40% {
    -webkit-transform: translateY(-30px);
            transform: translateY(-30px); }
  60% {
    -webkit-transform: translateY(-15px);
            transform: translateY(-15px); } }

@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    -webkit-transform: translateY(0);
            transform: translateY(0); }
  40% {
    -webkit-transform: translateY(-30px);
            transform: translateY(-30px); }
  60% {
    -webkit-transform: translateY(-15px);
            transform: translateY(-15px); } }

.bounce {
  -webkit-animation: bounce 2s infinite;
          animation: bounce 2s infinite; }

@-webkit-keyframes bounce-up {
  0%, 20%, 50%, 80%, 100% {
    -webkit-transform: translateY(0);
            transform: translateY(0); }
  40% {
    -webkit-transform: translateY(30px);
            transform: translateY(30px); }
  60% {
    -webkit-transform: translateY(15px);
            transform: translateY(15px); } }

@keyframes bounce-up {
  0%, 20%, 50%, 80%, 100% {
    -webkit-transform: translateY(0);
            transform: translateY(0); }
  40% {
    -webkit-transform: translateY(30px);
            transform: translateY(30px); }
  60% {
    -webkit-transform: translateY(15px);
            transform: translateY(15px); } }

.bounce-up {
  -webkit-animation: bounce-up 5s infinite;
          animation: bounce-up 5s infinite;
  -webkit-animation-duration: 2s !important;
          animation-duration: 2s !important; }

@-webkit-keyframes semi-over-scale {
  0% {
    opacity: 0;
    -webkit-transform: scaleX(0) scaleY(0);
            transform: scaleX(0) scaleY(0); }
  70% {
    -webkit-transform: scaleX(1.1) scaleY(1.1);
            transform: scaleX(1.1) scaleY(1.1); }
  100% {
    opacity: 0.15;
    -webkit-transform: scale(1);
            transform: scale(1); } }

@keyframes semi-over-scale {
  0% {
    opacity: 0;
    -webkit-transform: scaleX(0) scaleY(0);
            transform: scaleX(0) scaleY(0); }
  70% {
    -webkit-transform: scaleX(1.1) scaleY(1.1);
            transform: scaleX(1.1) scaleY(1.1); }
  100% {
    opacity: 0.15;
    -webkit-transform: scale(1);
            transform: scale(1); } }

.semi-over-scale {
  -webkit-animation-name: semi-over-scale;
          animation-name: semi-over-scale;
  -webkit-transform-origin: 50% 100% !important;
      -ms-transform-origin: 50% 100% !important;
          transform-origin: 50% 100% !important;
  -webkit-animation-duration: 0.5s !important;
          animation-duration: 0.5s !important; }

@-webkit-keyframes fade-out-down {
  0% {
    opacity: 1;
    -webkit-transform: none;
            transform: none; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, 15%, 0);
            transform: translate3d(0, 15%, 0); } }

@keyframes fade-out-down {
  0% {
    opacity: 1;
    -webkit-transform: none;
            transform: none; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, 15%, 0);
            transform: translate3d(0, 15%, 0); } }

section.product-hero hgroup.resolved, section.product-info article.resolved {
  -webkit-animation-name: fade-out-down;
          animation-name: fade-out-down; }

@-webkit-keyframes fade-in-right {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(15%, 0, 0);
            transform: translate3d(15%, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
            transform: none; } }

@keyframes fade-in-right {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(15%, 0, 0);
            transform: translate3d(15%, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
            transform: none; } }

.fade-in-right {
  -webkit-animation-name: fade-in-right;
          animation-name: fade-in-right; }

@-webkit-keyframes fade-in-left {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-15%, 0, 0);
            transform: translate3d(-15%, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
            transform: none; } }

@keyframes fade-in-left {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-15%, 0, 0);
            transform: translate3d(-15%, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
            transform: none; } }

.fade-in-left {
  -webkit-animation-name: fade-in-left;
          animation-name: fade-in-left; }

@-webkit-keyframes fadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-20px);
            transform: translateY(-20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

@keyframes fadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-20px);
            transform: translateY(-20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

.fadeInDown {
  -webkit-animation-name: fadeInDown;
  animation-name: fadeInDown; }

.exposure-in {
  -webkit-filter: brightness(0.8) contrast(1.5) hue-rotate(-30deg);
          filter: brightness(0.8) contrast(1.5) hue-rotate(-30deg); }
  .exposure-in.resolved {
    -webkit-filter: brightness(1) contrast(1) hue-rotate(0);
            filter: brightness(1) contrast(1) hue-rotate(0); }

@-webkit-keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@-webkit-keyframes pulse {
  0% {
    box-shadow: 0 0 0 0px rgba(0, 164, 223, 0.5);
    background: rgba(0, 164, 223, 0.5); }
  80% {
    background: rgba(0, 164, 223, 0); }
  100% {
    box-shadow: 0 0 0 20px rgba(0, 164, 223, 0); } }

@-webkit-keyframes pulse-med {
  0% {
    box-shadow: 0 0 0 0px rgba(0, 164, 223, 0.5);
    background: rgba(0, 164, 223, 0.5); }
  80% {
    background: rgba(0, 164, 223, 0); }
  100% {
    box-shadow: 0 0 0 30px rgba(0, 164, 223, 0); } }

@-webkit-keyframes pulse-large {
  0% {
    box-shadow: 0 0 0 0px rgba(0, 164, 223, 0.5);
    background: rgba(0, 164, 223, 0.5); }
  80% {
    background: rgba(0, 164, 223, 0); }
  100% {
    box-shadow: 0 0 0 40px rgba(0, 164, 223, 0); } }

@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    -webkit-transform: translateY(0);
            transform: translateY(0); }
  40% {
    -webkit-transform: translateY(-30px);
            transform: translateY(-30px); }
  60% {
    -webkit-transform: translateY(-15px);
            transform: translateY(-15px); } }

.bounce {
  -webkit-animation: bounce 2s infinite;
          animation: bounce 2s infinite; }

@keyframes bounce-up {
  0%, 20%, 50%, 80%, 100% {
    -webkit-transform: translateY(0);
            transform: translateY(0); }
  40% {
    -webkit-transform: translateY(30px);
            transform: translateY(30px); }
  60% {
    -webkit-transform: translateY(15px);
            transform: translateY(15px); } }

.bounce-up {
  -webkit-animation: bounce-up 5s infinite;
          animation: bounce-up 5s infinite;
  -webkit-animation-duration: 2s !important;
          animation-duration: 2s !important; }

@keyframes semi-over-scale {
  0% {
    opacity: 0;
    -webkit-transform: scaleX(0) scaleY(0);
            transform: scaleX(0) scaleY(0); }
  70% {
    -webkit-transform: scaleX(1.1) scaleY(1.1);
            transform: scaleX(1.1) scaleY(1.1); }
  100% {
    opacity: 0.15;
    -webkit-transform: scale(1);
            transform: scale(1); } }

.semi-over-scale {
  -webkit-animation-name: semi-over-scale;
          animation-name: semi-over-scale;
  -webkit-transform-origin: 50% 100% !important;
      -ms-transform-origin: 50% 100% !important;
          transform-origin: 50% 100% !important;
  -webkit-animation-duration: 0.5s !important;
          animation-duration: 0.5s !important; }

@keyframes fade-out-down {
  0% {
    opacity: 1;
    -webkit-transform: none;
            transform: none; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, 15%, 0);
            transform: translate3d(0, 15%, 0); } }

section.product-hero hgroup.resolved, section.product-info article.resolved {
  -webkit-animation-name: fade-out-down;
          animation-name: fade-out-down; }

@keyframes fade-in-right {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(15%, 0, 0);
            transform: translate3d(15%, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
            transform: none; } }

.fade-in-right {
  -webkit-animation-name: fade-in-right;
          animation-name: fade-in-right; }

@keyframes fade-in-left {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-15%, 0, 0);
            transform: translate3d(-15%, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
            transform: none; } }

.fade-in-left {
  -webkit-animation-name: fade-in-left;
          animation-name: fade-in-left; }

@keyframes fadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-20px);
            transform: translateY(-20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

.fadeInDown {
  -webkit-animation-name: fadeInDown;
  animation-name: fadeInDown; }

.exposure-in {
  -webkit-filter: brightness(0.8) contrast(1.5) hue-rotate(-30deg);
          filter: brightness(0.8) contrast(1.5) hue-rotate(-30deg); }
  .exposure-in.resolved {
    -webkit-filter: brightness(1) contrast(1) hue-rotate(0);
            filter: brightness(1) contrast(1) hue-rotate(0); }

@keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@-webkit-keyframes pulse {
  0% {
    box-shadow: 0 0 0 0px rgba(0, 164, 223, 0.5);
    background: rgba(0, 164, 223, 0.5); }
  80% {
    background: rgba(0, 164, 223, 0); }
  100% {
    box-shadow: 0 0 0 20px rgba(0, 164, 223, 0); } }

@-webkit-keyframes pulse-med {
  0% {
    box-shadow: 0 0 0 0px rgba(0, 164, 223, 0.5);
    background: rgba(0, 164, 223, 0.5); }
  80% {
    background: rgba(0, 164, 223, 0); }
  100% {
    box-shadow: 0 0 0 30px rgba(0, 164, 223, 0); } }

@-webkit-keyframes pulse-large {
  0% {
    box-shadow: 0 0 0 0px rgba(0, 164, 223, 0.5);
    background: rgba(0, 164, 223, 0.5); }
  80% {
    background: rgba(0, 164, 223, 0); }
  100% {
    box-shadow: 0 0 0 40px rgba(0, 164, 223, 0); } }

.default-type, body, p, a, h1, h2, h3, h4, h5, h6,
small, em, strong, input, button {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  color: #373f45;
  font-weight: normal;
  font-style: normal;
  -webkit-font-smoothing: antialiased; }

h1, h2, h3, h4, h5, h6 {
  display: block;
  margin: 1rem 0; }
  h1:first-child, h2:first-child, h3:first-child, h4:first-child, h5:first-child, h6:first-child {
    margin-top: 0; }
  h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
    color: inherit; }

h1 {
  font-size: -webkit-calc(36px + 20 * ((100vw - 420px) / 604));
  font-size: calc(36px + 20 * ((100vw - 420px) / 604)); }
  @media screen and (max-width: 420px) {
    h1 {
      font-size: 36px; } }
  @media screen and (min-width: 1024px) {
    h1 {
      font-size: 56px; } }

h2 {
  font-size: -webkit-calc(36px + 12 * ((100vw - 420px) / 604));
  font-size: calc(36px + 12 * ((100vw - 420px) / 604)); }
  @media screen and (max-width: 420px) {
    h2 {
      font-size: 36px; } }
  @media screen and (min-width: 1024px) {
    h2 {
      font-size: 48px; } }

h3 {
  font-size: -webkit-calc(30px + 6 * ((100vw - 420px) / 604));
  font-size: calc(30px + 6 * ((100vw - 420px) / 604)); }
  @media screen and (max-width: 420px) {
    h3 {
      font-size: 30px; } }
  @media screen and (min-width: 1024px) {
    h3 {
      font-size: 36px; } }

h4 {
  font-size: -webkit-calc(24px + 6 * ((100vw - 420px) / 604));
  font-size: calc(24px + 6 * ((100vw - 420px) / 604)); }
  @media screen and (max-width: 420px) {
    h4 {
      font-size: 24px; } }
  @media screen and (min-width: 1024px) {
    h4 {
      font-size: 30px; } }

h5 {
  font-size: -webkit-calc(20px + 4 * ((100vw - 420px) / 604));
  font-size: calc(20px + 4 * ((100vw - 420px) / 604)); }
  @media screen and (max-width: 420px) {
    h5 {
      font-size: 20px; } }
  @media screen and (min-width: 1024px) {
    h5 {
      font-size: 24px; } }

h6 {
  font-size: -webkit-calc(18px + 2 * ((100vw - 420px) / 604));
  font-size: calc(18px + 2 * ((100vw - 420px) / 604)); }
  @media screen and (max-width: 420px) {
    h6 {
      font-size: 18px; } }
  @media screen and (min-width: 1024px) {
    h6 {
      font-size: 20px; } }

p, ul, li, ol {
  font-size: -webkit-calc(15px + 3 * ((100vw - 420px) / 480));
  font-size: calc(15px + 3 * ((100vw - 420px) / 480)); }
  @media screen and (max-width: 420px) {
    p, ul, li, ol {
      font-size: 15px; } }
  @media screen and (min-width: 900px) {
    p, ul, li, ol {
      font-size: 18px; } }

p {
  line-height: 1.5em;
  margin: 1em 0; }

a {
  text-decoration: none; }

html {
  margin-top: 0 !important; }

body {
  background: #ddd; }
  body.is-stopped {
    overflow: hidden; }

.max-container {
  background: #FFF;
  width: auto;
  max-width: 1600px;
  float: none;
  display: block;
  margin-right: auto;
  margin-left: auto;
  padding-left: 0;
  padding-right: 0; }
  .max-container:after {
    clear: both;
    content: '';
    display: table; }
  @media (max-width: 1599px) {
    .max-container {
      border: none; } }

.container {
  width: auto;
  max-width: 1280px;
  float: none;
  display: block;
  margin-right: auto;
  margin-left: auto;
  padding-left: 4%;
  padding-right: 4%; }
  .container:after {
    clear: both;
    content: '';
    display: table; }
  @media (max-width: 767px) {
    .container {
      padding: 0 4%; } }

.cf:after {
  clear: both;
  content: '';
  display: table; }

html {
  box-sizing: border-box; }

*,
*:before,
*:after {
  box-sizing: inherit; }

button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: transparent;
  border: 0;
  color: inherit;
  font: inherit;
  -webkit-font-smoothing: antialiased;
  margin: 0;
  padding: 0;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  width: auto; }
  button::-moz-focus-inner,
  input[type="button"]::-moz-focus-inner,
  input[type="submit"]::-moz-focus-inner,
  input[type="reset"]::-moz-focus-inner {
    border: 0;
    padding: 0; }

figure {
  margin: 0; }

fieldset {
  border: 0;
  margin: 0;
  padding: 0; }

textarea {
  resize: vertical; }

img,
video {
  height: auto;
  max-width: 100%; }

p:first-of-type {
  margin-top: 0; }

p:last-of-type {
  margin-bottom: 0; }

a,
label,
select,
option,
button {
  cursor: pointer; }

@-webkit-keyframes fade-in-up {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 15%, 0);
            transform: translate3d(0, 15%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
            transform: none; } }

@keyframes fade-in-up {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 15%, 0);
            transform: translate3d(0, 15%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
            transform: none; } }

@-webkit-keyframes fade-in-down {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -15%, 0);
            transform: translate3d(0, -15%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
            transform: none; } }

@keyframes fade-in-down {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -15%, 0);
            transform: translate3d(0, -15%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
            transform: none; } }

@-webkit-keyframes over-scale {
  0% {
    opacity: 0;
    -webkit-transform: scale(0);
            transform: scale(0); }
  70% {
    -webkit-transform: scale(1.1);
            transform: scale(1.1); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1); } }

@keyframes over-scale {
  0% {
    opacity: 0;
    -webkit-transform: scale(0);
            transform: scale(0); }
  70% {
    -webkit-transform: scale(1.1);
            transform: scale(1.1); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1); } }

@-webkit-keyframes fade-in {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@keyframes fade-in {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

.animated, .team-members .noted, .team-member-image:before, header[role="banner"].is-active .container ul.navigation-container li a, section.content-404 .copy h1, section.content-404 .copy p, section.content-404 .copy a, section.product-hero figure, section.product-hero h1,
section.product-hero h4, section.product-hero hgroup.resolved, section.product-info article.resolved, .about-title h1, .about-title p, section.careers-hero div.copy h1, section.careers-hero div.copy p, .home-introduction ul.platforms.resolved li a {
  -webkit-animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
          animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  -webkit-animation-duration: 0.65s;
          animation-duration: 0.65s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both; }

.fade-in, section.content-404 .copy p, section.product-hero figure, .about-title p, section.careers-hero div.copy p {
  -webkit-animation-name: fade-in;
          animation-name: fade-in; }

.fade-in-up, .team-members .noted, .team-member-image:before, header[role="banner"].is-active .container ul.navigation-container li a, section.content-404 .copy h1, section.content-404 .copy a, section.product-hero h1,
section.product-hero h4, .about-title h1, section.careers-hero div.copy h1 {
  -webkit-animation-name: fade-in-up;
          animation-name: fade-in-up; }

.fade-in-down {
  -webkit-animation-name: fade-in-down;
          animation-name: fade-in-down; }

.over-scale {
  -webkit-animation-name: over-scale;
          animation-name: over-scale; }

.delay-1 {
  -webkit-animation-delay: 0.1s;
          animation-delay: 0.1s; }

.delay-2 {
  -webkit-animation-delay: 0.2s;
          animation-delay: 0.2s; }

.delay-3 {
  -webkit-animation-delay: 0.3s;
          animation-delay: 0.3s; }

.delay-4 {
  -webkit-animation-delay: 0.4s;
          animation-delay: 0.4s; }

.delay-5 {
  -webkit-animation-delay: 0.5s;
          animation-delay: 0.5s; }

.delay-6 {
  -webkit-animation-delay: 0.6s;
          animation-delay: 0.6s; }

.delay-7 {
  -webkit-animation-delay: 0.7s;
          animation-delay: 0.7s; }

.delay-8 {
  -webkit-animation-delay: 0.8s;
          animation-delay: 0.8s; }

.delay-9 {
  -webkit-animation-delay: 0.9s;
          animation-delay: 0.9s; }

.delay-10 {
  -webkit-animation-delay: 1s;
          animation-delay: 1s; }

.delay-11 {
  -webkit-animation-delay: 1.1s;
          animation-delay: 1.1s; }

.delay-12 {
  -webkit-animation-delay: 1.2s;
          animation-delay: 1.2s; }

.delay-13 {
  -webkit-animation-delay: 1.3s;
          animation-delay: 1.3s; }

.delay-14 {
  -webkit-animation-delay: 1.4s;
          animation-delay: 1.4s; }

.delay-15 {
  -webkit-animation-delay: 1.5s;
          animation-delay: 1.5s; }

.delay-16 {
  -webkit-animation-delay: 1.6s;
          animation-delay: 1.6s; }

.delay-17 {
  -webkit-animation-delay: 1.7s;
          animation-delay: 1.7s; }

.delay-18 {
  -webkit-animation-delay: 1.8s;
          animation-delay: 1.8s; }

.delay-19 {
  -webkit-animation-delay: 1.9s;
          animation-delay: 1.9s; }

.delay-20 {
  -webkit-animation-delay: 2s;
          animation-delay: 2s; }

input {
  outline: none; }

code {
  padding: 3px 4px;
  color: #DF5C33;
  background-color: #F5F5F5;
  border: 1px solid #E1E1E8;
  border-radius: 3px;
  font-family: Menlo, Monaco, monospace; }

pre {
  display: block;
  padding: 7px;
  background-color: #F5F5F5;
  border: 1px solid #E1E1E8;
  border-radius: 3px;
  white-space: pre-wrap;
  word-break: break-all;
  font-family: Menlo, Monaco, monospace;
  line-height: 160%; }

hr {
  border: 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.15);
  height: 0;
  padding: 0;
  margin: 1.5em 0; }

nav ul {
  margin: 0;
  padding: 0; }
  nav ul li {
    float: none;
    list-style-type: none;
    margin: 0;
    padding: 0; }

ul.text {
  margin: .32rem .94rem;
  padding-left: 1rem; }
  ul.text li {
    list-style-type: disc;
    padding: .125rem 0; }

ol.text {
  margin: .32rem .94rem;
  padding-left: 1rem; }
  ol.text li {
    list-style-type: decimal;
    padding: .125rem 0; }

ul.text ul,
ul.text ol,
ol.text ol,
ol.text ul {
  margin: 0.3rem 1rem 0; }

*,
*:before,
*:after {
  box-sizing: inherit; }

#wpadminbar {
  display: none; }

.btn, header[role="banner"] ul.navigation-container li a.btn,
button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
  padding: 10px 22px;
  border-radius: 3px;
  background-color: deepskyblue;
  color: #FFF;
  cursor: pointer;
  line-height: 1em;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  border: none;
  -webkit-transition: all .2s ease;
          transition: all .2s ease;
  margin: 0 1.25rem 0 0;
  padding: 0.625rem 2.25rem;
  border-radius: 0; }
  .btn:hover, header[role="banner"] ul.navigation-container li a.btn:hover,
  button:hover,
  input[type="button"]:hover,
  input[type="submit"]:hover,
  input[type="reset"]:hover {
    background-color: #0099cc; }
  .btn.small, header[role="banner"] ul.navigation-container li a.small.btn,
  button.small,
  input[type="button"].small,
  input[type="submit"].small,
  input[type="reset"].small {
    padding: 0.4375rem 1.25rem; }
  .btn.outline, header[role="banner"] ul.navigation-container li a.outline.btn,
  button.outline,
  input[type="button"].outline,
  input[type="submit"].outline,
  input[type="reset"].outline {
    color: #00a4df;
    font-weight: bold;
    background-color: transparent;
    border: 2px solid #00a4df;
    font-size: 0.75rem; }
    .btn.outline:hover, header[role="banner"] ul.navigation-container li a.outline.btn:hover,
    button.outline:hover,
    input[type="button"].outline:hover,
    input[type="submit"].outline:hover,
    input[type="reset"].outline:hover {
      color: #FFF;
      background-color: #00a4df;
      border: 2px solid #00a4df;
      font-size: 0.75rem; }
    .btn.outline:focus, header[role="banner"] ul.navigation-container li a.outline.btn:focus,
    button.outline:focus,
    input[type="button"].outline:focus,
    input[type="submit"].outline:focus,
    input[type="reset"].outline:focus {
      color: #FFF;
      background-color: #00a4df;
      border: 2px solid #00a4df;
      font-size: 0.75rem;
      outline: none; }
    .btn.outline.white, header[role="banner"] ul.navigation-container li a.outline.white.btn,
    button.outline.white,
    input[type="button"].outline.white,
    input[type="submit"].outline.white,
    input[type="reset"].outline.white {
      color: #fff;
      border: 2px solid #fff; }
      .btn.outline.white:hover,
      button.outline.white:hover,
      input[type="button"].outline.white:hover,
      input[type="submit"].outline.white:hover,
      input[type="reset"].outline.white:hover {
        background-color: #fff;
        border: 2px solid #fff;
        color: #00a4df; }

.hero-container {
  background: #efefef;
  position: relative;
  text-align: center; }
  .hero-container .hero-wrap {
    width: auto;
    max-width: 1200px;
    float: none;
    display: block;
    margin-right: auto;
    margin-left: auto;
    padding-left: 0;
    padding-right: 0;
    position: relative; }
    .hero-container .hero-wrap:after {
      clear: both;
      content: '';
      display: table; }
  .hero-container .hero-title {
    position: absolute;
    z-index: 2;
    top: 200px;
    text-align: left;
    left: 3.125rem; }
    @media (min-width: 1024px) {
      .hero-container .hero-title {
        -webkit-animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
                animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
        -webkit-animation-duration: 0.65s;
                animation-duration: 0.65s;
        -webkit-animation-fill-mode: both;
                animation-fill-mode: both;
        -webkit-animation-name: fade-in-right;
                animation-name: fade-in-right;
        -webkit-animation-delay: 1.2s;
                animation-delay: 1.2s; } }
    @media (max-width: 1199px) {
      .hero-container .hero-title svg {
        width: 24vw; } }
    .hero-container .hero-title p {
      font-size: 0.875rem;
      color: #707f8c; }
  .hero-container .hero-icons {
    position: absolute;
    z-index: 2;
    top: 200px;
    right: 3.125rem; }
    @media (min-width: 1024px) {
      .hero-container .hero-icons {
        -webkit-animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
                animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
        -webkit-animation-duration: 0.65s;
                animation-duration: 0.65s;
        -webkit-animation-fill-mode: both;
                animation-fill-mode: both;
        -webkit-animation-name: fade-in-left;
                animation-name: fade-in-left;
        -webkit-animation-delay: 1.2s;
                animation-delay: 1.2s; } }
    .hero-container .hero-icons ul {
      margin: 0;
      padding: 0; }
      .hero-container .hero-icons ul:after {
        clear: both;
        content: '';
        display: table; }
      .hero-container .hero-icons ul li {
        float: left;
        list-style-type: none;
        margin-right: 20px; }
      .hero-container .hero-icons ul li:last-child {
        margin-right: 0; }
    .hero-container .hero-icons li:not(:last-child) {
      border-right: 1px solid rgba(55, 63, 69, 0.1);
      padding: 20px 25px 20px 5px; }
    .hero-container .hero-icons li:last-child {
      padding: 20px 0; }
    .hero-container .hero-icons img {
      height: 30px;
      width: auto; }
  .hero-container figure {
    overflow: hidden;
    position: relative;
    background-size: 100% auto;
    background-repeat: no-repeat;
    background-position: top center;
    top: 1.875rem; }
    .hero-container figure:before {
      content: '';
      display: block;
      height: 0;
      padding-top: 80%; }
    @media (min-width: 1024px) {
      .hero-container figure {
        -webkit-animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
                animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
        -webkit-animation-duration: 0.65s;
                animation-duration: 0.65s;
        -webkit-animation-fill-mode: both;
                animation-fill-mode: both;
        -webkit-animation-name: fade-in;
                animation-name: fade-in;
        -webkit-animation-delay: 0.8s;
                animation-delay: 0.8s;
        -webkit-animation-duration: 1s;
                animation-duration: 1s; } }
  .hero-container .hotspot {
    position: absolute;
    z-index: 3;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1);
    width: 50px;
    height: 50px;
    text-align: center;
    -webkit-transition: -webkit-transform 450ms ease;
            transition: transform 450ms ease;
    cursor: pointer;
    -webkit-animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
            animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
    -webkit-animation-duration: 0.65s;
            animation-duration: 0.65s;
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    -webkit-animation-name: fadeIn;
            animation-name: fadeIn; }
    .hero-container .hotspot span {
      text-align: center;
      width: auto;
      max-width: 1410px;
      float: none;
      display: block;
      margin-right: auto;
      margin-left: auto;
      padding-left: 0;
      padding-right: 0;
      position: relative;
      top: 50%;
      -webkit-transform: translateY(-50%);
          -ms-transform: translateY(-50%);
              transform: translateY(-50%); }
      .hero-container .hotspot span:after {
        clear: both;
        content: '';
        display: table; }
    .hero-container .hotspot:hover .hotspot-copy {
      display: block; }
  .hero-container .hs-1 {
    left: 55%;
    top: 31%;
    -webkit-animation-delay: 2.2s;
            animation-delay: 2.2s; }
    .hero-container .hs-1 span {
      border: 0;
      position: relative;
      width: 10px;
      height: 10px;
      border-radius: 50%;
      display: block;
      background-color: #00a4df; }
      .hero-container .hs-1 span:before, .hero-container .hs-1 span:after {
        position: absolute;
        background: #00a4df;
        content: '';
        top: 0;
        left: 0;
        border: 0;
        width: 10px;
        height: 10px;
        border-radius: 50%;
        -webkit-animation: pulse-large 2.4s cubic-bezier(0.165, 0.84, 0.44, 1);
                animation: pulse-large 2.4s cubic-bezier(0.165, 0.84, 0.44, 1);
        -webkit-animation-iteration-count: infinite;
                animation-iteration-count: infinite; }
      .hero-container .hs-1 span:after {
        -webkit-animation-delay: .3s;
                animation-delay: .3s;
        -webkit-animation-duration: 2.4s;
                animation-duration: 2.4s; }
  .hero-container .hs-2 {
    left: 72%;
    top: 36%;
    -webkit-animation-delay: 2.5s;
            animation-delay: 2.5s; }
    .hero-container .hs-2 span {
      border: 0;
      position: relative;
      width: 10px;
      height: 10px;
      border-radius: 50%;
      display: block;
      background-color: #00a4df; }
      .hero-container .hs-2 span:before, .hero-container .hs-2 span:after {
        position: absolute;
        background: #00a4df;
        content: '';
        top: 0;
        left: 0;
        border: 0;
        width: 10px;
        height: 10px;
        border-radius: 50%;
        -webkit-animation: pulse-large 2s cubic-bezier(0.165, 0.84, 0.44, 1);
                animation: pulse-large 2s cubic-bezier(0.165, 0.84, 0.44, 1);
        -webkit-animation-iteration-count: infinite;
                animation-iteration-count: infinite; }
      .hero-container .hs-2 span:after {
        -webkit-animation-delay: .3s;
                animation-delay: .3s;
        -webkit-animation-duration: 2s;
                animation-duration: 2s; }
  .hero-container .hs-3 {
    left: 15%;
    top: 37%;
    -webkit-animation-delay: 2.8s;
            animation-delay: 2.8s; }
    .hero-container .hs-3 span {
      border: 0;
      position: relative;
      width: 10px;
      height: 10px;
      border-radius: 50%;
      display: block;
      background-color: #00a4df; }
      .hero-container .hs-3 span:before, .hero-container .hs-3 span:after {
        position: absolute;
        background: #00a4df;
        content: '';
        top: 0;
        left: 0;
        border: 0;
        width: 10px;
        height: 10px;
        border-radius: 50%;
        -webkit-animation: pulse-med 2.2s cubic-bezier(0.165, 0.84, 0.44, 1);
                animation: pulse-med 2.2s cubic-bezier(0.165, 0.84, 0.44, 1);
        -webkit-animation-iteration-count: infinite;
                animation-iteration-count: infinite; }
      .hero-container .hs-3 span:after {
        -webkit-animation-delay: .3s;
                animation-delay: .3s;
        -webkit-animation-duration: 2.2s;
                animation-duration: 2.2s; }
  .hero-container .hotspot-copy {
    -webkit-animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
            animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
    -webkit-animation-duration: 0.65s;
            animation-duration: 0.65s;
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    box-shadow: 0 0.625rem 1.25rem rgba(0, 0, 0, 0.19), 0 0.375rem 0.375rem rgba(0, 0, 0, 0.23);
    display: none;
    padding: 0.9375rem 1.25rem;
    height: auto;
    background: rgba(255, 255, 255, 0.93);
    -webkit-transition: -webkit-transform 450ms ease;
            transition: transform 450ms ease;
    position: absolute;
    z-index: 4;
    width: 202px;
    left: -78px;
    top: 50px;
    text-align: center;
    border-radius: 62.4375rem;
    -webkit-animation-name: fadeInDown;
            animation-name: fadeInDown;
    -webkit-animation-duration: .4s;
            animation-duration: .4s;
    font-size: 0.75rem;
    line-height: 1.4em; }
    .hero-container .hotspot-copy:after {
      position: absolute;
      content: '';
      top: -6px;
      left: -webkit-calc(50% - (6px / 2));
      left: calc(50% - (6px / 2));
      width: 0;
      height: 0;
      border-bottom: 6px solid #FFF;
      border-left: 6px solid transparent;
      border-right: 6px solid transparent; }
  .hero-container .hero-copy {
    margin-top: -10%;
    padding: 0 5%;
    position: relative;
    width: 100%;
    z-index: 2;
    text-align: center; }
    @media (min-width: 1024px) {
      .hero-container .hero-copy {
        -webkit-animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
                animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
        -webkit-animation-duration: 0.65s;
                animation-duration: 0.65s;
        -webkit-animation-fill-mode: both;
                animation-fill-mode: both;
        -webkit-animation-name: fade-in-down;
                animation-name: fade-in-down;
        -webkit-animation-delay: 1.4s;
                animation-delay: 1.4s; } }
    .hero-container .hero-copy p {
      width: auto;
      max-width: 670px;
      float: none;
      display: block;
      margin-right: auto;
      margin-left: auto;
      padding-left: 0;
      padding-right: 0;
      font-size: -webkit-calc(14px + 2 * ((100vw - 420px) / 604));
      font-size: calc(14px + 2 * ((100vw - 420px) / 604));
      line-height: 1.8em;
      color: #707f8c; }
      .hero-container .hero-copy p:after {
        clear: both;
        content: '';
        display: table; }
      @media screen and (max-width: 420px) {
        .hero-container .hero-copy p {
          font-size: 14px; } }
      @media screen and (min-width: 1024px) {
        .hero-container .hero-copy p {
          font-size: 16px; } }
    .hero-container .hero-copy a.btn, .hero-container .hero-copy header[role="banner"] ul.navigation-container li a.btn, header[role="banner"] ul.navigation-container li .hero-container .hero-copy a.btn {
      color: #1C3045;
      border: 2px solid #1C3045;
      margin-top: 50px;
      margin-bottom: 80px; }
      .hero-container .hero-copy a.btn:hover {
        color: white;
        background: #1C3045; }
      .hero-container .hero-copy a.btn:focus {
        color: white;
        background: #1C3045; }
      @media (max-width: 420px) {
        .hero-container .hero-copy a.btn, .hero-container .hero-copy header[role="banner"] ul.navigation-container li a.btn, header[role="banner"] ul.navigation-container li .hero-container .hero-copy a.btn {
          width: 80%;
          margin-left: auto;
          margin-right: auto;
          margin-bottom: 0.625rem;
          margin-top: 1.875rem; }
          .hero-container .hero-copy a.btn:last-of-type {
            margin-bottom: 3.125rem; } }
  @media (max-width: 1024px) {
    .hero-container .hero-title {
      position: relative;
      top: 100px;
      left: auto;
      text-align: center; }
      .hero-container .hero-title svg {
        width: 60%; }
    .hero-container figure {
      height: auto;
      background-size: 150% auto;
      top: 90px;
      overflow: hidden;
      position: relative; }
      .hero-container figure:before {
        content: '';
        display: block;
        height: 0;
        padding-top: 90%; }
    .hero-container .hotspot {
      display: none; }
    .hero-container .hero-icons {
      position: relative;
      top: auto;
      right: auto;
      width: 100%;
      margin: 40px auto; } }
  @media (max-width: 1024px) and (max-width: 639px) {
    .hero-container .hero-icons {
      padding-top: 2.5rem; } }
  @media (max-width: 1024px) {
      .hero-container .hero-icons ul li {
        float: none;
        display: inline; }
    .hero-container .hero-copy {
      text-align: center;
      margin-top: 0; }
      .hero-container .hero-copy p {
        text-align: left; } }

.platform-container {
  background-color: #f5f6f7;
  border-top: 1px solid #e1e4e7;
  clear: both;
  height: auto;
  padding-top: 5.625rem;
  padding-bottom: 5.625rem; }
  @media (max-width: 767px) {
    .platform-container {
      padding-top: 2.5rem;
      padding-bottom: 2.5rem; } }
  .platform-container div.copy {
    padding: 0 5%;
    text-align: center;
    margin: 0 auto;
    max-width: 56.25rem; }
    .platform-container div.copy h1 {
      font-family: Graphik Thin Web;
      font-weight: normal;
      font-size: 2.5rem;
      -webkit-font-smoothing: subpixel-antialiased;
      line-height: 3.125rem; }
    .platform-container div.copy p {
      margin-top: 1.5625rem;
      color: #707f8c;
      font-size: 1.125rem; }
  .platform-container .hand-cursor {
    display: block;
    margin: 20px auto 0; }
    @media (max-width: 767px) {
      .platform-container .hand-cursor {
        display: none; } }
  .platform-container div.platform-interactive-container {
    text-align: center;
    max-width: 64.8125rem;
    margin: 0 auto; }
    .platform-container div.platform-interactive-container svg {
      width: 100%; }
      @media (max-width: 767px) {
        .platform-container div.platform-interactive-container svg {
          padding-top: 20px; } }
      .platform-container div.platform-interactive-container svg .secondary {
        display: none; }
        .platform-container div.platform-interactive-container svg .secondary .animated, .platform-container div.platform-interactive-container svg .secondary .team-members .noted, .team-members .platform-container div.platform-interactive-container svg .secondary .noted, .platform-container div.platform-interactive-container svg .secondary .team-member-image:before, .platform-container div.platform-interactive-container svg .secondary header[role="banner"].is-active .container ul.navigation-container li a, header[role="banner"].is-active .container ul.navigation-container li .platform-container div.platform-interactive-container svg .secondary a, .platform-container div.platform-interactive-container svg .secondary section.content-404 .copy h1, section.content-404 .copy .platform-container div.platform-interactive-container svg .secondary h1, .platform-container div.platform-interactive-container svg .secondary section.content-404 .copy p, section.content-404 .copy .platform-container div.platform-interactive-container svg .secondary p, .platform-container div.platform-interactive-container svg .secondary section.content-404 .copy a, section.content-404 .copy .platform-container div.platform-interactive-container svg .secondary a, .platform-container div.platform-interactive-container svg .secondary section.product-hero figure, section.product-hero .platform-container div.platform-interactive-container svg .secondary figure, .platform-container div.platform-interactive-container svg .secondary section.product-hero h1, section.product-hero .platform-container div.platform-interactive-container svg .secondary h1, .platform-container div.platform-interactive-container svg .secondary
        section.product-hero h4,
        section.product-hero .platform-container div.platform-interactive-container svg .secondary h4, .platform-container div.platform-interactive-container svg .secondary section.product-hero hgroup.resolved, section.product-hero .platform-container div.platform-interactive-container svg .secondary hgroup.resolved, .platform-container div.platform-interactive-container svg .secondary section.product-info article.resolved, section.product-info .platform-container div.platform-interactive-container svg .secondary article.resolved, .platform-container div.platform-interactive-container svg .secondary .about-title h1, .about-title .platform-container div.platform-interactive-container svg .secondary h1, .platform-container div.platform-interactive-container svg .secondary .about-title p, .about-title .platform-container div.platform-interactive-container svg .secondary p, .platform-container div.platform-interactive-container svg .secondary section.careers-hero div.copy h1, section.careers-hero div.copy .platform-container div.platform-interactive-container svg .secondary h1, .platform-container div.platform-interactive-container svg .secondary section.careers-hero div.copy p, section.careers-hero div.copy .platform-container div.platform-interactive-container svg .secondary p, .platform-container div.platform-interactive-container svg .secondary .home-introduction ul.platforms.resolved li a, .home-introduction ul.platforms.resolved li .platform-container div.platform-interactive-container svg .secondary a {
          display: none; }
      .platform-container div.platform-interactive-container svg .logo-circle {
        -webkit-transform: scale(0.8);
            -ms-transform: scale(0.8);
                transform: scale(0.8);
        -webkit-transform-origin: 50%;
            -ms-transform-origin: 50%;
                transform-origin: 50%;
        -webkit-transition: all 0.2s ease;
                transition: all 0.2s ease; }
      .platform-container div.platform-interactive-container svg .outer-circle {
        -webkit-transform: translateY(20px);
            -ms-transform: translateY(20px);
                transform: translateY(20px);
        -webkit-transform: scale(0.8);
            -ms-transform: scale(0.8);
                transform: scale(0.8);
        -webkit-transform-origin: 50%;
            -ms-transform-origin: 50%;
                transform-origin: 50%;
        -webkit-transition: all 0.2s ease;
                transition: all 0.2s ease; }
      @media (max-width: 1023px) {
        .platform-container div.platform-interactive-container svg {
          padding: 0;
          height: 10.9375rem; } }
    .platform-container div.platform-interactive-container.resolved .logo-circle {
      -webkit-transform: scale(1);
          -ms-transform: scale(1);
              transform: scale(1); }
    .platform-container div.platform-interactive-container.resolved .outer-circle {
      -webkit-transform: scale(1);
          -ms-transform: scale(1);
              transform: scale(1);
      -webkit-transform: translateY(0);
          -ms-transform: translateY(0);
              transform: translateY(0); }
    .platform-container div.platform-interactive-container.secondary-resolved .secondary {
      display: block; }
      .platform-container div.platform-interactive-container.secondary-resolved .secondary .animated, .platform-container div.platform-interactive-container.secondary-resolved .secondary .team-members .noted, .team-members .platform-container div.platform-interactive-container.secondary-resolved .secondary .noted, .platform-container div.platform-interactive-container.secondary-resolved .secondary .team-member-image:before, .platform-container div.platform-interactive-container.secondary-resolved .secondary header[role="banner"].is-active .container ul.navigation-container li a, header[role="banner"].is-active .container ul.navigation-container li .platform-container div.platform-interactive-container.secondary-resolved .secondary a, .platform-container div.platform-interactive-container.secondary-resolved .secondary section.content-404 .copy h1, section.content-404 .copy .platform-container div.platform-interactive-container.secondary-resolved .secondary h1, .platform-container div.platform-interactive-container.secondary-resolved .secondary section.content-404 .copy p, section.content-404 .copy .platform-container div.platform-interactive-container.secondary-resolved .secondary p, .platform-container div.platform-interactive-container.secondary-resolved .secondary section.content-404 .copy a, section.content-404 .copy .platform-container div.platform-interactive-container.secondary-resolved .secondary a, .platform-container div.platform-interactive-container.secondary-resolved .secondary section.product-hero figure, section.product-hero .platform-container div.platform-interactive-container.secondary-resolved .secondary figure, .platform-container div.platform-interactive-container.secondary-resolved .secondary section.product-hero h1, section.product-hero .platform-container div.platform-interactive-container.secondary-resolved .secondary h1, .platform-container div.platform-interactive-container.secondary-resolved .secondary
      section.product-hero h4,
      section.product-hero .platform-container div.platform-interactive-container.secondary-resolved .secondary h4, .platform-container div.platform-interactive-container.secondary-resolved .secondary section.product-hero hgroup.resolved, section.product-hero .platform-container div.platform-interactive-container.secondary-resolved .secondary hgroup.resolved, .platform-container div.platform-interactive-container.secondary-resolved .secondary section.product-info article.resolved, section.product-info .platform-container div.platform-interactive-container.secondary-resolved .secondary article.resolved, .platform-container div.platform-interactive-container.secondary-resolved .secondary .about-title h1, .about-title .platform-container div.platform-interactive-container.secondary-resolved .secondary h1, .platform-container div.platform-interactive-container.secondary-resolved .secondary .about-title p, .about-title .platform-container div.platform-interactive-container.secondary-resolved .secondary p, .platform-container div.platform-interactive-container.secondary-resolved .secondary section.careers-hero div.copy h1, section.careers-hero div.copy .platform-container div.platform-interactive-container.secondary-resolved .secondary h1, .platform-container div.platform-interactive-container.secondary-resolved .secondary section.careers-hero div.copy p, section.careers-hero div.copy .platform-container div.platform-interactive-container.secondary-resolved .secondary p, .platform-container div.platform-interactive-container.secondary-resolved .secondary .home-introduction ul.platforms.resolved li a, .home-introduction ul.platforms.resolved li .platform-container div.platform-interactive-container.secondary-resolved .secondary a {
        -webkit-animation-duration: 0.4s;
                animation-duration: 0.4s;
        display: block;
        -webkit-transform-origin: 50% 50%;
            -ms-transform-origin: 50% 50%;
                transform-origin: 50% 50%; }
      .platform-container div.platform-interactive-container.secondary-resolved .secondary .secondary-semi-circle {
        opacity: 0.2; }
  @media (min-width: 1024px) {
    .platform-container #platform-graphic {
      padding-top: 20px;
      margin-top: 90px; } }

@media (min-width: 640px) and (max-width: 1023px) {
  .platform-container {
    min-height: 9.7rem; }
    .platform-container .platform-interactive-container #platform-graphic {
      padding-top: 20px;
      margin: 3.75rem 0 0 0;
      min-height: 400px; } }
  @media (max-width: 639px) {
    .platform-container .platform-interactive-container #platform-graphic {
      margin: 1.875rem 0 0 0;
      min-height: 240px; } }

.developer-kit-container article.copy {
  text-align: center; }
  .developer-kit-container article.copy h3 {
    padding: 6.25rem 0 1.875rem;
    font-family: Graphik Thin Web;
    font-weight: normal !important;
    font-weight: bold;
    font-size: 2.5rem;
    -webkit-font-smoothing: subpixel-antialiased; }
  .developer-kit-container article.copy p {
    margin-top: 0.3125rem;
    color: #707f8c;
    font-size: 1.125rem;
    width: auto;
    max-width: 900px;
    float: none;
    display: block;
    margin-right: auto;
    margin-left: auto;
    padding-left: 0;
    padding-right: 0; }
    .developer-kit-container article.copy p:after {
      clear: both;
      content: '';
      display: table; }

.developer-kit-container .buynow {
  display: none; }

.developer-kit-container .sdk-plus-backspin {
  width: auto;
  max-width: 415px;
  float: none;
  display: block;
  margin-right: auto;
  margin-left: auto;
  padding-left: 0;
  padding-right: 0;
  text-align: center;
  margin-top: 4.375rem;
  height: 12.5rem; }
  .developer-kit-container .sdk-plus-backspin:after {
    clear: both;
    content: '';
    display: table; }
  @media (min-width: 1025px) {
    .developer-kit-container .sdk-plus-backspin .sdk,
    .developer-kit-container .sdk-plus-backspin .backspin {
      -webkit-transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
              transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); } }
  .developer-kit-container .sdk-plus-backspin .plus {
    -webkit-transition-delay: 0.5s;
            transition-delay: 0.5s; }
    @media (min-width: 1025px) {
      .developer-kit-container .sdk-plus-backspin .plus {
        -webkit-transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
                transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); } }
  .developer-kit-container .sdk-plus-backspin .sdk {
    float: left;
    margin-right: 2.8125rem;
    -webkit-transform: translateX(50px);
        -ms-transform: translateX(50px);
            transform: translateX(50px); }
    .developer-kit-container .sdk-plus-backspin .sdk img {
      max-height: 7.8125rem;
      width: auto; }
    .developer-kit-container .sdk-plus-backspin .sdk h5 {
      font-size: 1.125rem;
      margin-top: 1.875rem;
      color: #00a4df; }
  .developer-kit-container .sdk-plus-backspin .plus {
    padding: 0;
    font-size: 2.5rem;
    color: #00a4df;
    margin-top: 2.5rem;
    float: left;
    margin-right: 2.5rem;
    -webkit-transform: scale(0);
        -ms-transform: scale(0);
            transform: scale(0); }
  .developer-kit-container .sdk-plus-backspin .backspin {
    margin-left: 1.25rem;
    float: left;
    -webkit-transform: translateX(-50px);
        -ms-transform: translateX(-50px);
            transform: translateX(-50px); }
    .developer-kit-container .sdk-plus-backspin .backspin img {
      max-height: 7.8125rem;
      width: auto; }
    .developer-kit-container .sdk-plus-backspin .backspin h5 {
      margin-top: 1.875rem;
      font-size: 1.125rem;
      color: #00a4df; }
  .developer-kit-container .sdk-plus-backspin.resolved .backspin,
  .developer-kit-container .sdk-plus-backspin.resolved .sdk {
    -webkit-transform: translateX(0);
        -ms-transform: translateX(0);
            transform: translateX(0); }
  .developer-kit-container .sdk-plus-backspin.resolved .plus {
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1); }

@media (max-width: 1023px) {
  .developer-kit-container {
    padding: 0 5%; }
    .developer-kit-container article.copy h3 {
      margin-top: 0;
      padding-top: 10%; }
    .developer-kit-container .sdk-plus-backspin {
      width: auto;
      max-width: 265px;
      float: none;
      display: block;
      margin-right: auto;
      margin-left: auto;
      padding-left: 0;
      padding-right: 0;
      text-align: center;
      margin-top: 4.375rem;
      height: 12.5rem; }
      .developer-kit-container .sdk-plus-backspin:after {
        clear: both;
        content: '';
        display: table; }
      .developer-kit-container .sdk-plus-backspin .sdk {
        float: left;
        margin-right: 1.5625rem; }
        .developer-kit-container .sdk-plus-backspin .sdk img {
          max-height: 5rem;
          width: auto; }
        .developer-kit-container .sdk-plus-backspin .sdk h5 {
          font-size: 0.9375rem;
          margin-top: 1.875rem;
          color: #00a4df; }
      .developer-kit-container .sdk-plus-backspin .plus {
        padding: 0;
        font-size: 2.5rem;
        color: #00a4df;
        margin-top: 1.4375rem;
        float: left;
        margin-right: 0.9375rem; }
      .developer-kit-container .sdk-plus-backspin .backspin {
        float: left; }
        .developer-kit-container .sdk-plus-backspin .backspin img {
          max-height: 5rem;
          width: auto; }
        .developer-kit-container .sdk-plus-backspin .backspin h5 {
          margin-top: 1.875rem;
          font-size: 0.9375rem;
          color: #00a4df; } }

.developer-kit-container.product {
  background-color: #f5f6f7;
  height: auto;
  padding-bottom: 10%; }
  .developer-kit-container.product article.copy h3 {
    padding-top: 3.125rem; }
  .developer-kit-container.product .buynow {
    display: block;
    text-align: center;
    margin-top: 3.125rem; }

.signup-container {
  position: relative;
  text-align: center; }
  .signup-container article.copy {
    max-width: 40.625rem;
    border: 1px solid rgba(55, 63, 69, 0.2);
    padding: 0 5%;
    text-align: center;
    margin: 3% auto 5%; }
    .signup-container article.copy div.signup-max-container {
      padding: 3.75rem 0;
      width: auto;
      max-width: 450px;
      float: none;
      display: block;
      margin-right: auto;
      margin-left: auto;
      padding-left: 0;
      padding-right: 0;
      max-width: 28.125rem; }
      .signup-container article.copy div.signup-max-container:after {
        clear: both;
        content: '';
        display: table; }
      .signup-container article.copy div.signup-max-container p {
        text-align: center;
        margin-top: 0rem;
        color: #707f8c;
        font-size: 1rem;
        margin-bottom: 3.4375rem; }
      .signup-container article.copy div.signup-max-container .btn {
        margin: 2% auto; }

.dpp ul {
  margin-left: 1.875rem; }
  .dpp ul > li {
    list-style-type: none;
    padding: 0.5rem 0 0.5rem 0.3125rem;
    position: relative;
    color: #596570;
    line-height: 1.2em; }
    .dpp ul > li::before {
      color: #00a4df;
      content: "\2022";
      position: absolute;
      left: -0.4375rem;
      top: 0.4375rem;
      font-size: 1.875rem;
      margin-left: -0.4375rem; }
    .dpp ul > li > ul {
      padding: 0.5rem 0 0; }
      .dpp ul > li > ul > li {
        padding-left: 0.125rem; }
        .dpp ul > li > ul > li::before {
          content: '\BA';
          top: 0.6875rem;
          left: -0.3125rem;
          font-size: 1.25rem; }
        .dpp ul > li > ul > li > ul > li::before {
          content: '\2D';
          top: 0.375rem;
          left: -0.3125rem; }
        .dpp ul > li > ul > li > ul > li > ul > li::before {
          content: '\25B8';
          left: -0.4375rem; }

.tri-image {
  float: left;
  clear: none;
  text-align: inherit;
  width: 33.333333%;
  margin-left: 0%;
  margin-right: 0%;
  overflow: hidden;
  position: relative;
  float: left;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  -webkit-transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
          transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
  .tri-image:after {
    clear: both;
    content: '';
    display: table; }
  .tri-image:after {
    clear: both;
    content: '';
    display: table; }
  .tri-image:before {
    content: '';
    display: block;
    height: 0;
    padding-top: 62.5%; }
  @media (max-width: 767px) {
    .tri-image {
      float: left;
      clear: none;
      text-align: inherit;
      width: 100%;
      margin-left: 0%;
      margin-right: 0%; }
      .tri-image:after {
        clear: both;
        content: '';
        display: table; } }

.team-members {
  padding-top: 4.6875rem;
  padding-bottom: 3.125rem; }
  .team-members .slice {
    border-top: 1px solid rgba(55, 63, 69, 0.15); }
    .team-members .slice .slice-item {
      padding-top: 2.5rem;
      padding-bottom: 2.5rem; }
      .team-members .slice .slice-item:first-child {
        padding-right: 2.5rem;
        border-right: 1px solid rgba(55, 63, 69, 0.15); }
      .team-members .slice .slice-item:last-child {
        padding-left: 1.875rem; }
    .team-members .slice:first-of-type {
      border-top: none; }
    .team-members .slice:last-of-type .slice-item:last-child .team-member {
      border-bottom: none; }
  .team-members .team-member {
    position: relative; }
    .team-members .team-member:after {
      clear: both;
      content: '';
      display: table; }
    .team-members .team-member:hover .team-member-image:before {
      display: block; }
  .team-members .noted {
    position: absolute;
    top: 7.5rem;
    left: 0rem;
    display: block;
    width: 260px;
    background: #FFF;
    font-size: 0.75rem;
    box-shadow: 0 4px 10px 5px rgba(0, 0, 0, 0.1);
    line-height: 1.3em;
    display: none;
    -webkit-animation-duration: .3s;
            animation-duration: .3s;
    -webkit-animation-delay: .1s;
            animation-delay: .1s; }
    .team-members .noted span {
      display: block;
      padding: 6% 8%;
      text-align: left; }
      .team-members .noted span:after {
        display: block;
        position: absolute;
        content: '';
        top: -0.625rem;
        left: 3.5625rem;
        z-index: 12;
        width: 0;
        height: 0;
        border-bottom: 10px solid #fff;
        border-left: 10px solid transparent;
        border-right: 10px solid transparent; }
  @media (max-width: 767px) {
    .team-members {
      padding: 3.125rem 7.5%; }
      .team-members .slice,
      .team-members .slice-item {
        border: none; }
      .team-members .team-member {
        padding: 1.5625rem 0;
        border-bottom: 1px solid rgba(55, 63, 69, 0.15); } }

.team-member-image {
  float: left;
  clear: none;
  text-align: inherit;
  width: 25%;
  margin-left: 0%;
  margin-right: 0%;
  text-align: center;
  position: relative; }
  .team-member-image:after {
    clear: both;
    content: '';
    display: table; }
  .team-member-image:before {
    display: none;
    content: '';
    position: absolute;
    left: -webkit-calc(50% - 15px);
    left: calc(50% - 15px);
    bottom: -48px;
    width: 30px;
    height: 30px;
    background: transparent url("img/about/hover-icon.svg") no-repeat 0 0;
    -webkit-animation-duration: .3s;
            animation-duration: .3s; }
  @media (max-width: 767px) {
    .team-member-image {
      float: left;
      clear: none;
      text-align: inherit;
      width: 100%;
      margin-left: 0%;
      margin-right: 0%;
      text-align: center; }
      .team-member-image:after {
        clear: both;
        content: '';
        display: table; } }

.team-member-profile {
  border-radius: 50%;
  width: 100%;
  max-width: 6.25rem;
  border: 5px solid #fff;
  -webkit-filter: grayscale(100%);
          filter: grayscale(100%);
  -webkit-transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
          transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  position: relative; }
  .team-member-profile:hover {
    -webkit-filter: grayscale(0);
            filter: grayscale(0);
    box-shadow: 0 4px 10px 5px rgba(0, 0, 0, 0.1);
    -webkit-transform: translateY(-4px);
        -ms-transform: translateY(-4px);
            transform: translateY(-4px); }

.team-member-info {
  float: left;
  clear: none;
  text-align: inherit;
  width: 75%;
  margin-left: 0%;
  margin-right: 0%;
  padding: 0.625rem; }
  .team-member-info:after {
    clear: both;
    content: '';
    display: table; }
  .team-member-info h5 {
    display: inline-block;
    margin: 0;
    color: #2467b8;
    font-size: 1.25rem;
    font-weight: 200; }
  .team-member-info .team-member-title {
    padding-bottom: 1.25rem; }
  @media (max-width: 767px) {
    .team-member-info {
      float: left;
      clear: none;
      text-align: inherit;
      width: 100%;
      margin-left: 0%;
      margin-right: 0%;
      text-align: center; }
      .team-member-info:after {
        clear: both;
        content: '';
        display: table; }
      .team-member-info .team-member-title {
        text-align: center; }
      .team-member-info p {
        text-align: left; } }

.team-member-social {
  margin-left: 0.9375rem;
  padding: 0.0625rem 0.25rem;
  background-color: #b7bec5;
  border-radius: 0.125rem;
  -webkit-transition: background ease-in-out 0.3s;
          transition: background ease-in-out 0.3s; }
  .team-member-social svg {
    width: 0.75rem;
    height: 0.75rem;
    fill: #FFF; }
  .team-member-social:hover {
    background-color: #2467b8; }

.team-member-title {
  margin: 0.5rem 0 0.3125rem !important;
  color: #b7bec5;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase; }

.team-member-bio {
  margin: 0;
  font-size: 0.875rem; }

.slice {
  display: table;
  table-layout: fixed;
  width: 100%; }
  @media (max-width: 767px) {
    .slice > .slice-item {
      display: table-row; } }

.slice-item {
  display: table-cell;
  vertical-align: top; }

section.bullets-with-featured-image {
  width: 100%;
  background-color: #f5f6f7;
  padding: 5.625rem 10% 0 10%; }
  section.bullets-with-featured-image:after {
    clear: both;
    content: '';
    display: table; }
  section.bullets-with-featured-image .main-image {
    float: left;
    clear: none;
    text-align: inherit;
    width: 50%;
    margin-left: 0%;
    margin-right: 0%;
    margin-top: 1.25rem; }
    section.bullets-with-featured-image .main-image:after {
      clear: both;
      content: '';
      display: table; }
    section.bullets-with-featured-image .main-image .shadow {
      content: '';
      position: absolute;
      bottom: -40px;
      left: 0;
      width: 100%;
      height: 98px;
      background-image: url("img/goa-shadow.png");
      background-repeat: no-repeat;
      background-size: 100% auto !important;
      opacity: 0;
      -webkit-transform: scaleY(0.1);
          -ms-transform: scaleY(0.1);
              transform: scaleY(0.1);
      -webkit-transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
              transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
    section.bullets-with-featured-image .main-image figure {
      margin: 0 auto;
      -webkit-transform: translateY(40px);
          -ms-transform: translateY(40px);
              transform: translateY(40px);
      background-size: contain;
      background-repeat: no-repeat;
      -webkit-transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
              transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
      position: relative;
      opacity: 0; }
    section.bullets-with-featured-image .main-image.resolved figure {
      -webkit-transform: translateY(0);
          -ms-transform: translateY(0);
              transform: translateY(0);
      opacity: 1; }
    section.bullets-with-featured-image .main-image.resolved .shadow {
      opacity: 1;
      -webkit-transform: scaleY(1);
          -ms-transform: scaleY(1);
              transform: scaleY(1); }
    @media (min-width: 1025px) {
      section.bullets-with-featured-image .main-image {
        position: relative;
        left: 51.5%;
        left: 50%; }
        section.bullets-with-featured-image .main-image figure {
          height: 33.4375rem; } }
    @media (max-width: 1024px) {
      section.bullets-with-featured-image .main-image {
        position: static;
        left: 0;
        display: block;
        clear: both;
        float: none;
        width: 100%;
        margin-left: auto;
        margin-right: auto;
        width: 100%;
        position: relative; }
        section.bullets-with-featured-image .main-image:first-child {
          margin-left: auto; }
        section.bullets-with-featured-image .main-image:last-child {
          margin-right: auto; }
        section.bullets-with-featured-image .main-image figure {
          width: 100%;
          overflow: hidden;
          position: relative;
          top: 0;
          margin: 0 auto;
          background-size: 100% auto !important;
          background-repeat: no-repeat !important; }
          section.bullets-with-featured-image .main-image figure:before {
            content: '';
            display: block;
            height: 0;
            padding-top: 100%; } }
  section.bullets-with-featured-image .copy {
    float: left;
    clear: none;
    text-align: inherit;
    width: 50%;
    margin-left: 0%;
    margin-right: 0%; }
    section.bullets-with-featured-image .copy:after {
      clear: both;
      content: '';
      display: table; }
    section.bullets-with-featured-image .copy h2 {
      font-family: Graphik Thin Web;
      font-weight: normal;
      font-size: 2.5rem;
      color: black;
      margin: 1.5625rem 0 0 0;
      padding-right: 0.9375rem; }
    section.bullets-with-featured-image .copy p {
      margin-top: 3.125rem;
      margin-bottom: 3.75rem;
      max-width: 30rem;
      font-size: 1.0625rem;
      padding-right: 1.875rem;
      color: #707f8c; }
    section.bullets-with-featured-image .copy h4 {
      font-weight: bold;
      font-size: 0.875rem;
      margin-bottom: 1.875rem;
      color: #434c53; }
    section.bullets-with-featured-image .copy ul {
      float: left;
      clear: none;
      text-align: inherit;
      width: 100%;
      margin-left: 0%;
      margin-right: 0%;
      margin: 0;
      padding: 0;
      margin-bottom: 6.25rem;
      padding-left: 0.9375rem; }
      section.bullets-with-featured-image .copy ul:after {
        clear: both;
        content: '';
        display: table; }
      section.bullets-with-featured-image .copy ul:last-child {
        margin-right: 0%; }
      section.bullets-with-featured-image .copy ul li::before {
        content: "• ";
        font-size: 1.5625rem;
        position: absolute;
        color: #00a4df;
        left: -15px;
        top: -1px; }
      section.bullets-with-featured-image .copy ul li {
        padding-right: 2.1875rem;
        line-height: 1.25rem;
        position: relative;
        font-size: 0.9375rem;
        margin-bottom: 1.25rem;
        float: left;
        clear: none;
        text-align: inherit;
        width: 50%;
        margin-left: 0%;
        margin-right: 0%; }
        section.bullets-with-featured-image .copy ul li:after {
          clear: both;
          content: '';
          display: table; }
        section.bullets-with-featured-image .copy ul li:nth-child(2n) {
          margin-right: 0%;
          float: right; }
        section.bullets-with-featured-image .copy ul li:nth-child(2n + 1) {
          clear: both; }
    @media (min-width: 1025px) {
      section.bullets-with-featured-image .copy {
        position: relative;
        left: -51.5%;
        left: -50%; } }
    @media (max-width: 1024px) {
      section.bullets-with-featured-image .copy {
        padding: 1.5%;
        position: static;
        left: 0;
        display: block;
        clear: both;
        float: none;
        width: 100%;
        margin-left: auto;
        margin-right: auto; }
        section.bullets-with-featured-image .copy:first-child {
          margin-left: auto; }
        section.bullets-with-featured-image .copy:last-child {
          margin-right: auto; }
        section.bullets-with-featured-image .copy p {
          padding: 0;
          max-width: none; }
        section.bullets-with-featured-image .copy ul {
          margin-bottom: 1.875rem; }
          section.bullets-with-featured-image .copy ul li {
            float: left;
            clear: none;
            text-align: inherit;
            width: 100%;
            margin-left: 0%;
            margin-right: 0%; }
            section.bullets-with-featured-image .copy ul li:after {
              clear: both;
              content: '';
              display: table; }
            section.bullets-with-featured-image .copy ul li:last-child {
              margin-right: 0%; } }
  section.bullets-with-featured-image .gallery-grid {
    float: left;
    clear: none;
    text-align: inherit;
    width: 100%;
    margin-left: 0%;
    margin-right: 0%;
    margin-bottom: 6.25rem; }
    section.bullets-with-featured-image .gallery-grid:after {
      clear: both;
      content: '';
      display: table; }
    section.bullets-with-featured-image .gallery-grid:last-child {
      margin-right: 0%; }
    section.bullets-with-featured-image .gallery-grid div {
      position: relative; }
      section.bullets-with-featured-image .gallery-grid div::after {
        position: absolute;
        content: '';
        top: 0;
        left: 0;
        width: 100%;
        height: 0%;
        padding-bottom: 64%;
        box-shadow: inset 0 0 0 0px transparent;
        -webkit-transition: box-shadow 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
                transition: box-shadow 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
        pointer-events: none; }
      section.bullets-with-featured-image .gallery-grid div:hover::after {
        box-shadow: inset 0 0 0 3px #00a4df; }
      section.bullets-with-featured-image .gallery-grid div .zoom-img-wrap {
        width: 100%; }
        section.bullets-with-featured-image .gallery-grid div .zoom-img-wrap img {
          height: auto; }
      section.bullets-with-featured-image .gallery-grid div img {
        display: block;
        width: 100%;
        height: auto;
        background-color: grey;
        cursor: pointer; }
        section.bullets-with-featured-image .gallery-grid div img:not(:first-of-type, :last-of-type) {
          margin: 0 auto; }
    @media (min-width: 1024px) {
      section.bullets-with-featured-image .gallery-grid div {
        float: left;
        clear: none;
        text-align: inherit;
        width: 15.208333%;
        margin-left: 0%;
        margin-right: 1.75%; }
        section.bullets-with-featured-image .gallery-grid div:after {
          clear: both;
          content: '';
          display: table; }
        section.bullets-with-featured-image .gallery-grid div:nth-child(6n) {
          margin-right: 0%;
          float: right; }
        section.bullets-with-featured-image .gallery-grid div:nth-child(6n + 1) {
          clear: both; }
        section.bullets-with-featured-image .gallery-grid div::after {
          width: 100.3%;
          padding-bottom: 64%; }
        section.bullets-with-featured-image .gallery-grid div img {
          width: 100%;
          height: auto; } }
  @media (max-width: 1023px) {
    section.bullets-with-featured-image {
      padding: 3.75rem 5% 0 5%; }
      section.bullets-with-featured-image div {
        margin-bottom: 0.9375rem; } }

img[data-action="zoom"] {
  cursor: pointer;
  cursor: -webkit-zoom-in;
  cursor: -moz-zoom-in; }

.zoom-img,
.zoom-img-wrap {
  position: relative;
  z-index: 666;
  -webkit-transition: all 300ms;
  transition: all 300ms; }

img.zoom-img {
  cursor: pointer;
  cursor: -webkit-zoom-out;
  cursor: -moz-zoom-out; }

.zoom-overlay {
  z-index: 420;
  background: #fff;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  filter: "alpha(opacity=0)";
  opacity: 0;
  -webkit-transition: opacity 300ms;
  transition: opacity 300ms; }

.zoom-overlay-open .zoom-overlay {
  filter: "alpha(opacity=100)";
  opacity: 1; }

.zoom-overlay-open,
.zoom-overlay-transitioning {
  cursor: default; }

footer[role="contentinfo"] {
  padding: 4.6875rem 5% 2.5rem 5%;
  background-color: #f5f6f7; }
  footer[role="contentinfo"] .copyright {
    float: left;
    clear: none;
    text-align: inherit;
    width: 33.333333%;
    margin-left: 0%;
    margin-right: 0%; }
    @media (min-width: 1025px) {
      footer[role="contentinfo"] .copyright {
        position: relative;
        left: -34.333333%; } }
    footer[role="contentinfo"] .copyright:after {
      clear: both;
      content: '';
      display: table; }
    footer[role="contentinfo"] .copyright p {
      font-size: 0.875rem;
      color: #7e8c98; }
    footer[role="contentinfo"] .copyright p:first-of-type {
      float: left;
      margin-right: 1.5625rem;
      margin-bottom: 0; }
    footer[role="contentinfo"] .copyright p:last-of-type {
      clear: both; }
    footer[role="contentinfo"] .copyright ul {
      clear: both;
      margin-bottom: 20px;
      padding-top: 0.1875rem; }
      footer[role="contentinfo"] .copyright ul li {
        font-size: 0.875rem;
        float: left;
        padding: 0 0.625rem;
        border-right: 1px solid #a8b2ba; }
        footer[role="contentinfo"] .copyright ul li:nth-of-type(1) {
          padding: 0 0.625rem 0 0; }
        footer[role="contentinfo"] .copyright ul li:last-of-type {
          border-right: none;
          padding-right: 0; }
        footer[role="contentinfo"] .copyright ul li a {
          color: #00a4df; }
          footer[role="contentinfo"] .copyright ul li a:hover {
            color: #2dc7ff; }
  footer[role="contentinfo"] .social-media {
    float: left;
    clear: none;
    text-align: inherit;
    width: 33.333333%;
    margin-left: 0%;
    margin-right: 0%;
    height: 50px;
    max-height: 3.125rem; }
    footer[role="contentinfo"] .social-media:after {
      clear: both;
      content: '';
      display: table; }
    @media (min-width: 1025px) {
      footer[role="contentinfo"] .social-media {
        position: relative;
        left: -34.333333%; } }
    footer[role="contentinfo"] .social-media ul {
      width: auto;
      max-width: 216px;
      float: none;
      display: block;
      margin-right: auto;
      margin-left: auto;
      padding-left: 0;
      padding-right: 0; }
      footer[role="contentinfo"] .social-media ul:after {
        clear: both;
        content: '';
        display: table; }
    footer[role="contentinfo"] .social-media li {
      float: left;
      border-right: 1px solid #d3d8dc;
      padding-top: 10px;
      padding-bottom: 10px; }
      footer[role="contentinfo"] .social-media li:nth-of-type(3) {
        border-right: none; }
      footer[role="contentinfo"] .social-media li svg {
        height: 20px;
        width: 20px;
        margin-right: 25px;
        margin-left: 25px; }
        footer[role="contentinfo"] .social-media li svg path {
          fill: #b7bec5; }
      footer[role="contentinfo"] .social-media li:hover svg path {
        fill: #7e8c98; }
  footer[role="contentinfo"] .clear {
    clear: both; }
  footer[role="contentinfo"] .subscribe-btn {
    float: left;
    clear: none;
    text-align: inherit;
    width: 33.333333%;
    margin-left: 0%;
    margin-right: 0%;
    margin-bottom: 2.8125rem; }
    @media (min-width: 1025px) {
      footer[role="contentinfo"] .subscribe-btn {
        position: relative;
        left: 68.666667%; } }
    footer[role="contentinfo"] .subscribe-btn:after {
      clear: both;
      content: '';
      display: table; }
    footer[role="contentinfo"] .subscribe-btn form {
      position: relative; }
      footer[role="contentinfo"] .subscribe-btn form:hover button {
        color: #00a4df; }
    footer[role="contentinfo"] .subscribe-btn input {
      float: right;
      font-size: 0.8125rem;
      color: #7e8c98;
      background-color: transparent;
      border: 3px solid #d3d8dc;
      padding: 0.9375rem 3.125rem 0.9375rem 1.125rem;
      width: 18.75rem;
      -webkit-transition: all 0.2s ease;
              transition: all 0.2s ease; }
      footer[role="contentinfo"] .subscribe-btn input:focus {
        border-color: #b7bec5; }
      @media (max-width: 1024px) {
        footer[role="contentinfo"] .subscribe-btn input {
          width: 100%; } }
    footer[role="contentinfo"] .subscribe-btn button {
      position: absolute;
      top: 6px;
      right: 0;
      background-color: transparent;
      color: #a8b2ba;
      font-weight: bold; }
      footer[role="contentinfo"] .subscribe-btn button .arrow {
        border-right: 2px solid #b7bec5;
        border-bottom: 2px solid #b7bec5;
        width: 0.625rem;
        height: 0.625rem;
        display: block;
        -webkit-transform: rotate(-45deg);
            -ms-transform: rotate(-45deg);
                transform: rotate(-45deg);
        margin-top: 4px;
        position: absolute;
        right: 0; }
      footer[role="contentinfo"] .subscribe-btn button:hover .arrow {
        border-color: #00a4df; }
      footer[role="contentinfo"] .subscribe-btn button:focus {
        outline: none; }
  @media (max-width: 1024px) {
    footer[role="contentinfo"] {
      height: 20rem; }
      footer[role="contentinfo"] .copyright {
        text-align: center;
        display: block;
        clear: both;
        float: none;
        width: 100%;
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 1.875rem; }
        footer[role="contentinfo"] .copyright:first-child {
          margin-left: auto; }
        footer[role="contentinfo"] .copyright:last-child {
          margin-right: auto; }
        footer[role="contentinfo"] .copyright ul {
          margin-bottom: 1.25rem;
          display: block;
          clear: both;
          float: none;
          width: 100%;
          margin-left: auto;
          margin-right: auto;
          width: auto;
          max-width: 260px;
          float: none;
          display: block;
          margin-right: auto;
          margin-left: auto;
          padding-left: 0;
          padding-right: 0; }
          footer[role="contentinfo"] .copyright ul:first-child {
            margin-left: auto; }
          footer[role="contentinfo"] .copyright ul:last-child {
            margin-right: auto; }
          footer[role="contentinfo"] .copyright ul:after {
            clear: both;
            content: '';
            display: table; }
        footer[role="contentinfo"] .copyright p:first-of-type {
          display: block;
          clear: both;
          float: none;
          width: 100%;
          margin-left: auto;
          margin-right: auto;
          margin-bottom: 1.25rem; }
          footer[role="contentinfo"] .copyright p:first-of-type:first-child {
            margin-left: auto; }
          footer[role="contentinfo"] .copyright p:first-of-type:last-child {
            margin-right: auto; }
        footer[role="contentinfo"] .copyright p {
          display: block;
          clear: both;
          float: none;
          width: 100%;
          margin-left: auto;
          margin-right: auto;
          margin-bottom: 1.25rem; }
          footer[role="contentinfo"] .copyright p:first-child {
            margin-left: auto; }
          footer[role="contentinfo"] .copyright p:last-child {
            margin-right: auto; }
      footer[role="contentinfo"] .social-media {
        display: block;
        clear: both;
        float: none;
        width: 100%;
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 1.875rem; }
        footer[role="contentinfo"] .social-media:first-child {
          margin-left: auto; }
        footer[role="contentinfo"] .social-media:last-child {
          margin-right: auto; }
        footer[role="contentinfo"] .social-media li {
          margin-top: 0rem; }
      footer[role="contentinfo"] .subscribe-btn {
        display: block;
        clear: both;
        float: none;
        width: 100%;
        margin-left: auto;
        margin-right: auto;
        float: none;
        width: auto;
        max-width: 290px;
        float: none;
        display: block;
        margin-right: auto;
        margin-left: auto;
        padding-left: 0;
        padding-right: 0; }
        footer[role="contentinfo"] .subscribe-btn:first-child {
          margin-left: auto; }
        footer[role="contentinfo"] .subscribe-btn:last-child {
          margin-right: auto; }
        footer[role="contentinfo"] .subscribe-btn:after {
          clear: both;
          content: '';
          display: table; } }
  @media (max-width: 1024px) {
    footer[role="contentinfo"] {
      min-height: 23.75rem; } }

header[role="banner"] {
  margin: 0 auto;
  width: 100%;
  position: absolute;
  top: 0;
  max-width: 1600px;
  z-index: 1; }
  header[role="banner"] .nav-social-media {
    display: none; }
  header[role="banner"] .wrap {
    display: none; }
  header[role="banner"] .logo-container {
    margin-top: 2.5rem;
    height: 4.375rem;
    float: left;
    width: 12rem; }
  header[role="banner"] ul.navigation-container {
    float: right; }
    header[role="banner"] ul.navigation-container li {
      float: left; }
      header[role="banner"] ul.navigation-container li:last-child {
        padding-top: 0.6875rem;
        padding-bottom: 0.625rem; }
      header[role="banner"] ul.navigation-container li a {
        color: #FFF; }
        header[role="banner"] ul.navigation-container li a:not(.btn) {
          display: block;
          padding: 4.375rem 1.875rem;
          font-size: 1rem; }
          @media (min-width: 1025px) {
            header[role="banner"] ul.navigation-container li a:not(.btn) span {
              position: relative;
              display: inline-block; }
              header[role="banner"] ul.navigation-container li a:not(.btn) span::after {
                content: "";
                position: absolute;
                left: 50%;
                right: 50%;
                bottom: -8px;
                background: rgba(255, 255, 255, 0.2);
                height: 1px;
                -webkit-transition: all 0.25s ease;
                        transition: all 0.25s ease; }
            header[role="banner"] ul.navigation-container li a:not(.btn).active span::after {
              left: 0;
              right: 0; }
            header[role="banner"] ul.navigation-container li a:not(.btn):hover span::after {
              left: 0;
              right: 0; } }
        header[role="banner"] ul.navigation-container li a.btn {
          margin: 3.25rem 0 0 1.875rem;
          color: #00a4df; }
  @media (max-width: 1023px) {
    header[role="banner"] .nav-buy-now {
      display: none !important; } }
  header[role="banner"].header--pinned {
    z-index: 4;
    -webkit-transition: all .3s ease-in-out;
            transition: all .3s ease-in-out;
    background: #FFF;
    position: fixed;
    box-shadow: 0 0 10px 5px rgba(0, 0, 0, 0.05); }
    header[role="banner"].header--pinned .wrap .ham-wrap span {
      position: relative;
      margin-top: 9px;
      margin-bottom: 9px;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none; }
      header[role="banner"].header--pinned .wrap .ham-wrap span, header[role="banner"].header--pinned .wrap .ham-wrap span::before, header[role="banner"].header--pinned .wrap .ham-wrap span::after {
        display: block;
        width: 30px;
        height: 2px;
        background-color: #596570;
        -webkit-transition-property: background-color, -webkit-transform;
        transition-property: background-color, transform;
        -webkit-transition-duration: 0.3s;
        transition-duration: 0.3s; }
      header[role="banner"].header--pinned .wrap .ham-wrap span::before, header[role="banner"].header--pinned .wrap .ham-wrap span::after {
        position: absolute;
        content: ""; }
      header[role="banner"].header--pinned .wrap .ham-wrap span::before {
        top: -9px; }
      header[role="banner"].header--pinned .wrap .ham-wrap span::after {
        top: 9px; }
    header[role="banner"].header--pinned .logo-container {
      float: left;
      width: 5.625rem;
      height: 1.8125rem;
      margin-top: 0;
      padding: 0.875rem 0; }
      header[role="banner"].header--pinned .logo-container svg {
        width: 75px;
        height: 1.8125rem; }
      header[role="banner"].header--pinned .logo-container path.letters {
        fill: #596570; }
    header[role="banner"].header--pinned ul.navigation-container li a:not(.btn) {
      color: #596570;
      padding: 1.25rem 1.875rem;
      font-size: 0.8125rem; }
      header[role="banner"].header--pinned ul.navigation-container li a:not(.btn):hover {
        color: #00a4df; }
      header[role="banner"].header--pinned ul.navigation-container li a:not(.btn) span::after {
        display: none; }
    header[role="banner"].header--pinned ul.navigation-container li a.btn {
      -webkit-transition: none;
              transition: none; }
    header[role="banner"].header--pinned ul.navigation-container li a.active {
      color: #00a4df; }
      header[role="banner"].header--pinned ul.navigation-container li a.active span::after {
        display: none; }
    header[role="banner"].header--pinned ul.navigation-container li a.btn {
      margin: 0 1.25rem;
      margin-top: 0;
      border-radius: 0;
      color: #00a4df;
      font-weight: bold;
      padding: 0.4375rem 1.25rem;
      background-color: transparent;
      border: 2px solid #00a4df;
      font-size: 0.75rem; }
      header[role="banner"].header--pinned ul.navigation-container li a.btn:hover {
        color: #FFF;
        background-color: #00a4df;
        border: 2px solid #00a4df;
        font-size: 0.75rem; }
      header[role="banner"].header--pinned ul.navigation-container li a.btn:focus {
        color: #FFF;
        background-color: #00a4df;
        border: 2px solid #00a4df;
        font-size: 0.75rem;
        outline: none; }
    @media (max-width: 1023px) {
      header[role="banner"].header--pinned .logo-container {
        margin-top: 0.625rem; } }
  header[role="banner"].header--top {
    -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
            transform: translateY(0); }
  @media (max-width: 1023px) {
    header[role="banner"].is-active {
      height: 100vh;
      z-index: 10; }
      header[role="banner"].is-active .container {
        position: fixed;
        width: 100%;
        z-index: 2; }
        header[role="banner"].is-active .container path.letters {
          fill: #FFF; }
        header[role="banner"].is-active .container ul.navigation-container {
          width: 100% !important;
          margin-top: 15vh;
          display: block;
          float: none; }
          header[role="banner"].is-active .container ul.navigation-container li {
            text-align: center;
            float: none;
            font-weight: normal; }
            header[role="banner"].is-active .container ul.navigation-container li a {
              display: block;
              width: 100%;
              padding: 1.25rem 0.9375rem;
              font-weight: 200;
              opacity: 0; } }
          @media screen and (max-width: 1023px) and (max-height: 500px) {
            header[role="banner"].is-active .container ul.navigation-container li a {
              padding: 0.9375rem 0.9375rem; } }
  @media (max-width: 1023px) {
            header[role="banner"].is-active .container ul.navigation-container li span {
              font-size: -webkit-calc(32px + 16 * ((100vw - 320px) / 703));
              font-size: calc(32px + 16 * ((100vw - 320px) / 703)); } }
          @media screen and (max-width: 1023px) and (max-width: 320px) {
            header[role="banner"].is-active .container ul.navigation-container li span {
              font-size: 32px; } }
          @media screen and (max-width: 1023px) and (min-width: 1023px) {
            header[role="banner"].is-active .container ul.navigation-container li span {
              font-size: 48px; } }
  @media (max-width: 1023px) {
            header[role="banner"].is-active .container ul.navigation-container li:nth-child(1) a {
              color: #c63936; }
            header[role="banner"].is-active .container ul.navigation-container li:nth-child(2) a {
              color: #97377d;
              -webkit-animation-delay: .1s;
                      animation-delay: .1s; }
            header[role="banner"].is-active .container ul.navigation-container li:nth-child(3) a {
              color: #643880;
              -webkit-animation-delay: .2s;
                      animation-delay: .2s; }
            header[role="banner"].is-active .container ul.navigation-container li:nth-child(4) a {
              color: #256bb7;
              -webkit-animation-delay: .3s;
                      animation-delay: .3s; }
            header[role="banner"].is-active .container ul.navigation-container li:nth-child(5) a {
              color: #1998e8;
              -webkit-animation-delay: .4s;
                      animation-delay: .4s; }
            header[role="banner"].is-active .container ul.navigation-container li:hover a {
              color: #FFF; }
            header[role="banner"].is-active .container ul.navigation-container li:active {
              background: -webkit-linear-gradient(top, rgba(168, 50, 64, 0.4), rgba(119, 50, 112, 0.4));
              background: linear-gradient(to bottom, rgba(168, 50, 64, 0.4), rgba(119, 50, 112, 0.4)); }
              header[role="banner"].is-active .container ul.navigation-container li:active a {
                color: white; }
          header[role="banner"].is-active .container ul.navigation-container.resolved li a {
            -webkit-transform: translateY(0);
                -ms-transform: translateY(0);
                    transform: translateY(0);
            opacity: 1; }
      header[role="banner"].is-active .nav-social-media {
        position: fixed;
        left: 50%;
        -webkit-transform: translateX(-50%);
            -ms-transform: translateX(-50%);
                transform: translateX(-50%);
        bottom: 30px;
        display: block;
        height: 50px;
        width: 215px;
        z-index: 3; }
        header[role="banner"].is-active .nav-social-media li {
          float: left;
          border-right: 1px solid #5f6e74;
          padding-top: 10px;
          padding-bottom: 10px; }
          header[role="banner"].is-active .nav-social-media li:nth-of-type(3) {
            border-right: none; }
          header[role="banner"].is-active .nav-social-media li svg {
            height: 20px;
            width: 20px;
            margin-right: 25px;
            margin-left: 25px; }
            header[role="banner"].is-active .nav-social-media li svg path {
              fill: #5f6e74; }
          header[role="banner"].is-active .nav-social-media li:hover svg path {
            fill: #FFF; } }
    @media screen and (max-width: 1023px) and (max-height: 500px) {
      header[role="banner"].is-active .nav-social-media {
        bottom: 0; } }
  @media (max-width: 1023px) {
    header[role="banner"] .wrap {
      -webkit-transform: scale(0.7);
          -ms-transform: scale(0.7);
              transform: scale(0.7);
      float: right;
      display: block;
      padding-top: 0.3125rem; }
      header[role="banner"] .wrap .ham-wrap {
        width: 60px;
        height: 60px;
        cursor: pointer;
        position: relative; }
        header[role="banner"] .wrap .ham-wrap span {
          position: relative;
          margin-top: 9px;
          margin-bottom: 9px;
          -webkit-user-select: none;
          -moz-user-select: none;
          -ms-user-select: none;
          user-select: none;
          top: 24px;
          left: 19px;
          display: block; }
          header[role="banner"] .wrap .ham-wrap span, header[role="banner"] .wrap .ham-wrap span::before, header[role="banner"] .wrap .ham-wrap span::after {
            display: block;
            width: 30px;
            height: 2px;
            background-color: #FFF;
            -webkit-transition-property: background-color, -webkit-transform;
            transition-property: background-color, transform;
            -webkit-transition-duration: 0.3s;
            transition-duration: 0.3s; }
          header[role="banner"] .wrap .ham-wrap span::before, header[role="banner"] .wrap .ham-wrap span::after {
            position: absolute;
            content: ""; }
          header[role="banner"] .wrap .ham-wrap span::before {
            top: -9px; }
          header[role="banner"] .wrap .ham-wrap span::after {
            top: 9px; }
        header[role="banner"] .wrap .ham-wrap.is-active span {
          background-color: transparent; }
        header[role="banner"] .wrap .ham-wrap.is-active span::before {
          -webkit-transform: translateY(9px) rotate(45deg);
          -ms-transform: translateY(9px) rotate(45deg);
          transform: translateY(9px) rotate(45deg); }
        header[role="banner"] .wrap .ham-wrap.is-active span::after {
          -webkit-transform: translateY(-9px) rotate(-45deg);
          -ms-transform: translateY(-9px) rotate(-45deg);
          transform: translateY(-9px) rotate(-45deg); }
    header[role="banner"] .logo-container {
      z-index: 200;
      margin: 0;
      height: auto;
      float: left;
      width: 7.5rem;
      padding-top: 15px;
      padding-bottom: 15px; }
      header[role="banner"] .logo-container svg {
        z-index: 201 !important;
        height: 2.6875rem; }
      header[role="banner"] .logo-container path.letters {
        fill: #FFF; }
    header[role="banner"] ul.navigation-container {
      display: none; } }

.overflow-hidden {
  overflow: hidden; }

.overlay {
  display: none;
  -webkit-transition: opacity 1s ease;
          transition: opacity 1s ease;
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  background-color: rgba(0, 0, 0, 0.9);
  z-index: 1; }
  .overlay.is-active {
    display: block;
    position: fixed;
    opacity: 1; }

.dark {
  background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.6) 0%, transparent 100%);
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.6) 0%, transparent 100%); }
  .dark .logo-container path.letters {
    fill: #FFF; }
  .dark ul.navigaton-container li a:not(.btn) {
    color: white; }

header[role="banner"].light {
  background: none; }
  header[role="banner"].light.header--pinned {
    background-color: #ffffff; }
    header[role="banner"].light.header--pinned ul.navigation-container li a:not(.btn):hover {
      color: #00a4df; }
    header[role="banner"].light.header--pinned ul.navigation-container li a:not(.btn) span::after {
      display: none; }
    header[role="banner"].light.header--pinned ul.navigation-container li a.active {
      color: #00a4df; }
  header[role="banner"].light .logo-container path.letters {
    fill: #596570; }
  header[role="banner"].light ul.navigation-container li a:not(.btn) {
    color: #596570; }
    header[role="banner"].light ul.navigation-container li a:not(.btn) span::after {
      background: rgba(89, 101, 112, 0.2); }
    header[role="banner"].light ul.navigation-container li a:not(.btn).active span::after {
      left: 0;
      right: 0; }
  @media (max-width: 1023px) {
    header[role="banner"].light .wrap .ham-wrap span {
      position: relative;
      margin-top: 9px;
      margin-bottom: 9px;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none; }
      header[role="banner"].light .wrap .ham-wrap span, header[role="banner"].light .wrap .ham-wrap span::before, header[role="banner"].light .wrap .ham-wrap span::after {
        display: block;
        width: 30px;
        height: 2px;
        background-color: #596570;
        -webkit-transition-property: background-color, -webkit-transform;
        transition-property: background-color, transform;
        -webkit-transition-duration: 0.3s;
        transition-duration: 0.3s; }
      header[role="banner"].light .wrap .ham-wrap span::before, header[role="banner"].light .wrap .ham-wrap span::after {
        position: absolute;
        content: ""; }
      header[role="banner"].light .wrap .ham-wrap span::before {
        top: -9px; }
      header[role="banner"].light .wrap .ham-wrap span::after {
        top: 9px; }
    header[role="banner"].light .wrap .ham-wrap.is-active span {
      background-color: transparent; }
    header[role="banner"].light .wrap .ham-wrap.is-active span::before {
      -webkit-transform: translateY(9px) rotate(45deg);
      -ms-transform: translateY(9px) rotate(45deg);
      transform: translateY(9px) rotate(45deg); }
    header[role="banner"].light .wrap .ham-wrap.is-active span::after {
      -webkit-transform: translateY(-9px) rotate(-45deg);
      -ms-transform: translateY(-9px) rotate(-45deg);
      transform: translateY(-9px) rotate(-45deg); } }

div.dev-footer {
  width: 100%;
  min-height: 20.625rem;
  display: inline-block;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center; }
  div.dev-footer:after {
    clear: both;
    content: '';
    display: table; }
  @media (max-width: 639px) {
    div.dev-footer {
      padding-bottom: 3.125rem; } }
  div.dev-footer div.df-wrap {
    width: 46.875rem;
    margin: 0 auto;
    padding-top: 3.4375rem;
    text-align: center; }
    @media (max-width: 1023px) {
      div.dev-footer div.df-wrap {
        width: 90%; } }
    div.dev-footer div.df-wrap h5 {
      color: #FFF;
      margin-bottom: 1.875rem; }
    div.dev-footer div.df-wrap div.support {
      float: left;
      clear: none;
      text-align: inherit;
      width: 25%;
      margin-left: 0%;
      margin-right: 0%;
      min-height: 10rem;
      padding-top: 2.5rem;
      background: transparent;
      -webkit-transition: background 250ms;
              transition: background 250ms; }
      div.dev-footer div.df-wrap div.support:after {
        clear: both;
        content: '';
        display: table; }
      @media (max-width: 639px) {
        div.dev-footer div.df-wrap div.support {
          float: left;
          clear: none;
          text-align: inherit;
          width: 50%;
          margin-left: 0%;
          margin-right: 0%; }
          div.dev-footer div.df-wrap div.support:after {
            clear: both;
            content: '';
            display: table; } }
      div.dev-footer div.df-wrap div.support svg {
        width: 3.125rem;
        height: 3.125rem; }
        div.dev-footer div.df-wrap div.support svg g {
          stroke: rgba(255, 255, 255, 0.85);
          -webkit-transition: stroke 250ms;
                  transition: stroke 250ms; }
      div.dev-footer div.df-wrap div.support span {
        width: 100%;
        padding-top: 0.9375rem;
        color: rgba(255, 255, 255, 0.8);
        font-size: 0.875rem;
        display: inline-block;
        -webkit-transition: color 250ms;
                transition: color 250ms; }
      div.dev-footer div.df-wrap div.support:hover {
        background: rgba(0, 0, 0, 0.2); }
        div.dev-footer div.df-wrap div.support:hover svg g {
          stroke: #FFF; }
        div.dev-footer div.df-wrap div.support:hover span {
          color: #FFF; }

section.content-404 {
  width: 100%;
  height: 80vh;
  background: -webkit-linear-gradient(295deg, #ee412a, #ae3937, #763e74, #2d5ea5, #039bd4);
  background: linear-gradient(155deg, #ee412a, #ae3937, #763e74, #2d5ea5, #039bd4);
  position: relative;
  -webkit-transition: height .5s ease;
          transition: height .5s ease; }
  section.content-404 .copy {
    width: 100%;
    height: 200px;
    display: block;
    position: relative;
    width: auto;
    max-width: 650px;
    float: none;
    display: block;
    margin-right: auto;
    margin-left: auto;
    padding-left: 0;
    padding-right: 0;
    top: 45%;
    -webkit-transition: top .5s ease;
            transition: top .5s ease;
    padding: 0 5%; }
    section.content-404 .copy:after {
      clear: both;
      content: '';
      display: table; }
    section.content-404 .copy h1 {
      text-align: center;
      color: white;
      font-family: Graphik Thin Web;
      -webkit-font-smoothing: subpixel-antialiased;
      font-weight: normal;
      -webkit-animation-delay: 0.5s;
              animation-delay: 0.5s; }
    section.content-404 .copy p {
      text-align: center;
      margin-bottom: 50px;
      color: rgba(255, 255, 255, 0.6);
      -webkit-animation-delay: 1s;
              animation-delay: 1s; }
    section.content-404 .copy a {
      position: relative;
      left: -webkit-calc(50% - 75px);
      left: calc(50% - 75px);
      -webkit-animation-delay: 1.5s;
              animation-delay: 1.5s; }
  @media (max-width: 767px) {
    section.content-404 {
      height: 65vh; }
      section.content-404 .copy {
        top: 30%; } }

section.dev-header {
  width: 100%;
  padding-top: 9.6875rem;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center; }
  section.dev-header div.dh-wrap {
    background: rgba(0, 0, 0, 0.2);
    padding: 1.5625rem 5%; }
    section.dev-header div.dh-wrap h5 {
      margin: 0;
      padding: 0;
      display: inline-block;
      color: #FFF;
      font-weight: 200; }

div.dh-right {
  width: 22.8125rem;
  padding: 0;
  position: relative;
  float: right; }
  div.dh-right ul {
    float: left;
    position: relative;
    bottom: 0.1875rem; }
    div.dh-right ul li {
      float: left; }
      div.dh-right ul li:first-child a {
        border-right: 1px solid rgba(255, 255, 255, 0.2); }
      div.dh-right ul li a {
        display: block;
        padding: 0.1875rem 1.125rem; }
        div.dh-right ul li a svg {
          position: relative;
          width: 1.5625rem;
          height: 1.5625rem;
          fill: rgba(0, 164, 223, 0.4);
          -webkit-transition: fill 250ms;
                  transition: fill 250ms; }
        div.dh-right ul li a:hover svg {
          fill: rgba(0, 164, 223, 0.6); }
  div.dh-right form {
    float: right;
    position: relative;
    top: 0.1875rem; }
    div.dh-right form label::after {
      content: '';
      width: 0;
      margin: 0 auto;
      height: 1px;
      display: block;
      background: rgba(255, 255, 255, 0.2);
      bottom: 1px;
      position: relative;
      -webkit-transition: width 350ms cubic-bezier(0.25, 0.1, 0.25, 1);
              transition: width 350ms cubic-bezier(0.25, 0.1, 0.25, 1); }
    div.dh-right form label.show::after {
      width: 100%; }
    div.dh-right form input {
      width: 14.0625rem;
      padding-bottom: 0.5625rem;
      font-size: 0.9375rem;
      color: rgba(255, 255, 255, 0.5);
      background: transparent;
      border-right: none;
      border-left: none;
      border-top: none;
      border-bottom: 1px solid rgba(255, 255, 255, 0.2); }
      div.dh-right form input:focus {
        color: #FFF; }
        div.dh-right form input:focus::-webkit-input-placeholder {
          color: rgba(255, 255, 255, 0.7); }
        div.dh-right form input:focus:-moz-placeholder {
          color: rgba(255, 255, 255, 0.7); }
        div.dh-right form input:focus::-moz-placeholder {
          color: rgba(255, 255, 255, 0.7); }
        div.dh-right form input:focus:-ms-input-placeholder {
          color: rgba(255, 255, 255, 0.7); }
    div.dh-right form ::-webkit-input-placeholder {
      color: rgba(255, 255, 255, 0.5);
      -webkit-transition: color 500ms;
              transition: color 500ms; }
    div.dh-right form :-moz-placeholder {
      color: rgba(255, 255, 255, 0.5);
      transition: color 500ms; }
    div.dh-right form ::-moz-placeholder {
      color: rgba(255, 255, 255, 0.5);
      transition: color 500ms; }
    div.dh-right form :-ms-input-placeholder {
      color: rgba(255, 255, 255, 0.5);
      transition: color 500ms; }
  div.dh-right svg {
    top: 0;
    right: 0;
    width: 1.25rem;
    height: 1.25rem;
    position: absolute;
    fill: rgba(255, 255, 255, 0.3); }

section.dev-wrap {
  width: 100%;
  background: #f5f6f7;
  position: relative; }
  section.dev-wrap:after {
    clear: both;
    content: '';
    display: table; }

nav.dev-nav {
  width: 20.3125rem;
  float: left;
  padding: 1.5625rem 0 1.5625rem 4.5%;
  height: 100vh;
  overflow-y: auto;
  overflow-x: hidden;
  border-right: 1px solid rgba(55, 63, 69, 0.2);
  -webkit-transition: -webkit-transform 750ms cubic-bezier(0.55, 0, 0.1, 1), margin-bottom 750ms cubic-bezier(0.55, 0, 0.1, 1);
          transition: transform 750ms cubic-bezier(0.55, 0, 0.1, 1), margin-bottom 750ms cubic-bezier(0.55, 0, 0.1, 1); }
  nav.dev-nav a svg {
    width: 0.625rem;
    fill: #b7bec5;
    right: -0.875rem;
    position: absolute;
    top: 0.375rem; }
  nav.dev-nav.is-fixed {
    position: fixed;
    top: 0; }
  nav.dev-nav.is-pinned {
    position: absolute;
    bottom: 20.625rem;
    left: 0;
    top: auto; }
  nav.dev-nav.is-shifted {
    -webkit-transform: translateY(55px);
        -ms-transform: translateY(55px);
            transform: translateY(55px);
    margin-bottom: 3.4375rem; }

span.e-links {
  width: 10px;
  height: 10px;
  background: red;
  position: absolute;
  top: 0;
  right: 0;
  display: block; }

ul.ext-links {
  margin-top: 1.5625rem;
  padding-top: 1.5625rem;
  width: 70%;
  border-top: 1px solid rgba(55, 63, 69, 0.2); }
  ul.ext-links li {
    padding: 0.3125rem 0;
    margin-left: 1.0625rem;
    list-style: none;
    position: relative; }
    ul.ext-links li::before {
      content: '\BA';
      color: #707f8c;
      position: absolute;
      top: 0.6875rem;
      left: -0.9375rem; }
    ul.ext-links li a {
      position: relative;
      font-size: 0.9375rem;
      color: #707f8c;
      -webkit-transition: color 300ms;
              transition: color 300ms; }
      ul.ext-links li a:hover {
        color: #00a4df; }

ul.menu a {
  color: rgba(55, 63, 69, 0.8);
  width: 100%;
  position: relative;
  padding-left: 2.1875rem;
  font-weight: normal;
  -webkit-transition: color 150ms, font-weight 350ms;
          transition: color 150ms, font-weight 350ms; }
  ul.menu a::before, ul.menu a::after {
    content: '';
    background: #FFF;
    display: block;
    position: absolute; }
  ul.menu a::before {
    width: 0.5rem;
    height: 0.125rem;
    top: 0.4375rem;
    left: 0.875rem; }
  ul.menu a::after {
    width: 0.125rem;
    height: 0.5rem;
    top: 0.25rem;
    left: 1.0625rem; }
  ul.menu a.is-hidden::before, ul.menu a.is-hidden::after {
    display: none !important; }
  ul.menu a.is-active {
    text-decoration: underline;
    color: black; }
    ul.menu a.is-active::after {
      display: none; }

ul.menu li {
  font-size: 0.9375rem;
  line-height: 1.9em;
  text-indent: -1.2em;
  width: 86%;
  position: relative; }
  ul.menu li:hover > a {
    color: black;
    text-decoration: underline; }
  ul.menu li::before {
    content: '';
    width: 0.875rem;
    height: 0.875rem;
    background: #f14f3e;
    border-radius: 50%;
    display: inline-block;
    position: relative;
    top: 0.0625rem;
    left: 1.5625rem; }
  ul.menu li:first-child ul, ul.menu li:last-child ul {
    position: relative;
    left: -1.0625rem; }
    ul.menu li:first-child ul li, ul.menu li:last-child ul li {
      text-indent: -.1em;
      list-style: circle;
      list-style-position: inside; }
      ul.menu li:first-child ul li a, ul.menu li:last-child ul li a {
        padding-left: 0; }

ul.sub-menu-0 {
  left: -0.3125rem; }
  ul.sub-menu-0 li {
    text-indent: -1em;
    padding-left: 3.3125rem; }

ul.sub-menu-1 {
  left: -0.25rem !important; }
  ul.sub-menu-1 li {
    list-style: circle !important;
    list-style-position: inside !important;
    padding-left: 0.75rem !important;
    text-indent: -.1em; }
    ul.sub-menu-1 li a {
      padding-left: 0 !important; }

ul.sub-menu-0,
ul.sub-menu-1 {
  position: relative;
  overflow: hidden;
  width: 128%;
  max-height: 0; }
  ul.sub-menu-0 li,
  ul.sub-menu-1 li {
    list-style-position: inside;
    list-style-type: circle; }
    ul.sub-menu-0 li::before,
    ul.sub-menu-1 li::before {
      display: none; }
    ul.sub-menu-0 li.is-toggle,
    ul.sub-menu-1 li.is-toggle {
      list-style-type: none !important;
      padding-left: 3.625rem; }
      ul.sub-menu-0 li.is-toggle::before,
      ul.sub-menu-1 li.is-toggle::before {
        display: inline-block !important;
        left: -0.625rem; }
    ul.sub-menu-0 li a::before,
    ul.sub-menu-1 li a::before {
      left: -1.3125rem; }
    ul.sub-menu-0 li a::after,
    ul.sub-menu-1 li a::after {
      left: -1.125rem; }
  ul.sub-menu-0 a,
  ul.sub-menu-1 a {
    padding-left: 0; }
  ul.sub-menu-0.is-active,
  ul.sub-menu-1.is-active {
    max-height: 700px; }

div.dev-main {
  width: -webkit-calc(100% - 20.3125rem);
  width: calc(100% - 20.3125rem);
  overflow: hidden;
  float: right; }
  div.dev-main .dpp {
    padding-bottom: 6.25rem; }
    div.dev-main .dpp p {
      color: #596570 !important; }
    div.dev-main .dpp img {
      margin-top: 1.5625rem; }
  div.dev-main .df .is-h3 {
    top: 2.8125rem !important; }

div.main-wrap {
  width: 100%;
  min-height: 100vh;
  padding: 3.125rem 3.125rem 3.125rem 3.75rem; }
  div.main-wrap:after {
    clear: both;
    content: '';
    display: table; }
  div.main-wrap h1,
  div.main-wrap h2,
  div.main-wrap h3 {
    color: #373f45;
    display: inline-block; }
  div.main-wrap h1 {
    font-weight: 200; }
  div.main-wrap h2 {
    font-size: 2rem;
    font-weight: 600; }
  div.main-wrap h3 {
    font-size: 1.625rem;
    font-weight: 600; }
  div.main-wrap pre {
    margin: 1.875rem 0;
    background: #FFF; }
  div.main-wrap a {
    color: #00a4df;
    -webkit-transition: color 250ms;
            transition: color 250ms; }
    div.main-wrap a:hover {
      color: #2dc7ff; }
  div.main-wrap p {
    color: #596570;
    padding-top: 0.9375rem; }
  div.main-wrap div.pw {
    margin-top: 3.125rem; }

div.platform {
  width: 31.333%;
  float: left;
  margin: 0 3% 3% 0;
  min-height: 16.25rem;
  border: 1px solid rgba(55, 63, 69, 0.2);
  position: relative;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.75);
  border-radius: 0.4375rem;
  -webkit-transition: border 250ms, background 350ms;
          transition: border 250ms, background 350ms; }
  @media (min-width: 1024px) {
    div.platform:nth-of-type(3n) {
      margin-right: 0; } }
  @media (max-width: 1023px) {
    div.platform {
      width: 48.5%; }
      div.platform:nth-of-type(2n) {
        margin-right: 0; } }
  div.platform::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 0.4375rem;
    z-index: 0;
    box-shadow: 0 15px 25px 5px rgba(0, 0, 0, 0.1);
    opacity: 0;
    -webkit-transition: opacity 0.3s ease-in-out;
            transition: opacity 0.3s ease-in-out; }
  div.platform:last-child {
    cursor: auto; }
    div.platform:last-child:after {
      clear: both;
      content: '';
      display: table; }
    div.platform:last-child::after {
      display: none; }
  div.platform.p-sign-up {
    background: #eff1f2;
    border: none; }
    div.platform.p-sign-up p {
      font-size: 0.875rem;
      width: 70%;
      text-align: center;
      padding: 3.75rem 0 1.875rem;
      margin: 0 auto; }
    div.platform.p-sign-up a {
      border-radius: 0;
      color: #00a4df;
      font-weight: bold;
      display: block;
      margin: 0 auto;
      text-align: center;
      padding-top: 0.75rem;
      background-color: transparent;
      border: 2px solid #00a4df;
      font-size: 0.75rem;
      height: 2.5rem;
      width: 50%;
      z-index: 2;
      -webkit-transition: background 250ms, color 250ms;
              transition: background 250ms, color 250ms; }
      div.platform.p-sign-up a:hover {
        background: #00a4df;
        color: #FFF; }
  div.platform:hover {
    border: 1px solid #00a4df;
    background: #FFF; }
    div.platform:hover:last-child {
      border: none;
      background: #eff1f2; }
    div.platform:hover::after {
      opacity: 1; }
    div.platform:hover div.lt {
      -webkit-transform: translateY(0rem);
          -ms-transform: translateY(0rem);
              transform: translateY(0rem); }
      div.platform:hover div.lt span {
        opacity: 0; }
    div.platform:hover div.line {
      width: 50%;
      opacity: 1; }
    div.platform:hover ul li:nth-child(1) {
      opacity: 1;
      -webkit-transform: translateY(0);
          -ms-transform: translateY(0);
              transform: translateY(0);
      -webkit-transition-delay: 0.07s;
              transition-delay: 0.07s; }
    div.platform:hover ul li:nth-child(2) {
      opacity: 1;
      -webkit-transform: translateY(0);
          -ms-transform: translateY(0);
              transform: translateY(0);
      -webkit-transition-delay: 0.14s;
              transition-delay: 0.14s; }
    div.platform:hover ul li:nth-child(3) {
      opacity: 1;
      -webkit-transform: translateY(0);
          -ms-transform: translateY(0);
              transform: translateY(0);
      -webkit-transition-delay: 0.21s;
              transition-delay: 0.21s; }
    div.platform:hover ul li:nth-child(4) {
      opacity: 1;
      -webkit-transform: translateY(0);
          -ms-transform: translateY(0);
              transform: translateY(0);
      -webkit-transition-delay: 0.28s;
              transition-delay: 0.28s; }
    div.platform:hover ul li:nth-child(5) {
      opacity: 1;
      -webkit-transform: translateY(0);
          -ms-transform: translateY(0);
              transform: translateY(0);
      -webkit-transition-delay: 0.35s;
              transition-delay: 0.35s; }
    div.platform:hover ul li:nth-child(6) {
      opacity: 1;
      -webkit-transform: translateY(0);
          -ms-transform: translateY(0);
              transform: translateY(0);
      -webkit-transition-delay: 0.42s;
              transition-delay: 0.42s; }
    div.platform:hover ul li:nth-child(7) {
      opacity: 1;
      -webkit-transform: translateY(0);
          -ms-transform: translateY(0);
              transform: translateY(0);
      -webkit-transition-delay: 0.49s;
              transition-delay: 0.49s; }
  div.platform:first-child .p-links {
    bottom: 20px; }
  div.platform:nth-child(3) .p-links {
    bottom: 60px; }
  div.platform:nth-child(5) .p-links {
    bottom: 70px; }

div.lt {
  width: 100%;
  height: 7.8125rem;
  display: block;
  position: relative;
  z-index: 2;
  -webkit-transform: translateY(3.125rem);
      -ms-transform: translateY(3.125rem);
          transform: translateY(3.125rem);
  -webkit-transition: -webkit-transform 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
          transition: transform 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
  div.lt img {
    margin: 0 auto;
    display: block;
    background: #FFF;
    z-index: 2;
    margin-bottom: 0.9375rem;
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%); }
  div.lt span {
    width: 100%;
    display: block;
    text-align: center;
    position: absolute;
    color: #707f8c;
    bottom: 0;
    opacity: 1;
    -webkit-transition: opacity 250ms;
            transition: opacity 250ms; }

div.line {
  border: 0;
  border-bottom: 1px solid rgba(55, 63, 69, 0.2);
  height: 0;
  padding: 0;
  margin: 1.5em 0;
  width: 0;
  position: relative;
  top: -0.625rem;
  opacity: 0;
  z-index: 1;
  margin: 0 auto;
  -webkit-transition: width 550ms cubic-bezier(0.25, 0.1, 0.25, 1), opacity 250ms ease 100ms;
          transition: width 550ms cubic-bezier(0.25, 0.1, 0.25, 1), opacity 250ms ease 100ms; }

ul.p-links {
  width: 100%;
  display: block;
  position: absolute;
  bottom: 2.1875rem;
  left: 0;
  z-index: 2; }
  ul.p-links li {
    width: 100%;
    text-align: center;
    margin-top: 0.5rem;
    font-size: 0.9375rem;
    opacity: 0;
    -webkit-transform: translateY(10px);
        -ms-transform: translateY(10px);
            transform: translateY(10px);
    -webkit-transition: opacity 250ms, -webkit-transform 250ms;
            transition: opacity 250ms, transform 250ms; }
    ul.p-links li a {
      color: #707f8c;
      -webkit-transition: color 250ms;
              transition: color 250ms; }
      ul.p-links li a:hover {
        color: #00a4df; }

div.crumbs {
  width: 100%;
  height: 3.4375rem;
  position: relative;
  border-bottom: 1px solid rgba(55, 63, 69, 0.2); }
  div.crumbs ul.next-prev {
    float: right;
    position: relative;
    top: 2px;
    padding-right: 1.25rem; }
    div.crumbs ul.next-prev li {
      float: left; }
      div.crumbs ul.next-prev li:first-child a {
        padding-right: 0.25rem;
        padding-left: 0.625rem; }
        div.crumbs ul.next-prev li:first-child a svg {
          -webkit-transform: scale(-1);
              -ms-transform: scale(-1);
                  transform: scale(-1); }
      div.crumbs ul.next-prev li a {
        display: block;
        padding: 0.625rem 0.625rem 0.625rem 0.25rem; }
        div.crumbs ul.next-prev li a svg {
          width: 30px;
          height: 30px;
          stroke: #B7BFC7;
          -webkit-transition: stroke 250ms;
                  transition: stroke 250ms; }
        div.crumbs ul.next-prev li a:hover svg {
          stroke: #00a4df; }

div.np-block {
  padding: 0.625rem 0.9375rem 0.625rem 0.9375rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: #FFF;
  white-space: nowrap;
  background: #00a4df;
  position: absolute;
  float: right;
  clear: right;
  visibility: hidden;
  bottom: -1.9375rem;
  right: 1.25rem;
  opacity: 0;
  -webkit-transform: translateY(10px);
      -ms-transform: translateY(10px);
          transform: translateY(10px);
  -webkit-transition: opacity 450ms, visibility 450ms, -webkit-transform 500ms cubic-bezier(0.25, 0.1, 0.25, 1);
          transition: opacity 450ms, visibility 450ms, transform 500ms cubic-bezier(0.25, 0.1, 0.25, 1); }
  div.np-block.visible {
    opacity: 1;
    visibility: visible; }
  div.np-block:hover {
    visibility: visible; }
  div.np-block.previous {
    -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
            transform: translateY(0);
    -webkit-transition-delay: .2s;
            transition-delay: .2s; }
    div.np-block.previous::before {
      content: '';
      display: block;
      position: absolute;
      top: -0.375rem;
      right: 3.5625rem;
      width: 0;
      height: 0;
      border-bottom: 6px solid #00a4df;
      border-left: 6px solid transparent;
      border-right: 6px solid transparent; }
  div.np-block.next {
    -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
            transform: translateY(0);
    -webkit-transition-delay: .2s;
            transition-delay: .2s; }
    div.np-block.next::before {
      content: '';
      display: block;
      position: absolute;
      top: -0.375rem;
      right: 1.0625rem;
      width: 0;
      height: 0;
      border-bottom: 6px solid #00a4df;
      border-left: 6px solid transparent;
      border-right: 6px solid transparent; }

a.ldl {
  position: relative;
  padding-left: 2.1875rem;
  display: table;
  right: 2.1875rem; }
  a.ldl:not(:first-child) h1,
  a.ldl:not(:first-child) h2,
  a.ldl:not(:first-child) h3 {
    margin-top: 3.125rem; }
  a.ldl:not(:first-child) .hc.is-h2 {
    top: 51px; }
  a.ldl .hc {
    color: #00a4df;
    position: absolute;
    left: 0.6875rem;
    font-size: 1.875rem;
    opacity: 0;
    -webkit-transition: opacity 250ms;
            transition: opacity 250ms; }
    a.ldl .hc.is-h1 {
      top: 0.625rem; }
    a.ldl .hc.is-h2 {
      top: 0.0625rem; }
    a.ldl .hc.is-h3 {
      top: 2.875rem; }
  a.ldl:hover .hc {
    opacity: 1; }

nav.dev-subnav {
  float: left; }
  nav.dev-subnav ul {
    padding: 1.1875rem 0 0 1.25rem; }
    nav.dev-subnav ul li {
      display: inline-block;
      margin-right: 1.875rem;
      position: relative; }
      nav.dev-subnav ul li a {
        color: #707f8c;
        font-size: 0.9375rem;
        border-bottom: 1px solid #707f8c;
        -webkit-transition: color 500ms, border 500ms;
                transition: color 500ms, border 500ms; }
        nav.dev-subnav ul li a:hover {
          color: #00a4df; }
        nav.dev-subnav ul li a.is-active {
          color: #373f45;
          cursor: text;
          border-bottom: 1px solid transparent; }
      nav.dev-subnav ul li::after {
        content: '/';
        width: 0;
        height: 0;
        font-size: 1.0625rem;
        color: #707f8c;
        position: absolute;
        top: 0.1875rem;
        right: -0.8125rem; }
      nav.dev-subnav ul li:last-child::after {
        display: none; }

.product-hero,
.product-info,
.product-features,
.tech-specs {
  background: #f5f6f7; }

section.product-hero {
  background: black;
  color: #FFF;
  text-align: center;
  position: relative; }
  @media screen and (min-width: 768px) {
    section.product-hero {
      height: 95vh;
      max-height: 850px;
      min-height: 600px; } }
  section.product-hero figure {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background-size: auto 100%;
    background-repeat: no-repeat;
    background-position: center center;
    -webkit-animation-duration: 1s;
            animation-duration: 1s;
    -webkit-animation-delay: 0.5s;
            animation-delay: 0.5s; }
    @media screen and (min-width: 768px) {
      section.product-hero figure {
        height: 95vh;
        max-height: 850px;
        min-height: 600px; } }
    @media (max-width: 767px) {
      section.product-hero figure {
        background-size: 200% auto;
        overflow: hidden;
        position: relative;
        background-position: center 50px; }
        section.product-hero figure:before {
          content: '';
          display: block;
          height: 0;
          padding-top: 76.923077%; } }
  section.product-hero article {
    padding: 0 10% 15%; }
    @media (min-width: 768px) {
      section.product-hero article {
        left: 0;
        margin-left: auto;
        margin-right: auto;
        position: absolute;
        right: 0;
        width: 50%;
        top: 63%;
        width: 100%;
        max-width: 56.25rem; } }
  section.product-hero h1,
  section.product-hero h4 {
    -webkit-animation-duration: 0.8s;
            animation-duration: 0.8s; }
  section.product-hero h1 {
    color: #FFF;
    font-family: 'Graphik Thin Web';
    font-weight: normal !important;
    font-size: -webkit-calc(24px + 24 * ((100vw - 320px) / 704));
    font-size: calc(24px + 24 * ((100vw - 320px) / 704));
    -webkit-font-smoothing: subpixel-antialiased;
    -webkit-animation-delay: 1.5s;
            animation-delay: 1.5s;
    margin-bottom: 5%; }
    @media screen and (max-width: 320px) {
      section.product-hero h1 {
        font-size: 24px; } }
    @media screen and (min-width: 1024px) {
      section.product-hero h1 {
        font-size: 48px; } }
  section.product-hero h4 {
    font-size: -webkit-calc(14px + 6 * ((100vw - 420px) / 604));
    font-size: calc(14px + 6 * ((100vw - 420px) / 604));
    color: #88919c;
    margin: 0;
    line-height: 1.5em;
    -webkit-animation-delay: 1.8s;
            animation-delay: 1.8s; }
    @media screen and (max-width: 420px) {
      section.product-hero h4 {
        font-size: 14px; } }
    @media screen and (min-width: 1024px) {
      section.product-hero h4 {
        font-size: 20px; } }

section.product-info {
  color: #707f8c;
  padding: 7% 5% 5%; }
  section.product-info:after {
    clear: both;
    content: '';
    display: table; }
  @media (min-width: 768px) {
    section.product-info {
      padding-bottom: 1%; } }
  section.product-info p {
    color: #707f8c; }
  section.product-info .container {
    max-width: 1100px; }
  section.product-info figure {
    float: left;
    clear: none;
    text-align: inherit;
    width: 65.666667%;
    margin-left: 0%;
    margin-right: 3%;
    position: relative;
    left: 34.333333%; }
    section.product-info figure:after {
      clear: both;
      content: '';
      display: table; }
    section.product-info figure:last-child {
      margin-right: 0%; }
    section.product-info figure:after {
      clear: both;
      content: '';
      display: table; }
    section.product-info figure .image-holder {
      float: left;
      clear: none;
      text-align: inherit;
      width: 82.833333%;
      margin-left: 0%;
      margin-right: 3%;
      -webkit-transform: translateY(50px);
          -ms-transform: translateY(50px);
              transform: translateY(50px);
      -webkit-transition: -webkit-transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
              transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
      position: relative;
      padding-bottom: 100%; }
      section.product-info figure .image-holder:after {
        clear: both;
        content: '';
        display: table; }
      section.product-info figure .image-holder:last-child {
        margin-right: 0%; }
      section.product-info figure .image-holder img {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        opacity: 0;
        height: auto;
        -webkit-transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
                transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
        section.product-info figure .image-holder img.active {
          opacity: 1; }
      section.product-info figure .image-holder.resolved {
        -webkit-transform: translateY(0);
            -ms-transform: translateY(0);
                transform: translateY(0); }
    section.product-info figure .image-toggle {
      margin-top: 14%;
      float: left;
      clear: none;
      text-align: inherit;
      width: 14.166667%;
      margin-left: 0%;
      margin-right: 3%; }
      section.product-info figure .image-toggle:after {
        clear: both;
        content: '';
        display: table; }
      section.product-info figure .image-toggle:last-child {
        margin-right: 0%; }
      section.product-info figure .image-toggle a {
        display: block;
        width: 100%;
        border-radius: 9999px;
        margin-bottom: 5%;
        -webkit-transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
                transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
        section.product-info figure .image-toggle a:hover {
          -webkit-transform: scale(1.2);
              -ms-transform: scale(1.2);
                  transform: scale(1.2); }
      section.product-info figure .image-toggle li.active a {
        background-color: #FFF;
        box-shadow: 0 3px 10px 5px rgba(0, 0, 0, 0.05);
        cursor: default; }
        section.product-info figure .image-toggle li.active a:hover {
          -webkit-transform: none;
              -ms-transform: none;
                  transform: none; }
  section.product-info article {
    float: left;
    clear: none;
    text-align: inherit;
    width: 31.333333%;
    margin-left: 0%;
    margin-right: 3%;
    position: relative;
    left: -68.666667%;
    margin: 2% 0 10%; }
    section.product-info article:after {
      clear: both;
      content: '';
      display: table; }
    section.product-info article:last-child {
      margin-right: 0%; }
    section.product-info article p {
      line-height: 1.4em;
      font-size: 0.9375rem; }
    section.product-info article h2 {
      font-family: 'Graphik Thin Web';
      font-weight: normal !important;
      -webkit-font-smoothing: subpixel-antialiased;
      color: #4d5660;
      margin-bottom: 0.3125rem; }
    section.product-info article h5 {
      font-size: 1rem;
      margin-top: 0;
      color: #707f8c; }
    section.product-info article ul {
      margin: .32rem .94rem;
      padding-left: 1rem;
      margin-top: 8%; }
      section.product-info article ul li {
        list-style-type: disc;
        padding: .125rem 0; }
      section.product-info article ul li {
        font-size: 1rem;
        margin-bottom: 2%; }
    section.product-info article nav {
      margin: 10% 0;
      color: rgba(112, 127, 140, 0.2); }
      section.product-info article nav a {
        color: #00a4df;
        font-weight: 600;
        font-size: 0.875rem;
        letter-spacing: -0.02em; }
        section.product-info article nav a:hover {
          text-decoration: underline; }
  @media (max-width: 767px) {
    section.product-info figure,
    section.product-info article {
      display: block;
      clear: both;
      float: none;
      width: 100%;
      margin-left: auto;
      margin-right: auto;
      position: static;
      left: 0; }
      section.product-info figure:first-child,
      section.product-info article:first-child {
        margin-left: auto; }
      section.product-info figure:last-child,
      section.product-info article:last-child {
        margin-right: auto; } }

section.product-features .container {
  max-width: 1100px;
  padding: 0 5%;
  border-bottom: 1px solid #e1e4e7;
  position: relative;
  z-index: 3; }
  section.product-features .container:after {
    clear: both;
    content: '';
    display: table; }
  section.product-features .container::before {
    z-index: -1;
    position: absolute;
    content: '';
    top: 55px;
    left: 0;
    width: 100%;
    height: 1px;
    border-bottom: 1px solid #e1e4e7; }

section.product-features .feature {
  z-index: 3;
  margin-bottom: 4.375rem;
  text-align: center; }
  section.product-features .feature img {
    width: 115px;
    height: auto;
    margin: 0 auto 10px; }
  section.product-features .feature h5 {
    font-family: 'Graphik Web';
    font-weight: normal !important;
    font-size: 1.25rem;
    color: #296ab6;
    letter-spacing: -0.045em; }
  section.product-features .feature h5,
  section.product-features .feature p {
    text-align: center; }
  section.product-features .feature p {
    font-size: 13px;
    color: #707f8c;
    line-height: 1.4em;
    text-align: center; }
  @media (min-width: 768px) {
    section.product-features .feature {
      float: left;
      clear: none;
      text-align: inherit;
      width: 28.666667%;
      margin-left: 0%;
      margin-right: 7%;
      text-align: center; }
      section.product-features .feature:after {
        clear: both;
        content: '';
        display: table; }
      section.product-features .feature:last-child {
        margin-right: 0%; } }

section.tech-specs {
  padding: 5%;
  text-align: center; }
  @media (max-width: 767px) {
    section.tech-specs {
      padding: 8% 0; } }
  section.tech-specs h3 {
    color: #4d5660;
    font-family: 'Graphik Thin Web';
    font-weight: normal !important;
    font-size: -webkit-calc(28px + 14 * ((100vw - 320px) / 704));
    font-size: calc(28px + 14 * ((100vw - 320px) / 704));
    -webkit-font-smoothing: subpixel-antialiased;
    margin: 2% 0 6%; }
    @media screen and (max-width: 320px) {
      section.tech-specs h3 {
        font-size: 28px; } }
    @media screen and (min-width: 1024px) {
      section.tech-specs h3 {
        font-size: 42px; } }
    @media (max-width: 767px) {
      section.tech-specs h3 {
        padding: 8% 0 5%; } }
  section.tech-specs table {
    border-collapse: collapse;
    border-spacing: 0;
    margin-bottom: 18px;
    max-width: 100%;
    width: 100%;
    background-color: #FFF;
    box-shadow: 0 10px 20px 5px rgba(0, 0, 0, 0.05); }
    section.tech-specs table th,
    section.tech-specs table td {
      border-top: 1px solid #DDD;
      line-height: 18px;
      padding: 8px;
      text-align: left;
      vertical-align: top; }
    section.tech-specs table th {
      font-weight: bold; }
    section.tech-specs table thead th {
      vertical-align: bottom; }
    section.tech-specs table thead:first-child tr th,
    section.tech-specs table thead:first-child tr td {
      border-top: 0; }
    section.tech-specs table tbody + tbody {
      border-top: 2px solid #DDD; }
    section.tech-specs table tbody tr:hover td,
    section.tech-specs table tbody tr:hover th {
      background-color: #F5F5F5; }
    section.tech-specs table thead tr {
      background: -webkit-linear-gradient(0deg, #ee412a, #ae3937, #763e74, #2d5ea5, #039bd4);
      background: linear-gradient(90deg, #ee412a, #ae3937, #763e74, #2d5ea5, #039bd4);
      background-attachment: fixed; }
      section.tech-specs table thead tr th {
        color: #FFF; }
    section.tech-specs table td,
    section.tech-specs table th {
      color: #707f8c;
      padding: 2.3% 4%;
      font-size: -webkit-calc(12px + 4 * ((100vw - 320px) / 704));
      font-size: calc(12px + 4 * ((100vw - 320px) / 704));
      line-height: 1.3em; }
      @media screen and (max-width: 320px) {
        section.tech-specs table td,
        section.tech-specs table th {
          font-size: 12px; } }
      @media screen and (min-width: 1024px) {
        section.tech-specs table td,
        section.tech-specs table th {
          font-size: 16px; } }

section.about-data {
  background-color: #FFF; }

.about-grey {
  background-color: #f5f6f7; }

.about-title {
  padding: 14.0625rem 0 7.8125rem;
  text-align: center; }
  .about-title h1 {
    margin-bottom: 3.125rem;
    font-weight: 100;
    -webkit-animation-delay: 0.5s;
            animation-delay: 0.5s; }
  .about-title p {
    max-width: 45.625rem;
    margin: 0 auto 1.5625rem;
    -webkit-animation-delay: 1s;
            animation-delay: 1s;
    text-align: left; }
    .about-title p a {
      color: #00a4df;
      font-weight: 600;
      -webkit-transition: all 0.2s ease;
              transition: all 0.2s ease; }
      .about-title p a:hover {
        text-decoration: underline; }
  @media (max-width: 767px) {
    .about-title {
      padding: 35% 0 15%; } }

.about-sub-title {
  margin-bottom: 2.1875rem;
  font-weight: 100;
  text-align: center; }

.about-contact {
  height: 75vh;
  max-height: 700px;
  min-height: 600px;
  width: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat; }
  .about-contact:after {
    clear: both;
    content: '';
    display: table; }

.about-video {
  position: relative; }
  .about-video video {
    width: 100%;
    height: auto; }
  .about-video svg {
    width: 6.25rem;
    height: 6.25rem;
    margin-bottom: 1.5625rem;
    stroke: #FFF;
    cursor: pointer;
    -webkit-transition: -webkit-transform ease-in-out 0.3s;
            transition: transform ease-in-out 0.3s; }
    .about-video svg:hover {
      -webkit-transform: scale(1.25);
          -ms-transform: scale(1.25);
              transform: scale(1.25); }
    @media (max-width: 767px) {
      .about-video svg {
        width: 3.125rem;
        height: 3.125rem; } }
  .about-video p {
    color: #FFF; }
  .about-video video.about-feature-video {
    display: block; }
  .about-video img.about-feature-img {
    width: 100%;
    height: auto;
    display: none; }
  @media (max-width: 1024px) {
    .about-video video.about-feature-video {
      display: none; }
    .about-video img.about-feature-img {
      display: block; } }

.gallery:after {
  clear: both;
  content: '';
  display: table; }

.about-youtube-video-wrapper {
  display: none;
  position: relative;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  position: fixed;
  z-index: 99;
  width: 100%; }

.about-youtube-video {
  padding-bottom: 56.25%;
  /* 16:9 */
  padding-top: 25px;
  height: 0; }
  .about-youtube-video .close {
    position: absolute;
    top: 7%;
    right: 15%;
    z-index: 100;
    -webkit-transition: -webkit-transform .2s ease;
            transition: transform .2s ease; }
    @media (max-width: 767px) {
      .about-youtube-video .close {
        top: 0; } }
    .about-youtube-video .close svg {
      fill: white; }
    .about-youtube-video .close:hover {
      -webkit-transform: scale(1.1);
          -ms-transform: scale(1.1);
              transform: scale(1.1);
      cursor: pointer; }
  .about-youtube-video iframe {
    position: absolute;
    top: 17%;
    left: 21%;
    width: 60%;
    height: 60%; }

.about-center {
  left: 0;
  margin-left: auto;
  margin-right: auto;
  position: absolute;
  right: 0;
  width: 50%;
  width: 50%;
  top: -webkit-calc(50% - 75px);
  top: calc(50% - 75px);
  text-align: center; }
  @media (max-width: 767px) {
    .about-center {
      top: -webkit-calc(50% - 50px);
      top: calc(50% - 50px); } }

.contact-center {
  position: relative;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  text-align: center; }
  .contact-center .address {
    width: auto;
    max-width: 265px;
    float: none;
    display: block;
    margin-right: auto;
    margin-left: auto;
    padding-left: 0;
    padding-right: 0; }
    .contact-center .address:after {
      clear: both;
      content: '';
      display: table; }

.about-careers {
  padding: 3.125rem 0 6.25rem;
  text-align: center; }
  .about-careers p {
    max-width: 47.5rem;
    margin: 0 auto 1.875rem; }

.about-advisors .container {
  padding: 2% 5% 8%;
  text-align: center; }

.about-advisors ul {
  margin: 0 auto; }
  .about-advisors ul li {
    line-height: 1.5em; }
  @media (min-width: 1023px) {
    .about-advisors ul {
      margin: 0;
      padding: 0;
      display: inline-block; }
      .about-advisors ul:after {
        clear: both;
        content: '';
        display: table; }
      .about-advisors ul li {
        float: left;
        list-style-type: none;
        margin-right: 20px; }
      .about-advisors ul li:last-child {
        margin-right: 0; }
      .about-advisors ul li {
        font-size: 0.875rem;
        padding-left: 0.3125rem; }
      .about-advisors ul li:not(:last-child) {
        border-right: 1px solid #c9c9c9;
        padding-right: 1.5625rem; } }

.collage img {
  width: 100%;
  height: auto; }

.about-investors {
  padding: 3.125rem 0;
  background: #FFF;
  text-align: center; }
  .about-investors .slice {
    margin: 0 auto 1.5625rem;
    max-width: 760px; }
  .about-investors .slice-item {
    padding: 1.5625rem;
    text-align: center; }
    .about-investors .slice-item:not(:last-child) {
      border-right: 1px solid rgba(55, 63, 69, 0.15); }
  .about-investors img {
    height: 80%; }
    @media (max-width: 767px) {
      .about-investors img {
        margin-bottom: 3.125rem; } }

.about-contact h2,
.about-contact p {
  color: #FFF; }

.about-contact h2 {
  margin-bottom: 7.5rem;
  font-weight: 100;
  -webkit-transform: translateY(-35px);
      -ms-transform: translateY(-35px);
          transform: translateY(-35px); }

.about-contact p {
  margin-bottom: 3.125rem; }

@media (max-width: 767px) {
  .about-contact a.btn, .about-contact header[role="banner"] ul.navigation-container li a.btn, header[role="banner"] ul.navigation-container li .about-contact a.btn {
    display: block;
    clear: both;
    float: none;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    max-width: 60%;
    margin-bottom: 0.9375rem; }
    .about-contact a.btn:first-child, .about-contact header[role="banner"] ul.navigation-container li a.btn:first-child, header[role="banner"] ul.navigation-container li .about-contact a.btn:first-child {
      margin-left: auto; }
    .about-contact a.btn:last-child, .about-contact header[role="banner"] ul.navigation-container li a.btn:last-child, header[role="banner"] ul.navigation-container li .about-contact a.btn:last-child {
      margin-right: auto; }
    .about-contact a.btn:last-child, .about-contact header[role="banner"] ul.navigation-container li a.btn:last-child, header[role="banner"] ul.navigation-container li .about-contact a.btn:last-child {
      margin-bottom: 0; } }

section.careers-hero figure {
  background-size: 100% auto;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  background-color: #000; }

section.careers-hero article {
  position: relative;
  top: 10%;
  left: auto;
  height: auto;
  padding: 14.375rem 5% 12.5rem;
  z-index: 0;
  margin: 0 auto; }
  @media (max-width: 1023px) {
    section.careers-hero article {
      padding: 9.375rem 5% 6.25rem; } }

section.careers-hero div.copy {
  margin: 0 auto;
  max-width: 52.5rem;
  text-align: center; }
  section.careers-hero div.copy h1 {
    font-family: Graphik Thin Web;
    -webkit-font-smoothing: subpixel-antialiased;
    font-weight: normal;
    color: #FFF;
    margin: 0 auto 4.0625rem;
    max-width: 800px;
    width: 100%;
    -webkit-animation-delay: 0.5s;
            animation-delay: 0.5s; }
    @media (max-width: 1023px) {
      section.careers-hero div.copy h1 {
        font-size: 1.875rem;
        margin-bottom: 2.1875rem;
        line-height: 1.2em;
        text-align: left; } }
  section.careers-hero div.copy p {
    color: rgba(255, 255, 255, 0.6);
    margin: 0 auto 1.875rem;
    text-align: left;
    max-width: 775px;
    -webkit-animation-delay: 1s;
            animation-delay: 1s; }
    section.careers-hero div.copy p:last-child {
      margin-bottom: 0; }

@media (max-width: 767px) {
  section.careers-hero article {
    top: 15%; } }

section.career-openings {
  padding: 4.375rem 0;
  background-color: #f5f6f7; }
  section.career-openings h3 {
    text-align: center;
    margin-bottom: 6.25rem;
    font-family: Graphik Thin Web;
    font-weight: normal;
    -webkit-font-smoothing: subpixel-antialiased; }
  section.career-openings li {
    float: left;
    clear: none;
    text-align: inherit;
    width: 48.5%;
    margin-left: 0%;
    margin-right: 3%;
    margin-bottom: 6.25rem;
    max-width: 32.1875rem; }
    section.career-openings li:after {
      clear: both;
      content: '';
      display: table; }
    section.career-openings li:nth-child(2n) {
      margin-right: 0%;
      float: right; }
    section.career-openings li:nth-child(2n + 1) {
      clear: both; }
  section.career-openings h4 {
    margin-bottom: 1.875rem;
    font-family: 'Graphik Thin Web';
    color: #2467b8;
    font-weight: normal;
    -webkit-font-smoothing: subpixel-antialiased; }
  section.career-openings p {
    color: #596570;
    font-size: 0.875rem; }
  section.career-openings .btn, section.career-openings header[role="banner"] ul.navigation-container li a.btn, header[role="banner"] ul.navigation-container li section.career-openings a.btn {
    margin-top: 1.25rem; }
  @media (max-width: 767px) {
    section.career-openings {
      padding: 2.5rem 0; }
      section.career-openings h3 {
        margin-bottom: 2.5rem; }
      section.career-openings li {
        float: left;
        clear: none;
        text-align: inherit;
        width: 100%;
        margin-left: 0%;
        margin-right: 3%;
        max-width: 100%;
        margin-bottom: 2.5rem; }
        section.career-openings li:after {
          clear: both;
          content: '';
          display: table; }
        section.career-openings li:nth-child(1n) {
          margin-right: 0%;
          float: right; }
        section.career-openings li:nth-child(1n + 1) {
          clear: both; }
      section.career-openings h4 {
        margin-bottom: 1.25rem; } }

section.legal {
  padding: 12.5rem 0 0; }
  section.legal .container:after {
    clear: both;
    content: '';
    display: table; }
  section.legal .legal-sidebar {
    width: 20%;
    float: left; }
    section.legal .legal-sidebar ul {
      position: fixed; }
    section.legal .legal-sidebar li {
      padding: 8% 0;
      width: 7.5rem;
      border-right: 1px solid #b7bec5; }
      section.legal .legal-sidebar li.is-active {
        border-right: 1px solid #00a4df; }
        section.legal .legal-sidebar li.is-active a {
          color: #00a4df; }
      section.legal .legal-sidebar li:hover {
        border-right: 1px solid #00a4df; }
        section.legal .legal-sidebar li:hover a {
          color: #00a4df; }
    section.legal .legal-sidebar a {
      color: #b7bec5;
      font-size: 0.9375rem; }
  section.legal article {
    width: 80%;
    float: right;
    padding: 0 2.5%; }
    section.legal article a {
      color: #00a4df; }
  section.legal div.copy {
    padding-bottom: 6.25rem; }
    section.legal div.copy ul li {
      list-style-type: initial;
      list-style: inside;
      color: #596570;
      font-size: 0.9375rem;
      margin-bottom: 1.875rem;
      line-height: 1.5em;
      padding-left: 1.25rem; }
    section.legal div.copy ol li {
      list-style-type: decimal;
      list-style: inside;
      list-style-type: decimal-leading-zero;
      display: list-item;
      color: #596570;
      font-size: 0.9375rem;
      margin-bottom: 1.875rem;
      line-height: 1.5em;
      padding-left: 1.25rem; }
  section.legal h2 {
    font-family: Graphik Thin Web;
    color: #596570;
    margin-bottom: 3.125rem; }
  section.legal p {
    color: #596570;
    font-size: 0.9375rem;
    margin-bottom: 1.875rem; }
  section.legal h6 {
    text-transform: uppercase;
    font-size: 1rem;
    color: #596570; }
  @media (max-width: 1023px) {
    section.legal {
      padding: 7.5rem 0 0; }
      section.legal .legal-sidebar,
      section.legal article {
        float: none;
        display: block;
        clear: both;
        float: none;
        width: 100%;
        margin-left: auto;
        margin-right: auto;
        width: 100%; }
        section.legal .legal-sidebar:first-child,
        section.legal article:first-child {
          margin-left: auto; }
        section.legal .legal-sidebar:last-child,
        section.legal article:last-child {
          margin-right: auto; }
      section.legal .legal-sidebar {
        position: relative;
        padding-bottom: 1.875rem;
        text-align: center; }
        section.legal .legal-sidebar ul {
          position: relative;
          margin: 0 auto; }
        section.legal .legal-sidebar li {
          padding: 0 1.25rem 0 0;
          display: inline-block;
          width: auto;
          border-right: none; } }
      @media (max-width: 1023px) and (max-width: 639px) {
        section.legal .legal-sidebar li {
          padding: 0 0 0.9375rem 0;
          display: block; } }
  @media (max-width: 1023px) {
          section.legal .legal-sidebar li:hover {
            border-right: none; }
          section.legal .legal-sidebar li.is-active {
            border-right: none; }
          section.legal .legal-sidebar li:last-child {
            padding-right: 0; }
      section.legal div.copy {
        padding-bottom: 1.875rem; } }

section.search-results {
  width: 100%;
  min-height: 600px;
  padding: 5% 5% 5% 14.2%;
  display: inline-block;
  background: #f5f6f7; }
  section.search-results p.show-results {
    display: inline-block;
    padding: 0.4375rem;
    margin-bottom: 2.8125rem;
    font-size: 0.9375rem; }
    section.search-results p.show-results span {
      font-weight: 600; }
  section.search-results div.result {
    margin-bottom: 3.125rem; }
    section.search-results div.result h4,
    section.search-results div.result p {
      color: rgba(55, 63, 69, 0.7); }
    section.search-results div.result h4 {
      display: inline-block;
      padding: 0.625rem 1.25rem 0.625rem 0.3125rem;
      border-bottom: 1px solid rgba(55, 63, 69, 0.4);
      -webkit-transition: background 300ms, border 300ms, color 300ms;
              transition: background 300ms, border 300ms, color 300ms; }
      section.search-results div.result h4:hover {
        background: rgba(0, 164, 223, 0.7);
        color: #f5f6f7;
        border-bottom: 1px solid #00a4df; }
        section.search-results div.result h4:hover > span {
          background: transparent; }
    section.search-results div.result p span {
      padding-right: 0.4375rem; }
    section.search-results div.result span a {
      padding-left: 0.4375rem;
      -webkit-transition: color 300ms;
              transition: color 300ms; }
      section.search-results div.result span a:hover {
        color: #003346; }
    section.search-results div.result p:first-of-type {
      font-size: 0.875rem; }
    section.search-results div.result p:last-of-type {
      width: 60%;
      padding-top: 0.9375rem; }
      @media (max-width: 767px) {
        section.search-results div.result p:last-of-type {
          width: 90%; } }
    section.search-results div.result .search-highlight {
      background: rgba(0, 164, 223, 0.1);
      padding: 0.5rem 0.1875rem 0.5rem 0.3125rem;
      -webkit-transition: background 300ms;
              transition: background 300ms; }

.home-introduction {
  background: -webkit-linear-gradient(350deg, #a3302f 0%, #6a2a4b 25%, #353477 50%, #1266aa 85%, #029cd5 100%);
  background: linear-gradient(100deg, #a3302f 0%, #6a2a4b 25%, #353477 50%, #1266aa 85%, #029cd5 100%);
  padding: 5% 0;
  position: relative;
  overflow-x: hidden; }
  .home-introduction .container {
    overflow-x: hidden; }
    .home-introduction .container:after {
      clear: both;
      content: '';
      display: table; }
  .home-introduction figure.backspin {
    position: absolute;
    width: 34%;
    top: 6.25rem;
    right: -3%;
    height: 400px;
    -webkit-transform: translateY(80px);
        -ms-transform: translateY(80px);
            transform: translateY(80px);
    -webkit-transition: all 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
            transition: all 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    opacity: 0; }
    .home-introduction figure.backspin img {
      width: 100%;
      height: auto;
      max-width: 420px; }
    .home-introduction figure.backspin.resolved {
      -webkit-transform: translateY(0);
          -ms-transform: translateY(0);
              transform: translateY(0);
      opacity: 1; }
    .home-introduction figure.backspin.exit {
      opacity: 0;
      -webkit-transform: translateY(-80px);
          -ms-transform: translateY(-80px);
              transform: translateY(-80px); }
  .home-introduction figure.ring {
    position: absolute;
    top: 4.375rem;
    right: 33%;
    width: 10%;
    height: 300px;
    opacity: 0;
    -webkit-transform: translateY(30px);
        -ms-transform: translateY(30px);
            transform: translateY(30px);
    -webkit-transition: all 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
            transition: all 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
    .home-introduction figure.ring img {
      opacity: .8; }
    .home-introduction figure.ring.resolved {
      -webkit-transform: translateY(0);
          -ms-transform: translateY(0);
              transform: translateY(0);
      opacity: 1; }
    .home-introduction figure.ring.exit {
      opacity: 0;
      -webkit-transform: translateY(-30px);
          -ms-transform: translateY(-30px);
              transform: translateY(-30px); }
  .home-introduction .top-copy {
    width: 100%;
    max-width: 55%;
    padding: 50px 0; }
  .home-introduction .bottom-content {
    width: 100%;
    padding: 90px 0; }
    .home-introduction .bottom-content:after {
      clear: both;
      content: '';
      display: table; }
  .home-introduction .bottom-copy {
    float: left;
    clear: none;
    text-align: inherit;
    width: 58.8%;
    margin-left: 0%;
    margin-right: 3%;
    padding-left: 2%; }
    .home-introduction .bottom-copy:after {
      clear: both;
      content: '';
      display: table; }
    .home-introduction .bottom-copy:last-child {
      margin-right: 0%; }
  .home-introduction ul.platforms {
    float: left;
    clear: none;
    text-align: inherit;
    width: 38.2%;
    margin-left: 0%;
    margin-right: 3%; }
    .home-introduction ul.platforms:after {
      clear: both;
      content: '';
      display: table; }
    .home-introduction ul.platforms:last-child {
      margin-right: 0%; }
    .home-introduction ul.platforms:after {
      clear: both;
      content: '';
      display: table; }
    .home-introduction ul.platforms li {
      float: left;
      clear: none;
      text-align: inherit;
      width: 32%;
      margin-left: 0%;
      margin-right: 2%;
      margin-bottom: 2%; }
      .home-introduction ul.platforms li:after {
        clear: both;
        content: '';
        display: table; }
      .home-introduction ul.platforms li:nth-child(3n) {
        margin-right: 0%;
        float: right; }
      .home-introduction ul.platforms li:nth-child(3n + 1) {
        clear: both; }
      .home-introduction ul.platforms li:nth-child(1) a {
        -webkit-animation-delay: 0.08s;
                animation-delay: 0.08s; }
      .home-introduction ul.platforms li:nth-child(2) a {
        -webkit-animation-delay: 0.16s;
                animation-delay: 0.16s; }
      .home-introduction ul.platforms li:nth-child(3) a {
        -webkit-animation-delay: 0.24s;
                animation-delay: 0.24s; }
      .home-introduction ul.platforms li:nth-child(4) a {
        -webkit-animation-delay: 0.32s;
                animation-delay: 0.32s; }
      .home-introduction ul.platforms li:nth-child(5) a {
        -webkit-animation-delay: 0.4s;
                animation-delay: 0.4s; }
      .home-introduction ul.platforms li:nth-child(6) a {
        -webkit-animation-delay: 0.48s;
                animation-delay: 0.48s; }
    .home-introduction ul.platforms a {
      overflow: hidden;
      position: relative;
      background: rgba(16, 21, 40, 0.4);
      position: relative;
      display: block;
      border-radius: 4px;
      -webkit-transition: all .3s ease;
              transition: all .3s ease;
      opacity: 0; }
      .home-introduction ul.platforms a:before {
        content: '';
        display: block;
        height: 0;
        padding-top: 100%; }
      .home-introduction ul.platforms a img {
        left: 0;
        margin-left: auto;
        margin-right: auto;
        position: absolute;
        right: 0;
        width: 50%;
        max-height: 40%;
        width: auto; }
      .home-introduction ul.platforms a:hover {
        background: rgba(16, 21, 40, 0.7); }
    .home-introduction ul.platforms img {
      width: auto;
      max-width: 1410px;
      float: none;
      display: block;
      margin-right: auto;
      margin-left: auto;
      padding-left: 0;
      padding-right: 0;
      position: relative;
      top: 50%;
      -webkit-transform: translateY(-50%);
          -ms-transform: translateY(-50%);
              transform: translateY(-50%);
      width: 70px; }
      .home-introduction ul.platforms img:after {
        clear: both;
        content: '';
        display: table; }
    .home-introduction ul.platforms.resolved li a {
      -webkit-animation-name: over-scale;
              animation-name: over-scale; }
  .home-introduction h3 {
    color: #FFF;
    font-weight: 200;
    margin-bottom: 2.5rem; }
  .home-introduction p {
    color: rgba(255, 255, 255, 0.6); }
    .home-introduction p a {
      color: #FFF;
      text-decoration: underline; }
  @media (max-width: 768px) {
    .home-introduction {
      background: -webkit-linear-gradient(70deg, #a3302f 0%, #6a2a4b 25%, #353477 50%, #1266aa 85%, #029cd5 100%);
      background: linear-gradient(20deg, #a3302f 0%, #6a2a4b 25%, #353477 50%, #1266aa 85%, #029cd5 100%); }
      .home-introduction .top-copy {
        max-width: 100%;
        padding: 75% 0 1.875rem; }
      .home-introduction .bottom-content {
        padding: 50px 0; }
      .home-introduction figure.backspin {
        width: 60%;
        top: 2.625rem; }
      .home-introduction figure.ring {
        width: 20%;
        right: 65%;
        opacity: .7;
        top: 2.5rem; }
      .home-introduction ul.platforms, .home-introduction .bottom-copy {
        float: left;
        clear: none;
        text-align: inherit;
        width: 100%;
        margin-left: 0%;
        margin-right: 3%; }
        .home-introduction ul.platforms:after, .home-introduction .bottom-copy:after {
          clear: both;
          content: '';
          display: table; }
        .home-introduction ul.platforms:last-child, .home-introduction .bottom-copy:last-child {
          margin-right: 0%; }
      .home-introduction .bottom-copy {
        padding-top: 40px; } }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmNzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWV5ZXItcmVzZXQvc3R5bGVzaGVldHMvX21leWVyLXJlc2V0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL25vcm1hbGl6ZS1saWJzYXNzL19ub3JtYWxpemUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvb2xkLWJyb3dzZXJzL3Njc3Mvb2xkLWJyb3dzZXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvamVldC9zY3NzL2plZXQvaW5kZXguc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvamVldC9zY3NzL2plZXQvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2plZXQvc2Nzcy9qZWV0L19mdW5jdGlvbnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvamVldC9zY3NzL2plZXQvX2dyaWQuc2NzcyIsImluY2x1ZGVzL19mb250cy5zY3NzIiwiaW5jbHVkZXMvX2FuaW1hdGlvbnMuc2NzcyIsInBhZ2VzL19wcm9kdWN0cy5zY3NzIiwiaW5jbHVkZXMvX2NvbG9ycy5zY3NzIiwiYmFzZS9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9rbmFwc2Fjay9rbmFwc2Fjay9fdHlwb2dyYXBoeS5zY3NzIiwiYmFzZS9fYmFzZS5zY3NzIiwiaW5jbHVkZXMvX3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9rbmFwc2Fjay9rbmFwc2Fjay9fbGF5b3V0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2luY2x1ZGUtbWVkaWEvZGlzdC9faW5jbHVkZS1tZWRpYS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9rbmFwc2Fjay9rbmFwc2Fjay9fcmVzZXQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMva25hcHNhY2sva25hcHNhY2svX2FuaW1hdGlvbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9rbmFwc2Fjay9rbmFwc2Fjay9fc2V0dGluZ3Muc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMva25hcHNhY2sva25hcHNhY2svX2NvZGUuc2NzcyIsImNvbXBvbmVudHMvX2J1dHRvbnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMva25hcHNhY2sva25hcHNhY2svX3VpLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2tuYXBzYWNrL2tuYXBzYWNrL191dGlsaXRpZXMuc2NzcyIsImNvbXBvbmVudHMvX2hlcm8uc2NzcyIsImluY2x1ZGVzL19taXhpbnMuc2NzcyIsImNvbXBvbmVudHMvX3BsYXRmb3JtLnNjc3MiLCJjb21wb25lbnRzL19kZXZlbG9wZXIta2l0LnNjc3MiLCJjb21wb25lbnRzL19zaWdudXAuc2NzcyIsImNvbXBvbmVudHMvX2Rldi1uZXN0ZWQtbGlzdHMuc2NzcyIsImNvbXBvbmVudHMvX3RyaS1pbWFnZS5zY3NzIiwiY29tcG9uZW50cy9fdGVhbS5zY3NzIiwiY29tcG9uZW50cy9fc2xpY2Uuc2NzcyIsImNvbXBvbmVudHMvX2J1bGxldHMtd2l0aC1mZWF0dXJlZC1pbWFnZS5zY3NzIiwiY29tcG9uZW50cy9fem9vbS5zY3NzIiwibW9kdWxlcy9fZm9vdGVyLnNjc3MiLCJtb2R1bGVzL19oZWFkZXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvc2Fzcy1idXJnZXIvX2J1cmdlci5zY3NzIiwibW9kdWxlcy9fZGV2LWZvb3Rlci5zY3NzIiwicGFnZXMvXzQwNC5zY3NzIiwicGFnZXMvX2RldmVsb3BlcnMuc2NzcyIsImJhc2UvX3V0aWxpdGllcy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9rbmFwc2Fjay9rbmFwc2Fjay9fdGFibGVzLnNjc3MiLCJwYWdlcy9fYWJvdXQuc2NzcyIsInBhZ2VzL19jYXJlZXJzLnNjc3MiLCJwYWdlcy9fbGVnYWwuc2NzcyIsInBhZ2VzL19zZWFyY2guc2NzcyIsInBhZ2VzL19pbmRleC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQ0tmO0VBQ0UsVUFBVTtFQUNWLFdBQVc7RUFDWCxVQUFVO0VBQ1YsZ0JBQWdCO0VBQ2hCLGNBQWM7RUFDZCx5QkFBeUIsRUFDMUI7O0FBR0Q7RUFDRSxlQUFlLEVBQ2hCOztBQUNEO0VBQ0UsZUFBZSxFQUNoQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGFBQWEsRUFDZDs7QUFDRDtFQUVJLFlBQVk7RUFDWixjQUFjLEVBQ2Y7O0FBRUg7RUFFSSxZQUFZO0VBQ1osY0FBYyxFQUNmOztBQUVIO0VBQ0UsMEJBQTBCO0VBQzFCLGtCQUFrQixFQUNuQjs7QUMyREg7Ozs7O0VBS0U7QUFDRjtFQUNFLHdCQWhGMkI7RUFnRmUsT0FBTztFQUNqRCwyQkFBMkI7RUFBRSxPQUFPO0VBQ3BDLCtCQUErQjtFQUFFLE9BQU8sRUFDekM7O0FBRUQ7O0VBRUU7QUFFRjtFQUNFLFVBQVUsRUFDWDs7QUFFRDtnRkFDZ0Y7QUFFaEY7Ozs7O0VBS0U7QUFFRjs7Ozs7Ozs7Ozs7OztFQWFFLGVBQWUsRUFDaEI7O0FBRUQ7OztFQUdFO0FBRUY7Ozs7RUFLSSxzQkFBc0I7RUFBRSxPQUFPO0VBRWpDLHlCQUF5QjtFQUFFLE9BQU8sRUFDbkM7O0FBRUQ7OztFQUdFO0FBRUY7RUFDRSxjQUFjO0VBQ2QsVUFBVSxFQUNYOztBQUdDOztLQUVHO0FGM0VMO0VFOEVJLGNBQWMsRUFDZjs7QUFHSDs7RUFFRTtBQUVGO0VBQ0UsY0FBYyxFQUNmOztBQUVEO2dGQUNnRjtBQUc5RTs7S0FFRztBQUVIO0VBQ0UsOEJBQThCLEVBQy9COztBQUdIOzs7RUFHRTtBQUVGOztFQUVFLFdBQVcsRUFDWjs7QUFFRDtnRkFDZ0Y7QUFFaEY7O0VBRUU7QUFFRjtFQUNFLDBCQUEwQixFQUMzQjs7QUFFRDs7RUFFRTtBQUVGOztFQUVFLGtCQUFrQixFQUNuQjs7QUFFRDs7RUFFRTtBQUVGO0VBQ0UsbUJBQW1CLEVBQ3BCOztBQUVEOzs7RUFHRTtBQUVGO0VBQ0UsZUF4SmlCO0VBeUpqQixxQkFBbUgsRUFDcEg7O0FBR0M7O0tBRUc7QUFFSDtFQUNFLGlCQUFpQjtFQUNqQixZQUFZLEVBQ2I7O0FBR0g7O0VBRUU7QUFFRjtFQUNFLGVBQWUsRUFDaEI7O0FBRUQ7O0VBRUU7QUFFRjs7RUFFRSxlQUFlO0VBQ2YsZUFBZTtFQUNmLG1CQUFtQjtFQUNuQix5QkFBeUIsRUFDMUI7O0FBRUQ7RUFDRSxZQUFZLEVBQ2I7O0FBRUQ7RUFDRSxnQkFBZ0IsRUFDakI7O0FBRUQ7Z0ZBQ2dGO0FBRzlFOztLQUVHO0FBRUg7RUFDRSxVQUFVLEVBQ1g7O0FBSUQ7O0tBRUc7QUFFSDtFQUNFLGlCQUFpQixFQUNsQjs7QUFHSDtnRkFDZ0Y7QUFHOUU7O0tBRUc7QUFFSDtFQUNFLGlCQUFpQixFQUNsQjs7QUFHSDs7RUFFRTtBQUVGO0VBQ0Usd0JBQXdCO0VBQ3hCLFVBQVUsRUFDWDs7QUFFRDs7RUFFRTtBQUVGO0VBQ0UsZUFBZSxFQUNoQjs7QUFFRDs7RUFFRTtBQUVGOzs7O0VBSUUsa0NBQWtDO0VBQ2xDLGVBQWUsRUFDaEI7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOzs7RUFHRTtBQUVGOzs7OztFQUtFO0FBRUY7Ozs7O0VBS0UsZUFBZTtFQUFFLE9BQU87RUFDeEIsY0FBYztFQUFFLE9BQU87RUFDdkIsVUFBVTtFQUFFLE9BQU8sRUFDcEI7O0FBR0M7O0tBRUc7QUFFSDtFQUNFLGtCQUFrQixFQUNuQjs7QUFHSDs7Ozs7RUFLRTtBQUVGOztFQUVFLHFCQUFxQixFQUN0Qjs7QUFFRDs7Ozs7O0VBTUU7QUFFRjs7OztFQUlFLDJCQUEyQjtFQUFFLE9BQU87RUFDcEMsZ0JBQWdCO0VBQUUsT0FBTyxFQUMxQjs7QUFFRDs7RUFFRTtBQUVGOztFQUVFLGdCQUFnQixFQUNqQjs7QUFFRDs7RUFFRTtBQUVGOztFQUVFLFVBQVU7RUFDVixXQUFXLEVBQ1o7O0FBRUQ7OztFQUdFO0FBRUY7RUFDRSxvQkFBb0IsRUFDckI7O0FBR0M7Ozs7OztLQU1HO0FBRUg7O0VBRUUsdUJBQXVCO0VBQUUsT0FBTztFQUNoQyxXQUFXO0VBQUUsT0FBTyxFQUNyQjs7QUFHSDs7OztFQUlFO0FBRUY7O0VBRUUsYUFBYSxFQUNkOztBQUVEOzs7RUFHRTtBQUVGO0VBQ0Usd0JBQXdCLEVBQ3pCOztBQUVEOzs7O0VBSUU7QUFFRjs7RUFFRSx5QkFBeUIsRUFDMUI7O0FBRUQ7O0VBRUU7QUFFRjtFQUNFLDBCQUEwQjtFQUMxQixjQUFjO0VBQ2QsK0JBQStCLEVBQ2hDOztBQUVEOzs7RUFHRTtBQUVGO0VBRUksVUFBVTtFQUFFLE9BQU87RUFFckIsV0FBVztFQUFFLE9BQU8sRUFDckI7O0FBR0M7O0tBRUc7QUFFSDtFQUNFLGVBQWUsRUFDaEI7O0FBR0g7OztFQUdFO0FBRUY7RUFDRSxrQkFBa0IsRUFDbkI7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOztFQUVFO0FBRUY7RUFDRSwwQkFBMEI7RUFDMUIsa0JBQWtCLEVBQ25COztBQUVEOztFQUVFLFdBQVcsRUFDWjs7QUNyaUJEO0VBQ0UsY0FBYztFQUNkLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsWUFBWTtFQUNaLGFBQWE7RUFDYixhQUFhO0VBQ2Isd0JBQXdCO0VBQ3hCLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsV0FBVztFQUNYLFVBQVUsRUFpQlg7RUE1QkQ7SUFhTyx1QkFBdUIsRUFBSTtFQWJsQztJQWNVLGVBQWUsRUFBSTtFQWQ3QjtJQWdCSSxpQkFBaUI7SUFDakIscUJBQXFCO0lBQ3JCLG1CQUFtQixFQUNwQjtFQW5CSDtJQXNCTSxzQkFBc0I7SUFDdEIsZ0JBQWdCLEVBR2pCO0lBMUJMO01Bd0JZLGFBQWEsRUFBSTtJQXhCN0I7TUF5QlUsa0JBQWtCO01BQUUsZUFBZSxFQUFHOztBQUloRDtFQUNFLFVBQVU7RUFDVixXQUFXLEVBQ1o7O0FDaENEOzs7Ozs7Ozs7Ozs7RUFZRTtBQ1pGOzs7R0FHRztBQ0hIOzs7R0FHRztBQUVIOzs7O0dBSUc7QUFLSDs7Ozs7R0FLRztBQWFIOzs7R0FHRztBQU9IOzs7Ozs7O0dBT0c7QUFvQkg7Ozs7R0FJRztBQWdDSDs7Ozs7R0FLRztBQzlHSDs7Ozs7OztHQU9HO0FBd0RIOzs7R0FHRztBQUtIOzs7O0dBSUc7QUFLSDs7OztHQUlHO0FBS0g7OztHQUdHO0FBS0g7OztHQUdHO0FBS0g7Ozs7OztHQU1HO0FBOENIOzs7OztHQUtHO0FBb0JIOztHQUVHO0FBTUg7Ozs7R0FJRztBQWFIOztHQUVHO0FBS0g7Ozs7R0FJRztBQWlCSDs7R0FFRztBQVNIOzs7O0dBSUc7QUF3Q0g7O0dBRUc7QUF1Qkg7Ozs7R0FJRztBQWtCSDs7R0FFRztBQ25WSDtFQUNFLGdDQUFpQztFQUNqQyx1Q0FBUTtFQUNSLGdQQUd1RDtFQUN2RCxpQkFBa0I7RUFDbEIsbUJBQXFCO0VBQ3JCLHFCQUFxQixFQUFBOztBQUd2QjtFQUNFLDJCQUEyQjtFQUMzQiwwQ0FBUTtFQUNSLDRQQUcwRDtFQUMxRCxpQkFBa0I7RUFDbEIsbUJBQXFCO0VBQ3JCLHFCQUFxQixFQUFBOztBQUd2QjtFQUNFLGtDQUFrQztFQUNsQyxnREFBUTtFQUNSLG9SQUdnRTtFQUNoRSxpQkFBa0I7RUFDbEIsbUJBQXFCO0VBQ3JCLHFCQUFxQixFQUFBOztBQUd2QjtFQUNFLGtDQUFrQztFQUNsQyx5Q0FBUTtFQUNSLHdQQUd5RDtFQUN6RCxpQkFBa0I7RUFDbEIsbUJBQXFCO0VBQ3JCLHFCQUFxQixFQUFBOztBQzNDdkI7RUFDRTtJQUNFLGlDQUFxQjtZQUFyQix5QkFBcUIsRUFBQTtFQUd2QjtJQUNFLHFDQUFxQjtZQUFyQiw2QkFBcUIsRUFBQTtFQUd2QjtJQUNFLHFDQUFxQjtZQUFyQiw2QkFBcUIsRUFBQSxFQUFBOztBQVZ6QjtFQUNFO0lBQ0UsaUNBQXFCO1lBQXJCLHlCQUFxQixFQUFBO0VBR3ZCO0lBQ0UscUNBQXFCO1lBQXJCLDZCQUFxQixFQUFBO0VBR3ZCO0lBQ0UscUNBQXFCO1lBQXJCLDZCQUFxQixFQUFBLEVBQUE7O0FBSXpCO0VBQ0Usc0NBQThCO1VBQTlCLDhCQUE4QixFQUMvQjs7QUFFRDtFQUNFO0lBQ0UsaUNBQXFCO1lBQXJCLHlCQUFxQixFQUFBO0VBR3ZCO0lBQ0Usb0NBQXFCO1lBQXJCLDRCQUFxQixFQUFBO0VBR3ZCO0lBQ0Usb0NBQXFCO1lBQXJCLDRCQUFxQixFQUFBLEVBQUE7O0FBVnpCO0VBQ0U7SUFDRSxpQ0FBcUI7WUFBckIseUJBQXFCLEVBQUE7RUFHdkI7SUFDRSxvQ0FBcUI7WUFBckIsNEJBQXFCLEVBQUE7RUFHdkI7SUFDRSxvQ0FBcUI7WUFBckIsNEJBQXFCLEVBQUEsRUFBQTs7QUFJekI7RUFDRSx5Q0FBaUM7VUFBakMsaUNBQWlDO0VBQ2pDLDBDQUFrQztVQUFsQyxrQ0FBa0MsRUFDbkM7O0FBRUQ7RUFDRTtJQUNFLFdBQVc7SUFDWCx1Q0FBMkI7WUFBM0IsK0JBQTJCLEVBQUE7RUFHN0I7SUFDRSwyQ0FBNkI7WUFBN0IsbUNBQTZCLEVBQUE7RUFHL0I7SUFDRSxjQUFjO0lBQ2QsNEJBQWdCO1lBQWhCLG9CQUFnQixFQUFBLEVBQUE7O0FBWnBCO0VBQ0U7SUFDRSxXQUFXO0lBQ1gsdUNBQTJCO1lBQTNCLCtCQUEyQixFQUFBO0VBRzdCO0lBQ0UsMkNBQTZCO1lBQTdCLG1DQUE2QixFQUFBO0VBRy9CO0lBQ0UsY0FBYztJQUNkLDRCQUFnQjtZQUFoQixvQkFBZ0IsRUFBQSxFQUFBOztBQUlwQjtFQUNFLHdDQUFnQztVQUFoQyxnQ0FBZ0M7RUFDaEMsOENBQXNDO01BQXRDLDBDQUFzQztVQUF0QyxzQ0FBc0M7RUFDdEMsNENBQW9DO1VBQXBDLG9DQUFvQyxFQUNyQzs7QUFFRDtFQUNFO0lBQ0UsV0FBVztJQUNYLHdCQUFnQjtZQUFoQixnQkFBZ0IsRUFBQTtFQUdsQjtJQUNFLFdBQVc7SUFDWCwwQ0FBc0I7WUFBdEIsa0NBQXNCLEVBQUEsRUFBQTs7QUFSMUI7RUFDRTtJQUNFLFdBQVc7SUFDWCx3QkFBZ0I7WUFBaEIsZ0JBQWdCLEVBQUE7RUFHbEI7SUFDRSxXQUFXO0lBQ1gsMENBQXNCO1lBQXRCLGtDQUFzQixFQUFBLEVBQUE7O0FDN0QxQjtFRGtFRSxzQ0FBOEI7VUFBOUIsOEJBQThCLEVBQy9COztBQUVEO0VBQ0U7SUFDRSxXQUFXO0lBQ1gsMENBQXNCO1lBQXRCLGtDQUFzQixFQUFBO0VBR3hCO0lBQ0UsV0FBVztJQUNYLHdCQUFnQjtZQUFoQixnQkFBZ0IsRUFBQSxFQUFBOztBQVJwQjtFQUNFO0lBQ0UsV0FBVztJQUNYLDBDQUFzQjtZQUF0QixrQ0FBc0IsRUFBQTtFQUd4QjtJQUNFLFdBQVc7SUFDWCx3QkFBZ0I7WUFBaEIsZ0JBQWdCLEVBQUEsRUFBQTs7QUFJcEI7RUFDRSxzQ0FBOEI7VUFBOUIsOEJBQThCLEVBQy9COztBQUVEO0VBQ0U7SUFDRSxXQUFXO0lBQ1gsMkNBQXNCO1lBQXRCLG1DQUFzQixFQUFBO0VBR3hCO0lBQ0UsV0FBVztJQUNYLHdCQUFnQjtZQUFoQixnQkFBZ0IsRUFBQSxFQUFBOztBQVJwQjtFQUNFO0lBQ0UsV0FBVztJQUNYLDJDQUFzQjtZQUF0QixtQ0FBc0IsRUFBQTtFQUd4QjtJQUNFLFdBQVc7SUFDWCx3QkFBZ0I7WUFBaEIsZ0JBQWdCLEVBQUEsRUFBQTs7QUFJcEI7RUFDRSxxQ0FBNkI7VUFBN0IsNkJBQTZCLEVBQzlCOztBQUVEO0VBQ0U7SUFDRSxXQUFXO0lBQ1gscUNBQXFCO1lBQXJCLDZCQUFxQixFQUFBO0VBR3ZCO0lBQ0UsV0FBVztJQUNYLGlDQUFxQjtZQUFyQix5QkFBcUIsRUFBQSxFQUFBOztBQVJ6QjtFQUNFO0lBQ0UsV0FBVztJQUNYLHFDQUFxQjtZQUFyQiw2QkFBcUIsRUFBQTtFQUd2QjtJQUNFLFdBQVc7SUFDWCxpQ0FBcUI7WUFBckIseUJBQXFCLEVBQUEsRUFBQTs7QUFJekI7RUFDRSxtQ0FBbUM7RUFDbkMsMkJBQTJCLEVBQzVCOztBQUVEO0VBQ0UsaUVBQThDO1VBQTlDLHlEQUE4QyxFQUsvQztFQU5EO0lBSUksd0RBQTJDO1lBQTNDLGdEQUEyQyxFQUM1Qzs7QUFHSDtFQUNFO0lBQ0UsV0FBVyxFQUFBO0VBR2I7SUFDRSxXQUFXLEVBQUEsRUFBQTs7QUFOZjtFQUNFO0lBQ0UsV0FBVyxFQUFBO0VBR2I7SUFDRSxXQUFXLEVBQUEsRUFBQTs7QUFNZjtFQUNFO0lBQ0UsNkNFMUlzQjtJRjJJdEIsbUNFM0lzQixFQUFBO0VGNkl4QjtJQUNFLGlDRTlJc0IsRUFBQTtFRmdKeEI7SUFDRSw0Q0VqSnNCLEVBQUEsRUFBQTs7QUZxSjFCO0VBQ0U7SUFDRSw2Q0V2SnNCO0lGd0p0QixtQ0V4SnNCLEVBQUE7RUYwSnhCO0lBQ0UsaUNFM0pzQixFQUFBO0VGNkp4QjtJQUNFLDRDRTlKc0IsRUFBQSxFQUFBOztBRmtLMUI7RUFDRTtJQUNFLDZDRXBLc0I7SUZxS3RCLG1DRXJLc0IsRUFBQTtFRnVLeEI7SUFDRSxpQ0V4S3NCLEVBQUE7RUYwS3hCO0lBQ0UsNENFM0tzQixFQUFBLEVBQUE7O0FGUjFCO0VBQ0U7SUFDRSxpQ0FBcUI7WUFBckIseUJBQXFCLEVBQUE7RUFHdkI7SUFDRSxxQ0FBcUI7WUFBckIsNkJBQXFCLEVBQUE7RUFHdkI7SUFDRSxxQ0FBcUI7WUFBckIsNkJBQXFCLEVBQUEsRUFBQTs7QUFJekI7RUFDRSxzQ0FBOEI7VUFBOUIsOEJBQThCLEVBQy9COztBQUVEO0VBQ0U7SUFDRSxpQ0FBcUI7WUFBckIseUJBQXFCLEVBQUE7RUFHdkI7SUFDRSxvQ0FBcUI7WUFBckIsNEJBQXFCLEVBQUE7RUFHdkI7SUFDRSxvQ0FBcUI7WUFBckIsNEJBQXFCLEVBQUEsRUFBQTs7QUFJekI7RUFDRSx5Q0FBaUM7VUFBakMsaUNBQWlDO0VBQ2pDLDBDQUFrQztVQUFsQyxrQ0FBa0MsRUFDbkM7O0FBRUQ7RUFDRTtJQUNFLFdBQVc7SUFDWCx1Q0FBMkI7WUFBM0IsK0JBQTJCLEVBQUE7RUFHN0I7SUFDRSwyQ0FBNkI7WUFBN0IsbUNBQTZCLEVBQUE7RUFHL0I7SUFDRSxjQUFjO0lBQ2QsNEJBQWdCO1lBQWhCLG9CQUFnQixFQUFBLEVBQUE7O0FBSXBCO0VBQ0Usd0NBQWdDO1VBQWhDLGdDQUFnQztFQUNoQyw4Q0FBc0M7TUFBdEMsMENBQXNDO1VBQXRDLHNDQUFzQztFQUN0Qyw0Q0FBb0M7VUFBcEMsb0NBQW9DLEVBQ3JDOztBQUVEO0VBQ0U7SUFDRSxXQUFXO0lBQ1gsd0JBQWdCO1lBQWhCLGdCQUFnQixFQUFBO0VBR2xCO0lBQ0UsV0FBVztJQUNYLDBDQUFzQjtZQUF0QixrQ0FBc0IsRUFBQSxFQUFBOztBQzdEMUI7RURrRUUsc0NBQThCO1VBQTlCLDhCQUE4QixFQUMvQjs7QUFFRDtFQUNFO0lBQ0UsV0FBVztJQUNYLDBDQUFzQjtZQUF0QixrQ0FBc0IsRUFBQTtFQUd4QjtJQUNFLFdBQVc7SUFDWCx3QkFBZ0I7WUFBaEIsZ0JBQWdCLEVBQUEsRUFBQTs7QUFJcEI7RUFDRSxzQ0FBOEI7VUFBOUIsOEJBQThCLEVBQy9COztBQUVEO0VBQ0U7SUFDRSxXQUFXO0lBQ1gsMkNBQXNCO1lBQXRCLG1DQUFzQixFQUFBO0VBR3hCO0lBQ0UsV0FBVztJQUNYLHdCQUFnQjtZQUFoQixnQkFBZ0IsRUFBQSxFQUFBOztBQUlwQjtFQUNFLHFDQUE2QjtVQUE3Qiw2QkFBNkIsRUFDOUI7O0FBRUQ7RUFDRTtJQUNFLFdBQVc7SUFDWCxxQ0FBcUI7WUFBckIsNkJBQXFCLEVBQUE7RUFHdkI7SUFDRSxXQUFXO0lBQ1gsaUNBQXFCO1lBQXJCLHlCQUFxQixFQUFBLEVBQUE7O0FBSXpCO0VBQ0UsbUNBQW1DO0VBQ25DLDJCQUEyQixFQUM1Qjs7QUFFRDtFQUNFLGlFQUE4QztVQUE5Qyx5REFBOEMsRUFLL0M7RUFORDtJQUlJLHdEQUEyQztZQUEzQyxnREFBMkMsRUFDNUM7O0FBR0g7RUFDRTtJQUNFLFdBQVcsRUFBQTtFQUdiO0lBQ0UsV0FBVyxFQUFBLEVBQUE7O0FBTWY7RUFDRTtJQUNFLDZDRTFJc0I7SUYySXRCLG1DRTNJc0IsRUFBQTtFRjZJeEI7SUFDRSxpQ0U5SXNCLEVBQUE7RUZnSnhCO0lBQ0UsNENFakpzQixFQUFBLEVBQUE7O0FGcUoxQjtFQUNFO0lBQ0UsNkNFdkpzQjtJRndKdEIsbUNFeEpzQixFQUFBO0VGMEp4QjtJQUNFLGlDRTNKc0IsRUFBQTtFRjZKeEI7SUFDRSw0Q0U5SnNCLEVBQUEsRUFBQTs7QUZrSzFCO0VBQ0U7SUFDRSw2Q0VwS3NCO0lGcUt0QixtQ0VyS3NCLEVBQUE7RUZ1S3hCO0lBQ0UsaUNFeEtzQixFQUFBO0VGMEt4QjtJQUNFLDRDRTNLc0IsRUFBQSxFQUFBOztBQ1AxQjs7RUFDRSw0REFId0Q7RUFJeEQsZURzQnVCO0VDckJ2QixvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLG9DQUFvQyxFQUNyQzs7QUFhRDtFQUNFLGVBQWU7RUFDZixlQUFlLEVBT2hCO0VBVEQ7SUFLSSxjQUFjLEVBQ2Y7RUFOSDtJQVFNLGVBQWUsRUFBSzs7QUFNMUI7RUMwRkUsNkRBQWU7RUFBZixxREFBZSxFRDFGc0M7RUM0RnJEO0lENUZGO01DNkZJLGdCRDdGeUIsRUFBMEIsRUFBQTtFQ2dHckQ7SURoR0Y7TUNpR0ksZ0JEakcrQixFQUFvQixFQUFBOztBQUN2RDtFQ3lGRSw2REFBZTtFQUFmLHFEQUFlLEVEekZzQztFQzJGckQ7SUQzRkY7TUM0RkksZ0JENUZ5QixFQUEwQixFQUFBO0VDK0ZyRDtJRC9GRjtNQ2dHSSxnQkRoRytCLEVBQW9CLEVBQUE7O0FBQ3ZEO0VDd0ZFLDREQUFlO0VBQWYsb0RBQWUsRUR4RnNDO0VDMEZyRDtJRDFGRjtNQzJGSSxnQkQzRnlCLEVBQTBCLEVBQUE7RUM4RnJEO0lEOUZGO01DK0ZJLGdCRC9GK0IsRUFBb0IsRUFBQTs7QUFDdkQ7RUN1RkUsNERBQWU7RUFBZixvREFBZSxFRHZGc0M7RUN5RnJEO0lEekZGO01DMEZJLGdCRDFGeUIsRUFBMEIsRUFBQTtFQzZGckQ7SUQ3RkY7TUM4RkksZ0JEOUYrQixFQUFvQixFQUFBOztBQUN2RDtFQ3NGRSw0REFBZTtFQUFmLG9EQUFlLEVEdEZzQztFQ3dGckQ7SUR4RkY7TUN5RkksZ0JEekZ5QixFQUEwQixFQUFBO0VDNEZyRDtJRDVGRjtNQzZGSSxnQkQ3RitCLEVBQW9CLEVBQUE7O0FBQ3ZEO0VDcUZFLDREQUFlO0VBQWYsb0RBQWUsRURyRnNDO0VDdUZyRDtJRHZGRjtNQ3dGSSxnQkR4RnlCLEVBQTBCLEVBQUE7RUMyRnJEO0lEM0ZGO01DNEZJLGdCRDVGK0IsRUFBb0IsRUFBQTs7QUFDdkQ7RUNvRkUsNERBQWU7RUFBZixvREFBZSxFRHBGaUM7RUNzRmhEO0lEdEZGO01DdUZJLGdCRHZGb0MsRUFBVSxFQUFBO0VDMEZoRDtJRDFGRjtNQzJGSSxnQkQzRjBDLEVBQUksRUFBQTs7QUFhbEQ7RUFDRSxtQkFBbUI7RUFDbkIsY0FBYyxFQUNmOztBQUVEO0VBQUksc0JBQXNCLEVBQUk7O0FFNUQ5QjtFQUNFLHlCQUF5QixFQUMxQjs7QUFFRDtFQUNFLGlCQUFpQixFQUtsQjtFQU5EO0lBSUksaUJBQWlCLEVBQ2xCOztBQUdIO0VBQ0UsaUJIU3FCO0VKdU1yQixZQUFZO0VBQ1osa0JRaE5nQjtFUmlOaEIsWUFBWTtFQUNaLGVBQWU7RUFDZixtQkFDYztFQURkLGtCQUVjO0VBRWQsZ0JPdE42QjtFUHNON0IsaUJPdE42QixFQUs5QjtFQVJEO0lFRUksWUFBWTtJQUNaLFlBQVk7SUFDWixlQUFlLEVBQ2hCO0VDeWhCQztJSDloQko7TUFNSSxhQUFhLEVBRWhCLEVBQUE7O0FBR0Q7RVBzTUUsWUFBWTtFQUNaLGtCUWpOYztFUmtOZCxZQUFZO0VBQ1osZUFBZTtFQUNmLG1CQUNjO0VBRGQsa0JBRWM7RUFFZCxpQk83TTRCO0VQNk01QixrQk83TTRCLEVBSzdCO0VBTkQ7SUVUSSxZQUFZO0lBQ1osWUFBWTtJQUNaLGVBQWUsRUFDaEI7RUN5aEJDO0lIbmhCSjtNQUlJLGNBQWMsRUFFakIsRUFBQTs7QUFHRDtFRWxCSSxZQUFZO0VBQ1osWUFBWTtFQUNaLGVBQWUsRUFDaEI7O0FFSUQ7RUFDRSx1QkFBdUIsRUFDeEI7O0FBRUQ7OztFQUdFLG9CQUFvQixFQUNyQjs7QUFrQkQ7Ozs7RUFJRSx5QkFBaUI7S0FBakIsc0JBQWlCO1VBQWpCLGlCQUFpQjtFQUNqQix3QkFBd0I7RUFDeEIsVUFBVTtFQUNWLGVBQWU7RUFDZixjQUFjO0VBQ2Qsb0NBQW9DO0VBQ3BDLFVBQVU7RUFDVixXQUFXO0VBQ1gsMEJBQWtCO0tBQWxCLHVCQUFrQjtNQUFsQixzQkFBa0I7VUFBbEIsa0JBQWtCO0VBQ2xCLFlBQVksRUFNYjtFQW5CRDs7OztJQWdCSSxVQUFVO0lBQ1YsV0FBVyxFQUNaOztBQTBCSDtFQUNFLFVBQVUsRUFDWDs7QUEzREQ7RUFDRSxVQUFVO0VBQ1YsVUFBVTtFQUNWLFdBQVcsRUFDWjs7QUFFRDtFQUNFLGlCQUFpQixFQUNsQjs7QUF3Q0Q7O0VBRUUsYUFBYTtFQUNiLGdCQUFnQixFQUNqQjs7QUFmRDtFQUNFLGNBQWMsRUFDZjs7QUFFRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFuRUQ7Ozs7O0VBS0UsZ0JBQWdCLEVBQ2pCOztBQ2lHRDtFQUNFO0lBQUssV0FBVztJQUFFLDBDQUFzQjtZQUF0QixrQ0FBc0IsRUFBQTtFQUN4QztJQUFPLFdBQVc7SUFBRSx3QkFBZ0I7WUFBaEIsZ0JBQWdCLEVBQUEsRUFBQTs7QUFGdEM7RUFDRTtJQUFLLFdBQVc7SUFBRSwwQ0FBc0I7WUFBdEIsa0NBQXNCLEVBQUE7RUFDeEM7SUFBTyxXQUFXO0lBQUUsd0JBQWdCO1lBQWhCLGdCQUFnQixFQUFBLEVBQUE7O0FBR3RDO0VBQ0U7SUFBSyxXQUFXO0lBQUUsMkNBQXNCO1lBQXRCLG1DQUFzQixFQUFBO0VBQ3hDO0lBQU8sV0FBVztJQUFFLHdCQUFnQjtZQUFoQixnQkFBZ0IsRUFBQSxFQUFBOztBQUZ0QztFQUNFO0lBQUssV0FBVztJQUFFLDJDQUFzQjtZQUF0QixtQ0FBc0IsRUFBQTtFQUN4QztJQUFPLFdBQVc7SUFBRSx3QkFBZ0I7WUFBaEIsZ0JBQWdCLEVBQUEsRUFBQTs7QUFHdEM7RUFDRTtJQUFLLFdBQVc7SUFBRSw0QkFBZ0I7WUFBaEIsb0JBQWdCLEVBQUE7RUFDbEM7SUFBTSw4QkFBZ0I7WUFBaEIsc0JBQWdCLEVBQUE7RUFDdEI7SUFBTyxXQUFXO0lBQUUsNEJBQWdCO1lBQWhCLG9CQUFnQixFQUFBLEVBQUE7O0FBSHRDO0VBQ0U7SUFBSyxXQUFXO0lBQUUsNEJBQWdCO1lBQWhCLG9CQUFnQixFQUFBO0VBQ2xDO0lBQU0sOEJBQWdCO1lBQWhCLHNCQUFnQixFQUFBO0VBQ3RCO0lBQU8sV0FBVztJQUFFLDRCQUFnQjtZQUFoQixvQkFBZ0IsRUFBQSxFQUFBOztBQUd0QztFQUNFO0lBQUssV0FBVyxFQUFBO0VBQ2hCO0lBQU8sV0FBVyxFQUFBLEVBQUE7O0FBRnBCO0VBQ0U7SUFBSyxXQUFXLEVBQUE7RUFDaEI7SUFBTyxXQUFXLEVBQUEsRUFBQTs7QUFLcEI7O0VBeEZBLHdFQTVCMEI7VUE0QjFCLGdFQTVCMEI7RUE2QjFCLGtDQzFDdUI7VUQwQ3ZCLDBCQzFDdUI7RUQyQ3ZCLGtDQUEwQjtVQUExQiwwQkFBMEIsRUFzRlM7O0FBR25DO0VBOUVBLGdDQUF3QjtVQUF4Qix3QkFBd0IsRUE4RVM7O0FBQ2pDOztFQXBFQSxtQ0FBMkI7VUFBM0IsMkJBQTJCLEVBb0VZOztBQUN2QztFQTFEQSxxQ0FBNkI7VUFBN0IsNkJBQTZCLEVBMERjOztBQUMzQztFQS9DQSxtQ0FBMkI7VUFBM0IsMkJBQTJCLEVBK0NZOztBQVFyQztFQUNFLDhCQUhRO1VBR1Isc0JBSFEsRUFJVDs7QUFGRDtFQUNFLDhCQUhRO1VBR1Isc0JBSFEsRUFJVDs7QUFGRDtFQUNFLDhCQUhRO1VBR1Isc0JBSFEsRUFJVDs7QUFGRDtFQUNFLDhCQUhRO1VBR1Isc0JBSFEsRUFJVDs7QUFGRDtFQUNFLDhCQUhRO1VBR1Isc0JBSFEsRUFJVDs7QUFGRDtFQUNFLDhCQUhRO1VBR1Isc0JBSFEsRUFJVDs7QUFGRDtFQUNFLDhCQUhRO1VBR1Isc0JBSFEsRUFJVDs7QUFGRDtFQUNFLDhCQUhRO1VBR1Isc0JBSFEsRUFJVDs7QUFGRDtFQUNFLDhCQUhRO1VBR1Isc0JBSFEsRUFJVDs7QUFGRDtFQUNFLDRCQUhRO1VBR1Isb0JBSFEsRUFJVDs7QUFGRDtFQUNFLDhCQUhRO1VBR1Isc0JBSFEsRUFJVDs7QUFGRDtFQUNFLDhCQUhRO1VBR1Isc0JBSFEsRUFJVDs7QUFGRDtFQUNFLDhCQUhRO1VBR1Isc0JBSFEsRUFJVDs7QUFGRDtFQUNFLDhCQUhRO1VBR1Isc0JBSFEsRUFJVDs7QUFGRDtFQUNFLDhCQUhRO1VBR1Isc0JBSFEsRUFJVDs7QUFGRDtFQUNFLDhCQUhRO1VBR1Isc0JBSFEsRUFJVDs7QUFGRDtFQUNFLDhCQUhRO1VBR1Isc0JBSFEsRUFJVDs7QUFGRDtFQUNFLDhCQUhRO1VBR1Isc0JBSFEsRUFJVDs7QUFGRDtFQUNFLDhCQUhRO1VBR1Isc0JBSFEsRUFJVDs7QUFGRDtFQUNFLDRCQUhRO1VBR1Isb0JBSFEsRUFJVDs7QUxoSEw7RUFDRSxjQUFjLEVBQ2Y7O0FBRUQ7RU8zQkUsaUJBQWlCO0VBQ2pCLGVBRjBCO0VBRzFCLDBCQUEwQjtFQUMxQiwwQkFBMEI7RUFDMUIsbUJBQW1CO0VBQ25CLHNDQUFzQyxFUHdCdkM7O0FBRUQ7RU9aRSxlQUFlO0VBQ2YsYUFBYTtFQUNiLDBCQUEwQjtFQUMxQiwwQkFBMEI7RUFDMUIsbUJBQW1CO0VBQ25CLHNCQUFzQjtFQUN0QixzQkFBc0I7RUFDdEIsc0NBQXNDO0VBQ3RDLGtCQUFrQixFUE1uQjs7QUFFRDtFRWlHRSxVQUFVO0VBQ1YsNkNBRjJCO0VBRzNCLFVBQVU7RUFDVixXQUFXO0VBQ1gsZ0JBQWtCLEVGbkduQjs7QUFFRDtFRGtCRSxVQUFVO0VBQ1YsV0FBVyxFQ2pCWjtFQUZEO0lEc0JJLFlBQVk7SUFDWixzQkFBc0I7SUFDdEIsVUFBVTtJQUNWLFdBQVcsRUFDWjs7QUN0Qkg7RURORSxzQkFBc0I7RUFDdEIsbUJBQW1CLEVDT3BCO0VBRkQ7SURGSSxzQkFBd0I7SUFDeEIsbUJBQW1CLEVBQ3BCOztBQ0lIO0VEVkUsc0JBQXNCO0VBQ3RCLG1CQUFtQixFQ1dwQjtFQUZEO0lETkkseUJBQXdCO0lBQ3hCLG1CQUFtQixFQUNwQjs7QUNRSDs7OztFQUlFLHNCQUFzQixFQUN2Qjs7QUFFRDs7O0VBR0Usb0JBQW9CLEVBQ3JCOztBQUVEO0VBQ0UsY0FBYyxFQUNmOztBUW5GRDs7Ozs7RUNzQkUsbUJBQW1CO0VBQ25CLG1CUnJCd0I7RVFzQnhCLDhCRG5CMkI7RUNvQjNCLFlBTG9EO0VBTXBELGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLHNCQUFzQjtFQUN0QixzQkFBc0I7RUFDdEIsYUFBYTtFQUNiLGlDQUF5QjtVQUF6Qix5QkFBeUI7RUQxQnpCLHNCQUF1QjtFQUN2QiwwQkVXdUI7RUZWdkIsaUJBQWlCLEVBdUNsQjtFQS9DRDs7Ozs7SUNtQ0ksMEJBQXdCLEVBQ3pCO0VEcENIOzs7OztJQVdJLDJCRU9xQixFRk50QjtFQVpIOzs7OztJQWVJLGVYTHNCO0lXTXRCLGtCQUFrQjtJQUNsQiw4QkFBOEI7SUFDOUIsMEJYUnNCO0lXU3RCLG1CRURxQixFRjRCdEI7SUE5Q0g7Ozs7O01Bc0JNLFlYQWlCO01XQ2pCLDBCWGJvQjtNV2NwQiwwQlhkb0I7TVdlcEIsbUJFUG1CLEVGUXBCO0lBMUJMOzs7OztNQTZCTSxZWFBpQjtNV1FqQiwwQlhwQm9CO01XcUJwQiwwQlhyQm9CO01Xc0JwQixtQkVkbUI7TUZlbkIsY0FBYyxFQUNmO0lBbENMOzs7OztNQXFDTSxZQUFZO01BQ1osdUJBQXVCLEVBT3hCO01BN0NMOzs7OztRQXlDUSx1QkFBdUI7UUFDdkIsdUJBQXVCO1FBQ3ZCLGVYakNrQixFV2tDbkI7O0FHNUNQO0VBQ0Usb0JkNEJ3QjtFYzNCeEIsbUJBQW1CO0VBQ25CLG1CQUFtQixFQXFRcEI7RUF4UUQ7SWxCNk5FLFlBQVk7SUFDWixrQmtCeE53QjtJbEJ5TnhCLFlBQVk7SUFDWixlQUFlO0lBQ2YsbUJBQ2M7SUFEZCxrQkFFYztJQUVkLGdCQVZnRDtJQVVoRCxpQkFWZ0Q7SWtCcE45QyxtQkFBbUIsRUFDcEI7SUFSSDtNVGNJLFlBQVk7TUFDWixZQUFZO01BQ1osZUFBZSxFQUNoQjtFU2pCSDtJQVdJLG1CQUFtQjtJQUNuQixXQUFXO0lBQ1gsV0FBVztJQUNYLGlCQUFpQjtJQUNqQixlREdxQixFQ2lCdEI7SVJ1Z0JDO01RMWlCSjtRTmdERSx3RUE1QjBCO2dCQTRCMUIsZ0VBNUIwQjtRQTZCMUIsa0NDMUN1QjtnQkQwQ3ZCLDBCQzFDdUI7UUQyQ3ZCLGtDQUEwQjtnQkFBMUIsMEJBQTBCO1FNOUJ0QixzQ0FBOEI7Z0JBQTlCLDhCQUE4QjtRQUM5Qiw4QkFBc0I7Z0JBQXRCLHNCQUFzQixFQWN6QixFQUFBO0lSdWdCQztNUTFpQko7UUEyQlEsWUFBWSxFQUNiLEVBQUE7SUE1QlA7TUFnQ00sb0JEZG1CO01DZW5CLGVkYm9CLEVjY3JCO0VBbENMO0lBc0NJLG1CQUFtQjtJQUNuQixXQUFXO0lBQ1gsV0FBVztJQUNYLGdCRHZCcUIsRUNnRHRCO0lSd2VDO01RMWlCSjtRTmdERSx3RUE1QjBCO2dCQTRCMUIsZ0VBNUIwQjtRQTZCMUIsa0NDMUN1QjtnQkQwQ3ZCLDBCQzFDdUI7UUQyQ3ZCLGtDQUEwQjtnQkFBMUIsMEJBQTBCO1FNTHRCLHFDQUE2QjtnQkFBN0IsNkJBQTZCO1FBQzdCLDhCQUFzQjtnQkFBdEIsc0JBQXNCLEVBb0J6QixFQUFBO0lBbEVIO01abUJFLFVBQVU7TUFDVixXQUFXLEVZK0JSO01BbkRMO1FUY0ksWUFBWTtRQUNaLFlBQVk7UUFDWixlQUFlLEVBQ2hCO01TakJIO1FadUJJLFlBQVk7UUFDWixzQkFBc0I7UUFDdEIsbUJZeUIyQixFWnhCNUI7TVkxQkg7UVo2QkksZ0JBQWdCLEVBQ2pCO0lZOUJIO01Bc0RNLDhDZDNCbUI7TWM0Qm5CLDRCQUE0QixFQUM3QjtJQXhETDtNQTJETSxnQkFBZ0IsRUFDakI7SUE1REw7TUErRE0sYUFBYTtNQUNiLFlBQVksRUFDYjtFQWpFTDtJVGdERSxpQkFBaUI7SUFDakIsbUJBQW1CO0lTcUJqQiwyQkFBMkI7SUFDM0IsNkJBQTZCO0lBQzdCLGdDQUFnQztJQUNoQyxjRHZEcUIsRUNnRXRCO0lBbEZIO01Ub0RJLFlBQVk7TUFDWixlQUFlO01BQ2YsVUFBVTtNQUNWLGlCQUFlLEVBQ2hCO0lDa2ZDO01RMWlCSjtRTmdERSx3RUE1QjBCO2dCQTRCMUIsZ0VBNUIwQjtRQTZCMUIsa0NDMUN1QjtnQkQwQ3ZCLDBCQzFDdUI7UUQyQ3ZCLGtDQUEwQjtnQkFBMUIsMEJBQTBCO1FBVzFCLGdDQUF3QjtnQkFBeEIsd0JBQXdCO1FNa0JwQiw4QkFBc0I7Z0JBQXRCLHNCQUFzQjtRQUN0QiwrQkFBdUI7Z0JBQXZCLHVCQUF1QixFQUUxQixFQUFBO0VBbEZIO0lBcUZJLG1CQUFtQjtJQUNuQixXQUFXO0lBQ1gsNEJBQWdCO1FBQWhCLHdCQUFnQjtZQUFoQixvQkFBZ0I7SUFDaEIsWUFBWTtJQUNaLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsaURBQWlDO1lBQWpDLGlDQUFpQztJQUNqQyxnQkFBZ0I7SU41Q2xCLHdFQTVCMEI7WUE0QjFCLGdFQTVCMEI7SUE2QjFCLGtDQzFDdUI7WUQwQ3ZCLDBCQzFDdUI7SUQyQ3ZCLGtDQUEwQjtZQUExQiwwQkFBMEI7SU00Q3hCLCtCQUF1QjtZQUF2Qix1QkFBdUIsRUFheEI7SUEzR0g7TUFpR00sbUJBQW1CO01sQjRIdkIsWUFBWTtNQUNaLGtCRnRONEI7TUV1TjVCLFlBQVk7TUFDWixlQUFlO01BQ2YsbUJBQ2M7TUFEZCxrQkFFYztNQUVkLGdCQVZnRDtNQVVoRCxpQkFWZ0Q7TVNsRzlDLG1CQUFtQjtNQUNuQixTQUFTO01BQ1Qsb0NBQXFCO1VBQXJCLGdDQUFxQjtjQUFyQiw0QkFBcUIsRVN2QnBCO01BcEdMO1FUY0ksWUFBWTtRQUNaLFlBQVk7UUFDWixlQUFlLEVBQ2hCO0lTakJIO01Bd0dRLGVBQWUsRUFDaEI7RUF6R1A7SUErR0ksVUFBVTtJQUNWLFNBQVM7SUFDVCw4QkFBc0I7WUFBdEIsc0JBQXNCLEVBRXZCO0lBbkhIO01DdUJFLFVBQVU7TUFDVixtQkFBbUI7TUFDbkIsWUFBWTtNQUNaLGFBQWE7TUFDYixtQkFBbUI7TUFDbkIsZUFBZTtNQUNmLDBCZm5Cd0IsRWN3R29CO01BbEg5QztRQ2dDSSxtQkFBbUI7UUFDbkIsb0JmdkJzQjtRZXdCdEIsWUFBWTtRQUNaLE9BQU87UUFDUCxRQUFRO1FBQ1IsVUFBVTtRQUNWLFlBQVk7UUFDWixhQUFhO1FBQ2IsbUJBQW1CO1FBS2pCLHVFQUE2QztnQkFBN0MsK0RBQTZDO1FBSS9DLDRDQUFvQztnQkFBcEMsb0NBQW9DLEVBQ3JDO01EbERIO1FDcURJLDZCQUFxQjtnQkFBckIscUJBQXFCO1FBQ3JCLGlDRDREcUM7Z0JDNURyQyx5QkQ0RHFDLEVDM0R0QztFRHZESDtJQXVISSxVQUFVO0lBQ1YsU0FBUztJQUNULDhCQUFzQjtZQUF0QixzQkFBc0IsRUFFdkI7SUEzSEg7TUN1QkUsVUFBVTtNQUNWLG1CQUFtQjtNQUNuQixZQUFZO01BQ1osYUFBYTtNQUNiLG1CQUFtQjtNQUNuQixlQUFlO01BQ2YsMEJmbkJ3QixFY2dIa0I7TUExSDVDO1FDZ0NJLG1CQUFtQjtRQUNuQixvQmZ2QnNCO1Fld0J0QixZQUFZO1FBQ1osT0FBTztRQUNQLFFBQVE7UUFDUixVQUFVO1FBQ1YsWUFBWTtRQUNaLGFBQWE7UUFDYixtQkFBbUI7UUFLakIscUVBQTZDO2dCQUE3Qyw2REFBNkM7UUFJL0MsNENBQW9DO2dCQUFwQyxvQ0FBb0MsRUFDckM7TURsREg7UUNxREksNkJBQXFCO2dCQUFyQixxQkFBcUI7UUFDckIsK0JEb0VtQztnQkNwRW5DLHVCRG9FbUMsRUNuRXBDO0VEdkRIO0lBK0hJLFdBQVc7SUFDWCxZQUFZO0lBQ1osOEJBQXNCO1lBQXRCLHNCQUFzQixFQUV2QjtJQW5JSDtNQ3VCRSxVQUFVO01BQ1YsbUJBQW1CO01BQ25CLFlBQVk7TUFDWixhQUFhO01BQ2IsbUJBQW1CO01BQ25CLGVBQWU7TUFDZiwwQmZuQndCLEVjd0hxQjtNQWxJL0M7UUNnQ0ksbUJBQW1CO1FBQ25CLG9CZnZCc0I7UWV3QnRCLFlBQVk7UUFDWixPQUFPO1FBQ1AsUUFBUTtRQUNSLFVBQVU7UUFDVixZQUFZO1FBQ1osYUFBYTtRQUNiLG1CQUFtQjtRQU9qQixxRUFBMkM7Z0JBQTNDLDZEQUEyQztRQUU3Qyw0Q0FBb0M7Z0JBQXBDLG9DQUFvQyxFQUNyQztNRGxESDtRQ3FESSw2QkFBcUI7Z0JBQXJCLHFCQUFxQjtRQUNyQixpQ0Q0RXNDO2dCQzVFdEMseUJENEVzQyxFQzNFdkM7RUR2REg7SU5nREUsd0VBNUIwQjtZQTRCMUIsZ0VBNUIwQjtJQTZCMUIsa0NDMUN1QjtZRDBDdkIsMEJDMUN1QjtJRDJDdkIsa0NBQTBCO1lBQTFCLDBCQUEwQjtJTzhCeEIsNEZBUjJEO0lEZ0UzRCxjQUFjO0lBQ2QsMkJEdkhxQjtJQ3dIckIsYUFBYTtJQUNiLHNDQUFxQjtJQUNyQixpREFBaUM7WUFBakMsaUNBQWlDO0lBQ2pDLG1CQUFtQjtJQUNuQixXQUFXO0lBQ1gsYUFBYTtJQUNiLFlBQVk7SUFDWixVQUFVO0lBQ1YsbUJBQW1CO0lBQ25CLDBCRGpJcUI7SUNrSXJCLG1DQUEyQjtZQUEzQiwyQkFBMkI7SUFDM0IsZ0NBQXdCO1lBQXhCLHdCQUF3QjtJQUN4QixtQkRwSXFCO0lDcUlyQixtQkFBbUIsRUFVcEI7SUFqS0g7TUEySk0sbUJBQW1CO01BQ25CLFlBQVk7TUFDWixVQUFVO01BQ1Ysb0NBQVU7TUFBViw0QkFBVTtNRHpFZCxTQUFTO01BQ1QsVUFBVTtNQUdSLDhCYm5FbUI7TWFvRW5CLG1DQUFvQztNQUNwQyxvQ0FBcUMsRUNxRXBDO0VBaEtMO0lBcUtJLGlCQUFpQjtJQUNqQixjVmpLYztJVWtLZCxtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLFdBQVc7SUFDWCxtQkFBbUIsRUEyQ3BCO0lScVZDO01RMWlCSjtRTmdERSx3RUE1QjBCO2dCQTRCMUIsZ0VBNUIwQjtRQTZCMUIsa0NDMUN1QjtnQkQwQ3ZCLDBCQzFDdUI7UUQyQ3ZCLGtDQUEwQjtnQkFBMUIsMEJBQTBCO1FNNEh0QixxQ0FBNkI7Z0JBQTdCLDZCQUE2QjtRQUM3Qiw4QkFBc0I7Z0JBQXRCLHNCQUFzQixFQXNDekIsRUFBQTtJQXJOSDtNbEI2TkUsWUFBWTtNQUNaLGlCa0IzQ3lCO01sQjRDekIsWUFBWTtNQUNaLGVBQWU7TUFDZixtQkFDYztNQURkLGtCQUVjO01BRWQsZ0JBVmdEO01BVWhELGlCQVZnRDtNTTdGaEQsNERBQWU7TUFBZixvREFBZTtNWXVEWCxtQkFBbUI7TUFDbkIsZWRsS29CLEVjbUtyQjtNQXZMTDtRVGNJLFlBQVk7UUFDWixZQUFZO1FBQ1osZUFBZSxFQUNoQjtNSCtHRDtRWWhJRjtVWmlJSSxnQlltRDBCLEVBR3pCLEVBQUE7TVpuREg7UVlwSUY7VVpxSUksZ0JZK0NnQyxFQUcvQixFQUFBO0lBdkxMO01BMExNLGVkL0tvQjtNY2dMcEIsMEJkaExvQjtNY2lMcEIsaUJBQWlCO01BQ2pCLG9CQUFvQixFQXVCckI7TUFwTkw7UUFnTVEsYUFBYTtRQUNiLG9CZHRMa0IsRWN1TG5CO01BbE1QO1FBcU1RLGFBQWE7UUFDYixvQmQzTGtCLEVjNExuQjtNUm1XSDtRUTFpQko7VUEwTVEsV0FBVztVQUNYLGtCQUFrQjtVQUNsQixtQkFBbUI7VUFDbkIsd0JEM0xpQjtVQzRMakIscUJENUxpQixFQ2tNcEI7VUFwTkw7WUFpTlUsd0JEL0xlLEVDZ01oQixFQUFBO0VSd1ZMO0lRMWlCSjtNQXlOTSxtQkFBbUI7TUFDbkIsV0FBVztNQUNYLFdBQVc7TUFDWCxtQkFBbUIsRUFLcEI7TUFqT0w7UUErTlEsV0FBVyxFQUNaO0lBaE9QO01Bb09NLGFBQWE7TUFDYiwyQkFBMkI7TUFDM0IsVUFBVTtNVHRMZCxpQkFBaUI7TUFDakIsbUJBQW1CLEVTdUxoQjtNQXhPTDtRVG9ESSxZQUFZO1FBQ1osZUFBZTtRQUNmLFVBQVU7UUFDVixpQkFBZSxFQUNoQjtJU3hESDtNQTJPTSxjQUFjLEVBQ2Y7SUE1T0w7TUErT00sbUJBQW1CO01BQ25CLFVBQVU7TUFDVixZQUFZO01BQ1osWUFBWTtNQUNaLGtCQUFrQixFQVVuQixFQUFBO0VSNlNEO0lRMWlCSjtNQXNQUSxvQkRwT2lCLEVDMk9wQixFQUFBO0VSNlNEO01RMWlCSjtRQTBQUSxZQUFZO1FBQ1osZ0JBQWdCLEVBQ2pCO0lBNVBQO01BZ1FNLG1CQUFtQjtNQUNuQixjQUFjLEVBS2Y7TUF0UUw7UUFvUVEsaUJBQWlCLEVBQ2xCLEVBQUE7O0FFclFQO0VBQ0UsMEJoQnNCd0I7RWdCckJ4Qiw4QkFBNEI7RUFDNUIsWUFBWTtFQUNaLGFBQWE7RUFDYixzQkhhdUI7RUdadkIseUJIWXVCLEVHZ0l4QjtFVndaRztJVTFpQko7TUFTSSxvQkhTcUI7TUdSckIsdUJIUXFCLEVHZ0l4QixFQUFBO0VBbEpEO0lBZ0JJLGNaWGM7SVlZZCxtQkFBbUI7SUFDbkIsZUFBZTtJQUNmLG9CSERxQixFR2dCdEI7SUFsQ0g7TUFzQk0sOEJBQThCO01BQzlCLG9CQUFvQjtNQUNwQixrQkhObUI7TVppQ3ZCLDZDQUE2QztNZXpCekMsc0JIUm1CLEVHU3BCO0lBM0JMO01BOEJNLHNCSFptQjtNR2FuQixlaEJYb0I7TWdCWXBCLG9CSGRtQixFR2VwQjtFQWpDTDtJQXFDSSxlQUFlO0lBQ2Ysb0JBQW9CLEVBS3JCO0lWK2ZDO01VMWlCSjtRQXlDTSxjQUFjLEVBRWpCLEVBQUE7RUEzQ0g7SUE4Q0ksbUJBQW1CO0lBQ25CLHNCSDdCcUI7SUcrQnJCLGVBQWUsRUFrRWhCO0lBbkhIO01Bb0RNLFlBQVksRUFpQ2I7TVZxZEQ7UVUxaUJKO1VBd0RRLGtCQUFrQixFQTZCckIsRUFBQTtNQXJGTDtRQTREUSxjQUFjLEVBTWY7UUFsRVA7OztVQWdFVSxjQUFjLEVBQ2Y7TUFqRVQ7UUFxRVEsOEJBQWdCO1lBQWhCLDBCQUFnQjtnQkFBaEIsc0JBQWdCO1FBQ2hCLDhCQUFzQjtZQUF0QiwwQkFBc0I7Z0JBQXRCLHNCQUFzQjtRQUN0QixrQ0FBMEI7Z0JBQTFCLDBCQUEwQixFQUMzQjtNQXhFUDtRQTJFUSxvQ0FBcUI7WUFBckIsZ0NBQXFCO2dCQUFyQiw0QkFBcUI7UUFDckIsOEJBQWdCO1lBQWhCLDBCQUFnQjtnQkFBaEIsc0JBQWdCO1FBQ2hCLDhCQUFzQjtZQUF0QiwwQkFBc0I7Z0JBQXRCLHNCQUFzQjtRQUN0QixrQ0FBMEI7Z0JBQTFCLDBCQUEwQixFQUMzQjtNVjJkSDtRVTFpQko7VUFrRlEsV0FBVztVQUNYLG1CSGpFaUIsRUdtRXBCLEVBQUE7SUFyRkw7TUEwRlEsNEJBQWdCO1VBQWhCLHdCQUFnQjtjQUFoQixvQkFBZ0IsRUFDakI7SUEzRlA7TUE4RlEsNEJBQWdCO1VBQWhCLHdCQUFnQjtjQUFoQixvQkFBZ0I7TUFDaEIsaUNBQXFCO1VBQXJCLDZCQUFxQjtjQUFyQix5QkFBcUIsRUFDdEI7SUFoR1A7TUFzR1EsZUFBZSxFQVdoQjtNQWpIUDs7O1FBeUdVLGlDQUF5QjtnQkFBekIseUJBQXlCO1FBQ3pCLGVBQWU7UUFDZixrQ0FBMEI7WUFBMUIsOEJBQTBCO2dCQUExQiwwQkFBMEIsRUFDM0I7TUE1R1Q7UUErR1UsYUFBYSxFQUNkO0VWMGJMO0lVMWlCSjtNQXVITSxrQkFBa0I7TUFDbEIsaUJBQWlCLEVBQ2xCLEVBQUE7O0FWaWJEO0VVMWlCSjtJQTZISSxtQkFBbUIsRUFxQnRCO0lBbEpEO01Ba0lRLGtCQUFrQjtNQUNsQixzQkFBdUI7TUFDdkIsa0JBQWtCLEVBQ25CLEVBQUE7RVZxYUg7SVUxaUJKO01BNklRLHVCQUF1QjtNQUN2QixrQkFBa0IsRUFDbkIsRUFBQTs7QUMvSVA7RUFHSSxtQkFBbUIsRUFpQnBCO0VBcEJIO0lBTU0sNEJKWW1CO0lJWG5CLDhCQUE4QjtJQUM5QiwrQkFBK0I7SUFDL0Isa0JBQWtCO0lBQ2xCLGtCSlFtQjtJWmlDdkIsNkNBQTZDLEVnQnZDMUM7RUFaTDtJQWVNLHNCSkdtQjtJSUZuQixlakJJb0I7SWlCSHBCLG9CSkNtQjtJakIyTXZCLFlBQVk7SUFDWixpQnFCNU15QjtJckI2TXpCLFlBQVk7SUFDWixlQUFlO0lBQ2YsbUJBQ2M7SUFEZCxrQkFFYztJQUVkLGdCQVZnRDtJQVVoRCxpQkFWZ0QsRXFCeE03QztJQW5CTDtNWmNJLFlBQVk7TUFDWixZQUFZO01BQ1osZUFBZSxFQUNoQjs7QVlqQkg7RUF1QkksY0FBYyxFQUNmOztBQXhCSDtFckI2TkUsWUFBWTtFQUNaLGlCcUJuTXVCO0VyQm9NdkIsWUFBWTtFQUNaLGVBQWU7RUFDZixtQkFDYztFQURkLGtCQUVjO0VBRWQsZ0JBVmdEO0VBVWhELGlCQVZnRDtFcUIvTDlDLG1CQUFtQjtFQUNuQixxQkpYcUI7RUlZckIsZ0JKWnFCLEVJa0Z0QjtFQXBHSDtJWmNJLFlBQVk7SUFDWixZQUFZO0lBQ1osZUFBZSxFQUNoQjtFQ3loQkM7SVcxaUJKOztNQW1DUSxrRVRmb0I7Y1NlcEIsMERUZm9CLEVTaUJ2QixFQUFBO0VBckNMO0lBMkNNLCtCQUF1QjtZQUF2Qix1QkFBdUIsRUFDeEI7SVg4ZkQ7TVcxaUJKO1FBeUNRLHFFVGRvQjtnQlNjcEIsNkRUZG9CLEVTaUJ2QixFQUFBO0VBNUNMO0lBK0NNLFlBQVk7SUFDWix3Qko5Qm1CO0lJK0JuQixvQ0FBcUI7UUFBckIsZ0NBQXFCO1lBQXJCLDRCQUFxQixFQVl0QjtJQTdETDtNQW9EUSxzQkpsQ2lCO01JbUNqQixZQUFZLEVBQ2I7SUF0RFA7TUF5RFEsb0JKdkNpQjtNSXdDakIscUJKeENpQjtNSXlDakIsZWpCakRrQixFaUJrRG5CO0VBNURQO0lBZ0VNLFdBQVc7SUFDWCxrQkovQ21CO0lJZ0RuQixlakJ4RG9CO0lpQnlEcEIsbUJKakRtQjtJSWtEbkIsWUFBWTtJQUNaLHFCSm5EbUI7SUlvRG5CLDRCQUFnQjtRQUFoQix3QkFBZ0I7WUFBaEIsb0JBQWdCLEVBQ2pCO0VBdkVMO0lBMEVNLHFCSnhEbUI7SUl5RG5CLFlBQVk7SUFDWixxQ0FBcUI7UUFBckIsaUNBQXFCO1lBQXJCLDZCQUFxQixFQVl0QjtJQXhGTDtNQStFUSxzQko3RGlCO01JOERqQixZQUFZLEVBQ2I7SUFqRlA7TUFvRlEscUJKbEVpQjtNSW1FakIsb0JKbkVpQjtNSW9FakIsZWpCNUVrQixFaUI2RW5CO0VBdkZQOztJQTZGUSxpQ0FBcUI7UUFBckIsNkJBQXFCO1lBQXJCLHlCQUFxQixFQUN0QjtFQTlGUDtJQWlHUSw0QkFBZ0I7UUFBaEIsd0JBQWdCO1lBQWhCLG9CQUFnQixFQUNqQjs7QVh3Y0g7RVcxaUJKO0lBdUdJLGNibEdjLEVhNEtqQjtJQWpMRDtNQTJHUSxjQUFjO01BQ2QsaUJBQWlCLEVBQ2xCO0lBN0dQO01yQjZORSxZQUFZO01BQ1osaUJxQjdHeUI7TXJCOEd6QixZQUFZO01BQ1osZUFBZTtNQUNmLG1CQUNjO01BRGQsa0JBRWM7TUFFZCxnQkFWZ0Q7TUFVaEQsaUJBVmdEO01xQnpHNUMsbUJBQW1CO01BQ25CLHFCSmpHbUI7TUlrR25CLGdCSmxHbUIsRUkySXBCO01BN0pMO1FaY0ksWUFBWTtRQUNaLFlBQVk7UUFDWixlQUFlLEVBQ2hCO01ZakJIO1FBdUhRLFlBQVk7UUFDWix3Qkp0R2lCLEVJa0hsQjtRQXBJUDtVQTJIVSxpQkp6R2U7VUkwR2YsWUFBWSxFQUNiO1FBN0hUO1VBZ0lVLHFCSjlHZTtVSStHZixxQkovR2U7VUlnSGYsZWpCeEhnQixFaUJ5SGpCO01BbklUO1FBdUlRLFdBQVc7UUFDWCxrQkp0SGlCO1FJdUhqQixlakIvSGtCO1FpQmdJbEIsc0JKeEhpQjtRSXlIakIsWUFBWTtRQUNaLHdCSjFIaUIsRUkySGxCO01BN0lQO1FBZ0pRLFlBQVksRUFZYjtRQTVKUDtVQW1KVSxpQkpqSWU7VUlrSWYsWUFBWSxFQUNiO1FBckpUO1VBd0pVLHFCSnRJZTtVSXVJZixxQkp2SWU7VUl3SWYsZWpCaEpnQixFaUJpSmpCLEVBQUE7O0FBM0pUO0VBaUtJLDBCakIxSXNCO0VpQjJJdEIsYUFBYTtFQUNiLG9CQUFvQixFQWFyQjtFQWhMSDtJQXVLUSxzQkpySmlCLEVJc0psQjtFQXhLUDtJQTRLTSxlQUFlO0lBQ2YsbUJBQW1CO0lBQ25CLHFCSjVKbUIsRUk2SnBCOztBQy9LTDtFQUNFLG1CQUFtQjtFQUVuQixtQkFBbUIsRUF5RnBCO0VBNUZEO0lBTUkscUJMWXFCO0lLVnJCLHdDbEJtQnFCO0lrQmxCckIsY2RKYztJY0tkLG1CQUFtQjtJQUNuQixtQkFBbUIsRUFnRnBCO0lBM0ZIO01BZU0sbUJBQW9CO010QjhNeEIsWUFBWTtNQUNaLGlCc0I5TXlCO010QitNekIsWUFBWTtNQUNaLGVBQWU7TUFDZixtQkFDYztNQURkLGtCQUVjO01BRWQsZ0JBVmdEO01BVWhELGlCQVZnRDtNc0IxTTVDLHFCTENtQixFS3dFcEI7TUExRkw7UWJjSSxZQUFZO1FBQ1osWUFBWTtRQUNaLGVBQWUsRUFDaEI7TWFqQkg7UUFvQlEsbUJBQW1CO1FBQ25CLGlCTEhpQjtRS0lqQixlbEJGa0I7UWtCR2xCLGdCTExpQjtRS01qQix5QkxOaUIsRUtPbEI7TUF6QlA7UUEyQlEsZ0JBQWdCLEVBQ2pCOztBQzVCUDtFQUNFLHNCTmlCdUIsRU1nQ3hCO0VBbEREO0lBSUksc0JBQXNCO0lBQ3RCLG1DTmFxQjtJTVpyQixtQkFBbUI7SUFDbkIsZW5CbUJxQjtJbUJsQnJCLG1CQUFtQixFQXlDcEI7SUFqREg7TUFXTSxlbkJEb0I7TW1CRXBCLGlCQUFpQjtNQUNqQixtQkFBbUI7TUFDbkIsaUJOSW1CO01NSG5CLGVOR21CO01NRm5CLG9CTkVtQjtNTURuQix3Qk5DbUIsRU1BcEI7SUFsQkw7TUFxQk0sb0JBQXFCLEVBMkJ0QjtNQWhETDtRQXdCUSx1Qk5OaUIsRU02QmxCO1FBL0NQO1VBMkJVLGVBQWU7VUFDZixlTlZlO1VNV2YsaUJOWGU7VU1ZZixtQk5aZSxFTWFoQjtRQS9CVDtVQW1DWSxlQUFlO1VBQ2YsY05sQmE7VU1tQmIsaUJObkJhLEVNb0JkO1FBdENYO1VBMENjLGlCQUFpQjtVQUNqQixpQk56QlcsRU0wQlo7O0FDNUNiO0V4QmdJRSxZRDNGMkQ7RUM0RjNELFlBQVk7RUFDWixvQkFBb0I7RUFDcEIsa0JBQWtCO0VBQ2xCLGdCQUNxQjtFQURyQixpQkFFOEI7RVN0RjlCLGlCQUFpQjtFQUNqQixtQkFBbUI7RWU1Q25CLFlBQVk7RUFDWix1QkFBdUI7RUFDdkIsNEJBQTRCO0VBQzVCLDZCQUE2QjtFQUM3QixrRVpXMEI7VVlYMUIsMERaVzBCLEVZTjNCO0VBZEQ7SWZjSSxZQUFZO0lBQ1osWUFBWTtJQUNaLGVBQWUsRUFDaEI7RWVqQkg7SWZjSSxZQUFZO0lBQ1osWUFBWTtJQUNaLGVBQWUsRUFDaEI7RWVqQkg7SWZvREksWUFBWTtJQUNaLGVBQWU7SUFDZixVQUFVO0lBQ1YsbUJBQWUsRUFDaEI7RUNrZkM7SWMxaUJKO014QmdJRSxZRDNGMkQ7TUM0RjNELFlBQVk7TUFDWixvQkFBb0I7TUFDcEIsWUFBa0I7TUFDbEIsZ0JBQ3FCO01BRHJCLGlCQUU4QixFd0J4SC9CO01BZEQ7UWZjSSxZQUFZO1FBQ1osWUFBWTtRQUNaLGVBQWUsRUFDaEIsRUFBQTs7QWdCakJIO0VBQ0UsdUJSaUJ1QjtFUWhCdkIseUJSZ0J1QixFUXNGeEI7RUF4R0Q7SUFLSSw2Q3JCc0JxQixFcUJpQnRCO0lBNUNIO01BUU0sb0JSVW1CO01RVG5CLHVCUlNtQixFUUNwQjtNQW5CTDtRQVlRLHNCUk1pQjtRUUxqQiwrQ3JCY2lCLEVxQmJsQjtNQWRQO1FBaUJRLHVCUkNpQixFUUFsQjtJQWxCUDtNQXNCTSxpQkFBaUIsRUFDbEI7SUF2Qkw7TUFnQ1Usb0JBQW9CLEVBQ3JCO0VBakNUO0lBK0NJLG1CQUFtQixFQVNwQjtJQXhESDtNaEJjSSxZQUFZO01BQ1osWUFBWTtNQUNaLGVBQWUsRUFDaEI7SWdCakJIO01Bb0RRLGVBQWUsRUFDaEI7RUFyRFA7SUEyREksbUJBQW1CO0lBQ25CLFlSMUNxQjtJUTJDckIsV1IzQ3FCO0lRNENyQixlQUFlO0lBQ2YsYUFBYTtJQUNiLGlCckIxQ21CO0lxQjJDbkIsbUJSL0NxQjtJUWdEckIsOENqQnhDbUM7SWlCeUNuQyxtQkFBbUI7SUFDbkIsY0FBYztJQUVkLGdDQUF3QjtZQUF4Qix3QkFBd0I7SUFDeEIsNkJBQXFCO1lBQXJCLHFCQUFxQixFQWtCdEI7SUF6Rkg7TUEwRU0sZUFBZTtNQUNmLGVBQWU7TUFDZixpQkFBaUIsRUFZbEI7TUF4Rkw7UUFnRlEsZUFBZTtRQUNmLG1CQUFtQjtRQUNuQixZQUFZO1FBQ1osZVJqRWlCO1FRa0VqQixnQlJsRWlCO1FRbUVqQixZQUFZO1FSQWxCLFNBQVM7UUFDVCxVQUFVO1FBR1IsK0JRSGtDO1FSSWxDLG9DQUFvQztRQUNwQyxxQ0FBcUMsRVFKbEM7RWZtZEg7SWUxaUJKO01BNEZJLHVCQUF1QixFQVkxQjtNQXhHRDs7UUFnR00sYUFBYSxFQUNkO01BakdMO1FBb0dNLHFCQUFvQjtRQUNwQixnRHJCMUVtQixFcUIyRXBCLEVBQUE7O0FBSUw7RXpCc0JFLFlEM0YyRDtFQzRGM0QsWUFBWTtFQUNaLG9CQUFvQjtFQUNwQixXQUFrQjtFQUNsQixnQkFDcUI7RUFEckIsaUJBRThCO0V5QjFCOUIsbUJBQW1CO0VBQ25CLG1CQUFtQixFQW1CcEI7RUF0QkQ7SWhCNUZJLFlBQVk7SUFDWixZQUFZO0lBQ1osZUFBZSxFQUNoQjtFZ0J5Rkg7SUFNSSxjQUFjO0lBQ2QsWUFBWTtJQUNaLG1CQUFtQjtJQUNuQiwrQkFBVTtJQUFWLHVCQUFVO0lBQ1YsY0FBYztJQUNkLFlBQVk7SUFDWixhQUFhO0lBQ2Isc0VBQXFFO0lBRXJFLGdDQUF3QjtZQUF4Qix3QkFBd0IsRUFDekI7RWZnYkM7SWVoY0o7TXpCc0JFLFlEM0YyRDtNQzRGM0QsWUFBWTtNQUNaLG9CQUFvQjtNQUNwQixZQUFrQjtNQUNsQixnQkFDcUI7TUFEckIsaUJBRThCO015QlI1QixtQkFBbUIsRUFFdEI7TUF0QkQ7UWhCNUZJLFlBQVk7UUFDWixZQUFZO1FBQ1osZUFBZSxFQUNoQixFQUFBOztBZ0JpSEg7RUFDRSxtQkFBbUI7RUFDbkIsWUFBWTtFQUNaLG1CUm5IdUI7RVFvSHZCLHVCQUF1QjtFQUN2QixnQ0FBZ0I7VUFBaEIsd0JBQWdCO0VBQ2hCLHFFYjdHMEI7VWE2RzFCLDZEYjdHMEI7RWE4RzFCLG1CQUFtQixFQU9wQjtFQWREO0lBVUksNkJBQWlCO1lBQWpCLHFCQUFpQjtJQUNqQiw4Q2pCbkhtQztJaUJvSG5DLG9DQUFxQjtRQUFyQixnQ0FBcUI7WUFBckIsNEJBQXFCLEVBQ3RCOztBQUdIO0V6QmxCRSxZRDNGMkQ7RUM0RjNELFlBQVk7RUFDWixvQkFBb0I7RUFDcEIsV0FBa0I7RUFDbEIsZ0JBQ3FCO0VBRHJCLGlCQUU4QjtFeUJjOUIsa0JSbEl1QixFUTRKeEI7RUE1QkQ7SWhCcElJLFlBQVk7SUFDWixZQUFZO0lBQ1osZUFBZSxFQUNoQjtFZ0JpSUg7SUFLSSxzQkFBc0I7SUFDdEIsVUFBVTtJQUNWLGVyQjFJc0I7SXFCMkl0QixtQlJ4SXFCO0lReUlyQixpQnBCL0lXLEVvQmdKWjtFQVZIO0lBYUksd0JSN0lxQixFUThJdEI7RWYwWUM7SWV4Wko7TXpCbEJFLFlEM0YyRDtNQzRGM0QsWUFBWTtNQUNaLG9CQUFvQjtNQUNwQixZQUFrQjtNQUNsQixnQkFDcUI7TUFEckIsaUJBRThCO015QjhCNUIsbUJBQW1CLEVBVXRCO01BNUJEO1FoQnBJSSxZQUFZO1FBQ1osWUFBWTtRQUNaLGVBQWUsRUFDaEI7TWdCaUlIO1FBcUJNLG1CQUFtQixFQUNwQjtNQXRCTDtRQXlCTSxpQkFBaUIsRUFDbEIsRUFBQTs7QUFJTDtFQUNFLHVCUi9KdUI7RVFnS3ZCLDJCUmhLdUI7RVFpS3ZCLDBCckIxSndCO0VxQjJKeEIsd0JSbEt1QjtFUW1LdkIsZ0RBQXdDO1VBQXhDLHdDQUF3QyxFQVd6QztFQWhCRDtJQVFJLGVSdEtxQjtJUXVLckIsZ0JSdktxQjtJUXdLckIsV3JCcEttQixFcUJxS3BCO0VBWEg7SUFjSSwwQnJCL0tzQixFcUJnTHZCOztBQUdIO0VBQ0Usc0NBQXNDO0VBQ3RDLGVyQjNLd0I7RXFCNEt4QixtQlJuTHVCO0VRb0x2QixpQnBCeExhO0VvQnlMYiwwQkFBMEIsRUFDM0I7O0FBRUQ7RUFDRSxVQUFVO0VBQ1Ysb0JSMUx1QixFUTJMeEI7O0FDN01EO0VBQ0UsZUFBZTtFQUNmLG9CQUFvQjtFQUNwQixZQUFZLEVBT2I7RWhCZ2lCRztJZ0IxaUJKO01BT00sbUJBQW1CLEVBQ3BCLEVBQUE7O0FBSUw7RUFDRSxvQkFBb0I7RUFDcEIsb0JBQW9CLEVBQ3JCOztBQ2ZEO0VBRUUsWUFBWTtFQUNaLDBCdkJvQndCO0V1Qm5CeEIsNEJBQTRCLEVBK043QjtFQW5PRDtJbEJjSSxZQUFZO0lBQ1osWUFBWTtJQUNaLGVBQWUsRUFDaEI7RWtCakJIO0kzQmdJRSxZRDNGMkQ7SUM0RjNELFlBQVk7SUFDWixvQkFBb0I7SUFDcEIsV0FBa0I7SUFDbEIsZ0JBQ3FCO0lBRHJCLGlCQUU4QjtJMkI5SDVCLG9CVlVxQixFVXNEdEI7SUF4RUg7TWxCY0ksWUFBWTtNQUNaLFlBQVk7TUFDWixlQUFlLEVBQ2hCO0lrQmpCSDtNQVdNLFlBQVk7TUFDWixtQkFBbUI7TUFDbkIsY0FBYztNQUNkLFFBQVE7TUFDUixZQUFZO01BQ1osYUFBYTtNQUNiLDRDQUFxQjtNQUNyQiw2QkFBNkI7TUFDN0Isc0NBQXNDO01BQ3RDLFdBQVc7TUFDWCwrQkFBaUI7VUFBakIsMkJBQWlCO2NBQWpCLHVCQUFpQjtNQUNqQixxRWZLc0I7Y2VMdEIsNkRmS3NCLEVlSnZCO0lBdkJMO01BMEJNLGVBQWU7TUFDZixvQ0FBcUI7VUFBckIsZ0NBQXFCO2NBQXJCLDRCQUFxQjtNQUNyQix5QkFBeUI7TUFDekIsNkJBQTZCO01BQzdCLHFFZkhzQjtjZUd0Qiw2RGZIc0I7TWVJdEIsbUJBQW1CO01BQ25CLFdBQVcsRUFFWjtJQWxDTDtNQXNDUSxpQ0FBcUI7VUFBckIsNkJBQXFCO2NBQXJCLHlCQUFxQjtNQUNyQixXQUFXLEVBQ1o7SUF4Q1A7TUEwQ1EsV0FBVztNQUNYLDZCQUFpQjtVQUFqQix5QkFBaUI7Y0FBakIscUJBQWlCLEVBQ2xCO0lqQjhmSDtNaUIxaUJKO1EzQmtMRSxtQkFBbUI7UUFDbkIsWUFBZ0I7UTJCbElaLFVBQVUsRUF1QmI7UUF4RUg7VUFvRFEsbUJWbENpQixFVW1DbEIsRUFBQTtJakJxZkg7TWlCMWlCSjtRM0IwTEUsaUJBQWlCO1FBQ2pCLFFBQVE7UUFvRVIsZUFBZTtRQUNmLFlBQVk7UUFDWixZQUFZO1FBQ1osWUFBWTtRQUNaLGtCQUNjO1FBRGQsbUJBRWM7UTJCek1WLFlBQVk7UUFDWixtQkFBbUIsRUFXdEI7UUF4RUg7VTNCeVFJLGtCQUE2QixFQUM5QjtRMkIxUUg7VTNCNlFJLG1CQUFzQyxFQUN2QztRMkI5UUg7VUFnRVEsWUFBWTtVbEJoQmxCLGlCQUFpQjtVQUNqQixtQkFBbUI7VWtCaUJiLE9BQU87VUFDUCxlQUFlO1VBQ2Ysc0NBQXNDO1VBQ3RDLHdDQUF3QyxFQUN6QztVQXRFUDtZbEJvREksWUFBWTtZQUNaLGVBQWU7WUFDZixVQUFVO1lBQ1Ysa0JBQWUsRUFDaEIsRUFBQTtFa0J4REg7STNCZ0lFLFlEM0YyRDtJQzRGM0QsWUFBWTtJQUNaLG9CQUFvQjtJQUNwQixXQUFrQjtJQUNsQixnQkFDcUI7SUFEckIsaUJBRThCLEUyQmtCN0I7SUF4Skg7TWxCY0ksWUFBWTtNQUNaLFlBQVk7TUFDWixlQUFlLEVBQ2hCO0lrQmpCSDtNQThFTSw4QkFBOEI7TUFDOUIsb0JBQW9CO01BQ3BCLGtCVjlEbUI7TVUrRG5CLGFBQWE7TUFDYix3QkFBdUI7TUFDdkIseUJWakVtQixFVWtFcEI7SUFwRkw7TUF1Rk0scUJWckVtQjtNVXNFbkIsdUJWdEVtQjtNVXVFbkIsaUJWdkVtQjtNVXdFbkIscUJWeEVtQjtNVXlFbkIsd0JWekVtQjtNVTBFbkIsZXZCeEVvQixFdUJ5RXJCO0lBN0ZMO01BZ0dNLGtCQUFrQjtNQUNsQixvQlYvRW1CO01VZ0ZuQix3QlZoRm1CO01VaUZuQixlQUFhLEVBQ2Q7SUFwR0w7TTNCNkJFLFlEUTJEO01DUDNELFlBQVk7TUFDWixvQkFBb0I7TUFDcEIsWUFBVTtNQUNWLGdCQUNxQjtNQURyQixpQkFFOEI7TTJCc0UxQixVQUFVO01BQ1YsV0FBVztNQUNYLHVCVnpGbUI7TVUwRm5CLHdCVjFGbUIsRVU2R3BCO01BL0hMO1FsQmNJLFlBQVk7UUFDWixZQUFZO1FBQ1osZUFBZSxFQUNoQjtNa0JqQkg7UTNCMERNLGlCQUE2RCxFQUM5RDtNMkIzREw7UUErR1EsY0FBUztRQUNULHFCVjlGaUI7UVUrRmpCLG1CQUFtQjtRQUNuQixldkJ4R2tCO1F1QnlHbEIsWUFBWTtRQUNaLFVBQVMsRUFDVjtNQXJIUDtRQXdIUSx5QlZ0R2lCO1FVdUdqQixxQlZ2R2lCO1FVd0dqQixtQkFBbUI7UUFDbkIscUJWekdpQjtRVTBHakIsdUJWMUdpQjtRakJXdkIsWURRMkQ7UUNQM0QsWUFBWTtRQUNaLG9CQUFvQjtRQUNwQixXQUFVO1FBQ1YsZ0JBQ3FCO1FBRHJCLGlCQUU4QixFMkIyRnpCO1FBOUhQO1VsQmNJLFlBQVk7VUFDWixZQUFZO1VBQ1osZUFBZSxFQUNoQjtRa0JqQkg7VTNCa0RNLGlCQUE2RDtVQUM3RCxhRDhEVyxFQzdEWjtRMkJwREw7VTNCc0RNLFlBQVksRUFDYjtJVW1mRDtNaUIxaUJKO1EzQmtMRSxtQkFBbUI7UUFDbkIsYUFBZ0I7UTJCaERaLFdBQVcsRUFxQmQsRUFBQTtJakJrWkM7TWlCMWlCSjtRQXVJTSxjQUFjO1EzQm1EbEIsaUJBQWlCO1FBQ2pCLFFBQVE7UUFvRVIsZUFBZTtRQUNmLFlBQVk7UUFDWixZQUFZO1FBQ1osWUFBWTtRQUNaLGtCQUNjO1FBRGQsbUJBRWMsRTJCN0diO1FBeEpIO1UzQnlRSSxrQkFBNkIsRUFDOUI7UTJCMVFIO1UzQjZRSSxtQkFBc0MsRUFDdkM7UTJCOVFIO1VBNElRLFdBQVc7VUFDWCxnQkFBZ0IsRUFDakI7UUE5SVA7VUFpSlEsd0JWL0hpQixFVW9JbEI7VUF0SlA7WTNCNkJFLFlEUTJEO1lDUDNELFlBQVk7WUFDWixvQkFBb0I7WUFDcEIsWUFBVTtZQUNWLGdCQUNxQjtZQURyQixpQkFFOEIsRTJCa0h2QjtZQXJKVDtjbEJjSSxZQUFZO2NBQ1osWUFBWTtjQUNaLGVBQWUsRUFDaEI7WWtCakJIO2MzQjBETSxpQkFBNkQsRUFDOUQsRUFBQTtFMkIzREw7STNCNkJFLFlEUTJEO0lDUDNELFlBQVk7SUFDWixvQkFBb0I7SUFDcEIsWUFBVTtJQUNWLGdCQUNxQjtJQURyQixpQkFFOEI7STJCeUg1Qix1QlYxSXFCLEVVdU10QjtJQXpOSDtNbEJjSSxZQUFZO01BQ1osWUFBWTtNQUNaLGVBQWUsRUFDaEI7SWtCakJIO00zQjBETSxpQkFBNkQsRUFDOUQ7STJCM0RMO01BK0pNLG1CQUFtQixFQXdDcEI7TUF2TUw7UUFrS1EsbUJBQW1CO1FBQ25CLFlBQVk7UUFDWixPQUFPO1FBQ1AsUUFBUTtRQUNSLFlBQVk7UUFDWixXQUFXO1FBQ1gsb0JBQW9CO1FBQ3BCLHdDQUF3QztRQUN4Qyx5RWZ0Sm9CO2dCZXNKcEIsaUVmdEpvQjtRZXVKcEIscUJBQXFCLEVBQ3RCO01BNUtQO1FBZ0xVLG9DdkJ0S2dCLEV1QnVLakI7TUFqTFQ7UUFxTFEsWUFBWSxFQUtiO1FBMUxQO1VBd0xVLGFBQWEsRUFDZDtNQXpMVDtRQTZMUSxlQUFlO1FBQ2YsWUFBWTtRQUNaLGFBQWE7UUFDYix1QkFBdUI7UUFDdkIsZ0JBQWdCLEVBS2pCO1FBdE1QO1VBb01VLGVBQWUsRUFDaEI7SWpCcVdMO01pQjFpQko7UTNCNkJFLFlEUTJEO1FDUDNELFlBQVk7UUFDWixvQkFBb0I7UUFDcEIsa0JBQVU7UUFDVixnQkFDcUI7UUFEckIsb0JBRThCLEUyQm9MekI7UUF2TlA7VWxCY0ksWUFBWTtVQUNaLFlBQVk7VUFDWixlQUFlLEVBQ2hCO1FrQmpCSDtVM0JrRE0saUJBQTZEO1VBQzdELGFEOERXLEVDN0RaO1EyQnBETDtVM0JzRE0sWUFBWSxFQUNiO1EyQnZETDtVQStNVSxjQUFjO1VBQ2Qsb0JBQW9CLEVBQ3JCO1FBak5UO1VBb05VLFlBQVk7VUFDWixhQUFhLEVBQ2QsRUFBQTtFakJvVkw7SWlCMWlCSjtNQTZOSSx5QkFBMEIsRUFNN0I7TUFuT0Q7UUFnT00seUJWOU1tQixFVStNcEIsRUFBQTs7QUNqT0w7RUFDRSxnQkFBZ0I7RUFDaEIsd0JBQXdCO0VBQ3hCLHFCQUFxQixFQUN0Qjs7QUFDRDs7RUFFRSxtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLDhCQUE4QjtFQUV0QixzQkFBc0IsRUFDL0I7O0FBQ0Q7RUFDRSxnQkFBZ0I7RUFDaEIseUJBQXlCO0VBQ3pCLHNCQUFzQixFQUN2Qjs7QUFDRDtFQUNFLGFBQWE7RUFDYixpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLE9BQU87RUFDUCxRQUFRO0VBQ1IsU0FBUztFQUNULFVBQVU7RUFDVixxQkFBcUI7RUFDckIsMkJBQTJCO0VBQzNCLFdBQVc7RUFDWCxrQ0FBdUM7RUFFL0IsMEJBQStCLEVBQ3hDOztBQUNEO0VBQ0UsNkJBQTZCO0VBQzdCLFdBQVcsRUFDWjs7QUFDRDs7RUFFRSxnQkFBZ0IsRUFDakI7O0FDeENEO0VBQ0UsZ0NyQklnQjtFcUJIaEIsMEJ6QnFCd0IsRXlCcU16QjtFQTVORDtJN0JnSUUsWUQzRjJEO0lDNEYzRCxZQUFZO0lBQ1osb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQixnQkFDcUI7SUFEckIsaUJBRThCLEU2QmhGN0I7SW5Cb2ZDO01tQjFpQko7UTdCa0xFLG1CQUFtQjtRQUNuQixrQkFBZ0IsRTZCN0hmLEVBQUE7SUF0REg7TXBCY0ksWUFBWTtNQUNaLFlBQVk7TUFDWixlQUFlLEVBQ2hCO0lvQmpCSDtNQVdNLG9CWk9tQjtNWU5uQixlQUFhLEVBQ2Q7SUFiTDtNQWdCTSxZQUFZO01BQ1osd0JaQ21CO01ZQW5CLGlCQUFpQixFQUNsQjtJQW5CTDtNQXNCTSxZQUFZLEVBQ2I7SUF2Qkw7TUEwQk0sWUFBWTtNQUNaLG9CQUFvQjtNQUNwQix1QlpWbUIsRVltQ3BCO01BckRMO1FBK0JRLG9CWmJpQjtRWWNqQixZQUFZO1FBS1osb0JabkJpQjtRWW9CakIsZ0NBQThCLEVBYy9CO1FBcERQO1VBbUNVLHdCQUF3QixFQUN6QjtRQXBDVDtVQXlDVSxtQkFBbUI7VUFDbkIsaUJBQWlCLEVBQ2xCO1FBM0NUO1VBOENVLGV6QnBDZ0IsRXlCeUNqQjtVQW5EVDtZQWlEWSxlQUFjLEVBQ2Y7RUFsRFg7STdCZ0lFLFlEM0YyRDtJQzRGM0QsWUFBWTtJQUNaLG9CQUFvQjtJQUNwQixrQkFBa0I7SUFDbEIsZ0JBQ3FCO0lBRHJCLGlCQUU4QjtJNkJ6RTVCLGFBQWE7SUFDYixxQlo1Q3FCLEVZb0Z0QjtJQXRHSDtNcEJjSSxZQUFZO01BQ1osWUFBWTtNQUNaLGVBQWUsRUFDaEI7SUN5aEJDO01tQjFpQko7UTdCa0xFLG1CQUFtQjtRQUNuQixrQkFBZ0IsRTZCN0VmLEVBQUE7SUF0R0g7TTdCNk5FLFlBQVk7TUFDWixpQjZCN0p5QjtNN0I4SnpCLFlBQVk7TUFDWixlQUFlO01BQ2YsbUJBQ2M7TUFEZCxrQkFFYztNQUVkLGdCQVZnRDtNQVVoRCxpQkFWZ0QsRTZCeko3QztNQWxFTDtRcEJjSSxZQUFZO1FBQ1osWUFBWTtRQUNaLGVBQWUsRUFDaEI7SW9CakJIO01Bc0VNLFlBQVk7TUFDWixnQ0FBOEI7TUFDOUIsa0JBQWtCO01BQ2xCLHFCQUFxQixFQTRCdEI7TUFyR0w7UUFnRlEsbUJBQW1CLEVBQ3BCO01BakZQO1FBb0ZRLGFBQWE7UUFDYixZQUFZO1FBQ1osbUJBQW1CO1FBQ25CLGtCQUFrQixFQUtuQjtRQTVGUDtVQTBGVSxjekJqRWdCLEV5QmtFakI7TUEzRlQ7UUFpR1ksY0FBWSxFQUNiO0VBbEdYO0lBeUdJLFlBQVksRUFDYjtFQTFHSDtJN0JnSUUsWUQzRjJEO0lDNEYzRCxZQUFZO0lBQ1osb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQixnQkFDcUI7SUFEckIsaUJBRThCO0k2QnJCNUIseUJaL0ZxQixFWTRKdEI7SW5CNFhDO01tQjFpQko7UTdCa0xFLG1CQUFtQjtRQUNuQixpQkFBZ0IsRTZCTGYsRUFBQTtJQTlLSDtNcEJjSSxZQUFZO01BQ1osWUFBWTtNQUNaLGVBQWUsRUFDaEI7SW9CakJIO01Bb0hNLG1CQUFtQixFQU9wQjtNQTNITDtRQXdIVSxlekI5R2dCLEV5QitHakI7SUF6SFQ7TUE4SE0sYUFBYTtNQUNiLHFCWjdHbUI7TVk4R25CLGVBQWE7TUFDYiw4QkFBOEI7TUFDOUIsMEJBQXdCO01BQ3hCLCtDWmpIbUI7TVlrSG5CLGdCWmxIbUI7TVltSG5CLGtDQUEwQjtjQUExQiwwQkFBMEIsRUFTM0I7TUE5SUw7UUF3SVEsc0JBQW9CLEVBQ3JCO01uQmlhSDtRbUIxaUJKO1VBNElRLFlBQVksRUFFZixFQUFBO0lBOUlMO01BaUpNLG1CQUFtQjtNQUNuQixTQUFTO01BQ1QsU0FBUztNQUNULDhCQUE4QjtNQUM5QixlQUFhO01BQ2Isa0JBQWtCLEVBdUJuQjtNQTdLTDtRQXlKUSxnQ3pCaElrQjtReUJpSWxCLGlDekJqSWtCO1F5QmtJbEIsZ0JaeklpQjtRWTBJakIsaUJaMUlpQjtRWTJJakIsZUFBZTtRQUNmLGtDQUFpQjtZQUFqQiw4QkFBaUI7Z0JBQWpCLDBCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLFNBQVMsRUFDVjtNQWxLUDtRQXNLVSxzQnpCNUpnQixFeUI2SmpCO01BdktUO1FBMktRLGNBQWMsRUFDZjtFbkI4WEg7SW1CMWlCSjtNQWlMSSxjWi9KcUIsRVkwTXhCO01BNU5EO1FBb0xNLG1CQUFtQjtRN0IyRXZCLGVBQWU7UUFDZixZQUFZO1FBQ1osWUFBWTtRQUNaLFlBQVk7UUFDWixrQkFDYztRQURkLG1CQUVjO1E2Qi9FVix3QlpwS21CLEVZcUxwQjtRQXZNTDtVN0J5UUksa0JBQTZCLEVBQzlCO1E2QjFRSDtVN0I2UUksbUJBQXNDLEVBQ3ZDO1E2QjlRSDtVQXlMUSx1Qlp2S2lCO1VqQjZPdkIsZUFBZTtVQUNmLFlBQVk7VUFDWixZQUFZO1VBQ1osWUFBWTtVQUNaLGtCQUNjO1VBRGQsbUJBRWM7VUF4Q2QsWUFBWTtVQUNaLGlCNkJuQzJCO1U3Qm9DM0IsWUFBWTtVQUNaLGVBQWU7VUFDZixtQkFDYztVQURkLGtCQUVjO1VBRWQsZ0JBVmdEO1VBVWhELGlCQVZnRCxFNkIvQjNDO1VBNUxQO1k3QnlRSSxrQkFBNkIsRUFDOUI7VTZCMVFIO1k3QjZRSSxtQkFBc0MsRUFDdkM7VTZCOVFIO1lwQmNJLFlBQVk7WUFDWixZQUFZO1lBQ1osZUFBZSxFQUNoQjtRb0JqQkg7VTdCK1BFLGVBQWU7VUFDZixZQUFZO1VBQ1osWUFBWTtVQUNaLFlBQVk7VUFDWixrQkFDYztVQURkLG1CQUVjO1U2QnJFUix1Qlo5S2lCLEVZK0tsQjtVQWpNUDtZN0J5UUksa0JBQTZCLEVBQzlCO1U2QjFRSDtZN0I2UUksbUJBQXNDLEVBQ3ZDO1E2QjlRSDtVN0IrUEUsZUFBZTtVQUNmLFlBQVk7VUFDWixZQUFZO1VBQ1osWUFBWTtVQUNaLGtCQUNjO1VBRGQsbUJBRWM7VTZCaEVSLHVCWm5MaUIsRVlvTGxCO1VBdE1QO1k3QnlRSSxrQkFBNkIsRUFDOUI7VTZCMVFIO1k3QjZRSSxtQkFBc0MsRUFDdkM7TTZCOVFIO1E3QitQRSxlQUFlO1FBQ2YsWUFBWTtRQUNaLFlBQVk7UUFDWixZQUFZO1FBQ1osa0JBQ2M7UUFEZCxtQkFFYztRNkIxRFYsd0JaekxtQixFWThMcEI7UUFoTkw7VTdCeVFJLGtCQUE2QixFQUM5QjtRNkIxUUg7VTdCNlFJLG1CQUFzQyxFQUN2QztRNkI5UUg7VUE4TVEsaUJaNUxpQixFWTZMbEI7TUEvTVA7UTdCK1BFLGVBQWU7UUFDZixZQUFZO1FBQ1osWUFBWTtRQUNaLFlBQVk7UUFDWixrQkFDYztRQURkLG1CQUVjO1E2QmpEVixZQUFZO1E3QlNoQixZQUFZO1FBQ1osaUI2QlR5QjtRN0JVekIsWUFBWTtRQUNaLGVBQWU7UUFDZixtQkFDYztRQURkLGtCQUVjO1FBRWQsZ0JBVmdEO1FBVWhELGlCQVZnRCxFNkJMN0M7UUF0Tkw7VTdCeVFJLGtCQUE2QixFQUM5QjtRNkIxUUg7VTdCNlFJLG1CQUFzQyxFQUN2QztRNkI5UUg7VXBCY0ksWUFBWTtVQUNaLFlBQVk7VUFDWixlQUFlLEVBQ2hCLEVBQUE7RUN5aEJDO0ltQjFpQko7TUEwTkkscUJaeE1xQixFWTBNeEIsRUFBQTs7QUM1TkQ7RUFDRSxlQUFlO0VBQ2YsWUFBWTtFQUNaLG1CQUFtQjtFQUNuQixPQUFPO0VBQ1Asa0J0QlNnQjtFc0JSaEIsV0FBVyxFQThhWjtFQXBiRDtJQVNJLGNBQWMsRUFDZjtFQVZIO0lBYUksY0FBYyxFQUNmO0VBZEg7SUFpQkksbUJiQ3FCO0lhQXJCLGlCYkFxQjtJYUNyQixZQUFZO0lBQ1osYWJGcUIsRWFHdEI7RUFyQkg7SUF3QkksYUFBYSxFQTREZDtJQXBGSDtNQTJCTSxZQUFZLEVBd0RiO01BbkZMO1FBOEJRLHVCYlppQjtRYWFqQix5QmJiaUIsRWFjbEI7TUFoQ1A7UUFtQ1EsWTFCYmUsRTBCNERoQjtRQWxGUDtVQXNDVSxlQUFlO1VBQ2YsMkJickJlO1Vhc0JmLGdCYnRCZSxFYXlEaEI7VXBCK2RMO1lvQjFpQko7Y0E4Q2MsbUJBQW1CO2NBQ25CLHNCQUFzQixFQVl2QjtjQTNEYjtnQkFrRGdCLFlBQVk7Z0JBQ1osbUJBQW1CO2dCQUNuQixVQUFVO2dCQUNWLFdBQVc7Z0JBQ1gsYUFBYTtnQkFDYixxQzFCakNPO2dCMEJrQ1AsWUFBWTtnQkFDWixtQ0FBMkI7d0JBQTNCLDJCQUEyQixFQUM1QjtZQTFEZjtjQStEZ0IsUUFBUTtjQUNSLFNBQVMsRUFDVjtZQWpFZjtjQXNFZ0IsUUFBUTtjQUNSLFNBQVMsRUFDVixFQUFBO1FBeEVmO1VBK0VVLDZCYjdEZTtVYThEZixlMUJ0RWdCLEUwQnVFakI7RXBCeWRMO0lvQjFpQko7TUF3Rk0seUJBQXlCLEVBQzFCLEVBQUE7RUF6Rkw7SUE4RkksV0FBVztJQUNYLHdDQUFnQztZQUFoQyxnQ0FBZ0M7SUFDaEMsaUIxQjFFbUI7STBCMkVuQixnQkFBZ0I7SUFDaEIsNkNBQW1DLEVBNkZwQztJQS9MSDtNQ2VJLG1CQUFtQjtNQUNuQixnQkFBbUI7TUFDbkIsbUJBQXNCO01BR2xCLDBCQUEwQjtNQUMxQix1QkFBdUI7TUFDdkIsc0JBQXNCO01BRTFCLGtCQUFrQixFRGlGYjtNQXpHVDtRQzJCUSxlQUFlO1FBQ2YsWUQ0RThCO1FDM0U5QixZRDJFNEM7UUMxRTVDLDBCM0JKaUI7UTJCVWIsaUVBQWlFO1FBSXJFLGlEQUFpRDtRQUc3QyxrQ0Q2RG9IO1FDekR4SCwwQkR5RHdILEVDeEQzSDtNRGhETDtRQ21EUSxtQkFBbUI7UUFDbkIsWUFBWSxFQUNmO01EckRMO1FDd0RRLFVBQWMsRUFDakI7TUR6REw7UUM0RFEsU0FBWSxFQUNmO0lEN0RMO01BOEdNLFlBQVk7TUFDWixnQmI3Rm1CO01hOEZuQixrQmI5Rm1CO01hK0ZuQixjQUFjO01BQ2Qsb0JBQW9CLEVBVXJCO01BNUhMO1FBcUhRLFlBQVk7UUFDWixrQmJwR2lCLEVhcUdsQjtNQXZIUDtRQTBIUSxjMUJoR2lCLEUwQmlHbEI7SUEzSFA7TUFrSVksZTFCeEdhO00wQnlHYiwwQmJqSGE7TWFrSGIscUJibEhhLEVhMkhkO01BN0lYO1FBdUljLGUxQjdIWSxFMEI4SGI7TUF4SWI7UUEySWMsY0FBYyxFQUNmO0lBNUliO01BZ0pZLHlCQUFpQjtjQUFqQixpQkFBaUIsRUFDbEI7SUFqSlg7TUFxSlksZTFCM0ljLEUwQitJZjtNQXpKWDtRQXVKYyxjQUFjLEVBQ2Y7SUF4SmI7TUE0Slksa0JiMUlhO01hMkliLGNBQWM7TUFDZCxpQkFBaUI7TUFDakIsZTFCckpjO00wQnNKZCxrQkFBa0I7TUFDbEIsMkJiL0lhO01hZ0piLDhCQUE4QjtNQUM5QiwwQjFCekpjO00wQjBKZCxtQmJsSmEsRWFrS2Q7TUFwTFg7UUF1S2MsWTFCakpTO1EwQmtKVCwwQjFCOUpZO1EwQitKWiwwQjFCL0pZO1EwQmdLWixtQmJ4SlcsRWF5Slo7TUEzS2I7UUE4S2MsWTFCeEpTO1EwQnlKVCwwQjFCcktZO1EwQnNLWiwwQjFCdEtZO1EwQnVLWixtQmIvSlc7UWFnS1gsY0FBYyxFQUNmO0lwQnVYVDtNb0IxaUJKO1FBNExRLHFCYjFLaUIsRWEyS2xCLEVBQUE7RUE3TFA7SUFrTUksaUNBQXFCO1FBQXJCLDZCQUFxQjtZQUFyQix5QkFBcUIsRUFDdEI7RXBCdVdDO0lvQjFpQko7TUF3TU0sY0FBYztNQUNkLFlBQVksRUF3SWI7TUFqVkw7UUE0TVEsZ0JBQWdCO1FBQ2hCLFlBQVk7UUFDWixXQUFXLEVBb0ZaO1FBbFNQO1VBaU5VLFcxQjNMYSxFMEI0TGQ7UUFsTlQ7VUFxTlUsdUJBQXVCO1VBQ3ZCLGlCQUFpQjtVQUNqQixlQUFlO1VBQ2YsWUFBWSxFQXlFYjtVQWpTVDtZQTROWSxtQkFBbUI7WUFDbkIsWUFBWTtZQUNaLG9CQUFvQixFQXlEckI7WUF2Ulg7Y0FpT2MsZUFBZTtjQUNmLFlBQVk7Y0FDWiwyQmJqTlc7Y2FrTlgsaUJBQWlCO2NBQ2pCLFdBQVcsRUFPWixFQUFBO1VBSEM7WUF6T2Q7Y0EwT2dCLDZCYnhOUyxFYTBOWixFQUFBO0VwQjhUVDtZb0IxaUJKO2N4QjhIRSw2REFBZTtjQUFmLHFEQUFlLEV3QmtISixFQUFBO1V4QmhIWDtZd0JoSUY7Y3hCaUlJLGdCd0I4R2tELEVBQ3pDLEVBQUE7VXhCNUdYO1l3QnBJRjtjeEJxSUksZ0J3QjBHd0UsRUFDL0QsRUFBQTtFcEIwVFQ7WW9CMWlCSjtjQW1QYyxlQUFlLEVBQ2hCO1lBcFBiO2NBdVBjLGVBQWU7Y0FDZiw2QkFBcUI7c0JBQXJCLHFCQUFxQixFQUN0QjtZQXpQYjtjQTRQYyxlQUFlO2NBQ2YsNkJBQXFCO3NCQUFyQixxQkFBcUIsRUFDdEI7WUE5UGI7Y0FpUWMsZUFBZTtjQUNmLDZCQUFxQjtzQkFBckIscUJBQXFCLEVBQ3RCO1lBblFiO2NBc1FjLGVBQWU7Y0FDZiw2QkFBcUI7c0JBQXJCLHFCQUFxQixFQUN0QjtZQXhRYjtjQTRRZ0IsWTFCdFBPLEUwQnVQUjtZQTdRZjtjQWlSYywwRkFBMkI7Y0FBM0Isd0ZBQTJCLEVBSzVCO2NBdFJiO2dCQW9SZ0IsYUFBYSxFQUNkO1VBclJmO1lBNFJnQixpQ0FBcUI7Z0JBQXJCLDZCQUFxQjtvQkFBckIseUJBQXFCO1lBQ3JCLFdBQVcsRUFDWjtNQTlSZjtRQXFTUSxnQkFBZ0I7UUFDaEIsVUFBVTtRQUNWLG9DQUFxQjtZQUFyQixnQ0FBcUI7Z0JBQXJCLDRCQUFxQjtRQUNyQixhQUFhO1FBQ2IsZUFBZTtRQUNmLGFBQWE7UUFDYixhQUFhO1FBQ2IsV0FBVyxFQW9DWjtRQWhWUDtVQStTVSxZQUFZO1VBQ1osZ0NBQStCO1VBQy9CLGtCQUFrQjtVQUNsQixxQkFBcUIsRUF3QnRCO1VBMVVUO1lBcVRZLG1CQUFtQixFQUNwQjtVQXRUWDtZQXlUWSxhQUFhO1lBQ2IsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixrQkFBa0IsRUFLbkI7WUFqVVg7Y0ErVGMsY0FBYSxFQUNkO1VBaFViO1lBc1VnQixXMUJoVE8sRTBCaVRSLEVBQUE7SUFNUDtNQTdVUjtRQThVVSxVQUFVLEVBRWIsRUFBQTtFcEIwTkg7SW9CMWlCSjtNQW9WTSw4QkFBZ0I7VUFBaEIsMEJBQWdCO2NBQWhCLHNCQUFnQjtNQUNoQixhQUFhO01BQ2IsZUFBZTtNQUNmLHVCYnJVbUIsRWF5WXBCO01BM1pMO1FBMFZRLFlBQVk7UUFDWixhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLG1CQUFtQixFQTZEcEI7UUExWlA7VUNlSSxtQkFBbUI7VUFDbkIsZ0JBQW1CO1VBQ25CLG1CQUFzQjtVQUdsQiwwQkFBMEI7VUFDMUIsdUJBQXVCO1VBQ3ZCLHNCQUFzQjtVQUUxQixrQkFBa0I7VUR5VVosVUFBVTtVQUNWLFdBQVc7VUFDWCxlQUFlLEVBdUJoQjtVQTFYVDtZQzJCUSxlQUFlO1lBQ2YsWURvVThCO1lDblU5QixZRG1VNEM7WUNsVTVDLHVCM0JSZTtZMkJjWCxpRUFBaUU7WUFJckUsaURBQWlEO1lBRzdDLGtDRHFUb0g7WUNqVHhILDBCRGlUd0gsRUNoVDNIO1VEaERMO1lDbURRLG1CQUFtQjtZQUNuQixZQUFZLEVBQ2Y7VURyREw7WUN3RFEsVUFBYyxFQUNqQjtVRHpETDtZQzREUSxTQUFZLEVBQ2Y7UUQ3REw7VUM4RlEsOEJBQThCLEVBQ2pDO1FEL0ZMO1VDa0dZLGlEQUFxRTtVQUVyRSw2Q0FBaUU7VUFHckUseUNBQTZELEVBQ2hFO1FEeEdMO1VDMkdZLG1EQUF3RTtVQUV4RSwrQ0FBb0U7VUFHeEUsMkNBQWdFLEVBQ25FO0lEakhMO01BOFpNLGFBQWE7TUFDYixVQUFVO01BQ1YsYUFBYTtNQUNiLFlBQVk7TUFDWixjYmhabUI7TWFpWm5CLGtCQUFrQjtNQUNsQixxQkFBcUIsRUFVdEI7TUE5YUw7UUF1YVEsd0JBQXdCO1FBQ3hCLGtCYnRaaUIsRWF1WmxCO01BemFQO1FBNGFRLFcxQnRaZSxFMEJ1WmhCO0lBN2FQO01BaWJNLGNBQWMsRUFDZixFQUFBOztBQUlMO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUVEO0VBQ0UsY0FBYztFQUNkLG9DQUE0QjtVQUE1Qiw0QkFBNEI7RUFDNUIsV0FBVztFQUNYLG1CQUFtQjtFQUNuQixPQUFPO0VBQ1AsUUFBUTtFQUNSLFlBQVk7RUFDWixjQUFjO0VBQ2QsaUJBQWlCO0VBQ2pCLHFDQUEyQjtFQUMzQixXQUFXLEVBT1o7RUFsQkQ7SUFjSSxlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLFdBQVcsRUFDWjs7QUFHSDtFQUNFLGtGQUEyQjtFQUEzQixnRkFBMkIsRUFtQzVCO0VBcENEO0lBS00sVzFCN2JpQixFMEI4YmxCO0VBTkw7SUFhVSxhQUFhLEVBQ2Q7O0FBd0JUO0VBQ0UsaUJBQWlCLEVBOEVsQjtFQS9FRDtJQUtJLDBCQUEwQixFQWlCM0I7SUF0Qkg7TUFVVSxlMUJwZmdCLEUwQnFmakI7SUFYVDtNQWNVLGNBQWMsRUFDZjtJQWZUO01BbUJRLGUxQjdma0IsRTBCOGZuQjtFQXBCUDtJQTBCTSxjMUJwZm1CLEUwQnFmcEI7RUEzQkw7SUFxQ1UsZTFCL2ZlLEUwQjJnQmhCO0lBakRUO01Bd0NZLG9DMUJsZ0JhLEUwQm1nQmQ7SUF6Q1g7TUE2Q2MsUUFBUTtNQUNSLFNBQVMsRUFDVjtFcEJPVDtJb0J0REo7TUNyZUksbUJBQW1CO01BQ25CLGdCQUFtQjtNQUNuQixtQkFBc0I7TUFHbEIsMEJBQTBCO01BQzFCLHVCQUF1QjtNQUN2QixzQkFBc0I7TUFFMUIsa0JBQWtCLEVEMmhCYjtNQS9EVDtRQ3pkUSxlQUFlO1FBQ2YsWURraEI4QjtRQ2poQjlCLFlEaWhCNEM7UUNoaEI1QywwQjNCSmlCO1EyQlViLGlFQUFpRTtRQUlyRSxpREFBaUQ7UUFHN0Msa0NEbWdCb0g7UUMvZnhILDBCRCtmd0gsRUM5ZjNIO01Eb2NMO1FDamNRLG1CQUFtQjtRQUNuQixZQUFZLEVBQ2Y7TUQrYkw7UUM1YlEsVUFBYyxFQUNqQjtNRDJiTDtRQ3hiUSxTQUFZLEVBQ2Y7SUR1Ykw7TUN0WlEsOEJBQThCLEVBQ2pDO0lEcVpMO01DbFpZLGlEQUFxRTtNQUVyRSw2Q0FBaUU7TUFHckUseUNBQTZELEVBQ2hFO0lENFlMO01DellZLG1EQUF3RTtNQUV4RSwrQ0FBb0U7TUFHeEUsMkNBQWdFLEVBQ25FLEVBQUE7O0FDakhMO0VBQ0UsWUFBWTtFQUNaLHNCZmdCdUI7RWVmdkIsc0JBQXNCO0ViQXRCLHVCQUF1QjtFQUN2Qiw2QkFBNkI7RUFDN0IsbUNBQW1DLEVhZ0VwQztFQXJFRDtJdkJjSSxZQUFZO0lBQ1osWUFBWTtJQUNaLGVBQWUsRUFDaEI7RUN5aEJDO0lzQjFpQko7TUFRSSx5QmZVcUIsRWVtRHhCLEVBQUE7RUFyRUQ7SUFZSSxpQmZNcUI7SWVMckIsZUFBZTtJQUNmLHVCZklxQjtJZUhyQixtQkFBbUIsRUFxRHBCO0l0QnNlQztNc0IxaUJKO1FBa0JNLFdBQVcsRUFrRGQsRUFBQTtJQXBFSDtNQXNCTSxZNUJBaUI7TTRCQ2pCLHdCZkxtQixFZU1wQjtJQXhCTDtNaENnSUUsWUQzRjJEO01DNEYzRCxZQUFZO01BQ1osb0JBQW9CO01BQ3BCLFdBQWtCO01BQ2xCLGdCQUNxQjtNQURyQixpQkFFOEI7TWdDMUcxQixrQmZWbUI7TWVXbkIsb0JmWG1CO01lWW5CLHdCQUF3QjtNQUN4QixxQ0FBNkI7Y0FBN0IsNkJBQTZCLEVBb0M5QjtNQW5FTDtRdkJjSSxZQUFZO1FBQ1osWUFBWTtRQUNaLGVBQWUsRUFDaEI7TUN5aEJDO1FzQjFpQko7VWhDZ0lFLFlEM0YyRDtVQzRGM0QsWUFBWTtVQUNaLG9CQUFvQjtVQUNwQixXQUFrQjtVQUNsQixnQkFDcUI7VUFEckIsaUJBRThCLEVnQ25FM0I7VUFuRUw7WXZCY0ksWUFBWTtZQUNaLFlBQVk7WUFDWixlQUFlLEVBQ2hCLEVBQUE7TXVCakJIO1FBc0NRLGdCZnBCaUI7UWVxQmpCLGlCZnJCaUIsRWUyQmxCO1FBN0NQO1VBMENVLGtDNUJwQmE7VTRCcUJiLGlDQUF5QjtrQkFBekIseUJBQXlCLEVBQzFCO01BNUNUO1FBZ0RRLFlBQVk7UUFDWix1QmYvQmlCO1FlZ0NqQixnQzVCNUJlO1E0QjZCZixvQmZqQ2lCO1Fla0NqQixzQkFBc0I7UUFDdEIsZ0NBQXdCO2dCQUF4Qix3QkFBd0IsRUFDekI7TUF0RFA7UUF5RFEsK0JBQXNCLEVBU3ZCO1FBbEVQO1VBNERVLGE1QnRDYSxFNEJ1Q2Q7UUE3RFQ7VUFnRVUsWTVCMUNhLEU0QjJDZDs7QUNqRVQ7RUFDRSxZQUFZO0VBQ1osYUFBYTtFQUNiLHlGQUEyQjtFQUEzQixpRkFBMkI7RUFDM0IsbUJBQW1CO0VBQ25CLG9DQUE0QjtVQUE1Qiw0QkFBNEIsRUE4QzdCO0VBbkREO0lBU0ksWUFBWTtJQUNaLGNBQWM7SUFDZCxlQUFlO0lBQ2YsbUJBQW1CO0lqQ2lOckIsWUFBWTtJQUNaLGlCaUNqTnVCO0lqQ2tOdkIsWUFBWTtJQUNaLGVBQWU7SUFDZixtQkFDYztJQURkLGtCQUVjO0lBRWQsZ0JBVmdEO0lBVWhELGlCQVZnRDtJaUM3TTlDLFNBQVM7SUFDVCxpQ0FBeUI7WUFBekIseUJBQXlCO0lBQ3pCLGNBQWMsRUEwQmY7SUExQ0g7TXhCY0ksWUFBWTtNQUNaLFlBQVk7TUFDWixlQUFlLEVBQ2hCO0l3QmpCSDtNQW1CTSxtQkFBbUI7TUFDbkIsYUFBYTtNQUNiLDhCQUE4QjtNNUI4QmxDLDZDQUE2QztNNEI1QnpDLG9CQUFvQjtNQUVwQiw4QkFBc0I7Y0FBdEIsc0JBQXNCLEVBQ3ZCO0lBMUJMO01BNkJNLG1CQUFtQjtNQUNuQixvQkFBb0I7TUFDcEIsZ0M3QlRpQjtNNkJXakIsNEJBQW9CO2NBQXBCLG9CQUFvQixFQUNyQjtJQWxDTDtNQXFDTSxtQkFBbUI7TUFDbkIsK0JBQVU7TUFBVix1QkFBVTtNQUVWLDhCQUFzQjtjQUF0QixzQkFBc0IsRUFDdkI7RXZCaWdCRDtJdUIxaUJKO01BNkNJLGFBQWEsRUFNaEI7TUFuREQ7UUFnRE0sU0FBUyxFQUNWLEVBQUE7O0FDakRMO0VBQ0UsWUFBWTtFQUNaLHVCakJnQnVCO0VFZnZCLHVCQUF1QjtFQUN2Qiw2QkFBNkI7RUFDN0IsbUNBQW1DLEVlWXBDO0VBakJEO0lBTUksK0JBQXNCO0lBQ3RCLHNCMUJGYyxFMEJXZjtJQWhCSDtNQVVNLFVBQVU7TUFDVixXQUFXO01BQ1gsc0JBQXNCO01BQ3RCLFk5QlNpQjtNOEJSakIsaUI3QkZTLEU2QkdWOztBQUlMO0VBQ0Usa0JqQkZ1QjtFaUJHdkIsV0FBVztFQUNYLG1CQUFtQjtFQUNuQixhQUFhLEVBcUhkO0VBekhEO0lBT0ksWUFBWTtJQUNaLG1CQUFtQjtJQUNuQixrQmpCVnFCLEVpQnNDdEI7SUFyQ0g7TUFZTSxZQUFZLEVBd0JiO01BcENMO1FBZVEsaUQ5QlplLEU4QmFoQjtNQWhCUDtRQW1CUSxlQUFlO1FBQ2YsNEJqQnJCaUIsRWlCb0NsQjtRQW5DUDtVQXVCVSxtQkFBbUI7VUFDbkIsaUJqQnpCZTtVaUIwQmYsa0JqQjFCZTtVaUIyQmYsNkI5Qm5DZ0I7VThCb0NoQiwrQkFBdUI7a0JBQXZCLHVCQUF1QixFQUN4QjtRQTVCVDtVQWdDWSw2QjlCekNjLEU4QjBDZjtFQWpDWDtJQXdDSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLGVqQjNDcUIsRWlCZ0h0QjtJQS9HSDtNQTZDTSxZQUFZO01BQ1osU0FBUztNQUNULGVBQWU7TUFDZixZQUFZO01BQ1osZUFBZTtNQUNmLHFDOUIvQ2lCO004QmdEakIsWUFBWTtNQUNaLG1CQUFtQjtNQUNuQixpRUFBb0M7Y0FBcEMseURBQW9DLEVBQ3JDO0lBdERMO01BeURNLFlBQVksRUFDYjtJQTFETDtNQTZETSxrQmpCOURtQjtNaUIrRG5CLDBCakIvRG1CO01pQmdFbkIscUJqQmhFbUI7TWlCaUVuQixnQzlCN0RpQjtNOEI4RGpCLHdCQUF3QjtNQUN4QixtQkFBbUI7TUFDbkIsa0JBQWtCO01BQ2xCLGlCQUFpQjtNQUNqQixrRDlCbEVpQixFOEJ1RmxCO01BMUZMO1FBd0VRLFk5QnJFZSxFOEJzRmhCO1FBekZQO1VBMkVVLGdDOUJ4RWEsRThCeUVkO1FBNUVUO1VBK0VVLGdDOUI1RWEsRThCNkVkO1FBaEZUO1VBbUZVLGdDOUJoRmEsRThCaUZkO1FBcEZUO1VBdUZVLGdDOUJwRmEsRThCcUZkO0lBeEZUO01BNkZNLGdDOUIxRmlCO004QjJGakIsZ0NBQXdCO2NBQXhCLHdCQUF3QixFQUN6QjtJQS9GTDtNQWtHTSxnQzlCL0ZpQjtNOEJnR2pCLHdCQUF3QixFQUN6QjtJQXBHTDtNQXVHTSxnQzlCcEdpQjtNOEJxR2pCLHdCQUF3QixFQUN6QjtJQXpHTDtNQTRHTSxnQzlCekdpQjtNOEIwR2pCLHdCQUF3QixFQUN6QjtFQTlHTDtJQWtISSxPQUFPO0lBQ1AsU0FBUztJQUNULGVqQnJIcUI7SWlCc0hyQixnQmpCdEhxQjtJaUJ1SHJCLG1CQUFtQjtJQUNuQiwrQjlCcEhtQixFOEJxSHBCOztBQUdIO0VBQ0UsWUFBWTtFQUNaLG9COUJ6SHdCO0U4QjBIeEIsbUJBQW1CLEVBRXBCO0VBTEQ7SXpCaElJLFlBQVk7SUFDWixZQUFZO0lBQ1osZUFBZSxFQUNoQjs7QXlCb0lIO0VBQ0Usa0JqQnBJdUI7RWlCcUl2QixZQUFZO0VBQ1osb0NBQW1DO0VBQ25DLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLDhDOUJqSXVCO0U4QmtJdkIsNkhBQXdGO1VBQXhGLDZHQUF3RixFQTBCekY7RUFsQ0Q7SUFXSSxnQmpCOUlxQjtJaUIrSXJCLGM5QnhJc0I7SThCeUl0QixpQmpCaEpxQjtJaUJpSnJCLG1CQUFtQjtJQUNuQixjakJsSnFCLEVpQm1KdEI7RUFoQkg7SUFtQkksZ0JBQWdCO0lBQ2hCLE9BQU8sRUFDUjtFQXJCSDtJQXdCSSxtQkFBbUI7SUFDbkIsa0JqQjVKcUI7SWlCNkpyQixRQUFRO0lBQ1IsVUFBVSxFQUNYO0VBNUJIO0lBK0JJLG9DQUFxQjtRQUFyQixnQ0FBcUI7WUFBckIsNEJBQXFCO0lBQ3JCLHlCakJuS3FCLEVpQm9LdEI7O0FBSUg7RUFDRSxZQUFZO0VBQ1osYUFBYTtFQUNiLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsT0FBTztFQUNQLFNBQVM7RUFDVCxlQUFlLEVBQ2hCOztBQUdEO0VBQ0Usc0JqQnBMdUI7RWlCcUx2Qix1QmpCckx1QjtFaUJzTHZCLFdBQVc7RUFDWCw0QzlCOUt1QixFOEJ5TXhCO0VBL0JEO0lBT0kscUJBQW1CO0lBQ25CLHVCakIzTHFCO0lpQjRMckIsaUJBQWlCO0lBQ2pCLG1CQUFtQixFQW9CcEI7SUE5Qkg7TUFhTSxlQUFlO01BQ2YsZTlCL0xvQjtNOEJnTXBCLG1CQUFtQjtNQUNuQixlakJuTW1CO01pQm9NbkIsaUJqQnBNbUIsRWlCcU1wQjtJQWxCTDtNQXFCTSxtQkFBbUI7TUFDbkIscUJqQnpNbUI7TWlCME1uQixlOUJ4TW9CO004QnlNcEIsZ0NBQXdCO2NBQXhCLHdCQUF3QixFQUt6QjtNQTdCTDtRQTJCUSxlOUJ0TmtCLEU4QnVObkI7O0FBS1A7RUFFSSw2QjlCN01xQjtFOEI4TXJCLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsd0JqQnpOcUI7RWlCME5yQixvQkFBb0I7RUFDcEIsbURBQTJDO1VBQTNDLDJDQUEyQyxFQXVDNUM7RUE5Q0g7SUFXTSxZQUFZO0lBQ1osaUI5QjVOaUI7SThCNk5qQixlQUFlO0lBQ2YsbUJBQW1CLEVBQ3BCO0VBZkw7SUFrQk0sY2pCdE9tQjtJaUJ1T25CLGlCakJ2T21CO0lpQndPbkIsZWpCeE9tQjtJaUJ5T25CLGVqQnpPbUIsRWlCME9wQjtFQXRCTDtJQXlCTSxnQmpCN09tQjtJaUI4T25CLGVqQjlPbUI7SWlCK09uQixhakIvT21CO0lpQmdQbkIsZ0JqQmhQbUIsRWlCaVBwQjtFQTdCTDtJQWtDUSx5QkFBeUIsRUFDMUI7RUFuQ1A7SUF1Q00sMkJBQTJCO0lBQzNCLGFBQWEsRUFLZDtJQTdDTDtNQTJDUSxjQUFjLEVBQ2Y7O0FBNUNQO0VBaURJLHFCakJyUXFCO0VpQnNRckIsbUJBQW1CO0VBQ25CLG9CQUFvQjtFQUNwQixXQUFXO0VBQ1gsbUJBQW1CLEVBb0NwQjtFQXpGSDtJQXdETSxhQUFhO0lBQ2IsMkJBQTJCLEVBQzVCO0VBMURMO0lBNkRNLFlBQVk7SUFDWixnQmpCbFJtQjtJaUJtUm5CLGlCakJuUm1CO0lpQm9SbkIsb0I5QnRSb0I7SThCdVJwQixtQkFBbUI7SUFDbkIsc0JBQXNCO0lBQ3RCLG1CQUFtQjtJQUNuQixlakJ4Um1CO0lpQnlSbkIsZ0JqQnpSbUIsRWlCMFJwQjtFQXRFTDtJQTJFUSxtQkFBbUI7SUFDbkIsaUJqQmhTaUIsRWlCMlNsQjtJQXZGUDtNQStFVSxtQkFBbUI7TUFDbkIsbUJBQW1CO01BQ25CLDRCQUE0QixFQUs3QjtNQXRGVDtRQW9GWSxnQkFBZ0IsRUFDakI7O0FBT1g7RUFDRSxpQmpCalR1QixFaUJ1VHhCO0VBUEQ7SUFJSSxrQkFBa0I7SUFDbEIsd0JqQnJUcUIsRWlCc1R0Qjs7QUFHSDtFQUNFLDBCQUEwQixFQVkzQjtFQWJEO0lBSUksOEJBQThCO0lBQzlCLHVDQUF1QztJQUN2QyxpQ0FBa0M7SUFDbEMsbUJBQW1CLEVBS3BCO0lBWkg7TUFVTSwyQkFBMkIsRUFDNUI7O0FBSUw7O0VBRUUsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQixZQUFZO0VBQ1osY0FBYyxFQW9DZjtFQXpDRDs7SUFRSSw0QkFBNEI7SUFDNUIsd0JBQXdCLEVBdUJ6QjtJQWhDSDs7TUFZTSxjQUFjLEVBQ2Y7SUFiTDs7TUFnQk0saUNBQWlDO01BQ2pDLHVCakJ6Vm1CLEVpQitWcEI7TUF2Qkw7O1FBb0JRLGlDQUFpQztRQUNqQyxnQmpCN1ZpQixFaUI4VmxCO0lBdEJQOztNQTBCTSxpQmpCbFdtQixFaUJtV3BCO0lBM0JMOztNQThCTSxnQmpCdFdtQixFaUJ1V3BCO0VBL0JMOztJQW1DSSxnQkFBZ0IsRUFDakI7RUFwQ0g7O0lBdUNJLGtCQUFrQixFQUNuQjs7QUFHSDtFQUNFLHVDQUFXO0VBQVgsK0JBQVc7RUFDWCxpQkFBaUI7RUFDakIsYUFBYSxFQW1CZDtFQXRCRDtJQU1JLHdCakJ6WHFCLEVpQmtZdEI7SUFmSDtNQVNNLDBCQUErQixFQUNoQztJQVZMO01BYU0sc0JqQmhZbUIsRWlCaVlwQjtFQWRMO0lBbUJNLDBCQUF5QixFQUMxQjs7QUFJTDtFQUNFLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsNENqQjlZdUIsRWlCNGJ4QjtFQWpERDtJekIvWUksWUFBWTtJQUNaLFlBQVk7SUFDWixlQUFlLEVBQ2hCO0V5QjRZSDs7O0lBU0ksZTlCM1lxQjtJOEI0WXJCLHNCQUFzQixFQUN2QjtFQVhIO0lBY0ksaUI3Qi9aVyxFNkJnYVo7RUFmSDtJQWtCSSxnQmpCN1pxQjtJaUI4WnJCLGlCN0JsYVcsRTZCbWFaO0VBcEJIO0lBdUJJLG9CakJsYXFCO0lpQm1hckIsaUI3QnZhVyxFNkJ3YVo7RUF6Qkg7SUE0QkksbUJBQW1CO0lBQ25CLGlCOUJwYW1CLEU4QnFhcEI7RUE5Qkg7SUFpQ0ksZTlCcGJzQjtJOEJxYnRCLGdDQUF3QjtZQUF4Qix3QkFBd0IsRUFLekI7SUF2Q0g7TUFxQ00sZTlCaFkwQixFOEJpWTNCO0VBdENMO0lBMENJLGU5QjdhcUI7SThCOGFyQix1QmpCdGJxQixFaUJ1YnRCO0VBNUNIO0lBK0NJLHFCakIxYnFCLEVpQjJidEI7O0FBR0g7RUFDRSxlQUFlO0VBQ2YsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixxQmpCbGN1QjtFaUJtY3ZCLHdDOUIxYnVCO0U4QjJidkIsbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQixzQzlCbGNxQjtFOEJtY3JCLHlCakJ2Y3VCO0VpQndjdkIsbURBQTJDO1VBQTNDLDJDQUEyQyxFQWlINUM7RXhCakNHO0l3QjFGSjtNQWNNLGdCQUFnQixFQUNqQixFQUFBO0V4QjJFRDtJd0IxRko7TUFtQkksYUFBYSxFQXdHaEI7TUEzSEQ7UUFzQk0sZ0JBQWdCLEVBQ2pCLEVBQUE7RUF2Qkw7SUE0QkksWUFBWTtJQUNaLG1CQUFtQjtJQUNuQixPQUFPO0lBQ1AsUUFBUTtJQUNSLFlBQVk7SUFDWixhQUFhO0lBQ2IseUJqQmhlcUI7SWlCaWVyQixXQUFXO0lBQ1gsK0NBQWdDO0lBQ2hDLFdBQVc7SUFDWCw2Q0FBcUM7WUFBckMscUNBQXFDLEVBQ3RDO0VBdkNIO0lBMENJLGFBQWEsRUFNZDtJQWhESDtNekJsY0ksWUFBWTtNQUNaLFlBQVk7TUFDWixlQUFlLEVBQ2hCO0l5QitiSDtNQThDTSxjQUFjLEVBQ2Y7RUEvQ0w7SUFtREksb0I5QjNlc0I7SThCNGV0QixhQUFhLEVBK0JkO0lBbkZIO01BdURNLG9CakJyZm1CO01pQnNmbkIsV0FBVztNQUNYLG1CQUFtQjtNQUNuQiw0QmpCeGZtQjtNaUJ5Zm5CLGVBQWUsRUFDaEI7SUE1REw7TUErRE0saUJBQWlCO01BQ2pCLGU5QnRnQm9CO004QnVnQnBCLGtCQUFrQjtNQUNsQixlQUFlO01BQ2YsZUFBZTtNQUNmLG1CQUFtQjtNQUNuQixxQmpCbmdCbUI7TWlCb2dCbkIsOEJBQThCO01BQzlCLDBCOUI3Z0JvQjtNOEI4Z0JwQixtQmpCdGdCbUI7TWlCdWdCbkIsZWpCdmdCbUI7TWlCd2dCbkIsV0FBVztNQUNYLFdBQVc7TUFDWCxrREFBMEM7Y0FBMUMsMENBQTBDLEVBTTNDO01BbEZMO1FBK0VRLG9COUJyaEJrQjtROEJzaEJsQixZOUIxZ0JlLEU4QjJnQmhCO0VBakZQO0lBc0ZJLDBCOUI1aEJzQjtJOEI2aEJ0QixpQjlCamhCbUIsRThCZ2pCcEI7SUF0SEg7TUEwRk0sYUFBYTtNQUNiLG9COUJuaEJvQixFOEJvaEJyQjtJQTVGTDtNQStGTSxXQUFXLEVBQ1o7SUFoR0w7TUFtR00sb0NBQXFCO1VBQXJCLGdDQUFxQjtjQUFyQiw0QkFBcUIsRUFLdEI7TUF4R0w7UUFzR1EsV0FBVyxFQUNaO0lBdkdQO01BMkdNLFdBQVc7TUFDWCxXQUFXLEVBQ1o7SUE3R0w7TUFpSFEsV0FBVztNQUNYLGlDQUFxQjtVQUFyQiw2QkFBcUI7Y0FBckIseUJBQXFCO01BQ3JCLGdDQUFxQjtjQUFyQix3QkFBcUIsRUFDdEI7SUFwSFA7TUFpSFEsV0FBVztNQUNYLGlDQUFxQjtVQUFyQiw2QkFBcUI7Y0FBckIseUJBQXFCO01BQ3JCLGdDQUFxQjtjQUFyQix3QkFBcUIsRUFDdEI7SUFwSFA7TUFpSFEsV0FBVztNQUNYLGlDQUFxQjtVQUFyQiw2QkFBcUI7Y0FBckIseUJBQXFCO01BQ3JCLGdDQUFxQjtjQUFyQix3QkFBcUIsRUFDdEI7SUFwSFA7TUFpSFEsV0FBVztNQUNYLGlDQUFxQjtVQUFyQiw2QkFBcUI7Y0FBckIseUJBQXFCO01BQ3JCLGdDQUFxQjtjQUFyQix3QkFBcUIsRUFDdEI7SUFwSFA7TUFpSFEsV0FBVztNQUNYLGlDQUFxQjtVQUFyQiw2QkFBcUI7Y0FBckIseUJBQXFCO01BQ3JCLGdDQUFxQjtjQUFyQix3QkFBcUIsRUFDdEI7SUFwSFA7TUFpSFEsV0FBVztNQUNYLGlDQUFxQjtVQUFyQiw2QkFBcUI7Y0FBckIseUJBQXFCO01BQ3JCLGdDQUFxQjtjQUFyQix3QkFBcUIsRUFDdEI7SUFwSFA7TUFpSFEsV0FBVztNQUNYLGlDQUFxQjtVQUFyQiw2QkFBcUI7Y0FBckIseUJBQXFCO01BQ3JCLGdDQUFxQjtjQUFyQix3QkFBcUIsRUFDdEI7RUFwSFA7SUF3SDRCLGFBQWEsRUFBSTtFQXhIN0M7SUF5SDRCLGFBQWEsRUFBSTtFQXpIN0M7SUEwSDRCLGFBQWEsRUFBSTs7QUFJN0M7RUFDRSxZQUFZO0VBQ1osa0JqQjlqQnVCO0VpQitqQnZCLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsV0FBVztFQUNYLHdDQUFxQjtNQUFyQixvQ0FBcUI7VUFBckIsZ0NBQXFCO0VBQ3JCLG9GdEIxakIwQjtVc0IwakIxQixvRXRCMWpCMEIsRXNCK2tCM0I7RUE1QkQ7SUFVSSxlQUFlO0lBQ2YsZUFBZTtJQUNmLGlCOUJwa0JtQjtJOEJxa0JuQixXQUFXO0lBQ1gseUJqQjFrQnFCO0lSdUdyQixtQkFBbUI7SUFDbkIsU0FBUztJQUNULG9DQUFxQjtRQUFyQixnQ0FBcUI7WUFBckIsNEJBQXFCLEV5Qm1ldEI7RUFoQkg7SUFtQkksWUFBWTtJQUNaLGVBQWU7SUFDZixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLGU5QmpsQnNCO0k4QmtsQnRCLFVBQVU7SUFDVixXQUFXO0lBQ1gsa0NBQTBCO1lBQTFCLDBCQUEwQixFQUMzQjs7QUFHSDtFekJ2ZEUsVUFBVTtFQUNWLCtDTDNIdUI7RUs0SHZCLFVBQVU7RUFDVixXQUFXO0VBQ1gsZ0JBQWtCO0V5QnFkbEIsU0FBUztFQUNULG1CQUFtQjtFQUNuQixlakI5bEJ1QjtFaUIrbEJ2QixXQUFXO0VBQ1gsV0FBVztFQUNYLGVBQWU7RUFDZiwyRkFBK0U7VUFBL0UsbUZBQStFLEVBQ2hGOztBQUVEO0VBQ0UsWUFBWTtFQUNaLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsa0JqQnptQnVCO0VpQjBtQnZCLFFBQVE7RUFDUixXQUFXLEVBb0JaO0VBMUJEO0lBU0ksWUFBWTtJQUNaLG1CQUFtQjtJQUNuQixtQmpCaG5CcUI7SWlCaW5CckIscUJqQmpuQnFCO0lpQmtuQnJCLFdBQVc7SUFDWCxvQ0FBcUI7UUFBckIsZ0NBQXFCO1lBQXJCLDRCQUFxQjtJQUNyQiwyREFBMkM7WUFBM0MsMkNBQTJDLEVBVTVDO0lBekJIO01Ba0JNLGU5QnJuQm9CO004QnNuQnBCLGdDQUF3QjtjQUF4Qix3QkFBd0IsRUFLekI7TUF4Qkw7UUFzQlEsZTlCbm9Ca0IsRThCb29CbkI7O0FBS1A7RUFDRSxZQUFZO0VBQ1osa0JqQm5vQnVCO0VpQm9vQnZCLG1CQUFtQjtFQUNuQiwrQzlCNW5CdUIsRThCbXFCeEI7RUEzQ0Q7SUFPSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLFNBQVM7SUFDVCx1QmpCM29CcUIsRWlCMnFCdEI7SUExQ0g7TUFhTSxZQUFZLEVBNEJiO01BekNMO1FBZ0JRLHVCakJqcEJpQjtRaUJrcEJqQix1QmpCbHBCaUIsRWlCdXBCbEI7UUF0QlA7VUFvQlUsNkJBQWdCO2NBQWhCLHlCQUFnQjtrQkFBaEIscUJBQWdCLEVBQ2pCO01BckJUO1FBeUJRLGVBQWU7UUFDZiw0Q2pCM3BCaUIsRWlCeXFCbEI7UUF4Q1A7VUE2QlUsWUFBWTtVQUNaLGFBQWE7VUFDYixnQkFBZ0I7VUFDaEIsaUNBQXlCO2tCQUF6Qix5QkFBeUIsRUFDMUI7UUFqQ1Q7VUFxQ1ksZ0I5QjlxQmMsRThCK3FCZjs7QUFPWDtFQUNFLCtDakIvcUJ1QjtFaUJnckJ2QixtQmpCaHJCdUI7RWlCaXJCdkIsaUI3QnJyQmE7RTZCc3JCYixZOUI5cUJxQjtFOEIrcUJyQixvQkFBb0I7RUFDcEIsb0I5QjVyQndCO0U4QjZyQnhCLG1CQUFtQjtFQUNuQixhQUFhO0VBQ2IsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixtQmpCenJCdUI7RWlCMHJCdkIsZWpCMXJCdUI7RWlCMnJCdkIsV0FBVztFQUNYLG9DQUFxQjtNQUFyQixnQ0FBcUI7VUFBckIsNEJBQXFCO0VBQ3JCLDhHQUc4QjtVQUg5Qiw4RkFHOEIsRUFvQy9CO0VBdEREO0lBcUJJLFdBQVc7SUFDWCxvQkFBb0IsRUFDckI7RUF2Qkg7SUEwQkksb0JBQW9CLEVBQ3JCO0VBM0JIO0lBOEJJLGlDQUFxQjtRQUFyQiw2QkFBcUI7WUFBckIseUJBQXFCO0lBQ3JCLDhCQUFzQjtZQUF0QixzQkFBc0IsRUFTdkI7SUF4Q0g7TUFpQ00sWUFBWTtNQUNaLGVBQWU7TUFDZixtQkFBbUI7TUFDbkIsZWpCbHRCbUI7TWlCbXRCbkIsaUJqQm50Qm1CO01BbUV2QixTQUFTO01BQ1QsVUFBVTtNQUdSLGlDYi9Fc0I7TWFnRnRCLG1DQUFvQztNQUNwQyxvQ0FBcUMsRWlCNG9CcEM7RUF2Q0w7SUEyQ0ksaUNBQXFCO1FBQXJCLDZCQUFxQjtZQUFyQix5QkFBcUI7SUFDckIsOEJBQXNCO1lBQXRCLHNCQUFzQixFQVN2QjtJQXJESDtNQThDTSxZQUFZO01BQ1osZUFBZTtNQUNmLG1CQUFtQjtNQUNuQixlakIvdEJtQjtNaUJndUJuQixpQmpCaHVCbUI7TUFtRXZCLFNBQVM7TUFDVCxVQUFVO01BR1IsaUNiL0VzQjtNYWdGdEIsbUNBQW9DO01BQ3BDLG9DQUFxQyxFaUJ5cEJwQzs7QUFLTDtFQUNFLG1CQUFtQjtFQUNuQix3QmpCenVCdUI7RWlCMHVCdkIsZUFBZTtFQUNmLGlCakIzdUJ1QixFaUJreEJ4QjtFQTNDRDs7O0lBVU0scUJqQmp2Qm1CLEVpQmt2QnBCO0VBWEw7SUFjTSxVQUFVLEVBQ1g7RUFmTDtJQW9CSSxlOUJud0JzQjtJOEJvd0J0QixtQkFBbUI7SUFDbkIsZ0JqQjd2QnFCO0lpQjh2QnJCLG9CakI5dkJxQjtJaUIrdkJyQixXQUFXO0lBQ1gsa0NBQTBCO1lBQTFCLDBCQUEwQixFQWEzQjtJQXRDSDtNQTRCTSxjakJud0JtQixFaUJvd0JwQjtJQTdCTDtNQWdDTSxlakJ2d0JtQixFaUJ3d0JwQjtJQWpDTDtNQW9DTSxjakIzd0JtQixFaUI0d0JwQjtFQXJDTDtJQXlDSSxXQUFXLEVBQ1o7O0FBR0g7RUFDRSxZQUFZLEVBMkNiO0VBNUNEO0lBSUksK0JqQnh4QnFCLEVpQit6QnRCO0lBM0NIO01BT00sc0JBQXNCO01BQ3RCLHVCakI1eEJtQjtNaUI2eEJuQixtQkFBbUIsRUFpQ3BCO01BMUNMO1FBWVEsZTlCOXhCa0I7UThCK3hCbEIscUJqQmp5QmlCO1FpQmt5QmpCLGlDOUJoeUJrQjtROEJpeUJsQiw4Q0FBc0M7Z0JBQXRDLHNDQUFzQyxFQVd2QztRQTFCUDtVQWtCVSxlOUI5eUJnQixFOEIreUJqQjtRQW5CVDtVQXNCVSxlOUJqeUJlO1U4Qmt5QmYsYUFBYTtVQUNiLHFDQUFxQyxFQUN0QztNQXpCVDtRQTZCUSxhQUFhO1FBQ2IsU0FBUztRQUNULFVBQVU7UUFDVixxQmpCcHpCaUI7UWlCcXpCakIsZTlCbnpCa0I7UThCb3pCbEIsbUJBQW1CO1FBQ25CLGVqQnZ6QmlCO1FpQnd6QmpCLGtCakJ4ekJpQixFaUJ5ekJsQjtNQXJDUDtRQXdDUSxjQUFjLEVBQ2Y7O0EvQi8wQlA7Ozs7RUFJRSxvQkNtQndCLEVEbEJ6Qjs7QUFHRDtFQUNFLGtCQUFrQjtFQUNsQixZQ1lxQjtFRFhyQixtQkFBbUI7RUFDbkIsbUJBQW1CLEVBK0RwQjtFTVNHO0lONUVKO01NNkVNLGFOeEVtQjtNTXlFbkIsa0JBTDZDO01BTTdDLGtCQU5pRSxFTk50RSxFQUFBO0VBbkVEO0lBUUksbUJBQW1CO0lBQ25CLE9BQU87SUFDUCxRQUFRO0lBQ1IsWUFBWTtJQUNaLDJCQUEyQjtJQUMzQiw2QkFBNkI7SUFDN0IsbUNBQW1DO0lBRW5DLCtCQUF1QjtZQUF2Qix1QkFBdUI7SUFDdkIsOEJBQXNCO1lBQXRCLHNCQUFzQixFQVF2QjtJTW1EQztNTjVFSjtRTTZFTSxhTjNEcUI7UU00RHJCLGtCQUw2QztRQU03QyxrQkFOaUUsRU5oRHBFLEVBQUE7SU95Z0JDO01QbGlCSjtRQXFCTSwyQkFBMkI7UU1tQi9CLGlCQUFpQjtRQUNqQixtQkFBbUI7UU5sQmYsaUNBQWlDLEVBRXBDO1FBekJIO1VNNENJLFlBQVk7VUFDWixlQUFlO1VBQ2YsVUFBVTtVQUNWLHdCQUFlLEVBQ2hCLEVBQUE7RU5oREg7SUE0QkksbUJBQW1CLEVBUXBCO0lPOGZDO01QbGlCSjtRZ0NQRSxRQUFRO1FBQ1Isa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQixtQkFBbUI7UUFDbkIsU0FBUztRQUNULFdBTmdDO1FoQ3dDNUIsU0FBUztRQUNULFlBQVk7UUFDWixvQmN4Qm1CLEVkMEJ0QixFQUFBO0VBcENIOztJQXlDSSxpQ0FBeUI7WUFBekIseUJBQXlCLEVBQzFCO0VBMUNIO0lBNkNJLFlDL0JtQjtJRGdDbkIsZ0NBQWdDO0lBQ2hDLCtCQUErQjtJR3VFakMsNkRBQWU7SUFBZixxREFBZTtJRDNFZiw2Q0FBNkM7SUZPM0MsOEJBQXNCO1lBQXRCLHNCQUFzQjtJQUN0QixrQkFBa0IsRUFDbkI7SUdvRUQ7TUh4SEY7UUd5SEksZ0JIekV3QixFQUl6QixFQUFBO0lHd0VEO01INUhGO1FHNkhJLGdCSDdFOEIsRUFJL0IsRUFBQTtFQXBESDtJR3NIRSw0REFBZTtJQUFmLG9EQUFlO0lIOURiLGVBQWU7SUFDZixVQUFVO0lBQ1YsbUJBQW1CO0lBQ25CLDhCQUFzQjtZQUF0QixzQkFBc0IsRUFDdkI7SUc0REQ7TUh4SEY7UUd5SEksZ0JIbEV3QixFQUt6QixFQUFBO0lHZ0VEO01INUhGO1FHNkhJLGdCSHRFOEIsRUFLL0IsRUFBQTs7QUFVSDtFQUNFLGVDM0R3QjtFRDZEeEIsa0JBQWtCLEVBeUluQjtFQTVJRDtJTWhFSSxZQUFZO0lBQ1osWUFBWTtJQUNaLGVBQWUsRUFDaEI7RUN5aEJDO0lQNWRKO01BTUksbUJBQW1CLEVBc0l0QixFQUFBO0VBNUlEO0lBVUksZUNwRXNCLEVEcUV2QjtFQVhIO0lBY0ksa0JBQWtCLEVBQ25CO0VBZkg7SUhqREUsWURRMkQ7SUNQM0QsWUFBWTtJQUNaLG9CQUFvQjtJQUNwQixrQkFBVTtJQUNWLGdCQUNxQjtJQURyQixpQkFFOEI7SUErSTlCLG1CQUFtQjtJQUNuQixpQkFBZ0IsRUd6QmY7SUE1RUg7TU1oRUksWUFBWTtNQUNaLFlBQVk7TUFDWixlQUFlLEVBQ2hCO0lONkRIO01IcEJNLGlCQUE2RCxFQUM5RDtJR21CTDtNTWhFSSxZQUFZO01BQ1osWUFBWTtNQUNaLGVBQWUsRUFDaEI7SU42REg7TUhqREUsWURRMkQ7TUNQM0QsWUFBWTtNQUNaLG9CQUFvQjtNQUNwQixrQkFBVTtNQUNWLGdCQUNxQjtNQURyQixpQkFFOEI7TUdtRTFCLG9DQUFxQjtVQUFyQixnQ0FBcUI7Y0FBckIsNEJBQXFCO01BQ3JCLGdGU25Gc0I7Y1RtRnRCLGdFU25Gc0I7TVRvRnRCLG1CQUFtQjtNQUNuQixxQkFBcUIsRUFtQnRCO01BOUNMO1FNaEVJLFlBQVk7UUFDWixZQUFZO1FBQ1osZUFBZSxFQUNoQjtNTjZESDtRSHBCTSxpQkFBNkQsRUFDOUQ7TUdtQkw7UUE4QlEsbUJBQW1CO1FBQ25CLE9BQU87UUFDUCxRQUFRO1FBQ1IsWUFBWTtRQUNaLFdBQVc7UUFDWCxhQUFhO1FBQ2Isa0VTOUZvQjtnQlQ4RnBCLDBEUzlGb0IsRVRtR3JCO1FBekNQO1VBdUNVLFdBQVcsRUFDWjtNQXhDVDtRQTRDUSxpQ0FBcUI7WUFBckIsNkJBQXFCO2dCQUFyQix5QkFBcUIsRUFDdEI7SUE3Q1A7TUFpRE0sZ0JBQWdCO01IbEdwQixZRFEyRDtNQ1AzRCxZQUFZO01BQ1osb0JBQW9CO01BQ3BCLGtCQUFVO01BQ1YsZ0JBQ3FCO01BRHJCLGlCQUU4QixFR3NIM0I7TUEzRUw7UU1oRUksWUFBWTtRQUNaLFlBQVk7UUFDWixlQUFlLEVBQ2hCO01ONkRIO1FIcEJNLGlCQUE2RCxFQUM5RDtNR21CTDtRQXFEUSxlQUFlO1FBQ2YsWUFBWTtRQUNaLHNCQUFzQjtRQUN0QixrQkFBa0I7UUFDbEIsa0VTbkhvQjtnQlRtSHBCLDBEU25Ib0IsRVR3SHJCO1FBOURQO1VBNERVLDhCQUFnQjtjQUFoQiwwQkFBZ0I7a0JBQWhCLHNCQUFnQixFQUNqQjtNQTdEVDtRQWtFVSx1QkMxSGE7UUQySGIsK0NBQW9DO1FBQ3BDLGdCQUFnQixFQUtqQjtRQXpFVDtVQXVFWSx3QkFBZ0I7Y0FBaEIsb0JBQWdCO2tCQUFoQixnQkFBZ0IsRUFDakI7RUF4RVg7SUhqREUsWURRMkQ7SUNQM0QsWUFBWTtJQUNaLG9CQUFvQjtJQUNwQixrQkFBVTtJQUNWLGdCQUNxQjtJQURyQixpQkFFOEI7SUErSTlCLG1CQUFtQjtJQUNuQixrQkFBZ0I7SUdwQmQsaUJBQWlCLEVBa0RsQjtJQW5JSDtNTWhFSSxZQUFZO01BQ1osWUFBWTtNQUNaLGVBQWUsRUFDaEI7SU42REg7TUhwQk0saUJBQTZELEVBQzlEO0lHbUJMO01Bd0ZNLG1CQUFtQjtNQUNuQixxQmNySm1CLEVkc0pwQjtJQTFGTDtNQTZGTSxnQ0FBZ0M7TUFDaEMsK0JBQStCO01FekhuQyw2Q0FBNkM7TUYySHpDLGVBQWU7TUFDZix5QmM3Sm1CLEVkOEpwQjtJQWxHTDtNQXFHTSxnQmNqS21CO01ka0tuQixjQUFjO01BQ2QsZUNqS29CLEVEa0tyQjtJQXhHTDtNR3hCRSxzQkFBc0I7TUFDdEIsbUJBQW1CO01IbUlmLGVBQWUsRUFNaEI7TUFsSEw7UUdwQkksc0JBQXdCO1FBQ3hCLG1CQUFtQixFQUNwQjtNSGtCSDtRQStHUSxnQmMzS2lCO1FkNEtqQixrQkFBa0IsRUFDbkI7SUFqSFA7TUFxSE0sY0FBYztNQUNkLGdDQ2hMb0IsRUQ0THJCO01BbElMO1FBeUhRLGVDN0xrQjtRRDhMbEIsaUJBQWlCO1FBQ2pCLG9CY3ZMaUI7UWR3TGpCLHdCRTVKYyxFRmlLZjtRQWpJUDtVQStIVSwyQkFBMkIsRUFDNUI7RU80Vkw7SVA1ZEo7O01IaUxFLGVBQWU7TUFDZixZQUFZO01BQ1osWUFBWTtNQUNaLFlBQVk7TUFDWixrQkFDYztNQURkLG1CQUVjO01BM0VkLGlCQUFpQjtNQUNqQixRQUFRLEVHNkJMO01BMUlMOztRSDJMSSxrQkFBNkIsRUFDOUI7TUc1TEg7O1FIK0xJLG1CQUFzQyxFQUN2QyxFQUFBOztBR2xESDtFQUdJLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2QsaUNBQWdDO0VBQ2hDLG1CQUFtQjtFQUNuQixXQUFXLEVBWVo7RUFuQkg7SU05TUksWUFBWTtJQUNaLFlBQVk7SUFDWixlQUFlLEVBQ2hCO0VOMk1IO0lBVU0sWUFBWTtJQUNaLG1CQUFtQjtJQUNuQixZQUFZO0lBQ1osVUFBVTtJQUNWLFFBQVE7SUFDUixZQUFZO0lBQ1osWUFBWTtJQUNaLGlDQUFnQyxFQUNqQzs7QUFsQkw7RUFzQkksV0FBVztFQUNYLHdCY2pPcUI7RWRrT3JCLG1CQUFtQixFQWdDcEI7RUF4REg7SUEyQk0sYUFBYTtJQUNiLGFBQWE7SUFDYixvQkFBb0IsRUFDckI7RUE5Qkw7SUFpQ00sMkJBQTJCO0lBQzNCLCtCQUErQjtJQUMvQixtQmM3T21CO0lkOE9uQixlQUFlO0lBQ2YseUJFcE5pQixFRnFObEI7RUF0Q0w7O0lBMENNLG1CQUFtQixFQUNwQjtFQTNDTDtJQThDTSxnQkFBZ0I7SUFDaEIsZUN2UG9CO0lEd1BwQixtQkFBbUI7SUFDbkIsbUJBQW1CLEVBQ3BCO0VPNFJEO0lQOVVKO01IL0xFLFlEUTJEO01DUDNELFlBQVk7TUFDWixvQkFBb0I7TUFDcEIsa0JBQVU7TUFDVixnQkFDcUI7TUFEckIsaUJBRThCO01HK08xQixtQkFBbUIsRUFFdEI7TUF4REg7UU05TUksWUFBWTtRQUNaLFlBQVk7UUFDWixlQUFlLEVBQ2hCO01OMk1IO1FIbEtNLGlCQUE2RCxFQUM5RCxFQUFBOztBRzROTDtFQUNFLFlBQVk7RUFDWixtQkFBbUIsRUF5Q3BCO0VPd09HO0lQblJKO01BS0ksY0FBYyxFQXNDakIsRUFBQTtFQTNDRDtJQVNJLGVBQWU7SUFDZixnQ0FBZ0M7SUFDaEMsK0JBQStCO0lHcEtqQyw2REFBZTtJQUFmLHFEQUFlO0lEM0VmLDZDQUE2QztJRmtQM0MsZ0JBQWdCLEVBS2pCO0lHMUtEO01IdUpGO1FHdEpJLGdCSGtLd0IsRUFPekIsRUFBQTtJR3RLRDtNSG1KRjtRR2xKSSxnQkg4SjhCLEVBTy9CLEVBQUE7SU9nUUM7TVBuUko7UUFpQk0saUJBQWlCLEVBRXBCLEVBQUE7RUFuQkg7SWlDblFFLDBCQUEwQjtJQUMxQixrQkFBa0I7SUFDbEIsb0JBQW9CO0lBQ3BCLGdCQUFnQjtJQUNoQixZQUFZO0lqQ3NSVix1QkN4Um1CO0lEeVJuQixnREFBcUMsRUFrQnRDO0lBMUNIOztNaUMzUEksMkJBQTJCO01BQzNCLGtCQUFrQjtNQUNsQixhQUFhO01BQ2IsaUJBQWlCO01BQ2pCLG9CQUFvQixFQUNyQjtJakNzUEg7TWlDblBJLGtCQUFrQixFQUNuQjtJakNrUEg7TWlDL09JLHVCQUF1QixFQUN4QjtJakM4T0g7O01pQzFPSSxjQUFjLEVBQ2Y7SWpDeU9IO01pQ3RPSSwyQkFBMkIsRUFDNUI7SWpDcU9IOztNaUM1S0ksMEJBQTBCLEVBQzNCO0lqQzJLSDtNQTJCTSx1RkFBMkI7TUFBM0IsZ0ZBQTJCO01BQzNCLDZCQUE2QixFQUs5QjtNQWpDTDtRQStCUSxZQ2hTZSxFRGlTaEI7SUFoQ1A7O01BcUNNLGVDeFNvQjtNRHlTcEIsaUJBQWlCO01HL0xyQiw0REFBZTtNQUFmLG9EQUFlO01IaU1YLG1CQUFtQixFQUNwQjtNR2hNSDtRSHVKRjs7VUd0SkksZ0JINkwwQixFQUV6QixFQUFBO01HNUxIO1FIbUpGOztVR2xKSSxnQkh5TGdDLEVBRS9CLEVBQUE7O0FrQ2hVTDtFQUNFLHVCakNxQnFCLEVpQ3BCdEI7O0FBRUQ7RUFDRSwwQmpDa0J3QixFaUNqQnpCOztBQUVEO0VBQ0UsZ0NwQlN1QjtFb0JSdkIsbUJBQW1CLEVBOEJwQjtFQWhDRDtJQUtJLHdCcEJLcUI7SW9CSnJCLGlCaENIWTtJZ0NLWiw4QkFBc0I7WUFBdEIsc0JBQXNCLEVBQ3ZCO0VBVEg7SUFZSSxxQnBCRnFCO0lvQkdyQix5QnBCSHFCO0lvQktyQiw0QkFBb0I7WUFBcEIsb0JBQW9CO0lBQ3BCLGlCQUFpQixFQVdsQjtJQTNCSDtNQW1CTSxlakNqQm9CO01pQ2tCcEIsaUJoQ2RTO01nQ2VULGtDQUEwQjtjQUExQiwwQkFBMEIsRUFLM0I7TUExQkw7UUF3QlEsMkJBQTJCLEVBQzVCO0UzQnlnQkg7STJCbGlCSjtNQThCSSxtQkFBbUIsRUFFdEIsRUFBQTs7QUFFRDtFQUNFLHlCcEJ6QnVCO0VvQjRCdkIsaUJoQ25DYztFZ0NvQ2QsbUJBQW1CLEVBQ3BCOztBQUdEO0VBRUUsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLHVCQUF1QjtFQUN2Qiw0QkFBNEI7RUFDNUIsNkJBQTZCLEVBQzlCO0VBVEQ7STVCckNJLFlBQVk7SUFDWixZQUFZO0lBQ1osZUFBZSxFQUNoQjs7QTRCNkNIO0VBQ0UsbUJBQW1CLEVBZ0RwQjtFQWpERDtJQUlJLFlBQVk7SUFDWixhQUFhLEVBQ2Q7RUFOSDtJQVFJLGVwQnBEcUI7SW9CcURyQixnQnBCckRxQjtJb0JzRHJCLHlCcEJ0RHFCO0lvQnVEckIsYWpDbkRtQjtJaUNvRG5CLGdCQUFnQjtJQUNoQix1REFBdUM7WUFBdkMsdUNBQXVDLEVBVXhDO0lBdkJIO01BZ0JNLCtCQUFnQjtVQUFoQiwyQkFBZ0I7Y0FBaEIsdUJBQWdCLEVBQ2pCO0kzQjJkRDtNMkI1ZUo7UUFvQk0sZ0JwQmhFbUI7UW9CaUVuQixpQnBCakVtQixFb0JtRXRCLEVBQUE7RUF2Qkg7SUEwQkksWWpDbEVtQixFaUNtRXBCO0VBM0JIO0lBOEJJLGVBQWUsRUFDaEI7RUEvQkg7SUFrQ0ksWUFBWTtJQUNaLGFBQWE7SUFDYixjQUFjLEVBQ2Y7RTNCdWNDO0kyQjVlSjtNQTBDTSxjQUFjLEVBQ2Y7SUEzQ0w7TUE4Q00sZUFBZSxFQUNoQixFQUFBOztBQUlMO0U1Qm5HSSxZQUFZO0VBQ1osWUFBWTtFQUNaLGVBQWUsRUFDaEI7O0E0Qm1HSDtFQUNFLGNBQWM7RTVCSVosbUJBQW1CO0VBQ25CLFNBQVM7RUFDVCxvQ0FBcUI7TUFBckIsZ0NBQXFCO1VBQXJCLDRCQUFxQjtFNEJKdkIsZ0JBQWdCO0VBQ2hCLFlBQVk7RUFDWixZQUFZLEVBQ2I7O0FBRUQ7RUFDRSx1QkFBdUI7RUFDdkIsVUFBVTtFQUNWLGtCQUFrQjtFQUNsQixVQUFVLEVBOEJYO0VBbENEO0lBT0ksbUJBQW1CO0lBQ25CLFFBQVE7SUFDUixXQUFXO0lBQ1gsYUFBYTtJQUNiLCtDQUErQjtZQUEvQiwrQkFBK0IsRUFjaEM7STNCcVpDO00yQjlhSjtRQWNNLE9BQU8sRUFXVixFQUFBO0lBekJIO01Ba0JNLFlBQVksRUFDYjtJQW5CTDtNQXNCTSw4QkFBZ0I7VUFBaEIsMEJBQWdCO2NBQWhCLHNCQUFnQjtNQUNoQixnQkFBZ0IsRUFDakI7RUF4Qkw7SUE0QkksbUJBQW1CO0lBQ25CLFNBQVM7SUFDVCxVQUFVO0lBQ1YsV0FBVztJQUNYLFlBQVksRUFDYjs7QUFHSDtFRi9KRSxRQUFRO0VBQ1Isa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsU0FBUztFQUNULFdBTmdDO0VFa0toQyxXQUFXO0VBQ1gsOEJBQVM7RUFBVCxzQkFBUztFQUNULG1CQUFtQixFQUtwQjtFM0JpWUc7STJCMVlKO01BT0ksOEJBQVM7TUFBVCxzQkFBUyxFQUVaLEVBQUE7O0FBRUQ7RTVCbERJLG1CQUFtQjtFQUNuQixTQUFTO0VBQ1Qsb0NBQXFCO01BQXJCLGdDQUFxQjtVQUFyQiw0QkFBcUI7RTRCa0R2QixtQkFBbUIsRUFLcEI7RUFQRDtJckNrREUsWUFBWTtJQUNaLGlCcUM5Q3VCO0lyQytDdkIsWUFBWTtJQUNaLGVBQWU7SUFDZixtQkFDYztJQURkLGtCQUVjO0lBRWQsZ0JBVmdEO0lBVWhELGlCQVZnRCxFcUMxQy9DO0lBTkg7TTVCN0pJLFlBQVk7TUFDWixZQUFZO01BQ1osZUFBZSxFQUNoQjs7QTRCa0tIO0VBQ0UsNEJwQmxLdUI7RW9CbUt2QixtQkFBbUIsRUFNcEI7RUFSRDtJQUtJLG1CcEJ0S3FCO0lvQnVLckIsd0JwQnZLcUIsRW9Cd0t0Qjs7QUFHSDtFQUVJLGtCQUFrQjtFQUNsQixtQkFBbUIsRUFDcEI7O0FBSkg7RUFPSSxlQUFlLEVBb0JoQjtFQTNCSDtJQVVNLG1CQUFtQixFQUNwQjtFM0JrV0Q7STJCN1dKO00vQjFLRSxVQUFVO01BQ1YsV0FBVztNK0J3TFAsc0JBQXNCLEVBWXpCO01BM0JIO1E1Qi9LSSxZQUFZO1FBQ1osWUFBWTtRQUNaLGVBQWUsRUFDaEI7TTRCNEtIO1EvQnRLSSxZQUFZO1FBQ1osc0JBQXNCO1FBQ3RCLG1CQVI2QixFQVM5QjtNK0JtS0g7US9CaEtJLGdCQUFnQixFQUNqQjtNK0IrSkg7UUFrQlEsb0JwQjdMaUI7UW9COExqQix3QnBCOUxpQixFb0IrTGxCO01BcEJQO1FBdUJRLGdDQUFnQztRQUNoQyx5QnBCbk1pQixFb0JvTWxCLEVBQUE7O0FBS1A7RUFDRSxZQUFZO0VBQ1osYUFBYSxFQUNkOztBQUVEO0VBQ0Usb0JBQW9CO0VBQ3BCLGlCakM1TXFCO0VpQzZNckIsbUJBQW1CLEVBdUJwQjtFQTFCRDtJQU1JLHlCcEJwTnFCO0lvQnFOckIsaUJBQWlCLEVBQ2xCO0VBUkg7SUFXSSxtQnBCek5xQjtJb0IwTnJCLG1CQUFtQixFQUtwQjtJQWpCSDtNQWVNLCtDakNwTm1CLEVpQ3FOcEI7RUFoQkw7SUFvQkksWUFBWSxFQUtiO0kzQmlUQztNMkIxVUo7UUF1Qk0sd0JwQnJPbUIsRW9CdU90QixFQUFBOztBQUdIOztFQUdJLFlqQ3pPbUIsRWlDME9wQjs7QUFKSDtFQU9JLHNCcEJqUHFCO0VvQmtQckIsaUJoQ3pQWTtFZ0MwUFoscUNBQXFCO01BQXJCLGlDQUFxQjtVQUFyQiw2QkFBcUIsRUFDdEI7O0FBVkg7RUFhSSx3QnBCdlBxQixFb0J3UHRCOztBM0JnU0M7RTJCOVNKO0lyQ0dFLGVBQWU7SUFDZixZQUFZO0lBQ1osWUFBWTtJQUNaLFlBQVk7SUFDWixrQkFDYztJQURkLG1CQUVjO0lxQ1VWLGVBQWU7SUFDZix5QnBCOVBtQixFb0JtUXBCO0lBekJMO01yQ2FJLGtCQUE2QixFQUM5QjtJcUNkSDtNckNpQkksbUJBQXNDLEVBQ3ZDO0lxQ2xCSDtNQXVCUSxpQkFBaUIsRUFDbEIsRUFBQTs7QUNwUlA7RUFFSSwyQkFBMkI7RUFDM0IsbUNBQW1DO0VBQ25DLDZCQUE2QjtFQUM3Qix1QkFBdUI7RUFDdkIsbUJBQW1CO0VBQ25CLHVCQUF1QixFQUN4Qjs7QUFSSDtFQVdJLG1CQUFtQjtFQUNuQixTQUFTO0VBQ1QsV0FBVztFQUNYLGFBQWE7RUFDYiw4QnJCR3FCO0VxQkZyQixXQUFXO0VBQ1gsZUFBZSxFQUtoQjtFNUJvaEJDO0k0QjFpQko7TUFvQk0sNkJyQkZtQixFcUJJdEIsRUFBQTs7QUF0Qkg7RUF5QkksZUFBZTtFQUNmLG1CckJScUI7RXFCU3JCLG1CQUFtQixFQWlDcEI7RUE1REg7SUE4Qk0sOEJBQThCO0lqQ3FCbEMsNkNBQTZDO0lpQ25CekMsb0JBQW9CO0lBQ3BCLFlsQ1hpQjtJa0NZakIseUJyQmhCbUI7SXFCaUJuQixpQkFBaUI7SUFDakIsWUFBWTtJQUVaLDhCQUFzQjtZQUF0QixzQkFBc0IsRUFRdkI7STVCNGZEO000QjFpQko7UUF5Q1Esb0JyQnZCaUI7UXFCd0JqQix5QnJCeEJpQjtRcUJ5QmpCLG1CQUFtQjtRQUNuQixpQkFBaUIsRUFFcEIsRUFBQTtFQTlDTDtJQWlETSxnQ2xDM0JpQjtJa0M0QmpCLHdCckJoQ21CO0lxQmlDbkIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUVqQiw0QkFBb0I7WUFBcEIsb0JBQW9CLEVBS3JCO0lBM0RMO01BeURRLGlCQUFpQixFQUNsQjs7QTVCZ2ZIO0U0QjFpQko7SUFpRU0sU0FBUyxFQUNWLEVBQUE7O0FBSUw7RUFDRSxvQkFBb0I7RUFDcEIsMEJsQ2pEd0IsRWtDbUd6QjtFQXBERDtJQUtJLG1CQUFtQjtJQUNuQix1QnJCMURxQjtJcUIyRHJCLDhCQUE4QjtJQUM5QixvQkFBb0I7SWpDM0J0Qiw2Q0FBNkMsRWlDNkI1QztFQVZIO0l0Q3pDRSxZRFEyRDtJQ1AzRCxZQUFZO0lBQ1osb0JBQW9CO0lBQ3BCLGFBQVU7SUFDVixnQkFDcUI7SUFEckIsaUJBRThCO0lzQ2lENUIsdUJyQmxFcUI7SXFCbUVyQixzQnJCbkVxQixFcUJvRXRCO0lBaEJIO003QnhESSxZQUFZO01BQ1osWUFBWTtNQUNaLGVBQWUsRUFDaEI7STZCcURIO010Q3BCTSxpQkFBNkQ7TUFDN0QsYUQ4RFcsRUM3RFo7SXNDa0JMO010Q2hCTSxZQUFZLEVBQ2I7RXNDZUw7SUFtQkksd0JyQnZFcUI7SXFCd0VyQixnQ0FBZ0M7SUFDaEMsZWxDNUVzQjtJa0M2RXRCLG9CQUFvQjtJakN6Q3RCLDZDQUE2QyxFaUMyQzVDO0VBeEJIO0lBMkJJLGVsQ3ZFcUI7SWtDd0VyQixvQnJCaEZxQixFcUJpRnRCO0VBN0JIO0lBZ0NJLG9CckJwRnFCLEVxQnFGdEI7RTVCbWNDO0k0QnBlSjtNQXFDSSxrQkFBb0IsRUFldkI7TUFwREQ7UUF3Q00sc0JyQjVGbUIsRXFCNkZwQjtNQXpDTDtRdEN6Q0UsWURRMkQ7UUNQM0QsWUFBWTtRQUNaLG9CQUFvQjtRQUNwQixZQUFVO1FBQ1YsZ0JBQ3FCO1FBRHJCLGlCQUU4QjtRc0MrRUcsZ0JBQWdCO1FBQzdDLHNCckJqR21CLEVxQmtHcEI7UUE5Q0w7VTdCeERJLFlBQVk7VUFDWixZQUFZO1VBQ1osZUFBZSxFQUNoQjtRNkJxREg7VXRDcEJNLGlCQUE2RDtVQUM3RCxhRDhEVyxFQzdEWjtRc0NrQkw7VXRDaEJNLFlBQVksRUFDYjtNc0NlTDtRQWlETSx1QnJCckdtQixFcUJzR3BCLEVBQUE7O0FDeEhMO0VBQ0UscUJBQXVCLEVBbUp4QjtFQXBKRDtJOUJjSSxZQUFZO0lBQ1osWUFBWTtJQUNaLGVBQWUsRUFDaEI7RThCakJIO0lBUUksV0FBVztJQUNYLFlBQVksRUFnQ2I7SUF6Q0g7TUFZTSxnQkFBZ0IsRUFDakI7SUFiTDtNQWdCTSxjQUFjO01BQ2QsY3RCQ21CO01zQkFuQixnQ25DT29CLEVtQ1VyQjtNQW5DTDtRQXFCUSxnQ25DWGtCLEVtQ2dCbkI7UUExQlA7VUF3QlUsZW5DZGdCLEVtQ2VqQjtNQXpCVDtRQTZCUSxnQ25DbkJrQixFbUN3Qm5CO1FBbENQO1VBZ0NVLGVuQ3RCZ0IsRW1DdUJqQjtJQWpDVDtNQXNDTSxlbkNib0I7TW1DY3BCLHFCdEJyQm1CLEVzQnNCcEI7RUF4Q0w7SUE0Q0ksV0FBVztJQUNYLGFBQWE7SUFDYixnQkFBZ0IsRUFLakI7SUFuREg7TUFpRE0sZW5DdkNvQixFbUN3Q3JCO0VBbERMO0lBc0RJLHdCdEJwQ3FCLEVzQjJEdEI7SUE3RUg7TUF5RE0seUJBQXlCO01BQ3pCLG1CQUFtQjtNQUNuQixlbkNqQ21CO01tQ2tDbkIscUJ0QjFDbUI7TXNCMkNuQix3QnRCM0NtQjtNc0I0Q25CLG1CQUFtQjtNQUNuQixzQnRCN0NtQixFc0I4Q3BCO0lBaEVMO01BbUVNLHlCQUF5QjtNQUN6QixtQkFBbUI7TUFDbkIsc0NBQXNDO01BQ3RDLG1CQUFtQjtNQUNuQixlbkM3Q21CO01tQzhDbkIscUJ0QnREbUI7TXNCdURuQix3QnRCdkRtQjtNc0J3RG5CLG1CQUFtQjtNQUNuQixzQnRCekRtQixFc0IwRHBCO0VBNUVMO0lBZ0ZJLDhCQUE4QjtJQUM5QixlbkN2RHFCO0ltQ3dEckIsd0J0QmhFcUIsRXNCaUV0QjtFQW5GSDtJQXNGSSxlbkM1RHFCO0ltQzZEckIscUJ0QnJFcUI7SXNCc0VyQix3QnRCdEVxQixFc0J1RXRCO0VBekZIO0lBNEZJLDBCQUEwQjtJQUMxQixnQnRCM0VxQjtJc0I0RXJCLGVuQ3BFcUIsRW1DcUV0QjtFN0IyY0M7STZCMWlCSjtNQW9HSSxvQkFBdUIsRUFnRDFCO01BcEpEOztRQXdHTSxZQUFZO1F2Q3VKaEIsZUFBZTtRQUNmLFlBQVk7UUFDWixZQUFZO1FBQ1osWUFBWTtRQUNaLGtCQUNjO1FBRGQsbUJBRWM7UXVDM0pWLFlBQVksRUFDYjtRQTNHTDs7VXZDeVFJLGtCQUE2QixFQUM5QjtRdUMxUUg7O1V2QzZRSSxtQkFBc0MsRUFDdkM7TXVDOVFIO1FBOEdNLG1CQUFtQjtRQUNuQix5QnRCN0ZtQjtRc0I4Rm5CLG1CQUFtQixFQThCcEI7UUE5SUw7VUFtSFEsbUJBQW1CO1VBQ25CLGVBQWUsRUFDaEI7UUFySFA7VUF3SFEsdUJBQXdCO1VBQ3hCLHNCQUFzQjtVQUN0QixZQUFZO1VBQ1osbUJBQW1CLEVBa0JwQixFQUFBO003QjZaSDtRNkIxaUJKO1VBOEhVLHlCQUF3QjtVQUN4QixlQUFlLEVBY2xCLEVBQUE7RTdCNlpIO1U2QjFpQko7WUFtSVUsbUJBQW1CLEVBQ3BCO1VBcElUO1lBdUlVLG1CQUFtQixFQUNwQjtVQXhJVDtZQTJJVSxpQkFBaUIsRUFDbEI7TUE1SVQ7UUFpSk0seUJ0Qi9IbUIsRXNCZ0lwQixFQUFBOztBQ2xKTDtFQUNFLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsd0JBQXdCO0VBQ3hCLHNCQUFzQjtFQUN0QixvQnBDa0J3QixFb0NvRHpCO0VBM0VEO0lBUUksc0JBQXNCO0lBQ3RCLG1CdkJTcUI7SXVCUnJCLHlCdkJRcUI7SXVCUHJCLHFCdkJPcUIsRXVCRnRCO0lBaEJIO01BY00saUJuQ0FTLEVtQ0NWO0VBZkw7SUFtQkksd0J2QkRxQixFdUJ3RHRCO0lBMUVIOztNQXVCTSw2QnBDSW1CLEVvQ0hwQjtJQXhCTDtNQTJCTSxzQkFBc0I7TUFDdEIsNkN2QlZtQjtNdUJXbkIsK0NwQ0ZtQjtNb0NHbkIsZ0VBQXdEO2NBQXhELHdEQUF3RCxFQVd6RDtNQXpDTDtRQWlDUSxtQ3BDdkJrQjtRb0N3QmxCLGVwQ1hrQjtRb0NZbEIsaUNwQ3pCa0IsRW9DOEJuQjtRQXhDUDtVQXNDVSx3QkFBd0IsRUFDekI7SUF2Q1Q7TUE0Q00seUJ2QjFCbUIsRXVCMkJwQjtJQTdDTDtNQWdETSx3QnZCOUJtQjtNdUIrQm5CLGdDQUF3QjtjQUF4Qix3QkFBd0IsRUFLekI7TUF0REw7UUFvRFEsZUFBYSxFQUNkO0lBckRQO01BeURNLG9CdkJ2Q21CLEV1QndDcEI7SUExREw7TUE2RE0sV0FBVztNQUNYLHVCdkI1Q21CLEV1QmlEcEI7TTlCdWVEO1E4QjFpQko7VUFpRVEsV0FBVyxFQUVkLEVBQUE7SUFuRUw7TUFzRU0sbUNwQzVEb0I7TW9DNkRwQiwyQ3ZCckRtQjtNdUJzRG5CLHFDQUE2QjtjQUE3Qiw2QkFBNkIsRUFDOUI7O0FDekVMO0VBQ0UsNkdyQzZDc0M7RXFDN0N0QyxxR3JDNkNzQztFcUM1Q3RDLGNBQWM7RUFDZCxtQkFBbUI7RUFDbkIsbUJBQW1CLEVBMEtwQjtFQTlLRDtJQVFJLG1CQUFtQixFQUNwQjtJQVRIO01oQ2NJLFlBQVk7TUFDWixZQUFZO01BQ1osZUFBZSxFQUNoQjtFZ0NqQkg7SUFZSSxtQkFBbUI7SUFDbkIsV0FBVztJQUNYLGF4QklxQjtJd0JIckIsV0FBVztJQUNYLGNBQWM7SUFDZCxvQ0FBcUI7UUFBckIsZ0NBQXFCO1lBQXJCLDRCQUFxQjtJQUNyQixrRTdCRXdCO1k2QkZ4QiwwRDdCRXdCO0k2QkR4QixXQUFXLEVBaUJaO0lBcENIO01Bc0JNLFlBQVk7TUFDWixhQUFhO01BQ2IsaUJBQWlCLEVBQ2xCO0lBekJMO01BNEJNLGlDQUFxQjtVQUFyQiw2QkFBcUI7Y0FBckIseUJBQXFCO01BQ3JCLFdBQVcsRUFDWjtJQTlCTDtNQWlDTSxXQUFXO01BQ1gscUNBQXFCO1VBQXJCLGlDQUFxQjtjQUFyQiw2QkFBcUIsRUFDdEI7RUFuQ0w7SUF1Q0ksbUJBQW1CO0lBQ25CLGN4QnRCcUI7SXdCdUJyQixXQUFXO0lBQ1gsV0FBVztJQUNYLGNBQWM7SUFDZCxXQUFXO0lBQ1gsb0NBQXFCO1FBQXJCLGdDQUFxQjtZQUFyQiw0QkFBcUI7SUFDckIsa0U3QjFCd0I7WTZCMEJ4QiwwRDdCMUJ3QixFNkJ5Q3pCO0lBN0RIO01BaURNLFlBQVksRUFDYjtJQWxETDtNQXFETSxpQ0FBcUI7VUFBckIsNkJBQXFCO2NBQXJCLHlCQUFxQjtNQUNyQixXQUFXLEVBQ1o7SUF2REw7TUEwRE0sV0FBVztNQUNYLHFDQUFxQjtVQUFyQixpQ0FBcUI7Y0FBckIsNkJBQXFCLEVBQ3RCO0VBNURMO0lBK0RJLFlBQVk7SUFDWixlQUFlO0lBQ2YsZ0JBQWdCLEVBQ2pCO0VBbEVIO0lBcUVJLFlBQVk7SUFDWixnQkFBZ0IsRUFFakI7SUF4RUg7TWhDY0ksWUFBWTtNQUNaLFlBQVk7TUFDWixlQUFlLEVBQ2hCO0VnQ2pCSDtJekM2QkUsWURRMkQ7SUNQM0QsWUFBWTtJQUNaLG9CQUFvQjtJQUNwQixhQUFVO0lBQ1YsZ0JBQ3FCO0lBRHJCLGlCQUU4QjtJeUN5QzVCLGlCQUFpQixFQUNsQjtJQTdFSDtNaENjSSxZQUFZO01BQ1osWUFBWTtNQUNaLGVBQWUsRUFDaEI7SWdDakJIO016QzBETSxpQkFBNkQsRUFDOUQ7RXlDM0RMO0l6QzZCRSxZRFEyRDtJQ1AzRCxZQUFZO0lBQ1osb0JBQW9CO0lBQ3BCLGFBQVU7SUFDVixnQkFDcUI7SUFEckIsaUJBRThCLEV5QzJGN0I7SUE5SEg7TWhDY0ksWUFBWTtNQUNaLFlBQVk7TUFDWixlQUFlLEVBQ2hCO0lnQ2pCSDtNekMwRE0saUJBQTZELEVBQzlEO0l5QzNETDtNaENjSSxZQUFZO01BQ1osWUFBWTtNQUNaLGVBQWUsRUFDaEI7SWdDakJIO016QzZCRSxZRFEyRDtNQ1AzRCxZQUFZO01BQ1osb0JBQW9CO01BQ3BCLFdBQVU7TUFDVixnQkFDcUI7TUFEckIsaUJBRThCO015Q2lEMUIsa0JBQWtCLEVBT25CO01BM0ZMO1FoQ2NJLFlBQVk7UUFDWixZQUFZO1FBQ1osZUFBZSxFQUNoQjtNZ0NqQkg7UXpDa0RNLGlCQUE2RDtRQUM3RCxhRDhEVyxFQzdEWjtNeUNwREw7UXpDc0RNLFlBQVksRUFDYjtNeUN2REw7UUF3RlUsK0JBQW1CO2dCQUFuQix1QkFBbUIsRUFDcEI7TUF6RlQ7UUF3RlUsK0JBQW1CO2dCQUFuQix1QkFBbUIsRUFDcEI7TUF6RlQ7UUF3RlUsK0JBQW1CO2dCQUFuQix1QkFBbUIsRUFDcEI7TUF6RlQ7UUF3RlUsK0JBQW1CO2dCQUFuQix1QkFBbUIsRUFDcEI7TUF6RlQ7UUF3RlUsOEJBQW1CO2dCQUFuQixzQkFBbUIsRUFDcEI7TUF6RlQ7UUF3RlUsK0JBQW1CO2dCQUFuQix1QkFBbUIsRUFDcEI7SUF6RlQ7TWhDZ0RFLGlCQUFpQjtNQUNqQixtQkFBbUI7TWdDOENmLGtDckNuRm9CO01xQ29GcEIsbUJBQW1CO01BQ25CLGVBQWU7TUFDZixtQkFBbUI7TUFDbkIsaUNBQXlCO2NBQXpCLHlCQUF5QjtNQUN6QixXQUFXLEVBV1o7TUEvR0w7UWhDb0RJLFlBQVk7UUFDWixlQUFlO1FBQ2YsVUFBVTtRQUNWLGtCQUFlLEVBQ2hCO01nQ3hESDtRTkNFLFFBQVE7UUFDUixrQkFBa0I7UUFDbEIsbUJBQW1CO1FBQ25CLG1CQUFtQjtRQUNuQixTQUFTO1FBQ1QsV0FOZ0M7UU13RzFCLGdCQUFnQjtRQUNoQixZQUFZLEVBQ2I7TUExR1A7UUE2R1Esa0NyQ2pHa0IsRXFDa0duQjtJQTlHUDtNekM2TkUsWUFBWTtNQUNaLGtCRnRONEI7TUV1TjVCLFlBQVk7TUFDWixlQUFlO01BQ2YsbUJBQ2M7TUFEZCxrQkFFYztNQUVkLGdCQVZnRDtNQVVoRCxpQkFWZ0Q7TVNsRzlDLG1CQUFtQjtNQUNuQixTQUFTO01BQ1Qsb0NBQXFCO1VBQXJCLGdDQUFxQjtjQUFyQiw0QkFBcUI7TWdDUG5CLFlBQVksRUFDYjtNQXJITDtRaENjSSxZQUFZO1FBQ1osWUFBWTtRQUNaLGVBQWUsRUFDaEI7SWdDakJIO01BMEhRLG1DQUEyQjtjQUEzQiwyQkFBMkIsRUFDNUI7RUEzSFA7SUFpSUksWXJDM0dtQjtJcUM0R25CLGlCcEN0SFc7SW9DdUhYLHNCeEJqSHFCLEV3QmtIdEI7RUFwSUg7SUF1SUksZ0NyQ2pIbUIsRXFDdUhwQjtJQTdJSDtNQTBJTSxZckNwSGlCO01xQ3FIakIsMkJBQTJCLEVBQzVCO0UvQjhaRDtJK0IxaUJKO01BZ0pJLDRHckNqR29DO01xQ2lHcEMsb0dyQ2pHb0MsRXFDK0h2QztNQTlLRDtRQW1KTSxnQkFBZ0I7UUFDaEIsd0J4QmxJbUIsRXdCbUlwQjtNQXJKTDtRQXdKTSxnQkFBZ0IsRUFDakI7TUF6Skw7UUE0Sk0sV0FBVztRQUNYLGN4QjNJbUIsRXdCNElwQjtNQTlKTDtRQWlLTSxXQUFXO1FBQ1gsV0FBVztRQUNYLFlBQVk7UUFDWixZeEJsSm1CLEV3Qm1KcEI7TUFyS0w7UXpDNkJFLFlEUTJEO1FDUDNELFlBQVk7UUFDWixvQkFBb0I7UUFDcEIsWUFBVTtRQUNWLGdCQUNxQjtRQURyQixpQkFFOEIsRXlDcUkzQjtRQXhLTDtVaENjSSxZQUFZO1VBQ1osWUFBWTtVQUNaLGVBQWUsRUFDaEI7UWdDakJIO1V6QzBETSxpQkFBNkQsRUFDOUQ7TXlDM0RMO1FBMktNLGtCQUFrQixFQUNuQixFQUFBIiwiZmlsZSI6InN0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbmh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLCBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCwgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhciwgYiwgdSwgaSwgY2VudGVyLCBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLCBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCwgdGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLCBmaWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LCB0aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBmb250OiBpbmhlcml0O1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuYm9keSB7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbm9sLCB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuYmxvY2txdW90ZSwgcSB7XG4gIHF1b3Rlczogbm9uZTsgfVxuXG5ibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGNvbnRlbnQ6IG5vbmU7IH1cblxucTpiZWZvcmUsIHE6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBjb250ZW50OiBub25lOyB9XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7IH1cblxuLyoqXG4qIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4qIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvblxuKiAgICBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4qICAgIHVzZXIgem9vbS5cbiovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovIH1cblxuLyoqXG4qIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiogYW5kIEZpcmVmb3guXG4qIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4qL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4qIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4qIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiovXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovIH1cblxuLyoqXG4qIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4qIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4qL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxuICAgKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gICAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qKlxuKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4qL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKipcbiogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuKiBhY3RpdmUvaG92ZXIgc3RhdGUuXG4qL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDsgfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4qL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkOyB9XG5cbi8qKlxuKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4qL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qKlxuKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4qL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4qIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjY2NjY3ZW0gMDsgfVxuXG4vKipcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAgICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLyoqXG4qIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLyoqXG4qIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICAgKi9cbmltZyB7XG4gIGJvcmRlcjogMDsgfVxuXG4vKipcbiAgICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gICAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gICAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDsgfVxuXG4vKipcbiogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4qL1xucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyoqXG4qIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiovXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07IH1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuKi9cbi8qKlxuKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4qICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovXG4gIG1hcmdpbjogMDtcbiAgLyogMyAqLyB9XG5cbi8qKlxuICAgKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAgICovXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4qL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4qIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4qICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4qIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4qICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiovXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9J2J1dHRvbiddLFxuaW5wdXRbdHlwZT0ncmVzZXQnXSxcbmlucHV0W3R5cGU9J3N1Ym1pdCddIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiAzICovIH1cblxuLyoqXG4qIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4qL1xuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi8qKlxuKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4qL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4qIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiogdGhlIFVBIHN0eWxlc2hlZXQuXG4qL1xuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG5cbi8qKlxuICAgKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gICAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gICAqXG4gICAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gICAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gICAqL1xuaW5wdXRbdHlwZT0nY2hlY2tib3gnXSxcbmlucHV0W3R5cGU9J3JhZGlvJ10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuKi9cbmlucHV0W3R5cGU9J251bWJlciddOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLyoqXG4qIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuKi9cbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IH1cblxuLyoqXG4qIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4qIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiovXG5pbnB1dFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxuKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4qL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07IH1cblxuLyoqXG4qIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuKi9cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gICAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcbiogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiovXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4qL1xudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDsgfVxuXG4ub2xkLWJyb3dzZXJzIHtcbiAgei1pbmRleDogOTk5OTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBjb2xvcjogYmxhY2s7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwOyB9XG4gIC5vbGQtYnJvd3NlcnMgaDIge1xuICAgIHBhZGRpbmc6IDIwcHggMCAyMHB4IDA7IH1cbiAgLm9sZC1icm93c2VycyBwLCAub2xkLWJyb3dzZXJzIHVsIHtcbiAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAub2xkLWJyb3dzZXJzIHAge1xuICAgIG1heC13aWR0aDogNzAwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDUwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNGVtOyB9XG4gIC5vbGQtYnJvd3NlcnMgdWwgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiAwIDI1cHg7IH1cbiAgICAub2xkLWJyb3dzZXJzIHVsIGxpIGltZyB7XG4gICAgICB3aWR0aDogMTE1cHg7IH1cbiAgICAub2xkLWJyb3dzZXJzIHVsIGxpIHAge1xuICAgICAgcGFkZGluZy10b3A6IDE1cHg7XG4gICAgICBjb2xvcjogIzI0OUFFMTsgfVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qICBTeW50YXggUXVpY2sgUmVmZXJlbmNlXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGNvbHVtbigkcmF0aW9zOiAxLCAkb2Zmc2V0OiAwLCAkY3ljbGU6IDAsICR1bmN5Y2xlOiAwLCAkZ3V0dGVyOiAkamVldC1ndXR0ZXIpXG4gIHNwYW4oJHJhdGlvOiAxLCAkb2Zmc2V0OiAwKVxuICBzaGlmdCgkcmF0aW9zOiAwLCAkY29sX29yX3NwYW46IGNvbHVtbiwgJGd1dHRlcjogJGplZXQtZ3V0dGVyKVxuICB1bnNoaWZ0KClcbiAgZWRpdCgpXG4gIGNlbnRlcigkbWF4X3dpZHRoOiAxNDEwcHgsICRwYWQ6IDApXG4gIHN0YWNrKCRwYWQ6IDAsICRhbGlnbjogZmFsc2UpXG4gIHVuc3RhY2soKVxuICBhbGlnbigkZGlyZWN0aW9uOiBib3RoKVxuICBjZigpXG4qL1xuLyoqXG4gKiBHcmlkIHNldHRpbmdzLlxuICogQWxsIHZhbHVlcyBhcmUgZGVmYXVsdHMgYW5kIGNhbiB0aGVyZWZvcmUgYmUgZWFzaWx5IG92ZXJpZGRlbi5cbiAqL1xuLyoqXG4gKiBMaXN0IGZ1bmN0aW9ucyBjb3VydGVzeSBvZiB0aGUgd29uZGVyZnVsIGZvbGtzIGF0IFRlYW0gU2Fzcy5cbiAqIENoZWNrIG91dCB0aGVpciBhd2Vzb21lIGdyaWQ6IFNpbmd1bGFyaXR5LlxuICovXG4vKipcbiAqIEdldCAgcGVyY2VudGFnZSBmcm9tIGEgZ2l2ZW4gcmF0aW8uXG4gKiBAcGFyYW0ge251bWJlcn0gWyRyYXRpbz0xXSAtIFRoZSBjb2x1bW4gcmF0aW8gb2YgdGhlIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSAtIFRoZSBwZXJjZW50YWdlIHZhbHVlLlxuICovXG4vKipcbiAqIFdvcmsgb3V0IHRoZSBjb2x1bW4gd2lkdGhzIGJhc2VkIG9uIHRoZSByYXRpbyBhbmQgZ3V0dGVyIHNpemVzLlxuICogQHBhcmFtIHtudW1iZXJ9IFskcmF0aW9zPTFdIC0gVGhlIGNvbHVtbiByYXRpbyBvZiB0aGUgZWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJGd1dHRlcj0kamVldC1ndXR0ZXJdIC0gVGhlIGd1dHRlciBmb3IgdGhlIGNvbHVtbi5cbiAqIEByZXR1cm5zIHtsaXN0fSAkd2lkdGggJGd1dHRlciAtIEEgbGlzdCBjb250YWluaW5nIHRoZSB3aXRoIGFuZCBndXR0ZXIgZm9yIHRoZSBlbGVtZW50LlxuICovXG4vKipcbiAqIEdldCB0aGUgc2V0IGxheW91dCBkaXJlY3Rpb24gZm9yIHRoZSBwcm9qZWN0LlxuICogQHJldHVybnMge3N0cmluZ30gJGRpcmVjdGlvbiAtIFRoZSBsYXlvdXQgZGlyZWN0aW9uLlxuICovXG4vKipcbiAqIFJlcGxhY2UgYSBzcGVjaWZpZWQgbGlzdCB2YWx1ZSB3aXRoIGEgbmV3IHZhbHVlICh1c2VzIGJ1aWx0IGluIHNldC1udGgoKSBpZiBhdmFpbGFibGUpXG4gKiBAcGFyYW0ge2xpc3R9ICRsaXN0IC0gVGhlIGxpc3Qgb2YgdmFsdWVzIHlvdSB3YW50IHRvIGFsdGVyLlxuICogQHBhcmFtIHtudW1iZXJ9ICRpbmRleCAtIFRoZSBpbmRleCBvZiB0aGUgbGlzdCBpdGVtIHlvdSB3YW50IHRvIHJlcGxhY2UuXG4gKiBAcGFyYW0geyp9ICR2YWx1ZSAtIFRoZSB2YWx1ZSB5b3Ugd2FudCB0byByZXBsYWNlICRpbmRleCB3aXRoLlxuICogQHJldHVybnMge2xpc3R9ICRsaXN0IC0gVGhlIGxpc3Qgd2l0aCB0aGUgdmFsdWUgcmVwbGFjZWQgb3IgcmVtb3ZlZC5cbiAqIEB3YXJuIGlmIGFuIGludmFsaWQgaW5kZXggaXMgc3VwcGxpZWQuXG4gKi9cbi8qKlxuICogUmV2ZXJzZSBhIGxpc3QgKHByb2dyZXNzaXZlbHkgZW5oYW5jZWQgZm9yIFNhc3MgMy4zKVxuICogQHBhcmFtIHtsaXN0fSAkbGlzdCAtIFRoZSBsaXN0IG9mIHZhbHVlcyB5b3Ugd2FudCB0byByZXZlcnNlLlxuICogQHJldHVybnMge2xpc3R9ICRyZXN1bHQgLSBUaGUgcmV2ZXJzZWQgbGlzdC5cbiAqL1xuLyoqXG4gKiBHZXQgdGhlIG9wcG9zaXRlIGRpcmVjdGlvbiB0byBhIGdpdmVuIHZhbHVlLlxuICogQHBhcmFtIHtzdHJpbmd9ICRkaXIgLSBUaGUgZGlyZWN0aW9uIHlvdSB3YW50IHRoZSBvcHBvc2l0ZSBvZi5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIG9wcG9zaXRlIGRpcmVjdGlvbiB0byAkZGlyLlxuICogQHdhcm4gaWYgYW4gaW5jb3JyZWN0IHN0cmluZyBpcyBwcm92aWRlZC5cbiAqL1xuLyoqXG4gKiBTdHlsZSBhbiBlbGVtZW50IGFzIGEgY29sdW1uIHdpdGggYSBndXR0ZXIuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRyYXRpb3M9MV0gLSBBIHdpZHRoIHJlbGF0aXZlIHRvIGl0cyBjb250YWluZXIgYXMgYSBmcmFjdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJG9mZnNldD0wXSAtIEEgb2Zmc2V0IHNwZWNpZmllZCBhcyBhIGZyYWN0aW9uIChzZWUgJHJhdGlvcykuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRjeWNsZT0wXSAtIEVhc2lseSBjcmVhdGUgYW4gbnRoIGNvbHVtbiBncmlkIHdoZXJlICRjeWNsZSBlcXVhbHMgdGhlIG51bWJlciBvZiBjb2x1bW5zLlxuICogQHBhcmFtIHtudW1iZXJ9IFskdW5jeWNsZT0wXSAtIFVuZG8gYSBwcmV2aW91cyBjeWNsZSB2YWx1ZSB0byBhbGxvdyBmb3IgYSBuZXcgb25lLlxuICogQHBhcmFtIHtudW1iZXJ9IFskZ3V0dGVyPSRqZWV0LWd1dHRlcl0gLSBTcGVjaWZ5IHRoZSBndXR0ZXIgd2lkdGggYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBjb250YWluZXJzIHdpZHRoLlxuICovXG4vKipcbiAqIEFuIGFsaWFzIGZvciB0aGUgY29sdW1uIG1peGluLlxuICogQHBhcmFtIFskYXJncy4uLl0gLSBBbGwgYXJndW1lbnRzIGdldCBwYXNzZWQgdGhyb3VnaCB0byBjb2x1bW4oKS5cbiAqL1xuLyoqXG4gKiBHZXQgdGhlIHdpZHRoIG9mIGEgY29sdW1uIGFuZCBub3RoaW5nIGVsc2UuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRyYXRpb3M9MV0gLSBBIHdpZHRoIHJlbGF0aXZlIHRvIGl0cyBjb250YWluZXIgYXMgYSBmcmFjdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJGd1dHRlcj0kamVldC1ndXR0ZXJdIC0gU3BlY2lmeSB0aGUgZ3V0dGVyIHdpZHRoIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgY29udGFpbmVycyB3aWR0aC5cbiAqL1xuLyoqXG4gKiBHZXQgdGhlIGd1dHRlciBzaXplIG9mIGEgY29sdW1uIGFuZCBub3RoaW5nIGVsc2UuXG4gKiBAcGFyYW0ge251bWJlcn0gW3JhdGlvcz0xXSAtIEEgd2lkdGggcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lciBhcyBhIGZyYWN0aW9uLlxuICogQHBhcmFtIHtudW1iZXJ9IFtndXR0ZXI9amVldC5ndXR0ZXJdIC0gU3BlY2lmeSB0aGUgZ3V0dGVyIHdpZHRoIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgY29udGFpbmVycyB3aWR0aC5cbiAqL1xuLyoqXG4gKiBBbiBhbGlhcyBmb3IgdGhlIGNvbHVtbi13aWR0aCBmdW5jdGlvbi5cbiAqIEBwYXJhbSBbJGFyZ3MuLi5dIC0gQWxsIGFyZ3VtZW50cyBnZXQgcGFzc2VkIHRocm91Z2ggdG8gY29sdW1uKCkuXG4gKi9cbi8qKlxuICogQW4gYWxpYXMgZm9yIHRoZSBjb2x1bW4tZ3V0dGVyIGZ1bmN0aW9uLlxuICogQHBhcmFtIFskYXJncy4uLl0gLSBBbGwgYXJndW1lbnRzIGdldCBwYXNzZWQgdGhyb3VnaCB0byBjb2x1bW4oKS5cbiAqL1xuLyoqXG4gKiBTdHlsZSBhbiBlbGVtZW50IGFzIGEgY29sdW1uIHdpdGhvdXQgYW55IGd1dHRlcnMgZm9yIGEgc2VhbWxlc3Mgcm93LlxuICogQHBhcmFtIHtudW1iZXJ9IFskcmF0aW9zPTFdIC0gQSB3aWR0aCByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyIGFzIGEgZnJhY3Rpb24uXG4gKiBAcGFyYW0ge251bWJlcn0gWyRvZmZzZXQ9MF0gLSBBIG9mZnNldCBzcGVjaWZpZWQgYXMgYSBmcmFjdGlvbiAoc2VlICRyYXRpb3MpLlxuICogQHBhcmFtIHtudW1iZXJ9IFtjeWNsZT0wXSAtIEVhc2lseSBjcmVhdGUgYW4gbnRoIGNvbHVtbiBncmlkIHdoZXJlIGN5Y2xlIGVxdWFscyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMuXG4gKiBAcGFyYW0ge251bWJlcn0gW3VuY3ljbGU9MF0gLSBVbmRvIGEgcHJldmlvdXMgY3ljbGUgdmFsdWUgdG8gYWxsb3cgZm9yIGEgbmV3IG9uZS5cbiAqL1xuLyoqXG4gKiBSZW9yZGVyIGNvbHVtbnMgd2l0aG91dCBhbHRlcmluZyB0aGUgSFRNTC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHJhdGlvcz0wXSAtIFNwZWNpZnkgaG93IGZhciBhbG9uZyB5b3Ugd2FudCB0aGUgZWxlbWVudCB0byBtb3ZlLlxuICogQHBhcmFtIHtzdHJpbmd9IFskY29sLW9yLXNwYW49Y29sdW1uXSAtIFNwZWNpZnkgd2hldGhlciB0aGUgZWxlbWVudCBoYXMgYSBndXR0ZXIgb3Igbm90LlxuICogQHBhcmFtIHtudW1iZXJ9IFskZ3V0dGVyPSRqZWV0LWd1dHRlcl0gLSBTcGVjaWZ5IHRoZSBndXR0ZXIgd2lkdGggYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBjb250YWluZXJzIHdpZHRoLlxuICovXG4vKipcbiAqIFJlc2V0IGFuIGVsZW1lbnQgdGhhdCBoYXMgaGFkIHNoaWZ0KCkgYXBwbGllZCB0byBpdC5cbiAqL1xuLyoqXG4gKiBWaWV3IHRoZSBncmlkIGFuZCBpdHMgbGF5ZXJzIGZvciBlYXN5IGRlYnVnZ2luZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbJGNvbG9yPWJsYWNrXSAtIFRoZSBiYWNrZ3JvdW5kIHRpbnQgYXBwbGllZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gWyRpbXBvcnRhbnQ9ZmFsc2VdIC0gV2hldGhlciB0byBhcHBseSB0aGUgc3R5bGUgYXMgIWltcG9ydGFudC5cbiAqL1xuLyoqXG4gKiAgQWxpYXMgZm9yIGVkaXQoKS5cbiAqL1xuLyoqXG4gKiBIb3Jpem9udGFsbHkgY2VudGVyIGFuIGVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRtYXgtd2lkdGg9MTQxMHB4XSAtIFRoZSBtYXggd2lkdGggdGhlIGVsZW1lbnQgY2FuIGJlLlxuICogQHBhcmFtIHtudW1iZXJ9IFskcGFkPTBdIC0gU3BlY2lmeSB0aGUgZWxlbWVudCdzIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcuXG4gKi9cbi8qKlxuICogVW5jZW50ZXIgYW4gZWxlbWVudC5cbiAqL1xuLyoqXG4gKiBTdGFjayBhbiBlbGVtZW50IHNvIHRoYXQgbm90aGluZyBpcyBlaXRoZXIgc2lkZSBvZiBpdC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHBhZD0wXSAtIFNwZWNpZnkgdGhlIGVsZW1lbnQncyBsZWZ0IGFuZCByaWdodCBwYWRkaW5nLlxuICogQHBhcmFtIHtib29sZWFuL3N0cmluZ30gWyRhbGlnbj1mYWxzZV0gLSBTcGVjaWZ5IHRoZSB0ZXh0IGFsaWduIGZvciB0aGUgZWxlbWVudC5cbiAqL1xuLyoqXG4gKiBVbnN0YWNrIGFuIGVsZW1lbnQuXG4gKi9cbi8qKlxuICogQ2VudGVyIGFuIGVsZW1lbnQgb24gZWl0aGVyIG9yIGJvdGggYXhlcy5cbiAqIEByZXF1aXJlcyBBIHBhcmVudCBjb250YWluZXIgd2l0aCByZWxhdGl2ZSBwb3NpdGlvbmluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbJGRpcmVjdGlvbj1ib3RoXSAtIFNwZWNpZnkgd2hpY2ggYXhlcyB0byBjZW50ZXIgdGhlIGVsZW1lbnQgb24uXG4gKi9cbi8qKlxuICogQXBwbHkgYSBjbGVhcmZpeCB0byBhbiBlbGVtZW50LlxuICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdHcmFwaGlrIFRoaW4gV2ViJztcbiAgc3JjOiB1cmwoXCJmb250cy9HcmFwaGlrLVRoaW4tV2ViLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCJmb250cy9HcmFwaGlrLVRoaW4tV2ViLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcImZvbnRzL0dyYXBoaWstVGhpbi1XZWIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCJmb250cy9HcmFwaGlrLVRoaW4tV2ViLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiZm9udHMvR3JhcGhpay1UaGluLVdlYi5zdmcjR3JhcGhpayBXZWJcIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogMTAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0dyYXBoaWsgV2ViJztcbiAgc3JjOiB1cmwoXCJmb250cy9HcmFwaGlrLVJlZ3VsYXItV2ViLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCJmb250cy9HcmFwaGlrLVJlZ3VsYXItV2ViLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcImZvbnRzL0dyYXBoaWstUmVndWxhci1XZWIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCJmb250cy9HcmFwaGlrLVJlZ3VsYXItV2ViLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiZm9udHMvR3JhcGhpay1SZWd1bGFyLVdlYi5zdmcjR3JhcGhpayBXZWJcIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0dyYXBoaWsgSXRhbGljIFdlYic7XG4gIHNyYzogdXJsKFwiZm9udHMvR3JhcGhpay1SZWd1bGFySXRhbGljLVdlYi5lb3RcIik7XG4gIHNyYzogdXJsKFwiZm9udHMvR3JhcGhpay1SZWd1bGFySXRhbGljLVdlYi5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCJmb250cy9HcmFwaGlrLVJlZ3VsYXJJdGFsaWMtV2ViLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiZm9udHMvR3JhcGhpay1SZWd1bGFySXRhbGljLVdlYi50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcImZvbnRzL0dyYXBoaWstUmVndWxhckl0YWxpYy1XZWIuc3ZnI0dyYXBoaWsgV2ViXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdHcmFwaGlrIE1lZGl1bSBXZWInO1xuICBzcmM6IHVybChcImZvbnRzL0dyYXBoaWstTWVkaXVtLVdlYi5lb3RcIik7XG4gIHNyYzogdXJsKFwiZm9udHMvR3JhcGhpay1NZWRpdW0tV2ViLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcImZvbnRzL0dyYXBoaWstTWVkaXVtLVdlYi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImZvbnRzL0dyYXBoaWstTWVkaXVtLVdlYi50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcImZvbnRzL0dyYXBoaWstTWVkaXVtLVdlYi5zdmcjR3JhcGhpayBXZWJcIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsOyB9XG5cbkBrZXlmcmFtZXMgYm91bmNlIHtcbiAgMCUsIDIwJSwgNTAlLCA4MCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7IH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpOyB9IH1cblxuLmJvdW5jZSB7XG4gIGFuaW1hdGlvbjogYm91bmNlIDJzIGluZmluaXRlOyB9XG5cbkBrZXlmcmFtZXMgYm91bmNlLXVwIHtcbiAgMCUsIDIwJSwgNTAlLCA4MCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTsgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNXB4KTsgfSB9XG5cbi5ib3VuY2UtdXAge1xuICBhbmltYXRpb246IGJvdW5jZS11cCA1cyBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycyAhaW1wb3J0YW50OyB9XG5cbkBrZXlmcmFtZXMgc2VtaS1vdmVyLXNjYWxlIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMCkgc2NhbGVZKDApOyB9XG4gIDcwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMS4xKSBzY2FsZVkoMS4xKTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwLjE1O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gfVxuXG4uc2VtaS1vdmVyLXNjYWxlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNlbWktb3Zlci1zY2FsZTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDEwMCUgIWltcG9ydGFudDtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzICFpbXBvcnRhbnQ7IH1cblxuQGtleWZyYW1lcyBmYWRlLW91dC1kb3duIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxNSUsIDApOyB9IH1cblxuc2VjdGlvbi5wcm9kdWN0LWhlcm8gaGdyb3VwLnJlc29sdmVkLCBzZWN0aW9uLnByb2R1Y3QtaW5mbyBhcnRpY2xlLnJlc29sdmVkIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGUtb3V0LWRvd247IH1cblxuQGtleWZyYW1lcyBmYWRlLWluLXJpZ2h0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxNSUsIDAsIDApOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lOyB9IH1cblxuLmZhZGUtaW4tcmlnaHQge1xuICBhbmltYXRpb24tbmFtZTogZmFkZS1pbi1yaWdodDsgfVxuXG5Aa2V5ZnJhbWVzIGZhZGUtaW4tbGVmdCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1JSwgMCwgMCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7IH0gfVxuXG4uZmFkZS1pbi1sZWZ0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGUtaW4tbGVmdDsgfVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbkRvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuLmZhZGVJbkRvd24ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duO1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluRG93bjsgfVxuXG4uZXhwb3N1cmUtaW4ge1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMC44KSBjb250cmFzdCgxLjUpIGh1ZS1yb3RhdGUoLTMwZGVnKTsgfVxuICAuZXhwb3N1cmUtaW4ucmVzb2x2ZWQge1xuICAgIGZpbHRlcjogYnJpZ2h0bmVzcygxKSBjb250cmFzdCgxKSBodWUtcm90YXRlKDApOyB9XG5cbkBrZXlmcmFtZXMgZmFkZUluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBwdWxzZSB7XG4gIDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwcHggcmdiYSgwLCAxNjQsIDIyMywgMC41KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDE2NCwgMjIzLCAwLjUpOyB9XG4gIDgwJSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAxNjQsIDIyMywgMCk7IH1cbiAgMTAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMjBweCByZ2JhKDAsIDE2NCwgMjIzLCAwKTsgfSB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBwdWxzZS1tZWQge1xuICAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMHB4IHJnYmEoMCwgMTY0LCAyMjMsIDAuNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAxNjQsIDIyMywgMC41KTsgfVxuICA4MCUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTY0LCAyMjMsIDApOyB9XG4gIDEwMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDMwcHggcmdiYSgwLCAxNjQsIDIyMywgMCk7IH0gfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcHVsc2UtbGFyZ2Uge1xuICAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMHB4IHJnYmEoMCwgMTY0LCAyMjMsIDAuNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAxNjQsIDIyMywgMC41KTsgfVxuICA4MCUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTY0LCAyMjMsIDApOyB9XG4gIDEwMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDQwcHggcmdiYSgwLCAxNjQsIDIyMywgMCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZSB7XG4gIDAlLCAyMCUsIDUwJSwgODAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpOyB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTsgfSB9XG5cbi5ib3VuY2Uge1xuICBhbmltYXRpb246IGJvdW5jZSAycyBpbmZpbml0ZTsgfVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZS11cCB7XG4gIDAlLCAyMCUsIDUwJSwgODAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7IH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTVweCk7IH0gfVxuXG4uYm91bmNlLXVwIHtcbiAgYW5pbWF0aW9uOiBib3VuY2UtdXAgNXMgaW5maW5pdGU7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMnMgIWltcG9ydGFudDsgfVxuXG5Aa2V5ZnJhbWVzIHNlbWktb3Zlci1zY2FsZSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApIHNjYWxlWSgwKTsgfVxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDEuMSkgc2NhbGVZKDEuMSk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMC4xNTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9IH1cblxuLnNlbWktb3Zlci1zY2FsZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzZW1pLW92ZXItc2NhbGU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAxMDAlICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC41cyAhaW1wb3J0YW50OyB9XG5cbkBrZXlmcmFtZXMgZmFkZS1vdXQtZG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTUlLCAwKTsgfSB9XG5cbnNlY3Rpb24ucHJvZHVjdC1oZXJvIGhncm91cC5yZXNvbHZlZCwgc2VjdGlvbi5wcm9kdWN0LWluZm8gYXJ0aWNsZS5yZXNvbHZlZCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlLW91dC1kb3duOyB9XG5cbkBrZXlmcmFtZXMgZmFkZS1pbi1yaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTUlLCAwLCAwKTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTsgfSB9XG5cbi5mYWRlLWluLXJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGUtaW4tcmlnaHQ7IH1cblxuQGtleWZyYW1lcyBmYWRlLWluLWxlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNSUsIDAsIDApOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lOyB9IH1cblxuLmZhZGUtaW4tbGVmdCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlLWluLWxlZnQ7IH1cblxuQGtleWZyYW1lcyBmYWRlSW5Eb3duIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9XG5cbi5mYWRlSW5Eb3duIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluRG93bjtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd247IH1cblxuLmV4cG9zdXJlLWluIHtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOCkgY29udHJhc3QoMS41KSBodWUtcm90YXRlKC0zMGRlZyk7IH1cbiAgLmV4cG9zdXJlLWluLnJlc29sdmVkIHtcbiAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMSkgY29udHJhc3QoMSkgaHVlLXJvdGF0ZSgwKTsgfVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcHVsc2Uge1xuICAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMHB4IHJnYmEoMCwgMTY0LCAyMjMsIDAuNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAxNjQsIDIyMywgMC41KTsgfVxuICA4MCUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTY0LCAyMjMsIDApOyB9XG4gIDEwMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDIwcHggcmdiYSgwLCAxNjQsIDIyMywgMCk7IH0gfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcHVsc2UtbWVkIHtcbiAgMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDBweCByZ2JhKDAsIDE2NCwgMjIzLCAwLjUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTY0LCAyMjMsIDAuNSk7IH1cbiAgODAlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDE2NCwgMjIzLCAwKTsgfVxuICAxMDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAzMHB4IHJnYmEoMCwgMTY0LCAyMjMsIDApOyB9IH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHB1bHNlLWxhcmdlIHtcbiAgMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDBweCByZ2JhKDAsIDE2NCwgMjIzLCAwLjUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTY0LCAyMjMsIDAuNSk7IH1cbiAgODAlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDE2NCwgMjIzLCAwKTsgfVxuICAxMDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCA0MHB4IHJnYmEoMCwgMTY0LCAyMjMsIDApOyB9IH1cblxuLmRlZmF1bHQtdHlwZSwgYm9keSwgcCwgYSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbnNtYWxsLCBlbSwgc3Ryb25nLCBpbnB1dCwgYnV0dG9uIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICMzNzNmNDU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IH1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDFyZW0gMDsgfVxuICBoMTpmaXJzdC1jaGlsZCwgaDI6Zmlyc3QtY2hpbGQsIGgzOmZpcnN0LWNoaWxkLCBoNDpmaXJzdC1jaGlsZCwgaDU6Zmlyc3QtY2hpbGQsIGg2OmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIGgxIGEsIGgyIGEsIGgzIGEsIGg0IGEsIGg1IGEsIGg2IGEge1xuICAgIGNvbG9yOiBpbmhlcml0OyB9XG5cbmgxIHtcbiAgZm9udC1zaXplOiBjYWxjKDM2cHggKyAyMCAqICgoMTAwdncgLSA0MjBweCkgLyA2MDQpKTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MjBweCkge1xuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogMzZweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogNTZweDsgfSB9XG5cbmgyIHtcbiAgZm9udC1zaXplOiBjYWxjKDM2cHggKyAxMiAqICgoMTAwdncgLSA0MjBweCkgLyA2MDQpKTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MjBweCkge1xuICAgIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogMzZweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogNDhweDsgfSB9XG5cbmgzIHtcbiAgZm9udC1zaXplOiBjYWxjKDMwcHggKyA2ICogKCgxMDB2dyAtIDQyMHB4KSAvIDYwNCkpOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQyMHB4KSB7XG4gICAgaDMge1xuICAgICAgZm9udC1zaXplOiAzMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgaDMge1xuICAgICAgZm9udC1zaXplOiAzNnB4OyB9IH1cblxuaDQge1xuICBmb250LXNpemU6IGNhbGMoMjRweCArIDYgKiAoKDEwMHZ3IC0gNDIwcHgpIC8gNjA0KSk7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDIwcHgpIHtcbiAgICBoNCB7XG4gICAgICBmb250LXNpemU6IDI0cHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICBoNCB7XG4gICAgICBmb250LXNpemU6IDMwcHg7IH0gfVxuXG5oNSB7XG4gIGZvbnQtc2l6ZTogY2FsYygyMHB4ICsgNCAqICgoMTAwdncgLSA0MjBweCkgLyA2MDQpKTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MjBweCkge1xuICAgIGg1IHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIGg1IHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDsgfSB9XG5cbmg2IHtcbiAgZm9udC1zaXplOiBjYWxjKDE4cHggKyAyICogKCgxMDB2dyAtIDQyMHB4KSAvIDYwNCkpOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQyMHB4KSB7XG4gICAgaDYge1xuICAgICAgZm9udC1zaXplOiAxOHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgaDYge1xuICAgICAgZm9udC1zaXplOiAyMHB4OyB9IH1cblxucCwgdWwsIGxpLCBvbCB7XG4gIGZvbnQtc2l6ZTogY2FsYygxNXB4ICsgMyAqICgoMTAwdncgLSA0MjBweCkgLyA0ODApKTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MjBweCkge1xuICAgIHAsIHVsLCBsaSwgb2wge1xuICAgICAgZm9udC1zaXplOiAxNXB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICBwLCB1bCwgbGksIG9sIHtcbiAgICAgIGZvbnQtc2l6ZTogMThweDsgfSB9XG5cbnAge1xuICBsaW5lLWhlaWdodDogMS41ZW07XG4gIG1hcmdpbjogMWVtIDA7IH1cblxuYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5odG1sIHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OyB9XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kOiAjZGRkOyB9XG4gIGJvZHkuaXMtc3RvcHBlZCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ubWF4LWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6ICNGRkY7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDE2MDBweDtcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgLm1heC1jb250YWluZXI6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxNTk5cHgpIHtcbiAgICAubWF4LWNvbnRhaW5lciB7XG4gICAgICBib3JkZXI6IG5vbmU7IH0gfVxuXG4uY29udGFpbmVyIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1heC13aWR0aDogMTI4MHB4O1xuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogNCU7XG4gIHBhZGRpbmctcmlnaHQ6IDQlOyB9XG4gIC5jb250YWluZXI6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5jb250YWluZXIge1xuICAgICAgcGFkZGluZzogMCA0JTsgfSB9XG5cbi5jZjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7IH1cblxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuYnV0dG9uLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udDogaW5oZXJpdDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHdpZHRoOiBhdXRvOyB9XG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDsgfVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG50ZXh0YXJlYSB7XG4gIHJlc2l6ZTogdmVydGljYWw7IH1cblxuaW1nLFxudmlkZW8ge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG5wOmZpcnN0LW9mLXR5cGUge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbnA6bGFzdC1vZi10eXBlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5hLFxubGFiZWwsXG5zZWxlY3QsXG5vcHRpb24sXG5idXR0b24ge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuQGtleWZyYW1lcyBmYWRlLWluLXVwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxNSUsIDApOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lOyB9IH1cblxuQGtleWZyYW1lcyBmYWRlLWluLWRvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xNSUsIDApOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lOyB9IH1cblxuQGtleWZyYW1lcyBvdmVyLXNjYWxlIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsgfVxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGZhZGUtaW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuLmFuaW1hdGVkLCAudGVhbS1tZW1iZXJzIC5ub3RlZCwgLnRlYW0tbWVtYmVyLWltYWdlOmJlZm9yZSwgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0uaXMtYWN0aXZlIC5jb250YWluZXIgdWwubmF2aWdhdGlvbi1jb250YWluZXIgbGkgYSwgc2VjdGlvbi5jb250ZW50LTQwNCAuY29weSBoMSwgc2VjdGlvbi5jb250ZW50LTQwNCAuY29weSBwLCBzZWN0aW9uLmNvbnRlbnQtNDA0IC5jb3B5IGEsIHNlY3Rpb24ucHJvZHVjdC1oZXJvIGZpZ3VyZSwgc2VjdGlvbi5wcm9kdWN0LWhlcm8gaDEsXG5zZWN0aW9uLnByb2R1Y3QtaGVybyBoNCwgc2VjdGlvbi5wcm9kdWN0LWhlcm8gaGdyb3VwLnJlc29sdmVkLCBzZWN0aW9uLnByb2R1Y3QtaW5mbyBhcnRpY2xlLnJlc29sdmVkLCAuYWJvdXQtdGl0bGUgaDEsIC5hYm91dC10aXRsZSBwLCBzZWN0aW9uLmNhcmVlcnMtaGVybyBkaXYuY29weSBoMSwgc2VjdGlvbi5jYXJlZXJzLWhlcm8gZGl2LmNvcHkgcCwgLmhvbWUtaW50cm9kdWN0aW9uIHVsLnBsYXRmb3Jtcy5yZXNvbHZlZCBsaSBhIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNjVzO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyB9XG5cbi5mYWRlLWluLCBzZWN0aW9uLmNvbnRlbnQtNDA0IC5jb3B5IHAsIHNlY3Rpb24ucHJvZHVjdC1oZXJvIGZpZ3VyZSwgLmFib3V0LXRpdGxlIHAsIHNlY3Rpb24uY2FyZWVycy1oZXJvIGRpdi5jb3B5IHAge1xuICBhbmltYXRpb24tbmFtZTogZmFkZS1pbjsgfVxuXG4uZmFkZS1pbi11cCwgLnRlYW0tbWVtYmVycyAubm90ZWQsIC50ZWFtLW1lbWJlci1pbWFnZTpiZWZvcmUsIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmlzLWFjdGl2ZSAuY29udGFpbmVyIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIGEsIHNlY3Rpb24uY29udGVudC00MDQgLmNvcHkgaDEsIHNlY3Rpb24uY29udGVudC00MDQgLmNvcHkgYSwgc2VjdGlvbi5wcm9kdWN0LWhlcm8gaDEsXG5zZWN0aW9uLnByb2R1Y3QtaGVybyBoNCwgLmFib3V0LXRpdGxlIGgxLCBzZWN0aW9uLmNhcmVlcnMtaGVybyBkaXYuY29weSBoMSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlLWluLXVwOyB9XG5cbi5mYWRlLWluLWRvd24ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZS1pbi1kb3duOyB9XG5cbi5vdmVyLXNjYWxlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IG92ZXItc2NhbGU7IH1cblxuLmRlbGF5LTEge1xuICBhbmltYXRpb24tZGVsYXk6IDAuMXM7IH1cblxuLmRlbGF5LTIge1xuICBhbmltYXRpb24tZGVsYXk6IDAuMnM7IH1cblxuLmRlbGF5LTMge1xuICBhbmltYXRpb24tZGVsYXk6IDAuM3M7IH1cblxuLmRlbGF5LTQge1xuICBhbmltYXRpb24tZGVsYXk6IDAuNHM7IH1cblxuLmRlbGF5LTUge1xuICBhbmltYXRpb24tZGVsYXk6IDAuNXM7IH1cblxuLmRlbGF5LTYge1xuICBhbmltYXRpb24tZGVsYXk6IDAuNnM7IH1cblxuLmRlbGF5LTcge1xuICBhbmltYXRpb24tZGVsYXk6IDAuN3M7IH1cblxuLmRlbGF5LTgge1xuICBhbmltYXRpb24tZGVsYXk6IDAuOHM7IH1cblxuLmRlbGF5LTkge1xuICBhbmltYXRpb24tZGVsYXk6IDAuOXM7IH1cblxuLmRlbGF5LTEwIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAxczsgfVxuXG4uZGVsYXktMTEge1xuICBhbmltYXRpb24tZGVsYXk6IDEuMXM7IH1cblxuLmRlbGF5LTEyIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAxLjJzOyB9XG5cbi5kZWxheS0xMyB7XG4gIGFuaW1hdGlvbi1kZWxheTogMS4zczsgfVxuXG4uZGVsYXktMTQge1xuICBhbmltYXRpb24tZGVsYXk6IDEuNHM7IH1cblxuLmRlbGF5LTE1IHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAxLjVzOyB9XG5cbi5kZWxheS0xNiB7XG4gIGFuaW1hdGlvbi1kZWxheTogMS42czsgfVxuXG4uZGVsYXktMTcge1xuICBhbmltYXRpb24tZGVsYXk6IDEuN3M7IH1cblxuLmRlbGF5LTE4IHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAxLjhzOyB9XG5cbi5kZWxheS0xOSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMS45czsgfVxuXG4uZGVsYXktMjAge1xuICBhbmltYXRpb24tZGVsYXk6IDJzOyB9XG5cbmlucHV0IHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG5jb2RlIHtcbiAgcGFkZGluZzogM3B4IDRweDtcbiAgY29sb3I6ICNERjVDMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGNUY1RjU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFMUUxRTg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIG1vbm9zcGFjZTsgfVxuXG5wcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogN3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjVGNUY1O1xuICBib3JkZXI6IDFweCBzb2xpZCAjRTFFMUU4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgbW9ub3NwYWNlO1xuICBsaW5lLWhlaWdodDogMTYwJTsgfVxuXG5ociB7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAxLjVlbSAwOyB9XG5cbm5hdiB1bCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuICBuYXYgdWwgbGkge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDsgfVxuXG51bC50ZXh0IHtcbiAgbWFyZ2luOiAuMzJyZW0gLjk0cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07IH1cbiAgdWwudGV4dCBsaSB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuICAgIHBhZGRpbmc6IC4xMjVyZW0gMDsgfVxuXG5vbC50ZXh0IHtcbiAgbWFyZ2luOiAuMzJyZW0gLjk0cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07IH1cbiAgb2wudGV4dCBsaSB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuICAgIHBhZGRpbmc6IC4xMjVyZW0gMDsgfVxuXG51bC50ZXh0IHVsLFxudWwudGV4dCBvbCxcbm9sLnRleHQgb2wsXG5vbC50ZXh0IHVsIHtcbiAgbWFyZ2luOiAwLjNyZW0gMXJlbSAwOyB9XG5cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG5cbiN3cGFkbWluYmFyIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uYnRuLCBoZWFkZXJbcm9sZT1cImJhbm5lclwiXSB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSBhLmJ0bixcbmJ1dHRvbixcbmlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdIHtcbiAgcGFkZGluZzogMTBweCAyMnB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IGRlZXBza3libHVlO1xuICBjb2xvcjogI0ZGRjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsaW5lLWhlaWdodDogMWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXI6IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZTtcbiAgbWFyZ2luOiAwIDEuMjVyZW0gMCAwO1xuICBwYWRkaW5nOiAwLjYyNXJlbSAyLjI1cmVtO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG4gIC5idG46aG92ZXIsIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIGEuYnRuOmhvdmVyLFxuICBidXR0b246aG92ZXIsXG4gIGlucHV0W3R5cGU9XCJidXR0b25cIl06aG92ZXIsXG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIsXG4gIGlucHV0W3R5cGU9XCJyZXNldFwiXTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwOTljYzsgfVxuICAuYnRuLnNtYWxsLCBoZWFkZXJbcm9sZT1cImJhbm5lclwiXSB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSBhLnNtYWxsLmJ0bixcbiAgYnV0dG9uLnNtYWxsLFxuICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLnNtYWxsLFxuICBpbnB1dFt0eXBlPVwic3VibWl0XCJdLnNtYWxsLFxuICBpbnB1dFt0eXBlPVwicmVzZXRcIl0uc21hbGwge1xuICAgIHBhZGRpbmc6IDAuNDM3NXJlbSAxLjI1cmVtOyB9XG4gIC5idG4ub3V0bGluZSwgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0gdWwubmF2aWdhdGlvbi1jb250YWluZXIgbGkgYS5vdXRsaW5lLmJ0bixcbiAgYnV0dG9uLm91dGxpbmUsXG4gIGlucHV0W3R5cGU9XCJidXR0b25cIl0ub3V0bGluZSxcbiAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS5vdXRsaW5lLFxuICBpbnB1dFt0eXBlPVwicmVzZXRcIl0ub3V0bGluZSB7XG4gICAgY29sb3I6ICMwMGE0ZGY7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAycHggc29saWQgIzAwYTRkZjtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgICAuYnRuLm91dGxpbmU6aG92ZXIsIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIGEub3V0bGluZS5idG46aG92ZXIsXG4gICAgYnV0dG9uLm91dGxpbmU6aG92ZXIsXG4gICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXS5vdXRsaW5lOmhvdmVyLFxuICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ub3V0bGluZTpob3ZlcixcbiAgICBpbnB1dFt0eXBlPVwicmVzZXRcIl0ub3V0bGluZTpob3ZlciB7XG4gICAgICBjb2xvcjogI0ZGRjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGE0ZGY7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjMDBhNGRmO1xuICAgICAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG4gICAgLmJ0bi5vdXRsaW5lOmZvY3VzLCBoZWFkZXJbcm9sZT1cImJhbm5lclwiXSB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSBhLm91dGxpbmUuYnRuOmZvY3VzLFxuICAgIGJ1dHRvbi5vdXRsaW5lOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJidXR0b25cIl0ub3V0bGluZTpmb2N1cyxcbiAgICBpbnB1dFt0eXBlPVwic3VibWl0XCJdLm91dGxpbmU6Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLm91dGxpbmU6Zm9jdXMge1xuICAgICAgY29sb3I6ICNGRkY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhNGRmO1xuICAgICAgYm9yZGVyOiAycHggc29saWQgIzAwYTRkZjtcbiAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgICAuYnRuLm91dGxpbmUud2hpdGUsIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIGEub3V0bGluZS53aGl0ZS5idG4sXG4gICAgYnV0dG9uLm91dGxpbmUud2hpdGUsXG4gICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXS5vdXRsaW5lLndoaXRlLFxuICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ub3V0bGluZS53aGl0ZSxcbiAgICBpbnB1dFt0eXBlPVwicmVzZXRcIl0ub3V0bGluZS53aGl0ZSB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7IH1cbiAgICAgIC5idG4ub3V0bGluZS53aGl0ZTpob3ZlcixcbiAgICAgIGJ1dHRvbi5vdXRsaW5lLndoaXRlOmhvdmVyLFxuICAgICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXS5vdXRsaW5lLndoaXRlOmhvdmVyLFxuICAgICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS5vdXRsaW5lLndoaXRlOmhvdmVyLFxuICAgICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLm91dGxpbmUud2hpdGU6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xuICAgICAgICBjb2xvcjogIzAwYTRkZjsgfVxuXG4uaGVyby1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kOiAjZWZlZmVmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuaGVyby1jb250YWluZXIgLmhlcm8td3JhcCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5oZXJvLWNvbnRhaW5lciAuaGVyby13cmFwOmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAuaGVyby1jb250YWluZXIgLmhlcm8tdGl0bGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIHRvcDogMjAwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBsZWZ0OiAzLjEyNXJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgIC5oZXJvLWNvbnRhaW5lciAuaGVyby10aXRsZSB7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjY1cztcbiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGZhZGUtaW4tcmlnaHQ7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMS4yczsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgICAgLmhlcm8tY29udGFpbmVyIC5oZXJvLXRpdGxlIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAyNHZ3OyB9IH1cbiAgICAuaGVyby1jb250YWluZXIgLmhlcm8tdGl0bGUgcCB7XG4gICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgY29sb3I6ICM3MDdmOGM7IH1cbiAgLmhlcm8tY29udGFpbmVyIC5oZXJvLWljb25zIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMjtcbiAgICB0b3A6IDIwMHB4O1xuICAgIHJpZ2h0OiAzLjEyNXJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgIC5oZXJvLWNvbnRhaW5lciAuaGVyby1pY29ucyB7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjY1cztcbiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGZhZGUtaW4tbGVmdDtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAxLjJzOyB9IH1cbiAgICAuaGVyby1jb250YWluZXIgLmhlcm8taWNvbnMgdWwge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgICAgLmhlcm8tY29udGFpbmVyIC5oZXJvLWljb25zIHVsOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgICAgLmhlcm8tY29udGFpbmVyIC5oZXJvLWljb25zIHVsIGxpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyB9XG4gICAgICAuaGVyby1jb250YWluZXIgLmhlcm8taWNvbnMgdWwgbGk6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIC5oZXJvLWNvbnRhaW5lciAuaGVyby1pY29ucyBsaTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoNTUsIDYzLCA2OSwgMC4xKTtcbiAgICAgIHBhZGRpbmc6IDIwcHggMjVweCAyMHB4IDVweDsgfVxuICAgIC5oZXJvLWNvbnRhaW5lciAuaGVyby1pY29ucyBsaTpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmc6IDIwcHggMDsgfVxuICAgIC5oZXJvLWNvbnRhaW5lciAuaGVyby1pY29ucyBpbWcge1xuICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgd2lkdGg6IGF1dG87IH1cbiAgLmhlcm8tY29udGFpbmVyIGZpZ3VyZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMzAlIGF1dG87XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICAgIHRvcDogMS44NzVyZW07IH1cbiAgICAuaGVyby1jb250YWluZXIgZmlndXJlOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgcGFkZGluZy10b3A6IDgwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgIC5oZXJvLWNvbnRhaW5lciBmaWd1cmUge1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC42NXM7XG4gICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlLWluO1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuOHM7XG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7IH0gfVxuICAuaGVyby1jb250YWluZXIgLmhvdHNwb3Qge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAzO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNDUwbXMgZWFzZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC42NXM7XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZUluOyB9XG4gICAgLmhlcm8tY29udGFpbmVyIC5ob3RzcG90IHNwYW4ge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDE0MTBweDtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAgICAgLmhlcm8tY29udGFpbmVyIC5ob3RzcG90IHNwYW46YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgLmhlcm8tY29udGFpbmVyIC5ob3RzcG90OmhvdmVyIC5ob3RzcG90LWNvcHkge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmhlcm8tY29udGFpbmVyIC5ocy0xIHtcbiAgICBsZWZ0OiA1NSU7XG4gICAgdG9wOiAyMCU7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAyLjJzOyB9XG4gICAgLmhlcm8tY29udGFpbmVyIC5ocy0xIHNwYW4ge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGE0ZGY7IH1cbiAgICAgIC5oZXJvLWNvbnRhaW5lciAuaHMtMSBzcGFuOmJlZm9yZSwgLmhlcm8tY29udGFpbmVyIC5ocy0xIHNwYW46YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwMGE0ZGY7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBhbmltYXRpb246IHB1bHNlLWxhcmdlIDIuNHMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKTtcbiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cbiAgICAgIC5oZXJvLWNvbnRhaW5lciAuaHMtMSBzcGFuOmFmdGVyIHtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAuM3M7XG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMi40czsgfVxuICAuaGVyby1jb250YWluZXIgLmhzLTIge1xuICAgIGxlZnQ6IDUzJTtcbiAgICB0b3A6IDYwJTtcbiAgICBhbmltYXRpb24tZGVsYXk6IDIuNXM7IH1cbiAgICAuaGVyby1jb250YWluZXIgLmhzLTIgc3BhbiB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogMTBweDtcbiAgICAgIGhlaWdodDogMTBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwYTRkZjsgfVxuICAgICAgLmhlcm8tY29udGFpbmVyIC5ocy0yIHNwYW46YmVmb3JlLCAuaGVyby1jb250YWluZXIgLmhzLTIgc3BhbjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYmFja2dyb3VuZDogIzAwYTRkZjtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGFuaW1hdGlvbjogcHVsc2UtbGFyZ2UgMnMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKTtcbiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cbiAgICAgIC5oZXJvLWNvbnRhaW5lciAuaHMtMiBzcGFuOmFmdGVyIHtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAuM3M7XG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMnM7IH1cbiAgLmhlcm8tY29udGFpbmVyIC5ocy0zIHtcbiAgICByaWdodDogMTklO1xuICAgIGJvdHRvbTogNDQlO1xuICAgIGFuaW1hdGlvbi1kZWxheTogMi44czsgfVxuICAgIC5oZXJvLWNvbnRhaW5lciAuaHMtMyBzcGFuIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhNGRmOyB9XG4gICAgICAuaGVyby1jb250YWluZXIgLmhzLTMgc3BhbjpiZWZvcmUsIC5oZXJvLWNvbnRhaW5lciAuaHMtMyBzcGFuOmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMDBhNGRmO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1tZWQgMi4ycyBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQsIDAuNDQsIDEpO1xuICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxuICAgICAgLmhlcm8tY29udGFpbmVyIC5ocy0zIHNwYW46YWZ0ZXIge1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IC4zcztcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyLjJzOyB9XG4gIC5oZXJvLWNvbnRhaW5lciAuaG90c3BvdC1jb3B5IHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjY1cztcbiAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICAgIGJveC1zaGFkb3c6IDAgMC42MjVyZW0gMS4yNXJlbSByZ2JhKDAsIDAsIDAsIDAuMTkpLCAwIDAuMzc1cmVtIDAuMzc1cmVtIHJnYmEoMCwgMCwgMCwgMC4yMyk7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwYWRkaW5nOiAwLjkzNzVyZW0gMS4yNXJlbTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkzKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNDUwbXMgZWFzZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogNDtcbiAgICB3aWR0aDogMjAycHg7XG4gICAgbGVmdDogLTc4cHg7XG4gICAgdG9wOiA1MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA2Mi40Mzc1cmVtO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogLjRzO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40ZW07IH1cbiAgICAuaGVyby1jb250YWluZXIgLmhvdHNwb3QtY29weTphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHRvcDogLTZweDtcbiAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gKDZweCAvIDIpKTtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkICNGRkY7XG4gICAgICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgdHJhbnNwYXJlbnQ7IH1cbiAgLmhlcm8tY29udGFpbmVyIC5oZXJvLWNvcHkge1xuICAgIG1hcmdpbi10b3A6IC0xMCU7XG4gICAgcGFkZGluZzogMCA1JTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgICAuaGVyby1jb250YWluZXIgLmhlcm8tY29weSB7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjY1cztcbiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGZhZGUtaW4tZG93bjtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAxLjRzOyB9IH1cbiAgICAuaGVyby1jb250YWluZXIgLmhlcm8tY29weSBwIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWF4LXdpZHRoOiA2NzBweDtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBmb250LXNpemU6IGNhbGMoMTRweCArIDIgKiAoKDEwMHZ3IC0gNDIwcHgpIC8gNjA0KSk7XG4gICAgICBsaW5lLWhlaWdodDogMS44ZW07XG4gICAgICBjb2xvcjogIzcwN2Y4YzsgfVxuICAgICAgLmhlcm8tY29udGFpbmVyIC5oZXJvLWNvcHkgcDphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQyMHB4KSB7XG4gICAgICAgIC5oZXJvLWNvbnRhaW5lciAuaGVyby1jb3B5IHAge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsgfSB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgLmhlcm8tY29udGFpbmVyIC5oZXJvLWNvcHkgcCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4OyB9IH1cbiAgICAuaGVyby1jb250YWluZXIgLmhlcm8tY29weSBhLmJ0biwgLmhlcm8tY29udGFpbmVyIC5oZXJvLWNvcHkgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0gdWwubmF2aWdhdGlvbi1jb250YWluZXIgbGkgYS5idG4sIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIC5oZXJvLWNvbnRhaW5lciAuaGVyby1jb3B5IGEuYnRuIHtcbiAgICAgIGNvbG9yOiAjMUMzMDQ1O1xuICAgICAgYm9yZGVyOiAycHggc29saWQgIzFDMzA0NTtcbiAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiA4MHB4OyB9XG4gICAgICAuaGVyby1jb250YWluZXIgLmhlcm8tY29weSBhLmJ0bjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZDogIzFDMzA0NTsgfVxuICAgICAgLmhlcm8tY29udGFpbmVyIC5oZXJvLWNvcHkgYS5idG46Zm9jdXMge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQ6ICMxQzMwNDU7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0MjBweCkge1xuICAgICAgICAuaGVyby1jb250YWluZXIgLmhlcm8tY29weSBhLmJ0biwgLmhlcm8tY29udGFpbmVyIC5oZXJvLWNvcHkgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0gdWwubmF2aWdhdGlvbi1jb250YWluZXIgbGkgYS5idG4sIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIC5oZXJvLWNvbnRhaW5lciAuaGVyby1jb3B5IGEuYnRuIHtcbiAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjYyNXJlbTtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxLjg3NXJlbTsgfVxuICAgICAgICAgIC5oZXJvLWNvbnRhaW5lciAuaGVyby1jb3B5IGEuYnRuOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzLjEyNXJlbTsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAuaGVyby1jb250YWluZXIgLmhlcm8tdGl0bGUge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAxMDBweDtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgIC5oZXJvLWNvbnRhaW5lciAuaGVyby10aXRsZSBzdmcge1xuICAgICAgICB3aWR0aDogNjAlOyB9XG4gICAgLmhlcm8tY29udGFpbmVyIGZpZ3VyZSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDE1MCUgYXV0bztcbiAgICAgIHRvcDogOTBweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5oZXJvLWNvbnRhaW5lciBmaWd1cmU6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiA5MCU7IH1cbiAgICAuaGVyby1jb250YWluZXIgLmhvdHNwb3Qge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5oZXJvLWNvbnRhaW5lciAuaGVyby1pY29ucyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IGF1dG87XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiA0MHB4IGF1dG87IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSBhbmQgKG1heC13aWR0aDogNjM5cHgpIHtcbiAgICAuaGVyby1jb250YWluZXIgLmhlcm8taWNvbnMge1xuICAgICAgcGFkZGluZy10b3A6IDIuNXJlbTsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgIC5oZXJvLWNvbnRhaW5lciAuaGVyby1pY29ucyB1bCBsaSB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7IH1cbiAgICAuaGVyby1jb250YWluZXIgLmhlcm8tY29weSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gICAgICAuaGVyby1jb250YWluZXIgLmhlcm8tY29weSBwIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG5cbi5wbGF0Zm9ybS1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNmY3O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2UxZTRlNztcbiAgY2xlYXI6IGJvdGg7XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZy10b3A6IDUuNjI1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogNS42MjVyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLnBsYXRmb3JtLWNvbnRhaW5lciB7XG4gICAgICBwYWRkaW5nLXRvcDogMi41cmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTsgfSB9XG4gIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LmNvcHkge1xuICAgIHBhZGRpbmc6IDAgNSU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC13aWR0aDogNTYuMjVyZW07IH1cbiAgICAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5jb3B5IGgxIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBHcmFwaGlrIFRoaW4gV2ViO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogc3VicGl4ZWwtYW50aWFsaWFzZWQ7XG4gICAgICBsaW5lLWhlaWdodDogMy4xMjVyZW07IH1cbiAgICAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5jb3B5IHAge1xuICAgICAgbWFyZ2luLXRvcDogMS41NjI1cmVtO1xuICAgICAgY29sb3I6ICM3MDdmOGM7XG4gICAgICBmb250LXNpemU6IDEuMTI1cmVtOyB9XG4gIC5wbGF0Zm9ybS1jb250YWluZXIgLmhhbmQtY3Vyc29yIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDIwcHggYXV0byAwOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAucGxhdGZvcm0tY29udGFpbmVyIC5oYW5kLWN1cnNvciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXgtd2lkdGg6IDY0LjgxMjVyZW07XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIgc3ZnIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyIHN2ZyB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7IH0gfVxuICAgICAgLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyIHN2ZyAuc2Vjb25kYXJ5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgICAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIgc3ZnIC5zZWNvbmRhcnkgLmFuaW1hdGVkLCAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIgc3ZnIC5zZWNvbmRhcnkgLnRlYW0tbWVtYmVycyAubm90ZWQsIC50ZWFtLW1lbWJlcnMgLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyIHN2ZyAuc2Vjb25kYXJ5IC5ub3RlZCwgLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyIHN2ZyAuc2Vjb25kYXJ5IC50ZWFtLW1lbWJlci1pbWFnZTpiZWZvcmUsIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lciBzdmcgLnNlY29uZGFyeSBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5pcy1hY3RpdmUgLmNvbnRhaW5lciB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSBhLCBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5pcy1hY3RpdmUgLmNvbnRhaW5lciB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIgc3ZnIC5zZWNvbmRhcnkgYSwgLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyIHN2ZyAuc2Vjb25kYXJ5IHNlY3Rpb24uY29udGVudC00MDQgLmNvcHkgaDEsIHNlY3Rpb24uY29udGVudC00MDQgLmNvcHkgLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyIHN2ZyAuc2Vjb25kYXJ5IGgxLCAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIgc3ZnIC5zZWNvbmRhcnkgc2VjdGlvbi5jb250ZW50LTQwNCAuY29weSBwLCBzZWN0aW9uLmNvbnRlbnQtNDA0IC5jb3B5IC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lciBzdmcgLnNlY29uZGFyeSBwLCAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIgc3ZnIC5zZWNvbmRhcnkgc2VjdGlvbi5jb250ZW50LTQwNCAuY29weSBhLCBzZWN0aW9uLmNvbnRlbnQtNDA0IC5jb3B5IC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lciBzdmcgLnNlY29uZGFyeSBhLCAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIgc3ZnIC5zZWNvbmRhcnkgc2VjdGlvbi5wcm9kdWN0LWhlcm8gZmlndXJlLCBzZWN0aW9uLnByb2R1Y3QtaGVybyAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIgc3ZnIC5zZWNvbmRhcnkgZmlndXJlLCAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIgc3ZnIC5zZWNvbmRhcnkgc2VjdGlvbi5wcm9kdWN0LWhlcm8gaDEsIHNlY3Rpb24ucHJvZHVjdC1oZXJvIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lciBzdmcgLnNlY29uZGFyeSBoMSwgLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyIHN2ZyAuc2Vjb25kYXJ5XG4gICAgICAgIHNlY3Rpb24ucHJvZHVjdC1oZXJvIGg0LFxuICAgICAgICBzZWN0aW9uLnByb2R1Y3QtaGVybyAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIgc3ZnIC5zZWNvbmRhcnkgaDQsIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lciBzdmcgLnNlY29uZGFyeSBzZWN0aW9uLnByb2R1Y3QtaGVybyBoZ3JvdXAucmVzb2x2ZWQsIHNlY3Rpb24ucHJvZHVjdC1oZXJvIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lciBzdmcgLnNlY29uZGFyeSBoZ3JvdXAucmVzb2x2ZWQsIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lciBzdmcgLnNlY29uZGFyeSBzZWN0aW9uLnByb2R1Y3QtaW5mbyBhcnRpY2xlLnJlc29sdmVkLCBzZWN0aW9uLnByb2R1Y3QtaW5mbyAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIgc3ZnIC5zZWNvbmRhcnkgYXJ0aWNsZS5yZXNvbHZlZCwgLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyIHN2ZyAuc2Vjb25kYXJ5IC5hYm91dC10aXRsZSBoMSwgLmFib3V0LXRpdGxlIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lciBzdmcgLnNlY29uZGFyeSBoMSwgLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyIHN2ZyAuc2Vjb25kYXJ5IC5hYm91dC10aXRsZSBwLCAuYWJvdXQtdGl0bGUgLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyIHN2ZyAuc2Vjb25kYXJ5IHAsIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lciBzdmcgLnNlY29uZGFyeSBzZWN0aW9uLmNhcmVlcnMtaGVybyBkaXYuY29weSBoMSwgc2VjdGlvbi5jYXJlZXJzLWhlcm8gZGl2LmNvcHkgLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyIHN2ZyAuc2Vjb25kYXJ5IGgxLCAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIgc3ZnIC5zZWNvbmRhcnkgc2VjdGlvbi5jYXJlZXJzLWhlcm8gZGl2LmNvcHkgcCwgc2VjdGlvbi5jYXJlZXJzLWhlcm8gZGl2LmNvcHkgLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyIHN2ZyAuc2Vjb25kYXJ5IHAsIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lciBzdmcgLnNlY29uZGFyeSAuaG9tZS1pbnRyb2R1Y3Rpb24gdWwucGxhdGZvcm1zLnJlc29sdmVkIGxpIGEsIC5ob21lLWludHJvZHVjdGlvbiB1bC5wbGF0Zm9ybXMucmVzb2x2ZWQgbGkgLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyIHN2ZyAuc2Vjb25kYXJ5IGEge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lciBzdmcgLmxvZ28tY2lyY2xlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgICAgIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lciBzdmcgLm91dGVyLWNpcmNsZSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgICAgLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyIHN2ZyB7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBoZWlnaHQ6IDEwLjkzNzVyZW07IH0gfVxuICAgIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lci5yZXNvbHZlZCAubG9nby1jaXJjbGUge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICAgIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lci5yZXNvbHZlZCAub3V0ZXItY2lyY2xlIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbiAgICAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIuc2Vjb25kYXJ5LXJlc29sdmVkIC5zZWNvbmRhcnkge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lci5zZWNvbmRhcnktcmVzb2x2ZWQgLnNlY29uZGFyeSAuYW5pbWF0ZWQsIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lci5zZWNvbmRhcnktcmVzb2x2ZWQgLnNlY29uZGFyeSAudGVhbS1tZW1iZXJzIC5ub3RlZCwgLnRlYW0tbWVtYmVycyAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIuc2Vjb25kYXJ5LXJlc29sdmVkIC5zZWNvbmRhcnkgLm5vdGVkLCAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIuc2Vjb25kYXJ5LXJlc29sdmVkIC5zZWNvbmRhcnkgLnRlYW0tbWVtYmVyLWltYWdlOmJlZm9yZSwgLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyLnNlY29uZGFyeS1yZXNvbHZlZCAuc2Vjb25kYXJ5IGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmlzLWFjdGl2ZSAuY29udGFpbmVyIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIGEsIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmlzLWFjdGl2ZSAuY29udGFpbmVyIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lci5zZWNvbmRhcnktcmVzb2x2ZWQgLnNlY29uZGFyeSBhLCAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIuc2Vjb25kYXJ5LXJlc29sdmVkIC5zZWNvbmRhcnkgc2VjdGlvbi5jb250ZW50LTQwNCAuY29weSBoMSwgc2VjdGlvbi5jb250ZW50LTQwNCAuY29weSAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIuc2Vjb25kYXJ5LXJlc29sdmVkIC5zZWNvbmRhcnkgaDEsIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lci5zZWNvbmRhcnktcmVzb2x2ZWQgLnNlY29uZGFyeSBzZWN0aW9uLmNvbnRlbnQtNDA0IC5jb3B5IHAsIHNlY3Rpb24uY29udGVudC00MDQgLmNvcHkgLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyLnNlY29uZGFyeS1yZXNvbHZlZCAuc2Vjb25kYXJ5IHAsIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lci5zZWNvbmRhcnktcmVzb2x2ZWQgLnNlY29uZGFyeSBzZWN0aW9uLmNvbnRlbnQtNDA0IC5jb3B5IGEsIHNlY3Rpb24uY29udGVudC00MDQgLmNvcHkgLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyLnNlY29uZGFyeS1yZXNvbHZlZCAuc2Vjb25kYXJ5IGEsIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lci5zZWNvbmRhcnktcmVzb2x2ZWQgLnNlY29uZGFyeSBzZWN0aW9uLnByb2R1Y3QtaGVybyBmaWd1cmUsIHNlY3Rpb24ucHJvZHVjdC1oZXJvIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lci5zZWNvbmRhcnktcmVzb2x2ZWQgLnNlY29uZGFyeSBmaWd1cmUsIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lci5zZWNvbmRhcnktcmVzb2x2ZWQgLnNlY29uZGFyeSBzZWN0aW9uLnByb2R1Y3QtaGVybyBoMSwgc2VjdGlvbi5wcm9kdWN0LWhlcm8gLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyLnNlY29uZGFyeS1yZXNvbHZlZCAuc2Vjb25kYXJ5IGgxLCAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIuc2Vjb25kYXJ5LXJlc29sdmVkIC5zZWNvbmRhcnlcbiAgICAgIHNlY3Rpb24ucHJvZHVjdC1oZXJvIGg0LFxuICAgICAgc2VjdGlvbi5wcm9kdWN0LWhlcm8gLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyLnNlY29uZGFyeS1yZXNvbHZlZCAuc2Vjb25kYXJ5IGg0LCAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIuc2Vjb25kYXJ5LXJlc29sdmVkIC5zZWNvbmRhcnkgc2VjdGlvbi5wcm9kdWN0LWhlcm8gaGdyb3VwLnJlc29sdmVkLCBzZWN0aW9uLnByb2R1Y3QtaGVybyAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIuc2Vjb25kYXJ5LXJlc29sdmVkIC5zZWNvbmRhcnkgaGdyb3VwLnJlc29sdmVkLCAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIuc2Vjb25kYXJ5LXJlc29sdmVkIC5zZWNvbmRhcnkgc2VjdGlvbi5wcm9kdWN0LWluZm8gYXJ0aWNsZS5yZXNvbHZlZCwgc2VjdGlvbi5wcm9kdWN0LWluZm8gLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyLnNlY29uZGFyeS1yZXNvbHZlZCAuc2Vjb25kYXJ5IGFydGljbGUucmVzb2x2ZWQsIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lci5zZWNvbmRhcnktcmVzb2x2ZWQgLnNlY29uZGFyeSAuYWJvdXQtdGl0bGUgaDEsIC5hYm91dC10aXRsZSAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIuc2Vjb25kYXJ5LXJlc29sdmVkIC5zZWNvbmRhcnkgaDEsIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lci5zZWNvbmRhcnktcmVzb2x2ZWQgLnNlY29uZGFyeSAuYWJvdXQtdGl0bGUgcCwgLmFib3V0LXRpdGxlIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lci5zZWNvbmRhcnktcmVzb2x2ZWQgLnNlY29uZGFyeSBwLCAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIuc2Vjb25kYXJ5LXJlc29sdmVkIC5zZWNvbmRhcnkgc2VjdGlvbi5jYXJlZXJzLWhlcm8gZGl2LmNvcHkgaDEsIHNlY3Rpb24uY2FyZWVycy1oZXJvIGRpdi5jb3B5IC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lci5zZWNvbmRhcnktcmVzb2x2ZWQgLnNlY29uZGFyeSBoMSwgLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyLnNlY29uZGFyeS1yZXNvbHZlZCAuc2Vjb25kYXJ5IHNlY3Rpb24uY2FyZWVycy1oZXJvIGRpdi5jb3B5IHAsIHNlY3Rpb24uY2FyZWVycy1oZXJvIGRpdi5jb3B5IC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lci5zZWNvbmRhcnktcmVzb2x2ZWQgLnNlY29uZGFyeSBwLCAucGxhdGZvcm0tY29udGFpbmVyIGRpdi5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIuc2Vjb25kYXJ5LXJlc29sdmVkIC5zZWNvbmRhcnkgLmhvbWUtaW50cm9kdWN0aW9uIHVsLnBsYXRmb3Jtcy5yZXNvbHZlZCBsaSBhLCAuaG9tZS1pbnRyb2R1Y3Rpb24gdWwucGxhdGZvcm1zLnJlc29sdmVkIGxpIC5wbGF0Zm9ybS1jb250YWluZXIgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lci5zZWNvbmRhcnktcmVzb2x2ZWQgLnNlY29uZGFyeSBhIHtcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjRzO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsgfVxuICAgICAgLnBsYXRmb3JtLWNvbnRhaW5lciBkaXYucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyLnNlY29uZGFyeS1yZXNvbHZlZCAuc2Vjb25kYXJ5IC5zZWNvbmRhcnktc2VtaS1jaXJjbGUge1xuICAgICAgICBvcGFjaXR5OiAwLjI7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5wbGF0Zm9ybS1jb250YWluZXIgI3BsYXRmb3JtLWdyYXBoaWMge1xuICAgICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgICBtYXJnaW4tdG9wOiA5MHB4OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5wbGF0Zm9ybS1jb250YWluZXIge1xuICAgIG1pbi1oZWlnaHQ6IDkuN3JlbTsgfVxuICAgIC5wbGF0Zm9ybS1jb250YWluZXIgLnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lciAjcGxhdGZvcm0tZ3JhcGhpYyB7XG4gICAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICAgIG1hcmdpbjogMy43NXJlbSAwIDAgMDtcbiAgICAgIG1pbi1oZWlnaHQ6IDQwMHB4OyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzOXB4KSB7XG4gICAgLnBsYXRmb3JtLWNvbnRhaW5lciAucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyICNwbGF0Zm9ybS1ncmFwaGljIHtcbiAgICAgIG1hcmdpbjogMS44NzVyZW0gMCAwIDA7XG4gICAgICBtaW4taGVpZ2h0OiAyNDBweDsgfSB9XG5cbi5kZXZlbG9wZXIta2l0LWNvbnRhaW5lciBhcnRpY2xlLmNvcHkge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmRldmVsb3Blci1raXQtY29udGFpbmVyIGFydGljbGUuY29weSBoMyB7XG4gICAgcGFkZGluZzogNi4yNXJlbSAwIDEuODc1cmVtO1xuICAgIGZvbnQtZmFtaWx5OiBHcmFwaGlrIFRoaW4gV2ViO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBzdWJwaXhlbC1hbnRpYWxpYXNlZDsgfVxuICAuZGV2ZWxvcGVyLWtpdC1jb250YWluZXIgYXJ0aWNsZS5jb3B5IHAge1xuICAgIG1hcmdpbi10b3A6IDAuMzEyNXJlbTtcbiAgICBjb2xvcjogIzcwN2Y4YztcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1heC13aWR0aDogOTAwcHg7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gICAgLmRldmVsb3Blci1raXQtY29udGFpbmVyIGFydGljbGUuY29weSBwOmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuXG4uZGV2ZWxvcGVyLWtpdC1jb250YWluZXIgLmJ1eW5vdyB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmRldmVsb3Blci1raXQtY29udGFpbmVyIC5zZGstcGx1cy1iYWNrc3BpbiB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDQxNXB4O1xuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiA0LjM3NXJlbTtcbiAgaGVpZ2h0OiAxMi41cmVtOyB9XG4gIC5kZXZlbG9wZXIta2l0LWNvbnRhaW5lciAuc2RrLXBsdXMtYmFja3NwaW46YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgICAuZGV2ZWxvcGVyLWtpdC1jb250YWluZXIgLnNkay1wbHVzLWJhY2tzcGluIC5zZGssXG4gICAgLmRldmVsb3Blci1raXQtY29udGFpbmVyIC5zZGstcGx1cy1iYWNrc3BpbiAuYmFja3NwaW4ge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuOHMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpOyB9IH1cbiAgLmRldmVsb3Blci1raXQtY29udGFpbmVyIC5zZGstcGx1cy1iYWNrc3BpbiAucGx1cyB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMC41czsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgICAgIC5kZXZlbG9wZXIta2l0LWNvbnRhaW5lciAuc2RrLXBsdXMtYmFja3NwaW4gLnBsdXMge1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7IH0gfVxuICAuZGV2ZWxvcGVyLWtpdC1jb250YWluZXIgLnNkay1wbHVzLWJhY2tzcGluIC5zZGsge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMi44MTI1cmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MHB4KTsgfVxuICAgIC5kZXZlbG9wZXIta2l0LWNvbnRhaW5lciAuc2RrLXBsdXMtYmFja3NwaW4gLnNkayBpbWcge1xuICAgICAgbWF4LWhlaWdodDogNy44MTI1cmVtO1xuICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICAuZGV2ZWxvcGVyLWtpdC1jb250YWluZXIgLnNkay1wbHVzLWJhY2tzcGluIC5zZGsgaDUge1xuICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDEuODc1cmVtO1xuICAgICAgY29sb3I6ICMwMGE0ZGY7IH1cbiAgLmRldmVsb3Blci1raXQtY29udGFpbmVyIC5zZGstcGx1cy1iYWNrc3BpbiAucGx1cyB7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICBjb2xvcjogIzAwYTRkZjtcbiAgICBtYXJnaW4tdG9wOiAyLjVyZW07XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjVyZW07XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsgfVxuICAuZGV2ZWxvcGVyLWtpdC1jb250YWluZXIgLnNkay1wbHVzLWJhY2tzcGluIC5iYWNrc3BpbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MHB4KTsgfVxuICAgIC5kZXZlbG9wZXIta2l0LWNvbnRhaW5lciAuc2RrLXBsdXMtYmFja3NwaW4gLmJhY2tzcGluIGltZyB7XG4gICAgICBtYXgtaGVpZ2h0OiA3LjgxMjVyZW07XG4gICAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5kZXZlbG9wZXIta2l0LWNvbnRhaW5lciAuc2RrLXBsdXMtYmFja3NwaW4gLmJhY2tzcGluIGg1IHtcbiAgICAgIG1hcmdpbi10b3A6IDEuODc1cmVtO1xuICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgIGNvbG9yOiAjMDBhNGRmOyB9XG4gIC5kZXZlbG9wZXIta2l0LWNvbnRhaW5lciAuc2RrLXBsdXMtYmFja3NwaW4ucmVzb2x2ZWQgLmJhY2tzcGluLFxuICAuZGV2ZWxvcGVyLWtpdC1jb250YWluZXIgLnNkay1wbHVzLWJhY2tzcGluLnJlc29sdmVkIC5zZGsge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuICAuZGV2ZWxvcGVyLWtpdC1jb250YWluZXIgLnNkay1wbHVzLWJhY2tzcGluLnJlc29sdmVkIC5wbHVzIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLmRldmVsb3Blci1raXQtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwIDUlOyB9XG4gICAgLmRldmVsb3Blci1raXQtY29udGFpbmVyIGFydGljbGUuY29weSBoMyB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgcGFkZGluZy10b3A6IDEwJTsgfVxuICAgIC5kZXZlbG9wZXIta2l0LWNvbnRhaW5lciAuc2RrLXBsdXMtYmFja3NwaW4ge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDI2NXB4O1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi10b3A6IDQuMzc1cmVtO1xuICAgICAgaGVpZ2h0OiAxMi41cmVtOyB9XG4gICAgICAuZGV2ZWxvcGVyLWtpdC1jb250YWluZXIgLnNkay1wbHVzLWJhY2tzcGluOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgICAgLmRldmVsb3Blci1raXQtY29udGFpbmVyIC5zZGstcGx1cy1iYWNrc3BpbiAuc2RrIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMS41NjI1cmVtOyB9XG4gICAgICAgIC5kZXZlbG9wZXIta2l0LWNvbnRhaW5lciAuc2RrLXBsdXMtYmFja3NwaW4gLnNkayBpbWcge1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDVyZW07XG4gICAgICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICAgICAgLmRldmVsb3Blci1raXQtY29udGFpbmVyIC5zZGstcGx1cy1iYWNrc3BpbiAuc2RrIGg1IHtcbiAgICAgICAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxLjg3NXJlbTtcbiAgICAgICAgICBjb2xvcjogIzAwYTRkZjsgfVxuICAgICAgLmRldmVsb3Blci1raXQtY29udGFpbmVyIC5zZGstcGx1cy1iYWNrc3BpbiAucGx1cyB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgICAgICBjb2xvcjogIzAwYTRkZjtcbiAgICAgICAgbWFyZ2luLXRvcDogMS40Mzc1cmVtO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07IH1cbiAgICAgIC5kZXZlbG9wZXIta2l0LWNvbnRhaW5lciAuc2RrLXBsdXMtYmFja3NwaW4gLmJhY2tzcGluIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAgICAgLmRldmVsb3Blci1raXQtY29udGFpbmVyIC5zZGstcGx1cy1iYWNrc3BpbiAuYmFja3NwaW4gaW1nIHtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiA1cmVtO1xuICAgICAgICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgICAgIC5kZXZlbG9wZXIta2l0LWNvbnRhaW5lciAuc2RrLXBsdXMtYmFja3NwaW4gLmJhY2tzcGluIGg1IHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxLjg3NXJlbTtcbiAgICAgICAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICAgICAgICBjb2xvcjogIzAwYTRkZjsgfSB9XG5cbi5kZXZlbG9wZXIta2l0LWNvbnRhaW5lci5wcm9kdWN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjZmNztcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nLWJvdHRvbTogMTAlOyB9XG4gIC5kZXZlbG9wZXIta2l0LWNvbnRhaW5lci5wcm9kdWN0IGFydGljbGUuY29weSBoMyB7XG4gICAgcGFkZGluZy10b3A6IDMuMTI1cmVtOyB9XG4gIC5kZXZlbG9wZXIta2l0LWNvbnRhaW5lci5wcm9kdWN0IC5idXlub3cge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiAzLjEyNXJlbTsgfVxuXG4uc2lnbnVwLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5zaWdudXAtY29udGFpbmVyIGFydGljbGUuY29weSB7XG4gICAgbWF4LXdpZHRoOiA0MC42MjVyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg1NSwgNjMsIDY5LCAwLjIpO1xuICAgIHBhZGRpbmc6IDAgNSU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMyUgYXV0byA1JTsgfVxuICAgIC5zaWdudXAtY29udGFpbmVyIGFydGljbGUuY29weSBkaXYuc2lnbnVwLW1heC1jb250YWluZXIge1xuICAgICAgcGFkZGluZzogMy43NXJlbSAwO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDQ1MHB4O1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIG1heC13aWR0aDogMjguMTI1cmVtOyB9XG4gICAgICAuc2lnbnVwLWNvbnRhaW5lciBhcnRpY2xlLmNvcHkgZGl2LnNpZ251cC1tYXgtY29udGFpbmVyOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgICAgLnNpZ251cC1jb250YWluZXIgYXJ0aWNsZS5jb3B5IGRpdi5zaWdudXAtbWF4LWNvbnRhaW5lciBwIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tdG9wOiAwcmVtO1xuICAgICAgICBjb2xvcjogIzcwN2Y4YztcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzLjQzNzVyZW07IH1cbiAgICAgIC5zaWdudXAtY29udGFpbmVyIGFydGljbGUuY29weSBkaXYuc2lnbnVwLW1heC1jb250YWluZXIgLmJ0biB7XG4gICAgICAgIG1hcmdpbjogMiUgYXV0bzsgfVxuXG4uZHBwIHVsIHtcbiAgbWFyZ2luLWxlZnQ6IDEuODc1cmVtOyB9XG4gIC5kcHAgdWwgPiBsaSB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwIDAuNXJlbSAwLjMxMjVyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGNvbG9yOiAjNTk2NTcwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTsgfVxuICAgIC5kcHAgdWwgPiBsaTo6YmVmb3JlIHtcbiAgICAgIGNvbG9yOiAjMDBhNGRmO1xuICAgICAgY29udGVudDogXCJcXDIwMjJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IC0wLjQzNzVyZW07XG4gICAgICB0b3A6IDAuNDM3NXJlbTtcbiAgICAgIGZvbnQtc2l6ZTogMS44NzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogLTAuNDM3NXJlbTsgfVxuICAgIC5kcHAgdWwgPiBsaSA+IHVsIHtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAwIDA7IH1cbiAgICAgIC5kcHAgdWwgPiBsaSA+IHVsID4gbGkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMTI1cmVtOyB9XG4gICAgICAgIC5kcHAgdWwgPiBsaSA+IHVsID4gbGk6OmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogJ1xcQkEnO1xuICAgICAgICAgIHRvcDogMC42ODc1cmVtO1xuICAgICAgICAgIGxlZnQ6IC0wLjMxMjVyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gICAgICAgIC5kcHAgdWwgPiBsaSA+IHVsID4gbGkgPiB1bCA+IGxpOjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6ICdcXDJEJztcbiAgICAgICAgICB0b3A6IDAuMzc1cmVtO1xuICAgICAgICAgIGxlZnQ6IC0wLjMxMjVyZW07IH1cbiAgICAgICAgLmRwcCB1bCA+IGxpID4gdWwgPiBsaSA+IHVsID4gbGkgPiB1bCA+IGxpOjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6ICdcXDI1QjgnO1xuICAgICAgICAgIGxlZnQ6IC0wLjQzNzVyZW07IH1cblxuLnRyaS1pbWFnZSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBjbGVhcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgd2lkdGg6IDMzLjMzMzMzMyU7XG4gIG1hcmdpbi1sZWZ0OiAwJTtcbiAgbWFyZ2luLXJpZ2h0OiAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogbGVmdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB0cmFuc2l0aW9uOiBhbGwgMC44cyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7IH1cbiAgLnRyaS1pbWFnZTphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLnRyaS1pbWFnZTphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLnRyaS1pbWFnZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICBwYWRkaW5nLXRvcDogNjIuNSU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLnRyaS1pbWFnZSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwJTsgfVxuICAgICAgLnRyaS1pbWFnZTphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7IH0gfVxuXG4udGVhbS1tZW1iZXJzIHtcbiAgcGFkZGluZy10b3A6IDQuNjg3NXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDMuMTI1cmVtOyB9XG4gIC50ZWFtLW1lbWJlcnMgLnNsaWNlIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSg1NSwgNjMsIDY5LCAwLjE1KTsgfVxuICAgIC50ZWFtLW1lbWJlcnMgLnNsaWNlIC5zbGljZS1pdGVtIHtcbiAgICAgIHBhZGRpbmctdG9wOiAyLjVyZW07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtOyB9XG4gICAgICAudGVhbS1tZW1iZXJzIC5zbGljZSAuc2xpY2UtaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIuNXJlbTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSg1NSwgNjMsIDY5LCAwLjE1KTsgfVxuICAgICAgLnRlYW0tbWVtYmVycyAuc2xpY2UgLnNsaWNlLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMS44NzVyZW07IH1cbiAgICAudGVhbS1tZW1iZXJzIC5zbGljZTpmaXJzdC1vZi10eXBlIHtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7IH1cbiAgICAudGVhbS1tZW1iZXJzIC5zbGljZTpsYXN0LW9mLXR5cGUgLnNsaWNlLWl0ZW06bGFzdC1jaGlsZCAudGVhbS1tZW1iZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuICAudGVhbS1tZW1iZXJzIC50ZWFtLW1lbWJlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLnRlYW0tbWVtYmVycyAudGVhbS1tZW1iZXI6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgLnRlYW0tbWVtYmVycyAudGVhbS1tZW1iZXI6aG92ZXIgLnRlYW0tbWVtYmVyLWltYWdlOmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAudGVhbS1tZW1iZXJzIC5ub3RlZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNy41cmVtO1xuICAgIGxlZnQ6IDByZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDI2MHB4O1xuICAgIGJhY2tncm91bmQ6ICNGRkY7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBsaW5lLWhlaWdodDogMS4zZW07XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IC4zcztcbiAgICBhbmltYXRpb24tZGVsYXk6IC4xczsgfVxuICAgIC50ZWFtLW1lbWJlcnMgLm5vdGVkIHNwYW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiA2JSA4JTtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAgIC50ZWFtLW1lbWJlcnMgLm5vdGVkIHNwYW46YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgdG9wOiAtMC42MjVyZW07XG4gICAgICAgIGxlZnQ6IDMuNTYyNXJlbTtcbiAgICAgICAgei1pbmRleDogMTI7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDEwcHggc29saWQgI2ZmZjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAudGVhbS1tZW1iZXJzIHtcbiAgICAgIHBhZGRpbmc6IDMuMTI1cmVtIDcuNSU7IH1cbiAgICAgIC50ZWFtLW1lbWJlcnMgLnNsaWNlLFxuICAgICAgLnRlYW0tbWVtYmVycyAuc2xpY2UtaXRlbSB7XG4gICAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAgICAgLnRlYW0tbWVtYmVycyAudGVhbS1tZW1iZXIge1xuICAgICAgICBwYWRkaW5nOiAxLjU2MjVyZW0gMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoNTUsIDYzLCA2OSwgMC4xNSk7IH0gfVxuXG4udGVhbS1tZW1iZXItaW1hZ2Uge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIHdpZHRoOiAyNSU7XG4gIG1hcmdpbi1sZWZ0OiAwJTtcbiAgbWFyZ2luLXJpZ2h0OiAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnRlYW0tbWVtYmVyLWltYWdlOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAudGVhbS1tZW1iZXItaW1hZ2U6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDE1cHgpO1xuICAgIGJvdHRvbTogLTQ4cHg7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybChcImltZy9hYm91dC9ob3Zlci1pY29uLnN2Z1wiKSBuby1yZXBlYXQgMCAwO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogLjNzOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC50ZWFtLW1lbWJlci1pbWFnZSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLnRlYW0tbWVtYmVyLWltYWdlOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfSB9XG5cbi50ZWFtLW1lbWJlci1wcm9maWxlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA2LjI1cmVtO1xuICBib3JkZXI6IDVweCBzb2xpZCAjZmZmO1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnRlYW0tbWVtYmVyLXByb2ZpbGU6aG92ZXIge1xuICAgIGZpbHRlcjogZ3JheXNjYWxlKDApO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7IH1cblxuLnRlYW0tbWVtYmVyLWluZm8ge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIHdpZHRoOiA3NSU7XG4gIG1hcmdpbi1sZWZ0OiAwJTtcbiAgbWFyZ2luLXJpZ2h0OiAwJTtcbiAgcGFkZGluZzogMC42MjVyZW07IH1cbiAgLnRlYW0tbWVtYmVyLWluZm86YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC50ZWFtLW1lbWJlci1pbmZvIGg1IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjMjQ2N2I4O1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBmb250LXdlaWdodDogMjAwOyB9XG4gIC50ZWFtLW1lbWJlci1pbmZvIC50ZWFtLW1lbWJlci10aXRsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDEuMjVyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLnRlYW0tbWVtYmVyLWluZm8ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgICAgIG1hcmdpbi1yaWdodDogMCU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgIC50ZWFtLW1lbWJlci1pbmZvOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgICAgLnRlYW0tbWVtYmVyLWluZm8gLnRlYW0tbWVtYmVyLXRpdGxlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAudGVhbS1tZW1iZXItaW5mbyBwIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG5cbi50ZWFtLW1lbWJlci1zb2NpYWwge1xuICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICBwYWRkaW5nOiAwLjA2MjVyZW0gMC4yNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I3YmVjNTtcbiAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgZWFzZS1pbi1vdXQgMC4zczsgfVxuICAudGVhbS1tZW1iZXItc29jaWFsIHN2ZyB7XG4gICAgd2lkdGg6IDAuNzVyZW07XG4gICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgIGZpbGw6ICNGRkY7IH1cbiAgLnRlYW0tbWVtYmVyLXNvY2lhbDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI0NjdiODsgfVxuXG4udGVhbS1tZW1iZXItdGl0bGUge1xuICBtYXJnaW46IDAuNXJlbSAwIDAuMzEyNXJlbSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2I3YmVjNTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi50ZWFtLW1lbWJlci1iaW8ge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07IH1cblxuLnNsaWNlIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5zbGljZSA+IC5zbGljZS1pdGVtIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdzsgfSB9XG5cbi5zbGljZS1pdGVtIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG5zZWN0aW9uLmJ1bGxldHMtd2l0aC1mZWF0dXJlZC1pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNmY3O1xuICBwYWRkaW5nOiA1LjYyNXJlbSAxMCUgMCAxMCU7IH1cbiAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2U6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIHNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIC5tYWluLWltYWdlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjbGVhcjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgIHdpZHRoOiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgIG1hcmdpbi1yaWdodDogMCU7XG4gICAgbWFyZ2luLXRvcDogMS4yNXJlbTsgfVxuICAgIHNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIC5tYWluLWltYWdlOmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgIHNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIC5tYWluLWltYWdlIC5zaGFkb3cge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC00MHB4O1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiA5OHB4O1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1nL2dvYS1zaGFkb3cucG5nXCIpO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZVkoMC4xKTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjZzIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTsgfVxuICAgIHNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIC5tYWluLWltYWdlIGZpZ3VyZSB7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC42cyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBvcGFjaXR5OiAwOyB9XG4gICAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLm1haW4taW1hZ2UucmVzb2x2ZWQgZmlndXJlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICBzZWN0aW9uLmJ1bGxldHMtd2l0aC1mZWF0dXJlZC1pbWFnZSAubWFpbi1pbWFnZS5yZXNvbHZlZCAuc2hhZG93IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWSgxKTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgICAgIHNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIC5tYWluLWltYWdlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBsZWZ0OiA1MS41JTtcbiAgICAgICAgbGVmdDogNTAlOyB9XG4gICAgICAgIHNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIC5tYWluLWltYWdlIGZpZ3VyZSB7XG4gICAgICAgICAgaGVpZ2h0OiAzMy40Mzc1cmVtOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICBzZWN0aW9uLmJ1bGxldHMtd2l0aC1mZWF0dXJlZC1pbWFnZSAubWFpbi1pbWFnZSB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgIHNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIC5tYWluLWltYWdlOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAgICAgICBzZWN0aW9uLmJ1bGxldHMtd2l0aC1mZWF0dXJlZC1pbWFnZSAubWFpbi1pbWFnZTpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgICAgICAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLm1haW4taW1hZ2UgZmlndXJlIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0ICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgICBzZWN0aW9uLmJ1bGxldHMtd2l0aC1mZWF0dXJlZC1pbWFnZSAubWFpbi1pbWFnZSBmaWd1cmU6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMTAwJTsgfSB9XG4gIHNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIC5jb3B5IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjbGVhcjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgIHdpZHRoOiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgIG1hcmdpbi1yaWdodDogMCU7IH1cbiAgICBzZWN0aW9uLmJ1bGxldHMtd2l0aC1mZWF0dXJlZC1pbWFnZSAuY29weTphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICBzZWN0aW9uLmJ1bGxldHMtd2l0aC1mZWF0dXJlZC1pbWFnZSAuY29weSBoMiB7XG4gICAgICBmb250LWZhbWlseTogR3JhcGhpayBUaGluIFdlYjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgIG1hcmdpbjogMS41NjI1cmVtIDAgMCAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtOyB9XG4gICAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLmNvcHkgcCB7XG4gICAgICBtYXJnaW4tdG9wOiAzLjEyNXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDMuNzVyZW07XG4gICAgICBtYXgtd2lkdGg6IDMwcmVtO1xuICAgICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxLjg3NXJlbTtcbiAgICAgIGNvbG9yOiAjNzA3ZjhjOyB9XG4gICAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLmNvcHkgaDQge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07XG4gICAgICBjb2xvcjogIzQzNGM1MzsgfVxuICAgIHNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIC5jb3B5IHVsIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDYuMjVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICAgICAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLmNvcHkgdWw6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgICBzZWN0aW9uLmJ1bGxldHMtd2l0aC1mZWF0dXJlZC1pbWFnZSAuY29weSB1bDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwJTsgfVxuICAgICAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLmNvcHkgdWwgbGk6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwi4oCiIFwiO1xuICAgICAgICBmb250LXNpemU6IDEuNTYyNXJlbTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb2xvcjogIzAwYTRkZjtcbiAgICAgICAgbGVmdDogLTE1cHg7XG4gICAgICAgIHRvcDogLTFweDsgfVxuICAgICAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLmNvcHkgdWwgbGkge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyLjE4NzVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwJTsgfVxuICAgICAgICBzZWN0aW9uLmJ1bGxldHMtd2l0aC1mZWF0dXJlZC1pbWFnZSAuY29weSB1bCBsaTphZnRlciB7XG4gICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICAgICAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLmNvcHkgdWwgbGk6bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwJTtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7IH1cbiAgICAgICAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLmNvcHkgdWwgbGk6bnRoLWNoaWxkKDJuICsgMSkge1xuICAgICAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAgICAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLmNvcHkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGxlZnQ6IC01MS41JTtcbiAgICAgICAgbGVmdDogLTUwJTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLmNvcHkge1xuICAgICAgICBwYWRkaW5nOiAxLjUlO1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAgICAgICBzZWN0aW9uLmJ1bGxldHMtd2l0aC1mZWF0dXJlZC1pbWFnZSAuY29weTpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAgICAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLmNvcHk6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gICAgICAgIHNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIC5jb3B5IHAge1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgbWF4LXdpZHRoOiBub25lOyB9XG4gICAgICAgIHNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIC5jb3B5IHVsIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTsgfVxuICAgICAgICAgIHNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIC5jb3B5IHVsIGxpIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAlOyB9XG4gICAgICAgICAgICBzZWN0aW9uLmJ1bGxldHMtd2l0aC1mZWF0dXJlZC1pbWFnZSAuY29weSB1bCBsaTphZnRlciB7XG4gICAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICAgICAgICAgIHNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIC5jb3B5IHVsIGxpOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAlOyB9IH1cbiAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLmdhbGxlcnktZ3JpZCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiA2LjI1cmVtOyB9XG4gICAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLmdhbGxlcnktZ3JpZDphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICBzZWN0aW9uLmJ1bGxldHMtd2l0aC1mZWF0dXJlZC1pbWFnZSAuZ2FsbGVyeS1ncmlkOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwJTsgfVxuICAgIHNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIC5nYWxsZXJ5LWdyaWQgZGl2IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLmdhbGxlcnktZ3JpZCBkaXY6OmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAwJTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDY0JTtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMHB4IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAgICAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLmdhbGxlcnktZ3JpZCBkaXY6aG92ZXI6OmFmdGVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgM3B4ICMwMGE0ZGY7IH1cbiAgICAgIHNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIC5nYWxsZXJ5LWdyaWQgZGl2IC56b29tLWltZy13cmFwIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgICAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLmdhbGxlcnktZ3JpZCBkaXYgLnpvb20taW1nLXdyYXAgaW1nIHtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAgIHNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIC5nYWxsZXJ5LWdyaWQgZGl2IGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgICAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLmdhbGxlcnktZ3JpZCBkaXYgaW1nOm5vdCg6Zmlyc3Qtb2YtdHlwZSwgOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLmdhbGxlcnktZ3JpZCBkaXYge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICAgIHdpZHRoOiAxNS4yMDgzMzMlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMS43NSU7IH1cbiAgICAgICAgc2VjdGlvbi5idWxsZXRzLXdpdGgtZmVhdHVyZWQtaW1hZ2UgLmdhbGxlcnktZ3JpZCBkaXY6YWZ0ZXIge1xuICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgICAgIHNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIC5nYWxsZXJ5LWdyaWQgZGl2Om50aC1jaGlsZCg2bikge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMCU7XG4gICAgICAgICAgZmxvYXQ6IHJpZ2h0OyB9XG4gICAgICAgIHNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIC5nYWxsZXJ5LWdyaWQgZGl2Om50aC1jaGlsZCg2biArIDEpIHtcbiAgICAgICAgICBjbGVhcjogYm90aDsgfVxuICAgICAgICBzZWN0aW9uLmJ1bGxldHMtd2l0aC1mZWF0dXJlZC1pbWFnZSAuZ2FsbGVyeS1ncmlkIGRpdjo6YWZ0ZXIge1xuICAgICAgICAgIHdpZHRoOiAxMDAuMyU7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDY0JTsgfVxuICAgICAgICBzZWN0aW9uLmJ1bGxldHMtd2l0aC1mZWF0dXJlZC1pbWFnZSAuZ2FsbGVyeS1ncmlkIGRpdiBpbWcge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogYXV0bzsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICBzZWN0aW9uLmJ1bGxldHMtd2l0aC1mZWF0dXJlZC1pbWFnZSB7XG4gICAgICBwYWRkaW5nOiAzLjc1cmVtIDUlIDAgNSU7IH1cbiAgICAgIHNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIGRpdiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuOTM3NXJlbTsgfSB9XG5cbmltZ1tkYXRhLWFjdGlvbj1cInpvb21cIl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGN1cnNvcjogLXdlYmtpdC16b29tLWluO1xuICBjdXJzb3I6IC1tb3otem9vbS1pbjsgfVxuXG4uem9vbS1pbWcsXG4uem9vbS1pbWctd3JhcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogNjY2O1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAzMDBtcztcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDMwMG1zO1xuICB0cmFuc2l0aW9uOiBhbGwgMzAwbXM7IH1cblxuaW1nLnpvb20taW1nIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjdXJzb3I6IC13ZWJraXQtem9vbS1vdXQ7XG4gIGN1cnNvcjogLW1vei16b29tLW91dDsgfVxuXG4uem9vbS1vdmVybGF5IHtcbiAgei1pbmRleDogNDIwO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGZpbHRlcjogXCJhbHBoYShvcGFjaXR5PTApXCI7XG4gIG9wYWNpdHk6IDA7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcztcbiAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtczsgfVxuXG4uem9vbS1vdmVybGF5LW9wZW4gLnpvb20tb3ZlcmxheSB7XG4gIGZpbHRlcjogXCJhbHBoYShvcGFjaXR5PTEwMClcIjtcbiAgb3BhY2l0eTogMTsgfVxuXG4uem9vbS1vdmVybGF5LW9wZW4sXG4uem9vbS1vdmVybGF5LXRyYW5zaXRpb25pbmcge1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSB7XG4gIHBhZGRpbmc6IDQuNjg3NXJlbSA1JSAyLjVyZW0gNSU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY2Zjc7IH1cbiAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuY29weXJpZ2h0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjbGVhcjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgIHdpZHRoOiAzMy4zMzMzMzMlO1xuICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAgICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuY29weXJpZ2h0IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBsZWZ0OiAtMzQuMzMzMzMzJTsgfSB9XG4gICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuY29weXJpZ2h0OmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgIGZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0gLmNvcHlyaWdodCBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICBjb2xvcjogIzdlOGM5ODsgfVxuICAgIGZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0gLmNvcHlyaWdodCBwOmZpcnN0LW9mLXR5cGUge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEuNTYyNXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICBmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIC5jb3B5cmlnaHQgcDpsYXN0LW9mLXR5cGUge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICBmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIC5jb3B5cmlnaHQgdWwge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgcGFkZGluZy10b3A6IDAuMTg3NXJlbTsgfVxuICAgICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuY29weXJpZ2h0IHVsIGxpIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgMC42MjVyZW07XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNhOGIyYmE7IH1cbiAgICAgICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuY29weXJpZ2h0IHVsIGxpOm50aC1vZi10eXBlKDEpIHtcbiAgICAgICAgICBwYWRkaW5nOiAwIDAuNjI1cmVtIDAgMDsgfVxuICAgICAgICBmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIC5jb3B5cmlnaHQgdWwgbGk6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgICAgICBmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIC5jb3B5cmlnaHQgdWwgbGkgYSB7XG4gICAgICAgICAgY29sb3I6ICMwMGE0ZGY7IH1cbiAgICAgICAgICBmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIC5jb3B5cmlnaHQgdWwgbGkgYTpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogIzJkYzdmZjsgfVxuICBmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIC5zb2NpYWwtbWVkaWEge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBub25lO1xuICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgd2lkdGg6IDMzLjMzMzMzMyU7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgIG1hcmdpbi1yaWdodDogMCU7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIG1heC1oZWlnaHQ6IDMuMTI1cmVtOyB9XG4gICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuc29jaWFsLW1lZGlhOmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgICAgIGZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0gLnNvY2lhbC1tZWRpYSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGVmdDogLTM0LjMzMzMzMyU7IH0gfVxuICAgIGZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0gLnNvY2lhbC1tZWRpYSB1bCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1heC13aWR0aDogMjE2cHg7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gICAgICBmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIC5zb2NpYWwtbWVkaWEgdWw6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuc29jaWFsLW1lZGlhIGxpIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2QzZDhkYztcbiAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7IH1cbiAgICAgIGZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0gLnNvY2lhbC1tZWRpYSBsaTpudGgtb2YtdHlwZSgzKSB7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTsgfVxuICAgICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuc29jaWFsLW1lZGlhIGxpIHN2ZyB7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjVweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI1cHg7IH1cbiAgICAgICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuc29jaWFsLW1lZGlhIGxpIHN2ZyBwYXRoIHtcbiAgICAgICAgICBmaWxsOiAjYjdiZWM1OyB9XG4gICAgICBmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIC5zb2NpYWwtbWVkaWEgbGk6aG92ZXIgc3ZnIHBhdGgge1xuICAgICAgICBmaWxsOiAjN2U4Yzk4OyB9XG4gIGZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0gLmNsZWFyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICBmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIC5zdWJzY3JpYmUtYnRuIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjbGVhcjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgIHdpZHRoOiAzMy4zMzMzMzMlO1xuICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDIuODEyNXJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgICAgIGZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0gLnN1YnNjcmliZS1idG4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGxlZnQ6IDY4LjY2NjY2NyU7IH0gfVxuICAgIGZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0gLnN1YnNjcmliZS1idG46YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuc3Vic2NyaWJlLWJ0biBmb3JtIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuc3Vic2NyaWJlLWJ0biBmb3JtOmhvdmVyIGJ1dHRvbiB7XG4gICAgICAgIGNvbG9yOiAjMDBhNGRmOyB9XG4gICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuc3Vic2NyaWJlLWJ0biBpbnB1dCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICAgIGNvbG9yOiAjN2U4Yzk4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDNweCBzb2xpZCAjZDNkOGRjO1xuICAgICAgcGFkZGluZzogMC45Mzc1cmVtIDMuMTI1cmVtIDAuOTM3NXJlbSAxLjEyNXJlbTtcbiAgICAgIHdpZHRoOiAxOC43NXJlbTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IH1cbiAgICAgIGZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0gLnN1YnNjcmliZS1idG4gaW5wdXQ6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICNiN2JlYzU7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuc3Vic2NyaWJlLWJ0biBpbnB1dCB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAgIGZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0gLnN1YnNjcmliZS1idG4gYnV0dG9uIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNnB4O1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjYThiMmJhO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgICAgIGZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0gLnN1YnNjcmliZS1idG4gYnV0dG9uIC5hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICNiN2JlYzU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjYjdiZWM1O1xuICAgICAgICB3aWR0aDogMC42MjVyZW07XG4gICAgICAgIGhlaWdodDogMC42MjVyZW07XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7IH1cbiAgICAgIGZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0gLnN1YnNjcmliZS1idG4gYnV0dG9uOmhvdmVyIC5hcnJvdyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzAwYTRkZjsgfVxuICAgICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuc3Vic2NyaWJlLWJ0biBidXR0b246Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICBmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIHtcbiAgICAgIGhlaWdodDogMjByZW07IH1cbiAgICAgIGZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0gLmNvcHlyaWdodCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuODc1cmVtOyB9XG4gICAgICAgIGZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0gLmNvcHlyaWdodDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAgICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuY29weXJpZ2h0Omxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAgICAgICBmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIC5jb3B5cmlnaHQgdWwge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIG1heC13aWR0aDogMjYwcHg7XG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gICAgICAgICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuY29weXJpZ2h0IHVsOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gICAgICAgICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuY29weXJpZ2h0IHVsOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gICAgICAgICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuY29weXJpZ2h0IHVsOmFmdGVyIHtcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgICAgICBmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIC5jb3B5cmlnaHQgcDpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTsgfVxuICAgICAgICAgIGZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0gLmNvcHlyaWdodCBwOmZpcnN0LW9mLXR5cGU6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAgICAgICBmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIC5jb3B5cmlnaHQgcDpmaXJzdC1vZi10eXBlOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gICAgICAgIGZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0gLmNvcHlyaWdodCBwIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTsgfVxuICAgICAgICAgIGZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0gLmNvcHlyaWdodCBwOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gICAgICAgICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuY29weXJpZ2h0IHA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgICAgIGZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0gLnNvY2lhbC1tZWRpYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTsgfVxuICAgICAgICBmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIC5zb2NpYWwtbWVkaWE6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gICAgICAgIGZvb3Rlcltyb2xlPVwiY29udGVudGluZm9cIl0gLnNvY2lhbC1tZWRpYTpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgICAgICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuc29jaWFsLW1lZGlhIGxpIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwcmVtOyB9XG4gICAgICBmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIC5zdWJzY3JpYmUtYnRuIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiAyOTBweDtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAgICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuc3Vic2NyaWJlLWJ0bjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAgICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuc3Vic2NyaWJlLWJ0bjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgICAgICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSAuc3Vic2NyaWJlLWJ0bjphZnRlciB7XG4gICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgZGlzcGxheTogdGFibGU7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgZm9vdGVyW3JvbGU9XCJjb250ZW50aW5mb1wiXSB7XG4gICAgICBtaW4taGVpZ2h0OiAyMy43NXJlbTsgfSB9XG5cbmhlYWRlcltyb2xlPVwiYmFubmVyXCJdIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbWF4LXdpZHRoOiAxNjAwcHg7XG4gIHotaW5kZXg6IDE7IH1cbiAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0gLm5hdi1zb2NpYWwtbWVkaWEge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0gLndyYXAge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0gLmxvZ28tY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiAyLjVyZW07XG4gICAgaGVpZ2h0OiA0LjM3NXJlbTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTJyZW07IH1cbiAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0gdWwubmF2aWdhdGlvbi1jb250YWluZXIge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXSB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaTpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDAuNjg3NXJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtOyB9XG4gICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXSB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSBhIHtcbiAgICAgICAgY29sb3I6ICNGRkY7IH1cbiAgICAgICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0gdWwubmF2aWdhdGlvbi1jb250YWluZXIgbGkgYTpub3QoLmJ0bikge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHBhZGRpbmc6IDQuMzc1cmVtIDEuODc1cmVtO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgICAgICAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIGE6bm90KC5idG4pIHNwYW4ge1xuICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgICAgICAgICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXSB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSBhOm5vdCguYnRuKSBzcGFuOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiA1MCU7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAtOHB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZTsgfVxuICAgICAgICAgICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0gdWwubmF2aWdhdGlvbi1jb250YWluZXIgbGkgYTpub3QoLmJ0bikuYWN0aXZlIHNwYW46OmFmdGVyIHtcbiAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgcmlnaHQ6IDA7IH1cbiAgICAgICAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIGE6bm90KC5idG4pOmhvdmVyIHNwYW46OmFmdGVyIHtcbiAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgcmlnaHQ6IDA7IH0gfVxuICAgICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXSB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSBhLmJ0biB7XG4gICAgICAgICAgbWFyZ2luOiAzLjI1cmVtIDAgMCAxLjg3NXJlbTtcbiAgICAgICAgICBjb2xvcjogIzAwYTRkZjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0gLm5hdi1idXktbm93IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmhlYWRlci0tcGlubmVkIHtcbiAgICB6LWluZGV4OiA0O1xuICAgIHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgYmFja2dyb3VuZDogI0ZGRjtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7IH1cbiAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5oZWFkZXItLXBpbm5lZCAud3JhcCAuaGFtLXdyYXAgc3BhbiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW4tdG9wOiA5cHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiA5cHg7XG4gICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5oZWFkZXItLXBpbm5lZCAud3JhcCAuaGFtLXdyYXAgc3BhbiwgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0uaGVhZGVyLS1waW5uZWQgLndyYXAgLmhhbS13cmFwIHNwYW46OmJlZm9yZSwgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0uaGVhZGVyLS1waW5uZWQgLndyYXAgLmhhbS13cmFwIHNwYW46OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzU5NjU3MDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgICAgICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCAtbW96LXRyYW5zZm9ybTtcbiAgICAgICAgLW8tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgLW8tdHJhbnNmb3JtO1xuICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCB0cmFuc2Zvcm07XG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcztcbiAgICAgICAgLW1vei10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICAgICAgICAtby10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzOyB9XG4gICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5oZWFkZXItLXBpbm5lZCAud3JhcCAuaGFtLXdyYXAgc3Bhbjo6YmVmb3JlLCBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5oZWFkZXItLXBpbm5lZCAud3JhcCAuaGFtLXdyYXAgc3Bhbjo6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmhlYWRlci0tcGlubmVkIC53cmFwIC5oYW0td3JhcCBzcGFuOjpiZWZvcmUge1xuICAgICAgICB0b3A6IC05cHg7IH1cbiAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmhlYWRlci0tcGlubmVkIC53cmFwIC5oYW0td3JhcCBzcGFuOjphZnRlciB7XG4gICAgICAgIHRvcDogOXB4OyB9XG4gICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0uaGVhZGVyLS1waW5uZWQgLmxvZ28tY29udGFpbmVyIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IDUuNjI1cmVtO1xuICAgICAgaGVpZ2h0OiAxLjgxMjVyZW07XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgcGFkZGluZzogMC44NzVyZW0gMDsgfVxuICAgICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0uaGVhZGVyLS1waW5uZWQgLmxvZ28tY29udGFpbmVyIHN2ZyB7XG4gICAgICAgIHdpZHRoOiA3NXB4O1xuICAgICAgICBoZWlnaHQ6IDEuODEyNXJlbTsgfVxuICAgICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0uaGVhZGVyLS1waW5uZWQgLmxvZ28tY29udGFpbmVyIHBhdGgubGV0dGVycyB7XG4gICAgICAgIGZpbGw6ICM1OTY1NzA7IH1cbiAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5oZWFkZXItLXBpbm5lZCB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSBhOm5vdCguYnRuKSB7XG4gICAgICBjb2xvcjogIzU5NjU3MDtcbiAgICAgIHBhZGRpbmc6IDEuMjVyZW0gMS44NzVyZW07XG4gICAgICBmb250LXNpemU6IDAuODEyNXJlbTsgfVxuICAgICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0uaGVhZGVyLS1waW5uZWQgdWwubmF2aWdhdGlvbi1jb250YWluZXIgbGkgYTpub3QoLmJ0bik6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzAwYTRkZjsgfVxuICAgICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0uaGVhZGVyLS1waW5uZWQgdWwubmF2aWdhdGlvbi1jb250YWluZXIgbGkgYTpub3QoLmJ0bikgc3Bhbjo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0uaGVhZGVyLS1waW5uZWQgdWwubmF2aWdhdGlvbi1jb250YWluZXIgbGkgYS5idG4ge1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmhlYWRlci0tcGlubmVkIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIGEuYWN0aXZlIHtcbiAgICAgIGNvbG9yOiAjMDBhNGRmOyB9XG4gICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5oZWFkZXItLXBpbm5lZCB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSBhLmFjdGl2ZSBzcGFuOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5oZWFkZXItLXBpbm5lZCB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSBhLmJ0biB7XG4gICAgICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgY29sb3I6ICMwMGE0ZGY7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIHBhZGRpbmc6IDAuNDM3NXJlbSAxLjI1cmVtO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjMDBhNGRmO1xuICAgICAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG4gICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5oZWFkZXItLXBpbm5lZCB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSBhLmJ0bjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjRkZGO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhNGRmO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjMDBhNGRmO1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmhlYWRlci0tcGlubmVkIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIGEuYnRuOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGE0ZGY7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICMwMGE0ZGY7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgb3V0bGluZTogbm9uZTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmhlYWRlci0tcGlubmVkIC5sb2dvLWNvbnRhaW5lciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNjI1cmVtOyB9IH1cbiAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0uaGVhZGVyLS10b3Age1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0uaXMtYWN0aXZlIHtcbiAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICB6LWluZGV4OiAxMDsgfVxuICAgICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0uaXMtYWN0aXZlIC5jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB6LWluZGV4OiAyOyB9XG4gICAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmlzLWFjdGl2ZSAuY29udGFpbmVyIHBhdGgubGV0dGVycyB7XG4gICAgICAgICAgZmlsbDogI0ZGRjsgfVxuICAgICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5pcy1hY3RpdmUgLmNvbnRhaW5lciB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciB7XG4gICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxNXZoO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGZsb2F0OiBub25lOyB9XG4gICAgICAgICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0uaXMtYWN0aXZlIC5jb250YWluZXIgdWwubmF2aWdhdGlvbi1jb250YWluZXIgbGkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gICAgICAgICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5pcy1hY3RpdmUgLmNvbnRhaW5lciB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSBhIHtcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIDAuOTM3NXJlbTtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMDsgfSB9XG4gICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSBhbmQgKG1heC1oZWlnaHQ6IDUwMHB4KSB7XG4gICAgICAgICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5pcy1hY3RpdmUgLmNvbnRhaW5lciB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSBhIHtcbiAgICAgICAgICAgICAgcGFkZGluZzogMC45Mzc1cmVtIDAuOTM3NXJlbTsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgICAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmlzLWFjdGl2ZSAuY29udGFpbmVyIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIHNwYW4ge1xuICAgICAgICAgICAgICBmb250LXNpemU6IGNhbGMoMzJweCArIDE2ICogKCgxMDB2dyAtIDMyMHB4KSAvIDcwMykpOyB9IH1cbiAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIGFuZCAobWF4LXdpZHRoOiAzMjBweCkge1xuICAgICAgICAgICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0uaXMtYWN0aXZlIC5jb250YWluZXIgdWwubmF2aWdhdGlvbi1jb250YWluZXIgbGkgc3BhbiB7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDsgfSB9XG4gICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSBhbmQgKG1pbi13aWR0aDogMTAyM3B4KSB7XG4gICAgICAgICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5pcy1hY3RpdmUgLmNvbnRhaW5lciB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSBzcGFuIHtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiA0OHB4OyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICAgICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0uaXMtYWN0aXZlIC5jb250YWluZXIgdWwubmF2aWdhdGlvbi1jb250YWluZXIgbGk6bnRoLWNoaWxkKDEpIGEge1xuICAgICAgICAgICAgICBjb2xvcjogI2M2MzkzNjsgfVxuICAgICAgICAgICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0uaXMtYWN0aXZlIC5jb250YWluZXIgdWwubmF2aWdhdGlvbi1jb250YWluZXIgbGk6bnRoLWNoaWxkKDIpIGEge1xuICAgICAgICAgICAgICBjb2xvcjogIzk3Mzc3ZDtcbiAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAuMXM7IH1cbiAgICAgICAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmlzLWFjdGl2ZSAuY29udGFpbmVyIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpOm50aC1jaGlsZCgzKSBhIHtcbiAgICAgICAgICAgICAgY29sb3I6ICM2NDM4ODA7XG4gICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogLjJzOyB9XG4gICAgICAgICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5pcy1hY3RpdmUgLmNvbnRhaW5lciB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaTpudGgtY2hpbGQoNCkgYSB7XG4gICAgICAgICAgICAgIGNvbG9yOiAjMjU2YmI3O1xuICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IC4zczsgfVxuICAgICAgICAgICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0uaXMtYWN0aXZlIC5jb250YWluZXIgdWwubmF2aWdhdGlvbi1jb250YWluZXIgbGk6bnRoLWNoaWxkKDUpIGEge1xuICAgICAgICAgICAgICBjb2xvcjogIzE5OThlODtcbiAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAuNHM7IH1cbiAgICAgICAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmlzLWFjdGl2ZSAuY29udGFpbmVyIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpOmhvdmVyIGEge1xuICAgICAgICAgICAgICBjb2xvcjogI0ZGRjsgfVxuICAgICAgICAgICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0uaXMtYWN0aXZlIC5jb250YWluZXIgdWwubmF2aWdhdGlvbi1jb250YWluZXIgbGk6YWN0aXZlIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgxNjgsIDUwLCA2NCwgMC40KSwgcmdiYSgxMTksIDUwLCAxMTIsIDAuNCkpOyB9XG4gICAgICAgICAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmlzLWFjdGl2ZSAuY29udGFpbmVyIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpOmFjdGl2ZSBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAgICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5pcy1hY3RpdmUgLmNvbnRhaW5lciB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lci5yZXNvbHZlZCBsaSBhIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmlzLWFjdGl2ZSAubmF2LXNvY2lhbC1tZWRpYSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIGJvdHRvbTogMzBweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgd2lkdGg6IDIxNXB4O1xuICAgICAgICB6LWluZGV4OiAzOyB9XG4gICAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmlzLWFjdGl2ZSAubmF2LXNvY2lhbC1tZWRpYSBsaSB7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzVmNmU3NDtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsgfVxuICAgICAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmlzLWFjdGl2ZSAubmF2LXNvY2lhbC1tZWRpYSBsaTpudGgtb2YtdHlwZSgzKSB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7IH1cbiAgICAgICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5pcy1hY3RpdmUgLm5hdi1zb2NpYWwtbWVkaWEgbGkgc3ZnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyNXB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDI1cHg7IH1cbiAgICAgICAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmlzLWFjdGl2ZSAubmF2LXNvY2lhbC1tZWRpYSBsaSBzdmcgcGF0aCB7XG4gICAgICAgICAgICAgIGZpbGw6ICM1ZjZlNzQ7IH1cbiAgICAgICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5pcy1hY3RpdmUgLm5hdi1zb2NpYWwtbWVkaWEgbGk6aG92ZXIgc3ZnIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogI0ZGRjsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSBhbmQgKG1heC1oZWlnaHQ6IDUwMHB4KSB7XG4gICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5pcy1hY3RpdmUgLm5hdi1zb2NpYWwtbWVkaWEge1xuICAgICAgICBib3R0b206IDA7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0gLndyYXAge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nLXRvcDogMC4zMTI1cmVtOyB9XG4gICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXSAud3JhcCAuaGFtLXdyYXAge1xuICAgICAgICB3aWR0aDogNjBweDtcbiAgICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXSAud3JhcCAuaGFtLXdyYXAgc3BhbiB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIG1hcmdpbi10b3A6IDlweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA5cHg7XG4gICAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICB0b3A6IDI0cHg7XG4gICAgICAgICAgbGVmdDogMTlweDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIC53cmFwIC5oYW0td3JhcCBzcGFuLCBoZWFkZXJbcm9sZT1cImJhbm5lclwiXSAud3JhcCAuaGFtLXdyYXAgc3Bhbjo6YmVmb3JlLCBoZWFkZXJbcm9sZT1cImJhbm5lclwiXSAud3JhcCAuaGFtLXdyYXAgc3Bhbjo6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcbiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgLXdlYmtpdC10cmFuc2Zvcm07XG4gICAgICAgICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IsIC1tb3otdHJhbnNmb3JtO1xuICAgICAgICAgICAgLW8tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgLW8tdHJhbnNmb3JtO1xuICAgICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgdHJhbnNmb3JtO1xuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICAgICAgICAgICAgLW1vei10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICAgICAgICAgICAgLW8tdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcztcbiAgICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuM3M7IH1cbiAgICAgICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXSAud3JhcCAuaGFtLXdyYXAgc3Bhbjo6YmVmb3JlLCBoZWFkZXJbcm9sZT1cImJhbm5lclwiXSAud3JhcCAuaGFtLXdyYXAgc3Bhbjo6YWZ0ZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgY29udGVudDogXCJcIjsgfVxuICAgICAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIC53cmFwIC5oYW0td3JhcCBzcGFuOjpiZWZvcmUge1xuICAgICAgICAgICAgdG9wOiAtOXB4OyB9XG4gICAgICAgICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0gLndyYXAgLmhhbS13cmFwIHNwYW46OmFmdGVyIHtcbiAgICAgICAgICAgIHRvcDogOXB4OyB9XG4gICAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIC53cmFwIC5oYW0td3JhcC5pcy1hY3RpdmUgc3BhbiB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAgICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0gLndyYXAgLmhhbS13cmFwLmlzLWFjdGl2ZSBzcGFuOjpiZWZvcmUge1xuICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDlweCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg5cHgpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg5cHgpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDlweCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOXB4KSByb3RhdGUoNDVkZWcpOyB9XG4gICAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIC53cmFwIC5oYW0td3JhcC5pcy1hY3RpdmUgc3Bhbjo6YWZ0ZXIge1xuICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC05cHgpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC05cHgpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTlweCkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC05cHgpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOXB4KSByb3RhdGUoLTQ1ZGVnKTsgfVxuICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIC5sb2dvLWNvbnRhaW5lciB7XG4gICAgICB6LWluZGV4OiAyMDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiA3LjVyZW07XG4gICAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4OyB9XG4gICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXSAubG9nby1jb250YWluZXIgc3ZnIHtcbiAgICAgICAgei1pbmRleDogMjAxICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMi42ODc1cmVtOyB9XG4gICAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXSAubG9nby1jb250YWluZXIgcGF0aC5sZXR0ZXJzIHtcbiAgICAgICAgZmlsbDogI0ZGRjsgfVxuICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4ub3ZlcmZsb3ctaGlkZGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ub3ZlcmxheSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMXMgZWFzZTtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG4gIHotaW5kZXg6IDE7IH1cbiAgLm92ZXJsYXkuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgb3BhY2l0eTogMTsgfVxuXG4uZGFyayB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwgMCwgMCwgMC42KSAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7IH1cbiAgLmRhcmsgLmxvZ28tY29udGFpbmVyIHBhdGgubGV0dGVycyB7XG4gICAgZmlsbDogI0ZGRjsgfVxuICAuZGFyayB1bC5uYXZpZ2F0b24tY29udGFpbmVyIGxpIGE6bm90KC5idG4pIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cblxuaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0ubGlnaHQge1xuICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmxpZ2h0LmhlYWRlci0tcGlubmVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG4gICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0ubGlnaHQuaGVhZGVyLS1waW5uZWQgdWwubmF2aWdhdGlvbi1jb250YWluZXIgbGkgYTpub3QoLmJ0bik6aG92ZXIge1xuICAgICAgY29sb3I6ICMwMGE0ZGY7IH1cbiAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5saWdodC5oZWFkZXItLXBpbm5lZCB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSBhOm5vdCguYnRuKSBzcGFuOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0ubGlnaHQuaGVhZGVyLS1waW5uZWQgdWwubmF2aWdhdGlvbi1jb250YWluZXIgbGkgYS5hY3RpdmUge1xuICAgICAgY29sb3I6ICMwMGE0ZGY7IH1cbiAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0ubGlnaHQgLmxvZ28tY29udGFpbmVyIHBhdGgubGV0dGVycyB7XG4gICAgZmlsbDogIzU5NjU3MDsgfVxuICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5saWdodCB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSBhOm5vdCguYnRuKSB7XG4gICAgY29sb3I6ICM1OTY1NzA7IH1cbiAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5saWdodCB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSBhOm5vdCguYnRuKSBzcGFuOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDg5LCAxMDEsIDExMiwgMC4yKTsgfVxuICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmxpZ2h0IHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIGE6bm90KC5idG4pLmFjdGl2ZSBzcGFuOjphZnRlciB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmxpZ2h0IC53cmFwIC5oYW0td3JhcCBzcGFuIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbi10b3A6IDlweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDlweDtcbiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmxpZ2h0IC53cmFwIC5oYW0td3JhcCBzcGFuLCBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5saWdodCAud3JhcCAuaGFtLXdyYXAgc3Bhbjo6YmVmb3JlLCBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5saWdodCAud3JhcCAuaGFtLXdyYXAgc3Bhbjo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTk2NTcwO1xuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IsIC13ZWJraXQtdHJhbnNmb3JtO1xuICAgICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IsIC1tb3otdHJhbnNmb3JtO1xuICAgICAgICAtby10cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCAtby10cmFuc2Zvcm07XG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IsIHRyYW5zZm9ybTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICAgICAgICAtbW96LXRyYW5zaXRpb24tZHVyYXRpb246IDAuM3M7XG4gICAgICAgIC1vLXRyYW5zaXRpb24tZHVyYXRpb246IDAuM3M7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuM3M7IH1cbiAgICAgIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmxpZ2h0IC53cmFwIC5oYW0td3JhcCBzcGFuOjpiZWZvcmUsIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmxpZ2h0IC53cmFwIC5oYW0td3JhcCBzcGFuOjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgY29udGVudDogXCJcIjsgfVxuICAgICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0ubGlnaHQgLndyYXAgLmhhbS13cmFwIHNwYW46OmJlZm9yZSB7XG4gICAgICAgIHRvcDogLTlweDsgfVxuICAgICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0ubGlnaHQgLndyYXAgLmhhbS13cmFwIHNwYW46OmFmdGVyIHtcbiAgICAgICAgdG9wOiA5cHg7IH1cbiAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5saWdodCAud3JhcCAuaGFtLXdyYXAuaXMtYWN0aXZlIHNwYW4ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICBoZWFkZXJbcm9sZT1cImJhbm5lclwiXS5saWdodCAud3JhcCAuaGFtLXdyYXAuaXMtYWN0aXZlIHNwYW46OmJlZm9yZSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg5cHgpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg5cHgpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDlweCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg5cHgpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOXB4KSByb3RhdGUoNDVkZWcpOyB9XG4gICAgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0ubGlnaHQgLndyYXAgLmhhbS13cmFwLmlzLWFjdGl2ZSBzcGFuOjphZnRlciB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOXB4KSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC05cHgpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOXB4KSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOXB4KSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOXB4KSByb3RhdGUoLTQ1ZGVnKTsgfSB9XG5cbmRpdi5kZXYtZm9vdGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDIwLjYyNXJlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyOyB9XG4gIGRpdi5kZXYtZm9vdGVyOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNjM5cHgpIHtcbiAgICBkaXYuZGV2LWZvb3RlciB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMy4xMjVyZW07IH0gfVxuICBkaXYuZGV2LWZvb3RlciBkaXYuZGYtd3JhcCB7XG4gICAgd2lkdGg6IDQ2Ljg3NXJlbTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nLXRvcDogMy40Mzc1cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgIGRpdi5kZXYtZm9vdGVyIGRpdi5kZi13cmFwIHtcbiAgICAgICAgd2lkdGg6IDkwJTsgfSB9XG4gICAgZGl2LmRldi1mb290ZXIgZGl2LmRmLXdyYXAgaDUge1xuICAgICAgY29sb3I6ICNGRkY7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTsgfVxuICAgIGRpdi5kZXYtZm9vdGVyIGRpdi5kZi13cmFwIGRpdi5zdXBwb3J0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgICAgd2lkdGg6IDI1JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgICAgIG1hcmdpbi1yaWdodDogMCU7XG4gICAgICBtaW4taGVpZ2h0OiAxMHJlbTtcbiAgICAgIHBhZGRpbmctdG9wOiAyLjVyZW07XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjUwbXM7IH1cbiAgICAgIGRpdi5kZXYtZm9vdGVyIGRpdi5kZi13cmFwIGRpdi5zdXBwb3J0OmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzOXB4KSB7XG4gICAgICAgIGRpdi5kZXYtZm9vdGVyIGRpdi5kZi13cmFwIGRpdi5zdXBwb3J0IHtcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMCU7IH1cbiAgICAgICAgICBkaXYuZGV2LWZvb3RlciBkaXYuZGYtd3JhcCBkaXYuc3VwcG9ydDphZnRlciB7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGU7IH0gfVxuICAgICAgZGl2LmRldi1mb290ZXIgZGl2LmRmLXdyYXAgZGl2LnN1cHBvcnQgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICBoZWlnaHQ6IDMuMTI1cmVtOyB9XG4gICAgICAgIGRpdi5kZXYtZm9vdGVyIGRpdi5kZi13cmFwIGRpdi5zdXBwb3J0IHN2ZyBnIHtcbiAgICAgICAgICBzdHJva2U6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogc3Ryb2tlIDI1MG1zOyB9XG4gICAgICBkaXYuZGV2LWZvb3RlciBkaXYuZGYtd3JhcCBkaXYuc3VwcG9ydCBzcGFuIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwLjkzNzVyZW07XG4gICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjUwbXM7IH1cbiAgICAgIGRpdi5kZXYtZm9vdGVyIGRpdi5kZi13cmFwIGRpdi5zdXBwb3J0OmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG4gICAgICAgIGRpdi5kZXYtZm9vdGVyIGRpdi5kZi13cmFwIGRpdi5zdXBwb3J0OmhvdmVyIHN2ZyBnIHtcbiAgICAgICAgICBzdHJva2U6ICNGRkY7IH1cbiAgICAgICAgZGl2LmRldi1mb290ZXIgZGl2LmRmLXdyYXAgZGl2LnN1cHBvcnQ6aG92ZXIgc3BhbiB7XG4gICAgICAgICAgY29sb3I6ICNGRkY7IH1cblxuc2VjdGlvbi5jb250ZW50LTQwNCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDgwdmg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNTVkZWcsICNlZTQxMmEsICNhZTM5MzcsICM3NjNlNzQsICMyZDVlYTUsICMwMzliZDQpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGhlaWdodCAuNXMgZWFzZTsgfVxuICBzZWN0aW9uLmNvbnRlbnQtNDA0IC5jb3B5IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDIwMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDY1MHB4O1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB0b3A6IDQ1JTtcbiAgICB0cmFuc2l0aW9uOiB0b3AgLjVzIGVhc2U7XG4gICAgcGFkZGluZzogMCA1JTsgfVxuICAgIHNlY3Rpb24uY29udGVudC00MDQgLmNvcHk6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgc2VjdGlvbi5jb250ZW50LTQwNCAuY29weSBoMSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBmb250LWZhbWlseTogR3JhcGhpayBUaGluIFdlYjtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IHN1YnBpeGVsLWFudGlhbGlhc2VkO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogMC41czsgfVxuICAgIHNlY3Rpb24uY29udGVudC00MDQgLmNvcHkgcCB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogMXM7IH1cbiAgICBzZWN0aW9uLmNvbnRlbnQtNDA0IC5jb3B5IGEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGVmdDogY2FsYyg1MCUgLSA3NXB4KTtcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogMS41czsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICBzZWN0aW9uLmNvbnRlbnQtNDA0IHtcbiAgICAgIGhlaWdodDogNjV2aDsgfVxuICAgICAgc2VjdGlvbi5jb250ZW50LTQwNCAuY29weSB7XG4gICAgICAgIHRvcDogMzAlOyB9IH1cblxuc2VjdGlvbi5kZXYtaGVhZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiA5LjY4NzVyZW07XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7IH1cbiAgc2VjdGlvbi5kZXYtaGVhZGVyIGRpdi5kaC13cmFwIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgcGFkZGluZzogMS41NjI1cmVtIDUlOyB9XG4gICAgc2VjdGlvbi5kZXYtaGVhZGVyIGRpdi5kaC13cmFwIGg1IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBjb2xvcjogI0ZGRjtcbiAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7IH1cblxuZGl2LmRoLXJpZ2h0IHtcbiAgd2lkdGg6IDIyLjgxMjVyZW07XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG4gIGRpdi5kaC1yaWdodCB1bCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvdHRvbTogMC4xODc1cmVtOyB9XG4gICAgZGl2LmRoLXJpZ2h0IHVsIGxpIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgICBkaXYuZGgtcmlnaHQgdWwgbGk6Zmlyc3QtY2hpbGQgYSB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsgfVxuICAgICAgZGl2LmRoLXJpZ2h0IHVsIGxpIGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xODc1cmVtIDEuMTI1cmVtOyB9XG4gICAgICAgIGRpdi5kaC1yaWdodCB1bCBsaSBhIHN2ZyB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHdpZHRoOiAxLjU2MjVyZW07XG4gICAgICAgICAgaGVpZ2h0OiAxLjU2MjVyZW07XG4gICAgICAgICAgZmlsbDogcmdiYSgwLCAxNjQsIDIyMywgMC40KTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBmaWxsIDI1MG1zOyB9XG4gICAgICAgIGRpdi5kaC1yaWdodCB1bCBsaSBhOmhvdmVyIHN2ZyB7XG4gICAgICAgICAgZmlsbDogcmdiYSgwLCAxNjQsIDIyMywgMC42KTsgfVxuICBkaXYuZGgtcmlnaHQgZm9ybSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuMTg3NXJlbTsgfVxuICAgIGRpdi5kaC1yaWdodCBmb3JtIGxhYmVsOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgICAgYm90dG9tOiAxcHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0cmFuc2l0aW9uOiB3aWR0aCAzNTBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC4xLCAwLjI1LCAxKTsgfVxuICAgIGRpdi5kaC1yaWdodCBmb3JtIGxhYmVsLnNob3c6OmFmdGVyIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgZGl2LmRoLXJpZ2h0IGZvcm0gaW5wdXQge1xuICAgICAgd2lkdGg6IDE0LjA2MjVyZW07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMC41NjI1cmVtO1xuICAgICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOyB9XG4gICAgICBkaXYuZGgtcmlnaHQgZm9ybSBpbnB1dDpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAjRkZGOyB9XG4gICAgICAgIGRpdi5kaC1yaWdodCBmb3JtIGlucHV0OmZvY3VzOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpOyB9XG4gICAgICAgIGRpdi5kaC1yaWdodCBmb3JtIGlucHV0OmZvY3VzOi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7IH1cbiAgICAgICAgZGl2LmRoLXJpZ2h0IGZvcm0gaW5wdXQ6Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7IH1cbiAgICAgICAgZGl2LmRoLXJpZ2h0IGZvcm0gaW5wdXQ6Zm9jdXM6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpOyB9XG4gICAgZGl2LmRoLXJpZ2h0IGZvcm0gOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciA1MDBtczsgfVxuICAgIGRpdi5kaC1yaWdodCBmb3JtIDotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciA1MDBtczsgfVxuICAgIGRpdi5kaC1yaWdodCBmb3JtIDo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgNTAwbXM7IH1cbiAgICBkaXYuZGgtcmlnaHQgZm9ybSA6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciA1MDBtczsgfVxuICBkaXYuZGgtcmlnaHQgc3ZnIHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEuMjVyZW07XG4gICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBmaWxsOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7IH1cblxuc2VjdGlvbi5kZXYtd3JhcCB7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjZjVmNmY3O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgc2VjdGlvbi5kZXYtd3JhcDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cblxubmF2LmRldi1uYXYge1xuICB3aWR0aDogMjAuMzEyNXJlbTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IDEuNTYyNXJlbSAwIDEuNTYyNXJlbSA0LjUlO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoNTUsIDYzLCA2OSwgMC4yKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDc1MG1zIGN1YmljLWJlemllcigwLjU1LCAwLCAwLjEsIDEpLCBtYXJnaW4tYm90dG9tIDc1MG1zIGN1YmljLWJlemllcigwLjU1LCAwLCAwLjEsIDEpOyB9XG4gIG5hdi5kZXYtbmF2IGEgc3ZnIHtcbiAgICB3aWR0aDogMC42MjVyZW07XG4gICAgZmlsbDogI2I3YmVjNTtcbiAgICByaWdodDogLTAuODc1cmVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDAuMzc1cmVtOyB9XG4gIG5hdi5kZXYtbmF2LmlzLWZpeGVkIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwOyB9XG4gIG5hdi5kZXYtbmF2LmlzLXBpbm5lZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMjAuNjI1cmVtO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiBhdXRvOyB9XG4gIG5hdi5kZXYtbmF2LmlzLXNoaWZ0ZWQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1NXB4KTtcbiAgICBtYXJnaW4tYm90dG9tOiAzLjQzNzVyZW07IH1cblxuc3Bhbi5lLWxpbmtzIHtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgYmFja2dyb3VuZDogcmVkO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbnVsLmV4dC1saW5rcyB7XG4gIG1hcmdpbi10b3A6IDEuNTYyNXJlbTtcbiAgcGFkZGluZy10b3A6IDEuNTYyNXJlbTtcbiAgd2lkdGg6IDcwJTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoNTUsIDYzLCA2OSwgMC4yKTsgfVxuICB1bC5leHQtbGlua3MgbGkge1xuICAgIHBhZGRpbmc6IDAuMzEyNXJlbSAwO1xuICAgIG1hcmdpbi1sZWZ0OiAxLjA2MjVyZW07XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICB1bC5leHQtbGlua3MgbGk6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFxCQSc7XG4gICAgICBjb2xvcjogIzcwN2Y4YztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMC42ODc1cmVtO1xuICAgICAgbGVmdDogLTAuOTM3NXJlbTsgfVxuICAgIHVsLmV4dC1saW5rcyBsaSBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgICAgY29sb3I6ICM3MDdmOGM7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAzMDBtczsgfVxuICAgICAgdWwuZXh0LWxpbmtzIGxpIGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzAwYTRkZjsgfVxuXG51bC5tZW51IGEge1xuICBjb2xvcjogcmdiYSg1NSwgNjMsIDY5LCAwLjgpO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDIuMTg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMTUwbXMsIGZvbnQtd2VpZ2h0IDM1MG1zOyB9XG4gIHVsLm1lbnUgYTo6YmVmb3JlLCB1bC5tZW51IGE6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBiYWNrZ3JvdW5kOiAjRkZGO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICB1bC5tZW51IGE6OmJlZm9yZSB7XG4gICAgd2lkdGg6IDAuNXJlbTtcbiAgICBoZWlnaHQ6IDAuMTI1cmVtO1xuICAgIHRvcDogMC40Mzc1cmVtO1xuICAgIGxlZnQ6IDAuODc1cmVtOyB9XG4gIHVsLm1lbnUgYTo6YWZ0ZXIge1xuICAgIHdpZHRoOiAwLjEyNXJlbTtcbiAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICB0b3A6IDAuMjVyZW07XG4gICAgbGVmdDogMS4wNjI1cmVtOyB9XG4gIHVsLm1lbnUgYS5pcy1oaWRkZW46OmJlZm9yZSwgdWwubWVudSBhLmlzLWhpZGRlbjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICB1bC5tZW51IGEuaXMtYWN0aXZlIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBjb2xvcjogYmxhY2s7IH1cbiAgICB1bC5tZW51IGEuaXMtYWN0aXZlOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG5cbnVsLm1lbnUgbGkge1xuICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuOWVtO1xuICB0ZXh0LWluZGVudDogLTEuMmVtO1xuICB3aWR0aDogODYlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgdWwubWVudSBsaTpob3ZlciA+IGEge1xuICAgIGNvbG9yOiBibGFjaztcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICB1bC5tZW51IGxpOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHdpZHRoOiAwLjg3NXJlbTtcbiAgICBoZWlnaHQ6IDAuODc1cmVtO1xuICAgIGJhY2tncm91bmQ6ICNmMTRmM2U7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjA2MjVyZW07XG4gICAgbGVmdDogMS41NjI1cmVtOyB9XG4gIHVsLm1lbnUgbGk6Zmlyc3QtY2hpbGQgdWwsIHVsLm1lbnUgbGk6bGFzdC1jaGlsZCB1bCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0xLjA2MjVyZW07IH1cbiAgICB1bC5tZW51IGxpOmZpcnN0LWNoaWxkIHVsIGxpLCB1bC5tZW51IGxpOmxhc3QtY2hpbGQgdWwgbGkge1xuICAgICAgdGV4dC1pbmRlbnQ6IC0uMWVtO1xuICAgICAgbGlzdC1zdHlsZTogY2lyY2xlO1xuICAgICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlOyB9XG4gICAgICB1bC5tZW51IGxpOmZpcnN0LWNoaWxkIHVsIGxpIGEsIHVsLm1lbnUgbGk6bGFzdC1jaGlsZCB1bCBsaSBhIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbnVsLnN1Yi1tZW51LTAge1xuICBsZWZ0OiAtMC4zMTI1cmVtOyB9XG4gIHVsLnN1Yi1tZW51LTAgbGkge1xuICAgIHRleHQtaW5kZW50OiAtMWVtO1xuICAgIHBhZGRpbmctbGVmdDogMy4zMTI1cmVtOyB9XG5cbnVsLnN1Yi1tZW51LTEge1xuICBsZWZ0OiAtMC4yNXJlbSAhaW1wb3J0YW50OyB9XG4gIHVsLnN1Yi1tZW51LTEgbGkge1xuICAgIGxpc3Qtc3R5bGU6IGNpcmNsZSAhaW1wb3J0YW50O1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMC43NXJlbSAhaW1wb3J0YW50O1xuICAgIHRleHQtaW5kZW50OiAtLjFlbTsgfVxuICAgIHVsLnN1Yi1tZW51LTEgbGkgYSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuXG51bC5zdWItbWVudS0wLFxudWwuc3ViLW1lbnUtMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEyOCU7XG4gIG1heC1oZWlnaHQ6IDA7IH1cbiAgdWwuc3ViLW1lbnUtMCBsaSxcbiAgdWwuc3ViLW1lbnUtMSBsaSB7XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlOyB9XG4gICAgdWwuc3ViLW1lbnUtMCBsaTo6YmVmb3JlLFxuICAgIHVsLnN1Yi1tZW51LTEgbGk6OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgdWwuc3ViLW1lbnUtMCBsaS5pcy10b2dnbGUsXG4gICAgdWwuc3ViLW1lbnUtMSBsaS5pcy10b2dnbGUge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDMuNjI1cmVtOyB9XG4gICAgICB1bC5zdWItbWVudS0wIGxpLmlzLXRvZ2dsZTo6YmVmb3JlLFxuICAgICAgdWwuc3ViLW1lbnUtMSBsaS5pcy10b2dnbGU6OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICAgICAgICBsZWZ0OiAtMC42MjVyZW07IH1cbiAgICB1bC5zdWItbWVudS0wIGxpIGE6OmJlZm9yZSxcbiAgICB1bC5zdWItbWVudS0xIGxpIGE6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiAtMS4zMTI1cmVtOyB9XG4gICAgdWwuc3ViLW1lbnUtMCBsaSBhOjphZnRlcixcbiAgICB1bC5zdWItbWVudS0xIGxpIGE6OmFmdGVyIHtcbiAgICAgIGxlZnQ6IC0xLjEyNXJlbTsgfVxuICB1bC5zdWItbWVudS0wIGEsXG4gIHVsLnN1Yi1tZW51LTEgYSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIHVsLnN1Yi1tZW51LTAuaXMtYWN0aXZlLFxuICB1bC5zdWItbWVudS0xLmlzLWFjdGl2ZSB7XG4gICAgbWF4LWhlaWdodDogNzAwcHg7IH1cblxuZGl2LmRldi1tYWluIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwLjMxMjVyZW0pO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmbG9hdDogcmlnaHQ7IH1cbiAgZGl2LmRldi1tYWluIC5kcHAge1xuICAgIHBhZGRpbmctYm90dG9tOiA2LjI1cmVtOyB9XG4gICAgZGl2LmRldi1tYWluIC5kcHAgcCB7XG4gICAgICBjb2xvcjogIzU5NjU3MCAhaW1wb3J0YW50OyB9XG4gICAgZGl2LmRldi1tYWluIC5kcHAgaW1nIHtcbiAgICAgIG1hcmdpbi10b3A6IDEuNTYyNXJlbTsgfVxuICBkaXYuZGV2LW1haW4gLmRmIC5pcy1oMyB7XG4gICAgdG9wOiAyLjgxMjVyZW0gIWltcG9ydGFudDsgfVxuXG5kaXYubWFpbi13cmFwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBwYWRkaW5nOiAzLjEyNXJlbSAzLjEyNXJlbSAzLjEyNXJlbSAzLjc1cmVtOyB9XG4gIGRpdi5tYWluLXdyYXA6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIGRpdi5tYWluLXdyYXAgaDEsXG4gIGRpdi5tYWluLXdyYXAgaDIsXG4gIGRpdi5tYWluLXdyYXAgaDMge1xuICAgIGNvbG9yOiAjMzczZjQ1O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICBkaXYubWFpbi13cmFwIGgxIHtcbiAgICBmb250LXdlaWdodDogMjAwOyB9XG4gIGRpdi5tYWluLXdyYXAgaDIge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gIGRpdi5tYWluLXdyYXAgaDMge1xuICAgIGZvbnQtc2l6ZTogMS42MjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICBkaXYubWFpbi13cmFwIHByZSB7XG4gICAgbWFyZ2luOiAxLjg3NXJlbSAwO1xuICAgIGJhY2tncm91bmQ6ICNGRkY7IH1cbiAgZGl2Lm1haW4td3JhcCBhIHtcbiAgICBjb2xvcjogIzAwYTRkZjtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAyNTBtczsgfVxuICAgIGRpdi5tYWluLXdyYXAgYTpob3ZlciB7XG4gICAgICBjb2xvcjogIzJkYzdmZjsgfVxuICBkaXYubWFpbi13cmFwIHAge1xuICAgIGNvbG9yOiAjNTk2NTcwO1xuICAgIHBhZGRpbmctdG9wOiAwLjkzNzVyZW07IH1cbiAgZGl2Lm1haW4td3JhcCBkaXYucHcge1xuICAgIG1hcmdpbi10b3A6IDMuMTI1cmVtOyB9XG5cbmRpdi5wbGF0Zm9ybSB7XG4gIHdpZHRoOiAzMS4zMzMlO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiAwIDMlIDMlIDA7XG4gIG1pbi1oZWlnaHQ6IDE2LjI1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDU1LCA2MywgNjksIDAuMik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpO1xuICBib3JkZXItcmFkaXVzOiAwLjQzNzVyZW07XG4gIHRyYW5zaXRpb246IGJvcmRlciAyNTBtcywgYmFja2dyb3VuZCAzNTBtczsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgZGl2LnBsYXRmb3JtOm50aC1vZi10eXBlKDNuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgZGl2LnBsYXRmb3JtIHtcbiAgICAgIHdpZHRoOiA0OC41JTsgfVxuICAgICAgZGl2LnBsYXRmb3JtOm50aC1vZi10eXBlKDJuKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gIGRpdi5wbGF0Zm9ybTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogMC40Mzc1cmVtO1xuICAgIHotaW5kZXg6IDA7XG4gICAgYm94LXNoYWRvdzogMCAxNXB4IDI1cHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLWluLW91dDsgfVxuICBkaXYucGxhdGZvcm06bGFzdC1jaGlsZCB7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gICAgZGl2LnBsYXRmb3JtOmxhc3QtY2hpbGQ6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgZGl2LnBsYXRmb3JtOmxhc3QtY2hpbGQ6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgZGl2LnBsYXRmb3JtLnAtc2lnbi11cCB7XG4gICAgYmFja2dyb3VuZDogI2VmZjFmMjtcbiAgICBib3JkZXI6IG5vbmU7IH1cbiAgICBkaXYucGxhdGZvcm0ucC1zaWduLXVwIHAge1xuICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgIHdpZHRoOiA3MCU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiAzLjc1cmVtIDAgMS44NzVyZW07XG4gICAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAgIGRpdi5wbGF0Zm9ybS5wLXNpZ24tdXAgYSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgY29sb3I6ICMwMGE0ZGY7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nLXRvcDogMC43NXJlbTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiAycHggc29saWQgIzAwYTRkZjtcbiAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgIGhlaWdodDogMi41cmVtO1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDI1MG1zLCBjb2xvciAyNTBtczsgfVxuICAgICAgZGl2LnBsYXRmb3JtLnAtc2lnbi11cCBhOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzAwYTRkZjtcbiAgICAgICAgY29sb3I6ICNGRkY7IH1cbiAgZGl2LnBsYXRmb3JtOmhvdmVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBhNGRmO1xuICAgIGJhY2tncm91bmQ6ICNGRkY7IH1cbiAgICBkaXYucGxhdGZvcm06aG92ZXI6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiAjZWZmMWYyOyB9XG4gICAgZGl2LnBsYXRmb3JtOmhvdmVyOjphZnRlciB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgZGl2LnBsYXRmb3JtOmhvdmVyIGRpdi5sdCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHJlbSk7IH1cbiAgICAgIGRpdi5wbGF0Zm9ybTpob3ZlciBkaXYubHQgc3BhbiB7XG4gICAgICAgIG9wYWNpdHk6IDA7IH1cbiAgICBkaXYucGxhdGZvcm06aG92ZXIgZGl2LmxpbmUge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICBkaXYucGxhdGZvcm06aG92ZXIgdWwgbGk6bnRoLWNoaWxkKDEpIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjA3czsgfVxuICAgIGRpdi5wbGF0Zm9ybTpob3ZlciB1bCBsaTpudGgtY2hpbGQoMikge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMTRzOyB9XG4gICAgZGl2LnBsYXRmb3JtOmhvdmVyIHVsIGxpOm50aC1jaGlsZCgzKSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4yMXM7IH1cbiAgICBkaXYucGxhdGZvcm06aG92ZXIgdWwgbGk6bnRoLWNoaWxkKDQpIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjI4czsgfVxuICAgIGRpdi5wbGF0Zm9ybTpob3ZlciB1bCBsaTpudGgtY2hpbGQoNSkge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMzVzOyB9XG4gICAgZGl2LnBsYXRmb3JtOmhvdmVyIHVsIGxpOm50aC1jaGlsZCg2KSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC40MnM7IH1cbiAgICBkaXYucGxhdGZvcm06aG92ZXIgdWwgbGk6bnRoLWNoaWxkKDcpIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjQ5czsgfVxuICBkaXYucGxhdGZvcm06Zmlyc3QtY2hpbGQgLnAtbGlua3Mge1xuICAgIGJvdHRvbTogMjBweDsgfVxuICBkaXYucGxhdGZvcm06bnRoLWNoaWxkKDMpIC5wLWxpbmtzIHtcbiAgICBib3R0b206IDYwcHg7IH1cbiAgZGl2LnBsYXRmb3JtOm50aC1jaGlsZCg1KSAucC1saW5rcyB7XG4gICAgYm90dG9tOiA3MHB4OyB9XG5cbmRpdi5sdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDcuODEyNXJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMuMTI1cmVtKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTsgfVxuICBkaXYubHQgaW1nIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAjRkZGO1xuICAgIHotaW5kZXg6IDI7XG4gICAgbWFyZ2luLWJvdHRvbTogMC45Mzc1cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgZGl2Lmx0IHNwYW4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29sb3I6ICM3MDdmOGM7XG4gICAgYm90dG9tOiAwO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyNTBtczsgfVxuXG5kaXYubGluZSB7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoNTUsIDYzLCA2OSwgMC4yKTtcbiAgaGVpZ2h0OiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDEuNWVtIDA7XG4gIHdpZHRoOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTAuNjI1cmVtO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAxO1xuICBtYXJnaW46IDAgYXV0bztcbiAgdHJhbnNpdGlvbjogd2lkdGggNTUwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuMSwgMC4yNSwgMSksIG9wYWNpdHkgMjUwbXMgZWFzZSAxMDBtczsgfVxuXG51bC5wLWxpbmtzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMi4xODc1cmVtO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAyOyB9XG4gIHVsLnAtbGlua3MgbGkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyNTBtcywgdHJhbnNmb3JtIDI1MG1zOyB9XG4gICAgdWwucC1saW5rcyBsaSBhIHtcbiAgICAgIGNvbG9yOiAjNzA3ZjhjO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjUwbXM7IH1cbiAgICAgIHVsLnAtbGlua3MgbGkgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjMDBhNGRmOyB9XG5cbmRpdi5jcnVtYnMge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzLjQzNzVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoNTUsIDYzLCA2OSwgMC4yKTsgfVxuICBkaXYuY3J1bWJzIHVsLm5leHQtcHJldiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDJweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtOyB9XG4gICAgZGl2LmNydW1icyB1bC5uZXh0LXByZXYgbGkge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAgIGRpdi5jcnVtYnMgdWwubmV4dC1wcmV2IGxpOmZpcnN0LWNoaWxkIGEge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtOyB9XG4gICAgICAgIGRpdi5jcnVtYnMgdWwubmV4dC1wcmV2IGxpOmZpcnN0LWNoaWxkIGEgc3ZnIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKC0xKTsgfVxuICAgICAgZGl2LmNydW1icyB1bC5uZXh0LXByZXYgbGkgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjYyNXJlbSAwLjYyNXJlbSAwLjYyNXJlbSAwLjI1cmVtOyB9XG4gICAgICAgIGRpdi5jcnVtYnMgdWwubmV4dC1wcmV2IGxpIGEgc3ZnIHtcbiAgICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgc3Ryb2tlOiAjQjdCRkM3O1xuICAgICAgICAgIHRyYW5zaXRpb246IHN0cm9rZSAyNTBtczsgfVxuICAgICAgICBkaXYuY3J1bWJzIHVsLm5leHQtcHJldiBsaSBhOmhvdmVyIHN2ZyB7XG4gICAgICAgICAgc3Ryb2tlOiAjMDBhNGRmOyB9XG5cbmRpdi5ucC1ibG9jayB7XG4gIHBhZGRpbmc6IDAuNjI1cmVtIDAuOTM3NXJlbSAwLjYyNXJlbSAwLjkzNzVyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICNGRkY7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJhY2tncm91bmQ6ICMwMGE0ZGY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBjbGVhcjogcmlnaHQ7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYm90dG9tOiAtMS45Mzc1cmVtO1xuICByaWdodDogMS4yNXJlbTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQ1MG1zLCB2aXNpYmlsaXR5IDQ1MG1zLCB0cmFuc2Zvcm0gNTAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuMSwgMC4yNSwgMSk7IH1cbiAgZGl2Lm5wLWJsb2NrLnZpc2libGUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICBkaXYubnAtYmxvY2s6aG92ZXIge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgZGl2Lm5wLWJsb2NrLnByZXZpb3VzIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogLjJzOyB9XG4gICAgZGl2Lm5wLWJsb2NrLnByZXZpb3VzOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTAuMzc1cmVtO1xuICAgICAgcmlnaHQ6IDMuNTYyNXJlbTtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkICMwMGE0ZGY7XG4gICAgICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgdHJhbnNwYXJlbnQ7IH1cbiAgZGl2Lm5wLWJsb2NrLm5leHQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAuMnM7IH1cbiAgICBkaXYubnAtYmxvY2submV4dDo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC0wLjM3NXJlbTtcbiAgICAgIHJpZ2h0OiAxLjA2MjVyZW07XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCAjMDBhNGRmO1xuICAgICAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yaWdodDogNnB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG5cbmEubGRsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDIuMTg3NXJlbTtcbiAgZGlzcGxheTogdGFibGU7XG4gIHJpZ2h0OiAyLjE4NzVyZW07IH1cbiAgYS5sZGw6bm90KDpmaXJzdC1jaGlsZCkgaDEsXG4gIGEubGRsOm5vdCg6Zmlyc3QtY2hpbGQpIGgyLFxuICBhLmxkbDpub3QoOmZpcnN0LWNoaWxkKSBoMyB7XG4gICAgbWFyZ2luLXRvcDogMy4xMjVyZW07IH1cbiAgYS5sZGw6bm90KDpmaXJzdC1jaGlsZCkgLmhjLmlzLWgyIHtcbiAgICB0b3A6IDUxcHg7IH1cbiAgYS5sZGwgLmhjIHtcbiAgICBjb2xvcjogIzAwYTRkZjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMC42ODc1cmVtO1xuICAgIGZvbnQtc2l6ZTogMS44NzVyZW07XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI1MG1zOyB9XG4gICAgYS5sZGwgLmhjLmlzLWgxIHtcbiAgICAgIHRvcDogMC42MjVyZW07IH1cbiAgICBhLmxkbCAuaGMuaXMtaDIge1xuICAgICAgdG9wOiAwLjA2MjVyZW07IH1cbiAgICBhLmxkbCAuaGMuaXMtaDMge1xuICAgICAgdG9wOiAyLjg3NXJlbTsgfVxuICBhLmxkbDpob3ZlciAuaGMge1xuICAgIG9wYWNpdHk6IDE7IH1cblxubmF2LmRldi1zdWJuYXYge1xuICBmbG9hdDogbGVmdDsgfVxuICBuYXYuZGV2LXN1Ym5hdiB1bCB7XG4gICAgcGFkZGluZzogMS4xODc1cmVtIDAgMCAxLjI1cmVtOyB9XG4gICAgbmF2LmRldi1zdWJuYXYgdWwgbGkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxLjg3NXJlbTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgbmF2LmRldi1zdWJuYXYgdWwgbGkgYSB7XG4gICAgICAgIGNvbG9yOiAjNzA3ZjhjO1xuICAgICAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM3MDdmOGM7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDUwMG1zLCBib3JkZXIgNTAwbXM7IH1cbiAgICAgICAgbmF2LmRldi1zdWJuYXYgdWwgbGkgYTpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICMwMGE0ZGY7IH1cbiAgICAgICAgbmF2LmRldi1zdWJuYXYgdWwgbGkgYS5pcy1hY3RpdmUge1xuICAgICAgICAgIGNvbG9yOiAjMzczZjQ1O1xuICAgICAgICAgIGN1cnNvcjogdGV4dDtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIG5hdi5kZXYtc3VibmF2IHVsIGxpOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcvJztcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgICAgIGNvbG9yOiAjNzA3ZjhjO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMC4xODc1cmVtO1xuICAgICAgICByaWdodDogLTAuODEyNXJlbTsgfVxuICAgICAgbmF2LmRldi1zdWJuYXYgdWwgbGk6bGFzdC1jaGlsZDo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5wcm9kdWN0LWhlcm8sXG4ucHJvZHVjdC1pbmZvLFxuLnByb2R1Y3QtZmVhdHVyZXMsXG4udGVjaC1zcGVjcyB7XG4gIGJhY2tncm91bmQ6ICNmNWY2Zjc7IH1cblxuc2VjdGlvbi5wcm9kdWN0LWhlcm8ge1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgY29sb3I6ICNGRkY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgc2VjdGlvbi5wcm9kdWN0LWhlcm8ge1xuICAgICAgaGVpZ2h0OiA5NXZoO1xuICAgICAgbWF4LWhlaWdodDogODUwcHg7XG4gICAgICBtaW4taGVpZ2h0OiA2MDBweDsgfSB9XG4gIHNlY3Rpb24ucHJvZHVjdC1oZXJvIGZpZ3VyZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogYXV0byAxMDAlO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgIGFuaW1hdGlvbi1kZWxheTogMC41czsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICBzZWN0aW9uLnByb2R1Y3QtaGVybyBmaWd1cmUge1xuICAgICAgICBoZWlnaHQ6IDk1dmg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDg1MHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiA2MDBweDsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICBzZWN0aW9uLnByb2R1Y3QtaGVybyBmaWd1cmUge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgYXV0bztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgNTBweDsgfVxuICAgICAgICBzZWN0aW9uLnByb2R1Y3QtaGVybyBmaWd1cmU6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDc2LjkyMzA3NyU7IH0gfVxuICBzZWN0aW9uLnByb2R1Y3QtaGVybyBhcnRpY2xlIHtcbiAgICBwYWRkaW5nOiAwIDEwJSAxNSU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIHNlY3Rpb24ucHJvZHVjdC1oZXJvIGFydGljbGUge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB0b3A6IDYzJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogNTYuMjVyZW07IH0gfVxuICBzZWN0aW9uLnByb2R1Y3QtaGVybyBoMSxcbiAgc2VjdGlvbi5wcm9kdWN0LWhlcm8gaDQge1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC44czsgfVxuICBzZWN0aW9uLnByb2R1Y3QtaGVybyBoMSB7XG4gICAgY29sb3I6ICNGRkY7XG4gICAgZm9udC1mYW1pbHk6ICdHcmFwaGlrIFRoaW4gV2ViJztcbiAgICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiBjYWxjKDI0cHggKyAyNCAqICgoMTAwdncgLSAzMjBweCkgLyA3MDQpKTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBzdWJwaXhlbC1hbnRpYWxpYXNlZDtcbiAgICBhbmltYXRpb24tZGVsYXk6IDEuNXM7XG4gICAgbWFyZ2luLWJvdHRvbTogNSU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzMjBweCkge1xuICAgICAgc2VjdGlvbi5wcm9kdWN0LWhlcm8gaDEge1xuICAgICAgICBmb250LXNpemU6IDI0cHg7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICAgc2VjdGlvbi5wcm9kdWN0LWhlcm8gaDEge1xuICAgICAgICBmb250LXNpemU6IDQ4cHg7IH0gfVxuICBzZWN0aW9uLnByb2R1Y3QtaGVybyBoNCB7XG4gICAgZm9udC1zaXplOiBjYWxjKDE0cHggKyA2ICogKCgxMDB2dyAtIDQyMHB4KSAvIDYwNCkpO1xuICAgIGNvbG9yOiAjODg5MTljO1xuICAgIG1hcmdpbjogMDtcbiAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAxLjhzOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDIwcHgpIHtcbiAgICAgIHNlY3Rpb24ucHJvZHVjdC1oZXJvIGg0IHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgIHNlY3Rpb24ucHJvZHVjdC1oZXJvIGg0IHtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4OyB9IH1cblxuc2VjdGlvbi5wcm9kdWN0LWluZm8ge1xuICBjb2xvcjogIzcwN2Y4YztcbiAgcGFkZGluZzogNyUgNSUgNSU7IH1cbiAgc2VjdGlvbi5wcm9kdWN0LWluZm86YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIHNlY3Rpb24ucHJvZHVjdC1pbmZvIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxJTsgfSB9XG4gIHNlY3Rpb24ucHJvZHVjdC1pbmZvIHAge1xuICAgIGNvbG9yOiAjNzA3ZjhjOyB9XG4gIHNlY3Rpb24ucHJvZHVjdC1pbmZvIC5jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTEwMHB4OyB9XG4gIHNlY3Rpb24ucHJvZHVjdC1pbmZvIGZpZ3VyZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICB3aWR0aDogNjUuNjY2NjY3JTtcbiAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAzJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMzQuMzMzMzMzJTsgfVxuICAgIHNlY3Rpb24ucHJvZHVjdC1pbmZvIGZpZ3VyZTphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICBzZWN0aW9uLnByb2R1Y3QtaW5mbyBmaWd1cmU6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAlOyB9XG4gICAgc2VjdGlvbi5wcm9kdWN0LWluZm8gZmlndXJlOmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgIHNlY3Rpb24ucHJvZHVjdC1pbmZvIGZpZ3VyZSAuaW1hZ2UtaG9sZGVyIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgICAgd2lkdGg6IDgyLjgzMzMzMyU7XG4gICAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDMlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNnMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZy1ib3R0b206IDEwMCU7IH1cbiAgICAgIHNlY3Rpb24ucHJvZHVjdC1pbmZvIGZpZ3VyZSAuaW1hZ2UtaG9sZGVyOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgICAgc2VjdGlvbi5wcm9kdWN0LWluZm8gZmlndXJlIC5pbWFnZS1ob2xkZXI6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMCU7IH1cbiAgICAgIHNlY3Rpb24ucHJvZHVjdC1pbmZvIGZpZ3VyZSAuaW1hZ2UtaG9sZGVyIGltZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7IH1cbiAgICAgICAgc2VjdGlvbi5wcm9kdWN0LWluZm8gZmlndXJlIC5pbWFnZS1ob2xkZXIgaW1nLmFjdGl2ZSB7XG4gICAgICAgICAgb3BhY2l0eTogMTsgfVxuICAgICAgc2VjdGlvbi5wcm9kdWN0LWluZm8gZmlndXJlIC5pbWFnZS1ob2xkZXIucmVzb2x2ZWQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbiAgICBzZWN0aW9uLnByb2R1Y3QtaW5mbyBmaWd1cmUgLmltYWdlLXRvZ2dsZSB7XG4gICAgICBtYXJnaW4tdG9wOiAxNCU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgIHdpZHRoOiAxNC4xNjY2NjclO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAzJTsgfVxuICAgICAgc2VjdGlvbi5wcm9kdWN0LWluZm8gZmlndXJlIC5pbWFnZS10b2dnbGU6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgICBzZWN0aW9uLnByb2R1Y3QtaW5mbyBmaWd1cmUgLmltYWdlLXRvZ2dsZTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwJTsgfVxuICAgICAgc2VjdGlvbi5wcm9kdWN0LWluZm8gZmlndXJlIC5pbWFnZS10b2dnbGUgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1JTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpOyB9XG4gICAgICAgIHNlY3Rpb24ucHJvZHVjdC1pbmZvIGZpZ3VyZSAuaW1hZ2UtdG9nZ2xlIGE6aG92ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTsgfVxuICAgICAgc2VjdGlvbi5wcm9kdWN0LWluZm8gZmlndXJlIC5pbWFnZS10b2dnbGUgbGkuYWN0aXZlIGEge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuICAgICAgICBib3gtc2hhZG93OiAwIDNweCAxMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgICAgICAgc2VjdGlvbi5wcm9kdWN0LWluZm8gZmlndXJlIC5pbWFnZS10b2dnbGUgbGkuYWN0aXZlIGE6aG92ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICBzZWN0aW9uLnByb2R1Y3QtaW5mbyBhcnRpY2xlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjbGVhcjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgIHdpZHRoOiAzMS4zMzMzMzMlO1xuICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDMlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNjguNjY2NjY3JTtcbiAgICBtYXJnaW46IDIlIDAgMTAlOyB9XG4gICAgc2VjdGlvbi5wcm9kdWN0LWluZm8gYXJ0aWNsZTphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICBzZWN0aW9uLnByb2R1Y3QtaW5mbyBhcnRpY2xlOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwJTsgfVxuICAgIHNlY3Rpb24ucHJvZHVjdC1pbmZvIGFydGljbGUgcCB7XG4gICAgICBsaW5lLWhlaWdodDogMS40ZW07XG4gICAgICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuICAgIHNlY3Rpb24ucHJvZHVjdC1pbmZvIGFydGljbGUgaDIge1xuICAgICAgZm9udC1mYW1pbHk6ICdHcmFwaGlrIFRoaW4gV2ViJztcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IHN1YnBpeGVsLWFudGlhbGlhc2VkO1xuICAgICAgY29sb3I6ICM0ZDU2NjA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjMxMjVyZW07IH1cbiAgICBzZWN0aW9uLnByb2R1Y3QtaW5mbyBhcnRpY2xlIGg1IHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBjb2xvcjogIzcwN2Y4YzsgfVxuICAgIHNlY3Rpb24ucHJvZHVjdC1pbmZvIGFydGljbGUgdWwge1xuICAgICAgbWFyZ2luOiAuMzJyZW0gLjk0cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgbWFyZ2luLXRvcDogOCU7IH1cbiAgICAgIHNlY3Rpb24ucHJvZHVjdC1pbmZvIGFydGljbGUgdWwgbGkge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gICAgICAgIHBhZGRpbmc6IC4xMjVyZW0gMDsgfVxuICAgICAgc2VjdGlvbi5wcm9kdWN0LWluZm8gYXJ0aWNsZSB1bCBsaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMiU7IH1cbiAgICBzZWN0aW9uLnByb2R1Y3QtaW5mbyBhcnRpY2xlIG5hdiB7XG4gICAgICBtYXJnaW46IDEwJSAwO1xuICAgICAgY29sb3I6IHJnYmEoMTEyLCAxMjcsIDE0MCwgMC4yKTsgfVxuICAgICAgc2VjdGlvbi5wcm9kdWN0LWluZm8gYXJ0aWNsZSBuYXYgYSB7XG4gICAgICAgIGNvbG9yOiAjMDBhNGRmO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTsgfVxuICAgICAgICBzZWN0aW9uLnByb2R1Y3QtaW5mbyBhcnRpY2xlIG5hdiBhOmhvdmVyIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICBzZWN0aW9uLnByb2R1Y3QtaW5mbyBmaWd1cmUsXG4gICAgc2VjdGlvbi5wcm9kdWN0LWluZm8gYXJ0aWNsZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIGxlZnQ6IDA7IH1cbiAgICAgIHNlY3Rpb24ucHJvZHVjdC1pbmZvIGZpZ3VyZTpmaXJzdC1jaGlsZCxcbiAgICAgIHNlY3Rpb24ucHJvZHVjdC1pbmZvIGFydGljbGU6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAgICAgc2VjdGlvbi5wcm9kdWN0LWluZm8gZmlndXJlOmxhc3QtY2hpbGQsXG4gICAgICBzZWN0aW9uLnByb2R1Y3QtaW5mbyBhcnRpY2xlOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH0gfVxuXG5zZWN0aW9uLnByb2R1Y3QtZmVhdHVyZXMgLmNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogMTEwMHB4O1xuICBwYWRkaW5nOiAwIDUlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UxZTRlNztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAzOyB9XG4gIHNlY3Rpb24ucHJvZHVjdC1mZWF0dXJlcyAuY29udGFpbmVyOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICBzZWN0aW9uLnByb2R1Y3QtZmVhdHVyZXMgLmNvbnRhaW5lcjo6YmVmb3JlIHtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29udGVudDogJyc7XG4gICAgdG9wOiA1NXB4O1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMWU0ZTc7IH1cblxuc2VjdGlvbi5wcm9kdWN0LWZlYXR1cmVzIC5mZWF0dXJlIHtcbiAgei1pbmRleDogMztcbiAgbWFyZ2luLWJvdHRvbTogNC4zNzVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBzZWN0aW9uLnByb2R1Y3QtZmVhdHVyZXMgLmZlYXR1cmUgaW1nIHtcbiAgICB3aWR0aDogMTE1cHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMCBhdXRvIDEwcHg7IH1cbiAgc2VjdGlvbi5wcm9kdWN0LWZlYXR1cmVzIC5mZWF0dXJlIGg1IHtcbiAgICBmb250LWZhbWlseTogJ0dyYXBoaWsgV2ViJztcbiAgICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGNvbG9yOiAjMjk2YWI2O1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wNDVlbTsgfVxuICBzZWN0aW9uLnByb2R1Y3QtZmVhdHVyZXMgLmZlYXR1cmUgaDUsXG4gIHNlY3Rpb24ucHJvZHVjdC1mZWF0dXJlcyAuZmVhdHVyZSBwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgc2VjdGlvbi5wcm9kdWN0LWZlYXR1cmVzIC5mZWF0dXJlIHAge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzcwN2Y4YztcbiAgICBsaW5lLWhlaWdodDogMS40ZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIHNlY3Rpb24ucHJvZHVjdC1mZWF0dXJlcyAuZmVhdHVyZSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgIHdpZHRoOiAyOC42NjY2NjclO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA3JTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgc2VjdGlvbi5wcm9kdWN0LWZlYXR1cmVzIC5mZWF0dXJlOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgICAgc2VjdGlvbi5wcm9kdWN0LWZlYXR1cmVzIC5mZWF0dXJlOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAlOyB9IH1cblxuc2VjdGlvbi50ZWNoLXNwZWNzIHtcbiAgcGFkZGluZzogNSU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICBzZWN0aW9uLnRlY2gtc3BlY3Mge1xuICAgICAgcGFkZGluZzogOCUgMDsgfSB9XG4gIHNlY3Rpb24udGVjaC1zcGVjcyBoMyB7XG4gICAgY29sb3I6ICM0ZDU2NjA7XG4gICAgZm9udC1mYW1pbHk6ICdHcmFwaGlrIFRoaW4gV2ViJztcbiAgICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiBjYWxjKDI4cHggKyAxNCAqICgoMTAwdncgLSAzMjBweCkgLyA3MDQpKTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBzdWJwaXhlbC1hbnRpYWxpYXNlZDtcbiAgICBtYXJnaW46IDIlIDAgNiU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzMjBweCkge1xuICAgICAgc2VjdGlvbi50ZWNoLXNwZWNzIGgzIHtcbiAgICAgICAgZm9udC1zaXplOiAyOHB4OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgIHNlY3Rpb24udGVjaC1zcGVjcyBoMyB7XG4gICAgICAgIGZvbnQtc2l6ZTogNDJweDsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICBzZWN0aW9uLnRlY2gtc3BlY3MgaDMge1xuICAgICAgICBwYWRkaW5nOiA4JSAwIDUlOyB9IH1cbiAgc2VjdGlvbi50ZWNoLXNwZWNzIHRhYmxlIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7IH1cbiAgICBzZWN0aW9uLnRlY2gtc3BlY3MgdGFibGUgdGgsXG4gICAgc2VjdGlvbi50ZWNoLXNwZWNzIHRhYmxlIHRkIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjREREO1xuICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAgIHNlY3Rpb24udGVjaC1zcGVjcyB0YWJsZSB0aCB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAgIHNlY3Rpb24udGVjaC1zcGVjcyB0YWJsZSB0aGVhZCB0aCB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOyB9XG4gICAgc2VjdGlvbi50ZWNoLXNwZWNzIHRhYmxlIHRoZWFkOmZpcnN0LWNoaWxkIHRyIHRoLFxuICAgIHNlY3Rpb24udGVjaC1zcGVjcyB0YWJsZSB0aGVhZDpmaXJzdC1jaGlsZCB0ciB0ZCB7XG4gICAgICBib3JkZXItdG9wOiAwOyB9XG4gICAgc2VjdGlvbi50ZWNoLXNwZWNzIHRhYmxlIHRib2R5ICsgdGJvZHkge1xuICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNEREQ7IH1cbiAgICBzZWN0aW9uLnRlY2gtc3BlY3MgdGFibGUgdGJvZHkgdHI6aG92ZXIgdGQsXG4gICAgc2VjdGlvbi50ZWNoLXNwZWNzIHRhYmxlIHRib2R5IHRyOmhvdmVyIHRoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGNUY1RjU7IH1cbiAgICBzZWN0aW9uLnRlY2gtc3BlY3MgdGFibGUgdGhlYWQgdHIge1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZWU0MTJhLCAjYWUzOTM3LCAjNzYzZTc0LCAjMmQ1ZWE1LCAjMDM5YmQ0KTtcbiAgICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7IH1cbiAgICAgIHNlY3Rpb24udGVjaC1zcGVjcyB0YWJsZSB0aGVhZCB0ciB0aCB7XG4gICAgICAgIGNvbG9yOiAjRkZGOyB9XG4gICAgc2VjdGlvbi50ZWNoLXNwZWNzIHRhYmxlIHRkLFxuICAgIHNlY3Rpb24udGVjaC1zcGVjcyB0YWJsZSB0aCB7XG4gICAgICBjb2xvcjogIzcwN2Y4YztcbiAgICAgIHBhZGRpbmc6IDIuMyUgNCU7XG4gICAgICBmb250LXNpemU6IGNhbGMoMTJweCArIDQgKiAoKDEwMHZ3IC0gMzIwcHgpIC8gNzA0KSk7XG4gICAgICBsaW5lLWhlaWdodDogMS4zZW07IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDMyMHB4KSB7XG4gICAgICAgIHNlY3Rpb24udGVjaC1zcGVjcyB0YWJsZSB0ZCxcbiAgICAgICAgc2VjdGlvbi50ZWNoLXNwZWNzIHRhYmxlIHRoIHtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7IH0gfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgICAgIHNlY3Rpb24udGVjaC1zcGVjcyB0YWJsZSB0ZCxcbiAgICAgICAgc2VjdGlvbi50ZWNoLXNwZWNzIHRhYmxlIHRoIHtcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7IH0gfVxuXG5zZWN0aW9uLmFib3V0LWRhdGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGOyB9XG5cbi5hYm91dC1ncmV5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjZmNzsgfVxuXG4uYWJvdXQtdGl0bGUge1xuICBwYWRkaW5nOiAxNC4wNjI1cmVtIDAgNy44MTI1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmFib3V0LXRpdGxlIGgxIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzLjEyNXJlbTtcbiAgICBmb250LXdlaWdodDogMTAwO1xuICAgIGFuaW1hdGlvbi1kZWxheTogMC41czsgfVxuICAuYWJvdXQtdGl0bGUgcCB7XG4gICAgbWF4LXdpZHRoOiA0NS42MjVyZW07XG4gICAgbWFyZ2luOiAwIGF1dG8gMS41NjI1cmVtO1xuICAgIGFuaW1hdGlvbi1kZWxheTogMXM7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC5hYm91dC10aXRsZSBwIGEge1xuICAgICAgY29sb3I6ICMwMGE0ZGY7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsgfVxuICAgICAgLmFib3V0LXRpdGxlIHAgYTpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5hYm91dC10aXRsZSB7XG4gICAgICBwYWRkaW5nOiAzNSUgMCAxNSU7IH0gfVxuXG4uYWJvdXQtc3ViLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMi4xODc1cmVtO1xuICBmb250LXdlaWdodDogMTAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLmFib3V0LWNvbnRhY3Qge1xuICBoZWlnaHQ6IDc1dmg7XG4gIG1heC1oZWlnaHQ6IDcwMHB4O1xuICBtaW4taGVpZ2h0OiA2MDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICAuYWJvdXQtY29udGFjdDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cblxuLmFib3V0LXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5hYm91dC12aWRlbyB2aWRlbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG4gIC5hYm91dC12aWRlbyBzdmcge1xuICAgIHdpZHRoOiA2LjI1cmVtO1xuICAgIGhlaWdodDogNi4yNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjU2MjVyZW07XG4gICAgc3Ryb2tlOiAjRkZGO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gZWFzZS1pbi1vdXQgMC4zczsgfVxuICAgIC5hYm91dC12aWRlbyBzdmc6aG92ZXIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjI1KTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgLmFib3V0LXZpZGVvIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgaGVpZ2h0OiAzLjEyNXJlbTsgfSB9XG4gIC5hYm91dC12aWRlbyBwIHtcbiAgICBjb2xvcjogI0ZGRjsgfVxuICAuYWJvdXQtdmlkZW8gdmlkZW8uYWJvdXQtZmVhdHVyZS12aWRlbyB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmFib3V0LXZpZGVvIGltZy5hYm91dC1mZWF0dXJlLWltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5hYm91dC12aWRlbyB2aWRlby5hYm91dC1mZWF0dXJlLXZpZGVvIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuYWJvdXQtdmlkZW8gaW1nLmFib3V0LWZlYXR1cmUtaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuLmdhbGxlcnk6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IHRhYmxlOyB9XG5cbi5hYm91dC15b3V0dWJlLXZpZGVvLXdyYXBwZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogOTk7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5hYm91dC15b3V0dWJlLXZpZGVvIHtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbiAgLyogMTY6OSAqL1xuICBwYWRkaW5nLXRvcDogMjVweDtcbiAgaGVpZ2h0OiAwOyB9XG4gIC5hYm91dC15b3V0dWJlLXZpZGVvIC5jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNyU7XG4gICAgcmlnaHQ6IDE1JTtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4ycyBlYXNlOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAuYWJvdXQteW91dHViZS12aWRlbyAuY2xvc2Uge1xuICAgICAgICB0b3A6IDA7IH0gfVxuICAgIC5hYm91dC15b3V0dWJlLXZpZGVvIC5jbG9zZSBzdmcge1xuICAgICAgZmlsbDogd2hpdGU7IH1cbiAgICAuYWJvdXQteW91dHViZS12aWRlbyAuY2xvc2U6aG92ZXIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5hYm91dC15b3V0dWJlLXZpZGVvIGlmcmFtZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTclO1xuICAgIGxlZnQ6IDIxJTtcbiAgICB3aWR0aDogNjAlO1xuICAgIGhlaWdodDogNjAlOyB9XG5cbi5hYm91dC1jZW50ZXIge1xuICBsZWZ0OiAwO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogNTAlO1xuICB3aWR0aDogNTAlO1xuICB0b3A6IGNhbGMoNTAlIC0gNzVweCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuYWJvdXQtY2VudGVyIHtcbiAgICAgIHRvcDogY2FsYyg1MCUgLSA1MHB4KTsgfSB9XG5cbi5jb250YWN0LWNlbnRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5jb250YWN0LWNlbnRlciAuYWRkcmVzcyB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAyNjVweDtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAuY29udGFjdC1jZW50ZXIgLmFkZHJlc3M6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG5cbi5hYm91dC1jYXJlZXJzIHtcbiAgcGFkZGluZzogMy4xMjVyZW0gMCA2LjI1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmFib3V0LWNhcmVlcnMgcCB7XG4gICAgbWF4LXdpZHRoOiA0Ny41cmVtO1xuICAgIG1hcmdpbjogMCBhdXRvIDEuODc1cmVtOyB9XG5cbi5hYm91dC1hZHZpc29ycyAuY29udGFpbmVyIHtcbiAgcGFkZGluZzogMiUgNSUgOCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uYWJvdXQtYWR2aXNvcnMgdWwge1xuICBtYXJnaW46IDAgYXV0bzsgfVxuICAuYWJvdXQtYWR2aXNvcnMgdWwgbGkge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyM3B4KSB7XG4gICAgLmFib3V0LWFkdmlzb3JzIHVsIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAgIC5hYm91dC1hZHZpc29ycyB1bDphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICAgIC5hYm91dC1hZHZpc29ycyB1bCBsaSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgfVxuICAgICAgLmFib3V0LWFkdmlzb3JzIHVsIGxpOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAgIC5hYm91dC1hZHZpc29ycyB1bCBsaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC4zMTI1cmVtOyB9XG4gICAgICAuYWJvdXQtYWR2aXNvcnMgdWwgbGk6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjOWM5Yzk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNTYyNXJlbTsgfSB9XG5cbi5jb2xsYWdlIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLmFib3V0LWludmVzdG9ycyB7XG4gIHBhZGRpbmc6IDMuMTI1cmVtIDA7XG4gIGJhY2tncm91bmQ6ICNGRkY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuYWJvdXQtaW52ZXN0b3JzIC5zbGljZSB7XG4gICAgbWFyZ2luOiAwIGF1dG8gMS41NjI1cmVtO1xuICAgIG1heC13aWR0aDogNzYwcHg7IH1cbiAgLmFib3V0LWludmVzdG9ycyAuc2xpY2UtaXRlbSB7XG4gICAgcGFkZGluZzogMS41NjI1cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5hYm91dC1pbnZlc3RvcnMgLnNsaWNlLWl0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDU1LCA2MywgNjksIDAuMTUpOyB9XG4gIC5hYm91dC1pbnZlc3RvcnMgaW1nIHtcbiAgICBoZWlnaHQ6IDgwJTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgLmFib3V0LWludmVzdG9ycyBpbWcge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzLjEyNXJlbTsgfSB9XG5cbi5hYm91dC1jb250YWN0IGgyLFxuLmFib3V0LWNvbnRhY3QgcCB7XG4gIGNvbG9yOiAjRkZGOyB9XG5cbi5hYm91dC1jb250YWN0IGgyIHtcbiAgbWFyZ2luLWJvdHRvbTogNy41cmVtO1xuICBmb250LXdlaWdodDogMTAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTM1cHgpOyB9XG5cbi5hYm91dC1jb250YWN0IHAge1xuICBtYXJnaW4tYm90dG9tOiAzLjEyNXJlbTsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmFib3V0LWNvbnRhY3QgYS5idG4sIC5hYm91dC1jb250YWN0IGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIGEuYnRuLCBoZWFkZXJbcm9sZT1cImJhbm5lclwiXSB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSAuYWJvdXQtY29udGFjdCBhLmJ0biB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1heC13aWR0aDogNjAlO1xuICAgIG1hcmdpbi1ib3R0b206IDAuOTM3NXJlbTsgfVxuICAgIC5hYm91dC1jb250YWN0IGEuYnRuOmZpcnN0LWNoaWxkLCAuYWJvdXQtY29udGFjdCBoZWFkZXJbcm9sZT1cImJhbm5lclwiXSB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSBhLmJ0bjpmaXJzdC1jaGlsZCwgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0gdWwubmF2aWdhdGlvbi1jb250YWluZXIgbGkgLmFib3V0LWNvbnRhY3QgYS5idG46Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAuYWJvdXQtY29udGFjdCBhLmJ0bjpsYXN0LWNoaWxkLCAuYWJvdXQtY29udGFjdCBoZWFkZXJbcm9sZT1cImJhbm5lclwiXSB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSBhLmJ0bjpsYXN0LWNoaWxkLCBoZWFkZXJbcm9sZT1cImJhbm5lclwiXSB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciBsaSAuYWJvdXQtY29udGFjdCBhLmJ0bjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAgIC5hYm91dC1jb250YWN0IGEuYnRuOmxhc3QtY2hpbGQsIC5hYm91dC1jb250YWN0IGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIGEuYnRuOmxhc3QtY2hpbGQsIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIC5hYm91dC1jb250YWN0IGEuYnRuOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG5cbnNlY3Rpb24uY2FyZWVycy1oZXJvIGZpZ3VyZSB7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7IH1cblxuc2VjdGlvbi5jYXJlZXJzLWhlcm8gYXJ0aWNsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAxMCU7XG4gIGxlZnQ6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZzogMTQuMzc1cmVtIDUlIDEyLjVyZW07XG4gIHotaW5kZXg6IDA7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICBzZWN0aW9uLmNhcmVlcnMtaGVybyBhcnRpY2xlIHtcbiAgICAgIHBhZGRpbmc6IDkuMzc1cmVtIDUlIDYuMjVyZW07IH0gfVxuXG5zZWN0aW9uLmNhcmVlcnMtaGVybyBkaXYuY29weSB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IDUyLjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBzZWN0aW9uLmNhcmVlcnMtaGVybyBkaXYuY29weSBoMSB7XG4gICAgZm9udC1mYW1pbHk6IEdyYXBoaWsgVGhpbiBXZWI7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogc3VicGl4ZWwtYW50aWFsaWFzZWQ7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBtYXJnaW46IDAgYXV0byA0LjA2MjVyZW07XG4gICAgbWF4LXdpZHRoOiA4MDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBhbmltYXRpb24tZGVsYXk6IDAuNXM7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICBzZWN0aW9uLmNhcmVlcnMtaGVybyBkaXYuY29weSBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS44NzVyZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIuMTg3NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9IH1cbiAgc2VjdGlvbi5jYXJlZXJzLWhlcm8gZGl2LmNvcHkgcCB7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbiAgICBtYXJnaW46IDAgYXV0byAxLjg3NXJlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1heC13aWR0aDogNzc1cHg7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAxczsgfVxuICAgIHNlY3Rpb24uY2FyZWVycy1oZXJvIGRpdi5jb3B5IHA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICBzZWN0aW9uLmNhcmVlcnMtaGVybyBhcnRpY2xlIHtcbiAgICB0b3A6IDE1JTsgfSB9XG5cbnNlY3Rpb24uY2FyZWVyLW9wZW5pbmdzIHtcbiAgcGFkZGluZzogNC4zNzVyZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjZmNzsgfVxuICBzZWN0aW9uLmNhcmVlci1vcGVuaW5ncyBoMyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDYuMjVyZW07XG4gICAgZm9udC1mYW1pbHk6IEdyYXBoaWsgVGhpbiBXZWI7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBzdWJwaXhlbC1hbnRpYWxpYXNlZDsgfVxuICBzZWN0aW9uLmNhcmVlci1vcGVuaW5ncyBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICB3aWR0aDogNDguNSU7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgIG1hcmdpbi1yaWdodDogMyU7XG4gICAgbWFyZ2luLWJvdHRvbTogNi4yNXJlbTtcbiAgICBtYXgtd2lkdGg6IDMyLjE4NzVyZW07IH1cbiAgICBzZWN0aW9uLmNhcmVlci1vcGVuaW5ncyBsaTphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICBzZWN0aW9uLmNhcmVlci1vcGVuaW5ncyBsaTpudGgtY2hpbGQoMm4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMCU7XG4gICAgICBmbG9hdDogcmlnaHQ7IH1cbiAgICBzZWN0aW9uLmNhcmVlci1vcGVuaW5ncyBsaTpudGgtY2hpbGQoMm4gKyAxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICBzZWN0aW9uLmNhcmVlci1vcGVuaW5ncyBoNCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07XG4gICAgZm9udC1mYW1pbHk6ICdHcmFwaGlrIFRoaW4gV2ViJztcbiAgICBjb2xvcjogIzI0NjdiODtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IHN1YnBpeGVsLWFudGlhbGlhc2VkOyB9XG4gIHNlY3Rpb24uY2FyZWVyLW9wZW5pbmdzIHAge1xuICAgIGNvbG9yOiAjNTk2NTcwO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07IH1cbiAgc2VjdGlvbi5jYXJlZXItb3BlbmluZ3MgLmJ0biwgc2VjdGlvbi5jYXJlZXItb3BlbmluZ3MgaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0gdWwubmF2aWdhdGlvbi1jb250YWluZXIgbGkgYS5idG4sIGhlYWRlcltyb2xlPVwiYmFubmVyXCJdIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIHNlY3Rpb24uY2FyZWVyLW9wZW5pbmdzIGEuYnRuIHtcbiAgICBtYXJnaW4tdG9wOiAxLjI1cmVtOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIHNlY3Rpb24uY2FyZWVyLW9wZW5pbmdzIHtcbiAgICAgIHBhZGRpbmc6IDIuNXJlbSAwOyB9XG4gICAgICBzZWN0aW9uLmNhcmVlci1vcGVuaW5ncyBoMyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTsgfVxuICAgICAgc2VjdGlvbi5jYXJlZXItb3BlbmluZ3MgbGkge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMyU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMi41cmVtOyB9XG4gICAgICAgIHNlY3Rpb24uY2FyZWVyLW9wZW5pbmdzIGxpOmFmdGVyIHtcbiAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgICAgICBzZWN0aW9uLmNhcmVlci1vcGVuaW5ncyBsaTpudGgtY2hpbGQoMW4pIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAlO1xuICAgICAgICAgIGZsb2F0OiByaWdodDsgfVxuICAgICAgICBzZWN0aW9uLmNhcmVlci1vcGVuaW5ncyBsaTpudGgtY2hpbGQoMW4gKyAxKSB7XG4gICAgICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAgIHNlY3Rpb24uY2FyZWVyLW9wZW5pbmdzIGg0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTsgfSB9XG5cbnNlY3Rpb24ubGVnYWwge1xuICBwYWRkaW5nOiAxMi41cmVtIDAgMDsgfVxuICBzZWN0aW9uLmxlZ2FsIC5jb250YWluZXI6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIHNlY3Rpb24ubGVnYWwgLmxlZ2FsLXNpZGViYXIge1xuICAgIHdpZHRoOiAyMCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICBzZWN0aW9uLmxlZ2FsIC5sZWdhbC1zaWRlYmFyIHVsIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDsgfVxuICAgIHNlY3Rpb24ubGVnYWwgLmxlZ2FsLXNpZGViYXIgbGkge1xuICAgICAgcGFkZGluZzogOCUgMDtcbiAgICAgIHdpZHRoOiA3LjVyZW07XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYjdiZWM1OyB9XG4gICAgICBzZWN0aW9uLmxlZ2FsIC5sZWdhbC1zaWRlYmFyIGxpLmlzLWFjdGl2ZSB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMGE0ZGY7IH1cbiAgICAgICAgc2VjdGlvbi5sZWdhbCAubGVnYWwtc2lkZWJhciBsaS5pcy1hY3RpdmUgYSB7XG4gICAgICAgICAgY29sb3I6ICMwMGE0ZGY7IH1cbiAgICAgIHNlY3Rpb24ubGVnYWwgLmxlZ2FsLXNpZGViYXIgbGk6aG92ZXIge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjMDBhNGRmOyB9XG4gICAgICAgIHNlY3Rpb24ubGVnYWwgLmxlZ2FsLXNpZGViYXIgbGk6aG92ZXIgYSB7XG4gICAgICAgICAgY29sb3I6ICMwMGE0ZGY7IH1cbiAgICBzZWN0aW9uLmxlZ2FsIC5sZWdhbC1zaWRlYmFyIGEge1xuICAgICAgY29sb3I6ICNiN2JlYzU7XG4gICAgICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuICBzZWN0aW9uLmxlZ2FsIGFydGljbGUge1xuICAgIHdpZHRoOiA4MCU7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBhZGRpbmc6IDAgMi41JTsgfVxuICAgIHNlY3Rpb24ubGVnYWwgYXJ0aWNsZSBhIHtcbiAgICAgIGNvbG9yOiAjMDBhNGRmOyB9XG4gIHNlY3Rpb24ubGVnYWwgZGl2LmNvcHkge1xuICAgIHBhZGRpbmctYm90dG9tOiA2LjI1cmVtOyB9XG4gICAgc2VjdGlvbi5sZWdhbCBkaXYuY29weSB1bCBsaSB7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IGluaXRpYWw7XG4gICAgICBsaXN0LXN0eWxlOiBpbnNpZGU7XG4gICAgICBjb2xvcjogIzU5NjU3MDtcbiAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07IH1cbiAgICBzZWN0aW9uLmxlZ2FsIGRpdi5jb3B5IG9sIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbiAgICAgIGxpc3Qtc3R5bGU6IGluc2lkZTtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbC1sZWFkaW5nLXplcm87XG4gICAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgICBjb2xvcjogIzU5NjU3MDtcbiAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07IH1cbiAgc2VjdGlvbi5sZWdhbCBoMiB7XG4gICAgZm9udC1mYW1pbHk6IEdyYXBoaWsgVGhpbiBXZWI7XG4gICAgY29sb3I6ICM1OTY1NzA7XG4gICAgbWFyZ2luLWJvdHRvbTogMy4xMjVyZW07IH1cbiAgc2VjdGlvbi5sZWdhbCBwIHtcbiAgICBjb2xvcjogIzU5NjU3MDtcbiAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTsgfVxuICBzZWN0aW9uLmxlZ2FsIGg2IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBjb2xvcjogIzU5NjU3MDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgc2VjdGlvbi5sZWdhbCB7XG4gICAgICBwYWRkaW5nOiA3LjVyZW0gMCAwOyB9XG4gICAgICBzZWN0aW9uLmxlZ2FsIC5sZWdhbC1zaWRlYmFyLFxuICAgICAgc2VjdGlvbi5sZWdhbCBhcnRpY2xlIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgICBzZWN0aW9uLmxlZ2FsIC5sZWdhbC1zaWRlYmFyOmZpcnN0LWNoaWxkLFxuICAgICAgICBzZWN0aW9uLmxlZ2FsIGFydGljbGU6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gICAgICAgIHNlY3Rpb24ubGVnYWwgLmxlZ2FsLXNpZGViYXI6bGFzdC1jaGlsZCxcbiAgICAgICAgc2VjdGlvbi5sZWdhbCBhcnRpY2xlOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAgICAgc2VjdGlvbi5sZWdhbCAubGVnYWwtc2lkZWJhciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEuODc1cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgICAgc2VjdGlvbi5sZWdhbCAubGVnYWwtc2lkZWJhciB1bCB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gICAgICAgIHNlY3Rpb24ubGVnYWwgLmxlZ2FsLXNpZGViYXIgbGkge1xuICAgICAgICAgIHBhZGRpbmc6IDAgMS4yNXJlbSAwIDA7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTsgfSB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSBhbmQgKG1heC13aWR0aDogNjM5cHgpIHtcbiAgICAgICAgc2VjdGlvbi5sZWdhbCAubGVnYWwtc2lkZWJhciBsaSB7XG4gICAgICAgICAgcGFkZGluZzogMCAwIDAuOTM3NXJlbSAwO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICAgIHNlY3Rpb24ubGVnYWwgLmxlZ2FsLXNpZGViYXIgbGk6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOyB9XG4gICAgICAgICAgc2VjdGlvbi5sZWdhbCAubGVnYWwtc2lkZWJhciBsaS5pcy1hY3RpdmUge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOyB9XG4gICAgICAgICAgc2VjdGlvbi5sZWdhbCAubGVnYWwtc2lkZWJhciBsaTpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAgIHNlY3Rpb24ubGVnYWwgZGl2LmNvcHkge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS44NzVyZW07IH0gfVxuXG5zZWN0aW9uLnNlYXJjaC1yZXN1bHRzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDYwMHB4O1xuICBwYWRkaW5nOiA1JSA1JSA1JSAxNC4yJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kOiAjZjVmNmY3OyB9XG4gIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgcC5zaG93LXJlc3VsdHMge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiAwLjQzNzVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMi44MTI1cmVtO1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtOyB9XG4gICAgc2VjdGlvbi5zZWFyY2gtcmVzdWx0cyBwLnNob3ctcmVzdWx0cyBzcGFuIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgc2VjdGlvbi5zZWFyY2gtcmVzdWx0cyBkaXYucmVzdWx0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAzLjEyNXJlbTsgfVxuICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdCBoNCxcbiAgICBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHQgcCB7XG4gICAgICBjb2xvcjogcmdiYSg1NSwgNjMsIDY5LCAwLjcpOyB9XG4gICAgc2VjdGlvbi5zZWFyY2gtcmVzdWx0cyBkaXYucmVzdWx0IGg0IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmc6IDAuNjI1cmVtIDEuMjVyZW0gMC42MjVyZW0gMC4zMTI1cmVtO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoNTUsIDYzLCA2OSwgMC40KTtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMzAwbXMsIGJvcmRlciAzMDBtcywgY29sb3IgMzAwbXM7IH1cbiAgICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdCBoNDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTY0LCAyMjMsIDAuNyk7XG4gICAgICAgIGNvbG9yOiAjZjVmNmY3O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwYTRkZjsgfVxuICAgICAgICBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHQgaDQ6aG92ZXIgPiBzcGFuIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdCBwIHNwYW4ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC40Mzc1cmVtOyB9XG4gICAgc2VjdGlvbi5zZWFyY2gtcmVzdWx0cyBkaXYucmVzdWx0IHNwYW4gYSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNDM3NXJlbTtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIDMwMG1zOyB9XG4gICAgICBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHQgc3BhbiBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICMwMDMzNDY7IH1cbiAgICBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHQgcDpmaXJzdC1vZi10eXBlIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07IH1cbiAgICBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHQgcDpsYXN0LW9mLXR5cGUge1xuICAgICAgd2lkdGg6IDYwJTtcbiAgICAgIHBhZGRpbmctdG9wOiAwLjkzNzVyZW07IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIGRpdi5yZXN1bHQgcDpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgIHdpZHRoOiA5MCU7IH0gfVxuICAgIHNlY3Rpb24uc2VhcmNoLXJlc3VsdHMgZGl2LnJlc3VsdCAuc2VhcmNoLWhpZ2hsaWdodCB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDE2NCwgMjIzLCAwLjEpO1xuICAgICAgcGFkZGluZzogMC41cmVtIDAuMTg3NXJlbSAwLjVyZW0gMC4zMTI1cmVtO1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAzMDBtczsgfVxuXG4uaG9tZS1pbnRyb2R1Y3Rpb24ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTAwZGVnLCAjYTMzMDJmIDAlLCAjNmEyYTRiIDI1JSwgIzM1MzQ3NyA1MCUsICMxMjY2YWEgODUlLCAjMDI5Y2Q1IDEwMCUpO1xuICBwYWRkaW5nOiA1JSAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjsgfVxuICAuaG9tZS1pbnRyb2R1Y3Rpb24gLmNvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuOyB9XG4gICAgLmhvbWUtaW50cm9kdWN0aW9uIC5jb250YWluZXI6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5ob21lLWludHJvZHVjdGlvbiBmaWd1cmUuYmFja3NwaW4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMzQlO1xuICAgIHRvcDogNi4yNXJlbTtcbiAgICByaWdodDogLTMlO1xuICAgIGhlaWdodDogNDAwcHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDgwcHgpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gICAgLmhvbWUtaW50cm9kdWN0aW9uIGZpZ3VyZS5iYWNrc3BpbiBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDQyMHB4OyB9XG4gICAgLmhvbWUtaW50cm9kdWN0aW9uIGZpZ3VyZS5iYWNrc3Bpbi5yZXNvbHZlZCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLmhvbWUtaW50cm9kdWN0aW9uIGZpZ3VyZS5iYWNrc3Bpbi5leGl0IHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTgwcHgpOyB9XG4gIC5ob21lLWludHJvZHVjdGlvbiBmaWd1cmUucmluZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNC4zNzVyZW07XG4gICAgcmlnaHQ6IDMzJTtcbiAgICB3aWR0aDogMTAlO1xuICAgIGhlaWdodDogMzAwcHg7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpOyB9XG4gICAgLmhvbWUtaW50cm9kdWN0aW9uIGZpZ3VyZS5yaW5nIGltZyB7XG4gICAgICBvcGFjaXR5OiAuODsgfVxuICAgIC5ob21lLWludHJvZHVjdGlvbiBmaWd1cmUucmluZy5yZXNvbHZlZCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLmhvbWUtaW50cm9kdWN0aW9uIGZpZ3VyZS5yaW5nLmV4aXQge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7IH1cbiAgLmhvbWUtaW50cm9kdWN0aW9uIC50b3AtY29weSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA1NSU7XG4gICAgcGFkZGluZzogNTBweCAwOyB9XG4gIC5ob21lLWludHJvZHVjdGlvbiAuYm90dG9tLWNvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDkwcHggMDsgfVxuICAgIC5ob21lLWludHJvZHVjdGlvbiAuYm90dG9tLWNvbnRlbnQ6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5ob21lLWludHJvZHVjdGlvbiAuYm90dG9tLWNvcHkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBub25lO1xuICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgd2lkdGg6IDU4LjglO1xuICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDMlO1xuICAgIHBhZGRpbmctbGVmdDogMiU7IH1cbiAgICAuaG9tZS1pbnRyb2R1Y3Rpb24gLmJvdHRvbS1jb3B5OmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgIC5ob21lLWludHJvZHVjdGlvbiAuYm90dG9tLWNvcHk6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAlOyB9XG4gIC5ob21lLWludHJvZHVjdGlvbiB1bC5wbGF0Zm9ybXMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBub25lO1xuICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgd2lkdGg6IDM4LjIlO1xuICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDMlOyB9XG4gICAgLmhvbWUtaW50cm9kdWN0aW9uIHVsLnBsYXRmb3JtczphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICAuaG9tZS1pbnRyb2R1Y3Rpb24gdWwucGxhdGZvcm1zOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwJTsgfVxuICAgIC5ob21lLWludHJvZHVjdGlvbiB1bC5wbGF0Zm9ybXM6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgLmhvbWUtaW50cm9kdWN0aW9uIHVsLnBsYXRmb3JtcyBsaSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgIHdpZHRoOiAzMiU7XG4gICAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMiU7IH1cbiAgICAgIC5ob21lLWludHJvZHVjdGlvbiB1bC5wbGF0Zm9ybXMgbGk6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgICAuaG9tZS1pbnRyb2R1Y3Rpb24gdWwucGxhdGZvcm1zIGxpOm50aC1jaGlsZCgzbikge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAlO1xuICAgICAgICBmbG9hdDogcmlnaHQ7IH1cbiAgICAgIC5ob21lLWludHJvZHVjdGlvbiB1bC5wbGF0Zm9ybXMgbGk6bnRoLWNoaWxkKDNuICsgMSkge1xuICAgICAgICBjbGVhcjogYm90aDsgfVxuICAgICAgLmhvbWUtaW50cm9kdWN0aW9uIHVsLnBsYXRmb3JtcyBsaTpudGgtY2hpbGQoMSkgYSB7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4wOHM7IH1cbiAgICAgIC5ob21lLWludHJvZHVjdGlvbiB1bC5wbGF0Zm9ybXMgbGk6bnRoLWNoaWxkKDIpIGEge1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuMTZzOyB9XG4gICAgICAuaG9tZS1pbnRyb2R1Y3Rpb24gdWwucGxhdGZvcm1zIGxpOm50aC1jaGlsZCgzKSBhIHtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjI0czsgfVxuICAgICAgLmhvbWUtaW50cm9kdWN0aW9uIHVsLnBsYXRmb3JtcyBsaTpudGgtY2hpbGQoNCkgYSB7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4zMnM7IH1cbiAgICAgIC5ob21lLWludHJvZHVjdGlvbiB1bC5wbGF0Zm9ybXMgbGk6bnRoLWNoaWxkKDUpIGEge1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuNHM7IH1cbiAgICAgIC5ob21lLWludHJvZHVjdGlvbiB1bC5wbGF0Zm9ybXMgbGk6bnRoLWNoaWxkKDYpIGEge1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuNDhzOyB9XG4gICAgLmhvbWUtaW50cm9kdWN0aW9uIHVsLnBsYXRmb3JtcyBhIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE2LCAyMSwgNDAsIDAuNCk7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZTtcbiAgICAgIG9wYWNpdHk6IDA7IH1cbiAgICAgIC5ob21lLWludHJvZHVjdGlvbiB1bC5wbGF0Zm9ybXMgYTpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwMCU7IH1cbiAgICAgIC5ob21lLWludHJvZHVjdGlvbiB1bC5wbGF0Zm9ybXMgYSBpbWcge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiA0MCU7XG4gICAgICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgICAuaG9tZS1pbnRyb2R1Y3Rpb24gdWwucGxhdGZvcm1zIGE6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE2LCAyMSwgNDAsIDAuNyk7IH1cbiAgICAuaG9tZS1pbnRyb2R1Y3Rpb24gdWwucGxhdGZvcm1zIGltZyB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1heC13aWR0aDogMTQxMHB4O1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgd2lkdGg6IDcwcHg7IH1cbiAgICAgIC5ob21lLWludHJvZHVjdGlvbiB1bC5wbGF0Zm9ybXMgaW1nOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgIC5ob21lLWludHJvZHVjdGlvbiB1bC5wbGF0Zm9ybXMucmVzb2x2ZWQgbGkgYSB7XG4gICAgICBhbmltYXRpb24tbmFtZTogb3Zlci1zY2FsZTsgfVxuICAuaG9tZS1pbnRyb2R1Y3Rpb24gaDMge1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMi41cmVtOyB9XG4gIC5ob21lLWludHJvZHVjdGlvbiBwIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpOyB9XG4gICAgLmhvbWUtaW50cm9kdWN0aW9uIHAgYSB7XG4gICAgICBjb2xvcjogI0ZGRjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIC5ob21lLWludHJvZHVjdGlvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMjBkZWcsICNhMzMwMmYgMCUsICM2YTJhNGIgMjUlLCAjMzUzNDc3IDUwJSwgIzEyNjZhYSA4NSUsICMwMjljZDUgMTAwJSk7IH1cbiAgICAgIC5ob21lLWludHJvZHVjdGlvbiAudG9wLWNvcHkge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDc1JSAwIDEuODc1cmVtOyB9XG4gICAgICAuaG9tZS1pbnRyb2R1Y3Rpb24gLmJvdHRvbS1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogNTBweCAwOyB9XG4gICAgICAuaG9tZS1pbnRyb2R1Y3Rpb24gZmlndXJlLmJhY2tzcGluIHtcbiAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgdG9wOiAyLjYyNXJlbTsgfVxuICAgICAgLmhvbWUtaW50cm9kdWN0aW9uIGZpZ3VyZS5yaW5nIHtcbiAgICAgICAgd2lkdGg6IDIwJTtcbiAgICAgICAgcmlnaHQ6IDY1JTtcbiAgICAgICAgb3BhY2l0eTogLjc7XG4gICAgICAgIHRvcDogMi41cmVtOyB9XG4gICAgICAuaG9tZS1pbnRyb2R1Y3Rpb24gdWwucGxhdGZvcm1zLCAuaG9tZS1pbnRyb2R1Y3Rpb24gLmJvdHRvbS1jb3B5IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGNsZWFyOiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDMlOyB9XG4gICAgICAgIC5ob21lLWludHJvZHVjdGlvbiB1bC5wbGF0Zm9ybXM6YWZ0ZXIsIC5ob21lLWludHJvZHVjdGlvbiAuYm90dG9tLWNvcHk6YWZ0ZXIge1xuICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgICAgIC5ob21lLWludHJvZHVjdGlvbiB1bC5wbGF0Zm9ybXM6bGFzdC1jaGlsZCwgLmhvbWUtaW50cm9kdWN0aW9uIC5ib3R0b20tY29weTpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAlOyB9XG4gICAgICAuaG9tZS1pbnRyb2R1Y3Rpb24gLmJvdHRvbS1jb3B5IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDQwcHg7IH0gfVxuIiwiLy8gaHR0cDovL21leWVyd2ViLmNvbS9lcmljL3Rvb2xzL2Nzcy9yZXNldC9cbi8vIHYyLjAgfCAyMDExMDEyNlxuLy8gTGljZW5zZTogbm9uZSAocHVibGljIGRvbWFpbilcblxuQG1peGluIG1leWVyLXJlc2V0IHtcbiAgaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsIGEsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSwgZGVsLCBkZm4sIGVtLCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLCBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLCBiLCB1LCBpLCBjZW50ZXIsIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLCB0YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCwgYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZW1iZWQsIGZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksIHNlY3Rpb24sIHN1bW1hcnksIHRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIC8vIEhUTUw1IGRpc3BsYXktcm9sZSByZXNldCBmb3Igb2xkZXIgYnJvd3NlcnNcbiAgYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICBib2R5IHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuICBvbCwgdWwge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIH1cbiAgYmxvY2txdW90ZSwgcSB7XG4gICAgcXVvdGVzOiBub25lO1xuICB9XG4gIGJsb2NrcXVvdGUge1xuICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBjb250ZW50OiBub25lO1xuICAgIH1cbiAgfVxuICBxIHtcbiAgICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgY29udGVudDogbm9uZTtcbiAgICB9XG4gIH1cbiAgdGFibGUge1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIH1cbn1cblxuQGluY2x1ZGUgbWV5ZXItcmVzZXQ7XG4iLCIvLy8vXG4vLy8gbm9ybWFsaXplLWxpYnNhc3MgMS4wLjNcbi8vLyBNSVQvR1BMdjIgTGljZW5zZVxuLy8vIGxiLmNtL25vcm1hbGl6ZS1saWJzYXNzXG4vLy8vXG5cbi8vLyBTdHJpY3Qgbm9ybWFsaXplXG4vLy8gQHR5cGUgQm9vbGVhbiBbZmFsc2VdIC0gU2V0IHRvIHRydWUgZm9yIHN0cmljdCBub3JtYWxpemUgb3V0cHV0LlxuJHN0cmljdC1ub3JtYWxpemU6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gRm9udC1zaXplIGJhc2VsaW5lXG4vLy8gQHR5cGUgTGVuZ3RoIFsxNnB4XVxuJGJhc2UtZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xuXG4vLy8gTGluZS1oZWlnaHQgYmFzZWxpbmVcbi8vLyBAdHlwZSBMZW5ndGggWzI0cHhdXG4kYmFzZS1saW5lLWhlaWdodDogMjRweCAhZGVmYXVsdDtcblxuLy8vIEgxIGhlYWRsaW5lIHNpemVcbi8vLyBAdHlwZSBMZW5ndGggWzIgKiAxNnB4XVxuJGgxLWZvbnQtc2l6ZTogMiAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8vIFJoeXRobSB1bml0XG4vLy8gQHR5cGUgU3RyaW5nIFtlbV0gLSBTdXBwb3J0ZWQgdmFsdWVzOiBweCwgZW0sIHJlbS5cbiRyaHl0aG0tdW5pdDogJ2VtJyAhZGVmYXVsdDtcblxuLy8vIEZvbnQtZmFtaWx5IGJhc2VsaW5lXG4vLy8gQHR5cGUgTWFwIFtzYW5zLXNlcmlmXVxuJGJhc2UtZm9udC1mYW1pbHk6IHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vLyBTdXBwb3J0ZWQgQnJvd3NlciB2ZXJzaW9uc1xuLy8vIEB0eXBlIE1hcFxuJGJyb3dzZXItbWluLXZlcnNpb246IChcbiAgJ2Nocm9tZSc6ICBudWxsLFxuICAnZmlyZWZveCc6IG51bGwsXG4gICdpZSc6ICAgICAgOCxcbiAgJ3NhZmFyaSc6ICA2LFxuICAnb3BlcmEnOiAgIG51bGxcbikgIWRlZmF1bHQ7XG5cbi8vIEFzc3VyZSBubyB2YXJpYWJsZXMgZ2V0IG92ZXJyaWRkZW4gaWYgc3RyaWN0IGlzIG9uXG4kbm9ybWFsaXplLWJhc2UtZm9udC1zaXplOiBpZigkc3RyaWN0LW5vcm1hbGl6ZSwgMTZweCwgJGJhc2UtZm9udC1zaXplKTtcbiRub3JtYWxpemUtYmFzZS1saW5lLWhlaWdodDogaWYoJHN0cmljdC1ub3JtYWxpemUsIDI0cHgsICRiYXNlLWxpbmUtaGVpZ2h0KTtcbiRub3JtYWxpemUtaDEtZm9udC1zaXplOiBpZigkc3RyaWN0LW5vcm1hbGl6ZSwgMiAqICRiYXNlLWZvbnQtc2l6ZSwgJGgxLWZvbnQtc2l6ZSk7XG4kbm9ybWFsaXplLXJoeXRobS11bml0OiBpZigkc3RyaWN0LW5vcm1hbGl6ZSwgJ2VtJywgJHJoeXRobS11bml0KTtcbiRub3JtYWxpemUtYmFzZS1mb250LWZhbWlseTogaWYoJHN0cmljdC1ub3JtYWxpemUsIHNhbnMtc2VyaWYsICRiYXNlLWZvbnQtZmFtaWx5KTtcblxuLy8vIE5vcm1hbGl6ZSBMZWdhY3kgQnJvd3NlciBTdXBwb3J0IGZ1bmN0aW9uXG4vLy9cbi8vLyBAcmVxdWlyZXMge3ZhcmlhYmxlfSBicm93c2VyXG4vLy8gQHJlcXVpcmVzIHt2YXJpYWJsZX0gdmVyc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicm93c2VyIC0gQSB2YWxpZCBicm93c2VyIG5hbWUgZnJvbSAkYnJvd3Nlci1taW5pbXVtLXZlcnNpb25zLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmVyc2lvbiAtIEEgYnJvd3NlciB2ZXJzaW9uLlxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH0gLSBJZiBicm93c2VyIGlzIG51bGwgb3IgdmFsaWQgcmV0dXJucyB0cnVlLlxuQGZ1bmN0aW9uIG5vcm1hbGl6ZS1icm93c2VyLXN1cHBvcnQoJGJyb3dzZXIsICR2ZXJzaW9uKSB7XG4gIC8vIElmIGJyb3dzZXIgaXMgbm90IG51bGwgdGhlbiBjaGVjayBmb3Igc3VwcG9ydFxuICBAaWYgbWFwLWdldCgkYnJvd3Nlci1taW4tdmVyc2lvbiwgJGJyb3dzZXIpIHtcbiAgICAkc3VwcG9ydGVkLXZlcnNpb246IG1hcC1nZXQoJGJyb3dzZXItbWluLXZlcnNpb24sICRicm93c2VyKTtcbiAgICAvLyBQYXNzIGlmIGJyb3dzZXIgaXMgc3VwcG9ydGVkIG9yIHN0cmljdC1ub3JtYWxpemUgaXMgb25cbiAgICBAaWYgJHN0cmljdC1ub3JtYWxpemUgb3IgJHN1cHBvcnRlZC12ZXJzaW9uIDw9ICR2ZXJzaW9uIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIC8vIEZhaWwgaWYgYnJvd3NlciBpcyB1bnN1cHBvcnRlZFxuICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuICAvLyBQYXNzIGlmIGJyb3dzZXIgaXMgbnVsbFxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLyBDb252ZXJ0IG9uZSB1bml0IGludG8gYW5vdGhlclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIEluaXRpYWwgdmFsdWVcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBEZXNpcmVkIHVuaXRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vLyBAdGhyb3cgRXJyb3IgaWYgYCR1bml0YCBkb2VzIG5vdCBleGlzdCBvciBpZiB1bml0cyBhcmUgaW5jb21wYXRpYmxlLlxuQGZ1bmN0aW9uIG5vcm1hbGl6ZS1jb252ZXJ0LXVuaXQoJHZhbHVlLCAkdW5pdCkge1xuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuICAkdW5pdHM6IChcbiAgICAncHgnOiAwcHgsXG4gICAgJ2NtJzogMGNtLFxuICAgICdtbSc6IDBtbSxcbiAgICAnJSc6IDAlLFxuICAgICdpbic6IDBpbixcbiAgICAnZW0nOiAwZW0sXG4gICAgJ3JlbSc6IDByZW0sXG4gICAgJ3B0JzogMHB0XG4gICk7XG4gIC8vIHNjc3MtbGludDplbmFibGUgWmVyb1VuaXRcblxuICBAaWYgbWFwLWhhcy1rZXkoJHVuaXRzLCAkdW5pdCkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkdW5pdHMsICR1bml0KSArICR2YWx1ZTtcbiAgfVxuXG4gIEBlcnJvciBcIlVua25vd24gdW5pdCBgI3skdW5pdH1gLlwiO1xufVxuXG4vKipcbiogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uXG4qICAgIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiogICAgdXNlciB6b29tLlxuKi9cbmh0bWwge1xuICBmb250LWZhbWlseTogJG5vcm1hbGl6ZS1iYXNlLWZvbnQtZmFtaWx5OyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKipcbiogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4qIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4qIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4qIGFuZCBGaXJlZm94LlxuKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4qL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBAaWYgbm9ybWFsaXplLWJyb3dzZXItc3VwcG9ydCgnaWUnLCA5KSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gIH1cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG5AaWYgbm9ybWFsaXplLWJyb3dzZXItc3VwcG9ydCgnaWUnLCAxMCkge1xuICAvKipcbiAgICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICAgKi9cblxuICBbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vKipcbiogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQGlmIG5vcm1hbGl6ZS1icm93c2VyLXN1cHBvcnQoJ2llJywgMTApIHtcbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgKi9cblxuICBhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vKipcbiogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuKiBhY3RpdmUvaG92ZXIgc3RhdGUuXG4qL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4qIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4qIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4qIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4qIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuKi9cblxuaDEge1xuICBmb250LXNpemU6IG5vcm1hbGl6ZS1jb252ZXJ0LXVuaXQoKCRub3JtYWxpemUtaDEtZm9udC1zaXplIC8gJG5vcm1hbGl6ZS1iYXNlLWZvbnQtc2l6ZSksICRub3JtYWxpemUtcmh5dGhtLXVuaXQpO1xuICBtYXJnaW46IG5vcm1hbGl6ZS1jb252ZXJ0LXVuaXQoKCRub3JtYWxpemUtYmFzZS1mb250LXNpemUgLyAkbm9ybWFsaXplLWJhc2UtbGluZS1oZWlnaHQpLCAkbm9ybWFsaXplLXJoeXRobS11bml0KSAwO1xufVxuXG5AaWYgbm9ybWFsaXplLWJyb3dzZXItc3VwcG9ydCgnaWUnLCA5KSB7XG4gIC8qKlxuICAgKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICAgKi9cblxuICBtYXJrIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmYwO1xuICAgIGNvbG9yOiAjMDAwO1xuICB9XG59XG5cbi8qKlxuKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AaWYgbm9ybWFsaXplLWJyb3dzZXItc3VwcG9ydCgnaWUnLCAxMCkge1xuICAvKipcbiAgICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gICAqL1xuXG4gIGltZyB7XG4gICAgYm9yZGVyOiAwO1xuICB9XG59XG5cbkBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KCdpZScsIDExKSB7XG4gIC8qKlxuICAgKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAgICovXG5cbiAgc3ZnOm5vdCg6cm9vdCkge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQGlmIG5vcm1hbGl6ZS1icm93c2VyLXN1cHBvcnQoJ2llJywgOSkgb3Igbm9ybWFsaXplLWJyb3dzZXItc3VwcG9ydCgnc2FmYXJpJywgNikge1xuICAvKipcbiAgICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gICAqL1xuXG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAxZW0gNDBweDtcbiAgfVxufVxuXG4vKipcbiogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4qIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4qL1xuXG4vKipcbiogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4qL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG5AaWYgbm9ybWFsaXplLWJyb3dzZXItc3VwcG9ydCgnaWUnLCAxMSkge1xuICAvKipcbiAgICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gICAqL1xuXG4gIGJ1dHRvbiB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cbn1cblxuLyoqXG4qIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4qL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9J2J1dHRvbiddLCAvKiAxICovXG5pbnB1dFt0eXBlPSdyZXNldCddLFxuaW5wdXRbdHlwZT0nc3VibWl0J10ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4qIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4qL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4qL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4qIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiogdGhlIFVBIHN0eWxlc2hlZXQuXG4qL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbkBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KCdpZScsIDEwKSB7XG4gIC8qKlxuICAgKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gICAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gICAqXG4gICAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gICAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gICAqL1xuXG4gIGlucHV0W3R5cGU9J2NoZWNrYm94J10sXG4gIGlucHV0W3R5cGU9J3JhZGlvJ10ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG4gIH1cbn1cblxuLyoqXG4qIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4qIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4qIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiovXG5cbmlucHV0W3R5cGU9J251bWJlciddOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiovXG5cbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi8qKlxuKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4qL1xuXG5pbnB1dFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4qIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiovXG5cbmxlZ2VuZCB7XG4gIEBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KCdpZScsIDExKSB7XG4gICAgYm9yZGVyOiAwOyAvKiAxICovXG4gIH1cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG5AaWYgbm9ybWFsaXplLWJyb3dzZXItc3VwcG9ydCgnaWUnLCAxMSkge1xuICAvKipcbiAgICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAgICovXG5cbiAgdGV4dGFyZWEge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG59XG5cbi8qKlxuKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4qIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuKi9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCIub2xkLWJyb3dzZXJzIHtcbiAgei1pbmRleDogOTk5OTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBjb2xvcjogYmxhY2s7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBcbiAgaDIgeyBwYWRkaW5nOiAyMHB4IDAgMjBweCAwOyB9XG4gIHAsIHVsIHsgbWFyZ2luOiAwIGF1dG87IH1cbiAgcCB7XG4gICAgbWF4LXdpZHRoOiA3MDBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTBweDtcbiAgICBsaW5lLWhlaWdodDogMS40ZW07ICAgIFxuICB9XG4gIHVsIHtcbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nOiAwIDI1cHg7XG4gICAgICBpbWcgeyB3aWR0aDogMTE1cHg7IH1cbiAgICAgIHAgeyBwYWRkaW5nLXRvcDogMTVweDsgY29sb3I6ICMyNDlBRTE7fVxuICAgIH1cbiAgfVxufVxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn0iLCIvKiAgU3ludGF4IFF1aWNrIFJlZmVyZW5jZVxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBjb2x1bW4oJHJhdGlvczogMSwgJG9mZnNldDogMCwgJGN5Y2xlOiAwLCAkdW5jeWNsZTogMCwgJGd1dHRlcjogJGplZXQtZ3V0dGVyKVxuICBzcGFuKCRyYXRpbzogMSwgJG9mZnNldDogMClcbiAgc2hpZnQoJHJhdGlvczogMCwgJGNvbF9vcl9zcGFuOiBjb2x1bW4sICRndXR0ZXI6ICRqZWV0LWd1dHRlcilcbiAgdW5zaGlmdCgpXG4gIGVkaXQoKVxuICBjZW50ZXIoJG1heF93aWR0aDogMTQxMHB4LCAkcGFkOiAwKVxuICBzdGFjaygkcGFkOiAwLCAkYWxpZ246IGZhbHNlKVxuICB1bnN0YWNrKClcbiAgYWxpZ24oJGRpcmVjdGlvbjogYm90aClcbiAgY2YoKVxuKi9cblxuQGltcG9ydCAnX3NldHRpbmdzJztcbkBpbXBvcnQgJ19mdW5jdGlvbnMnO1xuQGltcG9ydCAnX2dyaWQnO1xuIiwiLyoqXG4gKiBHcmlkIHNldHRpbmdzLlxuICogQWxsIHZhbHVlcyBhcmUgZGVmYXVsdHMgYW5kIGNhbiB0aGVyZWZvcmUgYmUgZWFzaWx5IG92ZXJpZGRlbi5cbiAqL1xuXG4kamVldC1ndXR0ZXI6ICAgICAgICAgICAzICAgICAgIWRlZmF1bHQ7XG4kamVldC1wYXJlbnQtZmlyc3Q6ICAgICBmYWxzZSAgIWRlZmF1bHQ7XG4kamVldC1sYXlvdXQtZGlyZWN0aW9uOiBcIkxUUlwiICAhZGVmYXVsdDtcbiRqZWV0LW1heC13aWR0aDogICAgICAgIDE0MTBweCAhZGVmYXVsdDtcbiIsIi8qKlxuICogTGlzdCBmdW5jdGlvbnMgY291cnRlc3kgb2YgdGhlIHdvbmRlcmZ1bCBmb2xrcyBhdCBUZWFtIFNhc3MuXG4gKiBDaGVjayBvdXQgdGhlaXIgYXdlc29tZSBncmlkOiBTaW5ndWxhcml0eS5cbiAqL1xuXG4vKipcbiAqIEdldCAgcGVyY2VudGFnZSBmcm9tIGEgZ2l2ZW4gcmF0aW8uXG4gKiBAcGFyYW0ge251bWJlcn0gWyRyYXRpbz0xXSAtIFRoZSBjb2x1bW4gcmF0aW8gb2YgdGhlIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSAtIFRoZSBwZXJjZW50YWdlIHZhbHVlLlxuICovXG5AZnVuY3Rpb24gamVldC1nZXQtc3BhbigkcmF0aW86IDEpIHtcbiAgQHJldHVybiAkcmF0aW8gKiAxMDA7XG59XG5cbi8qKlxuICogV29yayBvdXQgdGhlIGNvbHVtbiB3aWR0aHMgYmFzZWQgb24gdGhlIHJhdGlvIGFuZCBndXR0ZXIgc2l6ZXMuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRyYXRpb3M9MV0gLSBUaGUgY29sdW1uIHJhdGlvIG9mIHRoZSBlbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXJ9IFskZ3V0dGVyPSRqZWV0LWd1dHRlcl0gLSBUaGUgZ3V0dGVyIGZvciB0aGUgY29sdW1uLlxuICogQHJldHVybnMge2xpc3R9ICR3aWR0aCAkZ3V0dGVyIC0gQSBsaXN0IGNvbnRhaW5pbmcgdGhlIHdpdGggYW5kIGd1dHRlciBmb3IgdGhlIGVsZW1lbnQuXG4gKi9cbkBmdW5jdGlvbiBqZWV0LWdldC1jb2x1bW4oJHJhdGlvczogMSwgJGd1dHRlcjogJGplZXQtZ3V0dGVyKSB7XG4gICRyYXRpb3M6IGlmKG5vdCAkamVldC1wYXJlbnQtZmlyc3QsIGplZXQtcmV2ZXJzZSgkcmF0aW9zKSwgJHJhdGlvcyk7XG4gICR3aWR0aDogMTAwO1xuXG4gIEBlYWNoICRyYXRpbyBpbiAkcmF0aW9zIHtcbiAgICAkZ3V0dGVyOiAkZ3V0dGVyIC8gJHdpZHRoICogMTAwO1xuICAgICR3aWR0aDogMTAwICogJHJhdGlvIC0gJGd1dHRlciArICRyYXRpbyAqICRndXR0ZXI7XG4gIH1cblxuICBAcmV0dXJuICR3aWR0aCAkZ3V0dGVyO1xufVxuXG4vKipcbiAqIEdldCB0aGUgc2V0IGxheW91dCBkaXJlY3Rpb24gZm9yIHRoZSBwcm9qZWN0LlxuICogQHJldHVybnMge3N0cmluZ30gJGRpcmVjdGlvbiAtIFRoZSBsYXlvdXQgZGlyZWN0aW9uLlxuICovXG5AZnVuY3Rpb24gamVldC1nZXQtbGF5b3V0LWRpcmVjdGlvbigpIHtcbiAgJGRpcmVjdGlvbjogaWYoJGplZXQtbGF5b3V0LWRpcmVjdGlvbiA9PSBcIlJUTFwiLCByaWdodCwgbGVmdCk7XG5cbiAgQHJldHVybiAkZGlyZWN0aW9uO1xufVxuXG4vKipcbiAqIFJlcGxhY2UgYSBzcGVjaWZpZWQgbGlzdCB2YWx1ZSB3aXRoIGEgbmV3IHZhbHVlICh1c2VzIGJ1aWx0IGluIHNldC1udGgoKSBpZiBhdmFpbGFibGUpXG4gKiBAcGFyYW0ge2xpc3R9ICRsaXN0IC0gVGhlIGxpc3Qgb2YgdmFsdWVzIHlvdSB3YW50IHRvIGFsdGVyLlxuICogQHBhcmFtIHtudW1iZXJ9ICRpbmRleCAtIFRoZSBpbmRleCBvZiB0aGUgbGlzdCBpdGVtIHlvdSB3YW50IHRvIHJlcGxhY2UuXG4gKiBAcGFyYW0geyp9ICR2YWx1ZSAtIFRoZSB2YWx1ZSB5b3Ugd2FudCB0byByZXBsYWNlICRpbmRleCB3aXRoLlxuICogQHJldHVybnMge2xpc3R9ICRsaXN0IC0gVGhlIGxpc3Qgd2l0aCB0aGUgdmFsdWUgcmVwbGFjZWQgb3IgcmVtb3ZlZC5cbiAqIEB3YXJuIGlmIGFuIGludmFsaWQgaW5kZXggaXMgc3VwcGxpZWQuXG4gKi9cbkBmdW5jdGlvbiBqZWV0LXJlcGxhY2UtbnRoKCRsaXN0LCAkaW5kZXgsICR2YWx1ZSkge1xuICAvLyBGYWxsYmFjayBmb3IgU2FzcyAzLjJcbiAgQGlmIGZ1bmN0aW9uLWV4aXN0cyhcInNldC1udGhcIikgIT0gdHJ1ZSB7XG4gICAgJHJlc3VsdDogKCk7XG4gICAgJGluZGV4OiBpZigkaW5kZXggPCAwLCBsZW5ndGgoJGxpc3QpICsgJGluZGV4ICsgMSwgJGluZGV4KTtcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRsaXN0KSB7XG4gICAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgaWYoJGkgPT0gJGluZGV4LCAkdmFsdWUsIG50aCgkbGlzdCwgJGkpKSk7XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmVzdWx0O1xuICB9XG5cbiAgLy8gU2FzcyAzLjNcbiAgJHJlc3VsdDogc2V0LW50aCgkbGlzdCwgJGluZGV4LCAkdmFsdWUpO1xuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLyoqXG4gKiBSZXZlcnNlIGEgbGlzdCAocHJvZ3Jlc3NpdmVseSBlbmhhbmNlZCBmb3IgU2FzcyAzLjMpXG4gKiBAcGFyYW0ge2xpc3R9ICRsaXN0IC0gVGhlIGxpc3Qgb2YgdmFsdWVzIHlvdSB3YW50IHRvIHJldmVyc2UuXG4gKiBAcmV0dXJucyB7bGlzdH0gJHJlc3VsdCAtIFRoZSByZXZlcnNlZCBsaXN0LlxuICovXG5AZnVuY3Rpb24gamVldC1yZXZlcnNlKCRsaXN0KSB7XG4gIC8vIFNhc3MgMy4yXG4gIEBpZiBmdW5jdGlvbi1leGlzdHMoXCJzZXQtbnRoXCIpICE9IHRydWUge1xuICAgICRyZXN1bHQ6ICgpO1xuXG4gICAgQGZvciAkaSBmcm9tIGxlbmd0aCgkbGlzdCkgKiAtMSB0aHJvdWdoIC0xIHtcbiAgICAgICRpdGVtOiBudGgoJGxpc3QsIGFicygkaSkpO1xuXG4gICAgICBAaWYgbGVuZ3RoKCRpdGVtKSA+IDEgYW5kICRyZWN1cnNpdmUge1xuICAgICAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgamVldC1yZXZlcnNlKCRpdGVtLCAkcmVjdXJzaXZlKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkaXRlbSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmVzdWx0O1xuICB9XG5cbiAgLy8gU2FzcyAzLjMrXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggY2VpbChsZW5ndGgoJGxpc3QpLzIpIHtcbiAgICAkdG1wOiBudGgoJGxpc3QsICRpKTtcbiAgICAkdG1wOiBpZihsZW5ndGgoJHRtcCkgPiAxIGFuZCAkcmVjdXJzaXZlLCByZXZlcnNlKCR0bXAsICRyZWN1cnNpdmUpLCAkdG1wKTtcblxuICAgICRsaXN0OiBzZXQtbnRoKCRsaXN0LCAkaSwgbnRoKCRsaXN0LCAtJGkpKTtcbiAgICAkbGlzdDogc2V0LW50aCgkbGlzdCwgLSRpLCAkdG1wKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxpc3Q7XG59XG5cbi8qKlxuICogR2V0IHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24gdG8gYSBnaXZlbiB2YWx1ZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSAkZGlyIC0gVGhlIGRpcmVjdGlvbiB5b3Ugd2FudCB0aGUgb3Bwb3NpdGUgb2YuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24gdG8gJGRpci5cbiAqIEB3YXJuIGlmIGFuIGluY29ycmVjdCBzdHJpbmcgaXMgcHJvdmlkZWQuXG4gKi9cbkBmdW5jdGlvbiBqZWV0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKSB7XG4gIEBpZiAkZGlyZWN0aW9uID09IFwibGVmdFwiIHtcbiAgICBAcmV0dXJuIHJpZ2h0O1xuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJyaWdodFwiIHtcbiAgICBAcmV0dXJuIGxlZnQ7XG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcInRvcFwiIHtcbiAgICBAcmV0dXJuIGJvdHRvbTtcbiAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwiYm90dG9tXCIge1xuICAgIEByZXR1cm4gdG9wO1xuICB9IEBlbHNlIGlmIGluZGV4KFwibHRyXCIgXCJMVFJcIiwgJGRpcmVjdGlvbikge1xuICAgIEByZXR1cm4gcnRsO1xuICB9IEBlbHNlIGlmIGluZGV4KFwicnRsXCIgXCJSVExcIiwgJGRpcmVjdGlvbikge1xuICAgIEByZXR1cm4gbHRyO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyRkaXJlY3Rpb259YCBpcyBub3QgYSBkaXJlY3Rpb247IHBsZWFzZSBtYWtlIHN1cmUgeW91ciBkaXJlY3Rpb24gaXMgYWxsIGxvd2VyY2FzZS5cIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCIvKipcbiAqIFN0eWxlIGFuIGVsZW1lbnQgYXMgYSBjb2x1bW4gd2l0aCBhIGd1dHRlci5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHJhdGlvcz0xXSAtIEEgd2lkdGggcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lciBhcyBhIGZyYWN0aW9uLlxuICogQHBhcmFtIHtudW1iZXJ9IFskb2Zmc2V0PTBdIC0gQSBvZmZzZXQgc3BlY2lmaWVkIGFzIGEgZnJhY3Rpb24gKHNlZSAkcmF0aW9zKS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJGN5Y2xlPTBdIC0gRWFzaWx5IGNyZWF0ZSBhbiBudGggY29sdW1uIGdyaWQgd2hlcmUgJGN5Y2xlIGVxdWFscyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMuXG4gKiBAcGFyYW0ge251bWJlcn0gWyR1bmN5Y2xlPTBdIC0gVW5kbyBhIHByZXZpb3VzIGN5Y2xlIHZhbHVlIHRvIGFsbG93IGZvciBhIG5ldyBvbmUuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRndXR0ZXI9JGplZXQtZ3V0dGVyXSAtIFNwZWNpZnkgdGhlIGd1dHRlciB3aWR0aCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGNvbnRhaW5lcnMgd2lkdGguXG4gKi9cbkBtaXhpbiBjb2x1bW4oJHJhdGlvczogMSwgJG9mZnNldDogMCwgJGN5Y2xlOiAwLCAkdW5jeWNsZTogMCwgJGd1dHRlcjogJGplZXQtZ3V0dGVyKSB7XG4gICRzaWRlOiBqZWV0LWdldC1sYXlvdXQtZGlyZWN0aW9uKCk7XG4gICRvcHBvc2l0ZS1zaWRlOiBqZWV0LW9wcG9zaXRlLWRpcmVjdGlvbigkc2lkZSk7XG4gICRjb2x1bW4td2lkdGhzOiBqZWV0LWdldC1jb2x1bW4oJHJhdGlvcywgJGd1dHRlcik7XG4gICRtYXJnaW4tbGFzdDogMDtcbiAgJG1hcmdpbi1sOiAkbWFyZ2luLWxhc3Q7XG4gICRtYXJnaW4tcjogbnRoKCRjb2x1bW4td2lkdGhzLCAyKTtcblxuICBAaWYgJG9mZnNldCAhPSAwIHtcbiAgICBAaWYgJG9mZnNldCA8IDAge1xuICAgICAgJG9mZnNldDogJG9mZnNldCAqIC0xO1xuICAgICAgJG9mZnNldDogbnRoKGplZXQtZ2V0LWNvbHVtbigkb2Zmc2V0LCBudGgoJGNvbHVtbi13aWR0aHMsIDIpKSwgMSk7XG4gICAgICAkbWFyZ2luLWxhc3Q6ICRvZmZzZXQgKyBudGgoJGNvbHVtbi13aWR0aHMsIDIpICogMjtcbiAgICAgICRtYXJnaW4tcjogJG1hcmdpbi1sYXN0O1xuICAgIH0gQGVsc2Uge1xuICAgICAgJG9mZnNldDogbnRoKGplZXQtZ2V0LWNvbHVtbigkb2Zmc2V0LCBudGgoJGNvbHVtbi13aWR0aHMsIDIpKSwgMSk7XG4gICAgICAkbWFyZ2luLWw6ICRvZmZzZXQgKyBudGgoJGNvbHVtbi13aWR0aHMsIDIpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGNmO1xuICBmbG9hdDogJHNpZGU7XG4gIGNsZWFyOiBub25lO1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICB3aWR0aDogbnRoKCRjb2x1bW4td2lkdGhzLCAxKSAqIDElO1xuICBtYXJnaW46IHtcbiAgICAjeyRzaWRlfTogJG1hcmdpbi1sICogMSU7XG4gICAgI3skb3Bwb3NpdGUtc2lkZX06ICRtYXJnaW4tciAqIDElO1xuICB9O1xuXG4gIEBpZiAkdW5jeWNsZSAhPSAwIHtcbiAgICAmOm50aC1jaGlsZCgjeyR1bmN5Y2xlfW4pIHtcbiAgICAgIG1hcmdpbi0je2plZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRzaWRlKX06ICRtYXJnaW4tciAqIDElO1xuICAgICAgZmxvYXQ6ICRzaWRlO1xuICAgIH1cbiAgICAmOm50aC1jaGlsZCgjeyR1bmN5Y2xlfW4gKyAxKSB7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG4gIH1cblxuICBAaWYgJGN5Y2xlICE9IDAge1xuICAgICY6bnRoLWNoaWxkKCN7JGN5Y2xlfW4pIHtcbiAgICAgIG1hcmdpbi0je2plZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRzaWRlKX06ICRtYXJnaW4tbGFzdCAqIDElO1xuICAgICAgZmxvYXQ6IGplZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRzaWRlKTtcbiAgICB9XG4gICAgJjpudGgtY2hpbGQoI3skY3ljbGV9biArIDEpIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi0je2plZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRzaWRlKX06ICRtYXJnaW4tbGFzdCAqIDElO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEFuIGFsaWFzIGZvciB0aGUgY29sdW1uIG1peGluLlxuICogQHBhcmFtIFskYXJncy4uLl0gLSBBbGwgYXJndW1lbnRzIGdldCBwYXNzZWQgdGhyb3VnaCB0byBjb2x1bW4oKS5cbiAqL1xuQG1peGluIGNvbCgkYXJncy4uLikge1xuICBAaW5jbHVkZSBjb2x1bW4oJGFyZ3MuLi4pO1xufVxuXG4vKipcbiAqIEdldCB0aGUgd2lkdGggb2YgYSBjb2x1bW4gYW5kIG5vdGhpbmcgZWxzZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHJhdGlvcz0xXSAtIEEgd2lkdGggcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lciBhcyBhIGZyYWN0aW9uLlxuICogQHBhcmFtIHtudW1iZXJ9IFskZ3V0dGVyPSRqZWV0LWd1dHRlcl0gLSBTcGVjaWZ5IHRoZSBndXR0ZXIgd2lkdGggYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBjb250YWluZXJzIHdpZHRoLlxuICovXG5AZnVuY3Rpb24gY29sdW1uLXdpZHRoKCRyYXRpb3M6IDEsICRndXR0ZXI6ICRqZWV0LWd1dHRlcikge1xuICBAcmV0dXJuIHVucXVvdGUobnRoKGplZXQtZ2V0LWNvbHVtbigkcmF0aW9zLCAkZ3V0dGVyKSwgMSkgKyAnJScpO1xufVxuXG4vKipcbiAqIEdldCB0aGUgZ3V0dGVyIHNpemUgb2YgYSBjb2x1bW4gYW5kIG5vdGhpbmcgZWxzZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbcmF0aW9zPTFdIC0gQSB3aWR0aCByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyIGFzIGEgZnJhY3Rpb24uXG4gKiBAcGFyYW0ge251bWJlcn0gW2d1dHRlcj1qZWV0Lmd1dHRlcl0gLSBTcGVjaWZ5IHRoZSBndXR0ZXIgd2lkdGggYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBjb250YWluZXJzIHdpZHRoLlxuICovXG5AZnVuY3Rpb24gY29sdW1uLWd1dHRlcigkcmF0aW9zOiAxLCAkZ3V0dGVyOiAkamVldC1ndXR0ZXIpIHtcbiAgQHJldHVybiB1bnF1b3RlKG50aChqZWV0LWdldC1jb2x1bW4oJHJhdGlvcywgJGd1dHRlciksIDIpICsgJyUnKTtcbn1cblxuLyoqXG4gKiBBbiBhbGlhcyBmb3IgdGhlIGNvbHVtbi13aWR0aCBmdW5jdGlvbi5cbiAqIEBwYXJhbSBbJGFyZ3MuLi5dIC0gQWxsIGFyZ3VtZW50cyBnZXQgcGFzc2VkIHRocm91Z2ggdG8gY29sdW1uKCkuXG4gKi9cbkBmdW5jdGlvbiBjdygkYXJncy4uLikge1xuICBAcmV0dXJuIGNvbHVtbi13aWR0aCgkYXJncy4uLik7XG59XG5cbi8qKlxuICogQW4gYWxpYXMgZm9yIHRoZSBjb2x1bW4tZ3V0dGVyIGZ1bmN0aW9uLlxuICogQHBhcmFtIFskYXJncy4uLl0gLSBBbGwgYXJndW1lbnRzIGdldCBwYXNzZWQgdGhyb3VnaCB0byBjb2x1bW4oKS5cbiAqL1xuQGZ1bmN0aW9uIGNnKCRhcmdzLi4uKSB7XG4gIEByZXR1cm4gY29sdW1uLWd1dHRlcigkYXJncy4uLik7XG59XG5cbi8qKlxuICogU3R5bGUgYW4gZWxlbWVudCBhcyBhIGNvbHVtbiB3aXRob3V0IGFueSBndXR0ZXJzIGZvciBhIHNlYW1sZXNzIHJvdy5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHJhdGlvcz0xXSAtIEEgd2lkdGggcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lciBhcyBhIGZyYWN0aW9uLlxuICogQHBhcmFtIHtudW1iZXJ9IFskb2Zmc2V0PTBdIC0gQSBvZmZzZXQgc3BlY2lmaWVkIGFzIGEgZnJhY3Rpb24gKHNlZSAkcmF0aW9zKS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbY3ljbGU9MF0gLSBFYXNpbHkgY3JlYXRlIGFuIG50aCBjb2x1bW4gZ3JpZCB3aGVyZSBjeWNsZSBlcXVhbHMgdGhlIG51bWJlciBvZiBjb2x1bW5zLlxuICogQHBhcmFtIHtudW1iZXJ9IFt1bmN5Y2xlPTBdIC0gVW5kbyBhIHByZXZpb3VzIGN5Y2xlIHZhbHVlIHRvIGFsbG93IGZvciBhIG5ldyBvbmUuXG4gKi9cbkBtaXhpbiBzcGFuKCRyYXRpbzogMSwgJG9mZnNldDogMCwgJGN5Y2xlOiAwLCAkdW5jeWNsZTogMCkge1xuICAkc2lkZTogamVldC1nZXQtbGF5b3V0LWRpcmVjdGlvbigpO1xuICAkb3Bwb3NpdGUtc2lkZTogamVldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJHNpZGUpO1xuICAkc3Bhbi13aWR0aDogamVldC1nZXQtc3BhbigkcmF0aW8pO1xuICAkbWFyZ2luLXI6IDA7XG4gICRtYXJnaW4tbDogJG1hcmdpbi1yO1xuICBAaWYgJG9mZnNldCAhPSAwIHtcbiAgICBAaWYgJG9mZnNldCA8IDAge1xuICAgICAgJG9mZnNldDogJG9mZnNldCAqIC0xO1xuICAgICAgJG1hcmdpbi1yOiBqZWV0LWdldC1zcGFuKCRvZmZzZXQpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJG1hcmdpbi1sOiBqZWV0LWdldC1zcGFuKCRvZmZzZXQpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGNmO1xuICBmbG9hdDogJHNpZGU7XG4gIGNsZWFyOiBub25lO1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICB3aWR0aDogJHNwYW4td2lkdGggKiAxJTtcbiAgbWFyZ2luOiB7XG4gICAgI3skc2lkZX06ICRtYXJnaW4tbCAqIDElO1xuICAgICN7JG9wcG9zaXRlLXNpZGV9OiAkbWFyZ2luLXIgKiAxJTtcbiAgfTtcblxuICBAaWYgJGN5Y2xlICE9IDAge1xuICAgICY6bnRoLWNoaWxkKCN7JGN5Y2xlfW4pIHtcbiAgICAgIGZsb2F0OiAkb3Bwb3NpdGUtc2lkZTtcbiAgICB9XG4gICAgJjpudGgtY2hpbGQoI3skY3ljbGV9biArIDEpIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdW5jeWNsZSAhPSAwIHtcbiAgICAmOm50aC1jaGlsZCgjeyR1bmN5Y2xlfW4pIHtcbiAgICAgIGZsb2F0OiAkc2lkZTtcbiAgICB9XG4gICAgJjpudGgtY2hpbGQoI3skdW5jeWNsZX1uICsgMSkge1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgfVxuICB9XG5cbn1cblxuLyoqXG4gKiBSZW9yZGVyIGNvbHVtbnMgd2l0aG91dCBhbHRlcmluZyB0aGUgSFRNTC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHJhdGlvcz0wXSAtIFNwZWNpZnkgaG93IGZhciBhbG9uZyB5b3Ugd2FudCB0aGUgZWxlbWVudCB0byBtb3ZlLlxuICogQHBhcmFtIHtzdHJpbmd9IFskY29sLW9yLXNwYW49Y29sdW1uXSAtIFNwZWNpZnkgd2hldGhlciB0aGUgZWxlbWVudCBoYXMgYSBndXR0ZXIgb3Igbm90LlxuICogQHBhcmFtIHtudW1iZXJ9IFskZ3V0dGVyPSRqZWV0LWd1dHRlcl0gLSBTcGVjaWZ5IHRoZSBndXR0ZXIgd2lkdGggYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBjb250YWluZXJzIHdpZHRoLlxuICovXG5AbWl4aW4gc2hpZnQoJHJhdGlvczogMCwgJGNvbC1vci1zcGFuOiBjb2x1bW4sICRndXR0ZXI6ICRqZWV0LWd1dHRlcikge1xuICAkdHJhbnNsYXRlOiAnJztcbiAgJHNpZGU6IGplZXQtZ2V0LWxheW91dC1kaXJlY3Rpb24oKTtcblxuICBAaWYgJHNpZGUgPT0gcmlnaHQge1xuICAgICRyYXRpb3M6IGplZXQtcmVwbGFjZS1udGgoJHJhdGlvcywgMCwgbnRoKCRyYXRpb3MsIDEpICogLTEpO1xuICB9XG5cbiAgQGlmIGluZGV4KFwiY29sdW1uXCIgXCJjb2xcIiBcImNcIiwgJGNvbC1vci1zcGFuKSB7XG4gICAgJGNvbHVtbi13aWR0aHM6IGplZXQtZ2V0LWNvbHVtbigkcmF0aW9zLCAkZ3V0dGVyKTtcbiAgICAkdHJhbnNsYXRlOiBudGgoJGNvbHVtbi13aWR0aHMsIDEpICsgbnRoKCRjb2x1bW4td2lkdGhzLCAyKTtcbiAgfSBAZWxzZSB7XG4gICAgJHRyYW5zbGF0ZTogamVldC1nZXQtc3BhbigkcmF0aW9zKTtcbiAgfVxuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogJHRyYW5zbGF0ZSAqIDElO1xufVxuXG4vKipcbiAqIFJlc2V0IGFuIGVsZW1lbnQgdGhhdCBoYXMgaGFkIHNoaWZ0KCkgYXBwbGllZCB0byBpdC5cbiAqL1xuQG1peGluIHVuc2hpZnQoKSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGxlZnQ6IDA7XG59XG5cbi8qKlxuICogVmlldyB0aGUgZ3JpZCBhbmQgaXRzIGxheWVycyBmb3IgZWFzeSBkZWJ1Z2dpbmcuXG4gKiBAcGFyYW0ge3N0cmluZ30gWyRjb2xvcj1ibGFja10gLSBUaGUgYmFja2dyb3VuZCB0aW50IGFwcGxpZWQuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFskaW1wb3J0YW50PWZhbHNlXSAtIFdoZXRoZXIgdG8gYXBwbHkgdGhlIHN0eWxlIGFzICFpbXBvcnRhbnQuXG4gKi9cbkBtaXhpbiBlZGl0KCRjb2xvcjogYmxhY2ssICRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gIEBpZiAkaW1wb3J0YW50IHtcbiAgICAqIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoJGNvbG9yLCAuMDUpICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAqIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoJGNvbG9yLCAuMDUpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqICBBbGlhcyBmb3IgZWRpdCgpLlxuICovXG5AbWl4aW4gZGVidWcoKSB7XG4gIEBpbmNsdWRlIGVkaXQ7XG59XG5cbi8qKlxuICogSG9yaXpvbnRhbGx5IGNlbnRlciBhbiBlbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXJ9IFskbWF4LXdpZHRoPTE0MTBweF0gLSBUaGUgbWF4IHdpZHRoIHRoZSBlbGVtZW50IGNhbiBiZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHBhZD0wXSAtIFNwZWNpZnkgdGhlIGVsZW1lbnQncyBsZWZ0IGFuZCByaWdodCBwYWRkaW5nLlxuICovXG5AbWl4aW4gY2VudGVyKCRtYXgtd2lkdGg6ICRqZWV0LW1heC13aWR0aCwgJHBhZDogMCkge1xuICBAaW5jbHVkZSBjZjtcbiAgd2lkdGg6IGF1dG87XG4gIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAgYXV0bztcbiAgfTtcbiAgcGFkZGluZzoge1xuICAgIGxlZnQ6ICAkcGFkO1xuICAgIHJpZ2h0OiAkcGFkO1xuICB9O1xufVxuXG4vKipcbiAqIFVuY2VudGVyIGFuIGVsZW1lbnQuXG4gKi9cbkBtaXhpbiB1bmNlbnRlcigpIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbi8qKlxuICogU3RhY2sgYW4gZWxlbWVudCBzbyB0aGF0IG5vdGhpbmcgaXMgZWl0aGVyIHNpZGUgb2YgaXQuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRwYWQ9MF0gLSBTcGVjaWZ5IHRoZSBlbGVtZW50J3MgbGVmdCBhbmQgcmlnaHQgcGFkZGluZy5cbiAqIEBwYXJhbSB7Ym9vbGVhbi9zdHJpbmd9IFskYWxpZ249ZmFsc2VdIC0gU3BlY2lmeSB0aGUgdGV4dCBhbGlnbiBmb3IgdGhlIGVsZW1lbnQuXG4gKi9cbkBtaXhpbiBzdGFjaygkcGFkOiAwLCAkYWxpZ246IGZhbHNlKSB7XG4gICRzaWRlOiBqZWV0LWdldC1sYXlvdXQtZGlyZWN0aW9uKCk7XG4gICRvcHBvc2l0ZS1zaWRlOiBqZWV0LW9wcG9zaXRlLWRpcmVjdGlvbigkc2lkZSk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGNsZWFyOiBib3RoO1xuICBmbG9hdDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjoge1xuICAgIGxlZnQ6ICBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9O1xuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi0jeyRzaWRlfTogYXV0bztcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLXNpZGV9OiBhdXRvO1xuICB9XG5cbiAgQGlmICRwYWQgIT0gMCB7XG4gICAgcGFkZGluZzoge1xuICAgICAgbGVmdDogICRwYWQ7XG4gICAgICByaWdodDogJHBhZDtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRhbGlnbiBpcyBub3QgZmFsc2UpIHtcbiAgICBAaWYgaW5kZXgoXCJjZW50ZXJcIiBcImNcIiwgJGFsaWduKSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfSBAZWxzZSBpZiBpbmRleChcImxlZnRcIiBcImxcIiwgJGFsaWduKSB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH0gQGVsc2UgaWYgaW5kZXgoXCJyaWdodFwiIFwiclwiLCAkYWxpZ24pIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFVuc3RhY2sgYW4gZWxlbWVudC5cbiAqL1xuQG1peGluIHVuc3RhY2soKSB7XG4gICRzaWRlOiBqZWV0LWdldC1sYXlvdXQtZGlyZWN0aW9uKCk7XG4gICRvcHBvc2l0ZS1zaWRlOiBqZWV0LW9wcG9zaXRlLWRpcmVjdGlvbigkc2lkZSk7XG5cbiAgdGV4dC1hbGlnbjogJHNpZGU7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgY2xlYXI6IG5vbmU7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IHtcbiAgICBsZWZ0OiAgMDtcbiAgICByaWdodDogMDtcbiAgfTtcblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tI3skc2lkZX06IDA7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi0je2plZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRzaWRlKX06IDA7XG4gIH1cbn1cblxuLyoqXG4gKiBDZW50ZXIgYW4gZWxlbWVudCBvbiBlaXRoZXIgb3IgYm90aCBheGVzLlxuICogQHJlcXVpcmVzIEEgcGFyZW50IGNvbnRhaW5lciB3aXRoIHJlbGF0aXZlIHBvc2l0aW9uaW5nLlxuICogQHBhcmFtIHtzdHJpbmd9IFskZGlyZWN0aW9uPWJvdGhdIC0gU3BlY2lmeSB3aGljaCBheGVzIHRvIGNlbnRlciB0aGUgZWxlbWVudCBvbi5cbiAqL1xuQG1peGluIGFsaWduKCRkaXJlY3Rpb246IGJvdGgpIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuXG4gIEBpZiBpbmRleChcImhvcml6b250YWxcIiBcImhcIiwgJGRpcmVjdGlvbikge1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH0gQGVsc2UgaWYgaW5kZXgoXCJ2ZXJ0aWNhbFwiIFwidlwiLCAkZGlyZWN0aW9uKSB7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB9IEBlbHNlIHtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIH1cbn1cblxuLyoqXG4gKiBBcHBseSBhIGNsZWFyZml4IHRvIGFuIGVsZW1lbnQuXG4gKi9cbkBtaXhpbiBjZigpIHtcbiAgKnpvb206IDE7XG5cbiAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG5cbiAgJjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cbiIsIkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0dyYXBoaWsgVGhpbiBXZWInIDtcbiAgc3JjOiB1cmwoJ2ZvbnRzL0dyYXBoaWstVGhpbi1XZWIuZW90Jyk7XG4gIHNyYzogdXJsKCdmb250cy9HcmFwaGlrLVRoaW4tV2ViLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgIHVybCgnZm9udHMvR3JhcGhpay1UaGluLVdlYi53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgIHVybCgnZm9udHMvR3JhcGhpay1UaGluLVdlYi50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgIHVybCgnZm9udHMvR3JhcGhpay1UaGluLVdlYi5zdmcjR3JhcGhpayBXZWInKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogIDEwMDtcbiAgZm9udC1zdHlsZTogICBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdHcmFwaGlrIFdlYic7XG4gIHNyYzogdXJsKCdmb250cy9HcmFwaGlrLVJlZ3VsYXItV2ViLmVvdCcpO1xuICBzcmM6IHVybCgnZm9udHMvR3JhcGhpay1SZWd1bGFyLVdlYi5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICB1cmwoJ2ZvbnRzL0dyYXBoaWstUmVndWxhci1XZWIud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgICB1cmwoJ2ZvbnRzL0dyYXBoaWstUmVndWxhci1XZWIudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICB1cmwoJ2ZvbnRzL0dyYXBoaWstUmVndWxhci1XZWIuc3ZnI0dyYXBoaWsgV2ViJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6ICA0MDA7XG4gIGZvbnQtc3R5bGU6ICAgbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnR3JhcGhpayBJdGFsaWMgV2ViJztcbiAgc3JjOiB1cmwoJ2ZvbnRzL0dyYXBoaWstUmVndWxhckl0YWxpYy1XZWIuZW90Jyk7XG4gIHNyYzogdXJsKCdmb250cy9HcmFwaGlrLVJlZ3VsYXJJdGFsaWMtV2ViLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgIHVybCgnZm9udHMvR3JhcGhpay1SZWd1bGFySXRhbGljLVdlYi53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgIHVybCgnZm9udHMvR3JhcGhpay1SZWd1bGFySXRhbGljLVdlYi50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgIHVybCgnZm9udHMvR3JhcGhpay1SZWd1bGFySXRhbGljLVdlYi5zdmcjR3JhcGhpayBXZWInKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogIDQwMDtcbiAgZm9udC1zdHlsZTogICBpdGFsaWM7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdHcmFwaGlrIE1lZGl1bSBXZWInO1xuICBzcmM6IHVybCgnZm9udHMvR3JhcGhpay1NZWRpdW0tV2ViLmVvdCcpO1xuICBzcmM6IHVybCgnZm9udHMvR3JhcGhpay1NZWRpdW0tV2ViLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgIHVybCgnZm9udHMvR3JhcGhpay1NZWRpdW0tV2ViLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgdXJsKCdmb250cy9HcmFwaGlrLU1lZGl1bS1XZWIudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICB1cmwoJ2ZvbnRzL0dyYXBoaWstTWVkaXVtLVdlYi5zdmcjR3JhcGhpayBXZWInKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogIDUwMDtcbiAgZm9udC1zdHlsZTogICBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xufVxuIiwiJGFuaW1hdGlvbi1lYXNpbmc6ICRlYXNlLW91dC1xdWFkO1xuXG5Aa2V5ZnJhbWVzIGJvdW5jZSB7XG4gIDAlLCAyMCUsIDUwJSwgODAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cblxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XG4gIH1cblxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XG4gIH1cbn1cblxuLmJvdW5jZSB7XG4gIGFuaW1hdGlvbjogYm91bmNlIDJzIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZS11cCB7XG4gIDAlLCAyMCUsIDUwJSwgODAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cblxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE1cHgpO1xuICB9XG59XG5cbi5ib3VuY2UtdXAge1xuICBhbmltYXRpb246IGJvdW5jZS11cCA1cyBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycyAhaW1wb3J0YW50O1xufVxuXG5Aa2V5ZnJhbWVzIHNlbWktb3Zlci1zY2FsZSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApIHNjYWxlWSgwKTtcbiAgfVxuXG4gIDcwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMS4xKSBzY2FsZVkoMS4xKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDAuMTU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuXG4uc2VtaS1vdmVyLXNjYWxlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNlbWktb3Zlci1zY2FsZTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDEwMCUgIWltcG9ydGFudDtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzICFpbXBvcnRhbnQ7XG59XG5cbkBrZXlmcmFtZXMgZmFkZS1vdXQtZG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxNSUsIDApO1xuICB9XG59XG5cbiVmYWRlLW91dC1kb3duIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGUtb3V0LWRvd247XG59XG5cbkBrZXlmcmFtZXMgZmFkZS1pbi1yaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTUlLCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlLWluLXJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGUtaW4tcmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgZmFkZS1pbi1sZWZ0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTUlLCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlLWluLWxlZnQge1xuICBhbmltYXRpb24tbmFtZTogZmFkZS1pbi1sZWZ0O1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbkRvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cblxuLmZhZGVJbkRvd24ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duO1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluRG93bjtcbn1cblxuLmV4cG9zdXJlLWluIHtcbiAgZmlsdGVyOmJyaWdodG5lc3MoLjgpIGNvbnRyYXN0KDEuNSkgaHVlLXJvdGF0ZSgtMzBkZWcpO1xuXG4gICYucmVzb2x2ZWQge1xuICAgIGZpbHRlcjpicmlnaHRuZXNzKDEpIGNvbnRyYXN0KDEpIGh1ZS1yb3RhdGUoMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuXG4vLyBob3RzcG90IGFuaW1hdGlvbnNcbkAtd2Via2l0LWtleWZyYW1lcyBwdWxzZSB7XG4gIDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwcHggcmdiYSgkY3lhbiwgLjUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoJGN5YW4sIC41KTtcbiAgfVxuICA4MCUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoJGN5YW4sIDApO1xuICB9XG4gIDEwMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDIwcHggcmdiYSgkY3lhbiwgMCk7XG4gIH1cbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHB1bHNlLW1lZCB7XG4gIDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwcHggcmdiYSgkY3lhbiwgLjUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoJGN5YW4sIC41KTtcbiAgfVxuICA4MCUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoJGN5YW4sIDApO1xuICB9XG4gIDEwMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDMwcHggcmdiYSgkY3lhbiwgMCk7XG4gIH1cbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHB1bHNlLWxhcmdlIHtcbiAgMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDBweCByZ2JhKCRjeWFuLCAuNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgkY3lhbiwgLjUpO1xuICB9XG4gIDgwJSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgkY3lhbiwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNDBweCByZ2JhKCRjeWFuLCAwKTtcbiAgfVxufVxuIiwiLnByb2R1Y3QtaGVybyxcbi5wcm9kdWN0LWluZm8sXG4ucHJvZHVjdC1mZWF0dXJlcyxcbi50ZWNoLXNwZWNzIHtcbiAgYmFja2dyb3VuZDogJG9mZi13aGl0ZTtcbn1cblxuLy8gSGVyb1xuc2VjdGlvbi5wcm9kdWN0LWhlcm8ge1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgY29sb3I6ICR3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIEBpbmNsdWRlIGZ1bGwtcGFnZSg5NXZoKTtcblxuICBmaWd1cmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTAwJTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgQGV4dGVuZCAuYW5pbWF0ZWQsIC5mYWRlLWluO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAwLjVzO1xuICAgIEBpbmNsdWRlIGZ1bGwtcGFnZSg5NXZoKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgYXV0bztcbiAgICAgIEBpbmNsdWRlIHJhdGlvLWJveCgxLjMvMSk7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgNTBweDtcbiAgICB9XG4gIH1cblxuICBhcnRpY2xlIHtcbiAgICBwYWRkaW5nOiAwIDEwJSAxNSU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgIEBpbmNsdWRlIGFic29sdXRlLWNlbnRlcigpO1xuICAgICAgdG9wOiA2MyU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogcmVtKDkwMHB4KTtcbiAgICB9XG4gIH1cblxuICBoMSxcbiAgaDQge1xuICAgIEBleHRlbmQgLmFuaW1hdGVkLCAuZmFkZS1pbi11cDtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuOHM7XG4gIH1cblxuICBoMSB7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBmb250LWZhbWlseTogJ0dyYXBoaWsgVGhpbiBXZWInOyAvLyBnbG9iYWxpemVcbiAgICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgQGluY2x1ZGUgZmx1aWQtdHlwZSgyNHB4LCA0OHB4LCAzMjBweCwgMTAyNHB4KTtcbiAgICBAaW5jbHVkZSBoZWF2eS1hbnRpYWxpYXMoKTtcbiAgICBhbmltYXRpb24tZGVsYXk6IDEuNXM7XG4gICAgbWFyZ2luLWJvdHRvbTogNSU7XG4gIH1cblxuICBoNCB7XG4gICAgQGluY2x1ZGUgZmx1aWQtdHlwZSgxNHB4LCAyMHB4LCA0MjBweCwgMTAyNHB4KTtcbiAgICBjb2xvcjogIzg4OTE5YztcbiAgICBtYXJnaW46IDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIGFuaW1hdGlvbi1kZWxheTogMS44cztcbiAgfVxuXG4gIGhncm91cCB7XG4gICAgJi5yZXNvbHZlZCB7XG4gICAgICBAZXh0ZW5kIC5hbmltYXRlZCwgJWZhZGUtb3V0LWRvd247XG4gICAgfVxuICB9XG59XG5cbi8vIEluZm8gKyBHYWxsZXJ5XG5zZWN0aW9uLnByb2R1Y3QtaW5mbyB7XG4gIGNvbG9yOiAkYmFzZS1ncmF5OyAvLyBieSB1c2VcbiAgQGluY2x1ZGUgY2YoKTtcbiAgcGFkZGluZzogNyUgNSUgNSU7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgIHBhZGRpbmctYm90dG9tOiAxJTtcbiAgfVxuXG4gIHAge1xuICAgIGNvbG9yOiAkYmFzZS1ncmF5OyAvLyBieSB1c2VcbiAgfVxuXG4gIC5jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTEwMHB4O1xuICB9XG5cbiAgZmlndXJlIHtcbiAgICBAaW5jbHVkZSBjb2woMi8zKTtcbiAgICBAaW5jbHVkZSBzaGlmdCgxLzMpO1xuICAgIEBpbmNsdWRlIGNmKCk7XG5cbiAgICAuaW1hZ2UtaG9sZGVyIHtcbiAgICAgIEBpbmNsdWRlIGNvbCg1LzYpO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNnMgJGVhc2Utb3V0LXF1YWQ7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTtcblxuICAgICAgaW1nIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzICRlYXNlLW91dC1xdWFkO1xuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYucmVzb2x2ZWQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmltYWdlLXRvZ2dsZSB7XG4gICAgICBtYXJnaW4tdG9wOiAxNCU7XG4gICAgICBAaW5jbHVkZSBjb2woMS82KTtcblxuICAgICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1JTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgJGVhc2Utb3V0LXF1YWQ7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxpLmFjdGl2ZSB7XG4gICAgICAgIGEge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDNweCAxMHB4IDVweCByZ2JhKCMwMDAsIC4wNSk7XG4gICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXJ0aWNsZSB7XG4gICAgQGluY2x1ZGUgY29sKDEvMyk7XG4gICAgQGluY2x1ZGUgc2hpZnQoLTIvMyk7XG4gICAgbWFyZ2luOiAyJSAwIDEwJTtcblxuICAgICYucmVzb2x2ZWQge1xuICAgICAgQGV4dGVuZCAuYW5pbWF0ZWQsICVmYWRlLW91dC1kb3duO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNGVtO1xuICAgICAgZm9udC1zaXplOiByZW0oMTVweCk7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgZm9udC1mYW1pbHk6ICdHcmFwaGlrIFRoaW4gV2ViJzsgLy8gZ2xvYmFsaXplXG4gICAgICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgICBAaW5jbHVkZSBoZWF2eS1hbnRpYWxpYXMoKTtcbiAgICAgIGNvbG9yOiAjNGQ1NjYwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDVweCk7XG4gICAgfVxuXG4gICAgaDUge1xuICAgICAgZm9udC1zaXplOiByZW0oMTZweCk7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgY29sb3I6ICRiYXNlLWdyYXk7IC8vIGJ5IHVzZVxuICAgIH1cblxuICAgIHVsIHtcbiAgICAgIEBpbmNsdWRlIHRleHQtbGlzdCgpO1xuICAgICAgbWFyZ2luLXRvcDogOCU7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTZweCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIlO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5hdiB7XG4gICAgICBtYXJnaW46IDEwJSAwO1xuICAgICAgY29sb3I6IHJnYmEoJGJhc2UtZ3JheSwgLjIpOyAvLyBieSB1c2VcblxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1saW5rO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXNpemU6IHJlbSgxNHB4KTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6ICRzbnVnLXNwYWNpbmc7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8vIG1ha2UgZmFuY3kgdW5kZXJsaW5lXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgIGZpZ3VyZSxcbiAgICBhcnRpY2xlIHtcbiAgICAgIEBpbmNsdWRlIHN0YWNrKCk7XG4gICAgICBAaW5jbHVkZSB1bnNoaWZ0KCk7XG4gICAgfVxuICB9XG59XG5cbnNlY3Rpb24ucHJvZHVjdC1mZWF0dXJlcyB7XG4gIC5jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGNmKCk7XG4gICAgbWF4LXdpZHRoOiAxMTAwcHg7XG4gICAgcGFkZGluZzogMCA1JTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRlbigkbGlnaHQtZ3JheSwgMTUlKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMztcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgdG9wOiA1NXB4O1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRlbigkbGlnaHQtZ3JheSwgMTUlKTtcbiAgICB9XG4gIH1cblxuICAuZmVhdHVyZSB7XG4gICAgei1pbmRleDogMztcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oNzBweCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMTVweDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1hcmdpbjogMCBhdXRvIDEwcHg7XG4gICAgfVxuXG4gICAgaDUge1xuICAgICAgZm9udC1mYW1pbHk6ICdHcmFwaGlrIFdlYic7IC8vIGdsb2JhbGl6ZVxuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuICAgICAgZm9udC1zaXplOiByZW0oMjBweCk7XG4gICAgICBjb2xvcjogIzI5NmFiNjsgLy8gdXBkYXRlIGJ5IHVzZVxuICAgICAgbGV0dGVyLXNwYWNpbmc6ICR0aWdodC1zcGFjaW5nO1xuICAgIH1cblxuICAgIGg1LFxuICAgIHAge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgY29sb3I6ICRiYXNlLWdyYXk7IC8vIGJ5IHVzZVxuICAgICAgbGluZS1oZWlnaHQ6IDEuNGVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgQGluY2x1ZGUgY29sKDEvMywgJGd1dHRlcjogNyk7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICB9XG59XG5cbnNlY3Rpb24udGVjaC1zcGVjcyB7XG4gIHBhZGRpbmc6IDUlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICBwYWRkaW5nOiA4JSAwO1xuICB9XG5cbiAgaDMge1xuICAgIGNvbG9yOiAjNGQ1NjYwO1xuICAgIGZvbnQtZmFtaWx5OiAnR3JhcGhpayBUaGluIFdlYic7IC8vIGdsb2JhbGl6ZVxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDtcbiAgICBAaW5jbHVkZSBmbHVpZC10eXBlKDI4cHgsIDQycHgsIDMyMHB4LCAxMDI0cHgpO1xuICAgIEBpbmNsdWRlIGhlYXZ5LWFudGlhbGlhcygpO1xuICAgIG1hcmdpbjogMiUgMCA2JTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICBwYWRkaW5nOiA4JSAwIDUlO1xuICAgIH1cbiAgfVxuXG4gIHRhYmxlIHtcbiAgICBAaW5jbHVkZSB0YWJsZSgkYm9yZGVyOmZhbHNlLCAkc3RyaXBlZDogZmFsc2UpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjBweCA1cHggcmdiYSgjMDAwLCAuMDUpO1xuXG4gICAgdGhlYWQgdHIge1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCA5MGRlZywgI2VlNDEyYSwgI2FlMzkzNywgIzc2M2U3NCwgIzJkNWVhNSwgIzAzOWJkNCApO1xuICAgICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcblxuICAgICAgdGgge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRkLFxuICAgIHRoIHtcbiAgICAgIGNvbG9yOiAkYmFzZS1ncmF5OyAvLyBieSB1c2VcbiAgICAgIHBhZGRpbmc6IDIuMyUgNCU7XG4gICAgICBAaW5jbHVkZSBmbHVpZC10eXBlKDEycHgsIDE2cHgsIDMyMHB4LCAxMDI0cHgpO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuM2VtO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvbG9ycyBieSBuYW1lXG4vL1xuLy8gTk9URTogIFBsZWFzZSBkbyBub3QgcmVmZXJlbmNlIHRoZXNlIGRpcmVjdGx5LlxuLy8gICAgICAgIEZvciBzZW1hbnRpYyBwdXJwb3NlcywgcGxlYXNlIHJlZmVyZW5jZVxuLy8gICAgICAgIGEgY29sb3IgYnkgaXRzIHVzZSBuYW1lIGJlbG93LlxuLy9cbi8vIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk1xuXG4vLyBicmFuZCBjb2xvcnNcbiRjeWFuOiAgICAgICAgICAgICAjMDBhNGRmO1xuJGRhcmstc2xhdGUtYmx1ZTogICMxQzMwNDU7XG4kbWlkbmlnaHQtYmx1ZTogICAgIzEwMTUyODtcbiRwdXJwbGU6ICAgICAgICAgICAjNzczMjcwO1xuJHN0aWxldHRvOiAgICAgICAgICNhODMyNDA7XG4kZGVuaW06ICAgICAgICAgICAgIzI0NjdiODtcbiR0b21hdG86ICAgICAgICAgICAjZjE0ZjNlO1xuXG5cbi8vIGdyYXlzY2FsZVxuJGJhc2UtZ3JheTogICAgICAgICM3MDdmOGM7XG5cbiR3aGl0ZTogICAgICAgICAgICAjRkZGO1xuJG9mZi13aGl0ZTogICAgICAgIGxpZ2h0ZW4oJGJhc2UtZ3JheSwgNDclKTtcbiRwYXBlcjogICAgICAgICAgICBsaWdodGVuKCRiYXNlLWdyYXksIDQ1JSk7XG4kbGlnaHQtZ3JheTogICAgICAgbGlnaHRlbigkYmFzZS1ncmF5LCAyNSUpO1xuJHN0ZWVsOiAgICAgICAgICAgIGRhcmtlbigkYmFzZS1ncmF5LCAxMCUpO1xuJGNvYWw6ICAgICAgICAgICAgIGRhcmtlbigkYmFzZS1ncmF5LCAyNSUpO1xuJGJsYWNrOiAgICAgICAgICAgICMwMDA7XG4kZ2FsbGVyeTogICAgICAgICAgI2VmZWZlZjtcblxuXG4vL1xuLy8gQ29sb3JzIGJ5IHVzZVxuLy8g4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTXG5cbi8vIEdlbmVyYWxcbiRjb2xvci1wcmltYXJ5OiAgICAgICAgJGN5YW47XG4kY29sb3Itc2Vjb25kYXJ5OiAgICAgICR0b21hdG87XG5cbi8vIEJhY2tncm91bmRzXG4kaGlnaGxpZ2h0LWJhY2tncm91bmQ6ICAgJHdoaXRlO1xuJG1haW4tYmFja2dyb3VuZDogICAgICAgICRvZmYtd2hpdGU7XG4kcmVjZXNzZWQtYmFja2dyb3VuZDogICAgJHBhcGVyO1xuJHJldmVyc2UtYmFja2dyb3VuZDogICAgICRibGFjaztcbiRkYXJrLXdhbGw6ICAgICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkbWlkbmlnaHQtYmx1ZSwgbGlnaHRlbigkbWlkbmlnaHQtYmx1ZSwgMTAlKSA0MCUsIGxpZ2h0ZW4oJG1pZG5pZ2h0LWJsdWUsIDEwJSksICRtaWRuaWdodC1ibHVlKTtcbiRjb2xvcmZ1bC1hY3Jvc3M6ICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTAwZGVnLCAjYTMzMDJmIDAlLCAjNmEyYTRiIDI1JSwgIzM1MzQ3NyA1MCUsICMxMjY2YWEgODUlLCAjMDI5Y2Q1IDEwMCUpO1xuJGNvbG9yZnVsLWRvd246ICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgyMGRlZywgI2EzMzAyZiAwJSwgIzZhMmE0YiAyNSUsICMzNTM0NzcgNTAlLCAjMTI2NmFhIDg1JSwgIzAyOWNkNSAxMDAlKTtcbi8vIEJ1dHRvbnNcbiRwcmltYXJ5LWJ1dHRvbjogICAgICAgICAkY29sb3ItcHJpbWFyeTtcblxuLy8gSWNvbnNcbiRxdWlldC1pY29uOiAgICAgICAgICAgICAkbGlnaHQtZ3JheTtcbiRxdWlldC1pY29uLWhvdmVyOiAgICAgICAkYmFzZS1ncmF5O1xuXG4vLyBUeXBlXG4kcHJpbWFyeS1oZWFkaW5nOiAgICAgICAgJGNvYWw7XG4kcmV2ZXJzZS1oZWFkaW5nOiAgICAgICAgJHdoaXRlO1xuJHByaW1hcnktdGV4dDogICAgICAgICAgICRzdGVlbDtcbiRzZWNvbmRhcnktdGV4dDogICAgICAgICAkYmFzZS1ncmF5O1xuJHJldmVyc2Utc2Vjb25kYXJ5LXRleHQ6IHJnYmEoJHdoaXRlLCAuNik7XG4kcXVpZXQtdGV4dDogICAgICAgICAgICAgJGxpZ2h0LWdyYXk7XG4kZGFyay10ZXh0OiAgICAgICAgICAgICAgJGRlbmltO1xuXG4vLyBJbnRlcmFjdGl2ZVxuJHByaW1hcnktbGluazogICAgICAgICAgICRjeWFuO1xuJHByaW1hcnktbGluay1ob3ZlcjogICAgIGxpZ2h0ZW4oJHByaW1hcnktbGluaywgMTUlKTtcblxuLy8gQm9yZGVyc1xuJHByaW1hcnktYm9yZGVyOiAgICAgICAgIHJnYmEoJGNvYWwsIC4xNSk7XG4kbGlnaHQtYm9yZGVyOiAgICAgICAgICAgcmdiYSgkY29hbCwgLjIpO1xuJHF1aWV0LWJvcmRlcjogICAgICAgICAgIHJnYmEoJGNvYWwsIC4xKTtcbiIsIi8vIGNoYW5nZSBwZXIgcHJvamVjdFxuJGJhc2UtZm9udDogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4uZGVmYXVsdC10eXBlIHtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQ7XG4gIGNvbG9yOiAkY29hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuJGZvbnQtbGlnaHQ6IDEwMDtcbiRmb250LXRoaW46IDIwMDtcbiRmb250LW5vcm1hbDogNDAwO1xuJGZvbnQtYm9sZDogNjAwO1xuXG5ib2R5LCBwLCBhLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LFxuc21hbGwsIGVtLCBzdHJvbmcsIGlucHV0LCBidXR0b24ge1xuICBAZXh0ZW5kIC5kZWZhdWx0LXR5cGU7XG59XG5cbi8vIEhlYWRlcnNcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gIGEgeyBjb2xvcjogaW5oZXJpdDsgIH1cbn1cblxuLy8gR2xvYmFsIHJlc3BvbnNpdmUgdHlwb2dyYXBoeSAtIGVkaXQgcGVyIHByb2plY3Rcbi8vIFR5cGUgd2lsbCBiZSBmbHVpZCBiZXR3ZWVuIG1pbiBhbmQgbWF4IHNpemVzXG4vLyBTZWUgbWl4aW4gZmx1aWQtdHlwZSgpIGluIEtuYXBzYWNrXG5oMSB7IEBpbmNsdWRlIGZsdWlkLXR5cGUoMzZweCwgNTZweCwgNDIwcHgsIDEwMjRweCk7IH1cbmgyIHsgQGluY2x1ZGUgZmx1aWQtdHlwZSgzNnB4LCA0OHB4LCA0MjBweCwgMTAyNHB4KTsgfVxuaDMgeyBAaW5jbHVkZSBmbHVpZC10eXBlKDMwcHgsIDM2cHgsIDQyMHB4LCAxMDI0cHgpOyB9XG5oNCB7IEBpbmNsdWRlIGZsdWlkLXR5cGUoMjRweCwgMzBweCwgNDIwcHgsIDEwMjRweCk7IH1cbmg1IHsgQGluY2x1ZGUgZmx1aWQtdHlwZSgyMHB4LCAyNHB4LCA0MjBweCwgMTAyNHB4KTsgfVxuaDYgeyBAaW5jbHVkZSBmbHVpZC10eXBlKDE4cHgsIDIwcHgsIDQyMHB4LCAxMDI0cHgpOyB9XG5wLCB1bCwgbGksIG9sIHsgQGluY2x1ZGUgZmx1aWQtdHlwZSgxNXB4LCAxOHB4KTt9XG5cbi8vIExldHRlcnNwYWNpbmdcbiR0aWdodC1zcGFjaW5nOiAtLjA0NWVtO1xuJHNudWctc3BhY2luZzogIC0uMDJlbTtcbiRtb3JlLXNwYWNpbmc6ICAuMWVtO1xuXG4vLyBXZWJraXQgYW50aWFsaWFzaW5nXG5AbWl4aW4gaGVhdnktYW50aWFsaWFzKCkge1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBzdWJwaXhlbC1hbnRpYWxpYXNlZDtcbn1cblxuLy8gR2VuZXJpYyBTdHlsZXNcbnAge1xuICBsaW5lLWhlaWdodDogMS41ZW07XG4gIG1hcmdpbjogMWVtIDA7XG59XG5cbmEgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiIsIi8vIC0tLS1cbi8vIFR5cG9ncmFwaHlcbi8vIC0tLS1cblxuLy8tIE1peGluOiBJbmxpbmUgTGlzdFxuLy8vXG4vLy8gRm9yIHdoZW4geW91IG5lZWQgeW91ciBsaXN0IHRvIGJlIGhvcml6b250YWwuXG4vLy9cbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkc3BhY2luZyBbMjBweF0gLSBBbW91bnQgb2Ygc3BhY2luZyBiZXR3ZWVuIGVsZW1lbnRzIC1cbi8vLyBjYW4gYmUgd2hhdGV2ZXIgdW5pdCB5b3UgbGlrZS5cbi8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5XG4vLy8gQGV4YW1wbGVcbi8vLyAgIHVsIHtcbi8vLyAgICAgQGluY2x1ZGUgaW5saW5lLWxpc3QoKTtcbi8vLyAgIH1cblxuQG1peGluIGlubGluZS1saXN0KCRzcGFjaW5nOiAyMHB4KSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4KCk7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcblxuICBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIG1hcmdpbi1yaWdodDogJHNwYWNpbmc7XG4gIH1cblxuICBsaTpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cblxuLy8tIE1peGluOiBJbmxpbmUgTGlzdFxuLy8vXG4vLy8gV2UgdGVuZCB0byBzcGVuZCBhIGdyZWF0IGRlYWwgb2YgdGltZSByZXNldHRpbmcgYWxsIG9mIHRoZSBwcm9wZXJ0aWVzIGZvclxuLy8vIGxpc3RzLiBUaGlzIHB1dHMgdGhlbSBiYWNrIHRvIHJvdWdobHkgdGhlIHNhbWUgc3RhdGUgYXMgYnJvd3NlciBkZWZhdWx0cy5cbi8vLyBZb3UgY2FuIHBhc3MgaXQgYW55IG9wdGlvbiB0aGF0IFtsaXN0LXN0eWxlLXR5cGVdXG4vLy8gKGh0dHA6Ly93d3cudzNzY2hvb2xzLmNvbS9jc3NyZWYvcHJfbGlzdC1zdHlsZS10eXBlLmFzcCkgd291bGQgbm9ybWFsbHlcbi8vLyB0YWtlLlxuLy8vXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJHN0eWxlIFtkaXNjXSAtIEFtb3VudCBvZiBzcGFjaW5nIGJldHdlZW4gZWxlbWVudHMuXG4vLy8gY2FuIGJlIHdoYXRldmVyIHVuaXQgeW91IGxpa2UuXG4vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeVxuLy8vIEBleGFtcGxlXG4vLy8gICB1bCB7XG4vLy8gICAgIEBpbmNsdWRlIHRleHQtbGlzdCgpO1xuLy8vICAgfVxuLy8vICAgdWwge1xuLy8vICAgICBAaW5jbHVkZSB0ZXh0LWxpc3QoJ2Rpc2MnKTtcbi8vLyAgIH1cblxuQG1peGluIHRleHQtbGlzdCgkc3R5bGU6ICdkaXNjJykge1xuICBtYXJnaW46IC4zMnJlbSAuOTRyZW07XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcblxuICBsaSB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiB1bnF1b3RlKCRzdHlsZSk7XG4gICAgcGFkZGluZzogLjEyNXJlbSAwO1xuICB9XG59XG5cbi8vLSBNaXhpbjogUmVzZXQgTGlzdFxuLy8vXG4vLy8gIFJlc2V0cyB0aGUgbWFyZ2lucyBwYWRkaW5nLCBhbmQgc3R5bGVzIHRvIGxpc3QuXG4vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeVxuLy8vIEBleGFtcGxlXG4vLy8gICB1bCB7XG4vLy8gICAgIEBpbmNsdWRlIHJlc2V0LWxpc3QoKTtcbi8vLyAgIH1cblxuQG1peGluIHJlc2V0LWxpc3QoKSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcblxuICBsaSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cblxuLy8tIE1peGluOiBFbGxpcHNpc1xuLy8vXG4vLy8gVHJ1bmNhdGUgdGV4dCB0byB0aGUgd2lkdGggb2YgaXRzIGNvbnRhaW5lci4uLlxuLy8vXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJHdpZHRoIFsxMDAlXSAtIFdpZHRoIG9mIHRoZSBjb250YWluZXJcbi8vLyBjYW4gYmUgd2hhdGV2ZXIgdW5pdCB5b3UgbGlrZS5cbi8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5XG4vLy8gQGV4YW1wbGVcbi8vLyAgIGgzIHtcbi8vLyAgICAgQGluY2x1ZGUgZWxsaXBzaXMoKTtcbi8vLyAgIH1cblxuQG1peGluIGVsbGlwc2lzKCR3aWR0aDogMTAwJSkge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd29yZC13cmFwOiBub3JtYWw7XG59XG5cblxuLy8tIE1peGluOiBGbHVpZCBUeXBlXG4vLy9cbi8vLyBNYWdpYyBjYWxjICsgdmggY29tYm8gdG8gYWxsb3cgdGV4dCB0byBiZSBmbHVpZCBiZXR3ZWVuIG1pbmltdW1cbi8vLyBhbmQgbWF4aW11bSBicmVha3BvaW50cy5cbi8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5XG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJG1pbi1mb250LXNpemUgWzEycHhdIC0gTWluaW11bSBmb250IHNpemVcbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkbWF4LWZvbnQtc2l6ZSBbMjRweF0gLSBNYXhpbXVtIGZvbnQgc2l6ZVxuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRsb3dlci1yYW5nZSBbNDIwcHhdIC0gU3RvcCBzY2FsaW5nIGZvbnQgc21hbGxlciBhdCB0aGlzIHNjcmVlbiByZXNvbHV0aW9uXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJHVwcGVyLXJhbmdlIFs5MDBweF0gLSBTdG9wIHNjYWxpbmcgZm9udCBsYXJnZXIgYXQgdGhpcyBzY3JlZW4gcmVzb2x1dGlvblxuLy8vIEBleGFtcGxlXG4vLy8gICBoMSB7XG4vLy8gICAgIEBpbmNsdWRlIGZsdWlkLXR5cGUoMjBweCwgNDhweCk7XG4vLy8gICB9XG4vLy8gQGxpbmsgaHR0cDovL2NvZGVwZW4uaW8vZGJveC9wZW4vbWVhTWJhXG5cbkBtaXhpbiBmbHVpZC10eXBlKCRtaW4tZm9udC1zaXplOiAxMnB4LCAkbWF4LWZvbnQtc2l6ZTogMjFweCwgJGxvd2VyLXJhbmdlOiA0MjBweCwgJHVwcGVyLXJhbmdlOiA5MDBweCkge1xuICBmb250LXNpemU6IGNhbGMoI3skbWluLWZvbnQtc2l6ZX0gKyAjeygoJG1heC1mb250LXNpemUgLyAoJG1heC1mb250LXNpemUgKiAwICsgMSkpIC0gKCRtaW4tZm9udC1zaXplIC8gKCRtaW4tZm9udC1zaXplICogMCArIDEpKSl9ICogKCgxMDB2dyAtICN7JGxvd2VyLXJhbmdlfSkgLyAjeygoJHVwcGVyLXJhbmdlIC8gKCR1cHBlci1yYW5nZSAqIDAgKyAxKSkgLSAoJGxvd2VyLXJhbmdlIC8gKCRsb3dlci1yYW5nZSAqIDAgKyAxKSkpfSkpO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1yYW5nZSkge1xuICAgIGZvbnQtc2l6ZTogJG1pbi1mb250LXNpemU7XG4gIH1cblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdXBwZXItcmFuZ2Upe1xuICAgIGZvbnQtc2l6ZTogJG1heC1mb250LXNpemU7XG4gIH1cbn1cbiIsImh0bWwge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kOiAjZGRkO1xuXG4gICYuaXMtc3RvcHBlZCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuXG4ubWF4LWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgLy8gYmFja2dyb3VuZDogJG9mZi13aGl0ZTtcbiAgQGluY2x1ZGUgY2VudGVyKCRtYXgtd2lkdGgsIDApO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bWF4LXdpZHRoJykge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxufVxuXG4vLyBSZXNwb25zaXZlIGNvbnRhaW5lclxuLmNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGNlbnRlcigkZGVza3RvcCwgNCUpO1xuXG4gIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgcGFkZGluZzogMCA0JTtcbiAgfVxufVxuXG4vLyBVdGlsaXR5IGNsYXNzZXNcbi5jZiB7XG4gIEBpbmNsdWRlIGNmKCk7XG59XG5cbi8vIEFkZGl0aW9uYWwgcmVzZXRzIC8gYmFzZSBzdHlsaW5nIC0gc2VlIGtuYXBzYWNrOlxuQGluY2x1ZGUgcmVzZXQtZWxlbWVudHMoKTtcbkBpbmNsdWRlIGluaXRpYWxpemUtYW5pbWF0aW9uKCk7XG5cbmlucHV0IHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuY29kZSB7XG4gIEBpbmNsdWRlIGNvZGUoKTtcbn1cblxucHJlIHtcbiAgQGluY2x1ZGUgcHJlKClcbn1cblxuaHIge1xuICBAaW5jbHVkZSBydWxlKCk7XG59XG5cbm5hdiB1bCB7XG4gIEBpbmNsdWRlIHJlc2V0LWxpc3QoKTtcbn1cblxudWwudGV4dCB7XG4gIEBpbmNsdWRlIHRleHQtbGlzdCgpO1xufVxuXG5vbC50ZXh0IHtcbiAgQGluY2x1ZGUgdGV4dC1saXN0KCdkZWNpbWFsJyk7XG59XG5cbnVsLnRleHQgdWwsXG51bC50ZXh0IG9sLFxub2wudGV4dCBvbCxcbm9sLnRleHQgdWwge1xuICBtYXJnaW46IDAuM3JlbSAxcmVtIDA7XG59XG5cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG4jd3BhZG1pbmJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvLyBHZW5lcmFsIFNldHRpbmdzXG4kYmFzZS1mb250LXNpemU6IDE2cHg7XG4kZ2xvYmFsLWJvcmRlci1yYWRpdXM6IDNweDtcbiRuYXYtaGVpZ2h0OiByZW0oMTU1cHgpO1xuJGRldi1uYXYtd2lkdGg6IHJlbSgzMjVweCk7XG4kbW9iaWxlLWd1dHRlcjogNSU7XG5cbi8vIEJyZWFrcG9pbnRzIHRvIGJlIHVzZWQgd2l0aCBpbmNsdWRlLW1lZGlhXG4vLyBFeGFtcGxlIENzczogaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tLyNmZWF0dXJlc1xuJG1vYmlsZTogMzIwcHg7XG4kbW9iaWxlLWw6IDY0MHB4O1xuJHRhYmxldDogNzY4cHg7XG4kdGFibGV0LWw6IDEwMjRweDtcbiRkZXNrdG9wOiAxMjgwcHg7XG4kbWF4LXdpZHRoOiAxNjAwcHg7XG4kYnJlYWtwb2ludHM6KFxuICAnbW9iaWxlJzogJG1vYmlsZSxcbiAgJ21vYmlsZS1sJzogJG1vYmlsZS1sLFxuICAndGFibGV0JzogJHRhYmxldCxcbiAgJ3RhYmxldC1sJzogJHRhYmxldC1sLFxuICAnZGVza3RvcCc6ICRkZXNrdG9wLFxuICAnbWF4LXdpZHRoJzogJG1heC13aWR0aFxuKTtcblxuXG4vLyBEcm9wIHNoYWRvd3NcbiRzb2Z0LXNoYWRvdzogMCA0cHggMTBweCA1cHggcmdiYShibGFjaywgLjEpO1xuIiwiLy8gLS0tLVxuLy8gTGF5b3V0XG4vLyAtLS0tXG5cbi8vLSBNaXhpbjogQ2xlYXJmaXhcbi8vL1xuLy8vIEp1c3QgeW91ciBzdGFuZGFyZCBjbGVhcmZpeC5cbi8vL1xuLy8vIEBncm91cCBsYXlvdXRcbi8vLyBAZXhhbXBsZVxuLy8vICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcblxuQG1peGluIGNsZWFyZml4KCkge1xuICAmOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxufVxuXG4vLy0gQWxpYXM6IGNmXG4vLy9cbi8vLyBAZ3JvdXAgbGF5b3V0XG4vLy8gQGV4YW1wbGVcbi8vLyAgIEBpbmNsdWRlIGNmKCk7XG4vLy8gQGFsaWFzIGNsZWFyZml4XG5cbkBtaXhpbiBjZigpIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbn1cblxuLy8tIE1peGluOiBSYXRpbyBCb3hcbi8vL1xuLy8vIFRoaXMgc2V0cyBhIHNwZWNpZmljIHdpZHRoL2hlaWdodCByYXRpby4gVXNlZnVsIG9uIGJhY2tncm91bmQgaW1hZ2VzLFxuLy8vIGlmcmFtZXMgYW5kIFlvdXR1YmUgZW1iZWRzLlxuLy8vXG4vLy8gKipub3RlKio6IEFueSBjb250ZW50IGluc2lkZSBgcmF0aW8tYm94YCB3aWxsIG5lZWQgdG8gYmUgcG9zaXRpb25lZFxuLy8vIGFic29sdXRlbHkgYXMgbm90IHRvIGNoYW5nZSB0aGUgYXNwZWN0LXJhdGlvLlxuLy8vXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJHJhdGlvIFsxIC8gMV0gLSBBc3BlY3QgcmF0aW86IGhlaWdodCAvIHdpZHRoXG4vLy8gQGdyb3VwIGxheW91dFxuLy8vIEBleGFtcGxlXG4vLy8gICBmaWd1cmUge1xuLy8vICAgICBAaW5jbHVkZSByYXRpbygxNiAvIDkpO1xuLy8vICAgfVxuLy8vIEBsaW5rIGh0dHA6Ly93d3cubWFkZW15ZGF5LmRlL2Nzcy1oZWlnaHQtZXF1YWxzLXdpZHRoLXdpdGgtcHVyZS1jc3MuaHRtbFxuXG5AbWl4aW4gcmF0aW8tYm94KCRyYXRpbzogMSAvIDEpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDA7XG4gICAgcGFkZGluZy10b3A6ICgxIC8gJHJhdGlvKSAqIDEwMCU7XG4gIH1cbn1cblxuLy8tIE1peGluOiBGdWxsIFBhZ2Vcbi8vL1xuLy8vIENyZWF0ZSBhIHJlc3BvbnNpdmUgZnVsbCBwYWdlIHNlY3Rpb24gd2l0aCBpbnRlbGxpZ2VudCBkZWZhdWx0cy5cbi8vLyBSZXNldHMgb24gbW9iaWxlLlxuLy8vXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJGhlaWdodCBbMTAwdmhdIC0gUGFnZSBoZWlnaHRcbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkbWF4LWhlaWdodCBbODUwcHhdIC0gTWF4IHBhZ2UgaGVpZ2h0XG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJG1pbi1oZWlnaHQgWzYwMHB4XSAtIE1pbiBwYWdlIGhlaWdodFxuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRicmVha3BvaW50IFs3NjhweF0gLSBEaXNhYmxlIGJlbG93IHRoaXMgc2l6ZSBvciBwYXNzXG4vLy8gJ251bGwnIHRvIG5vdCB1c2UgYSBicmVha3BvaW50LlxuLy8vIEBncm91cCBsYXlvdXRcbi8vLyBAZXhhbXBsZVxuLy8vICAgc2VjdGlvbiB7XG4vLy8gICAgIEBpbmNsdWRlIGZ1bGwtcGFnZSgpO1xuLy8vICAgfVxuLy8vXG4vLy8gICBzZWN0aW9uIHtcbi8vLyAgICAgQGluY2x1ZGUgZnVsbC1wYWdlKGNhbGMoMTAwdmggLSA5MHB4KSwgODAwcHgsIDUwMHB4KTtcbi8vLyAgIH1cbi8vLyBAbGluayBodHRwOi8vY29kZXBlbi5pby9kYm94L3Blbi9PeXpyclZcblxuXG5AbWl4aW4gZnVsbC1wYWdlKCRoZWlnaHQ6IDEwMHZoLCAkbWF4LWhlaWdodDogODUwcHgsICRtaW4taGVpZ2h0OiA2MDBweCwgJGJyZWFrcG9pbnQ6IDc2OHB4KSB7XG4gIC8vIERpc2FibGUgYmVsb3cgc2V0IGJyZWFrcG9pbnRcbiAgQGlmICgkYnJlYWtwb2ludCkge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVha3BvaW50KSB7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICBtYXgtaGVpZ2h0OiAkbWF4LWhlaWdodDtcbiAgICAgIG1pbi1oZWlnaHQ6ICRtaW4taGVpZ2h0O1xuICAgIH1cbiAgLy8gU2hvdyBmb3IgYWxsIHNpemVzXG4gIH0gQGVsc2Uge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgICBtYXgtaGVpZ2h0OiAkbWF4LWhlaWdodDtcbiAgICBtaW4taGVpZ2h0OiAkbWluLWhlaWdodDtcbiAgfVxufVxuXG4vLyBNaXhpbjogVmVydGljYWxseSBBbGlnblxuLy8gQ3Jvc3MgYnJvd3NlciB2ZXJ0aWNhbCBhbGlnbi4gV29ya3MgZG93biB0byBJRTkuXG4vL1xuLy8gZXguIEBpbmNsdWRlIHZlcnRpY2FsbHktYWxpZ24oKTtcblxuLy8tIE1peGluOiBWZXJ0aWNhbGx5IEFsaWduXG4vLy9cbi8vLyBDcm9zcyBicm93c2VyIHZlcnRpY2FsIGFsaWduLiBXb3JrcyBkb3duIHRvIElFOS5cbi8vL1xuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRyZXNldCBbTnVsbF0gLSBQYXNzIGBmYWxzZWAgdG8gcmVzZXQgb3ZlcnJpZGUgdG8gb3JpZ2luYWxcbi8vLyB2YWx1ZXNcbi8vLyBAZ3JvdXAgbGF5b3V0XG4vLy8gQGV4YW1wbGVcbi8vLyAgIGFydGljbGUge1xuLy8vICAgICBAaW5jbHVkZSB2ZXJ0aWNhbGx5LWFsaWduKCk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGg0IHtcbi8vLyAgICAgQGluY2x1ZGUgdmVydGljYWxseS1hbGlnbihmYWxzZSk7XG4vLy8gICB9XG4vLy8gQGxpbmsgaHR0cDovL3plcm9zaXh0aHJlZS5zZS92ZXJ0aWNhbC1hbGlnbi1hbnl0aGluZy13aXRoLWp1c3QtMy1saW5lcy1vZi1jc3MvXG5cbkBtaXhpbiB2ZXJ0aWNhbGx5LWFsaWduKCRyZXNldCA6IG51bGwpIHtcbiAgQGlmICgkcmVzZXQgIT0gZmFsc2UpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB9IEBlbHNlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuXG4vLy0gTWl4aW46IEhvcml6b250YWwgUnVsZVxuLy8vXG4vLy8gQ2xlYW4gcmVzZXQgZm9yIGRpdmlkZXIgbGluZXMuXG4vLy9cbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkY29sb3IgW3JnYmEoIzAwMCwgLjE1KV0gLSBMaW5lIGNvbG9yXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJHNwYWNpbmcgWzEuNWVtXSAtIE1hcmdpbiBhYm92ZSBhbmQgYmVsb3cgdGhlIGxpbmVcbi8vL1xuLy8vIEBncm91cCBsYXlvdXRcbi8vLyBAZXhhbXBsZVxuLy8vICAgaHIge1xuLy8vICAgICBAaW5jbHVkZSBydWxlKCk7XG4vLy8gICB9XG4vLy8gICBoci5ibHVlIHtcbi8vLyAgICAgQGluY2x1ZGUgcnVsZShibHVlKTtcbi8vLyAgIH1cbi8vLyBAdG9kbyAtICRib3JkZXItd2lkdGggcGFyYW1cblxuQG1peGluIHJ1bGUoJGNvbG9yOiByZ2JhKCMwMDAsIC4xNSksICRzcGFjaW5nOiAxLjVlbSkge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3I7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAkc3BhY2luZyAwO1xufVxuXG5cbi8vLSBNaXhpbjogVGFibGUgTGF5b3V0XG4vLy9cbi8vLyBTZXRzIGVsZW1lbnQgYW5kIGl0cyBjaGlsZHJlbiB0byB1c2UgdGFibGUgbGF5b3V0LiBBbiBvbGQgYnV0IHZlcnkgcG93ZXJmdWxcbi8vLyBjc3MgcHJvcGVydHkgZm9yIGZsZXhpYmxlIGxheW91dCBjaGFsbGVuZ2VzLlxuLy8vXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJGxheW91dC10eXBlIFtmaXhlZF0gLSBgZml4ZWRgIG9yIGBhdXRvYFxuLy8vXG4vLy8gQGdyb3VwIGxheW91dFxuLy8vIEBleGFtcGxlXG4vLy8gICB1bCB7XG4vLy8gICAgIEBpbmNsdWRlIHRhYmxlLWxheW91dCgpO1xuLy8vICAgfVxuLy8vIEBsaW5rIGh0dHA6Ly9jb2RlcGVuLmlvL2Rib3gvcGVuL3B2clpaVlxuLy8vIEBsaW5rIGh0dHA6Ly9jb2xpbnRvaC5jb20vYmxvZy9kaXNwbGF5LXRhYmxlLWFudGktaGVyb1xuXG5AbWl4aW4gdGFibGUtbGF5b3V0KCRsYXlvdXQtdHlwZTogJ2ZpeGVkJykge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgdGFibGUtbGF5b3V0OiAkbGF5b3V0LXR5cGU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgPiAqIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB9XG59XG4iLCJAY2hhcnNldCAnVVRGLTgnO1xuXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC4yXG4vL1xuLy8gICAgICAgICAgICAgICAgaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEh1Z28gR2lyYXVkZWwgKEBodWdvZ2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuXG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XG4vLy9cbiRicmVha3BvaW50czogKFxuICAncGhvbmUnOiAzMjBweCxcbiAgJ3RhYmxldCc6IDc2OHB4LFxuICAnZGVza3RvcCc6IDEwMjRweFxuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXG4vLy8gICk7XG4vLy9cbiRtZWRpYS1leHByZXNzaW9uczogKFxuICAnc2NyZWVuJzogJ3NjcmVlbicsXG4gICdwcmludCc6ICdwcmludCcsXG4gICdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXG4gICdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcbiAgJ3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcbiAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknLFxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSdcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2Bcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cbi8vL1xuJHVuaXQtaW50ZXJ2YWxzOiAoXG4gICdweCc6IDEsXG4gICdlbSc6IDAuMDEsXG4gICdyZW0nOiAwLjFcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICRtZXNzYWdlO1xuICAgICRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGxvZygnLi4nKSB7fWAgb3IgYCRfOiBsb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG4gICAgQGlmIGxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAgICAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG4gICAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBTcGFjZUFyb3VuZE9wZXJhdG9yXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcbiAgICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG4gICAgQGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICAgICBAcmV0dXJuICRvcGVyYXRvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gIC8vIHJlbHkgb24gdGhlIGBsb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGxvZyguLikge31gIGluc3RlYWQuXG4gICRfOiBsb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcblxuICBAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcbiAgfVxuXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgQHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgfSBAZWxzZSB7XG4gICAgJHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcbiAgfVxuXG4gICRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XG5cbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgICAvLyByZWx5IG9uIHRoZSBgbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBsb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICRfOiBsb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcbiAgfVxuXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gIH1cblxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcbiAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XG4gIEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcbiAgICBAcmV0dXJuICgpO1xuICB9XG5cbiAgJHJlc3VsdDogKCk7XG5cbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcbiAgICAkXzogbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuICB9XG5cbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKSA9PSAnLSc7XG4gICRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcblxuICBAZm9yICRpIGZyb20gaWYoJG1pbnVzLCAyLCAxKSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuICAgIEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcbiAgICAgIEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXG4gICAgfVxuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcbiAgICAgICRkaWdpdHM6IDE7XG4gICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7O1xufVxuXG5cbi8vL1xuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxuLy8vXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcbiAgJHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcblxuICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XG4gICAgJF86IGxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XG59XG5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcbi8vLyBmb3IgaW5zdGFuY2UuXG4vLy9cbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xuICAvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcbiAgJGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xuXG4gIC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgLy8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XG59XG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxuLy8vXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgU3BhY2VBcm91bmRPcGVyYXRvclxuICBAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXG4gICAgICAobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSkge1xuICAgIEBjb250ZW50O1xuICB9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcbiAgICBAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XG4gICAgICAvLyBSZWN1cnNpdmUgY2FsbFxuICAgICAgQGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gLS0tLVxuLy8gUmVzZXRcbi8vIC0tLS1cblxuXG4vLyBSZXNldHMgdmlhIHNjdXQ6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vZGF2aWR0aGVjbGFyay9zY3V0L1xuXG4vLyBDbGlja2FibGUgZm9ybSBlbGVtZW50cyBzaG91bGQgaGF2ZSBhIHBvaW50ZXIuXG5AbWl4aW4gcmVzZXQtcG9pbnRlciB7XG4gIGEsXG4gIGxhYmVsLFxuICBzZWxlY3QsXG4gIG9wdGlvbixcbiAgYnV0dG9uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLy8gQm9yZGVyIGJveCBpcyBqdXN0IGJldHRlci5cbkBtaXhpbiByZXNldC1ib3JkZXItYm94IHtcbiAgaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICosXG4gICo6YmVmb3JlLFxuICAqOmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG59XG5cbi8vIFJlc2V0IHRoZSBmb3Jtc1xuQG1peGluIHJlc2V0LWZvcm0ge1xuICBmaWVsZHNldCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgdGV4dGFyZWEge1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG4gIH1cbn1cblxuLy8gUmVzZXQgZGVmYXVsdCBidXR0b24gc3R5bGVzLCB3aGljaCBhcmUgbmV2ZXIgdXNlZC5cbkBtaXhpbiByZXNldC1idXR0b24ge1xuICBidXR0b24sXG4gIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG4gIGlucHV0W3R5cGU9XCJyZXNldFwiXSB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDA7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcblxuICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cbn1cblxuLy8gU29tZSBwYXJhZ3JhcGggbWFyZ2lucyBqdXN0IGdldCBpbiB0aGUgd2F5LlxuQG1peGluIHJlc2V0LXBhcmFncmFwaCB7XG4gIHA6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gIHA6bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vIFlvdSB3YW50IHRoZXNlIGVsZW1lbnRzIGZsdWlkLCBwcm9iYWJseS5cbkBtaXhpbiByZXNldC1tZWRpYSB7XG4gIGltZyxcbiAgdmlkZW8ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLy8gUmVtb3ZlIGRlZmF1bHQgbWFyZ2lucy5cbkBtaXhpbiByZXNldC1maWd1cmUge1xuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4vLyBDYWxsIHRoZW0gYWxsXG5AbWl4aW4gcmVzZXQtZWxlbWVudHMoKSB7XG4gIEBpbmNsdWRlIHJlc2V0LWJvcmRlci1ib3g7XG4gIEBpbmNsdWRlIHJlc2V0LWJ1dHRvbjtcbiAgQGluY2x1ZGUgcmVzZXQtZmlndXJlO1xuICBAaW5jbHVkZSByZXNldC1mb3JtO1xuICBAaW5jbHVkZSByZXNldC1tZWRpYTtcbiAgQGluY2x1ZGUgcmVzZXQtcGFyYWdyYXBoO1xuICBAaW5jbHVkZSByZXNldC1wb2ludGVyO1xufVxuIiwiLy8gLS0tLS0tXG4vLyBBbmltYXRpb25zXG4vLyAtLS0tLS1cblxuLy8vIENTUyBjdWJpYy1iZXppZXIgdGltaW5nIGZ1bmN0aW9ucyBwb3J0ZWQgZnJvbSBCb3VyYm9uIHZpYSBqcXVlcnkuZWFzaWUgKGdpdGh1Yi5jb20vamF1a2lhL2Vhc2llKVxuLy8vXG4vLy8gQGdyb3VwIGFuaW1hdGlvblxuLy8vIEB0eXBlIGN1YmljLWJlemllclxuLy8vIEBsaW5rIGh0dHA6Ly9qcXVlcnl1aS5jb20vcmVzb3VyY2VzL2RlbW9zL2VmZmVjdC9lYXNpbmcuaHRtbFxuXG4kZWFzZS1pbi1xdWFkOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDg1LCAwLjY4MCwgMC41MzApO1xuJGVhc2UtaW4tY3ViaWM6IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4kZWFzZS1pbi1xdWFydDogY3ViaWMtYmV6aWVyKDAuODk1LCAwLjAzMCwgMC42ODUsIDAuMjIwKTtcbiRlYXNlLWluLXF1aW50OiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuJGVhc2UtaW4tc2luZTogY3ViaWMtYmV6aWVyKDAuNDcwLCAwLCAwLjc0NSwgMC43MTUpO1xuJGVhc2UtaW4tZXhwbzogY3ViaWMtYmV6aWVyKDAuOTUwLCAwLjA1MCwgMC43OTUsIDAuMDM1KTtcbiRlYXNlLWluLWNpcmM6IGN1YmljLWJlemllcigwLjYwMCwgMC4wNDAsIDAuOTgwLCAwLjMzNSk7XG4kZWFzZS1pbi1iYWNrOiBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KTtcbiRlYXNlLWluLXN3aWZ0OiBjdWJpYy1iZXppZXIoMC45MDAsIDAsIDAuNDUwLCAxKTtcblxuJGVhc2Utb3V0LXF1YWQ6IGN1YmljLWJlemllcigwLjI1MCwgMC40NjAsIDAuNDUwLCAwLjk0MCk7XG4kZWFzZS1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxKTtcbiRlYXNlLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0MCwgMC40NDAsIDEpO1xuJGVhc2Utb3V0LXF1aW50OiBjdWJpYy1iZXppZXIoMC4yMzAsIDEsIDAuMzIwLCAxKTtcbiRlYXNlLW91dC1zaW5lOiBjdWJpYy1iZXppZXIoMC4zOTAsIDAuNTc1LCAwLjU2NSwgMSk7XG4kZWFzZS1vdXQtZXhwbzogY3ViaWMtYmV6aWVyKDAuMTkwLCAxLCAwLjIyMCwgMSk7XG4kZWFzZS1vdXQtY2lyYzogY3ViaWMtYmV6aWVyKDAuMDc1LCAwLjgyMCwgMC4xNjUsIDEpO1xuJGVhc2Utb3V0LWJhY2s6IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxLjI3NSk7XG4kZWFzZS1vdXQtc3dpZnQ6IGN1YmljLWJlemllcigwLjU1MCwgMCwgMC4xMDAsIDEpO1xuXG4kZWFzZS1pbi1vdXQtcXVhZDogY3ViaWMtYmV6aWVyKDAuNDU1LCAwLjAzMCwgMC41MTUsIDAuOTU1KTtcbiRlYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpO1xuJGVhc2UtaW4tb3V0LXF1YXJ0OiBjdWJpYy1iZXppZXIoMC43NzAsIDAsIDAuMTc1LCAxKTtcbiRlYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYwLCAwLCAwLjA3MCwgMSk7XG4kZWFzZS1pbi1vdXQtc2luZTogY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1MCwgMC41NTAsIDAuOTUwKTtcbiRlYXNlLWluLW91dC1leHBvOiBjdWJpYy1iZXppZXIoMSwgMCwgMCwgMSk7XG4kZWFzZS1pbi1vdXQtY2lyYzogY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNTAsIDAuODYwKTtcbiRlYXNlLWluLW91dC1iYWNrOiBjdWJpYy1iZXppZXIoMC42ODAsIC0wLjU1MCwgMC4yNjUsIDEuNTUwKTtcbiRlYXNlLWluLW91dC1zd2lmdDogY3ViaWMtYmV6aWVyKDAuOTAwLCAwLCAwLjEwMCwgMSk7XG5cblxuLy8tIE1peGluOiBBbmltYXRlZFxuLy8vXG4vLy8gU2V0cyB0aGUgbWFpbiBhbmltYXRpb24gcHJvcGVydGllcy4gVXNlZCBpbiBpbml0aWFsaXplLWFuaW1hdGlvblxuLy8vXG4vLy8gQGdyb3VwIGFuaW1hdGlvblxuXG5AbWl4aW4gYW5pbWF0ZWQoKSB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICRhbmltYXRpb24tZWFzaW5nO1xuICBhbmltYXRpb24tZHVyYXRpb246ICRhbmltYXRpb24tZHVyYXRpb247XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5cbi8vLSBNaXhpbjogRmFkZS1pblxuLy8vXG4vLy8gRmFkZXMgaW4gZWxlbWVudCB1c2luZyBvcGFjaXR5LlxuLy8vXG4vLy8gQGdyb3VwIGFuaW1hdGlvblxuLy8vIEBzZWUgaW5pdGlhbGl6ZS1hbmltYXRpb25cblxuQG1peGluIGZhZGUtaW4oKSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlLWluO1xufVxuXG4vLy0gTWl4aW46IEZhZGUgaW4gdXBcbi8vL1xuLy8vIEZhZGVzIGluIG9wYWNpdHkgYW5kIG1vdmVzIGVsZW1lbnQgdXAgb24gdGhlIFkgYXhpcy5cbi8vL1xuLy8vIEBncm91cCBhbmltYXRpb25cbi8vLyBAc2VlIGluaXRpYWxpemUtYW5pbWF0aW9uXG5cbkBtaXhpbiBmYWRlLWluLXVwKCkge1xuICBhbmltYXRpb24tbmFtZTogZmFkZS1pbi11cDtcbn1cblxuLy8tIE1peGluOiBGYWRlIGluIGRvd25cbi8vL1xuLy8vIEZhZGVzIGluIG9wYWNpdHkgYW5kIG1vdmVzIGVsZW1lbnQgdXAgb24gdGhlIFkgYXhpcy5cbi8vL1xuLy8vIEBncm91cCBhbmltYXRpb25cbi8vLyBAc2VlIGluaXRpYWxpemUtYW5pbWF0aW9uXG5cbkBtaXhpbiBmYWRlLWluLWRvd24ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZS1pbi1kb3duO1xufVxuXG4vLy0gTWl4aW46IE92ZXItc2NhbGVcbi8vL1xuLy8vIENyZWF0ZXMgYW4gZWxhc3RpYyBzY2FsaW5nIHVwIGJpZ2dlciB0aGFuIDEwMCUgdGhlbiByZXN0aW5nIHRvXG4vLy8gMTAwJSBzaXplLlxuLy8vXG4vLy8gQGdyb3VwIGFuaW1hdGlvblxuLy8vIEBzZWUgaW5pdGlhbGl6ZS1hbmltYXRpb25cblxuQG1peGluIG92ZXItc2NhbGUoKSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBvdmVyLXNjYWxlO1xufVxuXG4vLy0gQWRkaXRpdmUgTWl4aW46IEluaXRpYWxpemUgYW5pbWF0aW9uXG4vLy9cbi8vLyBQdXQgdGhpcyBvbiB5b3VyIGRvY3VtZW50IHJvb3QgdG8gZ2V0IGEgZmV3IG5pY2UgYW5pbWF0aW9ucy5cbi8vLyAqV2FybmluZyo6IENyZWF0ZXMgY2xhc3NlcyBpbiB5b3VyIGNzcyBhbmQgc3R5bGVzIHRoZW0gLSBub3QgdG8gYmUgdXNlZCBpbnNpZGVcbi8vLyBhbiBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJG1heC1kZWxheS1jbGFzc2VzIFsyMF0gLSBOdW1iZXIgb2YgZGVsYXkgY2xhc3Nlc1xuLy8vIChgLmRlbGF5LTAxYCwgYC5kZWxheS0wMmAsIGAuZGVsYXktMDNgKSB0aGF0IHdpbGwgYmUgcmVuZGVyZWQuXG4vLy8gQGdyb3VwIGFuaW1hdGlvblxuLy8vIEBleGFtcGxlXG4vLy8gICBAaW5jbHVkZSBpbml0aWFsaXplLWFuaW1hdGlvbigpO1xuLy8vIEBsaW5rIGh0dHA6Ly9jb2RlcGVuLmlvL2Rib3gvcGVuL1pib1ZPZ1xuXG5AbWl4aW4gaW5pdGlhbGl6ZS1hbmltYXRpb24oJG1heC1kZWxheS1jbGFzc2VzOiAyMCkge1xuICAvLyBSZW5kZXIgS2V5ZnJhbWVzXG4gIEBrZXlmcmFtZXMgZmFkZS1pbi11cCB7XG4gICAgMCUgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDE1JSwgMCk7IH1cbiAgICAxMDAlIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBub25lOyB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIGZhZGUtaW4tZG93biB7XG4gICAgMCUgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xNSUsIDApOyB9XG4gICAgMTAwJSB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogbm9uZTsgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBvdmVyLXNjYWxlIHtcbiAgICAwJSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogc2NhbGUoMCk7ICB9XG4gICAgNzAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9XG4gICAgMTAwJSB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogc2NhbGUoMSk7ICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIGZhZGUtaW4ge1xuICAgIDAlIHsgb3BhY2l0eTogMDsgfVxuICAgIDEwMCUgeyBvcGFjaXR5OiAxO31cbiAgfVxuXG5cbiAgLy8gTmVlZGVkIGZvciBldmVyeSBlbGVtZW50IHRoYXQgeW91IHdhbnQgdG8gYW5pbWF0ZVxuICAuYW5pbWF0ZWQgeyBAaW5jbHVkZSBhbmltYXRlZCgpOyB9XG5cbiAgLy8gSW5kaXZpZHVhbCBhbmltYXRpb25zXG4gIC5mYWRlLWluIHsgQGluY2x1ZGUgZmFkZS1pbigpOyB9XG4gIC5mYWRlLWluLXVwIHsgQGluY2x1ZGUgZmFkZS1pbi11cCgpOyB9XG4gIC5mYWRlLWluLWRvd24geyBAaW5jbHVkZSBmYWRlLWluLWRvd24oKTsgfVxuICAub3Zlci1zY2FsZSB7IEBpbmNsdWRlIG92ZXItc2NhbGUoKTsgfVxuXG4gIC8vIExvb3AgdG8gY3JlYXRlIGRlbGF5IGNsYXNzZXNcbiAgLy9cbiAgLy8gQ3JlYXRlcyAuZGVsYXktMSAuZGVsYXktMiAuZGVsYXktM1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRtYXgtZGVsYXktY2xhc3NlcyB7XG4gICAgJGRlbGF5OiAkaSAqIC4xcztcblxuICAgIC5kZWxheS0jeyRpfSB7XG4gICAgICBhbmltYXRpb24tZGVsYXk6ICRkZWxheTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFNvbWUgYW5pbWF0aW9uIGRlZmF1bHRzXG5cbi8vLyBTZXRzIGRlZmF1bHQgZHVyYXRpb24gZm9yIGFuaW1hdGlvbnMuXG4vLy9cbi8vLyBAZ3JvdXAgc2V0dGluZ3Ncbi8vLyBAdHlwZSBOdW1iZXIgKFRpbWUpXG5cbiRhbmltYXRpb24tZHVyYXRpb246IC42NXMgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRlZmF1bHQgZHVyYXRpb24gZm9yIGFuaW1hdGlvbnMuXG4vLy9cbi8vLyBAZ3JvdXAgc2V0dGluZ3Ncbi8vLyBAdHlwZSBFYXNpbmcgZnVuY3Rpb25cblxuJGFuaW1hdGlvbi1lYXNpbmc6IGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgYmFzZSBmb250IHNpemUgZm9yIHJlbSBjYWxjdWxhdGlvbnM7XG4vLy9cbi8vLyBAZ3JvdXAgc2V0dGluZ3Ncbi8vLyBAdHlwZSBOdW1iZXIgKHB4KVxuJGJhc2UtZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xuXG5cbi8vIENvbG9ycyB2aWEgTWF0ZXJpYWwgZGVzaWduXG4vLyBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbCNjb2xvci1jb2xvci1wYWxldHRlXG5cbiRyZWQ6ICAgICAgICAgI0Y0NDMzNiAhZGVmYXVsdDtcbiRwaW5rOiAgICAgICAgI0U5MUU2MyAhZGVmYXVsdDtcbiRwdXJwbGU6ICAgICAgIzlDMjdCMCAhZGVmYXVsdDtcbiRkZWVwLXB1cnBsZTogIzY3M0FCNyAhZGVmYXVsdDtcbiRpbmRpZ286ICAgICAgIzNGNTFCNSAhZGVmYXVsdDtcbiRibHVlOiAgICAgICAgIzIxOTZGMyAhZGVmYXVsdDtcbiRsaWdodC1ibHVlOiAgIzAzQTlGNCAhZGVmYXVsdDtcbiRjeWFuOiAgICAgICAgIzAwQkNENCAhZGVmYXVsdDtcbiR0ZWFsOiAgICAgICAgIzAwOTY4OCAhZGVmYXVsdDtcbiRncmVlbjogICAgICAgIzRDQUY1MCAhZGVmYXVsdDtcbiRsaWdodC1ncmVlbjogIzhCQzM0QSAhZGVmYXVsdDtcbiRsaW1lOiAgICAgICAgI0NEREMzOSAhZGVmYXVsdDtcbiRvcmFuZ2U6ICAgICAgI0ZGOTgwMCAhZGVmYXVsdDtcbiRkZWVwLW9yYW5nZTogI0ZGNTcyMiAhZGVmYXVsdDtcbiRicm93bjogICAgICAgIzc5NTU0OCAhZGVmYXVsdDtcbiRncmV5OiAgICAgICAgIzlFOUU5RSAhZGVmYXVsdDtcbiRibHVlLWdyYXk6ICAgIzYwN0Q4QiAhZGVmYXVsdDtcbiIsIi8vIC0tLS0tLVxuLy8gQ29kZVxuLy8gLS0tLS0tXG5cbi8vLSBNaXhpbjogQ29kZVxuLy8vXG4vLy8gU3R5bGVzIGlubGluZSBjb2RlIHNuaXBwZXRzIG9uIHlvdXIgcGFnZS4gRGVmYXVsdHMgdG8gYSBiZWF1dGlmdWwgcmVkLCBidXRcbi8vLyBjYW4gYmUgcGFzc2VkIGFueSBjb2xvci5cbi8vL1xuLy8vIEBncm91cCBjb2RlXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJGNvbG9yIFsjREY1QzMzXSAtIFRleHQgQ29sb3Jcbi8vLyBAZXhhbXBsZVxuLy8vICAgY29kZSB7XG4vLy8gICAgIEBpbmNsdWRlIGNvZGUoYmx1ZSk7XG4vLy8gICB9XG5cbkBtaXhpbiBjb2RlKCRjb2xvciA6ICNERjVDMzMpIHtcbiAgcGFkZGluZzogM3B4IDRweDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y1RjVGNTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0UxRTFFODtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgbW9ub3NwYWNlO1xufVxuXG4vLy0gTWl4aW46IFByZVxuLy8vXG4vLy8gU29tZSBkZWZhdWx0IHN0eWxlcyBmb3IgY29kZSBibG9ja3Mgb24geW91ciBwYWdlLiBUYWtlcyBub3QgYXJndW1lbnRzXG4vLy9cbi8vLyBAZ3JvdXAgY29kZVxuLy8vIEBleGFtcGxlXG4vLy8gICBwcmUge1xuLy8vICAgICBAaW5jbHVkZSBwcmUoKTtcbi8vLyAgIH1cblxuQG1peGluIHByZSgpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDdweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y1RjVGNTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0UxRTFFODtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIG1vbm9zcGFjZTtcbiAgbGluZS1oZWlnaHQ6IDE2MCU7XG59XG4iLCIuYnRuLFxuYnV0dG9uLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0ge1xuICBAaW5jbHVkZSBidXR0b24oZGVlcHNreWJsdWUpO1xuICBtYXJnaW46IDAgcmVtKDIwcHgpIDAgMDtcbiAgcGFkZGluZzogcmVtKDEwcHgpIHJlbSgzNnB4KTtcbiAgYm9yZGVyLXJhZGl1czogMDtcblxuICAmLnNtYWxsIHtcbiAgICBwYWRkaW5nOiByZW0oN3B4KSByZW0oMjBweCk7XG4gIH1cblxuICAmLm91dGxpbmUge1xuICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkY29sb3ItcHJpbWFyeTtcbiAgICBmb250LXNpemU6IHJlbSgxMnB4KTtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuICAgICAgYm9yZGVyOiAycHggc29saWQgJGNvbG9yLXByaW1hcnk7XG4gICAgICBmb250LXNpemU6IHJlbSgxMnB4KTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci1wcmltYXJ5O1xuICAgICAgZm9udC1zaXplOiByZW0oMTJweCk7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICYud2hpdGUge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgI2ZmZjtcbiAgICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gLS0tLVxuLy8gVWlcbi8vIC0tLS1cblxuLy8tIE1peGluOiBCdXR0b25cbi8vL1xuLy8vIEEgc3RhcnRpbmcgcGxhY2UgZm9yIGJ1dHRvbiBzdHlsaW5nLlxuLy8vXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJGJhY2tncm91bmQtY29sb3IgWyMwMEJGRkZdIC0gQnV0dG9uIGJhY2tncm91bmQgY29sb3Jcbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkY29sb3IgWyNGRkZdIC0gQnV0dG9uIHRleHQgY29sb3Jcbi8vL1xuLy8vIEBncm91cCB1aVxuLy8vIEBleGFtcGxlXG4vLy8gICBhLmJ0biB7XG4vLy8gICAgIEBpbmNsdWRlIGJ1dHRvbigpO1xuLy8vICAgfVxuLy8vICAgYS55ZWxsb3ctYnV0dG9uIHtcbi8vLyAgICAgQGluY2x1ZGUgYnV0dG9uKHllbGxvdywgYmxhY2spO1xuLy8vICAgfVxuXG5AbWl4aW4gYnV0dG9uKCRiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCRkZGLCAkY29sb3I6ICNGRkYpIHtcbiAgJGdsb2JhbC1ib3JkZXItcmFkaXVzOiAzcHggIWRlZmF1bHQ7XG4gIHBhZGRpbmc6IDEwcHggMjJweDtcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1ib3JkZXItcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgY29sb3I6ICRjb2xvcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsaW5lLWhlaWdodDogMWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXI6IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGJhY2tncm91bmQtY29sb3IsIDEwJSk7XG4gIH1cbn1cbiIsIi8vIC0tLS1cbi8vIFV0aWxpdGllc1xuLy8gLS0tLVxuXG4vLy0gRnVuY3Rpb246IFJlbSBDYWxjdWxhdG9yXG4vLy9cbi8vLyBDYWxjdWxhdGVzIGFuZCByZXR1cm5zIHRoZSByZW0gdmFsdWUgYmFzZWQgb24gcHggaW5wdXQuIERlZmF1bHQgYmFzZSBmb250XG4vLy8gc2l6ZSBpcyAxNnB4LCBidXQgY2FuIGJlIGNoYW5nZWQgd2l0aCBhIGdsb2JhbCBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vL1xuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRzaXplIC0gU2l6ZSBpbiBwaXhlbHNcbi8vL1xuLy8vIEBncm91cCB1dGlsaXRpZXNcbi8vLyBAZXhhbXBsZVxuLy8vICAgZm9udC1zaXplOiByZW0oMzBweCk7XG4vLy8gICAvLyByZXR1cm5zIGZvbnQtc2l6ZTogMS44NzVyZW07XG5cbkBmdW5jdGlvbiByZW0oJHNpemUpIHtcbiAgJHJlbS1zaXplOiAkc2l6ZSAvICRiYXNlLWZvbnQtc2l6ZTtcbiAgQHJldHVybiAjeyRyZW0tc2l6ZX1yZW07XG59XG5cbi8vLSBGdW5jdGlvbjogU3RyaXAgVW5pdFxuLy8vXG4vLy8gU29tZXRpbWVzIGl0J3MganVzdCBlYXNpZXIgdG8gZG8gY2FsY3VsYXRpb25zIHdpdGggdGhlIHVuaXQgaXMgc3RyaXBwZWQuXG4vLy9cbi8vLyBAcGFyYW0ge251bWJlcn0gJG51bWJlciAtIE51bWJlciB0aGF0IGhhcyBhIHVuaXRcbi8vL1xuLy8vIEBncm91cCB1dGlsaXRpZXNcbi8vLyBAZXhhbXBsZVxuLy8vICAgJGxlbmd0aDogNDJweDtcbi8vLyAgICR2YWx1ZTogc3RyaXAtdW5pdCgkbGVuZ3RoKTtcbi8vLyAgIC8vIC0+IDQyXG4vLy8gQGxpbmsgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9zbmlwcGV0cy9zYXNzL3N0cmlwLXVuaXQtZnVuY3Rpb24vXG5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW1iZXIpIHtcbiAgQGlmIHR5cGUtb2YoJG51bWJlcikgPT0gJ251bWJlcicgYW5kIG5vdCB1bml0bGVzcygkbnVtYmVyKSB7XG4gICAgQHJldHVybiAkbnVtYmVyIC8gKCRudW1iZXIgKiAwICsgMSk7XG4gIH1cbiAgQHJldHVybiAkbnVtYmVyO1xufVxuXG4vLy0gTWl4aW46IERlYnVnXG4vLy9cbi8vLyBEZWJ1Z2dpbmcgdG9vbCAtIGFkZHMgYSBib3JkZXIgdG8gdGhlIGN1cnJlbnQgZWxlbWVudCwgaXRzIGNoaWxkcmVuLFxuLy8vIGdyYW5kY2hpbGRyZW4sIGV0YyBzbyB5b3UgY2FuIHNlZSB3aGF0J3MgdXAg4oCTIGdyZWF0IGZvciBwcmVjaXNlIGxheW91dFxuLy8vIHR3ZWFrcy4gIEl0IHdpbGwgYWxzbyBhZGQgZmxhZ3MgaWYgeW91IG1hZGUgbWlzdGFrZXMgbGlrZSBwdXQgaW4gaW5saW5lXG4vLy8gc3R5bGVzLCBmb3Jnb3QgYW4gYWx0IG9uIGFuIGltYWdlLCBsZWZ0IHRoZSBhbHQgYmxhbmssIGV0Yy4gTm90IHRvIGJlIHVzZWRcbi8vLyBpbiBwcm9kdWN0aW9uLCBvYnZpb3VzbHkuXG4vLy9cbi8vLyBAZ3JvdXAgdXRpbGl0aWVzXG4vLy8gQGV4YW1wbGVcbi8vLyAgIC5jb250YWluZXItZWxtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZGVidWcoKTtcbi8vLyAgIH1cbi8vLyBAbGluayBodHRwOi8vY29kZXBlbi5pby9kYm94L3Blbi9HSlp6WW8/ZWRpdG9ycz0xMTBcblxuQG1peGluIGRlYnVnKCkgez4gKiB7ICBib3JkZXI6IDFweCBzb2xpZCBncmVlbjt9ID4gKiA+ICoge2JvcmRlcjogMXB4IHNvbGlkIHRvbWF0bzsgfSA+ICogPiAqID4gKiB7IGJvcmRlcjogMXB4IHNvbGlkIERlZXBTa3lCbHVlOyB9ID4gKiA+ICogPiAqID4gKiB7IGJvcmRlcjogMXB4IHNvbGlkIERlZXBQaW5rOyB9ID4gKiA+ICogPiAqID4gKiA+ICogeyBib3JkZXI6IDFweCBzb2xpZCBNZWRpdW1TbGF0ZUJsdWU7fX1cblxuLy8gTWl4aW46IFRyaWFuZ2xlXG4vL1xuLy8gTWFrZXMgYSBsaXR0bGUgY3NzIHRyaWFuZ2xlIGZvciB5b3UuIFBhc3MgaXQgYSBkaXJlY3Rpb24gKHVwLCBkb3duLCBsZWZ0LFxuLy8gcmlnaHQpLCBzaXplIChpbiBwaXhlbHMpLCBhbmQgYSBjb2xvci5cbi8vXG4vLyBleC4gQGluY2x1ZGUgdHJpYW5nbGUoKVxuLy8gZXguIEBpbmNsdWRlIHRyaWFuZ2xlKCdkb3duJywgMTVweCwgYmx1ZSlcblxuLy8tIE1peGluOiBUcmlhbmdsZVxuLy8vXG4vLy8gTWFrZXMgYSBsaXR0bGUgY3NzIHRyaWFuZ2xlIGZvciB5b3UuXG4vLy9cbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkZGlyZWN0aW9uIFt1cF0gLSBEaXJlY3Rpb24gb2YgdGhlIHRyaWFuZ2xlOiB1cCwgZG93biBsZWZ0XG4vLy8gb3IgcmlnaHRcbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkc2l6ZSBbMTBweF0gLSBTaXplIG9mIHRoZSB0cmlhbmdsZVxuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRjb2xvciBbIzAwMF0gLSBDb2xvciBvZiB0aGUgdHJpYW5nbGVcbi8vL1xuLy8vIEBncm91cCB1dGlsaXRpZXNcbi8vLyBAZXhhbXBsZVxuLy8vICAgLmVsZW1lbnQ6YWZ0ZXIge1xuLy8vICAgICBAaW5jbHVkZSB0cmlhbmdsZSgpO1xuLy8vICAgfVxuLy8vICAgc3BhbiB7XG4vLy8gICAgIEBpbmNsdWRlIHRyaWFuZ2xlKHJpZ2h0LCA4cHgsIHJlZCk7XG4vLy8gICB9XG5cbkBtaXhpbiB0cmlhbmdsZSgkZGlyZWN0aW9uOid1cCcsICRzaXplOjEwcHgsICRjb2xvcjojMDAwKSB7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG5cbiAgQGlmICRkaXJlY3Rpb24gPT0gJ3VwJyB7XG4gICAgYm9yZGVyLWJvdHRvbTogJHNpemUgc29saWQgJGNvbG9yO1xuICAgIGJvcmRlci1sZWZ0OiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gJ2Rvd24nIHtcbiAgICBib3JkZXItbGVmdDogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wOiAkc2l6ZSBzb2xpZCAkY29sb3I7XG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSAnbGVmdCcge1xuICAgIGJvcmRlci1ib3R0b206ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodDogJHNpemUgc29saWQgJGNvbG9yO1xuICAgIGJvcmRlci10b3A6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gJ3JpZ2h0JyB7XG4gICAgYm9yZGVyLWJvdHRvbTogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWxlZnQ6ICRzaXplIHNvbGlkICRjb2xvcjtcbiAgICBib3JkZXItdG9wOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gUmV0dXJucyB0aGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgIGFzIGEgZmxvYXQgKGJldHdlZW4gMCBhbmQgMSlcbi8vLyAxIGlzIHB1cmUgd2hpdGUsIDAgaXMgcHVyZSBibGFja1xuLy8vIEBncm91cCB1dGlsaXRpZXNcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvclxuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vLyBAbGluayBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI3JlbGF0aXZlbHVtaW5hbmNlZGVmIFJlZmVyZW5jZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhZGVsXG5cbkBmdW5jdGlvbiBsdW1pbmFuY2UoJGNvbG9yKSB7XG4gICRjb2xvcnM6IChcbiAgICAncmVkJzogcmVkKCRjb2xvciksXG4gICAgJ2dyZWVuJzogZ3JlZW4oJGNvbG9yKSxcbiAgICAnYmx1ZSc6IGJsdWUoJGNvbG9yKVxuICApO1xuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGNvbG9ycyB7XG4gICAgJGFkanVzdGVkOiAwO1xuICAgICR2YWx1ZTogJHZhbHVlIC8gMjU1O1xuXG4gICAgQGlmICR2YWx1ZSA8IDAuMDM5Mjgge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgLyAxMi45MjtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR2YWx1ZTogKCR2YWx1ZSArIC4wNTUpIC8gMS4wNTU7XG4gICAgICAkdmFsdWU6IHBvdygkdmFsdWUsIDIuNCk7XG4gICAgfVxuXG4gICAgJGNvbG9yczogbWFwLW1lcmdlKCRjb2xvcnMsICgkbmFtZTogJHZhbHVlKSk7XG4gIH1cblxuICBAcmV0dXJuIChtYXAtZ2V0KCRjb2xvcnMsICdyZWQnKSAqIC4yMTI2KSArIChtYXAtZ2V0KCRjb2xvcnMsICdncmVlbicpICogLjcxNTIpICsgKG1hcC1nZXQoJGNvbG9ycywgJ2JsdWUnKSAqIC4wNzIyKTtcbn1cbiIsIi5oZXJvLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6ICRnYWxsZXJ5O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAuaGVyby13cmFwIHtcbiAgICBAaW5jbHVkZSBjZW50ZXIoMTIwMHB4KTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuaGVyby10aXRsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgdG9wOiAyMDBweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGxlZnQ6IHJlbSg1MHB4KTtcblxuICAgIC8vIGFuaW1hdGUgb24gZGVza3RvcCBvbmx5XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0LWwnKSB7XG4gICAgICBAaW5jbHVkZSBhbmltYXRlZDtcbiAgICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlLWluLXJpZ2h0O1xuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAxLjJzO1xuICAgIH1cblxuICAgIC8vIHNjYWxlIGxvZ28gYmVmb3JlIHN3aXRjaGluZyB0byB0YWJsZXRcbiAgICBAaW5jbHVkZSBtZWRpYSgnPDEyMDBweCcpIHtcbiAgICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAyNHZ3O1xuICAgICAgfVxuICAgIH1cblxuICAgIHAge1xuICAgICAgZm9udC1zaXplOiByZW0oMTRweCk7XG4gICAgICBjb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuICAgIH1cbiAgfVxuXG4gIC5oZXJvLWljb25zIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMjtcbiAgICB0b3A6IDIwMHB4O1xuICAgIHJpZ2h0OiByZW0oNTBweCk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQtbCcpIHtcbiAgICAgIEBpbmNsdWRlIGFuaW1hdGVkO1xuICAgICAgYW5pbWF0aW9uLW5hbWU6IGZhZGUtaW4tbGVmdDtcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogMS4ycztcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICBAaW5jbHVkZSBpbmxpbmUtbGlzdCgyMHB4KTtcbiAgICB9XG5cbiAgICBsaTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRxdWlldC1ib3JkZXI7XG4gICAgICBwYWRkaW5nOiAyMHB4IDI1cHggMjBweCA1cHg7XG4gICAgfVxuXG4gICAgbGk6bGFzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIGZpZ3VyZSB7XG4gICAgQGluY2x1ZGUgcmF0aW8tYm94KDUvNCk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMzAlIGF1dG87XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICAgIHRvcDogcmVtKDMwcHgpO1xuXG4gICAgLy9hbmltYXRpb24gZm9yIGRlc2t0b3BcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQtbCcpIHtcbiAgICAgIEBpbmNsdWRlIGFuaW1hdGVkO1xuICAgICAgQGluY2x1ZGUgZmFkZS1pbjtcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogMC44cztcbiAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgfVxuICB9XG5cbiAgLmhvdHNwb3Qge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAzO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNDUwbXMgZWFzZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgQGluY2x1ZGUgYW5pbWF0ZWQ7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbjtcblxuICAgIHNwYW4ge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgQGluY2x1ZGUgY2VudGVyKCk7XG4gICAgICBAaW5jbHVkZSB2ZXJ0aWNhbGx5LWFsaWduKCk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAuaG90c3BvdC1jb3B5IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gaG90c3BvdCAxXG4gIC5ocy0xIHtcbiAgICBsZWZ0OiA1NSU7XG4gICAgdG9wOiAyMCU7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAyLjJzO1xuICAgIHNwYW4geyBAaW5jbHVkZSBob3RzcG90KCdsYXJnZScsIDIuNHMpOyB9XG4gIH1cblxuICAvLyBob3RzcG90IDJcbiAgLmhzLTIge1xuICAgIGxlZnQ6IDUzJTtcbiAgICB0b3A6IDYwJTtcbiAgICBhbmltYXRpb24tZGVsYXk6IDIuNXM7XG4gICAgc3BhbiB7IEBpbmNsdWRlIGhvdHNwb3QoJ2xhcmdlJywgMnMpOyB9XG4gIH1cblxuICAvLyBob3RzcG90IDNcbiAgLmhzLTMge1xuICAgIHJpZ2h0OiAxOSU7XG4gICAgYm90dG9tOiA0NCU7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAyLjhzO1xuICAgIHNwYW4geyBAaW5jbHVkZSBob3RzcG90KCdtZWRpdW0nLCAyLjJzKTsgfVxuICB9XG5cbiAgLmhvdHNwb3QtY29weSB7XG4gICAgQGluY2x1ZGUgYW5pbWF0ZWQ7XG4gICAgQGluY2x1ZGUgbWF0ZXJpYWwtc2hhZG93KDMpO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcGFkZGluZzogcmVtKDE1cHgpIHJlbSgyMHB4KTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZDogcmdiYSgjZmZmLCAuOTMpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA0NTBtcyBlYXNlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiA0O1xuICAgIHdpZHRoOiAyMDJweDtcbiAgICBsZWZ0OiAtNzhweDtcbiAgICB0b3A6IDUwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IHJlbSg5OTlweCk7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd247XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAuNHM7XG4gICAgZm9udC1zaXplOiByZW0oMTJweCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNGVtO1xuXG4gICAgJjphZnRlciB7XG4gICAgICAkYXJyb3ctc2l6ZTogNnB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICB0b3A6IC02cHg7XG4gICAgICBsZWZ0OiBjYWxjKDUwJSAtICgjeyRhcnJvdy1zaXplfSAvIDIpKTtcbiAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKCd1cCcsICRhcnJvdy1zaXplLCAkd2hpdGUpO1xuICAgIH1cbiAgfVxuXG5cbiAgLmhlcm8tY29weSB7XG4gICAgbWFyZ2luLXRvcDogLTEwJTtcbiAgICBwYWRkaW5nOiAwICRtb2JpbGUtZ3V0dGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldC1sJykge1xuICAgICAgQGluY2x1ZGUgYW5pbWF0ZWQ7XG4gICAgICBhbmltYXRpb24tbmFtZTogZmFkZS1pbi1kb3duO1xuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAxLjRzO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgQGluY2x1ZGUgY2VudGVyKDY3MHB4KTtcbiAgICAgIEBpbmNsdWRlIGZsdWlkLXR5cGUoMTRweCwgMTZweCwgNDIwcHgsIDEwMjRweCk7XG4gICAgICBsaW5lLWhlaWdodDogMS44ZW07XG4gICAgICBjb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuICAgIH1cblxuICAgIGEuYnRuIHtcbiAgICAgIGNvbG9yOiAkZGFyay1zbGF0ZS1ibHVlO1xuICAgICAgYm9yZGVyOiAycHggc29saWQgJGRhcmstc2xhdGUtYmx1ZTtcbiAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiA4MHB4O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZGFyay1zbGF0ZS1ibHVlO1xuICAgICAgfVxuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZGFyay1zbGF0ZS1ibHVlO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPD00MjBweCcpIHtcbiAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEwcHgpO1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oMzBweCk7XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg1MHB4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldC1sJykge1xuICAgIC5oZXJvLXRpdGxlIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMTAwcHg7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICBzdmcge1xuICAgICAgICB3aWR0aDogNjAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZpZ3VyZSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDE1MCUgYXV0bztcbiAgICAgIHRvcDogOTBweDtcbiAgICAgIEBpbmNsdWRlIHJhdGlvLWJveCgxLy45KTtcbiAgICB9XG5cbiAgICAuaG90c3BvdCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5oZXJvLWljb25zIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogYXV0bztcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDQwcHggYXV0bztcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxtb2JpbGUtbCcpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbSg0MHB4KTtcbiAgICAgIH1cblxuICAgICAgdWwgbGkge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oZXJvLWNvcHkge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luLXRvcDogMDtcblxuICAgICAgcCB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBQcm9qZWN0IHNwZWNpZmljIG1peGluc1xuLy8gRm9yIG90aGVyIG1peGlucyBzZWUgYm93ZXIva25hcHNhY2tcbkBtaXhpbiBjb3ZlcigpIHtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbn1cblxuQG1peGluIGFic29sdXRlLWNlbnRlcigpIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLy8gTWl4aW46IEhvdHNwb3Rcbi8vIE92ZXJsYXlzIHB1bHNpbmcgZWxlbWVudCBvbiB0b3Agb2YgZ3JpZCBpbWFnZXNcbi8vICRzaXplOiBsYXJnZSwgbWVkaXVtIG9yIHNtYWxsXG4vL1xuLy8gdG9kbzpcblxuQG1peGluIGhvdHNwb3QoJHNpemU6IG1lZGl1bSwgJGR1cmF0aW9uOiAycykge1xuICBib3JkZXI6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGN5YW47XG5cbiAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kOiAkY3lhbjtcbiAgICBjb250ZW50OiAnJztcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgIEBpZiAkc2l6ZSA9PSAnc21hbGwnIHtcbiAgICAgIGFuaW1hdGlvbjogcHVsc2UgJGR1cmF0aW9uIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7XG4gICAgICB9IEBlbHNlIGlmICRzaXplID09ICdsYXJnZScge1xuICAgICAgYW5pbWF0aW9uOiBwdWxzZS1sYXJnZSAkZHVyYXRpb24gY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgYW5pbWF0aW9uOiBwdWxzZS1tZWQgJGR1cmF0aW9uIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7XG4gICAgfVxuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICB9XG5cbiAgJjphZnRlciB7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAuM3M7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIH1cbn1cblxuLy8tIE1peGluOiBNYXRlcmlhbCBTaGFkb3dcbi8vL1xuLy8vIEJveCBzaGFkb3dzIGJhc2VkIG9uIDUgTWF0ZXJpYWwgRGVzaWduIHByZXNldHM7XG4vLy9cbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkei1kZXB0aCBbMV0gLSBzaGFkb3cgZGlzdGFuY2Ugb24gei1heGlzXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJHN0cmVuZ3RoIFsxXSAtIG11bHRpcGxpZXIgZm9yIHNoYWRvdyBzdHJlbmd0aC9kYXJrbmVzc1xuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRjb2xvciBbMV0gLSBzaGFkb3cgY29sb3Jcbi8vLyBAZ3JvdXAgbGF5b3V0XG4vLy8gQGV4YW1wbGVcbi8vLyAgIGRpdiB7XG4vLy8gICAgIEBpbmNsdWRlIG1hdGVyaWFsLXNoYWRvdygzKTtcbi8vLyAgIH1cbi8vLyBAbGluayBodHRwOi8vY29kZXBlbi5pby9kYm94L3Blbi9SYXdCRVdcblxuQG1peGluIG1hdGVyaWFsLXNoYWRvdygkei1kZXB0aDogMSwgJHN0cmVuZ3RoOiAxLCAkY29sb3I6IGJsYWNrKSB7XG4gIEBpZiAkei1kZXB0aCA9PSAxIHtcbiAgICBib3gtc2hhZG93OiAwIHJlbSgxcHgpIHJlbSgzcHgpIHJnYmEoJGNvbG9yLCAkc3RyZW5ndGggKiAwLjE0KSwgMCByZW0oMXB4KSByZW0oMnB4KSByZ2JhKCRjb2xvciwgJHN0cmVuZ3RoICogMC4yNCk7XG4gIH1cbiAgQGlmICR6LWRlcHRoID09IDIge1xuICAgIGJveC1zaGFkb3c6IDAgcmVtKDNweCkgcmVtKDZweCkgcmdiYSgkY29sb3IsICRzdHJlbmd0aCAqIDAuMTYpLCAwIHJlbSgzcHgpIHJlbSg2cHgpIHJnYmEoJGNvbG9yLCAkc3RyZW5ndGggKiAwLjIzKTtcbiAgfVxuICBAaWYgJHotZGVwdGggPT0gMyB7XG4gICAgYm94LXNoYWRvdzogMCByZW0oMTBweCkgcmVtKDIwcHgpIHJnYmEoJGNvbG9yLCAkc3RyZW5ndGggKiAwLjE5KSwgMCByZW0oNnB4KSByZW0oNnB4KSByZ2JhKCRjb2xvciwgJHN0cmVuZ3RoICogMC4yMyk7XG4gIH1cbiAgQGlmICR6LWRlcHRoID09IDQge1xuICAgIGJveC1zaGFkb3c6IDAgcmVtKDE1cHgpIHJlbSgzMHB4KSByZ2JhKCRjb2xvciwgJHN0cmVuZ3RoICogMC4yNSksIDAgcmVtKDEwcHgpIHJlbSgxMHB4KSByZ2JhKCRjb2xvciwgJHN0cmVuZ3RoICogMC4yMik7XG4gIH1cbiAgQGlmICR6LWRlcHRoID09IDV7XG4gICAgYm94LXNoYWRvdzogMCByZW0oMjBweCkgcmVtKDQwcHgpIHJnYmEoJGNvbG9yLCAkc3RyZW5ndGggKiAwLjMwKSwgMCByZW0oMTVweCkgcmVtKDEycHgpIHJnYmEoJGNvbG9yLCAkc3RyZW5ndGggKiAwLjIyKTtcbiAgfVxuICBAaWYgKCR6LWRlcHRoIDwgMSkgb3IgKCR6LWRlcHRoID4gNSkge1xuICAgIEB3YXJuICckei1kZXB0aCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNSc7XG4gIH1cbn1cbiIsIi5wbGF0Zm9ybS1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1iYWNrZ3JvdW5kO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgZGFya2VuKCRwYXBlciwgNSUpO1xuICBjbGVhcjogYm90aDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nLXRvcDogcmVtKDkwcHgpO1xuICBwYWRkaW5nLWJvdHRvbTogcmVtKDkwcHgpO1xuXG4gIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgcGFkZGluZy10b3A6IHJlbSg0MHB4KTtcbiAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDQwcHgpO1xuICB9XG5cblxuXG4gIGRpdi5jb3B5IHtcbiAgICBwYWRkaW5nOiAwICRtb2JpbGUtZ3V0dGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6IHJlbSg5MDBweCk7XG5cbiAgICBoMSB7XG4gICAgICBmb250LWZhbWlseTogR3JhcGhpayBUaGluIFdlYjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXNpemU6IHJlbSg0MHB4KTtcbiAgICAgIEBpbmNsdWRlIGhlYXZ5LWFudGlhbGlhcztcbiAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNTBweCk7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBtYXJnaW4tdG9wOiByZW0oMjVweCk7XG4gICAgICBjb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuICAgICAgZm9udC1zaXplOiByZW0oMThweCk7XG4gICAgfVxuICB9XG5cbiAgLmhhbmQtY3Vyc29yIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDIwcHggYXV0byAwO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgZGl2LnBsYXRmb3JtLWludGVyYWN0aXZlLWNvbnRhaW5lciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1heC13aWR0aDogcmVtKDEwMzdweCk7XG4gICAgLy8gbWluLWhlaWdodDogcmVtKDQ1MHB4KTtcbiAgICBtYXJnaW46IDAgYXV0bztcblxuICAgIHN2ZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIC8vIG1pbi1oZWlnaHQ6IHJlbSg0NTBweCk7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgfVxuXG4gICAgICAuc2Vjb25kYXJ5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuXG4gICAgICAgIC5hbmltYXRlZCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubG9nby1jaXJjbGUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKC44KTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAub3V0ZXItY2lyY2xlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKC44KTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldC1sJykge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBoZWlnaHQ6IHJlbSgxNzVweCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gcHJpbWFyeSBjaXJjbGUgYW5pbWF0aW9ucyAodmlhIHdheXBvaW50cylcbiAgICAmLnJlc29sdmVkIHtcbiAgICAgIC5sb2dvLWNpcmNsZSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICB9XG5cbiAgICAgIC5vdXRlci1jaXJjbGUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYW5pbWF0aW9uIHRoZSBzZWNvbmRhcnkgZ3JvdXAgd2hlbiBob3ZlcmluZyB0aGUgZmlyc3QuXG4gICAgJi5zZWNvbmRhcnktcmVzb2x2ZWQge1xuICAgICAgLnNlY29uZGFyeSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgIC5hbmltYXRlZCB7XG4gICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjRzO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgICAgIH1cblxuICAgICAgICAuc2Vjb25kYXJ5LXNlbWktY2lyY2xlIHtcbiAgICAgICAgICBvcGFjaXR5OiAwLjI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQtbCcpIHtcbiAgICAjcGxhdGZvcm0tZ3JhcGhpYyB7XG4gICAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICAgIG1hcmdpbi10b3A6IDkwcHg7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJz49bW9iaWxlLWwnLCAnPHRhYmxldC1sJykge1xuICAgIG1pbi1oZWlnaHQ6IDkuN3JlbTtcblxuICAgIC5wbGF0Zm9ybS1pbnRlcmFjdGl2ZS1jb250YWluZXIge1xuXG4gICAgICAjcGxhdGZvcm0tZ3JhcGhpYyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgICBtYXJnaW46IHJlbSg2MHB4KSAwIDAgMDtcbiAgICAgICAgbWluLWhlaWdodDogNDAwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxtb2JpbGUtbCcpIHtcbiAgICAucGxhdGZvcm0taW50ZXJhY3RpdmUtY29udGFpbmVyIHtcblxuICAgICAgI3BsYXRmb3JtLWdyYXBoaWMge1xuICAgICAgICBtYXJnaW46IHJlbSgzMHB4KSAwIDAgMDtcbiAgICAgICAgbWluLWhlaWdodDogMjQwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuZGV2ZWxvcGVyLWtpdC1jb250YWluZXIge1xuXG4gIGFydGljbGUuY29weSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgaDMge1xuICAgICAgcGFkZGluZzogcmVtKDEwMHB4KSAwIHJlbSgzMHB4KTtcbiAgICAgIGZvbnQtZmFtaWx5OiBHcmFwaGlrIFRoaW4gV2ViO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6IHJlbSg0MHB4KTtcbiAgICAgIEBpbmNsdWRlIGhlYXZ5LWFudGlhbGlhcztcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbi10b3A6IHJlbSg1cHgpO1xuICAgICAgY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDE4cHgpO1xuICAgICAgQGluY2x1ZGUgY2VudGVyKDkwMHB4KTtcbiAgICB9XG4gIH1cblxuICAuYnV5bm93IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnNkay1wbHVzLWJhY2tzcGluIHtcbiAgICBAaW5jbHVkZSBjZW50ZXIoNDE1cHgpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiByZW0oNzBweCk7XG4gICAgaGVpZ2h0OiByZW0oMjAwcHgpO1xuXG4gICAgLnNkayxcbiAgICAuYmFja3NwaW4ge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQtbCcpIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuOHMgJGVhc2Utb3V0LXF1YWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnBsdXMge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQtbCcpIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgJGVhc2Utb3V0LWJhY2s7XG4gICAgICB9XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjVzO1xuICAgIH1cblxuICAgIC5zZGsge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHJlbSg0NXB4KTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MHB4KTtcblxuICAgICAgaW1nIHtcbiAgICAgICAgbWF4LWhlaWdodDogcmVtKDEyNXB4KTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG5cbiAgICAgIGg1IHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMThweCk7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgzMHB4KTtcbiAgICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5wbHVzIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBmb250LXNpemU6IHJlbSg0MHB4KTtcbiAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgICAgIG1hcmdpbi10b3A6IHJlbSg0MHB4KTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oNDBweCk7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIH1cblxuICAgIC5iYWNrc3BpbiB7XG4gICAgICBtYXJnaW4tbGVmdDogcmVtKDIwcHgpO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwcHgpO1xuXG4gICAgICBpbWcge1xuICAgICAgICBtYXgtaGVpZ2h0OiByZW0oMTI1cHgpO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgIH1cblxuICAgICAgaDUge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oMzBweCk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE4cHgpO1xuICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5yZXNvbHZlZCB7XG4gICAgICAuYmFja3NwaW4sXG4gICAgICAuc2RrIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgfVxuXG4gICAgICAucGx1cyB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQtbCcpIHtcbiAgICBwYWRkaW5nOiAwICRtb2JpbGUtZ3V0dGVyO1xuXG4gICAgYXJ0aWNsZS5jb3B5IHtcbiAgICAgIGgzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2RrLXBsdXMtYmFja3NwaW4ge1xuICAgICAgQGluY2x1ZGUgY2VudGVyKDI2NXB4KTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi10b3A6IHJlbSg3MHB4KTtcbiAgICAgIGhlaWdodDogcmVtKDIwMHB4KTtcblxuICAgICAgLnNkayB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgyNXB4KTtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgIG1heC1oZWlnaHQ6IHJlbSg4MHB4KTtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIGg1IHtcbiAgICAgICAgICBmb250LXNpemU6IHJlbSgxNXB4KTtcbiAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMzBweCk7XG4gICAgICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5wbHVzIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgZm9udC1zaXplOiByZW0oNDBweCk7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDIzcHgpO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oMTVweCk7XG4gICAgICB9XG5cbiAgICAgIC5iYWNrc3BpbiB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgbWF4LWhlaWdodDogcmVtKDgwcHgpO1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgaDUge1xuICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgzMHB4KTtcbiAgICAgICAgICBmb250LXNpemU6IHJlbSgxNXB4KTtcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLnByb2R1Y3Qge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWJhY2tncm91bmQ7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmctYm90dG9tOiAxMCU7XG5cbiAgICBhcnRpY2xlLmNvcHkge1xuICAgICAgaDMge1xuICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDUwcHgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5idXlub3cge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tdG9wOiByZW0oNTBweCk7XG4gICAgfVxuICB9XG59XG4iLCIuc2lnbnVwLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLy8gc3BsaXQgYmdcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGFydGljbGUuY29weSB7XG4gICAgbWF4LXdpZHRoOiByZW0oNjUwcHgpO1xuICAgIC8vIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtYm9yZGVyO1xuICAgIHBhZGRpbmc6IDAgJG1vYmlsZS1ndXR0ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMyUgYXV0byA1JTtcblxuXG4gICAgZGl2LnNpZ251cC1tYXgtY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmc6IHJlbSg2MHB4KSAwO1xuICAgICAgQGluY2x1ZGUgY2VudGVyKDQ1MHB4KTtcbiAgICAgIG1heC13aWR0aDogcmVtKDQ1MHB4KTtcblxuICAgICAgcCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDBweCk7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2cHgpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNTVweCk7XG4gICAgICB9XG4gICAgICAuYnRuIHtcbiAgICAgICAgbWFyZ2luOiAyJSBhdXRvO1xuICAgICAgfVxuXG4gICAgICAvLyAuaW5wdXQtY29udGFpbmVyIHtcbiAgICAgIC8vICAgQGluY2x1ZGUgY2VudGVyKDI1MHB4KTtcbiAgICAgIC8vXG4gICAgICAvLyAgIC8vIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIC8vICAgLm1jLWZpZWxkLWdyb3VwIHtcbiAgICAgIC8vICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAvL1xuICAgICAgLy8gICAgICY6bnRoLWNoaWxkKDQpIHtcbiAgICAgIC8vICAgICAgIC5pbnB1dC1sYWJlbCB7XG4gICAgICAvLyAgICAgICAgIGxlZnQ6IDQ1cHggIWltcG9ydGFudDtcbiAgICAgIC8vICAgICAgIH1cbiAgICAgIC8vICAgICB9XG4gICAgICAvLyAgIH1cbiAgICAgIC8vXG4gICAgICAvLyAgIC5pbnB1dC1sYWJlbCB7XG4gICAgICAvLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgLy8gICAgIHRvcDogLTIwcHg7XG4gICAgICAvLyAgICAgbGVmdDogOTBweDtcbiAgICAgIC8vICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gICAgICAvLyAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAvLyAgICAgZm9udC1zaXplOiByZW0oMTJweCk7XG4gICAgICAvLyAgICAgb3BhY2l0eTogMDtcbiAgICAgIC8vICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XG4gICAgICAvL1xuICAgICAgLy8gICAgICYuZm9ybS1sYWJlbCB7XG4gICAgICAvLyAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgLy8gICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgLy8gICAgIH1cbiAgICAgIC8vICAgfVxuICAgICAgLy9cbiAgICAgIC8vICAgLmlucHV0LWZpZWxkIHtcbiAgICAgIC8vICAgICBtYXJnaW4tYm90dG9tOiByZW0oNDVweCk7XG4gICAgICAvLyAgICAgZm9udC1zaXplOiByZW0oMTVweCk7XG4gICAgICAvLyAgICAgcGFkZGluZy1ib3R0b206IHJlbSgxMHB4KTtcbiAgICAgIC8vICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAvLyAgICAgYm9yZGVyOiBub25lO1xuICAgICAgLy8gICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZW4oZGFya2VuKCRwYXBlciwgNSUpLCAyMCUpO1xuICAgICAgLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgLy8gICAgIHdpZHRoOiAxMDAlO1xuICAgICAgLy8gICAgIG1heC13aWR0aDogcmVtKDI1MHB4KTtcbiAgICAgIC8vXG4gICAgICAvLyAgICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAvLyAgICAgICBjb2xvcjogbGlnaHRlbigkYmFzZS1ncmF5LCAyOCUpO1xuICAgICAgLy8gICAgIH1cbiAgICAgIC8vXG4gICAgICAvLyAgICAgJjpmb2N1cyB7XG4gICAgICAvLyAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yLXByaW1hcnk7XG4gICAgICAvLyAgICAgICBjb2xvcjogZGFya2VuKGxpZ2h0ZW4oJGJhc2UtZ3JheSwgMjglKSwgMjUlKTtcbiAgICAgIC8vXG4gICAgICAvLyAgICAgICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxuICAgICAgLy8gICAgICAgdGV4dGFyZWE6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgLy8gICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgfVxuICAgICAgLy8gICB9XG4gICAgICAvL1xuICAgICAgLy8gICBidXR0b24ge1xuICAgICAgLy8gICAgIHdpZHRoOiAxMDAlO1xuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG4gICAgfVxuICB9XG59XG4iLCIuZHBwIHVsIHtcbiAgbWFyZ2luLWxlZnQ6IHJlbSgzMHB4KTtcblxuICA+IGxpIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgcGFkZGluZzogcmVtKDhweCkgMCByZW0oOHB4KSByZW0oNXB4KTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6ICRwcmltYXJ5LXRleHQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgICAgIGNvbnRlbnQ6IFwiXFwyMDIyXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiByZW0oLTdweCk7XG4gICAgICB0b3A6IHJlbSg3cHgpO1xuICAgICAgZm9udC1zaXplOiByZW0oMzBweCk7XG4gICAgICBtYXJnaW4tbGVmdDogcmVtKC03cHgpO1xuICAgIH1cblxuICAgID4gdWwge1xuICAgICAgcGFkZGluZzogcmVtKDhweCkgMCAwO1xuXG4gICAgICA+IGxpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMnB4KTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6ICdcXEJBJztcbiAgICAgICAgICB0b3A6IHJlbSgxMXB4KTtcbiAgICAgICAgICBsZWZ0OiByZW0oLTVweCk7XG4gICAgICAgICAgZm9udC1zaXplOiByZW0oMjBweCk7XG4gICAgICAgIH1cblxuICAgICAgICA+IHVsID4gbGkge1xuICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnXFwyRCc7XG4gICAgICAgICAgICB0b3A6IHJlbSg2cHgpO1xuICAgICAgICAgICAgbGVmdDogcmVtKC01cHgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgID4gdWwgPiBsaSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICBjb250ZW50OiAnXFwyNUI4JztcbiAgICAgICAgICAgICAgbGVmdDogcmVtKC03cHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLnRyaS1pbWFnZSB7XG4gIC8vIHdpZHRoOiBjYWxjKDEwMCUgLyAzKTtcbiAgQGluY2x1ZGUgc3BhbigxLzMpO1xuICBAaW5jbHVkZSBjZigpO1xuICBAaW5jbHVkZSByYXRpby1ib3goNC8yLjUpO1xuICBmbG9hdDogbGVmdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB0cmFuc2l0aW9uOiBhbGwgMC44cyAkZWFzZS1vdXQtcXVhZDtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICBAaW5jbHVkZSBzcGFuKDEpO1xuICB9XG59XG4iLCIudGVhbS1tZW1iZXJzIHtcbiAgcGFkZGluZy10b3A6IHJlbSg3NXB4KTtcbiAgcGFkZGluZy1ib3R0b206IHJlbSg1MHB4KTtcblxuICAuc2xpY2Uge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkcHJpbWFyeS1ib3JkZXI7XG5cbiAgICAuc2xpY2UtaXRlbSB7XG4gICAgICBwYWRkaW5nLXRvcDogcmVtKDQwcHgpO1xuICAgICAgcGFkZGluZy1ib3R0b206IHJlbSg0MHB4KTtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSg0MHB4KTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHByaW1hcnktYm9yZGVyO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgzMHB4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICB9XG5cbiAgICAvLyAmLmZpcnN0LXNsaWNlIHtcbiAgICAvLyAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgLy8gfVxuXG4gICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgLnNsaWNlLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgIC50ZWFtLW1lbWJlciB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vICYubGFzdC1zbGljZSB7XG4gICAgLy8gICAuc2xpY2UtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICAvLyAgICAgLnRlYW0tbWVtYmVyIHtcbiAgICAvLyAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIC8vICAgICB9XG4gICAgLy8gICB9XG4gICAgLy8gfVxuICB9XG5cbiAgLnRlYW0tbWVtYmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgY2YoKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgLnRlYW0tbWVtYmVyLWltYWdlOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgLm5vdGVkIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiByZW0oMTIwcHgpO1xuICAgIGxlZnQ6IHJlbSgwcHgpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyNjBweDtcbiAgICBiYWNrZ3JvdW5kOiAkaGlnaGxpZ2h0LWJhY2tncm91bmQ7XG4gICAgZm9udC1zaXplOiByZW0oMTJweCk7XG4gICAgYm94LXNoYWRvdzogJHNvZnQtc2hhZG93O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjNlbTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIEBleHRlbmQgLmFuaW1hdGVkLCAuZmFkZS1pbi11cDtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IC4zcztcbiAgICBhbmltYXRpb24tZGVsYXk6IC4xcztcblxuICAgIHNwYW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiA2JSA4JTtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAvLyBib3JkZXI6IDVweCBzb2xpZCBncmVlbjtcblxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB0b3A6IHJlbSgtMTBweCk7XG4gICAgICAgIGxlZnQ6IHJlbSg1N3B4KTtcbiAgICAgICAgei1pbmRleDogMTI7XG4gICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKCRjb2xvcjogI2ZmZik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgcGFkZGluZzogcmVtKDUwcHgpIDcuNSU7XG5cbiAgICAuc2xpY2UsXG4gICAgLnNsaWNlLWl0ZW0ge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cblxuICAgIC50ZWFtLW1lbWJlciB7XG4gICAgICBwYWRkaW5nOiByZW0oMjVweCkgMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcHJpbWFyeS1ib3JkZXI7XG4gICAgfVxuICB9XG59XG5cbi50ZWFtLW1lbWJlci1pbWFnZSB7XG4gIEBpbmNsdWRlIHNwYW4oMS80KTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTVweCk7XG4gICAgYm90dG9tOiAtNDhweDtcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCdpbWcvYWJvdXQvaG92ZXItaWNvbi5zdmcnKSBuby1yZXBlYXQgMCAwO1xuICAgIEBleHRlbmQgLmFuaW1hdGVkLCAuZmFkZS1pbi11cDtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IC4zcztcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgIEBpbmNsdWRlIHNwYW4oMSk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi50ZWFtLW1lbWJlci1wcm9maWxlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiByZW0oMTAwcHgpO1xuICBib3JkZXI6IDVweCBzb2xpZCAjZmZmO1xuICBmaWx0ZXI6Z3JheXNjYWxlKDEwMCUpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC40cyAkZWFzZS1vdXQtYmFjaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6aG92ZXIge1xuICAgIGZpbHRlcjogZ3JheXNjYWxlKDApO1xuICAgIGJveC1zaGFkb3c6ICRzb2Z0LXNoYWRvdztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XG4gIH1cbn1cblxuLnRlYW0tbWVtYmVyLWluZm8ge1xuICBAaW5jbHVkZSBzcGFuKDMvNCk7XG4gIHBhZGRpbmc6IHJlbSgxMHB4KTtcblxuICBoNSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogJGRhcmstdGV4dDtcbiAgICBmb250LXNpemU6IHJlbSgyMHB4KTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtdGhpbjtcbiAgfVxuXG4gIC50ZWFtLW1lbWJlci10aXRsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IHJlbSgyMHB4KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgIEBpbmNsdWRlIHNwYW4oMSk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLnRlYW0tbWVtYmVyLXRpdGxlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICB9XG59XG5cbi50ZWFtLW1lbWJlci1zb2NpYWwge1xuICBtYXJnaW4tbGVmdDogcmVtKDE1cHgpO1xuICBwYWRkaW5nOiByZW0oMXB4KSByZW0oNHB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHF1aWV0LWljb247XG4gIGJvcmRlci1yYWRpdXM6IHJlbSgycHgpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIGVhc2UtaW4tb3V0IDAuM3M7XG5cbiAgc3ZnIHtcbiAgICB3aWR0aDogcmVtKDEycHgpO1xuICAgIGhlaWdodDogcmVtKDEycHgpO1xuICAgIGZpbGw6ICRoaWdobGlnaHQtYmFja2dyb3VuZDtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLXRleHQ7XG4gIH1cbn1cblxuLnRlYW0tbWVtYmVyLXRpdGxlIHtcbiAgbWFyZ2luOiByZW0oOHB4KSAwIHJlbSg1cHgpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAkcXVpZXQtdGV4dDtcbiAgZm9udC1zaXplOiByZW0oMTJweCk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4udGVhbS1tZW1iZXItYmlvIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IHJlbSgxNHB4KTtcbn1cbiIsIi5zbGljZSB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkOyAvLyBtYWtlcyBpdGVtcyBlcXVhbCBzaXplcyBhdXRvbWF0aWNhbGx5XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICYgPiAuc2xpY2UtaXRlbSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG4gICAgfVxuICB9XG59XG5cbi5zbGljZS1pdGVtIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbiIsInNlY3Rpb24uYnVsbGV0cy13aXRoLWZlYXR1cmVkLWltYWdlIHtcbiAgQGluY2x1ZGUgY2YoKTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWJhY2tncm91bmQ7XG4gIHBhZGRpbmc6IHJlbSg5MHB4KSAxMCUgMCAxMCU7XG5cbiAgLm1haW4taW1hZ2Uge1xuICAgIEBpbmNsdWRlIHNwYW4oMS8yKTtcbiAgICBtYXJnaW4tdG9wOiByZW0oMjBweCk7XG5cbiAgICAuc2hhZG93IHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtNDBweDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogOThweDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaW1nL2dvYS1zaGFkb3cucG5nJyk7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG8gIWltcG9ydGFudDtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWSguMSk7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjZzICRlYXNlLW91dC1iYWNrO1xuICAgIH1cblxuICAgIGZpZ3VyZSB7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjZzICRlYXNlLW91dC1iYWNrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgb3BhY2l0eTogMDtcblxuICAgIH1cblxuICAgICYucmVzb2x2ZWQge1xuICAgICAgZmlndXJlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgICAgLnNoYWRvdyB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPnRhYmxldC1sXCIpIHtcbiAgICAgIEBpbmNsdWRlIHNoaWZ0KDEvMik7XG4gICAgICBsZWZ0OiA1MCU7XG5cbiAgICAgIGZpZ3VyZSB7XG4gICAgICAgIGhlaWdodDogcmVtKDUzNXB4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0LWxcIikge1xuICAgICAgQGluY2x1ZGUgdW5zaGlmdCgpO1xuICAgICAgQGluY2x1ZGUgc3RhY2soKTtcbiAgICAgIC8vIEBpbmNsdWRlIHJhdGlvLWJveCgyLzEuNSk7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgZmlndXJlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIEBpbmNsdWRlIHJhdGlvLWJveCgxLzEpO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmNvcHkge1xuICAgIEBpbmNsdWRlIHNwYW4oMS8yKTtcblxuICAgIGgyIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBHcmFwaGlrIFRoaW4gV2ViO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDQwcHgpO1xuICAgICAgY29sb3I6IGRhcmtlbigkcHJpbWFyeS10ZXh0LCA1MCUpO1xuICAgICAgbWFyZ2luOiByZW0oMjVweCkgMCAwIDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMTVweCk7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBtYXJnaW4tdG9wOiByZW0oNTBweCk7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0oNjBweCk7XG4gICAgICBtYXgtd2lkdGg6IHJlbSg0ODBweCk7XG4gICAgICBmb250LXNpemU6IHJlbSgxN3B4KTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgzMHB4KTtcbiAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG4gICAgfVxuXG4gICAgaDQge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6IHJlbSgxNHB4KTtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgzMHB4KTtcbiAgICAgIGNvbG9yOiBkYXJrZW4oJHByaW1hcnktdGV4dCwgMTAlKTtcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICAvLyBAaW5jbHVkZSB0ZXh0LWxpc3QoKTtcbiAgICAgIEBpbmNsdWRlIGNvbCgxLzEsICRndXR0ZXI6IDApO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxMDBweCk7XG4gICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgxNXB4KTtcblxuICAgICAgbGk6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwi4oCiIFwiO1xuICAgICAgICBmb250LXNpemU6IHJlbSgyNXB4KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gICAgICAgIGxlZnQ6IC0xNXB4O1xuICAgICAgICB0b3A6LTFweDtcbiAgICAgIH1cblxuICAgICAgbGkge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMzVweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjBweCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTVweCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMHB4KTtcbiAgICAgICAgQGluY2x1ZGUgY29sKDEvMiwgJGd1dHRlcjogMCwgJGN5Y2xlOiAyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIj50YWJsZXQtbFwiKSB7XG4gICAgICBAaW5jbHVkZSBzaGlmdCgtMS8yKTtcbiAgICAgIGxlZnQ6IC01MCU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldC1sXCIpIHtcbiAgICAgIHBhZGRpbmc6IDEuNSU7XG4gICAgICBAaW5jbHVkZSB1bnNoaWZ0KCk7XG4gICAgICBAaW5jbHVkZSBzdGFjaygpO1xuXG4gICAgICBwIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgfVxuXG4gICAgICB1bCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgzMHB4KTtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgQGluY2x1ZGUgY29sKDEvMSwgJGd1dHRlcjogMCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ2FsbGVyeS1ncmlkIHtcbiAgICBAaW5jbHVkZSBjb2woMS8xLCAkZ3V0dGVyOiAwKTtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oMTAwcHgpO1xuXG4gICAgZGl2IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDAlO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNjQlO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAwcHggdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgLjNzICRlYXNlLW91dC1xdWFkO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAzcHggJGNvbG9yLXByaW1hcnk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnpvb20taW1nLXdyYXAge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JleTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6bm90KDpmaXJzdC1vZi10eXBlLCA6bGFzdC1vZi10eXBlKSB7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0LWxcIikge1xuXG4gICAgICBkaXYge1xuICAgICAgICBAaW5jbHVkZSBjb2woMS82LCAkZ3V0dGVyOiAxLjc1LCAkY3ljbGU6IDYpO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogMTAwLjMlO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA2NCU7XG4gICAgICAgIH1cblxuICAgICAgICBpbWcge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0LWxcIikge1xuICAgIHBhZGRpbmc6IHJlbSg2MHB4KSA1JSAwIDUlO1xuXG4gICAgZGl2IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNXB4KTtcbiAgICB9XG4gIH1cbn1cbiIsImltZ1tkYXRhLWFjdGlvbj1cInpvb21cIl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGN1cnNvcjogLXdlYmtpdC16b29tLWluO1xuICBjdXJzb3I6IC1tb3otem9vbS1pbjtcbn1cbi56b29tLWltZyxcbi56b29tLWltZy13cmFwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA2NjY7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDMwMG1zO1xuICAgICAgIC1vLXRyYW5zaXRpb246IGFsbCAzMDBtcztcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMzAwbXM7XG59XG5pbWcuem9vbS1pbWcge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGN1cnNvcjogLXdlYmtpdC16b29tLW91dDtcbiAgY3Vyc29yOiAtbW96LXpvb20tb3V0O1xufVxuLnpvb20tb3ZlcmxheSB7XG4gIHotaW5kZXg6IDQyMDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBmaWx0ZXI6IFwiYWxwaGEob3BhY2l0eT0wKVwiO1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246ICAgICAgb3BhY2l0eSAzMDBtcztcbiAgICAgICAtby10cmFuc2l0aW9uOiAgICAgIG9wYWNpdHkgMzAwbXM7XG4gICAgICAgICAgdHJhbnNpdGlvbjogICAgICBvcGFjaXR5IDMwMG1zO1xufVxuLnpvb20tb3ZlcmxheS1vcGVuIC56b29tLW92ZXJsYXkge1xuICBmaWx0ZXI6IFwiYWxwaGEob3BhY2l0eT0xMDApXCI7XG4gIG9wYWNpdHk6IDE7XG59XG4uem9vbS1vdmVybGF5LW9wZW4sXG4uem9vbS1vdmVybGF5LXRyYW5zaXRpb25pbmcge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4iLCJmb290ZXJbcm9sZT1cImNvbnRlbnRpbmZvXCJdIHtcbiAgcGFkZGluZzogcmVtKDc1cHgpICRtb2JpbGUtZ3V0dGVyIHJlbSg0MHB4KSAkbW9iaWxlLWd1dHRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG9mZi13aGl0ZTtcblxuICAuY29weXJpZ2h0IHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldC1sJykge1xuICAgICAgQGluY2x1ZGUgc2hpZnQoLTEvMyk7XG4gICAgfVxuICAgIEBpbmNsdWRlIHNwYW4oMS8zKTtcblxuICAgIHAge1xuICAgICAgZm9udC1zaXplOiByZW0oMTRweCk7XG4gICAgICBjb2xvcjogZGFya2VuKCRwYXBlciwgNDAlKTtcbiAgICB9XG5cbiAgICBwOmZpcnN0LW9mLXR5cGUge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgyNXB4KTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgcDpsYXN0LW9mLXR5cGUge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgcGFkZGluZy10b3A6IHJlbSgzcHgpO1xuXG4gICAgICBsaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0cHgpO1xuICAgICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgICAmOm50aC1vZi10eXBlKDEpIHtcbiAgICAgICAgICBwYWRkaW5nOiAwIHJlbSgxMHB4KSAwIDA7XG4gICAgICAgIH1cbiAgICAgICAgcGFkZGluZzogMCByZW0oMTBweCk7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGRhcmtlbigkcGFwZXIsIDI1JSk7XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuXG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogbGlnaHRlbigkY29sb3ItcHJpbWFyeSwgMTUlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuc29jaWFsLW1lZGlhIHtcbiAgICBAaW5jbHVkZSBzcGFuKDEvMyk7XG4gICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQtbCcpIHtcbiAgICAgIEBpbmNsdWRlIHNoaWZ0KC0xLzMpO1xuICAgIH1cbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgbWF4LWhlaWdodDogcmVtKDUwcHgpO1xuXG4gICAgdWwge1xuICAgICAgQGluY2x1ZGUgY2VudGVyKDIxNnB4KTtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAvLyBtYXJnaW4tdG9wOiByZW0oLTQwcHgpO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBkYXJrZW4oJHBhcGVyLCAxMCUpO1xuICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcblxuICAgICAgJjpudGgtb2YtdHlwZSgxKSB7XG5cbiAgICAgIH1cblxuICAgICAgJjpudGgtb2YtdHlwZSgzKSB7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIH1cblxuICAgICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyNXB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMjVweDtcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICBmaWxsOiAkbGlnaHQtZ3JheTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6IGRhcmtlbigkbGlnaHQtZ3JheSwgMjAlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY2xlYXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG5cbiAgLnN1YnNjcmliZS1idG4ge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc+dGFibGV0LWwnKSB7XG4gICAgICBAaW5jbHVkZSBzaGlmdCgyLzMpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBzcGFuKDEvMyk7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtKDQ1cHgpO1xuXG4gICAgZm9ybSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBidXR0b24ge1xuICAgICAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDEzcHgpO1xuICAgICAgY29sb3I6IGRhcmtlbigkbGlnaHQtZ3JheSwgMjAlKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiAzcHggc29saWQgZGFya2VuKCRwYXBlciwgMTAlKTtcbiAgICAgIHBhZGRpbmc6IHJlbSgxNXB4KSByZW0oNTBweCkgcmVtKDE1cHgpIHJlbSgxOHB4KTtcbiAgICAgIHdpZHRoOiByZW0oMzAwcHgpO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKGRhcmtlbigkcGFwZXIsIDEwJSksIDEwJSk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXQtbFwiKSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJ1dHRvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDZweDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogZGFya2VuKCRsaWdodC1ncmF5LCA1JSk7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICAgLmFycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgJGxpZ2h0LWdyYXk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiAgICAgICAgd2lkdGg6IHJlbSgxMHB4KTtcbiAgICAgICAgaGVpZ2h0OiByZW0oMTBweCk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICAuYXJyb3cge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktbGluaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQtbCcpIHtcbiAgICBoZWlnaHQ6IHJlbSgzMjBweCk7XG5cbiAgICAuY29weXJpZ2h0IHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIEBpbmNsdWRlIHN0YWNrKCk7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0oMzBweCk7XG5cbiAgICAgIHVsIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDIwcHgpO1xuICAgICAgICBAaW5jbHVkZSBzdGFjaygpO1xuICAgICAgICBAaW5jbHVkZSBjZW50ZXIoMjYwcHgpO1xuICAgICAgfVxuXG4gICAgICBwOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBAaW5jbHVkZSBzdGFjaygpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjBweCk7XG4gICAgICB9XG5cbiAgICAgIHAge1xuICAgICAgICBAaW5jbHVkZSBzdGFjaygpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjBweCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNvY2lhbC1tZWRpYSB7XG4gICAgICBAaW5jbHVkZSBzdGFjaygpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDMwcHgpO1xuXG4gICAgICBsaSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgwcHgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zdWJzY3JpYmUtYnRuIHtcbiAgICAgIEBpbmNsdWRlIHN0YWNrKCk7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIEBpbmNsdWRlIGNlbnRlcigyOTBweCk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0LWwnKSB7XG4gICAgbWluLWhlaWdodDogcmVtKDM4MHB4KTtcbiAgfVxufVxuIiwiaGVhZGVyW3JvbGU9XCJiYW5uZXJcIl0ge1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gIHotaW5kZXg6IDE7XG5cbiAgLm5hdi1zb2NpYWwtbWVkaWEge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAud3JhcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5sb2dvLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogcmVtKDQwcHgpO1xuICAgIGhlaWdodDogcmVtKDcwcHgpO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiByZW0oMTkycHgpO1xuICB9XG5cbiAgdWwubmF2aWdhdGlvbi1jb250YWluZXIge1xuICAgIGZsb2F0OiByaWdodDtcblxuICAgIGxpIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDExcHgpO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDEwcHgpO1xuICAgICAgfVxuXG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcblxuICAgICAgICAmOm5vdCguYnRuKSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcGFkZGluZzogcmVtKDcwcHgpIHJlbSgzMHB4KTtcbiAgICAgICAgICBmb250LXNpemU6IHJlbSgxNnB4KTtcblxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+dGFibGV0LWwnKSB7XG5cbiAgICAgICAgICAgIC8vIGxpbmsgdW5kZXJsaW5lIGZvciBob3ZlciBlZmZlY3RcbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiA1MCU7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAtOHB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAuMik7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICBzcGFuOjphZnRlciB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgc3Bhbjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmJ0biB7XG4gICAgICAgICAgQGV4dGVuZCAuYnRuO1xuICAgICAgICAgIG1hcmdpbjogcmVtKDUycHgpIDAgMCByZW0oMzBweCk7XG4gICAgICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQtbCcpIHtcbiAgICAubmF2LWJ1eS1ub3cge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG5cbiAgJi5oZWFkZXItLXBpbm5lZCB7XG4gICAgei1pbmRleDogNDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2UtaW4tb3V0O1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggNXB4IHJnYmEoYmxhY2ssIC4wNSk7XG4gICAgLy8gdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuXG4gICAgLndyYXAge1xuICAgICAgLmhhbS13cmFwIHtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgQGluY2x1ZGUgYnVyZ2VyKCR3aWR0aDogMzBweCwgJGhlaWdodDogMnB4LCAkZ3V0dGVyOiA3cHgsICRjb2xvcjogJHN0ZWVsLCAkYm9yZGVyLXJhZGl1czogMCwgJHRyYW5zaXRpb24tZHVyYXRpb246IC4zcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubG9nby1jb250YWluZXIge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogcmVtKDkwcHgpO1xuICAgICAgaGVpZ2h0OiByZW0oMjlweCk7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgcGFkZGluZzogcmVtKDE0cHgpIDA7XG5cbiAgICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiA3NXB4O1xuICAgICAgICBoZWlnaHQ6IHJlbSgyOXB4KTtcbiAgICAgIH1cblxuICAgICAgcGF0aC5sZXR0ZXJzIHtcbiAgICAgICAgZmlsbDogJHN0ZWVsO1xuICAgICAgfVxuICAgIH1cblxuICAgIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIHtcbiAgICAgIGxpIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgJjpub3QoLmJ0bikge1xuICAgICAgICAgICAgY29sb3I6ICRzdGVlbDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgyMHB4KSByZW0oMzBweCk7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxM3B4KTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3Bhbjo6YWZ0ZXIge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICYuYnRuIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgICAgfVxuXG5cbiAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gICAgICAgICAgICBzcGFuOjphZnRlciB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi5idG4ge1xuICAgICAgICAgICAgbWFyZ2luOiAwIHJlbSgyMHB4KTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oN3B4KSByZW0oMjBweCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci1wcmltYXJ5O1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTJweCk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJGNvbG9yLXByaW1hcnk7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEycHgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci1wcmltYXJ5O1xuICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMnB4KTtcbiAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL3NlY29uZGFyeSBuYXYgYmVsb3cgdGFibGV0IC0gZG8gbm90IHJlbW92ZVxuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0LWwnKSB7XG4gICAgICAubG9nby1jb250YWluZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oMTBweCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5oZWFkZXItLXRvcCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQtbCcpIHtcblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICB6LWluZGV4OiAxMDtcblxuICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDI7XG5cbiAgICAgICAgcGF0aC5sZXR0ZXJzIHtcbiAgICAgICAgICBmaWxsOiAkd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciB7XG4gICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxNXZoO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgIC8vIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG5cbiAgICAgICAgICBsaSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgyMHB4KSByZW0oMTVweCk7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgIEBleHRlbmQgLmFuaW1hdGVkLCAuZmFkZS1pbi11cDtcblxuICAgICAgICAgICAgICAvL3ZlcnRpY2FsIG1lZGlhIHF1ZXJ5IHRoYXQgYWRkcmVzc2VzIGhlaWdodCBpc3N1ZSBvbiBpUGhvbmUgNHNcbiAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKCBtYXgtaGVpZ2h0OiA1MDBweCApIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0oMTVweCkgcmVtKDE1cHgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBmbHVpZC10eXBlKCRtaW4tZm9udC1zaXplOiAzMnB4LCAkbWF4LWZvbnQtc2l6ZTogNDhweCwgJGxvd2VyLXJhbmdlOiAzMjBweCwgJHVwcGVyLXJhbmdlOiAxMDIzcHgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgxKSBhIHtcbiAgICAgICAgICAgICAgY29sb3I6ICNjNjM5MzY7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIGEge1xuICAgICAgICAgICAgICBjb2xvcjogIzk3Mzc3ZDtcbiAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAuMXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpIGEge1xuICAgICAgICAgICAgICBjb2xvcjogIzY0Mzg4MDtcbiAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAuMnM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDQpIGEge1xuICAgICAgICAgICAgICBjb2xvcjogIzI1NmJiNztcbiAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAuM3M7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDUpIGEge1xuICAgICAgICAgICAgICBjb2xvcjogIzE5OThlODtcbiAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAuNHM7ICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoJHN0aWxldHRvLCAuNCksIHJnYmEoJHB1cnBsZSwgLjQpKTtcblxuICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLnJlc29sdmVkIHtcbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm5hdi1zb2NpYWwtbWVkaWEge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICBib3R0b206IDMwcHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIHdpZHRoOiAyMTVweDtcbiAgICAgICAgei1pbmRleDogMztcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgbGlnaHRlbigjMzEzOTNDLCAyMCUpO1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXG4gICAgICAgICAgJjpudGgtb2YtdHlwZSgzKSB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyNXB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG5cbiAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICBmaWxsOiBsaWdodGVuKCMzMTM5M0MsIDIwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkd2hpdGU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvL3ZlcnRpY2FsIG1lZGlhIHF1ZXJ5IHRoYXQgYWRkcmVzc2VzIGhlaWdodCBpc3N1ZSBvbiBpUGhvbmUgNHNcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKCBtYXgtaGVpZ2h0OiA1MDBweCApIHtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAud3JhcCB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKC43KTtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZy10b3A6IHJlbSg1cHgpO1xuXG4gICAgICAuaGFtLXdyYXAge1xuICAgICAgICB3aWR0aDogNjBweDtcbiAgICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBAaW5jbHVkZSBidXJnZXIoJHdpZHRoOiAzMHB4LCAkaGVpZ2h0OiAycHgsICRndXR0ZXI6IDdweCwgJGNvbG9yOiAkd2hpdGUsICRib3JkZXItcmFkaXVzOiAwLCAkdHJhbnNpdGlvbi1kdXJhdGlvbjogLjNzKTtcbiAgICAgICAgICB0b3A6IDI0cHg7XG4gICAgICAgICAgbGVmdDogMTlweDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgIC8vIHdpZHRoOiAyMnB4O1xuICAgICAgICAgIC8vIGhlaWdodDogMjBweDtcbiAgICAgICAgICAvLyBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAvLyBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgICAgLy8gcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIC8vIHRvcDogMjJweDtcbiAgICAgICAgICAvLyBsZWZ0OiAxOXB4O1xuICAgICAgICAgIC8vIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgIC8vIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMDAwbXMgY3ViaWMtYmV6aWVyKDAuNTUsMCwwLjEsMSkgMzUwbXMsIGxlZnQgNDAwbXMgY3ViaWMtYmV6aWVyKDAuNTUsMCwwLjEsMSkgNDUwbXMsIHRvcCA0MDBtcyBjdWJpYy1iZXppZXIoMC41NSwwLDAuMSwxKSA0NTBtcztcbiAgICAgICAgICAvLyB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgICAgICAgIC8vXG4gICAgICAgICAgLy8gJjo6YWZ0ZXIsICY6OmJlZm9yZSB7XG4gICAgICAgICAgLy8gICBjb250ZW50OiAnJztcbiAgICAgICAgICAvLyAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIC8vICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgLy8gICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAvLyAgIGJhY2tncm91bmQ6IGJsdWU7XG4gICAgICAgICAgLy8gICAvLyBiYWNrZ3JvdW5kOiBsaWdodGVuKCRwYXBlciwgMjAlKTtcbiAgICAgICAgICAvLyAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgICAgLy8gICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuNTUsMCwwLjEsMSkgNDUwbXM7XG4gICAgICAgICAgLy8gfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc3ZnIHtcbiAgICAgICAgLy8gICB3aWR0aDogMTAwJTtcbiAgICAgICAgLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIC8vICAgbGVmdDogNHB4O1xuICAgICAgICAvLyAgIHRvcDogMnB4O1xuICAgICAgICAvLyAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgLy9cbiAgICAgICAgLy8gICAjcGF0aCB7XG4gICAgICAgIC8vICAgICBzdHJva2UtZGFzaGFycmF5OiAxOS41IDE5MDtcbiAgICAgICAgLy8gICAgIC8vIHN0cm9rZTogbGlnaHRlbigkcGFwZXIsIDIwJSk7XG4gICAgICAgIC8vICAgICB0cmFuc2l0aW9uOiA0MDBtcyBjdWJpYy1iZXppZXIoMC41NSwwLDAuMSwxKSA0NTBtcztcbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vIH1cbiAgICAgICAgJi5pcy1hY3RpdmUge1xuXG4gICAgICAgICAgLy8gc3ZnICNwYXRoIHtcbiAgICAgICAgICAvLyAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtNTQ7XG4gICAgICAgICAgLy8gICBzdHJva2UtZGFzaGFycmF5OiAxNTUgMTkwO1xuICAgICAgICAgIC8vIH1cbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1cmdlci10by1jcm9zcztcblxuICAgICAgICAgICAgLy8gdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG4gICAgICAgICAgICAvLyBsZWZ0OiAyM3B4O1xuICAgICAgICAgICAgLy8gdG9wOiAyM3B4O1xuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vICY6OmJlZm9yZSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSByb3RhdGVaKC00NWRlZyk7IH1cbiAgICAgICAgICAgIC8vICY6OmFmdGVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpIHJvdGF0ZVooNDVkZWcpOyB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmxvZ28tY29udGFpbmVyIHtcbiAgICAgIHotaW5kZXg6IDIwMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IHJlbSgxMjBweCk7XG4gICAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuXG4gICAgICBzdmcge1xuICAgICAgICB6LWluZGV4OiAyMDEgIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiByZW0oNDNweCk7XG4gICAgICB9XG5cbiAgICAgIHBhdGgubGV0dGVycyB7XG4gICAgICAgIGZpbGw6ICR3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4ub3ZlcmZsb3ctaGlkZGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm92ZXJsYXkge1xuICBkaXNwbGF5OiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzIGVhc2U7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgjMDAwLCAuOSk7XG4gIHotaW5kZXg6IDE7XG5cbiAgJi5pcy1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5kYXJrIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLDAsMCwuNikgMCUsIHJnYmEoMCwwLDAsMCkgMTAwJSk7XG5cbiAgLmxvZ28tY29udGFpbmVyIHtcbiAgICBwYXRoLmxldHRlcnMge1xuICAgICAgZmlsbDogJHdoaXRlO1xuICAgIH1cbiAgfVxuXG4gIHVsLm5hdmlnYXRvbi1jb250YWluZXIge1xuICAgIGxpIHtcbiAgICAgIGEge1xuICAgICAgICAmOm5vdCguYnRuKSB7XG4gICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQtbCcpIHtcbiAgICAud3JhcCB7XG4gICAgICAuaGFtLXdyYXAge1xuXG4gICAgICAgIC8vIHNwYW4ge1xuICAgICAgICAvLyAgICY6OmFmdGVyLCAmOjpiZWZvcmUge1xuICAgICAgICAvLyAgICAgYmFja2dyb3VuZDogbGlnaHRlbigkcGFwZXIsIDIwJSkgIWltcG9ydGFudDtcbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy8gc3ZnIHtcbiAgICAgICAgLy8gICAjcGF0aCB7XG4gICAgICAgIC8vICAgICBzdHJva2U6IGxpZ2h0ZW4oJHBhcGVyLCAyMCUpICFpbXBvcnRhbnQ7XG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmhlYWRlcltyb2xlPVwiYmFubmVyXCJdLmxpZ2h0IHtcbiAgYmFja2dyb3VuZDogbm9uZTtcblxuICAvL3NwZWNpZmljIHN0eWxlcyB3aGVuIGhlYWRlciBpcyBwaW5uZWRcbiAgJi5oZWFkZXItLXBpbm5lZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcblxuICAgIHVsLm5hdmlnYXRpb24tY29udGFpbmVyIGxpIGEge1xuICAgICAgJjpub3QoLmJ0bikge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuOjphZnRlciB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubG9nby1jb250YWluZXIge1xuICAgIHBhdGgubGV0dGVycyB7XG4gICAgICBmaWxsOiAkc3RlZWw7XG4gICAgfVxuICB9XG5cblxuICB1bC5uYXZpZ2F0aW9uLWNvbnRhaW5lciB7XG4gICAgbGkge1xuICAgICAgYSB7XG5cbiAgICAgICAgLy8gY29sb3I6ICRzdGVlbDtcbiAgICAgICAgJjpub3QoLmJ0bikge1xuICAgICAgICAgIGNvbG9yOiAkc3RlZWw7XG5cbiAgICAgICAgICBzcGFuOjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzdGVlbCwgLjIpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIHNwYW46OmFmdGVyIHtcbiAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQtbCcpIHtcbiAgICAud3JhcCB7XG4gICAgICAuaGFtLXdyYXAge1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBAaW5jbHVkZSBidXJnZXIoJHdpZHRoOiAzMHB4LCAkaGVpZ2h0OiAycHgsICRndXR0ZXI6IDdweCwgJGNvbG9yOiAkc3RlZWwsICRib3JkZXItcmFkaXVzOiAwLCAkdHJhbnNpdGlvbi1kdXJhdGlvbjogLjNzKTtcblxuICAgICAgICAgIC8vICY6OmFmdGVyLCAmOjpiZWZvcmUge1xuICAgICAgICAgIC8vICAgYmFja2dyb3VuZDogbGlnaHRlbigkc3RlZWwsIDIwJSkgIWltcG9ydGFudDtcbiAgICAgICAgICAvLyB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXJnZXItdG8tY3Jvc3M7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc3ZnIHtcbiAgICAgICAgLy8gICAjcGF0aCB7XG4gICAgICAgIC8vICAgICBzdHJva2U6IGxpZ2h0ZW4oJHN0ZWVsLCAyMCUpICFpbXBvcnRhbnQ7XG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBCdXJnZXIgcGFydHNcbi8vXG4vLyAoLS0tKSB0b3AgICAgLT4gJjo6YmVmb3JlXG4vLyBbLS0tXSBtaWRkbGUgLT4gJlxuLy8gKC0tLSkgYm90dG9tIC0+ICY6OmFmdGVyXG5cblxuLy8gVmVuZG9yIHByZWZpeGVzXG4kc2Fzcy1idXJnZXItYWRkLXZlbmRvci1wcmVmaXhlczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gQnVyZ2VyXG5AbWl4aW4gYnVyZ2VyKCR3aWR0aDogMzBweCwgJGhlaWdodDogNXB4LCAkZ3V0dGVyOiAzcHgsICRjb2xvcjogIzAwMCwgJGJvcmRlci1yYWRpdXM6IDAsICR0cmFuc2l0aW9uLWR1cmF0aW9uOiAuM3MpIHtcbiAgICAkYnVyZ2VyLWhlaWdodDogJGhlaWdodCAhZ2xvYmFsO1xuICAgICRidXJnZXItZ3V0dGVyOiAkZ3V0dGVyICFnbG9iYWw7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLXRvcDogJGhlaWdodCArICRndXR0ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogJGhlaWdodCArICRndXR0ZXI7XG5cbiAgICBAaWYgJHNhc3MtYnVyZ2VyLWFkZC12ZW5kb3ItcHJlZml4ZXMge1xuICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgfVxuICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgJiwgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogJHdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgQGlmICRib3JkZXItcmFkaXVzICE9IDAge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHNhc3MtYnVyZ2VyLWFkZC12ZW5kb3ItcHJlZml4ZXMge1xuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgICAgICAgICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgLW1vei10cmFuc2Zvcm07XG4gICAgICAgICAgICAtby10cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCAtby10cmFuc2Zvcm07XG4gICAgICAgIH1cbiAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgdHJhbnNmb3JtO1xuXG4gICAgICAgIEBpZiAkc2Fzcy1idXJnZXItYWRkLXZlbmRvci1wcmVmaXhlcyB7XG4gICAgICAgICAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246ICR0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgICAgICAgICAgLW1vei10cmFuc2l0aW9uLWR1cmF0aW9uOiAkdHJhbnNpdGlvbi1kdXJhdGlvbjtcbiAgICAgICAgICAgIC1vLXRyYW5zaXRpb24tZHVyYXRpb246ICR0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246ICR0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgdG9wOiAtKCRoZWlnaHQgKyAkZ3V0dGVyKTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIHRvcDogJGhlaWdodCArICRndXR0ZXI7XG4gICAgfVxufVxuXG5cbi8vIFNlbGVjdCBwYXJ0cyBvZiB0aGUgYnVyZ2VyXG5AbWl4aW4gYnVyZ2VyLXBhcnRzIHtcbiAgICAmLCAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYnVyZ2VyLXRvcCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYnVyZ2VyLW1pZGRsZSB7XG4gICAgJiB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGJ1cmdlci1ib3R0b20ge1xuICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5cbi8vIEJ1cmdlciBhbmltYXRpb25zXG5AbWl4aW4gYnVyZ2VyLXRvLWNyb3NzIHtcbiAgICAmIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIEBpZiAkc2Fzcy1idXJnZXItYWRkLXZlbmRvci1wcmVmaXhlcyB7XG4gICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgkYnVyZ2VyLWd1dHRlciArICRidXJnZXItaGVpZ2h0KSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJGJ1cmdlci1ndXR0ZXIgKyAkYnVyZ2VyLWhlaWdodCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJGJ1cmdlci1ndXR0ZXIgKyAkYnVyZ2VyLWhlaWdodCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgkYnVyZ2VyLWd1dHRlciArICRidXJnZXItaGVpZ2h0KSByb3RhdGUoNDVkZWcpO1xuICAgICAgICB9XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkYnVyZ2VyLWd1dHRlciArICRidXJnZXItaGVpZ2h0KSByb3RhdGUoNDVkZWcpO1xuICAgIH1cbiAgICAmOjphZnRlciB7XG4gICAgICAgIEBpZiAkc2Fzcy1idXJnZXItYWRkLXZlbmRvci1wcmVmaXhlcyB7XG4gICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtKCRidXJnZXItZ3V0dGVyICsgJGJ1cmdlci1oZWlnaHQpKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0oJGJ1cmdlci1ndXR0ZXIgKyAkYnVyZ2VyLWhlaWdodCkpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtKCRidXJnZXItZ3V0dGVyICsgJGJ1cmdlci1oZWlnaHQpKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtKCRidXJnZXItZ3V0dGVyICsgJGJ1cmdlci1oZWlnaHQpKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgfVxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSgkYnVyZ2VyLWd1dHRlciArICRidXJnZXItaGVpZ2h0KSkgcm90YXRlKC00NWRlZyk7XG4gICAgfVxufVxuIiwiZGl2LmRldi1mb290ZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogcmVtKDMzMHB4KTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBAaW5jbHVkZSBjb3ZlcigpO1xuICBAaW5jbHVkZSBjZigpO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bW9iaWxlLWwnKSB7XG4gICAgcGFkZGluZy1ib3R0b206IHJlbSg1MHB4KTtcbiAgfVxuXG4gIGRpdi5kZi13cmFwIHtcbiAgICB3aWR0aDogcmVtKDc1MHB4KTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nLXRvcDogcmVtKDU1cHgpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0LWwnKSB7XG4gICAgICB3aWR0aDogOTAlO1xuICAgIH1cblxuICAgIGg1IHtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0oMzBweCk7XG4gICAgfVxuXG4gICAgZGl2LnN1cHBvcnQge1xuICAgICAgQGluY2x1ZGUgc3BhbigxLzQpO1xuICAgICAgbWluLWhlaWdodDogcmVtKDE2MHB4KTtcbiAgICAgIHBhZGRpbmctdG9wOiByZW0oNDBweCk7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjUwbXM7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bW9iaWxlLWwnKSB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4oMS8yKTtcbiAgICAgIH1cblxuICAgICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IHJlbSg1MHB4KTtcbiAgICAgICAgaGVpZ2h0OiByZW0oNTBweCk7XG5cbiAgICAgICAgZyB7XG4gICAgICAgICAgc3Ryb2tlOiByZ2JhKCR3aGl0ZSwgLjg1KTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBzdHJva2UgMjUwbXM7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc3BhbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDE1cHgpO1xuICAgICAgICBjb2xvcjogcmdiYSgkd2hpdGUsIC44KTtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTRweCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjUwbXM7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKGJsYWNrLCAuMik7XG5cbiAgICAgICAgc3ZnIGcge1xuICAgICAgICAgIHN0cm9rZTogJHdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwic2VjdGlvbi5jb250ZW50LTQwNCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDgwdmg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCggMTU1ZGVnLCAjZWU0MTJhLCAjYWUzOTM3LCAjNzYzZTc0LCAjMmQ1ZWE1LCAjMDM5YmQ0ICk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IC41cyBlYXNlO1xuXG5cbiAgLmNvcHkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMjAwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIGNlbnRlcig2NTBweCk7XG4gICAgdG9wOiA0NSU7XG4gICAgdHJhbnNpdGlvbjogdG9wIC41cyBlYXNlO1xuICAgIHBhZGRpbmc6IDAgNSU7XG5cbiAgICBoMSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBmb250LWZhbWlseTogR3JhcGhpayBUaGluIFdlYjtcbiAgICAgIEBpbmNsdWRlIGhlYXZ5LWFudGlhbGlhcygpO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIEBleHRlbmQgLmFuaW1hdGVkLCAuZmFkZS1pbi11cDtcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogMC41cztcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgICBjb2xvcjogcmdiYSgkd2hpdGUsIC42KTtcbiAgICAgIEBleHRlbmQgLmFuaW1hdGVkLCAuZmFkZS1pbjtcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogMXM7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsZWZ0OiBjYWxjKDUwJSAtIDc1cHgpO1xuICAgICAgQGV4dGVuZCAuYW5pbWF0ZWQsIC5mYWRlLWluLXVwO1xuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAxLjVzO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgaGVpZ2h0OiA2NXZoO1xuXG4gICAgLmNvcHkge1xuICAgICAgdG9wOiAzMCU7XG4gICAgfVxuICB9XG59XG4iLCJzZWN0aW9uLmRldi1oZWFkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy10b3A6ICRuYXYtaGVpZ2h0O1xuICBAaW5jbHVkZSBjb3ZlcigpO1xuXG4gIGRpdi5kaC13cmFwIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKGJsYWNrLCAuMik7XG4gICAgcGFkZGluZzogcmVtKDI1cHgpICRtb2JpbGUtZ3V0dGVyO1xuXG4gICAgaDUge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtdGhpbjtcbiAgICB9XG4gIH1cbn1cblxuZGl2LmRoLXJpZ2h0IHtcbiAgd2lkdGg6IHJlbSgzNjVweCk7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IHJpZ2h0O1xuXG4gIHVsIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm90dG9tOiByZW0oM3B4KTtcblxuICAgIGxpIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIGEge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKCR3aGl0ZSwgLjIpO1xuICAgICAgfVxuXG4gICAgICBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IHJlbSgzcHgpIHJlbSgxOHB4KTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICB3aWR0aDogcmVtKDI1cHgpO1xuICAgICAgICAgIGhlaWdodDogcmVtKDI1cHgpO1xuICAgICAgICAgIGZpbGw6IHJnYmEoJGNvbG9yLXByaW1hcnksIC40KTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBmaWxsIDI1MG1zO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGZpbGw6IHJnYmEoJGNvbG9yLXByaW1hcnksIC42KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb3JtIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogcmVtKDNweCk7XG5cbiAgICBsYWJlbDo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAuMik7XG4gICAgICBib3R0b206IDFweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRyYW5zaXRpb246IHdpZHRoIDM1MG1zIGN1YmljLWJlemllcigwLjI1LDAuMSwwLjI1LDEpO1xuICAgIH1cblxuICAgIGxhYmVsLnNob3c6OmFmdGVyIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIHdpZHRoOiByZW0oMjI1cHgpO1xuICAgICAgcGFkZGluZy1ib3R0b206IHJlbSg5cHgpO1xuICAgICAgZm9udC1zaXplOiByZW0oMTVweCk7XG4gICAgICBjb2xvcjogcmdiYSgkd2hpdGUsIC41KTtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoJHdoaXRlLCAuMik7XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgICAgICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICAgIGNvbG9yOiByZ2JhKCR3aGl0ZSwgLjcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICBjb2xvcjogcmdiYSgkd2hpdGUsIC43KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICAgIGNvbG9yOiByZ2JhKCR3aGl0ZSwgLjcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICAgIGNvbG9yOiByZ2JhKCR3aGl0ZSwgLjcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogcmdiYSgkd2hpdGUsIC41KTtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIDUwMG1zO1xuICAgIH1cblxuICAgICA6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogcmdiYSgkd2hpdGUsIC41KTtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIDUwMG1zO1xuICAgIH1cblxuICAgICA6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IHJnYmEoJHdoaXRlLCAuNSk7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciA1MDBtcztcbiAgICB9XG5cbiAgICAgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogcmdiYSgkd2hpdGUsIC41KTtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIDUwMG1zO1xuICAgIH1cbiAgfVxuXG4gIHN2ZyB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiByZW0oMjBweCk7XG4gICAgaGVpZ2h0OiByZW0oMjBweCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGZpbGw6IHJnYmEoJHdoaXRlLCAuMyk7XG4gIH1cbn1cblxuc2VjdGlvbi5kZXYtd3JhcCB7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAkbWFpbi1iYWNrZ3JvdW5kO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIEBpbmNsdWRlIGNmKCk7XG59XG5cbm5hdi5kZXYtbmF2IHtcbiAgd2lkdGg6ICRkZXYtbmF2LXdpZHRoO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZzogcmVtKDI1cHgpIDAgcmVtKDI1cHgpIDQuNSU7XG4gIGhlaWdodDogMTAwdmg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGxpZ2h0LWJvcmRlcjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDc1MG1zIGN1YmljLWJlemllcigwLjU1LDAsMC4xLDEpLCBtYXJnaW4tYm90dG9tIDc1MG1zIGN1YmljLWJlemllcigwLjU1LDAsMC4xLDEpO1xuXG4gIGEgc3ZnIHtcbiAgICB3aWR0aDogcmVtKDEwcHgpO1xuICAgIGZpbGw6ICRsaWdodC1ncmF5O1xuICAgIHJpZ2h0OiByZW0oLTE0cHgpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IHJlbSg2cHgpO1xuICB9XG5cbiAgJi5pcy1maXhlZCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgfVxuXG4gICYuaXMtcGlubmVkIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiByZW0oMzMwcHgpO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiBhdXRvO1xuICB9XG5cbiAgJi5pcy1zaGlmdGVkIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTVweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtKDU1cHgpO1xuICB9XG59XG5cbi8vIGV4dGVybmFsIGxpbmtzIGljb24gd2l0aGluIG5hdlxuc3Bhbi5lLWxpbmtzIHtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgYmFja2dyb3VuZDogcmVkO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBleHRlcm5hbCBsaW5rcyBiZWxvdyBtYWluIG5hdlxudWwuZXh0LWxpbmtzIHtcbiAgbWFyZ2luLXRvcDogcmVtKDI1cHgpO1xuICBwYWRkaW5nLXRvcDogcmVtKDI1cHgpO1xuICB3aWR0aDogNzAlO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJGxpZ2h0LWJvcmRlcjs7XG5cbiAgbGkge1xuICAgIHBhZGRpbmc6IHJlbSg1cHgpIDA7XG4gICAgbWFyZ2luLWxlZnQ6IHJlbSgxN3B4KTtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFxCQSc7XG4gICAgICBjb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiByZW0oMTFweCk7XG4gICAgICBsZWZ0OiByZW0oLTE1cHgpO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZm9udC1zaXplOiByZW0oMTVweCk7XG4gICAgICBjb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgMzAwbXM7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktbGluaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxudWwubWVudSB7XG4gIGEge1xuICAgIGNvbG9yOiByZ2JhKCRjb2FsLCAuOCk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogcmVtKDM1cHgpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMTUwbXMsIGZvbnQtd2VpZ2h0IDM1MG1zO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHdpZHRoOiByZW0oOHB4KTtcbiAgICAgIGhlaWdodDogcmVtKDJweCk7XG4gICAgICB0b3A6IHJlbSg3cHgpO1xuICAgICAgbGVmdDogcmVtKDE0cHgpO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIHdpZHRoOiByZW0oMnB4KTtcbiAgICAgIGhlaWdodDogcmVtKDhweCk7XG4gICAgICB0b3A6IHJlbSg0cHgpO1xuICAgICAgbGVmdDogcmVtKDE3cHgpO1xuICAgIH1cblxuICAgICYuaXMtaGlkZGVuIHtcbiAgICAgICY6OmJlZm9yZSxcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgY29sb3I6IGJsYWNrO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGkge1xuICAgIGZvbnQtc2l6ZTogcmVtKDE1cHgpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjllbTtcbiAgICB0ZXh0LWluZGVudDogLTEuMmVtO1xuICAgIHdpZHRoOiA4NiU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpob3ZlciA+IGEge1xuICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgd2lkdGg6IHJlbSgxNHB4KTtcbiAgICAgIGhlaWdodDogcmVtKDE0cHgpO1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXNlY29uZGFyeTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogcmVtKDFweCk7XG4gICAgICBsZWZ0OiByZW0oMjVweCk7XG4gICAgfVxuXG4gICAgJjpmaXJzdC1jaGlsZCxcbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgdWwge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGxlZnQ6IHJlbSgtMTdweCk7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgIHRleHQtaW5kZW50OiAtLjFlbTtcbiAgICAgICAgICBsaXN0LXN0eWxlOiBjaXJjbGU7XG4gICAgICAgICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuXG4gICAgICAgICAgYSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnVsLnN1Yi1tZW51LTAge1xuICBsZWZ0OiByZW0oLTVweCk7XG5cbiAgbGkge1xuICAgIHRleHQtaW5kZW50OiAtMWVtO1xuICAgIHBhZGRpbmctbGVmdDogcmVtKDUzcHgpO1xuICB9XG59XG5cbnVsLnN1Yi1tZW51LTEge1xuICBsZWZ0OiByZW0oLTRweCkgIWltcG9ydGFudDsgLy8gVFJFVk9SISEhXG5cbiAgbGkge1xuICAgIGxpc3Qtc3R5bGU6IGNpcmNsZSAhaW1wb3J0YW50O1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogcmVtKDEycHgpICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1pbmRlbnQ6IC0uMWVtO1xuXG4gICAgYSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxudWwuc3ViLW1lbnUtMCxcbnVsLnN1Yi1tZW51LTEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAxMjglO1xuICBtYXgtaGVpZ2h0OiAwO1xuXG4gIGxpIHtcbiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmLmlzLXRvZ2dsZSB7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmctbGVmdDogcmVtKDU4cHgpO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgbGVmdDogcmVtKC0xMHB4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhOjpiZWZvcmUge1xuICAgICAgbGVmdDogcmVtKC0yMXB4KTtcbiAgICB9XG5cbiAgICBhOjphZnRlciB7XG4gICAgICBsZWZ0OiByZW0oLTE4cHgpO1xuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gICYuaXMtYWN0aXZlIHtcbiAgICBtYXgtaGVpZ2h0OiA3MDBweDtcbiAgfVxufVxuXG5kaXYuZGV2LW1haW4ge1xuICB3aWR0aDogY2FsYygxMDAlIC0gI3skZGV2LW5hdi13aWR0aH0pO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmbG9hdDogcmlnaHQ7XG5cbiAgLmRwcCB7XG4gICAgcGFkZGluZy1ib3R0b206IHJlbSgxMDBweCk7XG5cbiAgICBwIHtcbiAgICAgIGNvbG9yOiAkcHJpbWFyeS10ZXh0ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIG1hcmdpbi10b3A6IHJlbSgyNXB4KTtcbiAgICB9XG4gIH1cblxuICAuZGYge1xuICAgIC5pcy1oMyB7XG4gICAgICB0b3A6IHJlbSg0NXB4KSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5kaXYubWFpbi13cmFwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBwYWRkaW5nOiByZW0oNTBweCkgcmVtKDUwcHgpIHJlbSg1MHB4KSByZW0oNjBweCk7XG4gIEBpbmNsdWRlIGNmKCk7XG5cbiAgaDEsXG4gIGgyLFxuICBoMyB7XG4gICAgY29sb3I6ICRwcmltYXJ5LWhlYWRpbmc7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgaDEge1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC10aGluO1xuICB9XG5cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogcmVtKDMycHgpO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICB9XG5cbiAgaDMge1xuICAgIGZvbnQtc2l6ZTogcmVtKDI2cHgpO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICB9XG5cbiAgcHJlIHtcbiAgICBtYXJnaW46IHJlbSgzMHB4KSAwO1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yOiAkcHJpbWFyeS1saW5rO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDI1MG1zO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHByaW1hcnktbGluay1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICBwIHtcbiAgICBjb2xvcjogJHByaW1hcnktdGV4dDtcbiAgICBwYWRkaW5nLXRvcDogcmVtKDE1cHgpO1xuICB9XG5cbiAgZGl2LnB3IHtcbiAgICBtYXJnaW4tdG9wOiByZW0oNTBweCk7XG4gIH1cbn1cblxuZGl2LnBsYXRmb3JtIHtcbiAgd2lkdGg6IDMxLjMzMyU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDAgMyUgMyUgMDtcbiAgbWluLWhlaWdodDogcmVtKDI2MHB4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWJvcmRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAuNzUpO1xuICBib3JkZXItcmFkaXVzOiByZW0oN3B4KTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyIDI1MG1zLCBiYWNrZ3JvdW5kIDM1MG1zO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldC1sJykge1xuICAgICY6bnRoLW9mLXR5cGUoM24pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldC1sJykge1xuICAgIHdpZHRoOiA0OC41JTtcblxuICAgICY6bnRoLW9mLXR5cGUoMm4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBib3ggc2hhZG93IGZvciBob3ZlclxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiByZW0oN3B4KTtcbiAgICB6LWluZGV4OiAwO1xuICAgIGJveC1zaGFkb3c6IDAgMTVweCAyNXB4IDVweCByZ2JhKDAsMCwwLDAuMSk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXQ7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQge1xuICAgIGN1cnNvcjogYXV0bztcbiAgICBAaW5jbHVkZSBjZigpO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmLnAtc2lnbi11cCB7XG4gICAgYmFja2dyb3VuZDogJHJlY2Vzc2VkLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiBub25lO1xuXG4gICAgcCB7XG4gICAgICBmb250LXNpemU6IHJlbSgxNHB4KTtcbiAgICAgIHdpZHRoOiA3MCU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiByZW0oNjBweCkgMCByZW0oMzBweCk7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBjb2xvcjogJHByaW1hcnktbGluaztcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBhZGRpbmctdG9wOiByZW0oMTJweCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRwcmltYXJ5LWxpbms7XG4gICAgICBmb250LXNpemU6IHJlbSgxMnB4KTtcbiAgICAgIGhlaWdodDogcmVtKDQwcHgpO1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDI1MG1zLCBjb2xvciAyNTBtcztcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWxpbms7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLXByaW1hcnk7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6ICRwYXBlcjtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIGRpdi5sdCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkocmVtKDBweCkpO1xuXG4gICAgICBzcGFuIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkaXYubGluZSB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDcge1xuICAgICAgdWwgbGk6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogKCRpICogMC4wNykgKyBzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQgLnAtbGlua3MgIHsgYm90dG9tOiAyMHB4OyB9XG4gICY6bnRoLWNoaWxkKDMpIC5wLWxpbmtzIHsgYm90dG9tOiA2MHB4OyB9XG4gICY6bnRoLWNoaWxkKDUpIC5wLWxpbmtzIHsgYm90dG9tOiA3MHB4OyB9XG59XG5cbi8vIGxvZ28gLSB0ZXh0XG5kaXYubHQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiByZW0oMTI1cHgpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkocmVtKDUwcHgpKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zICRlYXNlLW91dC1iYWNrO1xuXG4gIGltZyB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtKDE1cHgpO1xuICAgIEBpbmNsdWRlIHZlcnRpY2FsbHktYWxpZ24oKTtcbiAgfVxuXG4gIHNwYW4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiAgICBib3R0b206IDA7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI1MG1zO1xuICB9XG59XG5cbmRpdi5saW5lIHtcbiAgQGluY2x1ZGUgcnVsZSgkbGlnaHQtYm9yZGVyKTtcbiAgd2lkdGg6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiByZW0oLTEwcHgpO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAxO1xuICBtYXJnaW46IDAgYXV0bztcbiAgdHJhbnNpdGlvbjogd2lkdGggNTUwbXMgY3ViaWMtYmV6aWVyKDAuMjUsMC4xLDAuMjUsMSksIG9wYWNpdHkgMjUwbXMgZWFzZSAxMDBtcztcbn1cblxudWwucC1saW5rcyB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IHJlbSgzNXB4KTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMjtcblxuICBsaSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IHJlbSg4cHgpO1xuICAgIGZvbnQtc2l6ZTogcmVtKDE1cHgpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjUwbXMsIHRyYW5zZm9ybSAyNTBtcztcblxuICAgIGEge1xuICAgICAgY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIDI1MG1zO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5kaXYuY3J1bWJzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogcmVtKDU1cHgpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlnaHQtYm9yZGVyO1xuXG4gIHVsLm5leHQtcHJldiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDJweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMjBweCk7XG5cbiAgICBsaSB7XG4gICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgJjpmaXJzdC1jaGlsZCBhIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDRweCk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDEwcHgpO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgtMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiByZW0oMTBweCkgcmVtKDEwcHgpIHJlbSgxMHB4KSByZW0oNHB4KTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICBzdHJva2U6ICNCN0JGQzc7XG4gICAgICAgICAgdHJhbnNpdGlvbjogc3Ryb2tlIDI1MG1zO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHN0cm9rZTogJHByaW1hcnktbGluaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZGl2Lm5wLWJsb2NrIHtcbiAgcGFkZGluZzogcmVtKDEwcHgpIHJlbSgxNXB4KSByZW0oMTBweCkgcmVtKDE1cHgpO1xuICBmb250LXNpemU6IHJlbSgxMnB4KTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJhY2tncm91bmQ6ICRjb2xvci1wcmltYXJ5O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZsb2F0OiByaWdodDtcbiAgY2xlYXI6IHJpZ2h0O1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJvdHRvbTogcmVtKC0zMXB4KTtcbiAgcmlnaHQ6IHJlbSgyMHB4KTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICB0cmFuc2l0aW9uOlxuICAgIG9wYWNpdHkgNDUwbXMsXG4gICAgdmlzaWJpbGl0eSA0NTBtcyxcbiAgICB0cmFuc2Zvcm0gNTAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsMC4xLDAuMjUsMSk7XG5cbiAgJi52aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgJi5wcmV2aW91cyB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IC4ycztcbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogcmVtKC02cHgpO1xuICAgICAgcmlnaHQ6IHJlbSg1N3B4KTtcbiAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKCRkaXJlY3Rpb246ICd1cCcsICRzaXplOiA2cHgsICRjb2xvcjogJGNvbG9yLXByaW1hcnkpO1xuICAgIH1cbiAgfVxuXG4gICYubmV4dCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IC4ycztcbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogcmVtKC02cHgpO1xuICAgICAgcmlnaHQ6IHJlbSgxN3B4KTtcbiAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKCRkaXJlY3Rpb246ICd1cCcsICRzaXplOiA2cHgsICRjb2xvcjogJGNvbG9yLXByaW1hcnkpO1xuICAgIH1cbiAgfVxufVxuXG4vLyB3cmFwIGxpbmsgYXJvdW5kIGgxLGgyIGZvciBkZWVwbGlua2luZ1xuYS5sZGwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogcmVtKDM1cHgpO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgcmlnaHQ6IHJlbSgzNXB4KTtcblxuICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBoMSxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICBtYXJnaW4tdG9wOiByZW0oNTBweCk7XG4gICAgfVxuXG4gICAgLmhjLmlzLWgyIHtcbiAgICAgIHRvcDogNTFweDtcbiAgICB9XG4gIH1cblxuICAvLyBoYXNoIGNsaWNrIGZvciBob3ZlclxuICAuaGMge1xuICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogcmVtKDExcHgpO1xuICAgIGZvbnQtc2l6ZTogcmVtKDMwcHgpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyNTBtcztcblxuICAgICYuaXMtaDEge1xuICAgICAgdG9wOiByZW0oMTBweCk7XG4gICAgfVxuXG4gICAgJi5pcy1oMiB7XG4gICAgICB0b3A6IHJlbSgxcHgpO1xuICAgIH1cblxuICAgICYuaXMtaDMge1xuICAgICAgdG9wOiByZW0oNDZweCk7XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlciAuaGMge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxubmF2LmRldi1zdWJuYXYge1xuICBmbG9hdDogbGVmdDtcblxuICB1bCB7XG4gICAgcGFkZGluZzogcmVtKDE5cHgpIDAgMCByZW0oMjBweCk7XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgzMHB4KTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1cHgpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNlY29uZGFyeS10ZXh0O1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciA1MDBtcywgYm9yZGVyIDUwMG1zO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICBjb2xvcjogJGNvYWw7XG4gICAgICAgICAgY3Vyc29yOiB0ZXh0O1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcvJztcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTdweCk7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiByZW0oM3B4KTtcbiAgICAgICAgcmlnaHQ6IHJlbSgtMTNweCk7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZDo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGFic29sdXRlLWNlbnRlcigkd2lkdGg6IDUwJSkge1xuICBsZWZ0OiAwO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogJHdpZHRoO1xufVxuIiwiLy8gLS0tLS0tXG4vLyBUYWJsZXNcbi8vIC0tLS0tLVxuXG4vLy0gTWl4aW46IFRhYmxlXG4vLy9cbi8vLyBQb3J0ZWQgZGlyZWN0bHkgZnJvbSBUd2l0dGVyIEJvb3RzdHJhcCAoYnkgd2F5IG9mIFtBeGlzXShheGlzLm5ldGxpZnkuY29tKSksIGFzIHRoZXkgZGlkIGFuXG4vLy8gZXhjZWxsZW50IGpvYiB3aXRoIHRoZSB0YWJsZXMuXG4vLy9cbi8vLyBAcGFyYW0ge3ZhcmlhYmxlfSAkYm9yZGVyIFt0cnVlXSAtIE1ha2VzIHRhYmxlIGJvcmRlcmVkXG4vLy8gQHBhcmFtIHt2YXJpYWJsZX0gJHN0cmlwZWQgW3RydWVdIC0gQWRkcyB6ZWJyYSBzdHJpcGluZ1xuLy8vIEBwYXJhbSB7dmFyaWFibGV9ICRjb25kZW5zZWQgW2ZhbHNlXSAtIE1ha2VzIHRoZSB0YWJsZSBjb25kZW5zZWRcbi8vLyBAZ3JvdXAgdGFibGVcbi8vLyBAZXhhbXBsZVxuLy8vICAgdGFibGUge1xuLy8vICAgICBAaW5jbHVkZSB0YWJsZSgpO1xuLy8vICAgfVxuLy8vIEB0b2RvIC0gbWFrZSBob3ZlciBlZmZlY3Qgb3B0aW9uYWxcblxuQG1peGluIHRhYmxlKCRib3JkZXIgOiB0cnVlLCAkc3RyaXBlZCA6IHRydWUsICRjb25kZW5zZWQgOiBmYWxzZSkge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogMTAwJTtcblxuICB0aCxcbiAgdGQge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjREREO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICB0aCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICB0aGVhZCB0aCB7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgfVxuXG4gIHRoZWFkOmZpcnN0LWNoaWxkIHRyIHRoLFxuICB0aGVhZDpmaXJzdC1jaGlsZCB0ciB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxuXG4gIHRib2R5ICsgdGJvZHkge1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjREREO1xuICB9XG5cbiAgQGlmICRjb25kZW5zZWQge1xuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6IDRweCA1cHg7XG4gICAgfVxuICB9XG5cbiAgQGlmICRib3JkZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNEREQ7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICB0aCArIHRoLFxuICAgIHRkICsgdGQsXG4gICAgdGggKyB0ZCxcbiAgICB0ZCArIHRoIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0RERDtcbiAgICB9XG5cbiAgICB0aGVhZDpmaXJzdC1jaGlsZCB0cjpmaXJzdC1jaGlsZCB0aCxcbiAgICB0Ym9keTpmaXJzdC1jaGlsZCB0cjpmaXJzdC1jaGlsZCB0aCxcbiAgICB0Ym9keTpmaXJzdC1jaGlsZCB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgICBib3JkZXItdG9wOiAwO1xuICAgIH1cblxuICAgIHRoZWFkOmZpcnN0LWNoaWxkIHRyOmZpcnN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLFxuICAgIHRib2R5OmZpcnN0LWNoaWxkIHRyOmZpcnN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweCAwIDA7XG4gICAgfVxuXG4gICAgdGhlYWQ6Zmlyc3QtY2hpbGQgdHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCxcbiAgICB0Ym9keTpmaXJzdC1jaGlsZCB0cjpmaXJzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgNHB4O1xuICAgIH1cblxuICAgIHRoZWFkOmxhc3QtY2hpbGQgdHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCxcbiAgICB0Ym9keTpsYXN0LWNoaWxkIHRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDAgNHB4O1xuICAgIH1cblxuICAgIHRoZWFkOmxhc3QtY2hpbGQgdHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLFxuICAgIHRib2R5Omxhc3QtY2hpbGQgdHI6bGFzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCA0cHg7XG4gICAgfVxuICB9XG5cbiAgQGlmICRzdHJpcGVkIHtcbiAgICB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB0ZCxcbiAgICB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB0aCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjlGOUY5O1xuICAgIH1cbiAgfVxuXG4gIHRib2R5IHRyOmhvdmVyIHRkLFxuICB0Ym9keSB0cjpob3ZlciB0aCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1RjVGNTtcbiAgfVxufVxuIiwic2VjdGlvbi5hYm91dC1kYXRhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xufVxuXG4uYWJvdXQtZ3JleSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRvZmYtd2hpdGU7XG59XG5cbi5hYm91dC10aXRsZSB7XG4gIHBhZGRpbmc6IHJlbSgyMjVweCkgMCByZW0oMTI1cHgpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgaDEge1xuICAgIG1hcmdpbi1ib3R0b206IHJlbSg1MHB4KTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtbGlnaHQ7XG4gICAgQGV4dGVuZCAuYW5pbWF0ZWQsIC5mYWRlLWluLXVwO1xuICAgIGFuaW1hdGlvbi1kZWxheTogMC41cztcbiAgfVxuXG4gIHAge1xuICAgIG1heC13aWR0aDogcmVtKDczMHB4KTtcbiAgICBtYXJnaW46IDAgYXV0byByZW0oMjVweCk7XG4gICAgQGV4dGVuZCAuYW5pbWF0ZWQsIC5mYWRlLWluO1xuICAgIGFuaW1hdGlvbi1kZWxheTogMXM7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgIGEge1xuICAgICAgY29sb3I6ICRwcmltYXJ5LWxpbms7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IC8vIG1ha2Ugc2l0ZS13aWRlIGNvb2wgdW5kZXJsaW5lc1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgcGFkZGluZzogMzUlIDAgMTUlO1xuICB9XG59XG5cbi5hYm91dC1zdWItdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiByZW0oMzVweCk7XG5cbiAgLy8gY29sb3I6ICRsaWdodC1ncmF5O1xuICBmb250LXdlaWdodDogJGZvbnQtbGlnaHQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuXG4uYWJvdXQtY29udGFjdCB7XG4gIEBpbmNsdWRlIGNmKCk7XG4gIGhlaWdodDogNzV2aDtcbiAgbWF4LWhlaWdodDogNzAwcHg7XG4gIG1pbi1oZWlnaHQ6IDYwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG4uYWJvdXQtdmlkZW8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgdmlkZW8ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICBzdmcge1xuICAgIHdpZHRoOiByZW0oMTAwcHgpO1xuICAgIGhlaWdodDogcmVtKDEwMHB4KTtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oMjVweCk7XG4gICAgc3Ryb2tlOiAkd2hpdGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSBlYXNlLWluLW91dCAwLjNzO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMjUpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgd2lkdGg6IHJlbSg1MHB4KTtcbiAgICAgIGhlaWdodDogcmVtKDUwcHgpO1xuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cblxuICB2aWRlby5hYm91dC1mZWF0dXJlLXZpZGVvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGltZy5hYm91dC1mZWF0dXJlLWltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldC1sJykge1xuICAgIHZpZGVvLmFib3V0LWZlYXR1cmUtdmlkZW8ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBpbWcuYWJvdXQtZmVhdHVyZS1pbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG5cbi5nYWxsZXJ5IHtcbiAgQGluY2x1ZGUgY2YoKTtcbn1cbi5hYm91dC15b3V0dWJlLXZpZGVvLXdyYXBwZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBAaW5jbHVkZSB2ZXJ0aWNhbGx5LWFsaWduKCk7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogOTk7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYWJvdXQteW91dHViZS12aWRlbyB7XG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG4gIC8qIDE2OjkgKi9cbiAgcGFkZGluZy10b3A6IDI1cHg7XG4gIGhlaWdodDogMDtcblxuICAuY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDclO1xuICAgIHJpZ2h0OiAxNSU7XG4gICAgei1pbmRleDogMTAwO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMnMgZWFzZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgIGZpbGw6IHdoaXRlO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIGlmcmFtZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTclO1xuICAgIGxlZnQ6IDIxJTtcbiAgICB3aWR0aDogNjAlO1xuICAgIGhlaWdodDogNjAlO1xuICB9XG59XG5cbi5hYm91dC1jZW50ZXIge1xuICBAaW5jbHVkZSBhYnNvbHV0ZS1jZW50ZXIoKTtcbiAgd2lkdGg6IDUwJTtcbiAgdG9wOiBjYWxjKDUwJSAtIDc1cHgpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDUwcHgpO1xuICB9XG59XG5cbi5jb250YWN0LWNlbnRlciB7XG4gIEBpbmNsdWRlIHZlcnRpY2FsbHktYWxpZ247XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAuYWRkcmVzcyB7XG4gICAgQGluY2x1ZGUgY2VudGVyKDI2NXB4KTtcbiAgfVxufVxuLmFib3V0LWNhcmVlcnMge1xuICBwYWRkaW5nOiByZW0oNTBweCkgMCByZW0oMTAwcHgpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgcCB7XG4gICAgbWF4LXdpZHRoOiByZW0oNzYwcHgpO1xuICAgIG1hcmdpbjogMCBhdXRvIHJlbSgzMHB4KTtcbiAgfVxufVxuXG4uYWJvdXQtYWR2aXNvcnMge1xuICAuY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAyJSA1JSA4JTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICB1bCB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICBsaSB7XG4gICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+PTEwMjNweFwiKSB7XG4gICAgICBAaW5jbHVkZSBpbmxpbmUtbGlzdDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgbGkge1xuICAgICAgICBmb250LXNpemU6IHJlbSgxNHB4KTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oNXB4KTtcbiAgICAgIH1cblxuICAgICAgbGk6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjOWM5Yzk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgyNXB4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmNvbGxhZ2UgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLmFib3V0LWludmVzdG9ycyB7XG4gIHBhZGRpbmc6IHJlbSg1MHB4KSAwO1xuICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAuc2xpY2Uge1xuICAgIG1hcmdpbjogMCBhdXRvIHJlbSgyNXB4KTtcbiAgICBtYXgtd2lkdGg6IDc2MHB4O1xuICB9XG5cbiAgLnNsaWNlLWl0ZW0ge1xuICAgIHBhZGRpbmc6IHJlbSgyNXB4KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgkY29hbCwgLjE1KTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIGhlaWdodDogODAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg1MHB4KTtcbiAgICB9XG4gIH1cbn1cblxuLmFib3V0LWNvbnRhY3Qge1xuICBoMixcbiAgcCB7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgfVxuXG4gIGgyIHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oMTIwcHgpO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1saWdodDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTM1cHgpO1xuICB9XG5cbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtKDUwcHgpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICBhLmJ0biB7XG4gICAgICBAaW5jbHVkZSBzdGFjaygpO1xuICAgICAgbWF4LXdpZHRoOiA2MCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTVweCk7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJzZWN0aW9uLmNhcmVlcnMtaGVybyB7XG4gIGZpZ3VyZSB7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG87XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIH1cblxuICBhcnRpY2xlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxMCU7XG4gICAgbGVmdDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogcmVtKDIzMHB4KSA1JSByZW0oMjAwcHgpO1xuICAgIHotaW5kZXg6IDA7XG4gICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXQtbFwiKSB7XG4gICAgICBwYWRkaW5nOiByZW0oMTUwcHgpIDUlIHJlbSgxMDBweCkgO1xuICAgIH1cbiAgfVxuXG4gIGRpdi5jb3B5IHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6IHJlbSg4NDBweCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgaDEge1xuICAgICAgZm9udC1mYW1pbHk6IEdyYXBoaWsgVGhpbiBXZWI7XG4gICAgICBAaW5jbHVkZSBoZWF2eS1hbnRpYWxpYXMoKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgbWFyZ2luOiAwIGF1dG8gcmVtKDY1cHgpO1xuICAgICAgbWF4LXdpZHRoOiA4MDBweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgQGV4dGVuZCAuYW5pbWF0ZWQsIC5mYWRlLWluLXVwO1xuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjVzO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXQtbFwiKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDMwcHgpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMzVweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIGNvbG9yOiByZ2JhKCR3aGl0ZSwgLjYpO1xuICAgICAgbWFyZ2luOiAwIGF1dG8gcmVtKDMwcHgpO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIG1heC13aWR0aDogNzc1cHg7XG4gICAgICBAZXh0ZW5kIC5hbmltYXRlZCwgLmZhZGUtaW47XG4gICAgICBhbmltYXRpb24tZGVsYXk6IDFzO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHNlY3Rpb24uY2FyZWVycy1oZXJvIHJlc3BvbnNpdmUgY29kZVxuICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgIGFydGljbGUge1xuICAgICAgdG9wOiAxNSU7XG4gICAgfVxuICB9XG59XG5cbnNlY3Rpb24uY2FyZWVyLW9wZW5pbmdzIHtcbiAgcGFkZGluZzogcmVtKDcwcHgpIDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRvZmYtd2hpdGU7XG5cbiAgaDMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oMTAwcHgpO1xuICAgIGZvbnQtZmFtaWx5OiBHcmFwaGlrIFRoaW4gV2ViO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgQGluY2x1ZGUgaGVhdnktYW50aWFsaWFzKCk7XG4gIH1cblxuICBsaSB7XG4gICAgQGluY2x1ZGUgY29sKDEvMiwgJGN5Y2xlOjIpO1xuICAgIG1hcmdpbi1ib3R0b206IHJlbSgxMDBweCk7XG4gICAgbWF4LXdpZHRoOiByZW0oNTE1cHgpO1xuICB9XG5cbiAgaDQge1xuICAgIG1hcmdpbi1ib3R0b206IHJlbSgzMHB4KTtcbiAgICBmb250LWZhbWlseTogJ0dyYXBoaWsgVGhpbiBXZWInO1xuICAgIGNvbG9yOiAkZGVuaW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBAaW5jbHVkZSBoZWF2eS1hbnRpYWxpYXMoKTtcbiAgfVxuXG4gIHAge1xuICAgIGNvbG9yOiAkc3RlZWw7XG4gICAgZm9udC1zaXplOiByZW0oMTRweCk7XG4gIH1cblxuICAuYnRuIHtcbiAgICBtYXJnaW4tdG9wOiByZW0oMjBweCk7XG4gIH1cblxuICAvLyBzZWN0aW9uLmNhcmVlci1vcGVuaW5ncyByZXNwb25zaXZlIGNvZGVcbiAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICBwYWRkaW5nOiByZW0oNDBweCkgMDtcblxuICAgIGgzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg0MHB4KTtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBAaW5jbHVkZSBjb2woMS8xLCAkY3ljbGU6IDEpIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg0MHB4KTtcbiAgICB9XG5cbiAgICBoNCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjBweCk7XG4gICAgfVxuICB9XG59XG4iLCJzZWN0aW9uLmxlZ2FsIHtcbiAgcGFkZGluZzogcmVtKDIwMHB4KSAwIDA7XG5cbiAgLmNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbiAgfVxuXG4gIC5sZWdhbC1zaWRlYmFyIHtcbiAgICB3aWR0aDogMjAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgdWwge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIHBhZGRpbmc6IDglIDA7XG4gICAgICB3aWR0aDogcmVtKDEyMHB4KTtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuXG4gICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRjb2xvci1wcmltYXJ5O1xuXG4gICAgICAgIGEge1xuICAgICAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGNvbG9yLXByaW1hcnk7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBjb2xvcjogJGxpZ2h0LWdyYXk7XG4gICAgICBmb250LXNpemU6IHJlbSgxNXB4KTtcbiAgICB9XG4gIH1cblxuICBhcnRpY2xlIHtcbiAgICB3aWR0aDogODAlO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBwYWRkaW5nOiAwIDIuNSU7XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgICB9XG4gIH1cblxuICBkaXYuY29weSB7XG4gICAgcGFkZGluZy1ib3R0b206IHJlbSgxMDBweCk7XG5cbiAgICB1bCBsaSB7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IGluaXRpYWw7XG4gICAgICBsaXN0LXN0eWxlOiBpbnNpZGU7XG4gICAgICBjb2xvcjogJHN0ZWVsO1xuICAgICAgZm9udC1zaXplOiByZW0oMTVweCk7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0oMzBweCk7XG4gICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgyMHB4KTtcbiAgICB9XG5cbiAgICBvbCBsaSB7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7XG4gICAgICBsaXN0LXN0eWxlOiBpbnNpZGU7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWwtbGVhZGluZy16ZXJvO1xuICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgICAgY29sb3I6ICRzdGVlbDtcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDE1cHgpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDMwcHgpO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMjBweCk7XG4gICAgfVxuICB9XG5cbiAgaDIge1xuICAgIGZvbnQtZmFtaWx5OiBHcmFwaGlrIFRoaW4gV2ViO1xuICAgIGNvbG9yOiAkc3RlZWw7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtKDUwcHgpO1xuICB9XG5cbiAgcCB7XG4gICAgY29sb3I6ICRzdGVlbDtcbiAgICBmb250LXNpemU6IHJlbSgxNXB4KTtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oMzBweCk7XG4gIH1cblxuICBoNiB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IHJlbSgxNnB4KTtcbiAgICBjb2xvcjogJHN0ZWVsO1xuICB9XG5cblxuICAvL2xlZ2FsIHJlc3BvbnNpdmUgY29kZVxuICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXQtbFwiKSB7XG4gICAgcGFkZGluZzogcmVtKDEyMHB4KSAwIDA7XG5cbiAgICAubGVnYWwtc2lkZWJhcixcbiAgICBhcnRpY2xlIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgQGluY2x1ZGUgc3RhY2soKTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5sZWdhbC1zaWRlYmFyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMzBweCk7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIHVsIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cblxuICAgICAgbGkge1xuICAgICAgICBwYWRkaW5nOiAwIHJlbSgyMHB4KSAwIDA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxtb2JpbGUtbFwiKSB7XG4gICAgICAgICAgcGFkZGluZzogMCAwIHJlbSgxNXB4KSAwO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGRpdi5jb3B5IHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMzBweCk7XG4gICAgfVxuICB9XG59XG4iLCJzZWN0aW9uLnNlYXJjaC1yZXN1bHRzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDYwMHB4O1xuICBwYWRkaW5nOiA1JSA1JSA1JSAxNC4yJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kOiAkb2ZmLXdoaXRlO1xuXG4gIHAuc2hvdy1yZXN1bHRzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogcmVtKDdweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtKDQ1cHgpO1xuICAgIGZvbnQtc2l6ZTogcmVtKDE1cHgpO1xuXG4gICAgc3BhbiB7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICB9XG4gIH1cblxuICBkaXYucmVzdWx0IHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oNTBweCk7XG5cbiAgICBoNCxcbiAgICBwIHtcbiAgICAgIGNvbG9yOiByZ2JhKCRjb2FsLCAuNyk7XG4gICAgfVxuXG4gICAgaDQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogcmVtKDEwcHgpIHJlbSgyMHB4KSByZW0oMTBweCkgcmVtKDVweCk7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgkY29hbCwgLjQpO1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAzMDBtcywgYm9yZGVyIDMwMG1zLCBjb2xvciAzMDBtcztcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJGNvbG9yLXByaW1hcnksIC43KTtcbiAgICAgICAgY29sb3I6ICRvZmYtd2hpdGU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItcHJpbWFyeTtcblxuICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcCBzcGFuIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSg3cHgpO1xuICAgIH1cblxuICAgIHNwYW4gYSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IHJlbSg3cHgpO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgMzAwbXM7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogZGFya2VuKCRjb2xvci1wcmltYXJ5LCAzMCUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHA6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICBmb250LXNpemU6IHJlbSgxNHB4KTtcbiAgICB9XG5cbiAgICBwOmxhc3Qtb2YtdHlwZSB7XG4gICAgICB3aWR0aDogNjAlO1xuICAgICAgcGFkZGluZy10b3A6IHJlbSgxNXB4KTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIHdpZHRoOiA5MCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNlYXJjaC1oaWdobGlnaHQge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgkY29sb3ItcHJpbWFyeSwgLjEpO1xuICAgICAgcGFkZGluZzogcmVtKDhweCkgcmVtKDNweCkgcmVtKDhweCkgcmVtKDVweCk7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDMwMG1zO1xuICAgIH1cbiAgfVxufVxuIiwiLmhvbWUtaW50cm9kdWN0aW9uIHtcbiAgYmFja2dyb3VuZDogJGNvbG9yZnVsLWFjcm9zcztcbiAgcGFkZGluZzogNSUgMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgLmNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgY2YoKTtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIH1cblxuICBmaWd1cmUuYmFja3NwaW4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMzQlO1xuICAgIHRvcDogcmVtKDEwMHB4KTtcbiAgICByaWdodDogLTMlO1xuICAgIGhlaWdodDogNDAwcHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDgwcHgpO1xuICAgIHRyYW5zaXRpb246IGFsbCAuNXMgJGVhc2Utb3V0LXF1YWQ7XG4gICAgb3BhY2l0eTogMDtcblxuICAgIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1heC13aWR0aDogNDIwcHg7XG4gICAgfVxuXG4gICAgJi5yZXNvbHZlZCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICYuZXhpdCB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04MHB4KTtcbiAgICB9XG4gIH1cblxuICBmaWd1cmUucmluZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogcmVtKDcwcHgpO1xuICAgIHJpZ2h0OiAzMyU7XG4gICAgd2lkdGg6IDEwJTtcbiAgICBoZWlnaHQ6IDMwMHB4O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwcHgpO1xuICAgIHRyYW5zaXRpb246IGFsbCAuNXMgJGVhc2Utb3V0LXF1YWQ7XG5cbiAgICBpbWcge1xuICAgICAgb3BhY2l0eTogLjg7XG4gICAgfVxuXG4gICAgJi5yZXNvbHZlZCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICYuZXhpdCB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcbiAgICB9XG4gIH1cbiAgLnRvcC1jb3B5IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDU1JTtcbiAgICBwYWRkaW5nOiA1MHB4IDA7XG4gIH1cblxuICAuYm90dG9tLWNvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDkwcHggMDtcbiAgICBAaW5jbHVkZSBjZigpO1xuICB9XG5cbiAgLmJvdHRvbS1jb3B5IHtcbiAgICBAaW5jbHVkZSBjb2woMy81KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDIlO1xuICB9XG5cbiAgdWwucGxhdGZvcm1zIHtcbiAgICBAaW5jbHVkZSBjb2woMi81KTtcbiAgICBAaW5jbHVkZSBjZigpO1xuICAgIGxpIHtcbiAgICAgIEBpbmNsdWRlIGNvbCgxLzMsICRndXR0ZXI6IDIsICRjeWNsZTogMyk7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyJTtcblxuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA2IHtcbiAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIGEge1xuICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogJGkgKiAuMDhzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSByYXRpby1ib3goMS8xKTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoJG1pZG5pZ2h0LWJsdWUsIC40KTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlO1xuICAgICAgb3BhY2l0eTogMDtcblxuICAgICAgaW1nIHtcbiAgICAgICAgQGluY2x1ZGUgYWJzb2x1dGUtY2VudGVyKCk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDQwJTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRtaWRuaWdodC1ibHVlLCAuNyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIEBpbmNsdWRlIGNlbnRlcigpO1xuICAgICAgQGluY2x1ZGUgdmVydGljYWxseS1hbGlnbigpO1xuICAgICAgd2lkdGg6IDcwcHg7XG4gICAgfVxuXG4gICAgJi5yZXNvbHZlZCB7XG4gICAgICBsaSBhIHtcbiAgICAgICAgQGV4dGVuZCAuYW5pbWF0ZWQ7XG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiBvdmVyLXNjYWxlO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgaDMge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXRoaW47XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtKDQwcHgpO1xuICB9XG5cbiAgcCB7XG4gICAgY29sb3I6ICRyZXZlcnNlLXNlY29uZGFyeS10ZXh0O1xuXG4gICAgYSB7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcmZ1bC1kb3duO1xuXG4gICAgLnRvcC1jb3B5IHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDc1JSAwIHJlbSgzMHB4KTtcbiAgICB9XG5cbiAgICAuYm90dG9tLWNvbnRlbnQge1xuICAgICAgcGFkZGluZzogNTBweCAwO1xuICAgIH1cblxuICAgIGZpZ3VyZS5iYWNrc3BpbiB7XG4gICAgICB3aWR0aDogNjAlO1xuICAgICAgdG9wOiByZW0oNDJweCk7XG4gICAgfVxuXG4gICAgZmlndXJlLnJpbmcge1xuICAgICAgd2lkdGg6IDIwJTtcbiAgICAgIHJpZ2h0OiA2NSU7XG4gICAgICBvcGFjaXR5OiAuNztcbiAgICAgIHRvcDogcmVtKDQwcHgpO1xuICAgIH1cbiAgICB1bC5wbGF0Zm9ybXMsIC5ib3R0b20tY29weSB7XG4gICAgICBAaW5jbHVkZSBjb2woMS8xKTtcbiAgICB9XG5cbiAgICAuYm90dG9tLWNvcHkge1xuICAgICAgcGFkZGluZy10b3A6IDQwcHg7XG4gICAgfVxuICB9XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */